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.5とSnowflake/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 トークンを処理。