基础作业
完成以下任务,并将实现过程记录截图:
配置lmdeploy运行环境
下载internlm-chat-1.8b模型
以命令行方式与模型对话
基础知识学习
模型部署
在软件工程中,部署通常指的是将开发完毕的软件投入使用的过程。
在人工智能领域,模型部署是实现深度学习算法落地应用的关键步骤。简单来说,模型部署
就是将训练好的深度学习模型在特定环境中运行的过程。
目前大模型部署面临的挑战
计算量巨大
内存开销巨大
访存瓶颈
动态请求
大模型部署方法
模型剪枝
非结构化剪枝
结构化剪枝
知识蒸馏
量化
量化感知训练
量化感知微调
训练后量化
LMDeploy简介
LMDeploy 由MMDeploy和MMRazor团队联合开发,是涵盖了LLM任务的全套轻量化、部署和服务
解决方案。核心功能包括高效推理、可靠量化、便捷服务和有状态推理。
动手阶段
创建开发机
选择 镜像Cuda12.2-conda
和 10% A100*1GPU
创建conda环境
studio-conda -t lmdeploy -o pytorch-2.1.2
安装LMDeploy
conda activate lmdeploy
pip install lmdeploy[all]==0.3.0
LMDeploy模型对话
知识介绍Huggingface与TurboMind
HuggingFace
HuggingFace是一个高速发展的社区,包括Meta、Google、Microsoft、Amazon在内的超过5000家组织机构在为HuggingFace开源社区贡献代码、数据集和模型。可以认为是一个针对深度学习模型和数据集的在线托管社区,如果你有数据集或者模型想对外分享,网盘又不太方便,就不妨托管在HuggingFace。
托管在HuggingFace社区的模型通常采用HuggingFace格式存储,简写为HF格式。
但是HuggingFace社区的服务器在国外,国内访问不太方便。国内可以使用阿里巴巴的MindScope社区,或者上海AI Lab搭建的OpenXLab社区,上面托管的模型也通常采用HF格式。
TurboMind
TurboMind是LMDeploy团队开发的一款关于LLM推理的高效推理引擎,它的主要功能包括:LLaMa 结构模型的支持,continuous batch 推理模式和可扩展的 KV 缓存管理器。
TurboMind推理引擎仅支持推理TurboMind格式的模型。因此,TurboMind在推理HF格式的模型时,会首先自动将HF格式模型转换为TurboMind格式的模型。该过程在新版本的LMDeploy中是自动进行的,无需用户操作。
几个容易迷惑的点:
TurboMind与LMDeploy的关系:LMDeploy是涵盖了LLM 任务全套轻量化、部署和服务
解决方案的集成功能包,TurboMind是LMDeploy的一个推理引擎,是一个子模块。
LMDeploy也可以使用pytorch作为推理引擎。
TurboMind与TurboMind模型的关系:TurboMind是推理引擎的名字,TurboMind模型
是一种模型存储格式,TurboMind引擎只能推理TurboMind格式的模型。
开发机下载模型
cd ~
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/
# cp -r /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/
ls
使用Transformer库运行模型
打开vscode的终端,建项目(具体见文档)
回到终端运行py文件
conda activate lmdeploy
python /root/pipeline_transformer.py
使用LMDeploy与模型对话
conda activate lmdeploy
lmdeploy chat /root/internlm2-chat-1_8b