LLMs多任务指令微调Multi-task instruction fine-tuning

多任务微调是单任务微调的扩展,其中训练数据集包括多个任务的示例输入和输出。在这里,数据集包含指导模型执行各种任务的示例,包括摘要、评论评分、代码翻译和实体识别。
在这里插入图片描述

您在这个混合数据集上训练模型,以便它可以同时提高模型在所有任务上的性能,从而避免灾难性遗忘的问题。经过多次迭代的训练,使用示例计算的损失用于更新模型的权重,从而产生一个已经学会如何同时擅长多种不同任务的指导模型。

多任务微调的一个缺点是它需要大量的数据。您的训练集中可能需要多达50-100,000个示例。然而,组装这些数据可能是非常值得的,并且值得付出努力。由此产生的模型通常非常有能力,并适用于在多个任务上需要良好性能的情况。

让我们来看一下使用多任务指导微调训练的一系列模型。指导模型的差异基于微调期间使用的数据集和任务。一个例子是FLAN模型家族。FLAN,代表Fine-tune LAnguage Net微调语言网络,是用于微调不同模型的一组特定指令。因为他们的FLAN微调是训练过程的最后一步,所以原始论文的作者称其为预训练主菜的比喻性甜点,非常贴切的名字。
在这里插入图片描述

FLAN-T5是T5基础模型的FLAN指导版本,而FLAN-PALM是PLAM基础模型的FLAN版本。您
在这里插入图片描述

明白了,FLAN-T5是一个很好的通用指导模型。总体而言,它已经在473个数据集上进行了微调,涵盖了146个任务类别。
在这里插入图片描述

这些数据集是从其他模型和论文中选出的,如此处所示。现在不用担心阅读所有的细节。如果您感兴趣,您可以在视频后通过阅读练习访问原始论文,并仔细查看。

FLAN-T5用于摘要任务的一个示例提示数据集是SAMSum。它是Muffin任务和数据集的一部分,用于训练语言模型以总结对话。
在这里插入图片描述

SAMSum是一个包含16,000个类似信使的对话和摘要的数据集。这里显示了三个示例,对话在左边,摘要在右边。对话和摘要是由语言学家专门为生成高质量的语言模型训练数据集而设计的。
在这里插入图片描述

语言学家被要求创建与他们每天会写的对话类似的对话,反映了他们真实生活中信使对话的主题比例。然后,语言专家创建了包含重要信息和对话中人们名称的简短摘要。

这里是一个设计用于与这个SAMSum对话摘要数据集一起工作的提示模板。模板实际上由几个不同的指令组成,所有这些指令基本上都要求模型做同样的事情。总结一下对话。例如,
简要总结该对话。
在这里插入图片描述

这个对话的摘要是什么?
在这里插入图片描述

那次对话发生了什么?
在这里插入图片描述

包括说同一指令的不同方式有助于模型泛化并表现得更好。就像您之前看到的提示模板一样。您会看到,在每种情况下,SAMSum数据集中的对话都被插入到模板中,
在这里插入图片描述

无论对话字段出现在哪里。

摘要用作标签。
在这里插入图片描述

在将这个模板应用到SAMSum数据集的每一行之后,您可以用它来微调对话摘要任务。

虽然FLAN-T5是一个表现出许多任务中良好能力的通用模型,但您可能仍然会发现它在您特定用例的任务上有改进的空间。例如,假设您是一名数据科学家,正在构建一个应用程序来支持您的客户服务团队,通过聊天机器人处理接收到的请求,就像这里显示的那样。
在这里插入图片描述

您的客户服务团队需要每个对话的摘要,以识别客户正在请求的关键操作,并确定应采取什么行动作为回应。
在这里插入图片描述

SAMSum数据集赋予FLAN-T5一些总结对话的能力。然而,数据集中的示例主要是关于朋友之间关于日常活动的对话,并且与客户服务聊天中观察到的语言结构没有太多重叠。

您可以使用更接近与您的机器人发生的对话的对话数据集对FLAN-T5模型进行额外的微调。这正是您将在本周的实验室中探索的准确场景。

您将使用一个名为dialogsum的额外领域特定摘要数据集来提高FLAN-T5对总结支持聊天对话的能力。这个数据集包括超过13,000个支持聊天对话和摘要。
在这里插入图片描述

dialogsum数据集不是FLAN-T5训练数据的一部分,所以模型以前没有看到这些对话。

让我们来看一个来自dialogsum的例子,并讨论进一步微调如何改善模型。这是一个典型的dialogsum数据集中的示例,对话是在酒店前台与客户和工作人员之间进行的。聊天已经应用了一个模板,以便在文本开始时包括总结对话的指令。
在这里插入图片描述

现在,让我们看看在没有进行任何额外微调之前,FLAN-T5对这个提示的反应是什么,注意现在提示在左边被压缩了,以便您有更多的空间来检查模型的完成。这是模型对指令的反应。您可以看到,模型能够识别出对话是关于Tommy的预订。
在这里插入图片描述

然而,它没有像人工生成的基线摘要那样做得好,其中包括了重要信息,比如Mike要求提供便于办理入住的信息,
在这里插入图片描述

而模型的完成还发明了原始对话中没有包括的信息。具体来说,酒店的名字
在这里插入图片描述

和它所在的城市。
在这里插入图片描述

