跳转到主要内容

模型服务

为生产推理服务您训练好的模型。

聊天界面

测试和与模型交互的最简单方法:
aitraining chat
http://localhost:7860/inference 打开 Web 界面。Chat UI 允许您加载任何本地或 Hub 模型进行交互式测试。

自定义端口

aitraining chat --port 3000

自定义主机

aitraining chat --host 0.0.0.0

API 服务器

API 服务器是一个训练运行器,不是推理服务器。它在运行训练作业时暴露用于健康检查的最小端点。

启动 API 服务器

aitraining api
默认在 http://127.0.0.1:7860 启动训练 API。

参数

参数描述默认值
--port运行 API 的端口7860
--host绑定的主机127.0.0.1
--task要运行的任务(可选)None

自定义端口/主机

aitraining api --port 8000 --host 0.0.0.0

环境变量

API 服务器从环境变量读取配置:
变量描述
HF_TOKENHugging Face token 用于身份验证
AUTOTRAIN_USERNAME训练用户名
PROJECT_NAME项目名称
TASK_ID任务标识符
PARAMS训练参数(JSON)
DATA_PATH训练数据路径
MODEL要使用的模型

端点

端点描述
GET /返回训练状态消息
GET /health健康检查(返回 “OK”)
当没有活动训练作业时,API 服务器会自动关闭。对于生产推理,请改用 vLLM 或 TGI。

生产部署

使用 vLLM

用于高吞吐量的生产级服务:
pip install vllm

python -m vllm.entrypoints.openai.api_server \
  --model ./my-trained-model \
  --port 8000

使用 Text Generation Inference (TGI)

docker run --gpus all -p 8080:80 \
  -v ./my-model:/model \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id /model

OpenAI 兼容 API

vLLM 和 TGI 都提供 OpenAI 兼容端点:
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="dummy"  # 本地不需要
)

response = client.chat.completions.create(
    model="my-model",
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)

Docker 部署

Dockerfile 示例

FROM python:3.10-slim

WORKDIR /app

# 安装依赖
RUN pip install aitraining torch

# 暴露端口
EXPOSE 7860

# 运行聊天服务器
CMD ["aitraining", "chat", "--host", "0.0.0.0", "--port", "7860"]
构建并运行:
docker build -t my-model-server .
docker run -p 7860:7860 my-model-server

使用 GPU

docker run --gpus all -p 7860:7860 my-model-server

负载测试

使用 hey

hey -n 100 -c 10 \
  -m POST \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Hello", "max_tokens": 50}' \
  http://localhost:8000/generate

使用 locust

# locustfile.py
from locust import HttpUser, task

class ModelUser(HttpUser):
    @task
    def generate(self):
        self.client.post("/generate", json={
            "prompt": "Hello, how are you?",
            "max_tokens": 50
        })
locust -f locustfile.py --host http://localhost:8000

监控

Prometheus 指标

如果使用 vLLM 或 TGI,指标在 /metrics 可用。

日志记录

aitraining api --port 8000 2>&1 | tee server.log

下一步