当前位置: 首页 > news >正文

李宏毅genai 笔记:预训练-对齐

0 alignment说明

在这里pretrain后面的两个阶段都是alignment

0.1 pretrain无法直接使用

如果直接用pretrain完的base model,可能没法进行会话等功能,几乎类似于重复之间的问题

经过alignment之后,就拥有了这些能力

alignment类似于画龙点睛,给强大的预训练模型能力;但是点的位置需要是准确的

0.2 alignment需要的资料也不多

在这篇论文种,精心挑选了一些资料进行align,可以用更少的资料达到align的效果

1 knowledge distillation

  • 可以让已经对齐好的模型作为老师
  • 生成一些问题,这些已经对齐好的模型的回答作为ground truth,进行微调

让LLM自己对这些用于对其的训练资料进行打分,只保留好的那些训练资料用于对齐

  • 还有一种办法是只保留最长的资料用于alignment
  • 同样再alpaca 数据集上进行操作,即便是选择最长的这些资料,用于对齐的资料的平均长度也是小于LIMA的

那下一个问题是,这些输入的问题,从哪里来呢?

随便从互联网上的资料中找一句话,用前半句作为“问题”,已经对齐模型生成的后半句作为ground truth

2 对其前后模型实际行为区别不大

  • 这篇论文对于align之后的词汇的概率分布进行了分类:
    • 如果align之后,原来第一的词还是第一,那么就是“unshifted”
    • 如果align之后,原来第一的词位于前三,那么就是“marginal”
    • 如果align之后,原来第一的词位于前三之后,那么就是“shifted”

结论是,基本上有大改变的是一些语气词,连接词和结束词;其他的大体上没有什么变化

从答案层面看,有没有对齐结果差很多是因为,很有可能会“一步错步步错”h

3 response tuning

  • 这篇论文认为,既然align前后只是某几个词输出概率的差异,那我会不会finetune的时候不需要给模型问题,只给答案,就会有好结果呢?

从结果看,诚然如此

4 Rule-base adapter

这篇论文提出 "Rule-base adapter":只修改某些 token 的几率就可以做到alignment,甚至连finetune都不用做

  • 强制加了一些规则
    • 增加结束符号的概率
      • 因为没有alignment的模型通常会讲太长
    • 改一些符号的概率
    • 对于重复说的话,加强他的惩罚,让他不要重复说某句话

5 self alignment

  • 让模型生成多组答案,并自己对答案打分
    • 再将打分结果对没有align的模型用RL的方式训练

6  如何达成有效的pretrain

Physics of Language Models: Part 3.1, Knowledge Storage and Extraction iclr 2025

我pretrain时看过完整的资料;align的时候看过一半被转换成一问一答的资料

那看起来,我将另一半没有在align阶段被看到的资料,转成一问一答的形式进行测试,模型应该有很高的准确率,毕竟pretrain阶段看到过了

但实际上并没有,接近几乎是0的准确率

为什么不行呢?

  • 论文发现,当在pretrain的时候,某个资料只看过一次的时候,模型会以为,只有A+B+C才是D
  • 需要看过多种与训练资料的改写组合,才有可能知道A是D

在预训练阶段看过多种改写的资料后,alignment后结果就可以大幅提升了

当然预训练资料里面的一部分被改写了就行

7 有限算力下,pretrain的时候应该看更多不同的资料

Scaling Data-Constrained Language Models

  • 实线是我用12B的资料预训练(下标1,4,10,40表示这份与训练资料重复看1,4,10,40次)
  • 虚线是我用12B,48B,120B的资料预训练。。。
  • 可以看到相同算力下,看不同的资料效果会好很多

8 对齐的极限

Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations? 

  • highly known
    • 给问题,他一定能答对
    • greedy表示只选择概率最高的哪个答案
    • 前面放范例问题和范例答案是因为base model通常不具备直接回答问题的能力(in context learning)
  • maybe known
    • 用某一组范例问题和范例答案可能回答不对,用别的范例问题和范例答案就会答对了
  • weakly known
    • sample的意思是根据输出概率采样一个结果,可能会对
  • unknown就是怎么样都不会

  • align(训练)的时候
    • 模型本来就会的前三类准确率不断上升
    • unknown的准确率慢慢上升
    • 但是惊奇地发现,当unknown的部分准确率上升的时候,在测试集dev上的准确率却在下降了
      • 也就是就只是的准确率下降

与此同时,论文发现,align的时候,使用mayknown的知识训练是最有效的,使用unkown的知识训练是最没用的 

9 RL是alignment的好办法

  • RL是激发模型原来的潜力(本来就回答的出的),而不是硬逼他做不会的事情

http://www.dtcms.com/a/268480.html

相关文章:

  • 【Pyhton】文件读取:读取整个(大型)文件
  • 锁和事务的关系
  • Web攻防-XMLXXE上传解析文件预览接口服务白盒审计应用功能SRC报告
  • Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
  • .golangci.yml文件配置
  • 机器学习之线性回归
  • mybatis-plus从入门到入土(二):单元测试
  • Podman与Docker详细比较:从原理到使用
  • 深度学习图像分类数据集—蘑菇可食性识别分类
  • 深度学习篇---深度学习常见的应用场景
  • IndexedDB(概念、基本使用、Dexie.js的使用)
  • 用Python玩转医学影像实时配准:算法揭秘与实战体验
  • 单片机:STM32F103的开发环境搭建
  • Web-API-day2 间歇函数setInterval与事件监听addEvenListener
  • Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
  • 每天一个前端小知识 Day 23 - PWA 渐进式 Web 应用开发
  • [Java恶补day39] 整理模板·考点六【反转链表】
  • 【C#】MVVM知识点汇总-2
  • 李宏毅genai笔记: post training 和遗忘
  • OneCode UI组件自主设计支持:深入解析对象生命周期、样式模板与事件管理
  • C++中NULL等于啥
  • Denso Create Programming Contest 2025(AtCoder Beginner Contest 413)
  • 多人协同开发时Git使用命令
  • python库 arrow 库的各种案例的使用详解(更人性化的日期时间处理)
  • Docker Model Runner Chat
  • 【网络安全】不要在 XSS 中使用 alert(1)
  • C语言学习(第一天)
  • Python实现优雅的目录结构打印工具
  • 自采集在线电脑壁纸系统源码v2.0 自适应双端
  • c语言中指针深刻且简单的理解