构建大语言模型的四个主要阶段

        大规模语言模型的发展历程虽然只有短短不到五年的时间,但是发展速度相当惊人,国内外有超过百种大模型相继发布。中国人民大学赵鑫教授团队在文献按照时间线给出 2019 年至 2023 年比较有影响力并且模型参数量超过 100 亿的大规模语言模型。大规模语言模型的发展可以粗略的分为如下三个阶段:基础模型、能力探索、突破发展。

       大语言模型构建通常包含以下四个主要阶段:预训练、有监督微调、奖励建模和强化学习,简要介绍各阶段使用的算法、数据、难点以及实践经验。

  • 预训练
       需要利用包含数千亿甚至数万亿 单词的训练数据,并借助由数千块高性能 GPU 和高速网络组成的超级计算机,花费数十天完成深 度神经网络参数的训练。这一阶段的核心难点在于如何构建训练数据以及如何高效地进行分布式训练。

       预训练阶段是大规模语言模型训练的关键步骤之一,特别是对于GPT(Generative Pre-training Transformer)系列模型而言。在预训练阶段,模型通过自我监督学习(Self-supervised Learning)的方式,利用海量无标签的互联网文本数据集进行训练。具体来说,GPT模型采用了自回归语言模型的形式,其核心任务是根据给定的文本序列预测下一个可能出现的单词。

       模型通过Transformer架构的多层自注意力机制学习到文本序列中词汇之间的深层上下文依赖关系。在训练过程中,模型试图最小化预测下一个单词的交叉熵损失,从而逐步建立起对自然语言规律的深刻理解,其中包括词汇搭配、语法结构、短语和句子的意义等。

       通过预训练,模型能够在大规模无标注数据上习得通用的语言表示,这些表示可以被进一步应用于多种不同的自然语言处理任务中,只需要在预训练模型的基础上进行微调,就可以在特定任务上达到相当出色的性能。这极大地降低了对大量有标注数据的依赖,并为多种下游任务提供了强有力的模型基础。

  • 有监督微调阶段
       利用少量高质量的数据集,其中包含用户输入的提示词( Prompt )和对应的理想输出结果。提示词可以是问题、闲聊对话、任务指令等多种形式和任务。这个阶段是从语言模型向对话模型转变的关键,其核心难点在于如何构建训练数据,包括训练数据内部多个任务之 间的关系、训练数据与预训练之间的关系以及训练数据的规模。

       有监督微调是预训练模型适应特定任务的关键步骤。在完成了大规模无标注数据上的预训练后,模型已经学习到了丰富的语言结构和模式。然而,为了针对性地解决特定的自然语言处理任务(如问答系统、文本分类、机器翻译等),我们需要对预训练模型进行微调(Fine-tuning)。

       微调过程中,我们会使用特定任务的有标签数据集,重新训练模型的部分或全部权重,使其能够针对特定任务进行优化。这意味着模型会在原有的预训练基础上,针对新的任务目标调整其内部参数,以便更好地理解和处理任务特有的特征和规律。

       在微调阶段,模型的输入和输出会与特定任务一致。例如,在文本分类任务中,模型将学习如何根据输入文本预测相应的类别标签;而在问答系统任务中,模型则将学会根据提供的背景文本生成恰当的答案。

       通过这种方法,预训练模型能够快速适应新任务,通常比从零开始训练模型需要更少的数据和计算资源,同时也能够取得更好的性能表现。这种预训练-微调范式已经成为现代自然语言处理中广泛采用的技术手段。

  • 奖励建模阶段
       奖励建模阶段 的目标是构建一个文本质量对比模型,用于对于同一个提示词,对有监督微调模型给出的多个不同输出结果进行质量排序。这一阶段的核心难点在于如何限定奖励模型的应用范围以及如何构建训练数据。

       奖励建模(Reward Modeling)是一种强化学习中的技术,尽管像GPT这样的大规模预训练语言模型通常基于自监督学习或最大似然估计进行训练,但在某些情况下,奖励建模可以作为一种补充手段,帮助进一步优化模型的行为,特别是当涉及到道德、伦理或者更加符合人类价值判断的输出时。

       在奖励建模框架下,首先定义一个“奖励函数”,该函数量化了模型行为的好坏程度,即模型输出越符合预期的目标或人类偏好,则获得的奖励越高。然后,通过训练一个辅助模型(也称为奖励模型)来预测这些奖励信号,辅助模型通常是基于少量人工标注数据或者其他方式表达的人类偏好。

       在实际应用中,奖励建模可能被用来指导预训练语言模型的微调过程,使模型在生成文本时不仅追求语法和语义的正确性,还能尽量遵循预设的价值观或社会规范。这一过程可能包括让模型根据所学到的奖励信号调整其策略,生成更加符合期望的结果。通过这种方式,即使原始训练并未采用强化学习,奖励建模也可以间接引入强化学习的理念来改进模型的表现。

  • 强化学习阶段
       根据数十万提示词,利用前一阶段训练的奖励模型,对有监督微调模型对用户提示词补全结果
