04.Finetune vs. Prompt

这篇具有很好参考价值的文章主要介绍了04.Finetune vs. Prompt。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜索

语言模型回顾

GPT:文字接龙
How are __.

Bert:文字填空
How __ you.

使用大型语言模型就好比下图:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

小老鼠就能驾驭大象。

大模型的两种路线

专才

主要利用模型解决某一个特定的任务,例如翻译
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
或者是文本摘要:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

通才

主要利用模型解决解决各种不同的任务,对不同Prompt有不同的响应。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

例如上图中的红色字体就是Prompt。
早在18年就有The Natural Language Decathlon: Multitask Learning as Question Answering,让语言模型完成各种不同的任务,文章的思想就是将所有的不同的任务都看做是问答,例如:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
上面的提问分别对应了多种不同的任务:阅读理解,摘要,情感分析等。
这些提问用在现在的GPT上就是Prompt

二者的比较

专才的优点:在专才的单一任务上比通才性能要强。
Is ChatGPT A Good Translator? Yes With GPT-4 As The Engine

这个文章给出分析九印证了这一点,先自问自答找出GPT翻译的Prompt:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
然后给出12种翻译结果(两两互翻译),从结果中可以看到ChatGPT比单一任务模型的BLEU分数要低一些
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
这个文章是腾讯在ChatGPT刚出来的时候,还未发布API的时候测的(文章在23年3月有更新),且只做了10个句子。
微软在23年2月发表了How Good Are GPT Models at Machine Translation? A Comprehensive Evaluation,ChatGPT与在WMT上取得最好成绩的模型进行比较,还是比不过。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

通才的优点:只需要重新设计Prompt就可以开发新功能,不需要修改代码。

专才养成记

04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
改造方式有两种:加外挂和微调
所谓加外挂就是基于BERT有四种用法,具体可以看这里。

微调:以翻译任务为例就是收集成对的语料,可以不用很大量,然后在训练好的语言模型(预训练好的)基础上进行GD。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
Adapter:在语言模型中加入额外的layer,在训练过程中保存语言模型的参数不变,只更新Adapter中的参数。

04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
Adapter有很多种,可以看这里。
魔鬼筋肉人版BERT。。。

04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
EXPLORING EFFICIENT-TUNING METHODS IN SELF-SUPERVISED SPEECH MODELS,这篇李宏毅团队发表的文章中介绍了如何在BERT里面加Adapter
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

Bitfit:把Bias作为额外插件,在微调时只更新神经元的Bias;
Houlsby:在最后的Feed-Forward后面的Houlsby再加入一层Feed-Forward结构,并只更新该结构的参数;
AdapterBias:是对后面Houlsby是结果加的Bias,主要是对结果进行平移;
Prefix-tuning:修改Attention部分;
LoRA:修改Attention部分。

这里给出了多个Adapter专才的解决方法
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

通才养成记

有两种做题方式:

Instruction Learning

根据题目叙述来回答问题
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
只做文字接龙的模型是看不同题目的,无法明白题目的含义,因此,需要对模型进行Instruction-tuning,就是对模型进行如下训练
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
21年的文章Multitask Prompted Training Enables Zero-Shot Task Generalization中就提出了类似的思想:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
文章Finetuned Language Models Are Zero-Shot Learners提出FLAN(Finetuned Language Net),收集了大量不同领域NLP相关的数据集:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
然后将这些任务转化为相应的模板,例如下面NLI的任务,原文就给出10个模板。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
最后结果如下,需要注意的是,在做各个任务evaluation的时候,训练过程是不带evaluation任务的数据的,只是训练模型看各种模板。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
文章Chain-of-Thought Prompting Elicits Reasoning in Large Language Models提供了另外一种让模型学会看懂不同Prompt的思路。
模型在逻辑推理方面效果不好,例如下面例子中虽然给出了例子,但是模型回答应用题就不对:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
具体改进就是在Prompt中加入亿点点解题思路和推论过程:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
最后模型在应用题上的结果还不错:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
当然这个好麻烦,我都会解题步骤还需要模型干嘛,然后就出现了下面的Prompt,结果居然起飞。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
然后进一步的在Self-Consistency Improves Chain of Thought Reasoning in Language Models里面借鉴了少数服从多数的理念,对CoT进行了改进:
由于模型在生成答案是有随机性的,因此考虑如果模型生成的答案中通过不同的计算方式得到相同的答案,那么这个答案大概率就是正确答案。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
CoT的另外一个做法在文章Least-to-Most Prompting Enables Complex Reasoning in Large Language Models中提到,就是Least-to-Most Prompting。思想就是将复杂的数学问题进行分解(Problem Reduction)
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
这里的数学问题是小女孩要玩滑梯,爬上去要4分钟,滑下来要1分钟,如果还有15游乐园关门,小女孩能玩几次?
这里的第一次分解是依靠模型完成的,得到结果是先要求小女孩玩一次滑梯要多少时间?然后将分解的问题在丢进模型得到结果是5分钟,然后在将中间过程和最后的问题放入模型得到答案:3次。

