MinishLab/model2vec

Fast State-of-the-Art Static Embeddings

Model2Vec – 빠르고 작은 정적 임베딩 모델

무엇인가요 – Model2Vec는 어떤 문장 변환기 (전체 문장에 대해 벡터를 생성하는 신경망 모델)를 정적 임베딩 모델로 변환하는 파이썬 라이브러리입니다. 정적 모델은 각 토큰(워드피스/서브워드)에 대해 고정된 벡터를 저장하므로, 매우 작고(8~30MB), 매우 빠르며(CPU에서 최대 500배 빠름)도 불구하고 표준 벤치마크 세트에서 최첨단 품질을 유지할 수 있습니다.


주요 기능 (README에 설명됨)

기능 당신에게 의미하는 바
크기 축소 원래 문장 변환기보다 최대 50배 작아집니다 (예: 32M 파라미터 모델이 디스크상 약 30MB로 축소됨).
속도 모델이 전체 트랜스포머를 실행하는 대신 토큰 벡터를 검색하기만 하므로 CPU에서 추론이 수백 배 빨라집니다.
제로 데이터 증류 학습 코퍼스가 필요 없이 CPU에서 약 30초 내에 기존 문장 변환기에서 Model2Vec 모델을 생성할 수 있습니다.
분류용 미세 조정 증류 후, 정적 벡터 위에 가벼운 분류기를 추가로 훈련시켜 맞춤 작업에 사용할 수 있습니다.
경량 종속성 핵심 패키지는 numpy만 의존하며, 선택적 확장으로 증류(model2vec[distill]) 및 훈련(model2vec[train])이 가능합니다.
통합 인기 있는 생태계인 Sentence-TransformersLangChain과 즉시 사용 가능하며, 모델은 Hugging Face 허브에 호스팅되어 from_pretrained로 쉽게 로드할 수 있습니다.
오픈소스 및 MIT 라이선스 상용 프로젝트에 자유롭게 사용, 수정, 내장 가능합니다.

일반적인 사용 사례

  • 검색 / RAG – 유사성 검색 인덱스 구축을 위한 빠른 토큰 수준 임베딩.
  • 텍스트 분류 – 정적 벡터 위에 가벼운 분류기 훈련.
  • 클러스터링 / 시각화 – 대규모 코퍼스의 임베딩을 저비용으로 계산.
  • 저자원 배포 – 메모리/CPU가 제한된 엣지 장치나 서버에 임베딩 가능.

빠른 시작 (README에서)

# 핵심 라이브러리 설치 (numpy만 필요)
pip install model2vec
from model2vec import StaticModel

# Hugging Face에서 사전 증류된 모델 로드
model = StaticModel.from_pretrained("minishlab/potion-base-32M")

# 문장 임베딩 얻기
emb = model.encode(["It's dangerous to go alone!", "It's a secret to everybody."])

# 또는 토큰 수준 임베딩 얻기
token_emb = model.encode_as_sequence(["It's dangerous to go alone!"])

자신만의 모델 증류 (옵션, distill 확장 필요):

pip install model2vec[distill]
from model2vec.distill import distill
m2v = distill(model_name="BAAI/bge-base-en-v1.5")   # CPU에서 약 30초
m2v.save_pretrained("my_m2v_model")

분류용 미세 조정 (옵션, train 확장 필요):

pip install model2vec[train]
from model2vec.train import StaticModelForClassification
from datasets import load_dataset

clf = StaticModelForClassification.from_pretrained("minishlab/potion-base-32M")
ds = load_dataset("setfit/subj")
clf.fit(ds["train"]["text"], ds["train"]["label"])
report = clf.evaluate(ds["test"]["text"], ds["test"]["label"])

모델 카탈로그 (요약)

모델 언어 기반 문장 변환기 파라미터 수 일반적인 작업
potion-base-32M 영어 bge-base-en-v1.5 32M 일반 목적
potion-multilingual-128M 다국어 bge-m3 128M 일반 목적
potion-retrieval-32M 영어 bge-base-en-v1.5 32M 검색
potion-base-8M 영어 bge-base-en-v1.5 7.5M 일반 목적 (가장 작음)
potion-code-16M-v2 코드 CodeRankEmbed 16M 코드 임베딩
모든 모델은 Hugging Face 허브에 호스팅되어 있으며, StaticModel.from_pretrained로 로드 가능합니다.

문서 및 커뮤니티


라이선스 및 인용

  • 라이선스 – MIT (허용성 높음, 상용 친화적).
  • 인용 – 학술용으로 제공된 BibTeX 항목.

요약

Model2Vec는 고전적인 정적 임베딩(GloVe 등)의 속도와 크기의 이점을 유지하면서도, 최신 트랜스포머 기반 문장 인코더의 품질을 그대로 유지합니다. 검색 증강 생성, 디바이스 내 NLP, 대규모 인덱싱 시나리오 등에서 빠르고 메모리가 적은 텍스트 표현이 필요한 모든 사람에게 실용적인 도구입니다.

관련