德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第八周) - 现代大语言模型

现代大语言模型

  • 1. GPT-3
  • 2. 上下文学习
    • 2.1. 零样本提示
    • 2.2. 少样本提示
    • 2.3. 归纳头
  • 3. 对齐
    • 3.1. 指令微调
    • 3.2. 基于人类反馈的强化学习
    • 3.3. 事实与幻觉

1. GPT-3

  • GPT系列论文
    • GPT-1(2018): Improving Language Understanding by Generative Pre-Training
    • GPT-2(2019): Language Models are Unsupervised Multitask Learners
    • GPT-3(2020): Language Models are Few-Shot Learners
    • InstructGPT(2022): Training language models to follow instructions with human feedback

GPT-1(GPT)在之前章节中就介绍过了,GPT-2相比GPT使用了更多的训练数据,并且增加了模型规模。GPT-2是截止到2019年3月训练的最大模型(1.5B)。它能够连续地生成流利和连贯的句子,而这是较小的模型或LSTM所无法实现的。

GPT-3拥有惊人的1750亿个参数(175B),这是GPT-2参数数量的100多倍。这使得GPT-3成为当时最大的语言模型。训练使用45TB超大规模数据。GPT-3可以执行各种自然语言处理任务,包括但不限于文本生成、翻译、问答、总结和文本分类。GPT-3展示了强大的少样本学习能力,只需要通过极少的例子就可以理解和执行新的任务。这种能力被称为“in-context learning”,它使得GPT-3在没有专门训练的情况下可以处理广泛的任务。由于其庞大的参数数量和先进的架构,GPT-3能够生成非常自然和连贯的文本,这在许多情况下几乎无法与人类的写作区分开来。

在这里插入图片描述

2. 上下文学习

GPT-3提出了微调(Fine-Tuning, FT)之外的另一种方法:上下文学习或语境学习(In-Content Learning, ICL)。仅使用现成的模型,不进行梯度更新。

传统的微调方法通常需要对预训练模型进行进一步的训练,以适应特定任务或数据集。这涉及在新的数据集上进行额外的训练,并更新模型的梯度来调整参数,从而使模型更好地处理特定任务。与此相对,GPT-3引入了上下文学习的概念。这种方法不需要对模型进行额外的训练或梯度更新,而是直接使用预先训练好的模型。通过在输入中提供一些示例或提示,GPT-3能够根据这些上下文信息来理解任务并生成相应的输出。这种方法的优势在于:

  1. 无需额外训练:用户可以直接使用预训练好的GPT-3,无需再进行细调或训练过程。这大大简化了使用流程,减少了计算和时间成本。
  2. 多样性和灵活性:由于不需要对模型进行修改,可以在同一个模型上处理多种任务,只需提供不同的上下文示例即可。
  3. 即时适应:模型能够通过提供的上下文快速适应新的任务或主题,展示出强大的通用性和适应能力。

这种上下文学习的能力来自于GPT-3庞大的训练数据和参数,使其在理解和生成文本方面有着卓越的表现。它可以通过少量示例(few shot)或提示(prompt)来学习新的任务,并在输入的上下文中生成合理的响应。

上下文学习的核心是语言模型能够延续观察到的模式。即一个有效的语言模型应该能够根据已经观察到的文本模式,延续这个模式并生成合理的序列。这种延续观察到的模式的能力是语言模型生成高质量文本的基础,尤其是在上下文学习中,模型通过提供的示例来掌握任务,并生成符合这些示例模式的输出。

在这里插入图片描述

  • 相关研究

Demystifying Prompts in Language Models via Perplexity Estimation

Calibrate Before Use: Improving Few-Shot Performance of Language Models

Holistic Evaluation of Language Models

Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

2.1. 零样本提示

零样本提示(Zero-shot Prompting)指的是在没有任何特定的训练样本或特定示例的情况下,通过提示模型(如GPT-3)执行特定的任务。这意味着模型不需要额外的训练数据或任务示例,就可以理解并尝试完成用户给出的任务指令。

零样本提示是一种能力,即在没有额外训练的情况下,通过给定一个清晰的提示或指令,模型能够完成特定任务。它不需要对特定任务进行专门的训练数据。模型通过预训练阶段学习了丰富的语言模式和知识,从而能够理解和执行各种自然语言任务。当接收到一个新的任务提示时,模型使用其预训练知识来推断并提供相应的答案或解决方案。

零样本提示的优点:

  • 灵活性高:可以处理多种不同类型的任务,而无需为每个任务单独收集和标注数据。
  • 成本低:减少了在特定任务上进行额外训练的数据需求和计算成本。

