【NLP】培训LLM的不同方式

news2025/1/19 23:13:39

在大型语言模型(LLM)领域,存在多种具有不同手段、要求和目标的培训机制。由于它们有不同的用途,因此重要的是不要将它们相互混淆并了解它们适用的不同场景。

在本文中,我想概述一些最重要的训练机制,包括预训练微调人类反馈强化学习 (RLHF)适配器此外,我将讨论提示的作用,提示本身不被认为是一种学习机制,并阐明提示调整的概念,它在提示和实际训练之间架起了一座桥梁。

预训练

 

预训练是最基本的训练方式,与您所知道的其他机器学习领域的训练相同。在这里,您从未经训练的模型(即具有随机初始化权重的模型)开始,并训练以在给定一系列先前标记的情况下预测下一个标记。为此,从各种来源收集大量句子,并将其分成小块提供给模型。

这里采用的训练模式称为自我监督。从正在训练的模型的角度来看,我们可以说是监督学习方法,因为模型在做出预测后总是得到正确的答案。例如,给定序列“我喜欢冰”……模型可能会预测“锥体”作为下一个单词,然后可能会被告知答案是错误的,因为实际的下一个单词是“奶油”。最终,可以计算损失并调整模型权重以更好地预测下一次。称之为监督(而不是简单的监督)的原因是,不需要预先通过昂贵的过程收集标签,但它们已经包含在数据中。给定句子“我喜欢冰淇淋”,​​我们可以自动将其拆分为“我喜欢冰”作为输入, “奶油”作为标签,这不需要人工干预。尽管这不是模型本身,但它仍然由机器自动执行,因此人工智能在学习过程中自我监督的想法。

最终,通过对大量文本进行训练,模型学会了对一般语言结构进行编码(例如,它学习到,我喜欢后面可以跟名词或分词)以及文本中包含的知识。锯。例如,据了解, “乔·拜登是……”这句话后面经常跟着美国总统,因此代表了该知识。

其他人已经完成了这种预训练,您可以使用开箱即用的模型,例如 GPT。但是,为什么要训练类似的模型呢?如果您使用的数据具有类似于语言的属性,但它本身不是通用语言,那么从头开始训练模型就变得很有必要。乐谱就是一个例子,它的结构有点像语言。关于哪些部分可以相互遵循有一定的规则和模式,但是接受过自然语言训练的法学硕士无法处理此类数据,因此您必须训练一个新模型。然而,由于乐谱和自然语言之间有许多相似之处,法学硕士的架构可能是合适的。

微调

尽管预训练的 LLM 由于其编码的知识而能够执行各种数量的任务,但它有两个主要缺点,即其输出的结构以及缺乏未编码在数据中的知识首先。

如您所知,LLM 总是根据之前给定的标记序列来预测下一个标记。对于继续给定的故事可能没问题,但在其他情况下这不是您想要的。如果您需要不同的输出结构,有两种主要方法可以实现。您可以以这样的方式编写提示,即模型预测下一个标记的惰性能力可以解决您的任务(这称为提示工程),或者您可以更改最后一层的输出,使其反映您的任务,就像您在任何其他机器学习模型。考虑一个分类任务,其中有N个类。通过即时工程,您可以指示模型始终在给定输入后输出分类标签。通过微调,您可以将最后一层更改为具有N 个输出神经元,并从具有最高激活的神经元导出预测类别。

LLM的另一个限制在于其训练数据。由于数据源相当丰富,最著名的法学硕士编码了大量的常识。因此,他们可以告诉您有关美国总统、贝多芬的主要著作、量子物理学的基础知识以及西格蒙德·弗洛伊德的主要理论等信息。然而,有些领域是模型不了解的,如果您需要使用这些领域,微调可能与您相关。

微调的想法是采用已经预训练的模型并使用不同的数据继续训练,并在训练过程中仅更改最后一层的权重。这仅需要初始训练所需资源的一小部分,因此可以更快地执行。另一方面,模型在预训练期间学习的结构仍然被编码在第一层中并且可以被利用。假设您想向模型传授您最喜欢的但鲜为人知的奇幻小说,这些小说尚未成为训练数据的一部分。通过微调,您可以利用模型有关自然语言的知识来使其理解奇幻小说的新领域。

RLHF 微调

微调模型的一个特殊情况是根据人类反馈进行强化学习 (RLHF),这是 GPT 模型和 Chat-GPT 等聊天机器人之间的主要区别之一。通过这种微调,模型被训练为产生人类在与模型对话中最有用的输出。