现在,让我们看看模型在对dialogsum数据集进行微调后的表现如何,希望您会同意,这更接近人工生成的摘要。没有捏造的信息,摘要包括所有重要的细节,包括参与对话的两个人的名字。
在这里插入图片描述

这个例子使用公共dialogsum数据集来演示在自定义数据上进行微调。

在实践中,通过使用您公司自己的内部数据进行微调,您将获得最大的收益。
在这里插入图片描述

例如,来自您的客户支持应用程序的支持聊天对话。这将帮助模型学习您的公司如何喜欢总结对话以及对您的客户服务同事最有用的是什么。

我知道这里有很多东西需要消化。但不用担心,这个例子将在实验室中进行讲解。您将有机会亲自看到这一切并尝试一下。

微调时您需要考虑的一件事是如何评估您的模型完成的质量。在下一个视频中,您将了解几种可以用来确定您的模型表现如何以及您的微调版本比原始基础模型好多少的指标和基准。

参考

https://www.coursera.org/learn/generative-ai-with-llms/lecture/notob/multi-task-instruction-fine-tuning

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

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

相关文章

每日一博 - 闲聊云原生和容器编排

文章目录 概念1. 云原生(Cloud Native):2. 容器编排(Container Orchestration): 小结 概念 云原生和容器编排是两个不同的概念,但它们之间有着密切的联系。下面将分别介绍这两个概念&#xff0…

react解决死循环方法?

使用useeffect(副作用)方法结束这个操作 1、导入useeffect、useState 2、把下方代码写入:里面填写的是你要终止某个东西的代码 注意:不可不写,也可以写依赖或不写

JS算法之树(一)

前言 之前我们已经介绍过一种非顺序数据结构,是散列表。 JavaScript散列表及其扩展http://t.csdn.cn/RliQf 还有另外一种非顺序数据结构---树。 树数据结构 树是一种分层数据的抽象模型。公司组织架构图就是常见的树的例子。 相关术语 一个树结构&#xff0…

数据结构(Java实现)-java对象的比较

元素的比较 基本类型的比较 在Java中&#xff0c;基本类型的对象可以直接比较大小。 对象比较的问题 Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较 默认情况下调用的就是equal方法&#xff0c;但是该方法的比较规则是&#xff1a;没有比较引用变量引用对象的…

iPhone 15 Pro与谷歌Pixel 7 Pro:哪款相机手机更好?

考虑到苹果最近将更多高级功能转移到iPhone Pro设备上的趋势,今年秋天iPhone 15 Pro与谷歌Pixel 7 Pro的对决将是一场特别有趣的对决。去年发布的iPhone 14 Pro确实发生了这种情况,有传言称iPhone 15 Pro再次受到了苹果的大部分关注。 预计iPhone 15系列会有一些变化,例如切…

k8s ingress (二)

k8s ingress (二) Ingress介绍 在前面课程中已经提到&#xff0c;Service对集群之外暴露服务的主要方式有两种&#xff1a;NodePort和LoadBalancer&#xff0c;但是这两种方式&#xff0c;都有一定的缺点&#xff1a; NodePort方式的缺点是会占用很多集群机器的端口&#xff0…

Postman —— postman实现参数化

什么时候会用到参数化 比如&#xff1a;一个模块要用多组不同数据进行测试 验证业务的正确性 Login模块&#xff1a;正确的用户名&#xff0c;密码 成功&#xff1b;错误的用户名&#xff0c;正确的密码 失败 postman实现参数化 在实际的接口测试中&#xff0c;部分参数每…

Redis通信协议

文章目录 Redis通信协议RESP协议数据类型 模拟Redis客户端 Redis通信协议 RESP协议 Redis是一个CS架构的软件&#xff0c;通信一般分为两步(不包含pipeline和PubSub)&#xff1a; 客户端(client)向服务端(server)发送一条命令。服务器解析并执行命令&#xff0c;返回响应结果…

【DETR】3、Conditional DETR | 拆分 content 和 spatial 来实现对 DETR 的加速

文章目录 一、Conditional DETR 是怎么被提出来的二、Conditional DETR 的具体实现2.1 框架结构2.2 DETR 的 cross-attention 和 Conditional DETR 的 cross-attention 对比 三、效果 论文&#xff1a;Conditional DETR for Fast Training Convergence 代码&#xff1a;https:…

c++ qt--事件过滤(第七部分)

c qt–事件过滤&#xff08;第七部分&#xff09; 一.为什么要用事件过滤 上一篇博客中我们用到了事件来进行一些更加细致的操作&#xff0c;如监控鼠标的按下与抬起&#xff0c;但是我们发现如果有很多的组件那每个组件都要创建一个类&#xff0c;这样就显得很麻烦&#xff…

springboot源码编译问题

问题一 Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:2.2.5.RELEASE in nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public/) 意思是无法在阿里云的镜像仓库中找到资源 解决&#xff1a;将配置的镜像删除即可&#…

我的128天创作纪念日-东离与糖宝

文章目录 机缘收获日常成就憧憬 不知不觉我也迎来了自己的128天创作纪念日&#xff0c;一起来看看我有什么想对大家说的吧 机缘 我的写博客之旅始于参加了代码随想录算法训练营。在训练营期间&#xff0c;代码随想录作者卡尔建议我们坚持每天写博客记录刷题学习的进度和心得体…