本质上就是量化和蒸馏之间的区别,那么量化和蒸馏呢?其实是就是我蒸馏呢想要学习的是我,呃或者他,他的方法呢?是我先让大模型去做一个输出,然后呢把大模型的输出呢给到小模型,让小模型去做学习,我不管这个学习的东西呢,是一个大模型的输出概率还是大模型输出的一个序列, 那么本质上其实是他的输出,那呃,我觉得蒸馏呢得到的这个结果呢?和量化得到的这个结果他有一个非常明显的区别是我量化直接对这个大模型的参数去做量化了,也就是说他实际上类似于 我直接 copy 了一个大模型,但是这个 copy 的这个副本呢,实际上是用低硬度数去表示的。那么嗯,这就有一个问题是,呃,实际上我量化得到的一个小模型呢,它跟大模型 呃应该是很相似的,他从参数上还有他的输出上面应该都是比较相似的。由支撑瘤得到的小模型呢,实际上是,呃,可能我只能保证他的输出是比较像的,那他呃里面的参数呢?可能 这就是不固定的,就是我也不知道他里面参数是是怎么样去去怎么样构成的,但是我只能保证他的输出是一致的,我觉得这个是呃两个区别吧。
粉丝986获赞529

呃,今天呢,我们跟大家介绍一个模型量化呃的一个算法叫 a w q 啊,它是属于呃大模型压缩和加速的这样的一个优化算法啊, 我们一起来看看一篇。呃,这个这个算法是麻省理工他们研究的啊,而且他也以他的,他他们也把整个一个算法变成了一个这样 他有一个项目叫 alt a w q 这样一个项目。那么我们今天的话就先了解一下他这个算法,他这个算法到底是怎么回事啊?能够做到什么程度啊?对我们来讲,好,我们来看看。那么为什么会有这个 模型的量化呢?我讲的通俗一点,因为呃大模型呢,它非常消耗这个 g p u 里面的内存啊,我们一般呢,我们都是跑在单精度跟十六啊,这种 f p f 十六的半精度的 f p 十六的这个半精度这个上面, 但是有些时候我们是还可以跑在这个 r n t 八八位整形八 bit 的这样的一个量化的这样一个操作上面,八个 bit 量化的话呢,它也有很多好处啊,它至少可以让我们的内存效率呃减少一半啊。那么 麻式理工呢,他们就说啊,这个够了吗?因为我们现在的模型越来越大啊,像拉玛六十五 b 的这种模型越来越大啊,我们用 a 一百可能还不够啊,那么怎么办啊?那么我们可以再小那个 化变成不行,那么我们把它变成 r n t 四 r n t 三,看看行不行啊,对吧?就是要需要使用更低的这个 bit 啊,然后把这个权重进行量化,然后去减少它的整个一个计算量和 g p u 的内用 内容的使用率啊,他等于是这样,那么他们也做了一个实验啊,他这个实验里面这张图就讲了一下,如果是 a 一百呃拉玛六十五 b 的这个模型啊, 如果他跑在呃 bench size 是一的这样情况啊,他的这个算力和是远远够的啊,如果他跑在一百二十八的这个 bench size 的话呢,他的算力还是够的,那么他的算力还在增加,但是你可以看到他这个就已经上不去了啊,他的主要的问题还是在内存,内存强,就是他这个内存上面 内存的消耗,上面内存的这呃吞吐量上面他还是有巨大的这个 get 跟他的这个算力其实是没有太大的问题啊,那么他跑不上去,主要还是要减少内存的这个消耗,那如果把 内存消耗能够减少的话,它能够进一步的去带动它的整个一个呃大模型的整个一个吞吐量啊,它这个是一个基础问题啊,那么他们呢就研究了啊,如果我把 f p 十六就单精度的啊, f p 十六,然后转成 r n t 三,就三 bet 的这样的一个量化的这样的一个东西啊,这个里面也讲了啊,它只是把它整形的话 啊,一零三啊,对吧?你可以看得到啊,它这个操作叫 r t n r t n 的这样一个操作啊,操作完了之后呢,它确实它可以大幅降低内存的这样的一个使用量啊,而且它用 r n t 之后,它其实是可以把那个就是这个,它所谓的就 那个叫矩阵啊,就是 group 啊,它可以把那个 group size, 它可以把它变成一百二十八个呃,集集中在一起啊,进行批处理啊,那这样的话呢,它在这个单位的整个一个呃内存里面,它可以存更多的这个数据,呃,计算量,呃可以显著降低内存的使用量,也可以显著的降低, 去进一步减少这个内存的这样的一个瓶颈啊。啊,他这样做啊,是有带来非常大的好处,但是他的坏处是什么呢?他的这个精度降低了,他的精度降低了啊,是显著的降低啊,他就是你这个大模型原来是非常 聪明的啊,但是经过你的量化之后呢,他就变成了一个傻子啊,他觉得是这样啊,所以这个方式啊,虽然 gpu 的使用量 降低了,但是他的精度是不够啊,所以这样光这样操作是不够的,那么他们就想了一个办法啊,他想了一个什么办法呢?他们发现啊, 我,我在量化的这个过程当中,我可能把某些列啊,某些权重上面的列它进行 f p 十六啊,它就是保留百分之零点零一的这样的一些权重啊,有些重要的权重啊,它还是适用 f p 十六的这种方式,他这样就会变成一个混合精度啊,大部分都是用了这样一个整形,只有一部分,很少的一部分用了 f p 十六,哎,这样他就会发现,哎,他这个精度啊,还是能够保持的非常好哎,他不但 它的内存稍微增加了一点点,但是它的这个整个一个模型啊,它的精度它还是保持的非常好啊,它的稍微损失了一点精度,但是它 大幅下降这个 gpu 内存的使用量啊,他有这样一个好处啊,那么这个就是他们目前的叫混合精度的这样一个操作啊,光有这个混合精度的,我们要去看他到底把哪一列 啊,哪个权重作为一个混合进度呢?这个是比较重要的啊,他们试了很多方法啊,一种方法呢是我不管三七二十一,我看哪个权重啊,啊,比较重要,我就固定的有一列,把它变成这个,他这个发现呢,就固定的这个权重的这个量化啊,他的 他对改进还是非常小啊,他的,呃性能还是不好,还有一种呢,随机,随机也不行,他们呢就发明了一种方法,通过一个叫 active 啊,去计算你这个 像量当中一个最重要的这样的一个权重,让他保留下来啊,那么这样他就会得到最大的一个改进啊,所以他这个方案叫做 active activation 啊,啊,他就会变成 这样的 a 就是这么来的 activation 啊,激活感知的这个权重进行量化哎,他这个名字就是这么来的,这个就是 awq 啊,他的算法的名字就是这么来的啊,好 操作啊,但他这样操作,他想,哎,能不能进一步,再进一步再降低啊,他的这个损失啊,那么他呢就会发现,哎,我可以在权重上面重要的这个上面,我先成一个,一个 scaling, 就是成成一个系数,成成一个扩大的一个系数大于一的这样一个系数,去减少他的这个量化的这样一个错误啊,他在后面的操作里面呢,再做一个 除法,那么一乘一除,他等于是说这个精度啊,没有任何变化啊,这个数值没有任何变化,但是他能够很好的去进一步去降低他这个权重的这个错误率,那么他们也测了如果一点、五倍、两倍、四倍,到底哪一个好呢?哎,他等于是这样,那么他目前看下的四点 两倍这个数据是比较好的,一定是固定值,一定是最优的吗?他们又去研究了一些算法啊,他就做了一些函数啊,他就想方设法啊,尽可能的啊,不要用一到一些混合的精度啊,他尽可能不要用到一些混合的精度,他尽可能把它整形化,但通过一个系数啊,把它给 全部整形化,那这样他所消耗的这样的一个算力呃是最少的呃,包括他所需要的这个内存也是最少的。他通过这种啊,把它成一个系数,把它整形化啊,进一步去除一个系数,去降低他的整个一个损失,通过这种来做的啊,那么他发现 如果去乘一个系数的话,那么这个系数是到底是多大呢?那么他们又发明了一个算法叫 fast grade search 啊,他通过这种方法啊,去找到这样的一个系数啊,这个系数去乘以这个权重,或者后后面去除以这个权重,他 是最优的啊,他找到了这样的一个方案,他得是这样,他的损失率啊,可以进一步的降低啊,变成十三点幺八啊,比原来成一个固定系数会更好啊,他是,所以他就会变成 叫 activation, 呃, where, 呃, weight, 呃,这个权重的这样一个量化啊,他就会变成激活的这样的一个, 呃,感激的一个权重量化啊,他这个名字就是这么来的。他这个里面也有一个算法啊,好,这个是他的这个基础的原理啊,好,那么他按照他这个原理呢,他就把这个 算法给算给做出来了,那么他也做了一些呃,对比啊,叫呃, g p g q, 他是用拉玛 two 的这样的一个模型和拉玛一和拉玛二的这样一个模型,分别做这样的一个对比啊。呃,他用不同的算法,用 i bit 三位和 bit 四位,呃呃, group 是幺二八,呃,这样一个参数,这个呢是 f p 十六, 是半径度啊,是比较准的啊,你可以看到啊,他的这个数值越低是越越好,他的这个损失率啊,他的这个错误率,他的也是这样,你可以看到这个还是比较好的啊,像这个啊,如果是 rnt h 四的话,你可以看到他跟五点六零跟五点四七,差别已经不是太大了, 差别已经不是太大,特别是在大模型上面,七十 b 的这种模型上面,它的差别已经很小啊,所以到它的内存的使用量,如果我们用 r n t 四的话, 你可以看到啊,他需要的内存就会非常少啊。回头我给大家展示一张图,这张图里面会重点会去讲啊,如果我们用七十币的这种辣妈的这种大模型,哎,其实是可以跑在一张 gpu 卡里面的,同时它的性能也是非常好 啊,推力加速的效果也是不错啊,所以这个是他的这个算法的 a w q 的这个价值啊。好,那么他最后呢啊,他又给了一张图啊,呃, g p t q 的话,也是一种 变化的算法,这个他的这个算法到 a w q 啊,他也是一种算法,他跟对比了其他的这个算法之后呢,他会发现就是他的这个算法啊,他的这个损失率会更低,会更好,大家也是这样啊,他主要是讲的是这个啊。好,那么这篇的呢,论文就会跟大家就介绍到这,我们看看这个项目 项目这个情况啊,这个项目的话呢,它原版的这个项目是在这叫 l l n a w q 啊,那么这个是老量啊,这个项目啊,那么现在的话呢,它这个项目呃,又在新的一个项目上面进一步去发展啊,这个项目叫叫 alter a w q, 他们做这个架构可以做的更好一些啊,所以他叫 alt a w q 啊,那么他跟 f p 十六对比啊,他这个上面也讲了一下,如果用四倍的话,他会比 f p 十六要少用三倍的这个 内存啊,就是这样啊,非常有价值,而且他的效率还会得到翻倍,叫速度会翻,推力的速度会加倍,同时他的内存的消耗会只有原来 三分之一啊,这个是他这个项目的价值。好,我们来看看他目前支持的模型啊,拉玛 two, 拉玛一啊, mister 二、米库纳,像这种啊,中国有一个叫,呃,这个叫飞鹰啊,飞鹰一模型和飞鹰二模型哎,特别我比较看重的是中文中英文的这个飞鹰二,他有一个三十四 d 的这个模型,他也是可以支持 a w q 的讲话啊,这个非常有价值啊,我们可以看一下啊,如果他经过量化了之后啊,他的内存呃就会非常少啊,他七 b 的话,你看他经过 rnt 亮化之后啊,它只需要四个 gb 啊,就够了啊。如呃,它是可以跑在那个,如果是 啊,这个是七 b 的模型,他在测这个是七 b 的这个模型,拉麻特的,这这这个也是七 b 的模型,我们看一个模型大一点啊,啊,看一个三十四 b 的模型啊,三十四 b 的模型呢?他这边讲了,如果二零四八的他跑在一块 gtu 卡上就可以, 只要二十 g b 的这个就够了啊,他也是跑在这个量化上面, a w q 四倍的量化,只要二十四 g b 就够了啊,他的如果你要呃这个 contex 更大一点的话,比 co 的要更长一点的,那你可以用两块 g p u 啊,用那个 三零九零啊,四四四零九零的两块 gpu, 那你就可以跑这样一个三十四 b 的这样一个大模型啊,原来的话是不可想象啊,你这么大的一个模型啊,怎么可能用两块 cpu 就可以跑出来了,同时它的性能也不是很差,但可以用这个大模型用作一些推理商。好吧,好,下次这个项目我就跟大家就介绍到这,下次有机会的话我再给大家演示一下怎么用 啊, o two a w q 进行量化啊,然后怎么进行推理啊,怎么省内存,怎么样加速这个推理的过程,好吧,好啊,今天这个啊,这个文章啊,就跟大家就介绍到这。