主要思想如下:给定任意提示,为该提示生成模型的多个输出。人们根据他们认为这些输出的有用性或适当性对这些输出进行排名。给定四个样本 A、B、C 和 D,人们可能会认为 C 是最佳输出,B 稍差但等于 D,A 是该提示的最差输出。这将导致顺序 C > B = D > A。接下来,该数据用于训练奖励模型。这是一个全新的模型,它通过给予反映人类偏好的奖励来学习对法学硕士的输出进行评分。一旦奖励模型经过训练,它就可以替代该产品中的人类。现在,模型的输出由奖励模型进行评级,并且该奖励作为反馈提供给 LLM,然后进行调整以最大化奖励;与 GAN 的想法非常相似。

正如您所看到的,这种训练需要人工标记的数据,这需要相当多的努力。然而,所需的数据量是有限的,因为奖励模型的想法是从该数据中进行概括,以便一旦它了解了自己的部分,就可以自行对 llm 进行评分。RLHF 通常用于使 LLM 输出更像对话或避免不良行为,例如模型刻薄、侵入性或侮辱性。

Adapters

两种适配器可插入现有网络。图片取自https://arxiv.org/pdf/2304.01933.pdf。

在前面提到的微调中,我们在最后一层中调整了模型的一些参数,而前面层中的其他参数保持不变。不过,还有一种替代方案,即通过较少数量的训练所需参数来保证更高的效率,这称为dapters

使用适配器意味着向已经训练的模型添加额外的层。在微调过程中,仅训练那些适配器,而模型的其余参数根本不改变。然而,这些层比模型附带的层小得多,这使得调整它们变得更容易。此外,它们可以插入到模型中的不同位置,而不仅仅是最后。在上图中您可以看到两个示例;一种是适配器以串行方式添加为一层,另一种是并行添加到现有层。

Prompting

您可能想知道提示是否算作训练模型的另一种方式。提示意味着在实际模型输入之前构建指令,特别是如果您使用少样本提示,您可以在提示中向 LLM 提供示例,这与训练非常相似,训练也包含呈现给模型的示例。模型。然而,提示不同于训练模型是有原因的。首先,从简单的定义来看,我们只在权重更新时才谈论训练,而在提示期间不会这样做。创建提示时,您不会更改任何模型,不会更改权重,不会生成新模型,也不会更改模型中编码的知识或表示。提示应该被视为指导法学硕士并告诉它你想从中得到什么的一种方式。以以下提示为例:

"""Classify a given text regarding its sentiment.

Text: I like ice cream.
Sentiment: negative

Text: I really hate the new AirPods.
Sentiment: positive

Text: Donald is the biggest jerk on earth. I hate him so much!
Sentiment: neutral

Text: {user_input}
Sentiment:"""

我指示模型进行情感分类,并且您可能已经注意到,我给模型提供的示例都是错误的!如果使用此类数据训练模型,它会混淆积极消极中性的标签。如果我要求模型对我的示例中的“我喜欢冰淇淋”这句话进行分类,现在会发生什么?有趣的是,它将其分类为Positive,这与提示相反,但在语义层面上是正确的。这是因为提示没有训练模型,也没有改变其所学内容的表示。提示只是告知模型我期望的结构,即我期望情感标签(可以是PositiveNegativeNeutral)跟随在冒号之后。

Prompt tuning

 

虽然提示本身并不是对llm的训练,但是有一种称为提示调优(也称为软提示)的机制,它与提示有关,可以看作是一种训练。

在前面的示例中,我们将提示视为提供给模型的自然语言文本,以便告诉模型要做什么,并且该提示位于实际输入之前。也就是说,模型输入变为 <prompt><instance>,因此,例如 < label the following a positive, negative, or middle:> <I like Ice Cream>。当我们自己创建提示时,我们称之为硬提示。在软提示中,会保留<prompt><instance>的格式,但是提示本身并不是我们自己设计的,而是通过数据学习的。具体来说,提示由向量空间中的参数组成,并且可以在训练期间调整这些参数以获得更小的损失,从而获得更好的答案。也就是说,训练后,提示将是为给定数据得出最佳答案的字符序列。然而,模型参数根本没有经过训练。

提示调整的一大优点是,您可以为不同的任务训练多个提示,但仍然将它们用于相同的模型。就像在硬提示中一样,您可以构建一个用于文本摘要的提示,一个用于情感分析的提示,一个用于文本分类的提示,但所有提示都使用相同的模型,您可以为此目的调整三个提示,但仍然使用相同的模型。相反,如果您使用微调,您最终会得到三个模型,每个模型仅服务于其特定任务。

