下载:
alias hfd="$PWD/hfd.sh" hfd Qwen/QwQ-32B --local-dir Qwen/QwQ-32B docker pull vllm/vllm-openai:latest
启动:
docker run -d --gpus '"device=2,3,4,5"' \ -v ./Qwen/QwQ-32B:/QwQ-32B \ -p 7870:8000 --ipc=host --shm-size 32g \ vllm/vllm-openai:latest \ --model /QwQ-32B --enable-auto-tool-choice --tool-call-parser hermes \ --api_key "nsyabBKSDBgiwqd123134xx.." \ --gpu_memory_utilization 0.9 --tensor_parallel_size 4 --max-model-len 131072
docker compose
yamlversion: '3.8'
services:
vllm:
image: vllm/vllm-openai:latest
container_name: vllm
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ["4", "5"]
capabilities: [gpu]
volumes:
- /data/xiedong/Qwen/QwQ-32B:/QwQ-32B
ports:
- "7870:8000"
ipc: host
shm_size: 32g
command: [
"--model", "/QwQ-32B",
"--enable-auto-tool-choice",
"--tool-call-parser", "hermes",
"--api_key", "nsyabBKSDBgiwqd123134xx..",
"--gpu_memory_utilization", "0.9",
"--tensor_parallel_size", "4",
"--max-model-len", "131072"
]
数据并行 vs 张量并行
特性 | 数据并行 | 张量并行 |
---|---|---|
适用场景 | 模型可以在单个 GPU 上容纳 | 模型无法在单个 GPU 上容纳 |
通信开销 | 低(仅在结果汇总时通信) | 高(频繁传输模型参数) |
实现复杂度 | 简单 | 复杂 |
性能提升 | 显著(文章中提升 1.89 倍) | 一般(文章中提升 1.32 倍) |
• 如果模型可以在单个 GPU 上容纳,优先选择 数据并行,因为性能提升更显著,且实现更简单。 • 如果模型太大,无法在单个 GPU 上容纳,则必须使用 张量并行。
api访问:
pythonfrom openai import OpenAI
client = OpenAI(
api_key="xxxx..",
base_url="http://nxtest7870.com/v1/"
)
chat_completion = client.chat.completions.create(
messages=[
{"role": "system",
"content": "你是Prompt提示词生成器,擅长将用户提供的提示词优化为更合适的表达。你只能输出英文。"},
{"role": "user", "content": "现在请你开始优化提示词,用户输入为:一个女人,动漫风格"}
],
model="/QwQ-32B",
)
print(chat_completion)
generated_text = chat_completion.choices[0].message.content
print(generated_text)
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!