Amazon SageMaker 用 Hugging Face Embedding コンテナのリリース

Hugging Face は、Amazon SageMaker 用 Hugging Face Embedding コンテナの一般提供(GA)を発表しました。この目的特化型推論コンテナにより、AWS の顧客はオープン埋め込みモデルを効率的にデプロイし、生成 AI アプリケーション、特に Retrieval‑Augmented Generation(RAG)システムを構築できます。

テキスト埋め込み推論 (TEI) による高性能推論

Hugging Face Embedding コンテナは、テキスト埋め込み推論(TEI)によって動作します。TEI は、埋め込みモデルの高性能サービング向けに設計されたメモリ効率の高いソリューションです。TEI は、E5、GTE、Ember、FlagEmbedding などの人気モデルファミリーの抽出プロセスを最適化します。

TEI 搭載コンテナの主な技術的特徴は次のとおりです:

  • Optimized Inference: Flash Attention、Candle、cuBLASLt を利用してトランスフォーマーコードを最適化します。
  • Efficient Resource Management: トークンベースの動的バッチングと safetensors 重みロードを実装します。
  • Rapid Deployment: 小さな Docker イメージと高速な起動時間を特徴とし、モデルグラフのコンパイルステップは不要です。
  • Production Readiness: 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 インスタンス用に別々のイメージが用意されています。

パフォーマンスは選択したインスタンスタイプに大きく依存します。1,000,000 トークン(256 トークンずつのリクエスト 3,900 件)を 10 スレッドで埋め込むテストに基づく結果は以下の通りです:

GPU パフォーマンス (ml.g5.xlarge)

  • Hardware: 1x NVIDIA A10G GPU.
  • Throughput: 約 130 リクエスト/秒。
  • Latency: 10 同時リクエストで 4ms。
  • Total Processing Time: 約 30 秒で 1,000,000 トークンを処理。

CPU パフォーマンス (ml.c6i.2xlarge)

  • Hardware: 4 Intel Ice-Lake vCPU、8GB メモリ。
  • Throughput: 約 5 リクエスト/秒(ヨーロッパから us-east-1 へのネットワーク遅延を含む)。
  • Latency: 10 同時リクエストで 2 秒(CloudWatch 計測)。
  • Total Processing Time: 約 841 秒で 1,000,000 トークンを処理。

Sources