Files
compose-anything/src/vllm/README.zh.md
2025-12-11 14:11:37 +08:00

3.3 KiB
Raw Blame History

vLLM

English | 中文

此服务用于部署 vLLM一个用于大语言模型的高吞吐量和内存高效的推理和服务引擎。

服务

  • vllmvLLM OpenAI 兼容 API 服务器

环境变量

变量名 说明 默认值
VLLM_VERSION vLLM 镜像版本 v0.12.0
VLLM_MODEL 模型名称或路径 facebook/opt-125m
VLLM_MAX_MODEL_LEN 最大上下文长度 2048
VLLM_GPU_MEMORY_UTIL GPU 内存利用率0.0-1.0 0.9
HF_TOKEN 用于模型下载的 Hugging Face 令牌 ""
VLLM_PORT_OVERRIDE 主机端口映射 8000

请根据实际需求修改 .env 文件。

  • vllm_models:来自 Hugging Face 的缓存模型文件

GPU 支持

此服务需要 NVIDIA GPU 才能正常运行。在 docker-compose.yaml 中取消注释 GPU 配置:

    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
    runtime: nvidia

使用方法

启动 vLLM

docker compose up -d

访问

测试 API

curl http://localhost:8000/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "facebook/opt-125m",
    "prompt": "San Francisco is a",
    "max_tokens": 50,
    "temperature": 0.7
  }'

聊天补全

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "facebook/opt-125m",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

支持的模型

vLLM 支持多种模型:

  • LLaMALLaMA、LLaMA-2、LLaMA-3
  • MistralMistral、Mixtral
  • QwenQwen、Qwen2
  • YiYi、Yi-VL
  • 以及更多:参见 vLLM 支持的模型

要使用不同的模型,请更改 VLLM_MODEL 环境变量:

# 示例:使用 Qwen2-7B-Instruct
VLLM_MODEL="Qwen/Qwen2-7B-Instruct"

性能调优

GPU 内存

根据模型大小和可用 VRAM 调整 GPU 内存利用率:

VLLM_GPU_MEMORY_UTIL=0.85  # 使用 85% 的 GPU 内存

上下文长度

根据需要设置最大上下文长度:

VLLM_MAX_MODEL_LEN=4096  # 支持最多 4K tokens

共享内存

对于更大的模型,增加共享内存:

shm_size: 8g  # 增加到 8GB

注意事项

  • 需要支持 CUDA 的 NVIDIA GPU
  • 模型下载可能很大(几 GB 到 100+ GB
  • 首次启动可能需要时间来下载模型
  • 确保 GPU 内存足够运行所需模型
  • 默认模型较小125M 参数)用于测试

安全性

  • API 默认没有身份验证
  • 生产环境添加身份验证层(例如,带基本身份验证的 nginx
  • 限制网络访问到受信任的来源

许可证

vLLM 采用 Apache License 2.0 许可。详情请参见 vLLM GitHub