Datawhale AI 夏令营(2024第三期)AI+逻辑推理方向 模型微调学习笔记

如何基于开源大模型进行优化

1. Prompt工程

大模型可能知道问题相关,但是我们问的不清楚。所以需要根据我们的提问,构建出一个比较结构化的、大模型易于理解和分析的提问内容。
在下方的第二个资料里,我才知道有这么多Prompt的构建思路,难怪说是“工程”。

相关学习资料:

2. RAG

大模型不知道问题相关。这种情况我们可以在问题上附加部分已知的领域知识,相当于给他一本说明书,让他参考后回答我们(知识储备不变,只是临时参考了外物)。可以结合向量数据库或者知识图谱等优化。

3. 微调

大模型不知道问题相关。这种情况可以构建一定量的数据集,进一步训练、调整大模型的参数(知识储备变多了),使新的大模型更适合提问者的需求。

4. 不同需求场景下的比较

  1. 领域知识变更频繁。微调需要重复训练模型,而RAG不用修改已有大模型,调整较为灵活方便,更适合。
  2. 对定制能力要求高。微调对模型的优化效果较RAG好,定制性好,但也会损失一定的通用能力。
  3. 要求幻觉较少:RAG传入的专业辅助知识更能减少幻觉。
  4. 成本与可解释性。微调需要大量训练调整网络参数,成本较高,且网络参数的可解释型较差。RAG可以结合自身的知识库进行解释,且搭建工程框架的成本比训练模型低。
  5. 低延迟。RAG在模型推理的基础上还要进行一些文本向量化、知识库读写等,延迟较微调高。]

当然,将两者结合使用,效果更佳

baseline2学习

vllm

我理解是一个将本地模型暴露为网络服务的框架,但是通过一些优化提高了吞吐率和内存利用效率,适用于实时应用场景。而且他可以无缝集成hf的模型,使用起来确实很方便。

LoRA

模型微调,自然需要得到一个 Δ W \Delta W ΔW, 通过 W n e w = W o r i g i n + Δ W W_{new}=W_{origin}+\Delta W Wnew=Worigin+ΔW,更新模型参数,进而得到一个新模型。
这就意味着 Δ W \Delta W ΔW的矩阵大小与 W o r i g i n W_{origin} Worigin一致。众所周知大模型突出一个参数量大,那 Δ W \Delta W ΔW自然也是非常耗显存的。为了把训练的价格打下来,就出现了LoRA。
LoRA(Low-Rank Adaptation):对于一个预训练好的基座模型,保留其原有的权重矩阵W不变,仅微调训练更新部分,且这个更新权重矩阵被分解成A和B两个低秩矩阵。
它的策略就是把 Δ W \Delta W ΔW这个大矩阵分解为A、B两个小矩阵。在训练时,只训练这两个小矩阵,最后通过 W n e w = W o r i g i n + B A W_{new}=W_{origin}+BA Wnew=Worigin+BA更新模型参数。
我们假设 Δ W \Delta W ΔW是(1e5,1e5),A是(1e5,8), B是(8,1e5),那么前后的元素个数差为 1 e 10 − 1.6 ∗ 1 e 6 1e10-1.6*1e6 1e101.61e6,这是好几个数量级的差距了。

(这个图只是推荐算法里矩阵分解的演示,仅供参考)
在这里插入图片描述
下图为LoRA论文中的图,A矩阵初始化为高斯分布矩阵,B矩阵初始化为0矩阵。
在这里插入图片描述

多路召回

采用不同的策略、特征或者简单模型,分别召回一部分候选集,然后再把这些候选集混合在一起后供后续排序模型使用。
在baseline中其实就是将一个问题问同一个大模型三次,因为大模型是概率模型所以可能会有不同的答案。收集三次回复的结果,少数服从多数。
我感觉在一般的使用中,可以组合使用不同的prompt、不同的模型进行投票。此次比赛有显存限制估计不好用多个模型了。

其他优化思路(都只是思路,不确定效果是否更好)

  1. 全量微调
    lora训练的是分解的矩阵,难免有精度损失。如果有钱有时间,全量微调效果应该更好。
  2. 数据集
    使用更多的开源数据集训练。或者用更好的大模型构建出新数据集(或者获得更好的推理思路),用他们训练当前模型(模型蒸馏)。
  3. 模型量化
    将超出比赛要求限制的大模型,通过降低浮点型参数的精度等方式,降低他的显存消耗,使其正常完成比赛。(群友说训练的时候不要降低精度,推理的时候可以量化)
  4. 货比三家
    对于不同的模型、不同的Prompt,组合搭配,选评分最高的。

完全使用baseline02的分数

在这里插入图片描述

小白本人的pytorch学习

由于我没怎么用过pytorch,还学习了相关API

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值