04.Finetune vs. Prompt

目录

  • 语言模型回顾
  • 大模型的两种路线
    • 专才
    • 通才
    • 二者的比较
  • 专才养成记
  • 通才养成记
    • Instruction Learning
    • In-context Learning
  • 自动Prompt

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

语言模型回顾

GPT:文字接龙
How are __.

Bert:文字填空
How __ you.

使用大型语言模型就好比下图:
在这里插入图片描述

小老鼠就能驾驭大象。

大模型的两种路线

专才

主要利用模型解决某一个特定的任务,例如翻译
在这里插入图片描述
或者是文本摘要:
在这里插入图片描述

通才

主要利用模型解决解决各种不同的任务,对不同Prompt有不同的响应。
在这里插入图片描述

例如上图中的红色字体就是Prompt。
早在18年就有The Natural Language Decathlon: Multitask Learning as Question Answering,让语言模型完成各种不同的任务,文章的思想就是将所有的不同的任务都看做是问答,例如:
在这里插入图片描述
上面的提问分别对应了多种不同的任务:阅读理解,摘要,情感分析等。
这些提问用在现在的GPT上就是Prompt

二者的比较

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

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

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

专才养成记

在这里插入图片描述
改造方式有两种:加外挂和微调
所谓加外挂就是基于BERT有四种用法,具体可以看这里。

微调:以翻译任务为例就是收集成对的语料,可以不用很大量,然后在训练好的语言模型(预训练好的)基础上进行GD。
在这里插入图片描述
Adapter:在语言模型中加入额外的layer,在训练过程中保存语言模型的参数不变,只更新Adapter中的参数。

在这里插入图片描述
Adapter有很多种,可以看这里。
魔鬼筋肉人版BERT。。。

在这里插入图片描述
EXPLORING EFFICIENT-TUNING METHODS IN SELF-SUPERVISED SPEECH MODELS,这篇李宏毅团队发表的文章中介绍了如何在BERT里面加Adapter
在这里插入图片描述

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

这里给出了多个Adapter专才的解决方法
在这里插入图片描述

通才养成记

有两种做题方式:

Instruction Learning

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

In-context Learning

根据范例来回答问题
在这里插入图片描述
例如要做SA任务,先要给一些例子
在这里插入图片描述
然后模型可以完成相关任务,这个过程不涉及到GD:
在这里插入图片描述

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

下图蓝色是未给范例的结果,橙色正确范例的结果,而最后深橙色是随机范例结果:
在这里插入图片描述
文章还做了另外一个实验,用随机sample来的语料进行情感分析
在这里插入图片描述
下图中紫色部分就是给错误语料示范的结果,发现性能下降比较厉害,也就意味在跨Domain上进行Evaluation效果较差。
在这里插入图片描述
最后文章分析:模型本来就知道如何做情感分析,只不过需要范例来提示它,指出需要做情感任务。范例的样本数量多少其实并不太重要。文中也给出了相应的实验结果,横轴为范例个数:
在这里插入图片描述
也有部分论文提出其他观点:模型可以从范例中学习到相关知识,具体没有展开。
当下谷歌最新文章Larger language models do in-context learning differently做了以下实验,颜色越深模型越大,横轴表示模型吃进去的标签错误百分比。图中显示模型越大越容易受到标签的影响。
在这里插入图片描述
附录中还给出了一个离谱的用大模型做线性分类的实验,实验数据如下:
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

结果如下,横轴是给出的输入的维度:
在这里插入图片描述
上面的模型都是只学习文字接龙,就来做其他任务,文章MetaICL: Learning to Learn In Context中提出让模型学习如何进行In-context Learning,就是要更好的驯化模型以达到更好的结果。
在这里插入图片描述

自动Prompt

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

划重点:注意看第一句最强催眠Prompt
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/118666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何为3D模型设置自发光材质?

1、自发光贴图的原理 自发光贴图是一种纹理贴图,用于模拟物体自发光的效果。其原理基于光的发射和反射过程。 在真实世界中,物体自发光通常是由于其本身具有能够产生光的属性,如荧光物质、发光材料或光源本身。为了在计算机图形中模拟这种效…

应急响应-网站入侵篡改指南_Webshell内存马查杀_漏洞排查_时间分析

1. 前言 一般安服在做项目的时候,经常会遇到需要做应急响应的工作,所谓应急响应就是当网站出现异常的时候,根据相关的问题对其进行溯源分析,发现问题,解决问题。 2. 网络安全异常特征 这里大概汇总一下网络安全异常的…

RustDay06------Exercise[91-100]

91.将指针还原成指定类型 因为指针不知道里面具体有什么,所以一般约定打上unsafe 申明开发者自己对该部分可用性负责,且在调试的时候也能起强调作用 // tests6.rs // // In this example we take a shallow dive into the Rust standard librarys // unsafe functions. Fix …

c语言从入门到实战——分支和循环

分支和循环 前言1. if语句1.1 if1.2 else1.3 分支中包含多条语句1.4 嵌套if1.5 悬空else问题 2. 关系操作符3. 条件操作符4. 逻辑操作符:&& , || , !4.1 逻辑取反运算符4.2 与运算符4.3 或运算符4.4 练习:闰年的判断4.5 短路 5. swit…

鸡尾酒学习——长岛冰茶

