书生浦语训练营第2期-第5节笔记

一、大模型部署背景

1.1 什么是模型部署

        软件工程中,指的是将开发完成的软件投入使用的过程。

        人工智能中,指的是实现限度学习算法落地应用的关键步骤。将训练好的深度学习模型在特定环境中运行的过程。

        模型部署到服务器就需要考虑下是部署到cpu服务器还是gpu、tpu、npu服务器,是否采用集群部署等等。部署到移动端或边缘端就需要考虑端侧计算能力是否足够等等。

1.2 部署面临的挑战

  • 计算量巨大
  • 内存开销巨大
  • 访存瓶颈
  • 动态请求

二、大模型部署方法

2.1 模型剪枝

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

        可分为非结构化剪枝、结构化剪枝:

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

        想象一下,你的书包里装了很多书和文具。书包非常重,所以你决定检查一下里面的每样东西,看看有没有什么是你真的不需要带到学校的。这个过程,就有点像是模型剪枝。

        首先,模型剪枝的目的是让你的“书包”(也就是模型)更轻便,这样你就能更轻松地“背”它,运行得更快,同时占用的空间(存储需求)也更小。

        非结构化剪枝,就像你逐个检查书包中的每一样小东西,比如一些不太用的笔或者小本子。你决定把那些你几乎不怎么用的笔拿出来,可能还有一些旧的笔记,这些都是“低于阈值”的物品。通过这种方式,虽然你的书包里依然保持原有的格局,但是由于去掉了一些个别的东西,它变得更轻了。

        结构化剪枝,则是更系统的整理方式。比如,你可能决定不再带绘画课的材料,因为这学期你没有绘画课。这样你不仅仅是移除了一两支笔,而是整个一套的东西。这样做的好处是,你的书包整体上变得更加整洁,更容易管理,而且更轻便。

        通过这两种不同的“剪枝”方法,你的书包(模型)变得更适合日常使用(更高效),而且还确保你在需要的时候,依然可以找到重要的东西(保持性能)。就像在保证你能完成学习任务的同时,让你的书包更轻便一样。这样的剪枝让整个过程更高效,同时减少了不必要的负担。

2.2 知识蒸馏

        知识蒸馏是一种经典的模型压缩方法,核心思想是通过引导轻量化的学生模型“模仿”性能更好、结构更复杂的教师模型,在不改变学生模型结构的情况下提高其性能。

  • 上下文学习
  • 思维链
  • 指令跟随

        你正在学习做饭,你的目标是成为一名能够熟练制作各种菜肴的厨师。你的母亲是一个经验丰富的厨师,她的做菜技术非常高超。现在,你要通过观察她的做法来学习如何做菜,这就是一个知识蒸馏的过程。

        上下文学习:你在学习做菜时不仅仅关注单一的菜肴制作,而是理解每道菜在整顿饭中的角色和如何与其他菜肴配合。例如,你需要学习如何根据主菜选择合适的配菜,或者根据用餐的场合调整菜单。这就是在学习中考虑“上下文”的例子。

        思维链:你在学习做菜的过程中,如何将一个步骤链接到下一个步骤,形成一系列逻辑连贯的动作和决策。例如,如果你在做炖牛肉,你需要先处理牛肉(如切块、腌制),然后根据炖制的需求选择合适的温度和时间,最后根据味道调整调料。每一步都基于前一步的结果,这些步骤形成了一条“思维链”。

        指令跟随:在学习做菜时,你需要遵循母亲的具体指示来完成菜肴。这不仅仅是跟随简单的命令,更是在实际操作中理解每个指令背后的意图和目的,从而更好地掌握做菜的技巧。例如,母亲可能会特别强调在炒蔬菜时要用大火快炒以保持蔬菜的新鲜和脆嫩,你需要精确地执行这些操作步骤。

        通过这样的过程,你作为“学生模型”,通过模仿你母亲这个“教师模型”的技术,逐步提高自己的烹饪水平。这个过程中,你没有必要学习她多年累积的所有复杂技巧和经验,而是通过观察和模仿最关键和最有效的部分,来快速提升自己的能力。这就是知识蒸馏的核心——在不改变结构的前提下,通过引导提高性能。

2.3 量化

        量化技术将传统的表示方法中的浮点数转换为整数或其他离散形式,以减轻深度学习模型的存储和计算负担。
        量化感知训练:量化目标无缝地集成到模型的训练过程中。这种方法使LLM在训练过程中适应低精度表示
        量化感知微调:QAF涉及在微调过程中对LLM进行量化。主要目标是确保经过微调的LLM在量化为较低位宽后仍保持性能。
        训练后量化:在LLM的训练阶段完成后对其参数进行量化。PTQ的主要目标是减少LLM的存储和计算复杂性,而无需对LLM架构进行修改或进行重新训练。

        假设你正在学习画画,你有一套非常高级的彩色铅笔,这些铅笔能够准确地绘制出你想要的任何颜色,类似于浮点数,它们非常精确但也比较昂贵和占地方。现在,为了让画画活动更简单和便捷,你决定只使用8支铅笔,这些铅笔代表了最常用的颜色,相当于整数,它们虽然不如全套那么精确,但足以应对大多数情况,同时更便宜和容易携带。

        这个过程就像是“量化”,将复杂的浮点数(全套铅笔)转换为更简单的整数(8支铅笔)。

        量化感知训练:在你学习使用这8支铅笔画画的过程中,开始适应用这些有限的颜色来表达所有你需要的色彩。这就是量化感知训练,在模型训练过程中直接使用低精度(有限的颜色)来进行训练,使得模型自身就适应了这种简化的表达方式。

        量化感知微调(QAF):已经用这8支铅笔画了一段时间,但现在你需要为一个特定的画展准备作品。你可能会重新调整你使用这些铅笔的方式,确保即使只有这些有限的颜色,你的画作也能在画展中表现出色。这个过程就是量化感知微调,即在微调过程中对模型进行量化,确保即使是在低精度下,性能也能保持。

        训练后量化(PTQ):这就像是在你完成了一系列的画作后,你决定再次精简你的工具箱,只保留那些最关键的铅笔。你不需要重新学习如何画画,而是调整你的工具来适应已有的技能。这样做可以减轻你携带工具的负担,同时保持画作的质量。这在模型中的对应就是在训练完成后对参数进行量化,以减少存储和计算复杂性,而无需重新训练或修改模型架构。

        通过这种方式,量化技术帮助深度学习模型在保持性能的同时,减轻了存储和计算的负担,使得模型更适用于资源有限的环境。

三、LMDeploy简介

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

        核心功能:模型高效推理、模型量化压缩、服务化部署。

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值