red-candle은 ‘gem install red-candle’ 명령어를 통해 쉽게 설치할 수 있으며, 몇 줄의 Ruby 코드만으로 11억 개의 매개변수를 가진 AI 모델을 실행하고 대화형 응답을 얻을 수 있습니다. 모델은 사용자 프로세스 메모리 내에서 직접 실행되며, 로컬 하드웨어(CPU/GPU)를 활용하여 네트워크 지연 없이 즉각적인 응답을 제공합니다. 또한, 스트리밍 응답 기능을 통해 실시간 상호작용을 지원합니다.
red-candle이 제공하는 주요 이점은 명확합니다. 첫째, 데이터가 사용자 머신을 떠나지 않으므로 개인 정보 보호가 강화됩니다. 둘째, 네트워크 오버헤드가 없어 직접 메모리 접근을 통해 매우 빠른 처리 속도를 구현합니다. 셋째, 생성 매개변수를 세밀하게 조정하고 원시 토큰에 접근할 수 있어 모델에 대한 높은 제어권을 가집니다. 마지막으로, 모든 기능이 Ruby 객체로 구현되어 Ruby가 실행되는 모든 환경에서 손쉽게 통합될 수 있습니다.
이 라이브러리는 토크나이저 직접 접근, 텍스트 임베딩 생성(EmbeddingModel), 문서 관련성 재정렬(Reranker), 개체명 인식(NER), 그리고 Llama, Mistral, Gemma와 같은 다양한 LLM과의 대화를 포함한 광범위한 기능을 지원합니다. 모델은 처음 사용 시 자동으로 다운로드되어 캐시되며, ‘~/.cache/huggingface/hub/’ 경로에 저장되어 재사용됩니다. 모델 크기는 수백 MB에서 수 GB에 이르며, 캐시 관리 도구를 통해 사용자가 저장 공간을 관리할 수 있습니다.
특히, red-candle은 GGUF(Quantized GGUF) 형식의 양자화된 모델을 지원하여 메모리 사용량을 4~8배까지 절감할 수 있습니다. Q4_K_M(4비트)은 품질, 크기, 속도의 균형을 고려한 권장 기본값이며, Q8_0(8비트)은 최고 품질을 제공하지만 크기가 더 큽니다. Q2_K와 같은 너무 낮은 양자화 수준은 추론 오류를 유발할 수 있으므로 권장되지 않습니다. 또한, Hugging Face 모델 사용 시 인증 절차가 필요할 수 있습니다.
GPU 가속은 red-candle의 또 다른 핵심 기능입니다. CUDA를 사용하면 CPU 대비 18배, Metal을 사용하면 CPU 대비 3배 이상의 LLM 실행 속도 향상을 경험할 수 있습니다. 디버깅을 위해 원시 토큰 출력을 활성화하여 토큰화 문제 해결, 텍스트 처리 방식 이해, 모델 동작 분석 등에 활용할 수 있습니다.
모델 형식 요구사항에 있어, EmbeddingModel과 Reranker는 가중치가 ‘safetensors’ 형식으로 제공되어야 합니다. LLM은 ‘safetensors’와 GGUF 양자화 형식을 모두 지원합니다. 지원되는 임베딩 모델 유형으로는 JINA_BERT, MINILM, DISTILBERT, STANDARD_BERT가 있으며, 대부분의 공식 BERT 및 DistilBERT 모델은 ‘safetensors’를 제공하지 않을 수 있으므로 주의해야 합니다.
red-candle은 또한 문서 재정렬을 위한 크로스 인코더 재정렬 모델을 지원하여 검색 결과 개선이나 RAG(Retrieval-Augmented Generation) 시스템 구현에 유용합니다. 토크나이저 기능을 통해 텍스트 전처리 및 분석에 직접 접근할 수 있으며, 모델 기반, 패턴 기반, 사전 기반, 하이브리드 접근 방식을 포함한 포괄적인 개체명 인식(NER) 기능을 제공하여 사람, 조직, 위치 및 사용자 정의 엔티티를 추출할 수 있습니다.
일반적인 런타임 오류로는 ‘Weight is negative, too large or not a valid number’(과도한 양자화로 인한 수치 불안정)와 ‘Cannot find tensor model.embed_tokens.weight’(이전 버전의 GGUF 파일 호환성 문제) 등이 있으며, 대부분 최신 red-candle 버전 사용 및 적절한 양자화 수준 선택으로 해결할 수 있습니다.