作者:谭婧
(一)指令数据,了解一下
先聊一件圈内趣事:
2023年初,大约在1月到2月份前后,
百度公司如流工作卡上有一个任务,
让百度员工打开脑洞,写“问答对”。
一问一答都让员工设计。
如流是百度员工内部通讯,相当于企业微信。
我推测此举很可能是在充实其“指令数据集”。
百度的做法是非常科学的指令数据集构造方法。
指令数据(Instruct data)是一种用于训练大模型的数据类型。
通常以有问有答的形式呈现。
在一问一答中传递信息,非常直观。
这种形式更接近人类的交流方式,
经过训练,能够更直接地引导大模型“行为”。
对比预训练环节的数据多来自于互联网数据爬取,需要经过清洗,抽取等冗长过程,指令数据的构造是另一种难度。
问题以一种人类真实需求来表达,不能瞎编。
答案则是尽量正确,且有针对性的回答,不能乱造。
例如,回答“今天天气怎么样?”时,
不能说“很好”,
而应该说“今天天气晴朗,气温为20℃,风力微弱。”
大语言模型的知识主要是在预训练期间学习的。
大语言模型“炼成后”,仍需“三大”步骤;
在第一个步骤中,通过指令数据进行有监督学习,至关重要。
指令(Instruct)可以简单理解为,
“命令”“指示”“指挥”,就是人类下达指令“让”大模型“干活”:
写封信,写首诗,写代码,等等。
比如,闲聊中也会有问有答的句子,但明显不同于指令数据,指令数据的内容针对问题来回答,所以针对性强。闲聊数据中找问答对,效率太低。
从学术人员的角度,
以前是小模型百花齐放的世界,一个模型干一件事(任务)。
现在是大模型一统天下,一个大模型能干得活可太多了,不能乱指挥,
得有一种方式让它知道你想干啥。
人类写好的一问一答的这种方式,
很适合大模型学习。
指令数据的微调让大模型多遵循指令,
少胡编事实。
指令(Instruct)和提示词(Prompt)的区别?
两者的相同之处在于都可以引导模型。
通常来说,指令更强调对模型的具体要求,让其执行某个特定的任务,
而提示词更广泛,可能是一个问题、一个主题或一个启发性的语境。
大家观察GPT-3.5,喜欢参考Instruct-GPT的论文,看看论文里怎么说:
“我们收集了一个数据集,并使用此数据集做训练,让模型学习和参考,期望大模型的输出像人类已经编写好的例子这样。”