LMDeploy Windows 平台最佳实践

Windows 是全球范围内最流行的操作系统之一,许多企业和个人用户都在使用 Windows 系统。通过在 Windows 系统上支持 LLM 的推理,许多办公软件、聊天应用等都可以受益于 LLM 的技术,为用户提供更智能、更个性化的服务。LMDeploy 支持在 Windows 平台进行部署与使用,本文会从以下几个部分,介绍如何使用 LMDeploy 部署 internlm2-chat-1_8b 模型。

  • 环境配置
  • LMDeploy Chat CLI 工具
  • LMDeploy pipeline (python)
  • LMDeploy serving

环境配置

安装显卡驱动 & CUDA Toolkit

developer.nvidia.com/cuda-12-1-1...

成功安装后,打开 Powershell 后,环境变量 CUDA_PATH 不为空。

安装 LMDeploy

ini 复制代码
conda create -n lmdeploy python=3.10
conda activate lmdeploy
pip install lmdeploy --extra-index-url https://download.pytorch.org/whl/cu121

需要注意的是,--extra-index-url 不能省略,不然会安装 CPU 版本的 PyTorch

下载模型

perl 复制代码
mkdir D:\workspace
cd D:\workspace
huggingface-cli download --resume-download --cache-dir cache --local-dir-use-symlinks False --local-dir internlm2-chat-1_8b internlm/internlm2-chat-1_8b

命令行 CLI

LMDeploy 提供命令行工具,可以非常方便地在 Powershell 进行对话,相关命令是:

复制代码
lmdeploy chat .\internlm2-chat-1_8b\

LMDeploy 会根据 $env:CUDA_PATH 添加 CUDA Runtime 的目录,并在程序的开头会打印目录。如果没有下图红线的部分,需要检查显卡驱动以及 CUDA Toolkit 是否正确安装。

运行结果如下:

pipeline

LMDeploy 提供了 Python api,可以方便集成到其他的工具中,相关的用法如下。

java 复制代码
from lmdeploy import pipeline
pipe = pipeline('internlm2-chat-1_8b')
pipe('上海有什么景点')

运行结果如下:

pipeline 启动时参数设置可参考 lmdeploy.readthedocs.io/zh-cn/lates...

服务化

LMDeploy 支持把模型一键封装为服务,对外提供的 RESTful API 兼容 openai 的接口。以下为使用方式:

服务端:

复制代码
lmdeploy serve api_server .\internlm2-chat-1_8b\

更多使用方式可参考 lmdeploy.readthedocs.io/en/latest/s...

客户端:

ini 复制代码
from openai import OpenAI
client = OpenAI(
    api_key='YOUR_API_KEY',
    base_url="http://127.0.0.1:23333/v1"
)
model_name = client.models.list().data[0].id
response = client.chat.completions.create(
  model=model_name,
  messages=[
    {"role": "user", "content": "上海有什么著名景点"},
  ],
    temperature=0.8,
    top_p=0.8
)
print(response)

FAQ:

Q: 如何使用 LMDeploy cuda11 的版本?

A: 安装 CUDA Toolkit >= 11.3 并确保显卡驱动的版本支持 CUDA Toolkit,之后可以从 LMDeploy Release 页面 找到使用 CUDA11 编译的 whl 包,以 python3.10, LMDeploy v0.4.2 为例,安装方式为:

bash 复制代码
pip install https://github.com/InternLM/lmdeploy/releases/download/v0.4.2/lmdeploy-0.4.2+cu118-cp310-cp310-win_amd64.whl --extra-index-url https://download.pytorch.org/whl/cu118

Q:模型过大,显存不够加载模型怎么办?

A:可以考虑把模型权重量化为 4bit,然后再部署。模型大小的快速估算方式为,1B 大小的模型,其权重(16bit)大约需要 2G 的显存。量化为 4bit 后,大约只需 0.5G 显存。7B 模型,4bit 量化后,约 3.5 G。具体方法请参考文档:lmdeploy.readthedocs.io/en/latest/q...

Q:如何使用多卡推理?

A:对于在 Windows 宿主机上直接使用 LMDeploy 的方式,由于 NVIDIA 并未提供 Windows 平台的 NCCL 运行时,所以不支持多卡推理。

相关推荐
listhi5202 分钟前
机械系统运动学与动力学在MATLAB及SimMechanics中的实现方案
人工智能·算法·matlab
AI大模型学徒2 分钟前
大模型应用开发(十五)_知识库1
人工智能·chatgpt·大模型·llm·知识库·deepseek
音视频牛哥4 分钟前
从“十五五”到数字化转型:音视频技术在未来产业中的关键作用
人工智能·深度学习·计算机视觉·音视频·十五五规划音视频低延迟方案·十五五规划低空经济低延迟方案·rtsp rtmp播放器
测试人社区—小叶子11 分钟前
测试开发面试高频“灵魂八问”深度解析与应答策略
网络·人工智能·测试工具·云原生·容器·面试·职场和发展
蛐蛐蜉蝣耶12 分钟前
Spring AI与MCP集成实践:构建智能应用的新方式
人工智能·微服务·java开发·spring ai·mcp
中冕—霍格沃兹软件开发测试14 分钟前
测试工具链的构建与团队协作:从工具集成到价值流动
人工智能·科技·测试工具·开源·appium·bug
serve the people18 分钟前
tensorflow 零基础吃透:SavedModel 与 RaggedTensor 的结合使用
人工智能·tensorflow·neo4j
高洁0120 分钟前
激活函数应该具有哪些特征
人工智能·python·深度学习·神经网络·transformer
全栈陈序员22 分钟前
【Python】基础语法入门(十五)——标准库精选:提升效率的内置工具箱
开发语言·人工智能·python·学习
MARS_AI_24 分钟前
大模型呼叫技术:客服行业的智能化演进与云蝠实践
人工智能·自然语言处理·交互·信息与通信·agi