哈喽,大家好,我们来到知识曾牛的下集,这里是曾米的电台, 在上一期里面呢,我们已经充分的去了解了知识增牛的一个算法提出的背景,还有知识增牛的知识的形态。今天呢,我给大家去汇报的内容呢,主要是下面两个具体的知识增牛的方法,还有 hton 经典的知识增牛的论文去解读。 第一个内容是知识蒸馏的方法,同样出自于知识蒸馏的中数。这篇论文里面知识蒸馏呢,其实主要分为三个方法, 第一个呢就是零线增流 offline the distillation。 第二种呢就是在线的增流 online the distillation。 第三种呢就是自蒸瘤的方式,一共有三种,这里面呢则有两种颜色,一种是红色,一种是绿色,红色呢就代表欲训练的模型已经训练好的。另外一种呢,绿色就代表我们将要去训练的模型。 下面我们来打开看一看。第一种方法就是 of night installation 离线的蒸馏的方式。 其实呢,现在来看,大部分的算法都采用 offline 的这种方式,就是离线增瘤。那增瘤的过程分为两个阶段,第一个阶段就是左边的增瘤前,我们先训练一个教师的模型 twitch model, 先把它训练好。 第二步呢就是把教师网络的模型的知识增留给学生,网络就进行一个知识迁移的 过程,因此 of night distillation 呢,就是离线增牛的这种方式呢,更侧重于知识的迁移部分。怎么去迁移?迁移什么知识?这个点非常重要, 这里面呢值得注意的就是在步骤一增留前,教师网络模型进行一个预训练码,就提前训练我们的教师模型,那这个教师模型呢?一般来说,教师模型的参数量呢,会比较大,而且训练的时间呢也会比较长。 现在呀,好多好多的大模型都是采用这种方式去得到一个小模型的,例如 bird 网络模型就推出了 tiny bird, 也就是这种蒸馏的方式。好像 vit 也推出了 tiny vit 这种蒸馏的方式,同样都是采用 often night distillation。 不过这种方式呢,也有自身的弊端, 通常这种模式呢,就是学生网络模型呢,过度的依赖于我们的教师网络模型。下面我们看一下第二种蒸馏的方式, online destination。 虽然在线增牛跟离线增牛啊,都是左边一个教师模型,右边一个学生模型,不过有一点比较大的区别就是这两个模型都是绿的,这不代表老师和学生都绿了,而是代表老师和学生都是一个在线学习的过程,就是一起去学习 what what the。 教师模型和学生的模型的参数,同时更新整个知识证六的算法呢,就变成一体,一个端到端,可训练可学习的方案,而不是教师模型自己先学,学习完之后再把 知识增留给学生。这种呢,属于离线 offline 的方式,将是跟学生同时学习,属于 online 的方式。那 online 的方式呢,有一个比较大的缺点,就是在一个在线的环境里面呢,很难去获得一个参数量又大,进度又好的教师模型。 第三个知识蒸馏的方式呢,叫做 self distillation, 就是教师模型和学生模型呢,其实就是一个模型,他进行一个自学习的过程,端到端的可训练,可学习的方案。 其实这种方式呢,也属于 online distillation, 就是在线蒸馏的其中一个特例。 现在呢,我们总结一下刚才讲到的三种知识针灸的方法。三种知识针灸的方法呢,可以看作三种不同的学习过程。 那第一种就是刚才讲到的 of light distillation, 最常用的离线增牛方法,主要是指一个知识渊博的老师,他自己已经学完了,然后直接把他学到的知识传授给学生。 那现在第二种呢,就是 online dystollation, 在线的之中有是指老师和学生一起学习,一起成长。第三种就是 self dystollation, 就是学生自己学习,自己成长。 下面呢,我们以一个最经典的算法,应该是一六年到一七年的时候, hittin 第一次提出知识争牛这个概念的这篇文章。那下面这篇文章呢,比较粗暴,名字呢叫做 distilling the knowledge in a nature network。 在正式了解这篇文章之前呢,我们 我们要提前去看看两个概念,一个叫做 hard target, 一个叫做 soft target。 在传统神经网络模型当中的训练啊,其实我们首先定一个损失函数,然后定一个优化器,优化器在不断的去优化我们的损失函数, 目的呢是使得我们的预示值呢,尽可能的接近于我们的真实值,就是 y 等于 y label, 那这个就是我们的目标, 而为了产生这个目标呢,损失函数就是使我们神经网络的损失值和真实值呢之间尽可能的少。我们看看下面左边的这个图,假设我现在有十个数字,零一二三四五六七八九十, 我输进去一张图片是二,我们希望预测是二的概率越高越好。这种方式呢,在数学或者统计方面呢,就是对我们的 grow top 真实的数据求极大的释然值。我们看 一下右边的这个图,在知识针灸里面呢,我们就像右边的这个图索,是希望能够学习到更多的其他额外相关的知识,就是我假设输进去的一个数字,所写数字可能长得像三, 这个时候呢,我们希望神经网络呢,学到更多的勇于的信息,当然了,他告诉我这个肯定是二,那肯定是最好的。把手写数字的字体长得有点像三,这个勇于的信息也告诉出来,那这个肯定是最好的。因此呢,我们看一下左边的这个图跟右边的这个图所示,左边的这个呢,我们叫做 hot target, 右边的这个呢,我们叫做 soft target, 带有一些其他勇于的信息。下面我们再了解另外一个概念,叫做 softmaxed with temperature。 在 softmast 函数里面呢,增加了一个温度系数。下面我们看一下这条公式的 一个数字的含义。 q i 呢,就是指第挨个类别的输出的概率,而 z i 呢,就是指第挨个类别输出的 logist。 下面我们需要对每个类别输出的 logist 进行一个指数的求和,那就得到了我们 soft mass 的函数了。 下面呢,我们进行了一个修改,把刚才的 soft target 就是 soft label 的信息给到我们的 soft max 函数,这里面呢,就增加了一个温度的系数, t z i 除以 t, z j 除以 t。 哎,当温度等于一的时候,其实大家看到没有,其实等于我们标准的 soft math 的函数,记得数字越高呢, soft math 输出的概率的分布呢就越平滑,分布的信息伤呢也就越大,所以副标签所携带的一些额外的勇于的信息呢,也会相对的 放大。这个时候呢,我们网络模型的训练呢,就更关注于我们一些副标签的勇于的信息,就是我们刚才讲到的这个图, soft talking 里面的一些勇于的信息,额外的信息也把它记录下来,就是通过简单的设置一个温度系数来控制。 那下面我们再看一个比较明确的图,随着 t 的增加呢, t 从小到大我们可以看到 sofamas 的输出的分布呢就会越平滑,信息商呢也就会越大,信息的差异呢也就会越少。 当然了,怎么找到一个合理的 t, 得到我们中间这种图呢,是很关键的一步,下面我们就来探讨一下如何选择这个 t。 实际上呢,选择温度 t 呢,主要是下面 一种情况,假设想从副标签里面呢,学习到更多的有用的知识,有用的信息,或者一些额外的参数,我们的温度 t 呢就适当的去调高一点点。 但是呢,当我们想减少副标签对我们整个神经网络或者对我们的预测值的干扰的时候呢,我们的温度 t 呢,就适当的往低去调整就好了。 当然了, t 的大小应该设置为多少,我们需要根据我们实际的情况,实际的任务进行设定的。在分类任务和检测任务,我们的 t 的选择也是不同的, 接下来呢,就正式的回到知识蒸馏这个算法里面,首先去了解一下知识蒸馏算法的训练流程呢,跟传统的训练流程的一个不一样的区别,第一个呢就是传统的训练流程, 训练流程我们刚才讲到了,其实我们最大的目标呢,就是训练我们的 heart target 对光 proof 真实的样本呢,求极大的释扬 softmax 的值。但是呢,在事实真牛的训练过程当中呢,我们更多的是希望学习到很多 soft target, 利用教师模型的分类的概率呢,作为 soft target, 就像周米给大家去汇报 ai 系统的这个相关的知识呢,我一般来说都不会照着字来练,而是插入了很多我自己的理解或者额外的知识一样。 毫不意外的就是这篇文章的知识增牛呢,采用了一个 offnight 离线的增牛方式。然后呢结果上面呢就采用了经典的师生的网络模型, teacher 呢就是知识的输出者, student 呢就是知识的接受指望 整个知识蒸馏呢,分为两个阶段,注意是两个,第一个就是训练我们的教师模型,第二个就是学生模型,进行蒸馏就是学习。下面呢我就分开两个给大家进行一个汇报, 现在呢更多的是一个字面和概念的意义的了解,后面我们会展开一个图,让大家看的更清楚。首先我们训练 t 区 model 的时候呢, t 区 model 我们叫做 net t, 特点就是这个网络模型呢,相对来说比较复杂, 像传送门之类的大模型呢,确实更加适合教师模型。那唯一的要求就是对于输入的 x 呢,他都能输出一个 y, 那这个 y 呢,经过 softmas 的应试呢,能够输出对应概率的一个预测的 概率的类别值。接着第二步就是学生模型进行增瘤,那学生模型进行增瘤了,说白了就是我们需要训练一个 student model, 我们叫做。 net x, 它的特点就是参数量呢,相对来说比我们的 t 群 model 要少。我们的模型结构呢,也相对来说简单。 同样的有个要求就是对于输入的 x 呢,我们都能够输出 y, 而 y 呢,经过了 softmex 的音式后呢,能够与 nasty 分别对应起来。用大白话来说呢,就是 t 区 model, 我要预测一千个分类 的 student model, 也需要要预测一千个分类,而不是变成五百个分类,那这是没办法做硬试啦, 在预训练阶段呢,会训练一个性能比较好的 teacher model, 所以呢,我们会把 teacher model 的信息呢给到我们的 student model 去学习。下面我们来看一下真正的一个算法流程。首先第一步,我需要训练一个 teacher model, 就上面的这个 teacher model, 我先把它训练出来。接着呢,我利用一个高温的 t 呢,就是这个 t 的值呢,试的比较大,产生一个 soft target, 把很多勇于的信息呢保留起来。 接着呢就是第二步了,第二步就是我们的 student model 的学习和蒸馏的过程,那有两个点,特别是需要注意的,就是在我们的第三步,第三步的时候呢,这里面呢,说白了就是使用一个 soft target, 还有 heart target 同时训练 student model。 那可以看到呢,我们上面有一部分,就这里面呢,有两个损失函数拼在一起作为一个总的损失函数,这个损失函数呢,就是我们的 t 呢,会比较高,跟上面的 可以保持一致。然后呢,训练一个 soft target, 通过 distillation loss 呢去进行一个学习。那第二个呢,就是我们的 hot target, 通过一个通用的或者普通的一个损失函数 去训练学生网络模型。最后最后一步就是推理了,推理的时候呢,我们把 t 设置为一,进行一个学生模型的在线推理, 所以 student model 的训练或者增牛的过程呢,会相对来说复杂一点,他有两个损失,一个是 distulation loss, 一个是 student lost。 下面呢我们来看一下具体的一个 loss 的情况。 这个 l 呢就是对应的总的损失函数,这里面刚才讲到了有两个损失函数,一个损失函数呢,就是针对一个 soft label 的损失函数,一个损失函数呢,就是对应 hard label 的一个损失函数。而 soft label 的损失函数呢,就是来自于 我提前猫的哈德利波呢,就是来自于我们真实的数据标签,通过两种方式,或者通过两个损失函数把它合在一起,变成一个总的损失函数来去学习。虽然说我们只需要看懂了这个图的流程,基本上你就明白这个算法是怎么去实现了。 好了,今天的内容呢,就到这里为止,如果大家有兴趣的话,也可以看一下相关的文献和内容,谢谢各位!拜了个拜。卷的不行了,卷的不行了,记得一键三连加关注哦,所有的内容都会开源在下面这条链接里面,拜了个拜。


