Hugging Face 嵌入容器 for Amazon SageMaker 发布

Hugging Face 已宣布 Hugging Face 嵌入容器 for Amazon SageMaker 正式上线(GA)。该专为推理设计的容器使 AWS 客户能够高效部署开源嵌入模型,以构建生成式 AI 应用,特别是检索增强生成(RAG)系统。

通过 Text Embedding Inference (TEI) 实现高性能推理

Hugging Face 嵌入容器由 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(每批 256 token,共 3,900 次请求)在 10 并发线程下的嵌入测试:

GPU 性能(ml.g5.xlarge

  • 硬件: 1× NVIDIA A10G GPU。
  • 吞吐量: 大约 130 请求/秒。
  • 延迟: 在 10 并发请求时为 4ms。
  • 总处理时间: 约 30 秒处理 100 万 token。

CPU 性能(ml.c6i.2xlarge

  • 硬件: 4 核 Intel Ice-Lake vCPU,8GB 内存。
  • 吞吐量: 大约 5 请求/秒(包括从欧洲到 us-east-1 的网络延迟)。
  • 延迟: 在 10 并发请求时为 2 秒(由 CloudWatch 测量)。
  • 总处理时间: 约 841 秒处理 100 万 token。

Sources