vLLM 与 MiMo-7B-RL 模型使用文档
简介
MiMo-7B-RL 是小米公司开源的一个基于强化学习训练的大语言模型,具有以下特点:
- 基于强化学习训练,具有更好的对话能力和任务完成能力
- 支持中英双语对话,具有良好的语言理解和生成能力
- 结合 vLLM 推理引擎,具有更快的推理速度和更高的吞吐量
目录
环境安装
我的系统
- CUDA 11.8
- Python 3.10
- 安装 CUDA 驱动和 CUDA 工具包
安装 vLLM
pip install vllm
下载模型
安装 git-lfs
sudo apt-get install git-lfs
下载模型
国内用户可以使用以下命令下载模型:
git clone https://hf-mirror.com/XiaomiMiMo/MiMo-7B-RL
国外用户可以使用以下命令下载模型:
git clone https://huggingface.co/XiaomiMiMo/MiMo-7B-RL
如果你只想克隆文件指针而不下载大文件
git lfs install
git lfs pull
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/XiaomiMiMo/MiMo-7B-RL
代码功能说明
这段代码实现了使用 vLLM 加载 MiMo-7B-RL 模型并进行对话生成的功能。主要包括:
-
模型初始化和加载
- 支持多种模型加载方式
- 可配置推理参数
- 支持批量处理
-
对话参数配置
- 灵活的采样策略
- 可调节的生成参数
- 支持上下文管理
-
对话生成和输出
- 支持流式输出
- 多轮对话支持
- 错误处理机制
参数配置详解
LLM 初始化参数
llm = LLM(
model=model_path, # 模型路径
trust_remote_code=True, # 信任远程代码
num_speculative_tokens=1, # 推测性token数量
disable_log_stats=False, # 启用日志统计
tensor_parallel_size=1, # 模型并行数量
gpu_memory_utilization=0.9 # GPU 显存利用率
)
采样参数设置
sampling_params = SamplingParams(
temperature=0.6, # 温度参数,控制随机性
top_p=0.9, # 控制采样范围
max_tokens=2048, # 最大生成长度
stop_tokens=["\n"], # 停止生成的标记
presence_penalty=0.1 # 重复惩罚系数
)
对话格式
conversation = [
{
"role": "system", # 系统角色
"content": "" # 系统提示内容
},
{
"role": "user", # 用户角色
"content": "请介绍一下你自己" # 用户输入内容
},
]
使用示例
1. 简单问答场景
以下是一个基本的问答示例:
# 初始化模型和参数
from vllm import LLM, SamplingParams
model_path = "MiMo-7B-RL"
llm = LLM(
model=model_path,
trust_remote_code=True,
num_speculative_tokens=1,
disable_log_stats=False
)
# 设置采样参数
sampling_params = SamplingParams(temperature=0.6)
# 构建对话
conversation = [
{
"role": "system",
"content": "你是一个乐于助人的AI助手。"
},
{
"role": "user",
"content": "请介绍一下北京的著名景点。"
}
]
# 生成回复
outputs = llm.chat(conversation, sampling_params=sampling_params)
response = outputs[0].outputs[0].text
print(f"AI: {response}")
2. 多轮对话场景
# 构建多轮对话
conversation = [
{
"role": "system",
"content": "你是一个专业的旅游顾问。"
},
{
"role": "user",
"content": "我想去北京旅游,有什么建议?"
},
{
"role": "assistant",
"content": "北京是一个历史文化名城,建议您可以参观长城、故宫、天安门等著名景点。您计划什么时候去呢?"
},
{
"role": "user",
"content": "我打算十月份去,主要想了解历史文化。"
}
]
性能优化
1. GPU 显存优化
- 调整
gpu_memory_utilization
参数 - 使用模型量化技术
- 开启 Continuous Batching
2. 推理速度优化
- 调整
tensor_parallel_size
实现模型并行 - 使用 KV Cache
- 开启 CUDA Graph
3. 吞吐量优化
- 使用批处理模式
- 调整请求队列大小
- 优化负载均衡策略
常见问题
1. 显存不足
问题:运行时出现 CUDA out of memory 错误
解决方案:
- 降低
gpu_memory_utilization
- 使用模型量化
- 减小批处理大小
2. 生成质量问题
问题:生成的内容质量不稳定
解决方案:
- 调整 temperature 和 top_p 参数
- 优化系统提示词
- 使用更合适的停止词
3. 速度优化
问题:推理速度较慢
解决方案:
- 开启 CUDA Graph
- 使用 Continuous Batching
- 调整并行参数
注意事项
-
环境配置
- 确保 CUDA 版本兼容
- 检查 Python 环境
- 验证显存大小
-
模型使用
- 合理设置生成参数
- 注意提示词格式
- 定期清理显存
-
性能调优
- 根据实际需求调整参数
- 监控资源使用情况
- 做好错误处理
相关链接
- GitHub 地址:https://github.com/XiaomiMiMo/MiMo
- 模型地址:https://huggingface.co/XiaomiMiMo/MiMo-7B-RL/tree/main