零样本提示的例子:

  • 翻译:输入提示“将以下句子翻译成法语:‘Hello, how are you?’”,模型直接给出翻译“Bonjour, comment ça va?”。
  • 问答:输入提示“谁是美国的第一任总统?”,模型能直接回答“乔治·华盛顿”。
  • 文本分类:输入提示“这是一个积极的评论还是消极的评论:‘这部电影非常棒!’”,模型可以回答“积极”。

2.2. 少样本提示

少样本提示(Few-shot Prompting)指的是通过提供少量适当的示例作为提示,指导语言模型(如GPT-3)执行特定任务的一种技术。它是一种介于零样本提示和监督学习(需要大量标注数据)之间的方法。少样本提示是指通过提供几个任务示例作为提示,引导语言模型完成对应任务。示例的数量通常很少,可能只有一到几个。换句话说,就是给模型提供少量的任务示例和任务描述,通过这些示例来告诉模型如何处理类似的输入。

为什么使用少样本提示:

  1. 数据效率:相比全监督学习,需要大量标注数据,少样本提示大大减少了数据需求。
  2. 快速适应:可以快速应用于新领域或新任务,不需要大量的数据收集和标注过程。
  3. 灵活性:模型可以利用少量示例迅速调整自身行为以满足特定任务需求。

少样本提示的挑战:

  1. 提示设计:如何设计有效的提示,即选择哪些少量的示例能最好地引导模型完成任务。
  2. 覆盖面:少量示例能否充分代表任务的广泛性和复杂性。

少样本提示的例子:

  1. 翻译:提供几对源语言和目标语言的句子对,提示模型翻译新的句子。
  2. 问答:示例包括一些问题及其对应答案,提示模型按照示例的方式回答新问题。
  3. 文本分类:输入包括几条带有分类标签的示例,如情感分析的正面和负面评论。提示模型根据这些示例对新输入进行分类。

研究表明,即使是错误的少样本示例,也比没有示例好。

2.3. 归纳头

归纳头(Induction Heads)是两个位于不同层的注意力头,它们协同工作来完成某种模式匹配或复制任务。第一个头的作用是复制信息,第一个注意力头(位于较早的层)会从前一个标记(token)中提取信息并复制到当前标记中。例如,如果当前标记是[B],那么这个头会从前一个标记[A]中复制信息到[B]中。第二个头的作用是关注前序信息,第二个注意力头(处于更高层)会关注那些在它之前出现的标记,而不是当前标记的内容。这个头会“回溯”之前的标记,试图根据之前的信息来确定接下来应该是什么标记。最后,协同工作模式完成,这两个头协同工作,可以让模型更加容易地完成特定的模式。例如,在序列…[A][B]…[A]中,由于第一个头复制了信息,而第二个头根据前面发生的情况来关注标记,这使得模型可以更准确地预测和完成[B]。例如,在文本生成任务中,如果有一部分输入是[A][B],随后再出现一个[A],模型通过这两个头的协同工作,很有可能会预测出下一个标记是[B],因为它识别到这种模式并进行了有效的复制和传播。

归纳头能让两层模型做到更多的事情,但它们与全尺寸Transformer的相关性尚不清楚,全尺寸Transformer有数百个注意力头协同工作,感应头似乎对一些复杂多层架构的显著行为做出了重大贡献。

在这些行为中,算术的能力得到彰显,因为模型只被训练来完成文本。例如,如果给出重复prompt:「问:48 加 76 等于多少?答:124;问:48 加 76 等于多少?A:___。一个强大的模型会得到正确的答案,并且在获得足够多的非重复prompt后,它就能正确回答它从未见过的算术问题。这种从上下文中明显学习新能力的现象称为上下文学习。

这种现象令人费解,因为从上下文中学习是不可能的。这是因为决定模型性能的参数仅在训练期间进行调整,而没有在模型处理输入上下文时进行调整。归纳头至少解决了部分难题。它们解释了上下文学习的简单、重复形式的可能性,同时提供了所需要的复制模型未经训练使用的新词的能力。

  • 相关研究

In-context Learning and Induction Heads

Transformer Circuits Thread

3. 对齐

GPT-3虽然在各大NLP任务以及文本生成的能力上惊艳,但是仍然还是会生成一些带有偏见的,不真实的,有害的造成负面社会影响的信息,而且并不按人类喜欢的表达方式去说话。OpenAI提出了一个概念对齐(Alignment),模型输出与人类真实意图对齐,符合人类偏好。InstructGPT的独特之处在于它经过了特定的训练,使其能够更好地理解和遵循用户的指令,从而提供更准确和有用的答案。

