Hugging Face TGI(Text Generation Inference)
Hugging Face TGI,全称 Text Generation Inference,是 Hugging Face 推出的 高性能大语言模型推理框架,专为 部署、服务和推理大语言模型(LLMs) 而优化,支持 多 GPU、推理加速、量化、并发访问、OpenAI API 接口 等功能。
1. TGI 是什么?
Hugging Face TGI 是一套用于 高性能推理大模型的后端服务器框架,主要用于将 Hugging Face 上的模型部署为可访问的 API 服务。
它为以下目标而设计:
- 高效、低延迟的文本生成推理
- 支持多种模型格式(如
transformers
、GGUF
、Optimum
) - 多用户并发
- 可部署为本地服务或推送到 Hugging Face Spaces(如 ChatUI)
2. TGI 的核心特点
特性 | 描述 |
---|---|
多 GPU 支持 | 使用 tensor parallelism 加速推理 |
模型热加载 | 支持多模型快速切换部署 |
OpenAI API 兼容 | 可替代 openai.ChatCompletion 接口 |
支持量化模型 | 支持 bitsandbytes 、GPTQ 等 |
支持 Flash Attention | 提升推理速度 |
兼容 transformers 模型 | 兼容所有 Hugging Face 上的生成模型 |
Token Streaming | 支持 token 逐步输出,低延迟 |
部署简便 | 提供 Docker 镜像,开箱即用 |
支持 REST API / Websocket / CLI | 多方式接入服务 |
3. 安装方式
使用 Docker(推荐):
docker pull ghcr.io/huggingface/text-generation-inference:latest
4. 启动 TGI 示例
以 meta-llama/Llama-2-7b-hf
为例,运行服务:
docker run --gpus all --shm-size 1g --rm -p 8080:80 \
-v $HOME/.cache/huggingface:/data \
ghcr.io/huggingface/text-generation-inference:latest \
--model-id meta-llama/Llama-2-7b-hf \
--port 80 \
--quantize bitsandbytes
访问接口地址:http://localhost:8080/generate
5. 支持的模型类型
模型类别 | 支持情况 |
---|---|
LLaMA / LLaMA 2 | ✅ |
Falcon | ✅ |
Mistral / Mixtral | ✅ |
BLOOM | ✅ |
GPT-NeoX / GPT-J | ✅ |
StarCoder | ✅ |
Baichuan | ✅ |
ChatGLM(部分支持) | ⬛(需改造) |
支持所有 transformers
库中的自回归文本生成模型(AutoModelForCausalLM
)。
6. API 示例调用方式
请求:
POST /generate
请求 JSON 格式
{
"inputs": "What is Hugging Face?",
"parameters": {
"temperature": 0.7,
"max_new_tokens": 100,
"top_p": 0.9
}
}
返回:
{
"generated_text": "Hugging Face is a company specializing in AI and NLP models..."
}
7. 支持的高级推理功能
功能 | 描述 |
---|---|
temperature | 控制生成的随机性 |
top_p / top_k | 控制生成词汇的采样范围 |
max_new_tokens | 控制最大生成 token 数 |
repetition_penalty | 抑制重复生成 |
streaming | 实时输出每个 token |
stop_sequences | 指定停止词,提前终止生成 |
8. OpenAI API 兼容层(可选)
如果你想将 Hugging Face 模型当成 OpenAI API 来使用,可以使用:
text-generation-openai \
--model-url http://localhost:8080 \
--host 0.0.0.0 \
--port 8000
之后可通过 openai.ChatCompletion.create(...)
调用你本地的 Hugging Face 模型!
9. 与 transformers
的对比
维度 | transformers 推理 | TGI |
---|---|---|
部署效率 | 需要写代码 | 一条命令即可 |
多 GPU | 需手动并行化 | 内置支持 |
并发服务 | 不支持 | 支持高并发 REST API |
streaming | 不支持(默认) | 原生支持 |
OpenAI API 兼容 | ❌ | ✅ |
性能优化(Flash Attention) | 手动配置 | 内置自动使用 |
10. 总结
项目 | 描述 |
---|---|
名称 | Text Generation Inference(TGI) |
作用 | 推理部署大语言模型的高性能后端 |
支持模型 | 所有 transformers 的生成类模型 |
适合场景 | LLM 私有部署、低延迟服务、多用户访问、token 流式输出 |
推荐人群 | 企业级 LLM 部署、研究人员、开源模型服务 |