亮化之后的他的这个模型的性能到底怎么样呢?我们今天主要是聊这个事啊,我们如何去测试一下叫当这个大模型被我们亮化之后,那么他的精度到底会损失多少啊?那么我们肯定是要进行一个测试的,我们首先给大家看一下,这个是一个截图,是通一千分十四 b, 恰恰经过 awq 亮化之后, 那么我们一般会用一个呃困惑度啊,来衡量这个模型被我们呃量化之后的这样的一个性能到底是怎么样子的啊?那么他这个困惑度的话是七点二一七点呃一幺二啊,他等于是这样啊,那么 我们一起来看看啊,那么这个困惑度呢?他一般都是呃就是大模型啊,他们一般都是用这个困惑度啊来测试啊,评价这个模型的好坏啊。对于一个相同的一个测试级来讲,那么困惑度越小的话, 那么他的准确率也就越高,也就代表了呃,大约模型啊,他就相对来讲越好啊,那么困惑度他是一个交叉商的这样一个指数啊,指数的这样一个形式。我们简单给大家介绍一下,什么是一个信息,信息的一个交叉商啊, 交叉商呢?我们认为有一句句子啊,原来他是原始的啊,这个就是我们的那个测试级,从 w 零到 w n 啊,这样,那么经过我们这个大模型啊,他因为能够自动生成这句另外一句的句子,所以呢,我们可以认为就说 经过大模型之后的那个句子,跟他实际他的那个句子的这样的一个情况啊,如果呃我们的那个 模型比较好的,他预预测出来的这个句子跟我们实际的句子,他其实就是越接近他的那个真实分布啊,这个这个就称之为把真实的这个句子的这样的一个情况, 跟我们用大模型预测出来的这样一个情况的一个比较啊,我们称之叫交叉商,那么交叉商越小的话,我们就认为他就越,他这个预测,他就越接近于他的那个真实分布啊,那么我们就认为这个模型就越强啊。所以这要给大家介绍一下 awq 这个模型的话,是用这个 l m ever 这样的一个评估啊工具来做这个交叉商的评估的,那么他的他的评估的话呢?他是用这个 vicky text 啊,来来来做这样的一个评估的,他就是去预预测啊啊,他是用这个 vicky text 啊这样一个数据集啊,就是 呃,来来做这样一个模型的这个质量的这样一个评估啊,他用的数据集是这个,那么他用的指标的话呢,就是前面讲的这个困惑度啊。这先 l m l 的话呢,它是一个开源的一个评估的一个框架,它是也是一个大圆 评估的一个框架,自回归的大圆评估的一个框架,这个框架呢?是呃,在哈根 face 上是比较火的啊,给大家看一下啊,星星也很多啊,三点二万个啊,那么像中国的一些些模型,他也是用这些用这些 啊, language model 的这样的一个评估的一个工具啊,去评估的啊。目前的话这个版本是零点四点零这个版本啊,他也有很多的这样的一个评估数据集,给大家看一下,他有非常多的这个评估的任务啊,这个是评估这个表啊,你都可以进行评估的啊, 它,那么我们这次是用那个 text vk text 啊,它主要是预测这个字符呃, word 的这个准确度困惑度的啊,我们是通过这个啊,当然你也可以通过这个模型去预测一下,像中国的这个 ever, 呃, c ever 的 下一个数据评测啊,他这个里面也有啊,这个主要是预测这个模型的准确度啊,他是等于是这样哈,所以我们是 是用这样的一个开源的这样的一个评估的一个工具做评估的。好,我们再可以看一下啊,那么 我们可以对比一下啊,如果是通一千万七 b chat 的跟通一千万十四 b chat 经过 a w q 量化的话,其实这个两个模型基本上是等价的了,因为是什么呢?我们呃,用 a w q 量化之后的话,他用的 呃,这个显存的话不多,也是通一千万七 b chat 的这样一个显存的这样一个量,所以我们拿这两个模型去对比一下,比较有代表性。这个是通一千万七 b chat, 它这个原始的,它的这个这个困惑度是八点六七一啊,它是等于是这样经过我们量化之后啊,通一千万十四 bcat 的这样的一个模型的话,你可以看到 啊,他的困惑度降低了七点幺二幺,那么就相当于是什么?这个就代表了就是相同的这个显存,相同的 g c u 的算力啊,可以用一个更大 大的一个模型啊,达到更强的这样的一个模型的这样的一个精精度啊,他等于是这样,那么我们在服务器上的,哦,这个已经跑完了啊,我们跑了一个三十四 b 的 一个模型,这个是我们跑了一个三十四 b 的一个模型,七十二 b 的一个模型,然后它目前的精度的话呢,是大概是在六点六点多, 六点二五三,稍等一下啊,对,差不多是六点二五三,这样就,呃,我们如果量化了之后的话,你可以看到这个模型越大的话,他量化出来他这个模型的性能是没有下降太多 啊,所以我们就可以通过量化的这些模型啊,尽可能少用这个 gpu 的显存和他的算力能实现呃,更好的这样的一个模型的精度,好吧。

