大模型微调
什么是微调?
预训练的迷你版是微调
为什么要微调
全量微调 Full Pine Tuning))
缺点:训练成本高,灾难性遗忘(把原来模型的能力高: 159 0164 228搞没了)
部分参数微PEET(Parameter -Efficient Fine Tuning).
针对的模型部分参数做微调。比如万分之一的参数
我们推荐使用 部分参数微PEET
在线模型微调:企业的数据不是敏感数据,比如客服数据
离线模型微调:
业务概念
向量
让计算机认识知识
比如让计算机认识什么是苹果,通过颜色,大小,纹理,形状等各种特征。把这些特征用数字表示,得到一个数组就是向量。
当新的苹果出现,计算机就可以通过向量相似度识别。大模型通过上千个向量学习训练。
大语言模型,训练的时候把文本转化为向量。在向量组成的高维空间,相近的词汇距离更近。 比如语言模型能够识别苹果,香瓜比公交更相近。
DeepSeek中若存在1000多个向量维度,以下是可能的一些向量及维度含义:
词嵌入向量维度
- 语义信息维度:用来表示词语的语义特征,如在“苹果”这个词的向量中,某些维度可能代表水果类别、颜色特征、口感等语义相关信息,不同词语在这些维度上的值不同,以此区分语义。
- 语法信息维度:可以体现词语的语法属性,比如词性是名词、动词还是形容词,以及词语的单复数形式、时态等语法特征在相应维度上有特定的取值。
位置编码向量维度
- 绝对位置维度:用于标记文本中每个元素的绝对位置,比如在一个句子中,第1个词、第2个词等在绝对位置编码的不同维度上有对应的表示,帮助模型理解文本顺序。
- 相对位置维度:能表示文本元素之间的相对位置关系,如某个词与前文或后文特定词的距离、先后顺序等信息,使模型可以捕捉文本中的长距离依赖关系。
隐藏层向量维度
- 特征提取维度:模型在处理文本等数据时,隐藏层的不同维度会负责提取不同类型的特征,如在处理新闻文本时,一些维度可能提取事件主体特征,一些提取事件时间特征等。
- 语义组合维度:用于将输入的词向量等信息进行组合和变换,形成更高级的语义表示,例如将多个词的向量组合成一个短语或句子的语义向量,不同维度对应不同的语义组合方式和结果。
注意力机制向量维度
- 查询向量维度:用于在注意力计算中对输入进行查询,以确定当前位置需要关注的信息,不同维度的查询向量可以从不同角度去寻找相关信息。
- 键值向量维度:键向量用于和查询向量进行匹配计算,确定注意力的权重,值向量则携带了实际需要关注的信息内容,不同维度分别负责不同的匹配和信息传递功能。
流程
不同的大模型(比如DeepSeek,阿里的通义千问等),只是 结构,位置编码,激活函数,layer norm方法的实现有差异。 微调的部分也是针对这些地方进行微调。
数据
算法
算力
编码器
Input embedding 向量化处理
-
二进制: 电脑无法理解含义,比如什么是香蕉,西红柿
-
独热编码:缺点 向量之间看不出关系,耗费存储
-
word2vec:Q矩阵。 优点:存储空间少,词向量之间有了关系; 缺点:无法表达多义词。
-
ELMo
ELMo优点:内存占用不会很大,相似词之间存在关系,而且能够捕捉到词汇在不同语境中的语义信息。
各种算法差异参考
https://www.cnblogs.com/aibi1/p/18745773
位置编码(Positional Encoding)
经过上一个流程,丢失位置信息。比如我爱中国,在上个流程把顺序打乱了。
奇数位和偶数位使用不同的位置编码函数
编码器生成的矩阵+位置编码生成的矩阵 = 新矩阵
https://e.naixuejiaoyu.com/p/t_pc/course_pc_detail/video/v_6566ab73e4b04c109da3263b?product_id=p_65661deee4b04c100fcaaa67&content_app_id=&type=6
注意力(远近)机制 (Attention)
原理: 计算输入每个句子,每个词之间的远近关系
例如:我爱中国, 每个词有5个维度。 相当于 4*5的矩阵
-
每个词(15的矩阵)分别乘以 Wq(query),Wk(key),Wv(value)的55矩阵 (这三个矩阵是模型给的 )
-
计算每个词和其他词的注意力
如爱和我,爱,中,国的关系 q2k1 q2k2 q2k3 q2k4 。 但是这种计算的结果矩阵有点大 55
为什么QK相乘可以代码 向量的远近? 相乘越小,说明越近。 -
做归一化处理,最终的值为 0-1 (概率)简化存储。 eq2k1/ (eq2k1+eq2k2+eq2k3 ...) (e x 是指数函数)
最终还是 4*5
全连接前馈网络- 关键字 : 激活函数
ADD & Normal 防止网络退化。 小数字乘积,数字越变越小,梯度消失。 对数据进行归一化(0-1)。
Feed Forward: 线性变化为非线性变化,为了拟合更多的场景
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!