的质量进行评估,并与语言模型建模目标综合得到更好的效果。这一阶段的难点在于解决强化学
习方法稳定性不高、超参数众多以及模型收敛困难等问题。

       强化学习(Reinforcement Learning,RL)确实是一个强有力的机器学习框架,尤其适用于那些智能体需要通过与环境交互来学习最优行为的场景。在自然语言处理(NLP)领域,强化学习应用于对话模型的训练时,模型扮演的角色就是一个智能体,这个智能体会在对话交互的环境中采取行动(例如,生成回应),然后根据接收到的外部反馈(即奖励信号)来调整它的策略。

       在对话系统的上下文中,强化学习允许模型通过与用户或其他评价机制交互,根据用户的满意度、对话连贯性、信息准确性等因素获取即时或延迟的奖励。比如,如果模型生成的回答得到了用户的积极反馈或实现了预定的目标(如解答了问题或完成了任务),那么模型会得到正向奖励;反之,若回答不恰当或不符合预期,则可能得到负向奖励或没有奖励。

      一些高级应用场景中,强化学习与语言模型相结合的技术已经发展到了更为精细的层次,如使用人类反馈强化学习(Human Feedback Reinforcement Learning, RLHF),这种技术可以让语言模型更有效地吸收和理解人类偏好,并据此优化其生成的文本内容和风格。例如,OpenAI的ChatGPT就是通过RLHF技术进行了后期微调,以便更好地实现与人类的友好交互和遵循社会规范。

1. 预训练(Pre-training)

算法

  • 在预训练阶段,最常用的算法是基于Transformer架构的自注意力机制,如BERT、GPT系列、XLNet、RoBERTa等模型。这些模型通过无监督学习的方法,在大规模未标注文本数据上进行训练,学习语言的基本结构和模式。

数据

  • 使用数十亿乃至数百亿字节级别的大规模语料库,包括网页抓取数据、书籍、百科全书、论坛讨论等各类文本数据。

难点

  • 数据清洗和预处理:去除噪声数据,确保训练数据的质量和多样性。
  • 计算资源需求:训练超大规模模型需要极其庞大的计算资源,包括GPU集群或TPU阵列。
  • 学习效率和泛化能力:如何设计有效的预训练任务(如掩码语言模型、自回归语言模型等)以提高模型学习质量和泛化性能。

实践经验

  • BERT使用双向Transformer编码器结构,并引入了掩码语言模型(Masked Language Modeling, MLM)和下一句预测(Next Sentence Prediction, NSP)任务进行预训练。
  • GPT系列模型使用自回归Transformer解码器,通过预测下一个词语的方式进行预训练。

2. 有监督微调(Supervised Fine-tuning)

算法

  • 在预训练模型的基础上,针对特定的下游任务(如文本分类、问答、命名实体识别等),在带标签的小规模任务数据集上进行有监督微调。

数据

  • 微调阶段使用的数据集通常是有标注的任务特异性数据,如GLUE、SuperGLUE、SQuAD等任务数据集。

难点

  • 过拟合:由于预训练模型参数量庞大,如何在有限的标注数据上进行有效微调而不至于过拟合是一个挑战。
  • 微调策略:如何选择合适的微调层、冻结部分层、调整学习率等因素以优化微调效果。

实践经验

  • 微调时通常会对预训练模型的顶部层进行训练,同时调整模型整体的学习率,以充分利用预训练阶段学到的通用知识。

3. 奖励建模(Reinforcement Learning)

