Text Generation Inference: 高性能大语言模型推理服务
Text Generation Inference (TGI) 是一个用于部署和服务大语言模型(LLM)的强大工具包。它由 Hugging Face 开发并在生产环境中使用,为 Hugging Chat、Inference API 和 Inference Endpoint 等服务提供支持。TGI 基于 Rust、Python 和 gRPC 构建,旨在提供高性能的文本生成推理能力。
主要特性
TGI 实现了许多先进的功能,使其成为部署和服务开源 LLM 的理想选择:
- 简单易用的启动器,可服务最流行的 LLM 模型
- 生产就绪,支持分布式追踪和 Prometheus 指标
- 多 GPU 张量并行,加速推理
- 使用服务器发送事件(SSE)实现 token 流式传输
- 连续批处理传入请求,提高总吞吐量
- 兼容 OpenAI Chat Completion API 的消息 API
- 针对主流架构优化的 Transformer 代码,使用 Flash Attention 和 Paged Attention
- 支持多种量化方法,如 bitsandbytes、GPT-Q、EETQ、AWQ、Marlin 和 fp8
- 使用 Safetensors 加载权重
- 支持大语言模型水印
- Logits warper 功能(温度缩放、top-p、top-k、重复惩罚等)
- 支持停止序列
- 输出对数概率
- 推测功能,可将延迟降低约 2 倍
- 支持引导和 JSON 输出,可加速推理并确保输出符合规范
- 自定义提示生成
- 支持微调模型
硬件支持
TGI 广泛支持各种硬件平台,包括:
- Nvidia GPU
- AMD GPU
- AWS Inferentia
- Intel GPU
- Habana Gaudi
- Google TPU
这种广泛的硬件支持使 TGI 能够在各种环境中灵活部署。
快速开始
使用 TGI 最简单的方法是通过官方 Docker 容器。用户只需运行一个简单的 Docker 命令,即可启动 TGI 服务并加载所需的模型。例如:
docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data \
ghcr.io/huggingface/text-generation-inference:2.4.0 --model-id $model
启动服务后,用户可以通过 HTTP 请求轻松地与模型进行交互,生成文本或进行对话。
API 和文档
TGI 提供了全面的 REST API,用户可以通过 Swagger UI 查看详细的 API 文档。此外,TGI 还提供了与 OpenAI Chat Completion API 兼容的消息 API,方便用户集成和迁移现有的应用程序。
高级功能
TGI 还提供了许多高级功能,如:
- 支持访问私有或受限模型
- 分布式追踪
- 灵活的量化选项
- 本地安装和开发选项
这些功能使 TGI 成为一个功能丰富、灵活且强大的 LLM 部署解决方案。
总结
Text Generation Inference 是一个全面的工具包,为部署和服务大语言模型提供了高性能、可扩展和灵活的解决方案。无论是用于研究、开发还是生产环境,TGI 都能满足各种需求,使其成为 LLM 领域的重要工具。