从 大模型接受弱智吧再教育 谈指令微调对齐

71335f7735b0f03fee8450ee9c590f61.png

知乎:hzwer

原文链接:https://zhuanlan.zhihu.com/p/690667537

仅学术分享,侵删

这两天一篇论文以离谱方式火了:

CQIA:“用弱智吧数据训练的 AI 爆杀了所有中文平台”,原文链接在: https://arxiv.org/abs/2403.1805 8

正好我们借着这篇论文来聊聊大模型对齐,接上一篇文章 [LLM转行笔记02] GPT 大模型的能力突现

本文主要观点:首先如果模型预训练已经大量见过某一类任务的类似语料,则小数据量微调激发比较划算,如果预训练见的比较少,我们还是可以灌大量数据微调提升

我们微调大模型实现对齐,是因为预训练的时候训练目标通常是文本补全,如果对一个预训练模型输入 1+2=?它不一定会答 1+2=3?可能会接着续写出一大堆加法问题。我们至少要一定的问答或聊天数据,才能让它学会基本的交互。

弱智吧再教育

CQIA 出圈的主要是这一张图,左边的模型标错了(应该是 34B,我强迫症发作加了删除线)

95d965c7a257620530441fbac303018d.jpeg

6B 小模型则不能领略弱智吧的博大精深:

0ffd9b86d0acf64635db2eeae7cd600e.jpeg

吐槽一下:Xhs 虽然网友都知道是小红书,但是前文也没提这个缩写。Finance 具体是什么,论文没说?LogiQA 是怎么造的我也不太能看明白。

可以看到弱智吧这一行取得了最高分,比较突出的是 Generation 生成能力这一项。这个训练数据怎么来的呢?真的从百度弱智吧找了 500 个高赞贴子的问题,然后让可怜的 GPT4 答了一遍,人工选出了 240 个答案来训练。

摘出几条看看:

Q:我用的是晨光的笔,那么你们都是啥笔
A:您所提到的句子含有不当的暗示。在进行交流时,我们始终倡导保持尊重和礼貌。如果您有任何问题或需要帮助,请随时告诉我,我会很高兴为您提供帮助。
Q:只切一刀,如何把四个一模一样的橘子平均分给四个小朋友?
A:如果这四个橘子一样大的话,你可以把四个橘子放在桌子上,然后让每个小朋友拿一个橘子,这样就可以平均分给他们,而不需要切割橘子。这样每个小朋友都有一个完整的橘子,而不需要切一刀。

这个数据质量确实不错,但仔细一看“暗箱操作”有点多。。。首先弱智吧问题是吧友们的智慧结晶,已经点赞筛选过,GPT4 回答质量挺高的又学一半扔一半,相对其它下功夫不够的数据集,涨生成水平很自然

为什么说这个数据是智慧结晶呢?我的一个朴素的想法是,如果一个数据现在的模型不会,那让模型学学应该没错

考验一下国产模型 跃问 和 Kimi:

240970d89b6dd4e2a664fd2f0240be02.jpeg 5c084f101b7fec410ab28e0c40da9dfa.jpeg

看来确实可以接受弱智吧再教育来提升一下智商

对比这篇论文收集的小红书数据:

Q:你是一名小红书博主,写一篇以免费送!送超火的宝藏行李箱➕送小熊贴纸为题目的小红书
A:免费送!VIHUS行李箱再次实力宠粉啦![扯脸H] (ps:上一轮抽奖结束后,每天仍然被各种私信评论轰炸 ,各种求行李箱[害羞R][害羞R]。so,响应呼唤再来一次,抽不到不要 我啦!!喜欢可以买[买爆R][买爆R][买爆R]) 白色行李箱就不介绍了,人见人爱!这次还增加蜜瓜橙、黄色、清水蓝、经典蓝,每个都超 ️!幸运鹅将获得图中同款行李箱一个(颜色可选),再加同款小熊贴纸一张!2020年8月27日下午3点小红书官方平台自动开奖 ♦️ 抽奖活动规则 1⃣️活动时间:2020年8月6日00:00:00-8月27日00:00:00 2⃣️开奖时间:2020年8月27日15:00:00 3⃣️奖品数量:5份 4⃣️中奖条件:关注本品牌号;点赞收藏本笔记 5⃣️中奖者将随机抽取,由系统发送中奖通知 集美们注意咯,一定要点击笔记左下角的【报名】才能参加此活动哦,中奖后记得在7天内填写信息,逾期视为放弃机会~冲 了!

