RAG : sentence-transformers에서 자주 쓰이는 모델 정리 (260707)

WonTerry·2026년 7월 7일

LLM

목록 보기
75/94

sentence-transformers에서 자주 쓰이는 모델들을 정리

sentence-transformers에서 자주 쓰이는 모델들을 정리했습니다. 한국어 처리 여부를 기준으로 나눴어요.

한국어 특화 모델

모델명벡터 차원최대 토큰특징
jhgan/ko-sroberta-multitask768128한국어 STS/NLI 데이터로 학습, 문장 유사도 태스크에 최적화. 가장 널리 쓰이는 한국어 임베딩 모델
jhgan/ko-sroberta-nli768128NLI(자연어 추론) 데이터 위주로 학습, 문장 함의 관계 파악에 강함
BM-K/KoSimCSE-roberta768128SimCSE 방식(대조 학습)으로 학습, 문장 유사도 성능이 좋음
snunlp/KR-SBERT-V40K-klueNLI-augSTS768128KLUE 데이터 기반, 서울대 자연어처리 연구실 배포
BM-K/KoDiffCSE-roberta768128Diff-CSE 방식, 미묘한 의미 차이 구분에 강점

다국어 모델 (한국어 포함, 범용성 좋음)

모델명벡터 차원최대 토큰특징
intfloat/multilingual-e5-large1024512100개 이상 언어 지원, 검색/RAG 성능 우수. query/passage 접두사 필요 (query: , passage: )
intfloat/multilingual-e5-base768512large의 경량 버전, 속도와 성능 균형
intfloat/multilingual-e5-small384512가장 가벼움, 빠른 처리 필요할 때
sentence-transformers/paraphrase-multilingial-mpnet-base-v276812850개 언어 지원, 패러프레이즈 탐지에 강함
BAAI/bge-m310248192다국어+장문 지원, dense/sparse/multi-vector 검색 동시 지원 (하이브리드 검색용)
sentence-transformers/distiluse-base-multilingual-cased-v2512128가볍고 빠름, 다국어 지원하지만 성능은 위 모델들보다 낮음

영어 전용 (참고용, 한국어 성능은 떨어짐)

모델명벡터 차원최대 토큰특징
sentence-transformers/all-MiniLM-L6-v2384256가장 유명한 경량 모델, 속도 매우 빠름, 영어 전용에 가까움
sentence-transformers/all-mpnet-base-v2768384영어 문장 임베딩 품질이 가장 좋다고 알려진 모델 중 하나

선택 가이드

  • 한국어만 다룬다면jhgan/ko-sroberta-multitask 또는 BM-K/KoSimCSE-roberta가 무난한 첫 선택
  • 다국어 데이터(한/영 섞임) + 검색/RAG 용도intfloat/multilingual-e5-large 또는 BAAI/bge-m3
  • 속도가 중요하고 정확도는 덜 중요multilingual-e5-small 또는 distiluse-base-multilingual-cased-v2
  • 긴 문서(8K 토큰)를 통째로 임베딩해야bge-m3가 유일하게 긴 컨텍스트 지원

참고로 e5 계열 모델은 입력 앞에 "query: " 또는 "passage: " 접두사를 붙여야 성능이 제대로 나오니, 사용 시 주의하세요.


내가 주로 사용한 모델 (260707)

all-MiniLM-L6-v2

all-MiniLM-L6-v2는 sentence-transformers 생태계에서 가장 유명하고 가장 많이 다운로드되는 모델이지만, 한국어 작업에는 추천하지 않습니다. 이유를 자세히 설명드릴게요.

상세 스펙

항목내용
벡터 차원384
최대 토큰256
모델 크기약 80MB (매우 가벼움)
기반 구조MiniLM (BERT를 경량화한 구조), 6개 레이어
학습 데이터10억 개 이상의 영어 문장 쌍 (Reddit, S2ORC, WikiAnswers 등)
임베딩 속도매우 빠름 (CPU에서도 실시간 처리 가능한 수준)

장점

  • 속도: 레이어가 6개뿐이라 CPU에서도 초당 수천 문장을 처리할 수 있을 정도로 빠릅니다.
  • 크기: 모델 파일이 작아 배포나 서버 리소스 제약이 있는 환경에 적합합니다.
  • 영어 성능: 영어 문장 유사도, 클러스터링, 의미 검색에서는 크기 대비 성능이 뛰어나 여전히 널리 쓰입니다.

단점 (특히 한국어 관점에서)

  • 한국어 학습 데이터가 사실상 없음: 학습 코퍼스가 영어 위주라 한국어 문장을 넣으면 토크나이저 단계에서부터 손실이 크고, 의미를 제대로 벡터화하지 못합니다.
  • 토크나이저 한계: WordPiece 기반 영어 토크나이저라 한글 음절/형태소를 비효율적으로 쪼개서 처리합니다.
  • 실제로 한국어 문장 두 개를 넣고 유사도를 계산해보면, 의미가 전혀 달라도 벡터가 비슷하게 나오는 경우가 흔합니다.

언제 쓰면 좋은가

  • 영어 텍스트만 다루는 프로젝트
  • 임베딩 속도가 정확도보다 훨씬 중요한 경우 (예: 대량의 로그 클러스터링, 프로토타입)
  • 리소스가 매우 제한적인 임베디드/엣지 환경

한국어가 조금이라도 섞인 프로젝트라면 이전에 말씀드린 jhgan/ko-sroberta-multitaskintfloat/multilingual-e5-small(384차원으로 크기도 비슷함)을 쓰는 게 훨씬 나은 결과를 줄 겁니다.

profile
Hello, I'm Terry! 👋 Enjoy every moment of your life! 🌱 My current interests are Signal processing, Machine learning, Python, Database, LLM & RAG, MCP & ADK, Multi-Agents, Physical AI, ROS2...

0개의 댓글