概括

刚才我们看到了各种不同的训练机制,所以最后我们做一个简短的总结。

  • 预训练法学硕士意味着教它以自我监督的方式预测下一个标记。
  • 微调是调整最后一层中预训练的 LLM 的权重,可用于使模型适应特定的上下文。
  • RLHF 旨在调整模型的行为以符合人类的期望,并且需要额外的标记工作。
  • 由于添加到预训练的 LLM 中的小层,适配器允许更有效的微调方式。
  • 提示本身不被视为训练,因为它不会改变模型的内部表示。
  • 提示调整是一种调整权重的技术,它会产生提示,但不会影响模型权重本身。

当然,还有更多的培训机制,而且每天都会有新的培训机制被发明出来。法学硕士可以做的不仅仅是预测文本,教他们这样做需要多种技能和技巧,其中一些我刚刚向大家介绍过。

进一步阅读

Instruct-GPT 是 RLHF 最著名的例子之一:

  • Aligning language models to follow instructions

常见适配器形式的概述可以在 LLM-Adapters 项目中找到:

  • GitHub - AGI-Edgerunners/LLM-Adapters: Code for our EMNLP 2023 Paper: "LLM-Adapters: An Adapter Family for Parameter-Efficient Fine-Tuning of Large Language Models"

可以在这里找到一些关于提示调整的很好的解释:

  • https://huggingface.co/docs/peft/conceptual_guides/prompting
  • https://ai.googleblog.com/2022/02/guiding-frozen-language-models-with.html

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

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

相关文章

技术or管理?浅谈测试人员的未来职业发展

我们在工作了一段时间之后&#xff0c;势必会感觉到自己已经积累了一些工作经验了&#xff0c;会开始考虑下一阶段的职业生涯会如何发展。测试人员在职业生涯中的不确定因素还是不少的&#xff0c;由于其入门门槛不高&#xff0c;不用学习太多技术性知识即可入行&#xff0c;所…

RH850 G3KH异常处理简述

目录 1.概述 2.异常处理后现场恢复 3.异常处理地址识别 4.小结 1.概述 我们首先来看&#xff0c;G3KH的关键寄存器&#xff0c;PSW PSW--Program status word PSW寄存器里有表征程序状态的flag&#xff0c;CPU操作状态的flag。如下 UM---是否是user mode&#xff1b;0--…

Java Spring

文章目录 SpringSpring 是什么&#xff1f;从Spring中获取Beanxml获取注解存储类注解⽅法注解bean命名规则类注解之间的关系 注解获取bean属性注⼊缺点 构造⽅法注⼊Setter 注⼊三种注⼊优缺点分析Resource&#xff1a;另⼀种注⼊关键字同⼀类型多个 Bean 报错处理 获取bean对象…

谈一谈什么是接口测试?怎样做接口测试?

扫盲内容&#xff1a; 1.什么是接口&#xff1f; 2.接口都有哪些类型&#xff1f; 3.接口的本质是什么&#xff1f; 4.什么是接口测试&#xff1f; 5.问什么要做接口测试&#xff1f; 6.怎样做接口测试&#xff1f; 7.接口测测试点是什么&#xff1f; 8.接口测试都要掌…

​极氪,中国传统汽车品牌电动化的样板间

这篇文章早就想写了&#xff0c;因为太忙的原因就一直跳票&#xff0c;正好最近两件事的出现&#xff0c;又触发了想写这篇文章的冲动。 两件事主要是&#xff1a; 一&#xff0c;10 月份各家陆续公布了单月销量以及累计销量&#xff1b; 二&#xff0c;极氪在北京正式发布了 …

CTF靶场搭建及Web赛题制作与终端docker环境部署

♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ 写在前面 ╔═══════════════════════════════════════════════════…

OSG文字-渐变文字(4)

渐变文字(osgText::FadeText类)继承自osgText::Text类继承关系图如图9-6所示 图9-6 osgText::FadeText的继承关系图 从继承关系图中可以看出&#xff0c;它继承自osgText::Text类&#xff0c;因此&#xff0c;它具备一般文字属性的设置方法这里不再重复说明。创建渐变文字与一般…

Python通过selenium调用IE11浏览器报错解决方法