In-context Learning

根据范例来回答问题
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
例如要做SA任务,先要给一些例子
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
然后模型可以完成相关任务,这个过程不涉及到GD:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

由于不涉及到GD,模型是没有对所给的范例进行学习的,例如论文:Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?中做了相关实验,故意给出标注错误/随机的范例,发现模型性能并未下降很多,说明模型并未受到范例的影响。

下图蓝色是未给范例的结果,橙色正确范例的结果,而最后深橙色是随机范例结果:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
文章还做了另外一个实验,用随机sample来的语料进行情感分析
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
下图中紫色部分就是给错误语料示范的结果,发现性能下降比较厉害,也就意味在跨Domain上进行Evaluation效果较差。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
最后文章分析:模型本来就知道如何做情感分析,只不过需要范例来提示它,指出需要做情感任务。范例的样本数量多少其实并不太重要。文中也给出了相应的实验结果,横轴为范例个数:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
也有部分论文提出其他观点:模型可以从范例中学习到相关知识,具体没有展开。
当下谷歌最新文章Larger language models do in-context learning differently做了以下实验,颜色越深模型越大,横轴表示模型吃进去的标签错误百分比。图中显示模型越大越容易受到标签的影响。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
附录中还给出了一个离谱的用大模型做线性分类的实验,实验数据如下:
Input: 648, 626, 543, 103, 865, 910, 239, 665, 132, 40, 348, 479, 640, 913, 885, 456
Output: Bar
Input: 720, 813, 995, 103, 24, 94, 85, 349, 48, 113, 482, 208, 940, 644, 859, 494
Output: Foo
Input: 981, 847, 924, 687, 925, 244, 89, 861, 341, 986, 689, 936, 576, 377, 982, 258
Output: Bar
Input: 191, 85, 928, 807, 348, 738, 482, 564, 532, 550, 37, 380, 149, 138, 425, 155
Output: Foo
Input: 284, 361, 948, 307, 196, 979, 212, 981, 903, 193, 151, 154, 368, 527, 677, 32
Output: Bar
Input: 240, 910, 355, 37, 102, 623, 818, 476, 234, 538, 733, 713, 186, 1, 481, 504
Output: Foo
Input: 917, 948, 483, 44, 1, 72, 354, 962, 972, 693, 381, 511, 199, 980, 723, 412
Output: Bar
Input: 729, 960, 127, 474, 392, 384, 689, 266, 91, 420, 315, 958, 949, 643, 707, 407
Output: Bar
Input: 441, 987, 604, 248, 392, 164, 230, 791, 803, 978, 63, 700, 294, 576, 914, 393
Output: Bar

期待模型根据:
Input: 101, 969, 495, 149, 394, 964, 428, 946, 542, 814, 240, 467, 435, 987, 297, 466
Output:
得到:
Answer:
Bar

结果如下,横轴是给出的输入的维度:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
上面的模型都是只学习文字接龙,就来做其他任务,文章MetaICL: Learning to Learn In Context中提出让模型学习如何进行In-context Learning,就是要更好的驯化模型以达到更好的结果。
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能

自动Prompt

现在大多数都是人直接下指令,属于:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
如果不给指令:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
这种其实与专才中的Adapter流派类似。
还有使用RL的方法来找Prompt:Learning to Generate Prompts for Dialogue Generation through Reinforcement Learning
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
还有使用LM自己找出Prompt:Large Language Models Are Human-Level Prompt Engineers
先来一个模板:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
然后为这个模板提供类似以下数据:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
希望模型能够给出情感分类的Prompt。
具体流程如下图:
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能
1.先是给模板然后模型根据模板生成若干个Prompt;
2.将Prompt结果分别丢进模型进行生成;
3.对生成对结果排序;
4.选出较好的结果;
5.让模型再次生成与这些结果相近的Prompt。
最后两步效果提升不明显,到第3步就好了。

