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 运行时,所以不支持多卡推理。

相关推荐
Chef_Chen10 分钟前
数据科学每日总结--Day44--机器学习
人工智能·机器学习
这张生成的图像能检测吗11 分钟前
(论文速读)FR-IQA:面向广义图像质量评价:放松完美参考质量假设
人工智能·计算机视觉·图像增强·图像质量评估指标
KG_LLM图谱增强大模型1 小时前
本体论与知识图谱:揭示语义技术的核心差异
人工智能·知识图谱·本体论
JicasdC123asd1 小时前
黄瓜植株目标检测:YOLOv8结合Fasternet与BiFPN的高效改进方案
人工智能·yolo·目标检测
爱吃泡芙的小白白2 小时前
深入解析:2024年AI大模型核心算法与应用全景
人工智能·算法·大模型算法
小程故事多_802 小时前
攻克RAG系统最后一公里 图文混排PDF解析的挑战与实战方案
人工智能·架构·pdf·aigc
琅琊榜首20202 小时前
AI+编程双驱动:高质量短剧创作全流程指南
人工智能
Master_oid3 小时前
机器学习29:增强式学习(Deep Reinforcement Learning)④
人工智能·学习·机器学习
Cemtery1163 小时前
Day26 常见的降维算法
人工智能·python·算法·机器学习
zxsz_com_cn3 小时前
预测性维护在智能制造设备上的实际应用
人工智能