当前的量化交易操作模式基本是短线和超短线交易的对手,或者说是收割目标,和过去的油渍一样,就是我们广大散户股民。 如果说二零零五年之前,股民做股票主要是研究专家,二零一八年之前股民主要是研究油资,那现在只要多研究下量化交易了, 其实量化交易也没有那么神秘的。这几年崛起的智能化量化交易,其实就是运用人工智能、大数据技术,具有机器学习能力,具有智能化的量化交易算法。模型 其实就是一个机器人炒股高手先建立一个模型,再用股市里几千只股票,过去几年、十几年的股票价格采报、数据推线技术、图形技术 指标、市场情绪、资金流动等大数据不断的同位,主要就是短期的资金流向,对交易机器人进行训练,使其变成一个超级的短线高手, 并且还会自我学习。由于量化交易主要是运用资金组合做隔日和日内的短线和超短线操作,所以就是把机器人训练成短线高手。这个模型需要量化工程是不断的完善和修改, 量化工程师需要借动股票用户一些算法程序,当前在国内非常紧缺,我之前的一个同事后来去加拿大留学学习量化工程,这两年回国,在上海据说年薪上百万, 这就是每天获取海量的股市交易数据,数据主要来源于券商和沪深交易所, 花钱买就行。算力,一般公司都是租服务器,但头部公司会有自己的服务器,比如千亿规模的量化机构换方,光服务器就投资上亿元,据说算力顶上几万台的个人电脑。 当前的量化交易加入了人工智能、神经网络、特殊算法和区块链技术等先进技术,使机器成为一个超级的短线高手,可以秒杀市场上百分之九十九点九以上的短线人工交易者。量化基金就是用这些工具在股市里收割散户, 也与其他机构互割。在实际交易中,量化机构把一只股票控制在一定的涨跌幅区间内,来回做交易,经常股价下跌,散户一卖,股票就涨了,股票涨, 散户一买就又跌了。有时在日内交易中,由于百分之二的挂单限制和散户手工操作速度太慢,哎,量化交易可以毫秒级的速度下单,在几分钟之内让一只股票大幅下跌四五个点,等散户一卖,股票又涨起来了,这样来回操作。