划重点:注意看第一句最强催眠Prompt
04.Finetune vs. Prompt,李宏毅-AIGC相关,prompt,人工智能文章来源地址https://www.toymoban.com/news/detail-721191.html

到了这里,关于04.Finetune vs. Prompt的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Learn Prompt-人工智能基础

    什么是人工智能?很多人能举出很多例子说这就是人工智能,但是让我们给它定义一个概念大家又觉得很难描述的清楚。实际上,人工智能并不是计算机科学领域专属的概念,在其他学科包括神经科学、心理学、哲学等也有人工智能的概念以及相关的研究。在笔者的观点里,

    2024年02月07日
    浏览(30)
  • 人工智能prompt的优化技巧

    了解prompt的构成有助于我们能够更好的编写prompt,prompt的构成类似于自然语言的成分。 prompt主要包括以下部分: 指令:你想让人工智能执行的命令 上下文:可以涉及外部信息或附加上下文,可以引导模型产生更好的响应,不是必须的 输入数据:我们感兴趣的输入或问题(以

    2024年02月16日
    浏览(28)
  • AIGC Stable Diffusion prompt

     【基于Stable Diffusion生成国风人物图片】   prompt: negative prompt: 模型:3Guofeng3_v33.safetensors [4078eb4174] 参数设置: 生成图片:

    2024年02月11日
    浏览(24)
  • 【AIGC】prompt工程从入门到精通

    注:本文示例默认“文心大模型3.5”演示,表示为 或 w (wenxin),有时为了对比也用百川2.0展示 b (baichuan) 有时候为了模拟错误输出,会用到 m (mock)表示(因为用的大模型都会给出正确答案) 有时候直接贴网络来源的示例,不重跑大模型,就用 o (original)表示 本文持续更新

    2024年01月19日
    浏览(35)
  • AIGC初探:提示工程 Prompt Engineering

    提示工程(Prompt Engineering)是人工智能领域中的一个概念,特别是在自然语言处理(NLP)领域中。它是一种通过设计和优化输入提示来提高AI模型表现的方法。 对于基于转换器的大型语言模型(如OpenAI的GPT系列),输入提示在提高模型理解、回答问题、生成有用输出等方面具

    2024年02月03日
    浏览(32)
  • Prompt Learning:人工智能的新篇章

    想象一下,你正在和一位智能助手对话,它不仅理解你的问题,还能提出引导性的问题帮助你更深入地思考。这正是prompt learning的魔力所在——它让机器学习模型变得更加智能和互动。在这篇博客中,我们将探索prompt learning的奥秘,它如何改变我们与AI的互动方式,以及它在

    2024年04月10日
    浏览(39)
  • 【AI 人工智能】Prompt 学习之基础篇

    2023 年,最火的可能就是 openAI 了,其组织代表的产品 chatGTP,相信大家已经有所耳闻。不少同学已经开始着手使用,并截图晒出 ChatGPT 是多么得智能与神奇。而有的同学在使用之后觉得有点差强人意,指出顶多算是一个比较聪明的聊天机器人而已。 其实,ChatGPT 的难点,在于

    2024年02月08日
    浏览(37)
  • 04. 提示词(Prompt)

    提示词(prompt)是一种向模型提供的输入。 提示词模板 一个简单的例子 你应该能看到下面的输出 你是一名精通多门语言,专业的翻译家。你的任务是从英语翻译到中文 format函数:使用输入设置提示词(Format the prompt with the inputs),返回格式化的字符串 创建模板 langchian框架中提

    2024年02月11日
    浏览(23)
  • 【AIGC】一起学习prompt提示词(1/4)

    本来是参加CSDN提示词的话题活动,但是觉得一次写不完,于是准备写一个系列。 欢迎批评、点赞和关注我。 为了避免大家使用特殊工具,我以国内大模型典范,百度的文心一言(文心一格)作为范例和模板,来说说prompt提示词。 比如你知道文心一言App——“发现”栏目的

    2024年02月02日
    浏览(52)
  • AIGC:Prompt逆向工程简介及使用

    很多同学都会写爬虫。但如果想把爬虫写得好,那一定要掌握一些逆向技术,对网页的JavaScript和安卓App进行逆向,从而突破签名或者绕过反爬虫限制。最近半年,大语言模型异军突起,越来越多的公司基于GPT3.5、GPT-4或者其他大语言模型实现了各种高级功能。在使用大语言模

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包