书生大模型课堂笔记 - 第五节课

117 阅读3分钟

相关课程资料:

课程:第五节课

日期:2024.04.23

主题:浦语大模型全链路开源体系

文档链接:课程文档

视频链接:课程视频

课堂重点

1. 大模型部署面临的挑战

  • 计算量巨大

image.png

  • 内存开销巨大

image.png

  • 访存瓶颈 显卡的计算能力是足够的,但是访存能力十分有限,因此导致了显卡在数据交换上花费了大量的时间,只有极少的时间在进行实际的计算上 虽然可以通过batch-size的设置增加访存量,但是性价比太低

image.png

  • 优化方案 模型剪枝 移除模型中不必要或多余的组件,比如参数,让模型更加高效。通过对模型中贡献有限的冗余参数进行剪枝,在保证性能最低下降的同时,减少存储需求,提高计算效率

    • 非结构化剪枝 移除个别参数,不考虑整体网络结构。将低于阈值的参数置零的方式对个别权重或神经元进行处理
    • 结构化剪枝 根据预定义规则移除链接或分层结构,同时保持整体网络结构。一次性地针对整组权重,优势在于降低模型复杂性和内存使用,同时保证整体的LLM结构完整

image.png

  • 知识蒸馏 通过引导轻量化的学生模型“模仿”性能更好,结构更复杂的教师模型,在不改变学生模型结构的情况下提高性能 上下文学习,思维链,指令跟随 

image.png

  • 量化 量化技术将传统的表示方法中的浮点数转换为整数或其他离散形式,以减轻深度学习模型的存储和计算负担。 量化感知训练、量化感知微调、训练后量化

    由于调用大模型的过程是一种访存密集型的过程,因此量化的过程虽然增加了量化和反量化两个计算过程,但通过量化的操作减轻了内存负担,最终还是实现了提高性能的目的。也就是说虽然增加了计算负担,但由于硬件上的计算能力是过剩的,因此增加的计算对整体的性能影响可以忽略不计;但是对访存而言,减轻的内存带来的性能提升是很大的,因此综合下来,量化的方式是能有效提升性能的

image.png

2、LMDeploy部署

LMDeploy简介 涵盖了LLM任务的全套轻量化、部署和服务解决方案。核心功能包括高效推理、可靠量化、便捷服务和有状态推理

image.png

作业

基础作业

  1. 配置 LMDeploy 运行环境
studio-conda -t lmdeploy -o pytorch-2.1.2

conda activate lmdeploy

pip install lmdeploy[all]==0.3.0

image.png

InternStudio开发机上下载模型(推荐)--软链接的方式

cd ~
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/
  1. 使用Transformer库运行模型

2.1 使用Transformer库运行模型 在root下新建一个pipeline_transformer.py文件 复制代码,并运行

image.png

image.png

2.2 使用LMDeploy与模型对话

image.png

image.png

体感上来说,LMDeploy加载的时间比Transfromer快一点,生成速度也比Transfromer快一点