一、什么是量化?量化的本质其实是模型交易,把交易模型量化成一个公式,然后让机器自己去交易,符合条件只管买入卖出。二、量化的特点是什么? 一、无情的执行力。机器人和你的最大差别是严格按照既定规则去执行,不会犹豫,只会按规矩办事,绝对不会在执行力层面出现偏差。 机器人是不会看情绪强弱的,机器人只是想利润最大化。比如一个票两亿的风单,我们看到风单这么大,肯定是想留一留,但是机器人不这么想,机器人只会看到两亿风单够他出货,他只管卖个好价钱。 这是最近市场为什么炸版率这么高的原因之一,这时候如果没有资金来做回风,一支票就废了。二、助涨助跌的大沙。 量化对市场最显著的影响就是加速了情绪周期的演变,只要确定龙头,就是无脑抢筹,第二天加速不给参与机会。 例如六点九错位信息,六点二八中马传动,七点三浙江世报,七点一九中央商场,七点二八太平洋并隆日确定龙头地位,基本第二天就是一字,要不就是梯字。 这对于融化带来的后果就是炸板掉队严重的直接被和,例如七点五星明智通炸板直接杀到水下,七点三一首创政权冲板被一路砸到林州,因为量化指认最强的,其他的就是有崇高就砸。 三、量化需要的是政府,而不是涨幅,这一点一定要充分理解,量化的体量注定了他不能像散户一样快进快出,所以量化的利润主要来自于日内的政府做踢,不断降低 成本,所以它需要的是大成交量下流动性好的品种。例如四月二十四日至五月四日剑桥科技,七月七日至七月十八日浙江时报,七月二十四日至八月一日中央商场,八月四日至八月十日太平洋, 这些名牌龙头高位鉴定后,始终维持在一个较大的成交量,一般持续四至五个交易日,一旦出现明显缩量后,他们的政府也相应减小了。三、在量化环境中如何应对?最佳策略当然是在定龙日直接抓住机会参与,这对于普通人只能说很难, 盘中可能那么几秒钟的机会,第二天直接加速了,这种抓不住没关系,那么我们只需要参与名牌龙头鉴定后这一段震荡就可以了。如何参与,需要几点确定性,第一,必须是名牌龙头。第二,必须持续维持一个较大的成交量。 参与节点一加速后的首次分歧,也就是老师们的龙头首映战法,这时候需要打入底仓,参与节点二首次分歧后第二日的底细,接着建仓开始做题。注意,这时候每支票的政府大约在六至七个点的空间, 也就是说,如果当日最低点在负四,那么加三附近就要开始注意期,低息点大约再见顶日的开盘价或加速率的涨停价 迈出节点。高焕首高成交量为十四至五个交易日后出现明显数量,必须清仓。以上便是对于名牌龙头跟随量化作梯的策略的一点理解。 最后分享一个工具,打板客网交易系统一点七三版,一个与时俱进、不断更新的看盘复盘系统,可以让你在企的方面超过全国百分之九十的股民,不知道的可以问一下,百度了解一下,也许对你会有所帮助。本文写于二零二三年八月二十九日。