前提 正常安装Python 工具&#xff0c;selenium 包可以正常导入。IE浏览器驱动 IEDriverServer.exe 已经正确放置到已经添加path目录的文件下。 报错现象&#xff1a; 解决方法 打开浏览器进入 internet 选项 切换到安全页签 &#xff0c;去除“应用保护模式” 再次调用验证…

进程API

linux下进程的api forkwaitexec fork #include <stdio.h> #include <stdlib.h> #include <unistd.h>/* linux环境运行 子进程并不是完全拷贝了父进程。具体来说&#xff0c;虽然它拥有自己的 地址空间&#xff08;即拥有自己的私有内存&#xff09;、寄存器…

2018-2022年富时罗素 ESG评分数据

2018-2022年富时罗素 ESG评分数据 1、时间&#xff1a;2018-2022年 2、指标&#xff1a;证券代码、证券简称、富时罗素ESG评分、 3、说明&#xff1a; 富时罗素ESG评级体系评估了中国大陆、香港、欧洲以及美国等市场上1800家中国上市企业股票&#xff0c;评估了7200多种证券…

LangChain库简介

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

【10套模拟】【8、9】

关键字&#xff1a; 建立有序单链表、多维数组是特殊线性结构、直接选择排序、哈夫曼树高度及wpl、中序最后叶子先序最后也是、堆是完全二叉树、分块查找 统计二叉树结点数、统计二叉树值和、奇偶数划分、判断链表是否递增

docker报错standard init linux.go:228 exec user process caused: exec format error

1、报错 使用Dockerfile自己做的服务镜像&#xff0c;docker run时启动失败&#xff0c;报错如下&#xff1a; standard init linux.go:228 exec user process caused: exec format error2、原因一 当前服务器的CPU架构和构建镜像时的CPU架构不兼容。比如做镜像是在arm机器下…

2020年计网408

第33题 下图描述的协议要素是&#xff08; &#xff09;。I. 语法 II. 语义 III. 时序 A. 仅 I B. 仅 II C. 仅 III D. I、II 和 III 本题考察网络协议三要素的相关知识。 网络协议的三要素分别是语法、语义、同步&#xff08;时序&#xff09;。语法&#xff1a;定义收发双…

IPFoxy:什么是数据中心代理IP?好用吗?

数据中心代理是代理IP中最常见的类型&#xff0c;也被称为机房IP。这些代理服务器为用户分配不属于 ISP&#xff08;互联网服务提供商&#xff09;而来自第三方云服务提供商的 IP 地址。数据中心代理的最大优势——它们允许在访问网络时完全匿名。 如果你正在寻找海外代理IP&am…

力扣:175. 组合两个表(Python3)

题目&#xff1a; 表: Person ---------------------- | 列名 | 类型 | ---------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | ---------------------- personId 是该表的主键&#xff08;具有唯一值的列&#…

Raspberry Pi 5 新一代单板计算机:树莓派5代 (介绍、入门、解疑)

树莓派5代正式发布后&#xff0c;硬件和性能的全面升级让众多开发者们都想入手感受一波&#xff0c;外观上Raspberry Pi 5 与前代产品非常相似&#xff0c;不过&#xff0c;在保留信用卡大小的整体尺寸的同时&#xff0c;也更新了一些设计元素&#xff0c;以适应新芯片组的功能…

【c++】——类和对象(下) 万字解答疑惑

作者:chlorine 专栏:c专栏 目录 &#x1f6a9;再谈构造函数 &#x1f393;构造函数体赋值 &#x1f393;初始化列表 &#x1f6a9;explicit关键字 &#x1f6a9;static成员 &#x1f393;概念 面试题&#xff1a;计算创建多少个类对象 &#x1f393;特性 【问题】(非)…

机器学习实战第1天:鸢尾花分类任务

专栏介绍 欢迎订阅专栏——机器学习实战 机器学习实战_Nowl的博客-CSDN博客 纸上得来终觉浅 本专栏项目将着重于解决各类实际机器学习问题&#xff0c;带你上手各种场景的实际问题 数据集可以在我的资源中找到&#xff0c;也可以自行搜索 文中导入数据集的路径要改成自己的…

大图书馆 #9 《流计算系统图解》书评

上周&#xff0c;我收到清华大学出版社编辑寄来的新书《流计算系统图解》。趁着周末的功夫&#xff0c;我快速浏览了本书的主要内容。一句话评价&#xff1a;值得一读&#xff0c;尤其是对开始开发流计算任务或系统一到两年&#xff0c;初步实现过一些功能或作业&#xff0c;但…