长岛冰茶 1、材料:冰块(或者雪莲)、白朗姆、伏特加、龙舌兰、金酒、柠檬、君度或者白兰地、可乐; 2、口感:酸甜苦口味,酒的苦涩较为明显(怀疑是自己放了过多的柠檬汁导致苦涩感明显&#xff09…

BeanUtils

BeanUtils BeanUtils类是Apache Commons BeanUtils库中的一个工具类,用于简化JavaBean的操作。它提供了一组方法,可以方便地对JavaBean进行属性的复制、获取和设置。 常用的BeanUtils方法包括: copyProperties(Object dest, Object orig)&a…

git:删除上一次 commit 中的某个文件,并重新提交

1. 首先,使用以下命令删除要移除的文件: git rm 文件路径将 “文件路径” 替换为要删除的文件的实际路径。这将从 Git 仓库中删除该文件,并将其放入暂存区。git rm 相当于 linux rm git add 命令。 2. 使用以下命令修改上一次的提交&#…

Sui提供dApp Kit 助力快速构建React Apps和dApps

近日,Mysten Labs推出了dApp Kit,这是一个全新的解决方案,可用于在Sui上开发React应用程序和去中心化应用程序(dApps)。mysten/dapp-kit是专门为React定制的全新SDK,旨在简化诸如连接钱包、签署交易和从RPC…

若依微服务上传图片文件代理配置

在使用若依微服务文件上传时候,文件上传成功会上传到D:/ruoyi/uploadPath目录下。默认使用9300端口进行访问图片文件,现在我想把它代理到80端口应该怎么做呢? 配置前:http://localhost:9300/statics/2023/09/24/test.jpg 配置后:http://localhost/statics/2023/09/24/test…

JWT的登录认证与自校验原理分析

目录 一、JWT的概述 1.什么是JWT? 2.JWT的用户认证 3.JWT解决了什么问题? 4.关于JWT中的签名如何理解? 5.JWT的优势 二、JWT的结构 1.令牌的组成: 2.JWT的工具类 3.JWT所需的依赖 4.JWT登录生成Token的原理 三、JWT的自…

浅谈智能制造

智能制造 如今,同一版本同一型号的手机,几乎是一模一样的。当我们说去选购商品,其实是在有限的型号中选择我们需要的那一款。可是,人的需求千变万化,为什么偏偏要归结到几个固定的型号上去呢?每个人不应该…

图片放大镜效果

安装&#xff1a; vueuse 插件 npm i vueuse/core 搜索&#xff1a; useMouseInElement 方法 <template><div ref"target"><h1>Hello world</h1></div> </template><script> import { ref } from vue import { useM…

【Python 算法】信号处理通过陷波滤波器准确去除工频干扰

对于一个信号来说通常汇入工频噪声往往是因为交流电产生的电泳&#xff0c;影响了我们信号采集导致信号上存在工频干扰。 那么matlab去除工频干扰可以通过陷波滤波器实现。 通常使用scipy.signal实现信号的处理。 Scipy的信号处理模块&#xff08;scipy.signal&#xff09;来创…

day02:DML DQL DCL

目录 一:DML 二:DCL 三:DCL 一:DML 1:概念:数据操作原因&#xff0c;对数据进行增删改。 2:三个操作 (1):增加:insert id name age gender 1 令狐冲 23 男 2(添加的数据)风清扬25男 1--->给指定字段添加数据:insert into 表名(字段1&#xff0c;字段2--)values…

攻防世界-web-FlatScience

1. 题目描述 打开链接&#xff0c;看到如下界面 界面上的链接都点击下&#xff0c;发现都是一些英文论文 这些暂时是我们从界面上能发现的全部信息了 2. 思路分析 && 解题过程 2.1 先将网站使用nikto命令扫描一下 我们发现除了显式的界面外&#xff0c;还有两个隐藏…

Mysql数据库 4.SQL语言 DQL数据操纵语言 查询

DQL数据查询语言 从数据表中提取满足特定条件的记录 1.单表查询 2.多表查询 查询基础语法 select 关键字后指定要查询到的记录的哪些列 语法&#xff1a;select 列名&#xff08;字段名&#xff09;/某几列/全部列 from 表名 [具体条件]&#xff1b; select colnumName…

Alexon:在云原生环境中快速部署应用服务

Alexon是一个旨在快速部署WEB应用服务到分布式系统中的工具&#xff0c;适用于云原生环境。 Alexon由SymeCloud Limited(syme.dev) 发布&#xff0c;使用GNU Guile编写而成&#xff0c;支持函数编程概念。 SymeCloud 公司主要致力于 AI-Infra 方面的研发&#xff0c;从 OpenAI …

华为昇腾NPU卡 大模型LLM ChatGLM2模型推理使用

参考&#xff1a;https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/glm2.md#chatglm2-6b 1、安装环境&#xff1a; 昇腾NPU卡对应英伟达GPU卡&#xff0c;CANN对应CUDA底层&#xff1b; mindspore对应pytorch&#xff1b;mindformers对应transformers 本…

Vue-dvadmin-d2-crud-plus-自定义后台菜单-添加页面

文章目录 1.新建数据模型2.新建数据序列类3.新建数据视图4.配置路由5.前端新建View组件6.配置后台7.总结 django-vue-admin是一套全部开源的快速开发平台&#xff0c;毫无保留给个人及企业免费使用。 &#x1f9d1;‍&#x1f91d;‍&#x1f9d1;前端采用D2Admin 、Vue、Eleme…

Linux网络流量监控iftop

在 Linux 系统下即时监控服务器的网络带宽使用情况&#xff0c;有很多工具&#xff0c;比如 iptraf、nethogs 等等&#xff0c;但是推荐使用小巧但功能很强大的 iftop 工具【官网&#xff1a;http://www.ex-parrot.com/~pdw/iftop/】。iftop 是 Linux 系统一个免费的网卡实时流…