《AI浪潮:n-shot 是训练还是指令》

【立委按:NLP技术大喷发,以 chatGPT 为里程碑,石破天惊,让人目不暇给。社媒上圈内圈外,奔走相告,简直就是AI全民狂欢节的气氛。在这个当口,《AI浪潮》立委微信群组有幸请来诸多大咖,高谈阔论,蓬荜生辉。挂一漏万,拣有趣主题略记之,权作科普,以飨同好。】

 

刘群:现在nlp已经被ml冲击得差不多了,很多术语都被ml同化了,当然nlp现在在ml里面的地位也提升了。什么zero-shot、few-shot,以前nlp里面谁知道这是啥东西?

为民:目前有关大模型的名词中文翻译有什么共识吗?比如“zero-shot", "one-shot", "few-shot",是否用 零下,一下,几下?

立委:shot 是注射的意思,跟疫苗差不多。零针,一针,好几针。或者,零剂,一剂,好几剂。

东东:shot as in give it a shot?

立委:对。

为民:这个是比较形象,注入数据实例。但还是难 relate 。。。

立委:类似的东西以前有过 example-based, instance-based, boot-strapping, cold start 等等,属于弱监督学习模式,都是为了克服需要大量带标数据的知识瓶颈。但第二波深度学习革命(LLM 基础大模型 BERT/GPT等)以来,shot 开始流行起来,意思也产生了变化。

其中 zero shot 最有意思。乍一听,一针都不打,那不就是无监督学习吗?无监督怎么可能成事呢?最多也只是聚聚类而已。模型都不知道你要干啥,那还不是随机胡乱生成垃圾啊。

这个心结其实只是最近才解开,特别是到了第三波深度学习革命(以 GPT3 的playground 为代表,尤其是一个多月前发布的 chatGPT 作为里程碑),对于我们DL圈外人一切才豁然开朗。因为直到最近,模型才真正“学会了”人话,从而解决了“如何告诉模型你想要什么”的问题。

NLP任务以前只有两条路,第一是通过标注,通过实例,进行模型训练。第二就是用户或者产品经理用人话把自己的需求告诉开发者,开发者将其转化为工程的 specs,然后写程序或规则 hard-code 来实现任务。

现在不同了,对NLP多任务神器chatGPT,只要直接用人话告诉模型,它就直接实现,立等可取。也只有到现在,在通过所谓RLHF(人类反馈的强化学习)建立起来人机的自然语言接口后,zero shot 成为听令办事的好助手, 与无监督学习完全不同。

zero shot 不是无监督,而是监督不通过实例,而通过指令。指令前不久还是要用提示词(关键词咒语)技巧,chat GPT 让它进步到完全的自然语言。表达力丰富了不知道多少,门槛降低到0:是人都会说人话吧,都可以表达自己的需求。

例如实体识别任务。few-shots 就是给一排实例:“张三,李四,王二麻子,川普,普京,马斯克......”。1-shot就是打一针实例的剂量:“张三”,给个示范。到了 zero-shot,一剂量的样板都不给,只要直接下命令就好了:请把人名给我找出来。见下图:

另外,0/1/n shot 严格说不是 learning,因为传统的 learning 就是 training,是模型训练或模型微调的问题,属于线下的工作,只有模型完工之后 才会上线执行任务。而 0/1/n shot 是直接在线上执行相应的任务,没有训练什么事。

以前即便是弱监督的微调,也是要有一批数据(通常也要好几百实例吧,而 few-shots 通常是几个,最多几十个),为了在基础模型上做目标定向或修正。到了提出 n-shot 说法和做法的时候,默认就是立竿见影,在线就要完成指定任务。LLM 本身是不变应万变的。

 

【相关】

《朝华午拾》电子版

李维 郭进《自然语言处理答问》(商务印书馆 2020)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

发布者

立委

立委博士,问问副总裁,聚焦大模型及其应用。Netbase前首席科学家10年,期间指挥研发了18种语言的理解和应用系统,鲁棒、线速,scale up to 社会媒体大数据,语义落地到舆情挖掘产品,成为美国NLP工业落地的领跑者。Cymfony前研发副总八年,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个小企业创新研究的信息抽取项目(PI for 17 SBIRs)。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据