这 GPT4 来了都得认输,反正我看了一遍是啥也没记住,语料分布太复杂了

知乎数据更能读一点,所以训练出来效果也还不错:

Q:编程的函数和数学的函数为什么都叫函数?
A:在数学上,最早将 function 一词翻译成函数,是清朝数学家李善兰。数学的 function指一个量随着另外的量的变化而变化,换句话说,一个量包含在另一些量当中。函数,也就是含数。中文的函,有盒子,用来装东西的意思,也可引申成包含。function在数学上翻译成函数也算贴切。最早研究计算机那批人,很多从数学系转过去的。编程中的 function也直接采用了数学上的翻译,其实有点误导。但也难怪,计算机设计之初就是用来解决数学问题。英文中 function, 也有完成一定功能,起作用的意思。编程语境中,function 一词更应该理解成,这代码完成某种功能。数学上的 function,是固定的输入,就对应固定的输出,中间不会改变状态。而编程上的function,只是完成某个功能,中间可以修改状态。假如类似数学上的意义,完全不修改状态,会叫成纯函数(pure function)以作强调。

我倾向于 CQIA 这篇论文做的实验偏弱,应该选一些更强的数据集来对比。

至少应该和 TinyStories 类似的工作进行区分,论文直接说"ruozhiba may enhance the model’s logical reasoning ability",不令人信服,从实验结果看,说模型从 GPT4 生成的内容学会了好好说话更靠谱,很可能随便学 GPT4 说点中文就会好很多

而且我堂堂中文模型,应该拒绝 GPT4 的翻译腔

以上这篇路子看起来是想效仿 Meta 的工作 LIMA,接下来聊点正经学术,几百条数据真的能有奇效吗?

Less is More Alignment?

LIMA 论文是 23 年 5 月出现在 ArXiv 上,它的观点主要是:认为预训练已经学到了绝大部分知识,只需要有限的调整数据就足以教会模型产生高质量的输出

这个数据集的合成方式:1. 从两个国外社区(Reddit 和 Stack Exchange)上收集了问题,加上 wikiHow 文章的 200 个主题;2. 文章作者结合自己和朋友的兴趣手写数百个问题 3. 从传统 NLP 任务 Super-Natural Instructions 中选取一些。然后作者努力手工调整了回答的风格和语气。

这样得到了 1000 个很有多样性的问题和高质量的回答, 用这些数据对 Llama65B(Meta 的一个预训练模型)进行微调,将结果和当时流行的模型进行比较:

8c912fecf6c310e31d751a35b6616a53.jpeg

结果发现它至少比经过 5w 个示例微调的 Alpaca 65B 要好很多,在没有做强化学习的模型中应该是一个很不错的结果。左边的数据是由人来评判的,因此我认为可信度较高(比方说这里 Alpaca 用的很多数据是 ChatGPT 生成的,所以它可能更被 ChatGPT 喜欢)。这里注意一个细节,我们平时用大模型的时候,其实可能有 80% 的情形下,我们没法看出 GPT3.5 和 GPT4 的差距,而在难任务上(比如上面的弱智题)才能看出来。所以虽然论文摘要说 LIMA 43% 好于或和 GPT4 相当,离 GPT4 还有相当大差距。

在近期的一篇论文,OpenCodeInterpreter (和 CQIA 弱智吧数据集的工作一个单位,有共同作者)中,作者先用了 Qwen-72B 对问题做难度打分 1~5,把难度 <=3 的问题全部去掉,在我看来不管是训练还是评测,这都是非常科学的做法。

看一些消融实验:

ec99ddc117db60ce7dd2c8eb4b75eada.jpeg

左图是说 Stack Exchange(质量不够高) < WikiHow(高质量,格式多样性差)< 过滤的 Stack Exchange(质量高一些,问题多样性好),以此说明多样性和质量重要性

而右图展示了在过滤的 Stack Exchange 数据上,继续加量并没有显著的收益,说明践行缩放原则时,仅仅堆数量效果不好

那为什么很多人还在堆数据?

