Text Generation Inference简介
Text Generation Inference (TGI)是Hugging Face推出的用于部署和服务大语言模型(LLMs)的工具包。TGI为最流行的开源LLMs提供高性能文本生成能力,包括Llama、Falcon、StarCoder、BLOOM、GPT-NeoX等模型。
TGI具有以下主要特性:
- 简单易用的启动器,可快速服务主流LLMs
- 生产就绪(支持OpenTelemetry分布式追踪、Prometheus指标等)
- 支持多GPU张量并行,加速推理
- 使用Server-Sent Events (SSE)进行令牌流式传输
- 连续批处理incoming请求,提高总吞吐量
- 与OpenAI Chat Completion API兼容的Messages API
- 针对主流架构优化的Transformers代码,使用Flash Attention和Paged Attention
- 支持多种量化方案:bitsandbytes、GPT-Q、EETQ、AWQ、Marlin、fp8等
- 使用Safetensors加载权重
- 支持大语言模型水印
- logits warper(温度缩放、top-p、top-k、重复惩罚等)
- 停止序列、日志概率等功能
安装使用
TGI提供了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:2.2.0 --model-id $model
然后就可以通过HTTP请求使用模型:
curl 127.0.0.1:8080/generate_stream \
-X POST \
-d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":20}}' \
-H 'Content-Type: application/json'
TGI还提供了与OpenAI Chat Completion API兼容的接口:
curl localhost:3000/v1/chat/completions \
-X POST \
-d '{
"model": "tgi",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "What is deep learning?"
}
],
"stream": true,
"max_tokens": 20
}' \
-H 'Content-Type: application/json'
学习资源
通过本文的介绍,相信读者已经对TGI有了初步的了解。TGI作为一个强大而灵活的LLM推理工具,值得深入学习和使用。欢迎探索更多高级特性,充分发挥TGI的潜力!