一、学习目标
目标
- 了解大模型微调技术流程
- 了解星火大模型驱动阅读理解题库构建挑战赛的赛题信息
期望结果
- 跑通baseline,理解baseline代码
- 尝试修改参数,不断调优模型
二、 学习到的新概念
大模型微调
在预训练好的模型的基础上,通过进一步训练,达到模型在特定任务上表现得更好的效果
prompt工程
在使用大模型时,通过精心设计输入提示词(prompt)更好地控制和引导模型生成期望的文本或执行特定任务。
三、详细笔记
大模型微调基本流程
- 选择预训练模型(本次大赛指定模型为spark-13b)
- 准备数据(baseline中已提供生成数据的代码)
- 定义模型架构(在task1中为零代码微调,故不存在这一步)
- 设置微调策略(省略该步理由同上)
- 训练模型(该task中选择的训练方法为LoRA,除此之外还有Prefix Tuning、Adapter Tuning、Prompt Tuning…)
- LoRA
基本思想
将权重矩阵进行低秩分解(将较大的矩阵分解成较小的矩阵在保留重要信息的同时减小计算复杂度和存储需求),仅微调分解后的低秩矩阵部分,从而减少需要更新的参数数量
优点
需要更新的参数数量变少;存储需求降低;预训练模型的能力得到保留;容易集成,不需要对原有模型结构进行大幅度修改
- 评估模型性能
- 部署服务
prompt工程基本流程
- 确定目标任务
- 选择模型
- 设计初始提示,并生成初始输出
- 根据输出的质量与预期的偏差,调整和优化prompt
- 多次迭代以上输入、输出、调整的步骤
- 进行全面测试,验证在不同场景的效果
- 部署与运用
四、总结
task1难度偏简单,目前想到的得高分的思路是不断测试lr与epochs的更优组合,以及优化prompt,优化生成的数据是否也可以。疑问是找出lr与epochs的更优组合只能通过不断猜测的方法吗?