InstructGPT的目标:

  1. 有用性,有用的(helpful):能帮助用户解决问题。
  2. 真实性,诚实的(honest):不能捏造事实,不能误导用户。
  3. 无害性,无害的(harmless):不能对用户或环境造成物理、精神、社会层面的伤害。

以下是InstructGPT的一些关键特点:

  1. 指令微调:InstructGPT经过了所谓的指令微调(Instruction Tuning)训练,这意味着它不仅仅是根据大量文本进行预训练,还特别针对遵循用户指令的任务进行了优化。这使得它在执行具体任务时表现更佳。
  2. 人类反馈训练:为了增强模型对指令的理解和响应能力,InstructGPT利用了来自人类的反馈进行强化学习。通过人工评估模型的输出质量,模型逐渐调整其生成策略,提高了响应的相关性和准确性。

在这里插入图片描述

  • 相关研究
    • DeepMind Sparrow: Improving alignment of dialogue agents via targeted human judgements
    • Google LaMDA: LaMDA: Language Models for Dialog Applications

3.1. 指令微调

在自然语言处理领域,模型通常通过语言建模目标来训练,即在给定上下文(context)的情况下预测接下来会出现的词语。然而,在实际应用中,我们希望模型能够更好地处理特定任务,例如问答系统用户提出问题,系统给出相应的回答。为了实现这个目标,研究人员可以在原始语言模型的基础上,进行进一步的优化和微调。

语言模型目标:通常的训练目标是预测下一个词,这意味着模型学习了大量的语言特征和模式。

任务优化:具体的任务如问答系统,需要模型在上下文提示下生成一个具体的答案。

指令微调(Instruction Tuning)是对已经训练好的基础语言模型进行进一步优化,通过在多种任务数据上进行有监督的微调,使模型能够处理各种具体的自然语言处理任务。指令微调是一种方法,通过在从多个NLP任务中派生的数据上进行有监督的训练,将通用语言模型调整为能够执行特定任务的模型。

在这里插入图片描述

基础语言模型(如GPT-3、BERT等)通过大量的无监督文本数据进行预训练,主要是学习语言结构和语法。然而在实际应用中,我们需要模型能够执行更具体的任务,如问答、文本分类、翻译等。指令微调就是通过在特定任务数据上进行训练,让模型学会这些具体任务的处理方式。

在这里插入图片描述

  • 指令微调的优势

通过在多种任务数据上进行训练,模型可以学习到应对不同任务的通用特征,从而在新的任务上表现得更好。通过简单调整训练数据和目标任务,可以使同一个基础模型应用于不同的实际场景。微调使得模型能够更加精确地解决特定任务中的问题,从而提升模型的实际应用效果。

  • 指令微调的挑战

需要大量的标注数据来进行微调,以确保模型能够在各种任务上表现良好。微调过程需要大量的计算资源,尤其是在处理大规模模型时。虽然模型在多任务上训练,但在某些特定任务上的泛化能力仍然可能有限,需要不断更新和调整训练数据和方法。

  • 相关研究

Multitask Prompted Training Enables Zero-Shot Task Generalization

Scaling Instruction-Finetuned Language Models

3.2. 基于人类反馈的强化学习

基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)是一种结合强化学习和人类反馈,优化深度学习模型输出质量的方法。主要用于提高模型在生成任务(如对话系统、文本生成)上的表现。

RLHF 的主要目标是通过人类的反馈信号来优化模型,使其生成的输出更符合人类的期望和标准。这使得模型不仅可以基于统计规律生成文本,还可以生成更加自然、有用和合适的回答。

RLHF的步骤:

  1. 初步预训练:使用大规模无监督文本数据进行预训练,类似于标准语言模型的训练过程。目标是学习基本的语言结构和生成能力。
  2. 生成初始输出:预训练的模型生成初始答案(或输出)集合,这些答案可能是回答问题、继续对话或者是其他形式的文本生成。
  3. 人类反馈:人类对这些生成的答案进行评分和评价,反馈可以是直接的分数(如1到5星)或更详细的批评和建议。收集尽可能多的关于模型输出质量的反馈,从而为后续的强化学习步骤提供指导。
  4. 奖励模型训练:将人类的评分和反馈转换为奖励信号,训练一个奖励模型,它能基于生成的输出分配奖励分数。建立一个可以预测某个输出好坏的奖励机制。
  5. 强化学习优化:使用强化学习算法(如PPO, Proximal Policy Optimization)来进一步训练生成模型,使其生成的答案能够获得更高的奖励分数。模型生成新的答案,这些答案被奖励模型评估,得到奖励分数,并将这一分数反馈到生成模型中,以优化其生成策略。
RLHF