有一个挺有意思的想法,做个记录啊,怕我自己给忘了,就是我看到,嗯,有一篇文章说真瘤也是可以 step by step, 这个 step by step 呢,它是 prompt engineering 里面的一种想法啊,这种很好的一种东西,就是他能够让呃大模型去思考一个问题的时候,做逻辑推理的时候是一步一步的推理啊。 那现在有人做法呢,就说在蒸馏,就是大模型蒸馏,给小模型的时候,能不能一步一步的蒸,会不会变得更好?其实这个想法我以前有啊,这个想法我是什么时候得到的呢?因为我记得我高中的时候参加一个物理竞赛,参加物理竞赛的时候有一道题目我印象中特别深刻, 就说,呃,现在有一杯热水,一杯凉水,然后通过这杯热水倒在这杯凉水里面, 让这个凉水的温度提升。呃,怎么样才能够让这杯凉水的温度提升的特别多啊?其实这个这个算法就直接讲算法,这个算法最后呢是解一个微分方程。 呃,问方程呢,就说如果你把大杯子里的水,这个温水啊,一点一点的倒给这个冷冷冷冷的那个水杯里面啊,那么这个冷水的温度 最后上升的最多,也就说你不要一次性的倒进去啊,你要一点点的倒进去,就是这最后是解一个微分方程啊,其实这个想法跟什么 step, step, 还有包括这个蒸馏里面要一步一步蒸馏啊,这想法都是非常接近的啊, 啊,其实这自然界的一种一一个生活哲理啊,就说你如果要给这个知识的时候,你不能一一股脑给他啊,你要一点一点的给他,可能对他的提升,最终提升是非常好的。做一个记录啊,怕我到时候给忘了。

