TGI(文本生成推理)

在 Clore.ai GPU 上运行 HuggingFace 文本生成推理(TGI)以进行生产级大型语言模型服务

文本生成推理(TGI)是 HuggingFace 的生产级大型语言模型服务框架,旨在实现高吞吐和低延迟推理。它开箱即支持 Flash Attention 2、连续批处理、PagedAttention 和张量并行——使其成为在 CLORE.AI GPU 服务器上大规模部署大型语言模型的首选解决方案。

circle-check

服务器要求

参数
最低要求
推荐配置

内存(RAM)

16 GB

32 GB+

显存(VRAM)

8 GB

24 GB 以上

磁盘

50 GB

200 GB+

GPU

任何 NVIDIA(用于 Flash Attention 的 Ampere 及更新架构)

A100、H100、RTX 4090

circle-info

Flash Attention 2 需要 Ampere 架构或更新(RTX 3000+、A100、H100)。对于较旧的 GPU,TGI 将自动回退到标准注意力实现。

在 CLORE.AI 上快速部署

Docker 镜像: ghcr.io/huggingface/text-generation-inference:latest

端口: 22/tcp, 8080/http

环境变量:

变量
示例
描述

MODEL_ID

mistralai/Mistral-7B-Instruct-v0.3

HuggingFace 模型 ID

HF_TOKEN

hf_xxx...

HuggingFace 令牌(用于受限模型)

NUM_SHARD

2

用于张量并行的 GPU 数量

MAX_INPUT_LENGTH

4096

最大输入令牌数

MAX_TOTAL_TOKENS

8192

最大输入+输出令牌数

QUANTIZE

bitsandbytes-nf4

量化方法

逐步设置

1. 在 CLORE.AI 上租用 GPU 服务器

前往 CLORE.AI 市场arrow-up-right 并按以下条件筛选服务器:

  • 7B 模型(全精度)需 VRAM ≥ 24 GB

  • 7B 模型(4 位量化)需 VRAM ≥ 12 GB

  • 70B 模型(全精度,单 GPU)需 VRAM ≥ 80 GB

2. 通过 SSH 连接

订单确认后,使用 CLORE.AI 仪表板中的 SSH 详情连接到您的服务器:

或者在您的 CLORE.AI 订单面板中使用 Web 终端。

3. 拉取 TGI Docker 镜像

4. 使用模型启动 TGI

基本启动(Mistral 7B):

使用 HuggingFace 令牌(用于受限模型,如 Llama 3):

使用 4 位量化(用于较小 VRAM):

多 GPU 张量并行(用于 70B 模型):

5. 验证服务器是否在运行

预期响应: {"status":"ok"}

6. 通过 CLORE.AI HTTP 代理访问

在您的 CLORE.AI 订单面板中,您会看到您的 http_pub 端口 8080 的 URL。这样可以在不进行 SSH 隧道的情况下通过浏览器/API 访问:


使用示例

示例 1:基本文本生成

示例 2:聊天补全(兼容 OpenAI)

TGI 支持 OpenAI 聊天补全 API 格式:

示例 3:流式响应

示例 4:Python 客户端

示例 5:批量请求


invokeai.yaml 配置文件

关键 CLI 参数

参数
默认
描述

--model-id

必填

HuggingFace 模型 ID 或本地路径

--num-shard

1

GPU 分片数量(张量并行)

--max-concurrent-requests

128

最大并发请求数

--max-input-length

1024

最大输入令牌长度

--max-total-tokens

2048

最大输入+输出令牌数

--max-batch-total-tokens

auto

每个批次的最大令牌数

--quantize

none

量化: bitsandbytes-nf4, gptq, awq

--dtype

auto

float16, bfloat16

--trust-remote-code

false

允许自定义模型代码

--port

80

服务器端口

使用本地模型

如果您已在本地下载模型:

AWQ 量化(比 NF4 更快)


1. 使用 SDXL-Turbo 或 SDXL-Lightning 以实现快速生成

1. 启用 Flash Attention 2

在 Ampere 及更新 GPU(RTX 3000+、A100、H100)上会自动启用 Flash Attention 2。无需额外配置。

2. 调整最大批次大小

在高吞吐场景下,增大批次大小:

3. 在 Ampere 及更新 GPU 上使用 bfloat16

这比 float16 更数值稳定,并且在现代 GPU 上性能相同。

4. 将模型预下载到持久存储

然后挂载本地路径以避免重启时重新下载。

5. GPU 内存管理

对于 RTX 3090/4090(24GB VRAM):

6. 预测式解码(Speculative Decoding)

对于较小模型,可作为草稿以加速生成:


故障排除

解决方案:

解决方案: 减少 --max-total-tokens 或启用量化:

问题:模型下载很慢

解决方案: 使用 HuggingFace 镜像或预下载:

问题:通过 http_pub 无法访问服务器

解决方案: 确保端口 8080 正确映射。TGI 在容器内部监听端口 80,但您将其映射到外部的 8080:

问题:需要 "trust_remote_code"

某些模型(例如 Falcon、Phi)需要自定义代码:

问题:首次响应慢

第一次请求会触发模型加载到显存中。这是正常的。后续请求会很快。

问题:容器立即退出


文档


Clore.ai 的 GPU 建议

在 Clore.ai 上的预估费用
开发/测试
RTX 3090(24GB)

~$0.12/每 GPU/每小时

生产

RTX 4090(24GB)

生产(7B–13B)

大规模

A100 80GB

大型模型(70B+)

A100 80GB / H100

Clore.ai

GPU 服务器上。浏览可用 GPU 并按小时租用 — 无需承诺,提供完整的 root 访问权限。 Clore.aiarrow-up-right GPU 服务器。浏览可用 GPU 并按小时租用 — 无需承诺,提供完整的 root 访问权限。

最后更新于

这有帮助吗?