TextEmbed - 임베딩 추론 서버

TextEmbed - 임베딩 추론 서버

Keval Dekivadiya가 유지보수하는 TextEmbed는 Apache-2.0 License로 배포돼요.

TextEmbed는 벡터 임베딩을 제공하기 위해 설계된 고처리량·저지연 REST API예요. 다양한 sentence-transformer 모델과 프레임워크를 지원해서 자연어 처리의 여러 애플리케이션에 적합해요.

출처: 문서

본문

기능 (Features)

  • 고처리량 & 저지연 (High Throughput & Low Latency): 많은 요청을 효율적으로 처리하도록 설계됐어요.
  • 유연한 모델 지원 (Flexible Model Support): 다양한 sentence-transformer 모델과 함께 동작해요.
  • 확장성 (Scalable): 더 큰 시스템에 쉽게 통합되고 수요에 따라 확장돼요.
  • 배치 처리 (Batch Processing): 더 빠르고 좋은 추론을 위한 배치 처리를 지원해요.
  • OpenAI 호환 REST API 엔드포인트: OpenAI 호환 REST API 엔드포인트를 제공해요.
  • 한 줄 명령 배포 (Single Line Command Deployment): 단일 명령으로 여러 모델을 배포해 효율적으로 배포할 수 있어요.
  • 임베딩 포맷 지원 (Support for Embedding Formats): 더 빠른 검색을 위해 binary, float16, float32 임베딩 포맷을 지원해요.

시작하기 (Getting Started)

사전 준비사항 (Prerequisites)

Python 3.10 이상이 설치되어 있어야 해요. 또한 필요한 의존성을 설치해야 해요.

PyPI를 통한 설치 (Installation via PyPI)

필요한 의존성을 설치해요.

!pip install -U textembed

TextEmbed 서버 시작하기 (Start the TextEmbed Server)

원하는 모델로 TextEmbed 서버를 시작해요.

!python -m textembed.server --models sentence-transformers/all-MiniLM-L12-v2 --workers 4 --api-key TextEmbed

llama-index와 함께 사용하는 예시

여기 llama-index를 시작하는 간단한 예시가 있어요.

from llama_index.embeddings.textembed import TextEmbedEmbedding


# Initialize the TextEmbedEmbedding class
embed = TextEmbedEmbedding(
    model_name="sentence-transformers/all-MiniLM-L12-v2",
    base_url="http://0.0.0.0:8000/v1",
    auth_token="TextEmbed",
)


# Get embeddings for a batch of texts
embeddings = embed.get_text_embedding_batch(
    [
        "It is raining cats and dogs here!",
        "India has a diverse cultural heritage.",
    ]
)


print(embeddings)
[[0.07680495083332062, -0.05040504038333893, 0.11367770284414291, 0.05823838338255882, 0.022227859124541283, -0.04733077064156532, 0.05152371898293495, ... (아래 참고)]

출력 예시는 생략하지만, 위 코드를 실행하면 각 텍스트에 대한 384차원의 임베딩 벡터가 반환돼요.

자세한 내용은 문서를 읽어 보세요.

더 알아보기 (Learn more)