qdrant/fastembed
Fast, Accurate, Lightweight Python library to make State of the Art Embedding
FastEmbed — 빠르고 가벼운 임베딩 생성 라이브러리
FastEmbed란 무엇인가
FastEmbed는 텍스트, 이미지, 문서를 임베딩(embeddings) — 입력 데이터의 의미를 담은 긴 숫자 목록 — 으로 변환하는 Python 라이브러리입니다. 이러한 임베딩은 시맨틱 검색, 검색 증강 생성(RAG), 추천 시스템의 핵심 구성 요소입니다.
핵심 아이디어
대부분의 임베딩 라이브러리는 무겁습니다. GPU가 필요하고, 수 GB의 PyTorch 의존성을 다운로드해야 하며, 실행 속도가 느립니다. FastEmbed는 다른 접근 방식을 취합니다:
- ONNX Runtime 사용 — PyTorch 대신 더 간결하고 빠른 실행 엔진 사용
- GPU 불필요 — 일반 CPU에서 실행되므로 AWS Lambda와 같은 서버리스 환경에 적합
- 적은 의존성 — 가벼운 설치
- 데이터 병렬 처리 — 코어 간에 작업을 분할하여 대규모 데이터 세트를 더 빠르게 처리
주요 기능
FastEmbed는 여러 유형의 모델을 지원합니다:
| 유형 | 목적 | 모델 예시 |
|---|---|---|
| 밀집 텍스트 임베딩 | 표준 시맨틱 검색 — 각 텍스트가 하나의 벡터가 됨 | BAAI/bge-small-en-v1.5 (384 차원) |
| 희소 텍스트 임베딩 | 중요한 단어를 강조하는 키워드 스타일 매칭 | SPLADE++ |
| 늦은 상호작용 (ColBERT) | 더 높은 정확도를 위한 세밀한 토큰 수준 매칭 | colbert-ir/colbertv2.0 |
| 이미지 임베딩 | 이미지를 벡터로 변환 | CLIP 비전 모델 |
| 멀티모달 늦은 상호작용 (ColPali) | 이미지와 텍스트를 함께 매칭 — 예: PDF 스크린샷 내부 검색 | Qdrant/colpali-v1.3-fp16 |
| 리랭커 (Rerankers) | 검색 결과의 순위를 다시 매기기 위해 문서와 쿼리의 관련성 점수 산정 | Xenova/ms-marco-MiniLM-L-6-v2 |
왜 중요한가
임베딩은 현대 AI 검색의 기초입니다. FastEmbed는 임베딩 생성을 빠르고 저렴하게 만들어 서버리스 함수를 포함한 어디에서나 실행할 수 있게 하며, 벡터 데이터베이스인 Qdrant와 직접 통합되어 대규모로 임베딩을 저장하고 검색할 수 있습니다.
주요 세부 정보
- 기본 모델: Flag Embedding (BAAI/bge-small-en-v1.5), MTEB 벤치마크에서 우수한 성능 발휘
- 정확도: OpenAI의 Ada-002 임베딩 모델보다 우수한 성능
- 사용자 정의 모델: 사전 지원되는 목록 외에도 자체 ONNX 모델 추가 가능
- GPU 지원: CUDA 가속을 위한 선택적
fastembed-gpu패키지 제공 - 간단한 API: 몇 줄의 Python 코드로 문서, 이미지 임베딩 또는 결과 리랭킹 가능
사용 예시 (텍스트)
from fastembed import TextEmbedding
documents = ["This is a document about AI.", "Another document about search."]
model = TextEmbedding() # 처음 사용 시 기본 모델 다운로드
embeddings = list(model.embed(documents)) # 각 문서는 384차원 벡터로 변환됨
결론
FastEmbed는 시맨틱 검색, RAG 파이프라인 또는 벡터 기반 AI 애플리케이션을 구축하는 모든 사람을 위한 실용적인 도구입니다. 특수 하드웨어 없이도 빠르고 가벼운 임베딩 생성을 가능하게 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트