当前位置: 首页 > backend >正文

LMDeploy 课程

任务来源:https://aicarrier.feishu.cn/wiki/IW3HwIVZ3icIpEkd8cXcFq5NnNd

闯关任务:复现 InternVL 和 InternLM 的部署和量化提交为在线飞书文档。

说明:
1.本次课程文档涵盖广泛,相当于较为完整的用户手册,部分完全小白用户使用时,可能会有困惑,其实完成闯关任务并不需要操作所有课程内容,只是用到课程很少部分内容。此外本次课程文档并没有对其中工作内容的原理进行讲解,故本帖会对课程部分整体框架和知识点进行解析。
2.本次课程文档基于上海人工智能实验室InternStudio进行操作,在上面课程文档中部分模型路径配置存在无法使用的情况,感谢张富才进行批注修正,这样可以极大减轻初学者的操作时间,以便最快速度完成任务,提前体验部署成功体验。
3.本次课程内容非常有价值,感兴趣且有多卡童鞋可以都操练一下。

4.本帖分为三个部分完成闯关任务、课程整体介绍、不同量化方法的简要说明

一、闯关任务
1.LMDeploy 是一个高效且友好的 LLMs 模型部署工具箱,功能涵盖了量化、推理和服务

conda create -n lmdeploy python=3.8 -y
conda activate lmdeploy
pip install lmdeploy

2.源码安装

conda activate lmdeploy
git clone https://github.com/InternLM/lmdeploy.git
cd lmdeploy
pip install -e .

3.InternLM部署

说明:修改pipe = lmdeploy.pipeline("/root/share/new_models/InternVL3/InternVL3-1B")

import lmdeploy
pipe = lmdeploy.pipeline("/root/share/new_models/InternVL3/InternVL3-1B")
response = pipe(prompts=["Hi, pls intro yourself", "Shanghai is"],gen_config=GenerationConfig(max_new_tokens=1024,top_p=0.8,top_k=40,temperature=0.6))
print(response)


4.InternVL部署

from lmdeploy import pipeline, VisionConfig
from lmdeploy.vl import load_imagepipe = pipeline('/root/share/new_models/InternVL3/InternVL3-1B',vision_config=VisionConfig(max_batch_size=8))image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
response = pipe(('describe this image', image))
print(response)

3.量化部署internlm2-chat-7b

export HF_MODEL=/root/share/model_repos/internlm2-chat-7b
export WORK_DIR=/root/internlm2-chat-7b-4bit

如遇到下方问题

TypeError: 'NoneType' object is not callable

解决方法
 

pip uninstall -y datasets && \
pip install --no-cache-dir "datasets==2.19.2" "huggingface_hub>=0.20.0"

执行后效果如下:

4.量化部署internlm2-chat-7b

pip install timm==1.0.8
pip install --no-cache-dir datasets==2.19.2lmdeploy lite auto_awq \/root/share/new_models/InternVL3/InternVL3-1B \--work-dir /root/InternVL3-1B-4bit

执行效果如下

二、课程整体概述
 

1. 安装与快速上手

项目说明
安装使用 pip 或源码安装 LMDeploy,准备部署环境
快速上手调用 pipeline() 快速运行推理示例(文本或图文)


2. 大语言模型(LLMs)部署

功能点简洁说明
1. 离线部署不联网也能部署模型(需提前下载模型和依赖)
2. 设置多卡并行启用多个 GPU,提高推理速度和处理能力
3. 生成核心参数介绍配置如 max_batch_sizesession_len 等性能参数
4. 部署类 OpenAI 服务模拟 OpenAI 接口,便于前端接入或进行 API 测试
5. APIClient 接口使用 Python 客户端调用本地或远程模型服务
6. Requests 调用用 Python 的 requests 包直接发送 HTTP 请求访问模型接口
7. 使用 CURL 命令用命令行 curl 测试接口是否正常(无需写代码)
8. 多机多卡部署在多台服务器和多张显卡上部署大模型
9. 使用 WebUI提供网页交互界面(如聊天机器人页面)
10. 部署 Huggingface Demo模拟 Huggingface Spaces,快速体验模型效果


3. 视觉-语言模型(VLMs)部署

功能点简洁说明
1. 离线部署本地加载图文模型(如 InternVL),无需联网
2. 多卡并行使用多 GPU 加速图文推理
3. 图片 Token将图片转为“视觉 token”,供模型理解
4. 对话模板配置图文对话格式(Prompt 模板)
5. 视觉模型参数设置分辨率、图像批次大小等参数
6. 多图推理支持输入多张图片同时问答/描述
7. 多轮对话支持图文混合的多轮连续问答


4. 模型量化(加速压缩)

功能点简洁说明
1. 量化模型将模型从 FP16 压缩为 INT4、INT8 等格式,提高运行效率
2. 模型评测对量化模型进行精度与速度的对比测试
3. W8A8 量化权重 8bit + 激活 8bit 的量化方案

三、不同量化方法说明

项目量化方法目标对象精度损失优势适用场景
AWQ权重量化(Adaptive)权重(Weights)≤1.5%减小显存占用;适配大模型离线部署、大模型微调
SmoothQuant权重 + 激活联合量化权重+激活≤1%提前平滑量纲,支持 INT8在线推理;模型部署优化
KV Cache 量化缓存数据量化Key/Value 缓存极低(≈0.1%)降低内存峰值;支持更长上下文多轮对话、RAG检索增强
量化评测评估方法整体模型输出-定量衡量精度变化模型部署评审、选择量化策略
http://www.xdnf.cn/news/12928.html

相关文章:

  • ubuntu下编译osg3.6.5源码
  • CSP信奥赛C++常用系统函数汇总
  • 异或和之差-字典树
  • 二分查找 -P1102 A-B 数对
  • 风力发电机领域的声纹监测产品
  • 循环神经网络(RNN):从理论到翻译
  • 【Elasticsearch】映射:详解 _source store 字段
  • 基于机器学习的智能故障预测系统:构建与优化
  • 基于算法竞赛的c++编程(22)二进制,十进制,16进制
  • 面向对象之 继承中的成员访问特点
  • split方法
  • mybatis执行insert如何返回id
  • 开疆智能Ethernet/IP转Modbus网关连接斯巴拓压力传感器配置案例
  • LeetCode 高频 SQL 50 题(基础版)之 【高级字符串函数 / 正则表达式 / 子句】· 上
  • MCP(Model Context Protocol)与提示词撰写
  • unipp---HarmonyOS 应用开发实战
  • 并发和并行
  • 相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
  • 例说局部性原理给程序带来的提升
  • 2480: 2020年06月2级T1:计算矩阵边缘元素之和
  • 计数思想-众数
  • vmware 设置 dns
  • 存储的基本原理
  • 哈希map中不能将数组作为键的原因 leetcode49
  • 第二十八章 字符串与数字
  • 5G-A通感融合对监控监督体系的核心作用
  • 下一代设备健康管理解决方案:基于多源异构数据融合的智能运维架构
  • AD规则设置-铜皮规则,阻焊规则,实时DRC
  • 栈和队列的奇妙冒险:用栈实现队列
  • 6个月Python学习计划 Day 17 - 继承、多态与魔术方法