🚀 使用文本生成推理(TGI)在 Hugging Face Spaces 上部署 OLMo-7B
社区文章 发布于2025年2月2日
Hugging Face 的 文本生成推理(TGI) 是 生产级 LLM 部署 的首选解决方案。与我们之前的 基于 FastAPI 的原型 不同,本指南展示了如何使用 TGI 在 Hugging Face Spaces 上 部署 OLMo-7B-Instruct,使其 可扩展、优化且高效。
📌 有何不同?
- TGI 支持的 API → 专为推理优化,而不仅仅是概念验证。
- Hugging Face Transformers 兼容 → 支持任何 TGI 支持的 LLM。
- 自动优化 → 所有 TGI 的优点。
1️⃣ 设置 Space
前往 Hugging Face Spaces 并 创建一个新的 Space。
- 选择:Docker 作为 SDK。
- 在
README.md
中 设置app_port: 8080
。
🔥 重要提示: 与其他 Spaces 不同,TGI 需要
app_port: 8080
(或您选择的端口)才能正确路由。
2️⃣ 编写 Dockerfile
TGI 为 Hugging Face 模型提供了预构建的 推理服务器。
我们只需要设置一个 Dockerfile 来拉取正确的镜像并配置模型。
📜 Dockerfile
# Use Hugging Face TGI as the base image
FROM ghcr.io/huggingface/text-generation-inference:3.0.2
# Set working directory
WORKDIR /app
# Create and set permissions for cache directories
RUN mkdir -p /data && chmod 777 /data
RUN mkdir -p /.cache && chmod 777 /.cache
RUN mkdir -p /.triton && chmod 777 /.triton
# Expose the model API on port 8080
EXPOSE 8080
# Set Hugging Face token for private models
ARG HF_TOKEN
ENV HF_TOKEN=${HF_TOKEN}
# Run the TGI server with OLMo-7B
CMD ["--model-id", "allenai/OLMo-7B-0724-Instruct-hf", "--port", "8080"]
📷 [截图占位符:使用 TGI 部署 Space]
3️⃣ 测试 API
部署后,TGI API 将自动在以下地址可用:
https://your-space-url.hf.space/v1/generate
✅ 使用 curl
~ curl https://arig23498-tgi-docker-olmo.hf.space/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'
✅ 使用 Python
from huggingface_hub import InferenceClient
client = InferenceClient(
base_url="https://arig23498-tgi-docker-olmo.hf.space/v1/",
)
output = client.chat.completions.create(
model="tgi",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is deep learning?"},
],
stream=True,
max_tokens=1024,
)
for chunk in output:
print(chunk.choices[0].delta.content, end="")
🔗 更多 TGI 功能: TGI v3.0.2 发布说明
🚀 下一步?
- 使用 TGI 部署 其他 LLM,例如 LLaMA 3、Falcon 或 Mistral。
- 添加 GPU 支持 以实现闪电般的推理速度。
- 使用 Gradio 或 Streamlit 构建 前端聊天机器人。
🔹 立即尝试并扩展您自己的 LLM API!🚀