RLHF的优势:

  1. 提高输出质量:通过直接的人类反馈信号,模型生成的输出更贴近用户的需求和期望。
  2. 灵活性和适应性:可以根据不同任务或不同用户的需求动态调整模型表现。
  3. 增强用户满意度:生成更有意义和反应更符合实际情况的答案,从而提高用户的满意度。

RLHF的挑战:

  1. 反馈质量:需要大量高质量的人类反馈,这可能会涉及高昂的时间和人力成本。
  2. 复杂性:训练和使用奖励模型,以及使用强化学习算法来训练生成模型,增加了系统的复杂性。
  3. 标注一致性:人类反馈可能存在主观性和不一致性,这对训练奖励模型会构成挑战。
  • 相关研究

Training language models to follow instructions with human feedback

Alpaca: A Strong, Replicable Instruction-Following Model

3.3. 事实与幻觉

语言模型建模的是文本分布,而不是事实。因此,它们生成的内容不一定是事实。语言模型的目标是学习和生成符合训练数据分布的文本,而不是验证这个内容是否真实。因此,它们生成的文本可能看起来合乎逻辑和语法正确,但并不保证其真实性。

语言模型是在互联网数据上训练的。广为传播的谬误可能会在语言模型中被重现。它们的训练数据来源于互联网。互联网上的许多信息并不可靠或准确,甚至可能包含大量谣言和错误。因此,这些错误信息可能会被语言模型学习并重现。

语言模型可能无法存储所有的罕见事实,因此会对几种选项分配一个适当的概率。由于某些罕见事实在训练数据中出现的频率很低,语言模型可能没有足够的信息去正确记住或生成这些事实。因此,当被问及这些罕见事实时,模型可能会根据已经知道的情况给予几个选项一个大致的概率,而不是能准确回答。

  • 相关研究

Revisiting the Gold Standard: Grounding Summarization Evaluation with Robust Human Evaluation

WiCE: Real-World Entailment for Claims in Wikipedia

SummaC: Re-Visiting NLI-based Models for Inconsistency Detection in Summarization

FActScore: Fine-grained Atomic Evaluation of Factual Precision in Long Form Text Generation

RARR: Researching and Revising What Language Models Say, Using Language Models

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

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

相关文章

基于BERT微调+模板填充快速实现文本转DSL查询语句

前言 Text2SQL是指将自然语言转化为类SQL查询语句,使得用户的查询文本可以直接实现和数据库交互,本文介绍一种以BERT为基础模型,通过模板填充来实现的Text2SQL算法和产品化。 内容摘要 Text2SQL任务说明模板填充的思路条件列选择子模型搭建…

【免费Web系列】大家好 ,今天是Web课程的第二一天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工管理 1. 条件分页查询 1.1 概述 在页面原型中,我们可以看到在查询员工信息列表时,既需要根据条件动态查询,还需要对查询的结果进行分页处理。 那要完成这个页面…

【linux】应用程序访问百度时,操作系统内核网络接口日志

代码合入: 登录 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/commit/c639573cc7c4984913d4a89884347e5a30a51eac 启动操作系统运行dmesg的日志像这样: dmesg_log/2024_06_14_00_40_54.txt r77683962/linux-6.9.0 - Gitee.com 注意&#xf…

告别交叉编译 armbian小盒子 做RK3588开发

最近在做RK3588平台的开发 按照官方文档的说明 需要搭建交叉编译环境 然后在宿主机上做开发 使用交叉编译链 编译应用 其实蛮麻烦的 正好手头上有个arm64位的armbian小盒子 黑豹X2 信息如下 RK3588 也是64位的cpu 内存4G EMMC 32G 黑豹X2 用的 RK3566 也是瑞芯微…

后端常见问题解答-位运算实际场景讲解

位运算 在计算机存储的世界中,一切都是二进制的,位运算就是对二进制位进行操作的一种运算。位运算是计算机中的一种常见运算,可以用来提高性能和提升代码的可读性。 位运算有很多种,比如与、或、非、异或等,这些运算…

编程学到什么水平可以去接单呢?

关于编程要学到何种水平才可以去接单,这是一个需要认真思考的问题。 如果没有完整的项目经验,千万不要轻易地去承接外包项目。不要觉得仅仅因为自己能够编写一个计算器程序,就自以为有能力承接工程项目了。 要是没有拥有解决问题的清晰思路以…

springmvc 全局异常处理器配置的三种方式深入底层源码分析原理

文章目录 springmvc 全局异常处理器配置的三种方式&深入底层源码分析原理配置全局异常处理器的三种方式实现接口HandlerExceptionResolver并配置到WebMvcConfigurer注解式配置ExceptionHandlercontroller里方法上定义ExceptionHandler 深入源码分析进入DispatcherServlet执…

