huggingface/text-generation-inference:大语言模型推理部署工具

huggingface/text-generation-inference 在 GitHub 上已经拿到 10,854 Star。

这是 Hugging Face 开源的大语言模型推理部署工具,用 Rust、Python 和 gRPC 开发,目前在 Hugging Face 生产环境中用于支撑 Hugging Chat、推理 API 和推理端点服务。该项目目前处于维护模式,后续仅接受 bug 修复、文档优化和轻量维护任务,官方推荐转向 vllm、SGLang、llama.cpp 或 MLX 等推理引擎使用。

1、 核心功能

Text Generation Inference(简称 TGI)主要用于部署和服务大语言模型,为主流开源大模型提供高性能文本生成能力,覆盖 Llama、Falcon、StarCoder、BLOOM、GPT-NeoX 等多个系列。
正文顶部截图
它包含的主要功能有:

  • 简易启动器,可快速部署大部分主流大模型
  • 生产级特性,支持 Open Telemetry 分布式追踪和 Prometheus 指标监控
  • 张量并行,可在多 GPU 环境下提升推理速度
  • 基于 Server-Sent Events 的 Token 流式输出
  • 请求持续批处理,提高整体吞吐量
  • 兼容 OpenAI 聊天补全 API 的 Messages 接口
  • 针对主流架构优化的 Transformers 代码,集成 Flash Attention 和 Paged Attention
  • 支持多种量化方式,包括 bitsandbytes、GPT-Q、EETQ、AWQ、Marlin、fp8
  • 支持 Safetensors 权重加载
  • 内置水印功能,可对生成内容添加隐式标识
  • 支持输出格式约束,可指定 JSON 等输出结构,确保生成内容符合格式要求
  • 支持自定义提示词生成,可通过自定义提示引导模型输出
  • 支持微调模型部署,可使用特定任务微调后的模型提升输出准确率

2、 硬件支持

TGI 支持多种硬件平台部署:

  • Nvidia GPU
  • AMD GPU
  • AWS Inferentia
  • Intel GPU
  • Habana Gaudi
  • Google TPU

3、 部署方式

Docker 部署

官方推荐使用 Docker 容器部署,操作步骤如下:

model=HuggingFaceH4/zephyr-7b-beta
volume=$PWD/data
docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data \
    ghcr.io/huggingface/text-generation-inference:3.3.5 --model-id $model

部署完成后,可通过 curl 发送请求:

curl 127.0.0.1:8080/generate_stream \
    -X POST \
    -d '{"inputs":"什么是深度学习?","parameters":{"max_new_tokens":20}}' \
    -H 'Content-Type: application/json'

也可使用兼容 OpenAI 格式的 Messages API:

curl localhost:8080/v1/chat/completions \
    -X POST \
    -d '{
  "model": "tgi",
  "messages": [
    {
      "role": "system",
      "content": "你是一个有用的助手。"
    },
    {
      "role": "user",
      "content": "什么是深度学习?"
    }
  ],
  "stream": true,
  "max_tokens": 20
}' \
    -H 'Content-Type: application/json'

使用 Nvidia GPU 需提前安装 NVIDIA Container Toolkit,推荐使用 CUDA 12.2 及以上版本的驱动。无 GPU 环境下可移除 --gpus all 参数并添加 --disable-custom-kernels,但 CPU 平台不是该项目的目标运行环境,性能表现一般。

本地安装

也可选择本地安装使用,首先克隆仓库并进入目录:

git clone https://github.com/huggingface/text-generation-inference
cd text-generation-inference

安装 Rust 并创建 Python 虚拟环境(Python 3.9 及以上版本),然后执行安装命令:

BUILD_EXTENSIONS=True make install
text-generation-launcher --model-id mistralai/Mistral-7B-Instruct-v0.2

README区域截图
部署完成后,可通过 /docs 路由查看 OpenAPI 文档,也可访问 https://huggingface.github.io/text-generation-inference 查看在线 Swagger 接口文档。

使用私有或需要权限验证的模型时,可通过 HF_TOKEN 环境变量配置访问令牌,获取 Hugging Face 账号下的 CLI READ 令牌后,启动容器时传入该变量即可。

开源地址:https://github.com/huggingface/text-generation-inference

I READ 令牌后,启动容器时传入该变量即可。

开源地址:https://github.com/huggingface/text-generation-inference

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