4.0 KiB
4.0 KiB
天数智芯 智铠100 文本生成引擎(基于 vLLM 优化)
本项目是为天数智芯-智铠100加速卡深度优化的高性能文本生成推理引擎,基于开源 vLLM 框架进行架构级适配与增强,实现对 Qwen3 系列等最新大模型的高效支持。通过引入 Prefix Caching、PagedAttention 等先进优化技术,显著提升吞吐与响应速度,同时提供标准 OpenAI 兼容 API 接口,便于无缝集成现有应用生态。
支持模型
- Qwen3
- Llama3
- DeepSeek-R1-Distill
- 其他兼容 vLLM 的 HuggingFace 模型(持续扩展中)
Quick Start
1. 模型下载
从 ModelScope 下载所需模型(以 Qwen2.5-7B-Instruct 为例):
modelscope download --model qwen/Qwen2.5-7B-Instruct README.md --local_dir /mnt/models/Qwen2.5-7B-Instruct
⚠️ 请确保模型路径在后续 Docker 启动时正确挂载。
2. 拉取并构建 Docker 镜像
我们提供已预装智铠100驱动与vLLM优化版本的Docker镜像:
# 本地构建
docker build -t enginex-iluvatar-vllm:bi100 -f Dockerfile .
3. 启动服务容器
docker run -it --rm -p 8000:80 \
--name vllm-iluvatar \
-v /mnt/models/Qwen2.5-7B-Instruct:/model:ro \
--privileged \
-e TENSOR_PARALLEL_SIZE=1 \
-e PREFIX_CACHING=true \
-e MAX_MODEL_LEN=10000 \
enginex-iluvatar-vllm:bi100
✅ 参数说明:
PREFIX_CACHING=true: 启用 Prefix Caching 优化,显著提升多请求共享前缀的推理效率MAX_MODEL_LEN=10000: 支持长上下文推理--privileged: 确保智铠100设备可见
4. 测试服务(使用 OpenAI 兼容接口)
服务启动后,可通过标准 OpenAI SDK 或 curl 进行测试。
示例:文本生成请求
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-8b",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "请用中文介绍一下上海的特点。"}
],
"temperature": 0.7,
"max_tokens": 512
}'
使用 OpenAI Python SDK(需安装 openai>=1.0)
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
response = client.chat.completions.create(
model="qwen3-8b",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "请简要介绍杭州的特色文化。"}
],
max_tokens=512,
temperature=0.7
)
print(response.choices[0].message.content)
测试结果对比(A100 vs 智铠100)
测试数据集
测试结果
在相同模型和输入条件下,测试平均输出速度(单位:字每秒),结果如下:
| 模型 | 智铠100 输出速度 | Nvidia A100 输出速度 |
|---|---|---|
| Qwen2.5-7B-Instruct | 56.4 | 112.4 |
| Qwen2.5-1.5B-Instruct-AWQ | 123.1 | 100.8 |
| Qwen/Qwen2.5-3B-Instruct | 91.7 | 95.6 |
| Qwen/Qwen2-7B-Instruct | 59.2 | 110.1 |
| Qwen/Qwen2-7B | 74.3 | 169.9 |
| Qwen/Qwen2-1.5B | 161.2 | 175.5 |
| Qwen/Qwen2-0.5B-Instruct | 141.1 | 146.2 |
| Qwen/Qwen2-1.5B-Instruct | 119.4 | 124.5 |
| Qwen/Qwen1.5-4B-Chat | 87.0 | 95.5 |
| Qwen/Qwen1.5-14B-Chat | 52.1 | 72.2 |
| Qwen/Qwen-1_8B-Chat | 151.6 | 203.9 |
| Qwen/Qwen-7B | 90.4 | 112.5 |
| Qwen/Qwen-7B-Chat | 93.7 | 131.4 |
| X-D-Lab/MindChat-Qwen-7B | 92.9 | 123.4 |
| Qwen/Qwen2.5-32B-Instruct-AWQ | 52.6 | 47.4 |
| Qwen/CodeQwen1.5-7B-Chat | 98.9 | 108.1 |
| Qwen/Qwen2.5-72B-Instruct-AWQ | 30.7 | 41.4 |
| Valdemardi/DeepSeek-R1-Distill-Qwen-32B-AWQ | 51.9 | 51.6 |
| Qwen/Qwen3-32B-AWQ | 31.8 | 44.1 |
| Qwen/QwQ-32B-AWQ | 50.9 | 48.0 |
| swift/Qwen3-30B-A3B-AWQ | 29.5 | 38.1 |
| Qwen/Qwen3-14B-AWQ | 53.4 | 62.6 |
| codefuse-ai/CodeFuse-QWen-14B | 61.6 | 75.5 |