算法

  • 在某些情况下,模型的训练可以通过强化学习方式进行,模型根据所采取的动作(生成文本等)得到环境反馈(奖励或惩罚),进而调整策略。

数据

  • 不再依赖于明确的标签,而是根据模型生成的文本内容与预期目标的匹配程度或其他相关指标给予奖励信号。

难点

  • 设计合理的奖励函数:确保奖励信号能够正确反映生成文本的质量和目标任务的要求。
  • 稳定性与收敛性:强化学习过程可能较不稳定,需要精细调整训练策略以保证收敛到最优解。

实践经验

  • OpenAI的GPT-3在一些生成任务上采用了基于奖励的微调(RLHF,Reinforcement Learning with Human Feedback),通过人类评估员对模型生成结果的打分来调整模型策略。

4. 强化学习(Reinforcement Learning)

算法

  • 强化学习应用于语言模型时,通常涉及到自动生成任务,模型通过不断试错并根据外部环境的反馈(例如人类用户的评价或内置评估指标)调整自身行为。

数据

  • 可能是与环境交互产生的序列数据,或者是用户对模型生成结果的反馈数据。

难点

  • 采样效率:强化学习往往需要大量交互以学习最优策略,而在自然语言生成场景下,采样和反馈可能十分耗时和昂贵。
  • 环境模拟:如果不能直接与真实世界交互,可能需要构建模拟环境来优化模型。

实践经验

  • 一些研究尝试将强化学习用于对话系统,通过与模拟用户交互,使模型学会更加流畅和有意义的对话策略。在实践中,通常会结合有监督学习和强化学习,以最大化模型性能。

       总之,构建大语言模型是一个循序渐进的过程,从大规模预训练开始,逐步通过有监督微调、奖励建模和强化学习等手段,让模型适应更具体和复杂的任务需求。在这个过程中,如何优化算法、合理利用数据、克服难点以及总结最佳实践,都是推动模型性能持续提升的关键要素。

        根据 OpenAI 联合创始人 Andrej Karpathy 在微软 Build 2023 大会上所公开的信息,OpenAI 所使用的大规模语言模型构建流程主要包含四个阶段:预训练、有监督微调、奖励建模、强化学习。这四个阶段都需要不同规模数据集合、不同类型的算法,产出不同类型的模型,所需要的资源也有非常大的差别。

以下是每个阶段的详细描述:

  1. 预训练 (Pre-training):

    • 数据集: 预训练阶段通常使用大规模无标注文本数据集,例如Wikipedia、Common Crawl、BookCorpus等。这些数据集包含了海量未标记的自然语言文本,用于训练模型捕捉语言的基本规律和结构。
    • 算法: 常见的预训练算法包括自注意力机制为基础的Transformer架构下的BERT(Bidirectional Encoder Representations from Transformers)、GPT(Generative Pre-training Transformer)系列模型等。这些模型首先通过掩码语言模型(MLM)或自回归语言模型(ARLM)任务进行预训练,使模型学习通用的语言表示。
    • 模型: 输出的是一个通用的语言模型,如BERT、GPT-3等,它们能生成或预测缺失的词汇,形成对语言深层次理解的基础模型。
    • 资源: 预训练需要巨大的计算资源,包括GPU集群和大量的存储空间,训练时间也可能长达数周甚至数月。
  2. 有监督微调 (Supervised Fine-tuning):

    • 数据集: 微调阶段使用的是带有标签的小规模或者特定领域的数据集,如GLUE、SuperGLUE、SQuAD等基准测试任务的数据集,涵盖文本分类、问答、语义相似度等多种任务类型。
    • 算法: 在预训练模型的基础上,通过调整模型权重并对特定任务进行有监督训练,例如添加额外的分类层,然后针对具体任务目标优化模型参数。
    • 模型: 经过微调后的模型具有针对性,能够解决具体的下游任务,如情感分析模型、命名实体识别模型等。
    • 资源: 虽然相比预训练所需资源较少,但仍需要一定量的GPU资源来进行快速有效的训练,同时对于某些复杂任务可能需要较长的训练时间。
  3. 奖励建模 (Reward Modeling):

    • 数据集: 这个阶段的数据集是由人类评估员给出的评价或奖励信号构成,反映模型在某个任务上的表现好坏。
    • 算法: 奖励建模常用于强化学习框架中,通过模仿学习或RLHF(Reinforcement Learning from Human Feedback)等方法,将来自人类反馈的奖励信号转化为模型更新的信号。
    • 模型: 通过这种方式微调的模型能够在遵循人类价值观的前提下提高决策质量和输出质量,如ChatGPT中的安全性和有用性就通过奖励建模得以增强。
    • 资源: 同样需要GPU资源进行训练,另外还需要人力投入收集和整理高质量的人类反馈数据。
  4. 强化学习 (Reinforcement Learning):

    • 数据集: 强化学习环境可以是模拟环境产生的数据,也可以是实际操作过程中的实时反馈数据,模型通过与环境互动获得经验样本。
    • 算法: Q-learning、Policy Gradient、Actor-Critic等算法被用来训练模型如何在给定环境中采取最优行动以最大化累积奖励。
    • 模型: 强化学习训练出的模型可以直接应用于游戏、机器人导航、对话系统等场景,模型具备动态适应环境变化的能力。
    • 资源: 强化学习训练过程中往往需要大量的尝试和探索,因此需要大量计算资源,尤其是对于复杂环境和高维动作空间的任务。此外,构建模拟环境或获取真实世界的即时反馈也是一项重要资源投入。

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

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