SpringBoot3 常用的第三方接口调用十种方式

环境:SpringBoot.3.3.0 简介 在项目中调用第三方接口是日常开发中非常常见的。调用方式的选择通常遵循公司既定的技术栈和架构规范,以确保项目的一致性和可维护性。无论是RESTful API调用、Feign声明式HTTP客户端、Apache HttpClient等调用方式&#x…

经典的带环链表问题(链表补充)

环形链表1 运用快慢指针的方法,fast ,slow从头节点出发,快指针走两步,慢指针走一步,若有环,快指针先进环,后续如果慢指针和快指针相遇,则链表带环。转换成了追击问题。 struct ListNode {int v…

重温react-01

创建react项目 // 第一步 npm install create-react-app -g // 第二步 create-react-app my-app目录介绍 my-app/README.md# 项目第三方依赖包node_modules/package.json# 一般用来存放静态依赖public/index.htmlfavicon.ico# 存放项目源代码,注意只有放在scr目录…

快速提升沟通能力:客服必备的话术技巧

在现在的这个互联网时代,各行业竞争日益激烈,而客服作为连接商家和消费者的桥梁,无疑是一个重要的岗位。可以说客服是一个极具挑战性的岗位,客服每天需要面对来自全国各地的客户,同时还要对不同地区、不同性格、不同需…

SQLServer 借助Navcate做定时备份的脚本

首先创建SQLServer链接,然后在Query标签种创建一个查询 查询内容如下 use ChengYuMES declare ls_time varchar(1000) declare ls_dbname varchar(1000) set ls_time convert(varchar, getdate(), 112) _ replace(convert(varchar, getdate(), 108), :, )-- 需…

LeetCode20.有效的括号

题目描述 分析 我们刚上来的思路可能是:找出这三种括号的个数 如果都是偶数 说明匹配 但是这里还有一个顺序问题 比如 " )( "这样是不匹配的! 所以这种思路不可取! 我们想 如果遇到左括号,把他读到一个顺序表中&#…

Redis应用:基于Redis实现排行榜、点赞、关注功能

文章目录 1. 环境准备2. 实现排行榜功能2.1 添加用户分数2.2 获取排行榜2.3 获取用户排名2.4 更新用户分数示例代码3. 实现点赞功能3.1 添加点赞3.2 获取点赞数3.3 检查用户是否点赞3.4 取消点赞示例代码4. 实现关注功能4.1 添加关注4.2 获取粉丝列表4.3 获取关注列表4.4 取消关…

【Pycharm】设置双击打开文件

概要 习惯真可怕。很多小伙伴用习惯了VsCode开发,或者其他一些开发工具,然后某些开发工具是单击目录文件就能打开预览的,而换到pycharm后,发现目录是双击才能打开预览,那么这个用起来就特别不习惯。 解决办法 只需一…

高清视频+AI算法,EasyCVR视频智能监控方案打造无死角吸烟行为检测

一、背景与意义 1、吸烟危害:吸烟不仅有害健康,而且在特定场所带来的安全隐患极大。据统计,全年火灾事故中有五分之一系抽烟引起,引发的人员伤亡和财产损失巨大。 2、政策与法规:为了保护公共安全,消除消…

解决方案︱视频孪生智慧高速解决方案

系统概述 在交通强国战略的指导下,我国政府高度重视以数字化为核心的智慧高速公路建设与发展。2023年9月,交通运输部印发了《交通运输部关于推进公路数字化转型加快智慧公路建设发展的意见》,强调到2035年,全面实现公路数字化转型…

java多线程概念

在Java多线程编程中有几个重要的概念,这些概念对于理解和编写正确的多线程应用程序至关重要: 1.线程(Thread): 线程是操作系统能够进行运算调度的最小单位,Java通过线程实现并发执行。 2.进程(Process&…

助力OTT大屏营销,酷开科技引领产业变革与创新

随着大屏电视产品的迭代,越来越多家庭以增换购等多种形式获得超高清、超大屏的智能电视,大屏的人均拥有量和渗透率进一步增加。在这种情况下,通过OTT应用为载体,将大量内容持续输送到大屏终端,从而形成了电视硬件普及与…

工控机与普通电脑的区别对于工业自动化应用至关重要

商用计算机和工业计算机之间的相似之处可能多于差异之处。工业电脑利用了消费技术领域的许多进步,但增加了工业应用所必需的软件、编程、确定性和连接性。 专业人士表示:“从增加内存到摩尔定律所描述的处理能力的指数级增长,工业控制必将受…