大型预训练模型的话呢,它模型越大,那它的精准度就越就越高,但是精准度越高,它消耗的那个 g p u 的内存就越多,它需要的资源就越多。现在呢就出来一个新的一个算法,这个算法可以把大型的这种预训练的模型,让它能够温度的同时能够大幅的 下降它这个 gpu 的这个内存的使用的这个效率,它等于是这样,那这样的它的吞吐量也可以上升。我就讲这样一篇文章,那么这篇文章的话呢,也是非常有价值,他们是 拿了一个维库纳的是一百三十亿的这样的一个大模型,跑在一个 amd 的一个 gpu 上面,当然你可以也可以跑在英伟达的这个 gpu 上也是可以的。 那尾库纳的这个 g p, 呃,这个模型我我之前也是经常介绍的,它是在那个全球的这个开源的这样的一个 l l m 的大型预训练模型里面,它是排名是第一的,它等于那它是 是相当于差的 gpt 的百分之九十二的这样的一个性能。他对,所以他这个是开源里面一个非常非常有价值的这样的一个模型。但是这个模型的话呢,有一百三十亿的参数,那么他就需要 a 一百的这种 gpu, 他就需要八块,所以如果你要把它跑起来,那但是对一般企业来讲这个成本就非常高,虽然他的性能 非常好,但是他要跑起来的话呢,他需要大量的费用,他等于是这样的,现在呢就出来一种算法,他就是可以把这个大的这个一百 一百三十亿的这种大模型进行压缩,他们叫这个量化啊,量化模型量化的这个操作,我们可以看看这张图,这这张图是关键的,我们一般跑的那个大型的米库纳的这样的一个大模型的,我们一般是跑 p 十六的 精度啊,它是等于是这样,现在呢它可以去做一个量化,量化的话呢,它是用四个 bit 和三个 bit 的这种方式,它这个算法 叫 g p t q 的这种方式可以把这个模型进行压缩,就像我们那个视频文件一样,他就把这个大的模型进行这个压缩处理,压缩处理之后你可以看到它这个红颜色 bit 四的 g p t q 的这个算法, 它的这个精度啊,跟 f p 十六的相差不是太大,但是不是这个算法的它的这个误差有些时候就会非常大,甚至就没法收敛,它等于是这样,所以,呃,所以的话呢,就是,嗯, g p t q 的这个算法就非常有价值,它只可以把我们原来需要八块这个 a 一百的这个 g p u 的这样要运行 这个米库纳的这样的,哎, gpu 就足够了,我们继续往下看啊,那么现在他们已经的这个这个论文的话呢,我已经下载了,我也看了一下,他这个论文也是非常新的,是三月二十二号,二零二三年三月二十二号刚刚推出来的,刚刚推出来他的主要的价值点,我前面也已经 讲过了,回头我们详细再来看看他的 qpt 的这个算法。我们先来看一下那个结果,结果的话呢就是开源社区,他们就对这个东西就是敏感度就非常高,非常快的就把这四个 bitt 的这个经过量化算法的这微库纳的这样的一个模型给放出来,放在这个哈根 face 上面, 他这个模型经过量化之后,他需要多少的 gpu 呢?那那么别人就实践了一下,他使用 amd 的这个 gpu 的,当然也可以用英伟达 gpu 也是可以的。他这样跑下来之后的话,你会发现他只要六点五 gb 的内存就够了, 原来的话他可能至少要二十四 gb, 他这个内存要装载,现在他只需要原来的大概四分之一多一点,他就足够了。所以的话呢,就是这种大模型就是可以 等于是说我们需要的这个硬件资源,需要 g p u 的这个内存的资源就极大的就下降。他的也是这样,他的精准度他们也测了一下,他很奇怪啊,他的精准度不但没有下降,反而上升了,这个 是他觉得很困惑,他是这个这个精准度反而上升了,这个是比较困惑,我回头会讲一下他这个算法,他会这个算法,他到底是怎么回事情?那么他的吞吐量的,他每秒钟的这个吞吐量也上升了,他等于是这样, 他每秒钟的这个吞吐量也是每个字符啊,需要多少毫秒,他等于是这样,他也上升了,所以他是一个非常有价值的这样的一个 一一个算法,他可以把那个大型的这些模型可以跑在非常少的这种资源上面,所以他是这样的一个东西。中国的话呢,也把有些博主啊也把这篇论文啊稍微简单的翻译了一下,我也看了一下, 我给大家解解读一下他这个算法到底是怎么回事情?他是怎么压缩的?中国人呢?他说这个是穷鬼的救星,你要跑非常大的一百三十亿的这个模型,原来我们一般只能跑这个六 b 的模型,就是六十亿参数的这个模型。而现在我们可以跑更大的这种模型,他也也只需要很少的这个显 存就够了,他需要的资源就会比较少,这样的话呢,这个大模型他就可以更普及了,他等啊有了这个算法之后,我们看看他这个算法他背后到底是怎么做的。他本质上的话呢,这个 g p g q 的这个原理的话呢,它说它是来自于叫 o b q 的这样的一个算法的,这个 o b q 的这个算法呢的话,它本质上是什么呢?就是你要把一个模型进行压缩,那么它会带来误差,那么带来误差的同时的话呢,它要增加一个权重,要去弥补它这个误差,把这压缩之后的这个网络在 加上他的新的一个这个权重,让他这个误差就是降低到最小。他通过这种方式去做原来 o b q 里面的这个算法的话呢,因为 他就是用了一些算法,他就需要很多的这种算力,他这个里面讲他这个原来这个非常好,但他这个算法不是太好,因为的话呢这个用 obq 还是比较慢。他要把他举了一个例子,他说那用 resnet 五菱的这个网络, 如果要用那个 o b q 的那个算法,它要花几年时间,这这这个在大大的 g p t 的这个模型上,要花几年时间 它才能把这个模型给压缩完,所以的话呢,它的时间实在是太慢了。嗯, g、 p、 d、 q 的话呢,它就在这个基础上在进行了优化,它就优化了三点。第一个的话呢就是取消了这个贪心算法,它这个里面讲了一下有一个什么贪心算法,它这个里面 就是说原来他是要一步一步的去优化,他等于是这样,现在他就会变成一个一个的列,他可以并行,他是等于是这样。 第二个它原来它是单独的一个个权重去处理的,现在的话它把权重变成一百二十八个列,那通过适量的这个矩阵,通过这个 gpu 防止它利用这个 gpu 里面的 定型的这种批处理的这个算法,所以的话呢他的效率就会非常高。另外一个他也用了一个数值稳定性的这样的一个算法,他把这个算法加进去了之后,比他原来的 因为来的那些神经网络的话,他其实也是有误差的。但是他引入了这个东西之后,你可以看到前面讲他的反而他的误差,他的精准度会比原来更好,这个就很神奇,他等于是这样说明是什么,他这个压缩算法的对这个大型的玉训练模型确实有带来了更大的这个价值在降低,在不损失精度的同时比原来精度更好, 损失的精度非常小,那他需要的这样的一个资源消耗又非常少,他等于是这样,所以他这个就是他的这个带来的价值。所以这个算法下次我有机会的话也要去尝试一下,他这个东西还是非常有价值的好,这个算法的给差不上面,他们也把相应的这个算法给放出来了,他等于是这样模型的话呢,别人也 也也已经把它给做出来。我前面也是讲了,在那个米库纳的这样的一个模型上面,别人也做了这样的一个量化,量化的话呢,他们也已经放出来,那这样的我们也可以,这些企业级,他也是可以用这些大型的这些模型,好好。

