토니의 연습장

Embedding - 개인 자원 고려하기 본문

언어 AI (NLP)/LLM & RAG

Embedding - 개인 자원 고려하기

bellmake 2025. 1. 23. 14:45

현재 Ollama가 기본적으로 제공하는 모델들 중에서 영어 “임베딩 용도”로 가장 성능이 좋으면서도 RTX 4090(24GB VRAM) 단일 GPU로 실용적으로 구동 가능한 것은 대체로 Llama 2 13B 계열 모델입니다.


배경: Ollama와 임베딩

  1. Ollama의 모델 구성
    • Ollama는 주로 Llama 2, Code Llama, Falcon, Mistral, Wizard 등 여러 GGML 포맷의 모델을 지원합니다.
    • 그러나 “임베딩 전용”으로 특화된 모델(예: Sentence-Transformer류)은 공식 레포지토리에 크게 언급되어 있지 않고, 대체로 생성형 LLM(예: Llama 2) 위주입니다.
    • Ollama는 내부적으로 ollama embed 같은 명령을 통해 LLM에서 임베딩 벡터를 추출할 수 있으나, 이는 곧바로 임베딩 파인튜닝이 된 모델을 의미하지는 않습니다.
  2. 일반 LLM을 임베딩에 활용하는 한계
    • 원래 임베딩은 문서 유사도, 검색, 군집화 등에 쓰이므로, Sentence-Transformers 계열처럼 임베딩 특화 학습을 거친 모델이 품질이 더 높습니다.
    • 그러나 Ollama가 “임베딩에 특화된” Sentence-Transformer 계열 모델을 공식적으로 제공하진 않으므로, 현실적으로는 Ollama에서 지원하는 Llama 2 등을 임베딩에 활용하는 방식이 됩니다.

RTX 4090에서의 모델 선택

  • RTX 4090 (VRAM 24GB) 단일 카드에 올릴 수 있는 최대 크기 모델은 보통 13B~30B 규모입니다.
  • Llama 2 70B 정도로 올라가면, 4-bit 양자화(ggml-q4 등)로도 메모리가 빠듯하고 실제 추론 속도도 매우 느려집니다.
  • Falcon 40B나 Llama 2 30B도 4bit라면 어느 정도 가능하지만, 속도 면에서 13B 모델보다 훨씬 느려질 수 있습니다.
  • 따라서 “품질과 속도 모두를 고려” 하면, Llama 2 13B가 사실상 가장 현실적인 상한선입니다.

왜 Llama 2 13B가 적절한가?

  1. 모델 크기와 성능의 균형
    • 13B 모델은 7B보다 확실히 성능이 좋고, 30B~70B 모델 대비 VRAM 부담이 훨씬 적습니다.
  2. 양자화 시에도 무난한 성능
    • 4-bit(ggml-q4), 5-bit(ggml-q5) 등으로 양자화해도 품질이 비교적 괜찮게 유지되며, 24GB로 충분히 구동 가능합니다.
  3. 영어 데이터에 대한 성능
    • Llama 2는 영어를 중심으로 학습된 모델이므로 임베딩 추출 시에도 영어권에서는 어느 정도 일관된 품질을 기대할 수 있습니다.

결론 및 권장 사항

  • “Ollama에서 제공하는 임베딩 모델”이라는 범주 안에서, RTX 4090 한 장으로 가장 성능 좋게 구동할 수 있는 영어 임베딩용 모델은 Llama 2 13B 계열입니다.
  • 다만, 실제 임베딩 업무(문장 유사도, 문서 검색 등) 품질을 극대화하려면, 가능하다면 Sentence-Transformer 계열의 임베딩 특화 모델(예: Instructor, all-mpnet, MiniLM 등)을 별도로 사용하는 방법도 고려하는 것이 일반적으로 더 낫습니다.
  • Ollama 생태계 내에서 굳이 LLM만 쓰고자 한다면, 13B 모델을 4~5bit 정도로 양자화해 쓰는 것이 RTX 4090 환경에서 가장 실용적인 선택입니다.

'언어 AI (NLP) > LLM & RAG' 카테고리의 다른 글

SFT 와 RLHF  (1) 2025.02.04
ollama 참고  (0) 2025.01.23
RAG 주의점 (Document Loader)  (0) 2025.01.21
Memory  (3) 2025.01.14
HyDE 와 Re-ranking  (1) 2025.01.09