《大模型项目开发线上营第二期》文末开秒!!!
接上文>>>
3.1 图像和视频分别对应的:监督微调数据与监督微调实际流程
首先,依次看下图像、视频层面的SFT数据
对于图像,利用不同数据集的混合进行监督微调
学术数据集 使用模板或通过LLM重写将现有的高度过滤的学术数据集转换为问答对。LLM重写的目的是通过不同的指令来增强数据,并提高答案的语言质量
人工标注 通过人工标注收集多模态对话数据,涵盖广泛的任务(开放式问答、字幕、实际用例等)和领域(例如,自然图像和结构化图像) 标注人员会被提供图像并要求撰写对话。为了确保多样性,对大规模数据集进行聚类,并在不同的聚类中均匀抽样图 此外,我们通过扩展种子并使用k-最近邻算法为一些特定领域获取了额外的图像邻居,注释者还会获得现有模型的中间检查点,以便进行模型循环式注释,从而可以利用模型生成的内容作为起点,然后由注释者进行额外的人类编辑 这是一个迭代过程,其中模型检查点会定期更新为在最新数据上训练的性能更好的版本。这增加了人工注释的数量和效率,同时也提高了它们的质量
合成数据 他们探索了使用图像的文本表示和文本输入LLM生成合成多模态数据的不同方法 其高层次的想法是利用文本输入LLM的推理能力在文本领域生成问答对,并用相应的图像替换文本表示以生成合成多模态数据 示例包括将问答数据集中的文本渲染为图像或将表格数据渲染为表格和图表的合成图像。此外,使用现有图像的标题和OCR提取内容生成与图像相关的额外对话或问答数据
至于视频层面的数据,类似于图像适配器,使用带有预先注释的学术数据集,并将其转换为适当的文本指令和目标响应。目标被转换为开放式响应或多项选择题选项,以更适合的方式呈现。我们要求人工为视频注释问题及相应的答案。要求注释者专注于那些无法通过单帧图像回答的问题,以引导注释者提出需要时间理解的问题
接下来,看下图像和视频的监督微调SFT方法
对于图像SFT
从预训练的图像适配器初始化,但将预训练语言模型的权重与指令调优语言模型的权重进行热交换。语言模型的权重保持冻结状态以维持仅文本的性能,即,只更新视觉编码器和图像适配器的权重
我们微调模型的方法类似于Wortsman等人(2022年)的做法
首先,我们使用多个随机数据子集、学习率和权重衰减值进行超参数搜索
接下来,我们根据模型的性能对其进行排名
最后,我们对排名前K的模型的权重进行平均,以获得最终模型。K的值通过评估平均模型并选择性能最高的实例来确定 可以观察到,平均模型相比于通过网格搜索找到的最佳单个模型,始终能产生更好的结果。此外,这种策略减少了对超参数的敏感性
对于视频SFT,使用预训练权重初始化视频聚合器和交叉注意力层
模型中的其余参数、图像权重和LLM,都是从相应模型的微调阶段初始化的。类似于视频预训练,我们随后仅在视频SFT数据上微调视频参数。在这个阶段,将视频长度增加到64帧,并使用32的聚合因子来获得两个有效帧。块的分辨率也增加了,以与相应的图像超参数保持一致
3.2 偏好数据以及对应的奖励建模
为了构建用于奖励建模和直接偏好优化的多模态成对偏好数据集,Meta的研究着们做了如下动作
人工标注 人工标注的偏好数据包括对两个不同模型输出的比较,标记为“选择”和“拒绝”,并有7级评分 而用于生成response的模型是从最近最好的模型池中即时抽样的,每个模型具有不同的特性 且每周更新一次模型池。除了偏好标签外,还要求标注者提供可选的人类编辑,以纠正“选择”response中的不准确之处,因为视觉任务对不准确的容忍度较低(Besides preference labels, we also request annotators to provide optional human edits to correct inaccuracies in “chosen” responses because vision tasks have a low tolerance for inaccuracies) 当然了,人类编辑是一个可选步骤,因为在实践中存在数量和质量之间的权衡
合成数据 还可以通过使用仅文本的LLM来编辑和故意引入错误来生成合成偏好对,以用于监督微调数据集 比如将对话数据作为输入,并使用LLM引入细微但有意义的错误(例如,改变对象,改变属性,在计算中添加错误等)。这些编辑后的response被用作负面的“拒绝”样本,并与“选择”的原始监督微调数据配对
拒绝采样 此外,为了创建更多 on-policy负面样本,可以利用拒绝采样的迭代过程来收集额外的偏好数据 比如将在以下部分更详细地讨论对拒绝采样的使用。从高层次来看,拒绝采样用于从模型中迭代采样高质量的生成。因此,作为副产品,所有未被选中的生成结果可以用作负面拒绝样本,并用作额外的偏好数据对
有了偏好数据,那么接下来便可以进行奖励建模了
比如在视觉SFT模型和语言RM的基础上训练一个视觉奖励模型(RM),其中
视觉编码器和交叉注意力层从视觉SFT模型初始化,并在训练过程中解冻
而自注意力层从语言RM初始化并保持冻结状态
他们观察到,冻结语言RM部分通常会导致更好的准确性,特别是在需要RM根据其知识或语言质量进行判断的任务上
且采用与语言RM相同的训练目标,但在批次平均的奖励对数平方上添加了一个加权正则化项,以防止奖励分数漂移
如上面说过的,在训练视觉RM时,类似语言偏好数据,也是创建两个或三个具有明确排名的对(edited > chosen > rejected),此外,我们还通过扰乱与图像信息相关的单词或短语(例如数字或视觉文本)来合成增强负面响应,从而鼓励视觉RM基于实际图像内容进行判断
3.3 直接偏好优化——DPO:基于偏好数据直接调优
类似于语言模型,使用第上面描述的偏好数据,通过直接偏好优化(DPO;Rafailov等人(2023))进一步训练视觉适配器
为了应对后训练轮次中的分布偏移,只保留最近的人类偏好注释批次,同时丢弃足够偏离策略的批次(例如,如果基础预训练模型发生变化)「To combat the distribution shift during post-training rounds, we only keep recent batches of human preference annotations while dropping batches that are sufficiently off-policy (e.g., if the base pre-trained model is change」
可以发现,与始终冻结参考模型相比,每k步以指数移动平均(EMA)方式更新参考模型有助于模型从数据中学习更多,从而在人类评估中表现更好。总体而言,我们观察到视觉DPO模型在每次微调迭代的人类评估中始终表现优于其SFT起点
最终,加上了视觉能力的llama3,其在图像理解层面的性能在与相关模型PK时,得到的结果如下:
更多细节见七月在线「大模型项目开发线上营」
「大模型项目开发线上营 第二期」不止新学员青睐,大模型第一期学员大多数都续报了第二期。商用项目果然受用
校长July寄语
“为何讲大模型商用项目的课程很罕见
一方面,即便在大厂,虽有技术但没法讲其内部项目,而专门搞应用开发的小厂,很难将其赖之生存的项目拿出来讲
二方面,一般职业讲师 背后没有项目团队 只能搞个demo,至于一般教育机构也很难再搞个项目团队,成本大 招人难 做出成果更难
而我司教育团队外,我司去年专门成立了大模型项目开发团队(由我带全职和在大厂的兼职组成),且从「教育为主」,逐步转型到了「科技为主 教育为辅」”
现在报名加送:
① 一年GPU,封装了诸如ChatGLM3等各大主流大模型
② 一个VIP年卡「200多个AI小课、5个大模型小课(即ChatGPT原理、类ChatGPT微调实战、SD及其二次开发、垂直大模型实战、大模型数据处理实战)」
③多送1个大模型小课:LLM与langchain/知识图谱/数据库的实战
↓↓↓扫码了解详情/抢购↓↓↓
课程咨询可找苏苏老师VX:julyedukefu008或七月在线其他老师
热门跟贴