说一下deepseek

文摘   2024-12-31 06:00   上海  
你好
我好
大家好
我不好
你也别想好
周末朋友圈都在讨论幻方做的deepseek,大概说一下看法。
2021年的时候因为一个项目,当时跟幻方有过合作,给我的第一印象是幻方的人属于特别聪明的那种,不管是投资条线还是其他条线的人,脑子都转的飞快,做事情的时候会在千丝万缕的点状情况找到关键线索。
当时幻方就搭了国内最大的服务器来做中证500的高频,作为千亿规模的量化基金,搞出deepseek这样的模型来,我是一点都不奇怪。
deepseek被大家称道的部分原因是效率高,大概是openAI的3倍以上,在特定任务上是openAI的10倍以上,也就是说deepseek的计算成本大约是openAI的十分之一左右。
为什么deepseek能做到这么高的效率呢。
是因为采用数据蒸馏技术。
这个数据蒸馏技术听起来很复杂,翻译成基民听得懂的语言就是:采用模型压缩技术,减少计算量,同时保持模型的输出结果符合要求。

具体来说,模型压缩(Model Compression)是通过一系列技术手段减少深度学习模型的规模、计算量和存储需求,同时尽量保持其性能。


模型压缩在资源受限的场景(如移动设备、嵌入式系统)中非常重要,以下是模型压缩的主要方法及其实现原理:


1. 知识蒸馏(Knowledge Distillation)


原理:将大型模型(教师模型)的知识迁移到小型模型(学生模型)中,通过让小型模型模仿教师模型的输出分布来实现压缩。


实现步骤:


训练一个高性能的大型模型(教师模型)。


使用教师模型生成软标签(Soft Labels)。


使用软标签和原始数据训练小型模型(学生模型)。


优点:小型模型可以继承教师模型的知识,性能接近甚至超过教师模型。


简单来说,培养一个教师,需要你先上6年985,文史哲史地政数理化,恨不得把所有知识都学完,才让你毕业,可是毕业了之后派你去教小学数学。


你的很多训练成本的投入是无效的,数据蒸馏技术是倒过来的,先去看看一个小学数学教师需要什么技能,然后把985毕业生学到的数学技能提取出来,形成一个小模型,专注小模型的训练,这样效率就高了,成本也低了。


2. 剪枝(Pruning)


原理:移除模型中不重要的权重或神经元,减少模型的参数量和计算量。


实现步骤:


训练一个完整的模型。


评估权重或神经元的重要性(如基于权重绝对值或梯度)。


移除不重要的权重或神经元。


对剪枝后的模型进行微调,恢复性能。


类型:


结构化剪枝:移除整个神经元或卷积核,适合硬件加速。


非结构化剪枝:移除单个权重,压缩效果更好,但需要特殊硬件支持。


优点:显著减少模型大小和计算量。


如果你是教数学的老师,那么英文能力,文学能力,诗词歌赋的能力就可以剪掉了,这样你的脑袋就不用存储那么多东西,你脑袋的存储成本就会下降,工作效率也会高很多。


知识蒸馏和剪枝技术不是做垂直细分,而是在大模型的基础上有选择的保留某些特定功能,以提高单一应用场景的效率。


3. 量化(Quantization)


原理:将模型中的浮点数参数转换为低精度表示(如 8 位整数),减少存储和计算需求。


实现步骤:


训练一个浮点数模型。


将模型参数和激活值量化为低精度表示。


对量化后的模型进行微调,减少精度损失。


类型:


训练后量化:在模型训练完成后进行量化,简单但可能损失性能。


量化感知训练:在训练过程中模拟量化效果,减少性能损失。


优点:显著减少模型大小和计算量,适合硬件加速。


这个在数学上可以理解为估算,如果两个数加起来等于599,那么我们就可以认为结果等于600,这样的结果是计算效率大幅度提高。


4. 低秩分解(Low-Rank Factorization)


原理:将矩阵分解为多个低秩矩阵的乘积,减少参数量和计算量。


实现步骤:


将模型中的权重矩阵分解为多个低秩矩阵。


使用分解后的矩阵替换原始权重。


对模型进行微调,恢复性能。


优点:减少计算量,适合矩阵运算密集的模型(如全连接层、卷积层)。


你可以采用奇异分解,非负矩阵,主成分分析对高位的矩阵进行概括和模拟,在保留高维矩阵特征的同时,降低计算负担。


5. 参数共享(Parameter Sharing)


原理:让模型中的多个部分共享相同的参数,减少参数量。


实现步骤:


设计模型结构,使不同层或模块共享参数。


训练共享参数的模型。


应用:在循环神经网络(RNN)和 Transformer 中广泛应用。


优点:显著减少参数量,适合序列模型。


在传统的模型当中,每一层或每个模块通常都有独立的参数。而参数共享的核心思想是让多个层或模块共享相同的参数,从而减少模型的参数量。这种方法不仅可以降低模型的复杂度,还能提高模型的泛化能力。但是参数共享技术的过度使用会限制模型的表达能力。ChatGPT的Transformer 模型也部分采用了参数共享机制来提高计算效率。


6. 轻量级模型设计(Lightweight Architecture Design)


原理:设计更高效的模型结构,减少参数量和计算量。


实现步骤:


使用高效的网络模块(如深度可分离卷积、注意力机制)。


设计紧凑的模型结构(如 MobileNet、EfficientNet)。


优点:从模型设计层面减少计算量,适合移动设备和嵌入式系统。


这纯粹是一种算法的考验,解决同一个问题总是有很多办法,你可以从经济的角度设计一种比较轻量级的,低成本的,同时结果相似的计算模型。


7. 混合精度训练(Mixed Precision Training)


原理:在训练过程中使用不同精度的数值(如 16 位浮点数和 32 位浮点数),减少计算和存储需求。


实现步骤:


将模型参数和梯度转换为低精度表示。


在关键步骤(如梯度更新)中使用高精度数值。


优点:减少计算量和内存占用,加速训练过程。


简单来说,在该省的地方就省,该花的地方就多花点,这是一种务实的态度。打个比方,比如家里的水龙头这种维修麻烦,更换费事,需要用几十年的东西上面不能省钱,要买贵的。但电视机这种经常换的东西就可以买便宜点的。小米电视就行。


总结来看。幻方的deepseek的模型压缩主要是通过数据蒸馏、剪枝、量化、低秩分解、参数共享、轻量级模型设计和混合精度训练等技术手段,显著减少模型的规模、计算量和存储需求。


这些方法可以单独使用,也可以结合使用,以实现更高效的模型压缩。模型压缩在移动设备、嵌入式系统和边缘计算等资源受限的场景中具有重要应用价值。


尤其是对于投资来说,效率比精度更重要,巴菲特就曾经说过:模糊的正确,比精确的错误要更重要。


我今天对比试用了文心,deepseek,kimi,发现deepseek就特别好用。我问了一个问题:苏州高新区有一家医药企业,员工有4000人,每个月的工资大约会发2亿左右,请问这是哪家企业?


deepseek直接告诉我是信达生物,虽然不一定会,但是他高效给了我一答案,起码有了一个线索。


文心的输出结果,是一大堆没用的废话,结果也没告诉我是哪个企业。


kimi的回答更是有点找不着北。


deepseek的回答:


文心一言的回答:



kimi的回答:





投资没有那么容易

每个基金有它的脾气

别人说的话随便听一听

自己做决定


基民大厨
用心买点好的!
 最新文章