Hugging Face LLM 推理容器 适用于 Amazon SageMaker
Hugging Face 发布了一个新的 LLM 推理容器(DLC),适用于 Amazon SageMaker,使用户能够在安全、受管理的环境中部署开源大型语言模型(LLMs)。该容器由 Text Generation Inference (TGI) 提供动力,TGI 是一个专门构建的解决方案,旨在优化 LLMs 的服务以实现高并发和低延迟。
使用 Text Generation Inference (TGI) 的高性能推理
Hugging Face LLM DLC 利用 TGI 为最流行的开源 LLM 架构提供多种技术优化。这些优化包括:
- 张量并行和自定义 CUDA 内核:在多个 GPU 上分发模型权重以处理更大的模型并提高速度。
- 持续批处理:通过动态批量处理传入请求来提高总吞吐量。
- Flash-Attention:使用经过优化的 transformer 代码进行推理以提高效率。
- 量化:支持
bitsandbytes以减少模型内存占用。 - 加速权重加载:利用
safetensors减少启动时间。 - 高级生成控制:包括 logits 调节器(温度缩放、top-k、重复惩罚)、停止序列、对数概率以及通过 Server-Sent Events (SSE) 进行的 token 流。
- 水印:为大型语言模型实现水印以追踪生成内容。
支持的模型架构
LLM 推理容器官方支持广泛的模型架构,包括:
- BLOOM / BLOOMZ
- Llama (包括 Vicuna、Alpaca 和 Koala)
- Falcon 7B / 40B
- GPT-NeoX 20B (包括 Pythia、Lotus、Rosey、Chip、RedPajama 和 Open Assistant)
- StarCoder / SantaCoder
- FLAN-T5-XXL (T5-11B)
- Galactica
- MT0-XXL
在 Amazon SageMaker 上的部署工作流程
使用新的 DLC 部署 LLM 通过 sagemaker Python SDK 涉及一个精简的流程。工作流程包括以下步骤:
1. 检索容器
用户使用 get_huggingface_llm_image_uri 方法检索特定的容器 URI,指定后端、区域和版本(例如,版本 1.0.3)。
2. 模型配置
模型使用 HuggingFaceModel 类进行部署。关键配置参数包括:
HF_MODEL_ID: 来自 Hugging Face Hub 的模型 ID(例如,OpenAssistant/pythia-12b-sft-v8-7k-steps)。SM_NUM_GPUS: 每个副本使用的 GPU 数量。MAX_INPUT_LENGTH和MAX_TOTAL_TOKENS: 输入和输出长度的约束。HF_MODEL_QUANTIZE: 一个可选设置,用于启用bitsandbytes量化以进行成本优化。
3. 端点部署
模型使用 deploy 方法部署到端点。例如,ml.g5.12xlarge 实例(配备 4 块 NVIDIA A10G GPU 和 96GB GPU 内存)可以通过 TGI 自动将模型分片到所有可用的 GPU 上。
推理和生成参数
部署后,端点支持多种生成参数来控制 LLM 的输出:
- 随机性和采样:
temperature、top_p、top_k和do_sample。 - 长度和重复:
max_new_tokens和repetition_penalty。 - 约束:
stop序列以终止生成。 - 其他控制:
seed用于可重复性,typical_p,以及return_full_text以确定提示是否包含在输出中。
通过将 SageMaker 端点与如 Gradio 这样的前端界面相结合,此基础设施使得可扩展的 AI 应用程序的创建成为可能,例如聊天机器人和虚拟助手。