下载:
展开代码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
yaml展开代码version: '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访问:
python展开代码from 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 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!