相关文章

LangFlow——一款可轻松实验和原型化 LangChain流水线的AI项目

LangFlow——一款可轻松实验和原型化 LangChain流水线的AI项目。 前言 在人工智能兴起的当下,AI正在重塑着很多行业。今天介绍的是一款近期登上github热门的一款可轻松实验和原型化 LangChain[1] 流水线的AI项目—LangFlow。 Flowise——通过拖放界面构建定制的LLM…

Flask学习笔记

不论POST请求还是GET请求都支持在 URL 中添加变量&#xff0c;可以选择性的加上一个转换器&#xff0c;为变量指定数据类型。 history_alarm.route(/test/<int:post_id>, methods[POST]) def test(post_id):print(f"参数类型为&#xff1a;{type(post_id)}")i…

VUE3中的组件传值

一、父传子(props) 在子组件中可以使用defineProps接收父组件向子组件的传值 父组件fatherPage.vue&#xff1a; <template><div class"father"><button click"a a 1">按钮</button><childPage :a"a" /><…

Nginx 隐藏版本信息和logo

1.隐藏版本信息 http {### 隐藏版本号 server_tokens off; } 2.隐藏图标 2.1 cd nginx 安装的路径 cd/XXXX/nginx-1.2.0 2.2 编辑文件 vim src/core/nginx.h 修改define nginx_ver 中的内容 vim src/http/ngx_http_special_response.c 修改 u_char ngx_http_error_tail[]…

java 基础(核心知识搭配代码)

前言 java的学习分为了上部分以及下部分进行学习&#xff0c;上部分就是对于java的基础知识&#xff0c;面向对象上&#xff0c;面向对象下&#xff0c;异常操作&#xff0c;javaApi&#xff1b;下部主要是集合&#xff0c;泛型&#xff0c;反射&#xff0c;IO流&#xff0c;J…

Grid-Based Continuous Normal Representation for Anomaly Detection 论文阅读

Grid-Based Continuous Normal Representation for Anomaly Detection 论文阅读 摘要简介方法3.1 Normal Representation3.2 Feature Refinement3.3 Training and Inference 4 实验结果5 总结 文章信息&#xff1a; 原文链接&#xff1a;https://arxiv.org/abs/2402.18293 源码…

【MIT 6.S081】2020, 实验记录(6),Lab: Copy-on-Write Fork

目录 Task: Implement copy-on writestep 1&#xff1a;对内存块进行引用计数step 2&#xff1a;uvmcopy 实现 fork 时将 parent 的物理页映射到 child 中step 3&#xff1a;在 usertrap 中增加对 page fault 的处理执行测试 官方说明&#xff1a;Lab: Copy-on-Write Fork for …

C++进阶-- map和set

关联式容器 在前面&#xff0c;我们所学的vector、list、deque&#xff0c;这些都是序列容器&#xff0c;也就是底层为线性序列的数据结构。 而关联式容器是C标准库中的一种类别&#xff0c;用于存储键值对&#xff08;key-value pair&#xff09;&#xff0c;关联式容器中的元…

vxe-table编辑单元格动态插槽slot的使用

业务场景&#xff1a;表格中只有特定某一行的的单元格可以编辑&#xff0c;列很多&#xff0c;为每个列写个插槽要写很多重复代码&#xff0c;所以这里使用动态插槽&#xff0c;简化代码量。显示编辑图标&#xff0c;点击编辑图标隐藏。失去焦点保存调后台接口。 解决办法&…

十行代码开发一个AI应用

Semantic Kernal 简介 Semantic Kernel (SK) is a lightweight SDK that lets you easily mix conventional programming languages with the latest in Large Language Model (LLM) AI "prompts" with templating, chaining, and planning capabilities out-of-the-…

关于vue中关于eslint报错的问题

1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题&#xff0c; 解决思路&#xff1a; 在项目根目录下新建一个.prettierrc.json文件 { “tabWidth”: 2,“useTabs”: false,“singleQuote”: true,“semi”: false} 2 关于报错代码的时候 出现尾随逗号报错…

Zabbix 系统告警“More than 75% used in the configuration cache”处理办法

Zabbix系统报错提示 Zabbix 系统告警“More than 75% used in the configuration cache”&#xff0c;看了一下意思是可用的配置缓存超过75%。 修改缓存大小 vim /etc/zabbix/zabbix_server.confesc : /CacheSize 找到配置 将64M改大一点&#xff0c;保存退出。 重启zabbix…

【MySQL】数据库中常用的函数

目录 聚合函数COUNT()函数的多种用法COUNT(*)COUNT(主键)COUNT(1)COUNT(常量)COUNT(非主键)COUNT(distinct(字段)) COUNT()函数小结 字符函数length(str)函数&#xff1a;获取参数值的字节个数concat(str1,str2,...)函数&#xff1a;字符串拼接upper(str)、lower(str)函数:大小…

Linux高负载排查最佳实践

在Linux系统中&#xff0c;经常会因为负载过高导致各种性能问题。那么如何进行排查&#xff0c;其实是有迹可循&#xff0c;而且模式固定。 本次就来分享一下&#xff0c;CPU占用过高、磁盘IO占用过高的排查方法。 还是那句话&#xff0c;以最佳实践入手&#xff0c;真传一句话…

数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第二、三章 关系数据库和标准语言SQL2.1 关系2…

JVM原理-基础篇

Java虚拟机&#xff08;JVM, Java Virtual Machine&#xff09;是运行Java应用程序的核心组件&#xff0c;它是一个抽象化的计算机系统模型&#xff0c;为Java字节码提供运行环境。JVM的主要功能包括&#xff1a;类加载机制、内存管理、垃圾回收、指令解释与执行、异常处理与安…

虚拟机内存不够用了?全流程操作Look一下?

虚拟机信息&#xff1a;操作系统&#xff1a;CentOS Linux 7 (Core)&#xff0c;用的是VMware Workstation 16 Pro 版本16.2.3 build-19376536&#xff1b;我的主机 Windows 10 Education, 64-bit (Build 22000.1817) 10.0.22000 前言&#xff1a;虚拟机用久了就会出现内存不足…

Rocky Linux 安装部署 Zabbix 6.4

一、Zabbix的简介 Zabbix是一种开源的企业级监控解决方案&#xff0c;用于实时监测服务器、网络设备和应用程序的性能和可用性。它提供了强大的数据收集、处理和可视化功能&#xff0c;同时支持事件触发、报警通知和自动化任务等功能。Zabbix易于安装和配置&#xff0c;支持跨平…

【前端素材】推荐优质后台管理系统网页Hyper平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理和控制网站、应用程序或系统的管理界面。它通常被设计用来让网站或应用程序的管理员或运营人员管理内容、用户、数据以及其他相关功能。后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;通常由管理员使…

【AIGC】OpenAI推出王炸级模型sora,颠覆AI视频行业(2024)

对于OpenAI推出的Sora模型&#xff0c;我们可以进一步探讨其可能的技术细节、潜在应用以及对AI视频行业的影响。 点击以下任一云产品链接&#xff0c;跳转后登录&#xff0c;自动享有所有云产品优惠权益&#xff1a; 经过笔者亲测&#xff0c;强烈推荐腾讯云轻量应用服务器作…