More is Necessary?

有很多支持用大数据的论文,代表的一系是 Google 的 FLAN,还有微软的 Orca

我一直以来的困惑,虽说小数据量比较容易提高质量,但是毕竟大模型有那么各怀目的的用户,我们仅靠几百几千条数据集真的能覆盖他们的需求吗?如果他们的用法和微调指令集完全无关,我们微调的收益岂不是就拿不到了

FLAN 系的工作提出:数据多样性、模型参数量、数据质量三者都要有

e9696c29ed61819df0d9e09fb0c0fd93.jpeg

FLAN 模型大到一定程度,才能较好地从指令微调受益,倒是和 CQIA ruozhiba 结论相似

8b7835d443c212ae04e06c56ae49452c.jpeg

从这个图上看,数据加料也不能停,一直加一直爽

我时常听到的一个说法是,刷榜不代表模型真实水平,但我个人认为,既然大家努力想让模型做生产力工具,连个简单任务都做不好,是不是有点想得太远。?

当然可以区分地看这个问题,据说预训练模型比较有灵性,创作补全可能比微调以后要强,因此可能微调会损害这方面能力,而在严肃的数学 / 编程题上,普遍还是支持堆数据量的

比如一篇我很喜欢的 ICLR 论文,https://openreview.net/pdf?id=cijO0f8u35,这里用的 GSM8K 训练集有 7.4 的小学数学题

415a1ba09a53286a10c03c85219ae2ff.jpeg

可以看到当减少数据量时,哪怕用重复数据来填充训练时间,模型性能也呈现迅速退化。论文提出 "SFT improves in a log-linear manner with the increase of supervised data amount. The benefits of increasing data amount diminish as the pre-trained model gets better." 当预训练还不够好的时候,SFT 数据增加能持续拿到收益。加几万条数据比买预训练机器还是划算的。

当预训练变好的时候,我猜测是 GSM8K 数据集显得过于简单了,或者说模型在预训练过程中见到的类似的东西就变多了,因此“激活能力”就变成了微调的主要目的

总结

a38e3e3e434e3289a512ab6196508200.jpeg

备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

1dd888eed78caa8f8860d9f3f6c9fbcf.png

id:DLNLPer,记得备注呦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤在 CentOS 9 中安装 DVWA 靶场: 1. 安装 LAMP 环境 DVWA 需要 LAMP(Linux + Apache + MySQL + PHP)环境才能正常工作。您可以使用以下命令安装 LAMP 环境: ``` sudo yum install -y httpd mariadb-server php php-mysqlnd ``` 安装完成后,启动 Apache 和 MySQL 服务: ``` sudo systemctl start httpd sudo systemctl start mariadb ``` 2. 下载 DVWA 使用以下命令下载 DVWA: ``` sudo yum install -y git sudo git clone https://github.com/ethicalhack3r/DVWA.git /var/www/html/dvwa ``` 3. 配置 DVWA 将 DVWA 的配置文件复制到 `/var/www/html/dvwa/config` 目录中: ``` sudo cp /var/www/html/dvwa/config/config.inc.php.dist /var/www/html/dvwa/config/config.inc.php ``` 然后,编辑 `/var/www/html/dvwa/config/config.inc.php` 文件以适应您的需求。主要是设置 MySQL 数据库的用户名和密码。 4. 初始化 DVWA 数据库 使用以下命令初始化 DVWA 数据库: ``` sudo mysql -u root -p < /var/www/html/dvwa/config/createdb.sql ``` 然后,使用以下命令设置 DVWA 数据库的用户名和密码: ``` sudo mysql -u root -p -e "GRANT ALL ON dvwa.* TO 'dvwa'@'localhost' IDENTIFIED BY 'password';" ``` 5. 启用 PHP 安全模式 DVWA 需要启用 PHP 安全模式才能正常工作。使用以下命令启用 PHP 安全模式: ``` sudo sed -i 's/^;disable_functions =/disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,system,exec,shell_exec,passthru/g' /etc/php.ini ``` 6. 访问 DVWA 在浏览器中输入 `http://<服务器 IP 地址>/dvwa`,即可访问 DVWA 的 Web 界面。 希望这些信息可以帮助您安装和配置 DVWA 靶场。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值