跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
RustAI算法

LLM 推理加速框架 Text Generation Inference (TGI) 使用指南

Text Generation Inference (TGI) 是 Hugging Face 推出的用于部署和服务大型语言模型的开源工具。它支持张量并行、连续批处理、多种量化方案及 Flash Attention 优化。 TGI 的核心功能、本地编译安装步骤(基于 Rust)、Docker 部署方式、模型运行参数配置以及性能基准测试方法。通过 TGI,开发者可以实现低延迟的 LLM 推理服务,并根据业务需求调整批处理大小和硬件配置以优化 Token 生成效率。

zhang发布于 2025/2/7更新于 2026/10/25101 浏览
LLM 推理加速框架 Text Generation Inference (TGI) 使用指南

Text Generation Inference (TGI)

Text Generation Inference (TGI) 是由 Hugging Face 发布的文本生成推理工具包,专为部署和服务大型语言模型 (LLM) 设计。它实现了多项关键功能以提升推理性能和可扩展性。

核心功能

  • 分布式跟踪:集成 Prometheus 指标。
  • 张量并行:支持在多个 GPU 上实现更快的推理速度。
  • 令牌流:使用服务器发送事件 (SSE) 进行流式输出。
  • 连续批处理:动态管理请求批次以提高吞吐量。
  • 优化内核:在最流行的架构上使用 Flash Attention 和 Paged Attention 进行推理优化。
  • 量化支持:包括 bitsandbytes、GPT-Q、EETQ、AWQ 等。
  • 权重加载:支持 Safetensors 格式。
  • Logits 处理器:支持温度缩放、top-p、top-k、重复惩罚等。
  • 停止序列与对数概率:控制生成结束条件并获取概率信息。
  • 自定义提示与微调:支持指导模型输出及利用微调模型提升特定任务性能。

支持的硬件

兼容 NVIDIA、AMD、Intel GPU、Inferentia 及 Gaudi 等硬件设备。

本地运行大模型

环境准备

  1. 安装 Rust

    sudo apt-get install libssl-dev gcc -y
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source $HOME/.cargo/env
    
  2. 安装 Protoc

    PROTOC_ZIP=protoc-21.12-linux-x86_64.zip
    curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v21.12/$PROTOC_ZIP
    sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
    sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
    rm -f $PROTOC_ZIP
    
  3. 编译 TGI

    git clone https://github.com/huggingface/text-generation-inference.git
    cd text-generation-inference
    conda activate llm-plus
    BUILD_EXTENSIONS=True make install -j
    

启动模型

使用以下命令启动模型服务:

text-generation-launcher --model-id /path/to/model --trust-remote-code --port 4000

若遇到 ExLlama 相关错误,可修改模型配置文件 config.json,设置 "use_exllama": false。

常用参数说明

可通过 -h 查看完整参数列表。主要参数包括:

  • --model-id: 模型路径或 HuggingFace Hub ID。
  • --quantize: 量化类型,可选 awq, eetq, gptq, bitsandbytes 等。
  • --num-shard: 分片数量,用于多卡并行。
  • --max-concurrent-requests: 最大并发请求数。
  • --dtype: 数据类型,如 float16, bfloat16。
  • --cuda-memory-fraction: CUDA 显存占用比例。

调用示例

使用 curl 发送请求:

curl 127.0.0.1:4000/generate \
    -X POST \
    -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":20}}' \
    -H 'Content-Type: application/json'

Docker 部署

推荐使用 Docker 简化依赖管理:

docker run --gpus all -p 4000:80 huggingface/text-generation-inference:latest \
  --model-id <MODEL_ID> --port 80

TGI Benchmark

TGI 提供了内置的性能基准测试工具,用于评估不同配置下的推理性能。

运行基准测试

  1. 安装基准工具

    make install-benchmark
    
  2. 启动服务与测试

    text-generation-launcher --model-id <MODEL_PATH> --trust-remote-code --port 4000
    text-generation-benchmark --tokenizer-name <TOKENIZER_PATH> \
      --batch-size 1 --batch-size 2 --batch-size 4 --batch-size 8 \
      --batch-size 16 --batch-size 32 --batch-size 64
    
  3. 结果分析

    • Batch Size: 通过 Tab 键切换不同批大小,观察性能变化。
    • 延迟指标: p50、p90、p99 表示大多数情况下的延迟分布。
    • Token 树: 监控 token 数量和延迟关系。若延迟随 Token 增加显著上升,需寻找拐点以确定最佳配置。
    • 硬件调整: 若 Token 数量不足导致延迟高,可增加显卡;若 Token 过多,可考虑降低硬件配置以节省成本。

注意事项

TGI 依赖 vllm、flash attention、gptq 等组件。建议按源码编译安装顺序为:vllm >> gptq >> flash attention。确保系统环境变量正确配置,特别是 CUDA 版本与 PyTorch/Rust 版本的兼容性。

常见问题

  • 显存溢出: 尝试减小 --max-total-tokens 或 --cuda-memory-fraction。
  • 连接拒绝: 检查防火墙设置及端口是否被占用。
  • 模型加载失败: 确认 --trust-remote-code 已开启,且模型文件完整。

目录

  1. Text Generation Inference (TGI)
  2. 核心功能
  3. 支持的硬件
  4. 本地运行大模型
  5. 环境准备
  6. 启动模型
  7. 常用参数说明
  8. 调用示例
  9. Docker 部署
  10. TGI Benchmark
  11. 运行基准测试
  12. 注意事项
  13. 常见问题

更多推荐文章

查看全部
  • OpenClaw 开源 AI Agent 框架解析
  • 基于 Qt 与 C++ 的经典游戏小球打砖块完整项目实战
  • AI 大模型在金融、医疗、法律等垂直领域的创新应用与突破
  • LogicGame:清华智谱发布大模型规则推理新基准
  • 昇腾平台 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践
  • OpenClaw 跨平台 AI 助手完全使用指南:从入门到精通
  • Spring AOP 核心概念与实战解析
  • Web 服务架构与 I/O 模型详解
  • 基于 OpenCV 的 Python 自动扫雷实现
  • 网络安全行业自学与转行建议
  • 位运算实战:位图与异或消消乐高频算法题解析
  • 基于 Chainlit 的 Phi-3 模型插件开发:思维链可视化与 Token 统计
  • 环形链表、两个数组中的交集与随机链表复制算法解析
  • Android 程序员转行车载开发技术指南
  • Spring Cloud Gateway 核心原理与实战指南
  • 2025 年 12 月 GESP C++ 四级真题解析
  • MySQL 数据类型选型实战与避坑指南
  • 企业如何构建专属垂直领域大模型:架构与实施指南
  • AI 产品经理转型指南:从传统产品到 AI 产品的进阶之路
  • MySQL 数据类型深度解析:选对类型提升性能与空间效率

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online