要使机器学习算法有效,通常必须从大量训练数据中提取有用的特征。但是由于在计算要求和时间方面以及此类大型数据级的训练成本,此过程可能具有挑战性。 通过减少模型有效所需的资源,蒸馏的想法在这些情况下发挥着重要作用。最广为人知的蒸馏形式是模型蒸馏,又明知是蒸馏。其中大型复杂教师模型的预测被蒸馏成更小的模型。 另一种选择是数据级蒸馏,将大数据级蒸馏为合成的较小数据级。用这样一个精链的数据级训练模型可以减少所需的内存和计算。例如,不使用 sifer 杠幺零数据级的所有五万张图像核标签,而是使用仅包含十个合成数据 点的蒸馏数据集来训练 ml 模型。近期,由谷歌研究团队发表的两项研究成果 介绍了两种新的数据级蒸馏算法和诱导点 kick 和标签 so, 使用内核回归产生的损失函数优化数据级。一种经典的机器学习算法,将线性模型拧合到通过内核定义的特征。应用 kick 和 ls 算法, 我们获得了非常有效的用于图像分类的蒸馏数据集,将数据集减少到每位一十或五十个数据点, 同时仍然在许多基准图像分类数据集上获得最先进的结果。研究人员利用神经网络的无线宽度极限理论来解决数据及蒸馏问题。数据及蒸馏可以被表述为一个两阶段 优化过程,一个内循环在学习数据上训练模型,一个外循环优化学习数据,以提高自然数据的性能。 无线宽度限制用简单的和回归代替了训练有限宽度。神经网络的内循环添加政策向后和回归成为合理回归问题。这是一个非常有价值的结果, 因为内合领回归器在其训练数据方面有一个明确的公式。与神经网络预测器不同,这意味着人们可以轻松的优化 k r 损失函数。外循环 原始数据标签可以由湾海向量表示,即真实标签的值为一,所有其他标签的值为零。因此一张猫的图像将具有标签 care, 一直,而狗和马的标签将为零。我们使用的 标签涉及后续的均值居中步骤,我们从每个组件中减去类数的倒数,因此零点一表示时位分位,以便将数据集中每个标签组建的预期值皈依化为零。虽然自然图像的标签以这种标准形式出现。 当我们学习的蒸馏数据级的标签可以自由优化性能。从内循环获得合理回归量后,外循环中的 k r 损失函数计算自然图像的原始标签与合理回归量预测的标签之间的军方误差 k, 通过基于梯度的方法最小化 kr 损失函数来优化支持数据。 label self 算法直接求解最小化 kr 损失函数的支持标签级,为每个支持图像生成唯一的密集标签项链为简单旗舰研究 人员专注于有具有持画层的卷机神经网络组成的架构。具体来说,关注所谓的 convent 架构极其变体, 因为他已在其他数据级蒸馏研究中得到体现。我们使用了一个稍微修改过的 convent 版本,他有一个简单的架构,有三个卷机快 review 和二乘二平均持话给出, 然后是一个最终的线性独出层,附加一个额外的三乘三卷机盒。 这项工作的第一阶段应用 k 二二,专注于全连接网络,其内核元素计算成本低,但是对于具有卷基层和持画层的模型神经内核面临的一个障碍是两个图像之间每个内核元素的计算缩放为输入像素数量的 方,由于内核补货像素像素相关性,因此对于这项工作的第二阶段需要在许多设备上分布内核元素及其梯度的计算。 研究人员调用分布式计算的客户端服务器模型,其中服务器将独立的工作负载分配给大量客户端工作人员。最后,中流数据集在基准图像分类数据集上实现了最先进的性能,比以前使用卷机架构 数据及压缩 dc 和可微连体增强 dsa 的数据及压缩的最先进模型的性能有所提高。