Hugging Face 嵌入容器於 Amazon SageMaker 發布

透過 Text Embedding Inference (TEI) 的高效能推論

Hugging Face Embedding Container 由 Text Embedding Inference (TEI) 提供動力,這是一種記憶體效能高的解決方案,專為高效能提供嵌入模型服務而設計。TEI 針對包括 E5、GTE、Ember 與 FlagEmbedding 在內的熱門模型族群優化抽取流程。

TEI 驅動容器的主要技術特點包括:

  • 最佳化推論: 使用 Flash Attention、Candle 與 cuBLASLt 以最佳化 transformer 程式碼。
  • 高效資源管理: 實作基於 token 的動態批次處理與 safetensors 權重載入。
  • 快速部署: 具備小型 Docker 映像檔與快速啟動時間,且不需要模型圖形編譯步驟。
  • 生產就緒度: 包含 Prometheus 指標與透過 Open Telemetry 的分散式追蹤。

支援的模型架構

此容器支援廣泛的嵌入模型架構,包括:

  • BERT/CamemBERT: 例子包括 BAAI/bge-large-en-v1.5Snowflake/snowflake-arctic-embed-m-v1.5
  • RoBERTa: 例子包括 sentence-transformers/all-roberta-large-v1
  • XLM-RoBERTa: 例子包括 sentence-transformers/paraphrase-xlm-r-multilingual-v1
  • NomicBert: 例子包括 jinaai/jina-embeddings-v2-base-en
  • JinaBert: 例子包括 nomic-ai/nomic-embed-text-v1.5

部署與效能基準

部署透過 sagemaker Python SDK 管理。使用者可使用 get_huggingface_llm_image_uri 方法取得容器 URI,且針對 CPU 與 GPU 實例提供不同的映像檔。

效能會因所選的實例類型而有顯著差異。以下測試以嵌入 100 萬個 token(共 3,900 個每次 256 token 的請求)且使用 10 個同時執行緒為基礎:

GPU 效能 (ml.g5.xlarge)

  • 硬體: 1 個 NVIDIA A10G GPU。
  • 吞吐量: 約每秒 130 個請求。
  • 延遲: 10 個同時請求時為 4 毫秒。
  • 總處理時間: 約 30 秒處理 100 萬個 token。

CPU 效能 (ml.c6i.2xlarge)

  • 硬體: 4 核心 Intel Ice-Lake vCPU,8GB 記憶體。
  • 吞吐量: 約每秒 5 個請求(包含從歐洲到 us-east-1 的網路延遲)。
  • 延遲: 10 個同時請求時為 2 秒(由 CloudWatch 測量)。
  • 總處理時間: 約 841 秒處理 100 萬個 token。

Sources