1. 从GPT-1到ChatGPT一条技术演进的清晰脉络如果你在2023年问我过去一年最让我感到“小丑竟是我自己”的技术趋势是什么我会毫不犹豫地说是大语言模型。作为一个长期在自然语言处理领域摸爬滚打的人我曾一度认为单纯依靠海量数据和庞大参数堆砌出来的生成模型更像是一种对“暴力美学”的极致追求离真正的智能还有距离。但ChatGPT的出现以及其后GPT-4等模型的持续突破彻底改变了我的看法。这不仅仅是学术圈的狂欢它已经实实在在地渗透到了工业界的每一个角落甚至开始重塑普通人的工作流和创造力工具链。这股浪潮并非凭空而来它背后是一条由OpenAI等机构用一篇篇里程碑式论文铺就的、清晰可见的技术演进之路。要真正理解ChatGPT为何能如此“智能”我们不能只看最终那个会对话的界面而必须回溯其技术谱系。这条脉络的起点可以追溯到那个在BERT光芒下略显低调却奠定了至关重要基石的模型——GPT-1。今天我们就抛开那些浮于表面的惊叹深入这些经典论文的肌理看看ChatGPT的“朋友们”是如何一步步走来以及我们从中能学到什么实实在在的工程与算法经验。2. 奠基GPT-1与预训练-微调范式的确立2.1 核心动机与时代背景时间回到2018年当时的NLP领域正处在从传统特征工程向深度学习全面转型的后期。Word2Vec、GloVe等词向量技术让模型获得了更好的词义表示但如何让模型理解更长的上下文和更复杂的句法结构仍是悬而未决的问题。同时有监督任务面临一个根本性瓶颈高质量、大规模的标注数据获取成本极高严重限制了模型性能的上限。GPT-1论文《Improving Language Understanding by Generative Pre-Training》的核心动机正在于此能否利用海量的、无标注的文本数据先让模型学会“语言”本身再通过少量标注数据让它快速适应特定任务这个想法并非GPT-1首创但它是早期成功将Transformer架构的Decoder部分应用于此范式并取得显著效果的工作之一。它的目标很明确构建一个通用的语言理解模型骨架通过预训练获得强大的语言表征能力再通过下游任务的微调实现“一处预训练多处微调”的高效迁移。2.2 模型架构与训练方法解析GPT-1的方案在今天看来非常清晰和经典但其设计选择却影响深远。模型结构它摒弃了Transformer完整的Encoder-Decoder结构只采用了Transformer的Decoder部分。为什么是Decoder因为它的预训练目标是标准的自回归语言模型给定前文预测下一个最可能的词token。Decoder中的掩码自注意力机制Masked Self-Attention完美适配了这一目标——在预测当前位置时它只能看到之前的位置信息无法“偷看”未来的词这保证了生成过程的因果性。训练方法分为两步无监督预训练在大规模无标注文本语料上最大化一个简单的似然函数。具体来说给定一个token序列U {u1, u2, ..., un}模型的目标是最大化P(ui | u1, ..., ui-1)。模型通过多层Transformer Decoder块将输入序列编码为隐藏向量最后通过一个线性层和Softmax来预测下一个词的分布。有监督微调在预训练好的模型基础上针对具体的下游任务如文本分类、自然语言推理、语义相似度等进行微调。这里有一个关键技巧如何将不同格式的下游任务输入统一到预训练模型的框架中GPT-1的做法是引入特殊的任务相关标记Token例如在文本分类任务中在输入文本前后加上[Start]和[Extract]标记然后将最后一个标记通常是[Extract]对应的Transformer输出向量接入一个新增的任务特定线性分类层。损失函数则结合了任务本身的监督损失和预训练的语言模型损失作者发现这种联合优化能进一步提升泛化能力。实操心得这种“预训练任务特定微调”的范式后来成为了整个NLP领域的基础玩法。GPT-1的成功验证了Transformer Decoder在生成式预训练上的有效性也为后续模型规模的扩展铺平了道路。但当时它的风头很快被同时期谷歌提出的BERT基于Transformer Encoder所掩盖因为BERT在多项理解型任务上取得了更惊艳的成绩。这迫使OpenAI思考另一条路。3. 转向GPT-2与Zero-Shot学习的野心3.1 新动机逃离微调的“数据依赖”GPT-1之后BERT横空出世在GLUE等榜单上大杀四方。OpenAI发现在相同的“预训练-微调”赛道上即使增大模型参数GPT也难以匹敌BERT。这促使团队进行了一次关键的思路转变如果微调需要针对每个任务收集标注数据那模型永远无法做到真正的通用和灵活。人类的智能往往只需要几个例子甚至一个指令就能举一反三。于是GPT-2论文《Language Models are Unsupervised Multitask Learners》提出了一个大胆的设想能否训练一个模型不经过任何任务特定的微调仅通过阅读任务描述Prompt就直接完成任务这就是Zero-Shot Learning的野心。其核心思想是将所有NLP任务都统一建模为条件生成问题P(output | input, task)。这里的task不是隐含的参数而是以自然语言的形式作为输入的一部分明确告诉模型。3.2 实现Zero-Shot的关键数据与PromptGPT-2的网络结构相比GPT-1没有本质变化依然是Transformer Decoder。实现Zero-Shot能力的关键在于训练数据和输入格式。数据策略的升级为了让模型学会理解并执行各种任务它必须“见过”足够多、足够丰富的任务描述和对应输出的例子。GPT-2放弃了之前相对较小的BooksCorpus数据集转向构建一个规模巨大且质量更高的网页文本数据集——WebText。其数据收集逻辑非常巧妙他们从Reddit一个社交新闻聚合网站上抓取那些获得了至少3个“karma”类似点赞的外链文章。这个筛选逻辑基于一个假设被社区用户认可并分享的内容更有可能是高质量、有趣、信息丰富的。经过清洗和去重最终得到了超过800万份文档约40GB的文本数据。这种对数据质量和多样性的追求是GPT-2能实现Zero-Shot的基础。Prompting的早期实践在训练时模型会接触到大量自然存在的、带有任务指示性质的文本。例如一个网页可能包含“翻译成英文 ‘Hola, mundo’”后面跟着“Hello, world”。模型在学习预测下一个词的过程中就潜移默化地学会了“当看到‘翻译成英文’这样的提示时后面应该生成对应的英文翻译”。在推理时用户只需以同样的自然语言格式给出指令如“请总结以下文章...”模型就能基于学习到的模式生成答案。3.3 规模效应的初现与启示GPT-2训练了多个规模的模型最大的达到了15亿参数。实验结果清晰地展示了一个趋势模型越大在Zero-Shot任务上的表现就越好。更重要的是即使在最大的模型上在验证集上的损失困惑度仍未收敛意味着如果继续增加模型规模或数据量性能还有提升空间。这个发现至关重要它直接指向了后续GPT-3的“大力出奇迹”路线。注意事项GPT-2的Zero-Shot虽然概念新颖但在许多复杂任务上的实际效果仍远不及有监督的SOTA模型。它更像是一个重要的概念验证证明了通过扩大模型容量和高质量数据语言模型可以内化一部分任务执行能力。然而其输出不可控、容易生成有害或有偏见内容的问题也开始显现为后续的“对齐”研究埋下了伏笔。4. 突破GPT-3与In-Context Learning的威力4.1 从Zero-Shot到Few-Shot上下文学习如果说GPT-2证明了“大模型”的潜力方向那么GPT-3论文《Language Models are Few-Shot Learners》就是对这个方向的全力冲刺。它的核心创新点并非全新的模型架构而是将规模推向了前所未有的高度1750亿参数并系统性地探索和命名了In-Context Learning。GPT-3明确区分了三种评估模式Zero-Shot只给出任务指令不给例子。One-Shot给出任务指令和一个例子。Few-Shot给出任务指令和少量通常为10-100个例子。关键在于这些例子只是作为上下文Context提供给模型在推理过程中模型的参数不会发生任何更新即不进行梯度下降。模型仅仅依靠其庞大的参数中存储的知识和模式识别能力从上下文中“领悟”到任务该怎么做然后进行生成。这更贴近人类的学习方式我给你看几个示范你就能照猫画虎。4.2 工程上的巨大挑战与解决方案训练一个1750亿参数的模型是前所未有的工程壮举。GPT-3论文中花了相当篇幅描述其工程实践数据混合使用了经过过滤的Common Crawl数据集4100亿token以及多个高质量数据集如WebText2、维基百科、书籍等并按不同比例进行混合采样以确保数据多样性和质量。模型并行如此巨大的模型无法装入单张GPU甚至单个服务器的内存。OpenAI与微软合作采用了复杂的模型并行将模型层拆分到不同设备、数据并行不同数据批次在不同设备组上和流水线并行将计算过程分段流水化策略。训练稳定性大模型训练极易不稳定。GPT-3采用了诸如梯度裁剪、精心的学习率预热与衰减策略以及动态调整批次大小根据梯度噪声规模等技术来确保训练过程平稳。4.3 效果、局限与影响GPT-3在众多Few-Shot任务上取得了惊人效果尤其在文本生成、创作、编程代码补全等方面其流畅度和连贯性令人印象深刻。它证明了当模型规模突破某个临界点后会涌现出小模型不具备的复杂推理和任务泛化能力。然而GPT-3也存在明显问题不可控性它仍然会生成事实错误、带有偏见或有害的内容。“鹦鹉学舌”其推理能力更多是基于模式的模仿和记忆而非真正的逻辑推理。成本高昂训练和部署的成本极高将绝大多数研究机构拒之门外。GPT-3的成功与缺陷共同指明了下一个关键方向如何驾驭这个强大的“野兽”让它更安全、更可靠、更符合人类的意图这直接催生了后续的Codex和InstructGPT。5. 对齐InstructGPT与基于人类反馈的强化学习5.1 从“能力强大”到“有用、诚实、无害”GPT-3能力虽强但就像一个知识渊博却不懂分寸的孩子它不知道什么时候该说话该说什么话以及如何以用户期望的方式回答。用户想要的是一个能理解指令、提供有帮助且安全信息的助手。这个让模型行为与人类价值观和意图保持一致的过程被称为对齐。InstructGPT论文《Training language models to follow instructions with human feedback》的核心目标就是解决对齐问题。其方法论RLHF成为了ChatGPT技术的基石主要分为三步监督微调首先收集一批由人类标注员编写的“指令-期望回答”对。用这些数据对一个预训练的GPT-3模型进行有监督微调得到一个初始的SFT模型。这个模型初步学会了遵循指令的格式。奖励模型训练然后让SFT模型针对更多的指令生成多个不同的回答。标注员对这些回答进行排序指出哪个更好。利用这些排序数据训练一个奖励模型。这个RM模型学习的是人类的偏好输入一个指令和回答输出一个标量分数代表回答的质量。强化学习微调最后将SFT模型作为策略RM模型作为奖励函数使用近端策略优化等强化学习算法对SFT模型进行进一步优化。模型通过不断生成回答、获得RM评分、调整自身参数来学习生成更高分即更符合人类偏好的回答。第二步和第三步可以迭代进行用优化后的模型生成新的回答供标注员排序从而训练出更好的RM再进一步优化策略模型。5.2 数据与标注RLHF成功的关键RLHF的成功极度依赖于高质量的数据和严谨的标注流程InstructGPT论文在这方面提供了宝贵的经验数据来源多样性指令数据不仅来自标注员编写也来自真实的OpenAI API用户请求经过去隐私处理确保了指令分布的广泛性。标注员筛选与培训标注员需要经过测试和培训以确保他们能准确理解用户意图、识别有害内容并保持标注的一致性。论文甚至预留了部分“测试标注员”其数据不参与训练用于评估模型对未见过的标注员风格的泛化能力。目标权衡标注指南需要平衡“有帮助性”、“真实性”和“无害性”。有时这些目标会冲突例如一个完全无害的模型可能对所有问题都回答“我不知道”这显然没有帮助需要在训练中精心设计损失函数和奖励信号来权衡。5.3 效果与“对齐税”经过RLHF训练的InstructGPT模型在遵循指令和生成高质量、无害内容方面显著优于原始的GPT-3。人类评估者明显更偏好InstructGPT的输出。但RLHF也带来了一个副作用被称为“对齐税”模型在为了对齐人类偏好而优化的过程中可能会在某些传统的、客观的NLP基准任务如标准问答、阅读理解上性能下降。为了解决这个问题OpenAI在强化学习的目标函数中加入了预训练损失项让模型在优化人类偏好的同时不至于忘记原有的语言建模能力。实操心得InstructGPT的工作表明让大模型变得“好用”不仅仅是一个算法问题更是一个复杂的人机交互系统工程。它涉及数据收集、标注体系设计、奖励函数塑造、多目标优化等一系列环节。这也解释了为什么ChatGPT的体验如此不同——它的背后是一套精心设计的、以人类反馈为核心的持续迭代系统。6. 集成与涌现ChatGPT的技术融合OpenAI并未单独发表ChatGPT的论文仅通过博客文章透露了其基本方法它本质上采用了与InstructGPT相同的RLHF技术栈但关键区别在于使用了对话形式的数据进行微调。这意味着ChatGPT的训练数据包含了多轮对话的上下文。模型不仅要学习遵循单条指令还要学习在持续的对话中保持连贯性、记住上下文信息、以及处理指代、省略等对话特有的现象。它将InstructGPT的指令遵循能力与对话建模能力相结合最终产生了令人惊艳的交互体验。从GPT-1到ChatGPT我们看到了一条清晰的技术演进路径从奠定基础的生成式预训练GPT-1到探索无监督多任务学习GPT-2再到依靠规模实现上下文学习GPT-3最后通过人类反馈强化学习完成意图对齐InstructGPT/ChatGPT。每一步都建立在前一步的基础上解决了前一步的核心痛点。ChatGPT本身可能没有提出全新的算法但它将数据、规模、工程和对齐技术以正确的方式融合在了一起最终实现了从“技术原型”到“现象级产品”的跨越。理解这条脉络不仅能让我们看清ChatGPT从何而来更能为我们思考大语言模型的未来发展方向提供坚实的坐标系。在接下来的内容中我们将视角转向开源社区和更多样的模型架构看看在这股浪潮中还有哪些重要的“朋友们”做出了不可忽视的贡献。
从GPT-1到ChatGPT:大语言模型技术演进与工程实践全解析
1. 从GPT-1到ChatGPT一条技术演进的清晰脉络如果你在2023年问我过去一年最让我感到“小丑竟是我自己”的技术趋势是什么我会毫不犹豫地说是大语言模型。作为一个长期在自然语言处理领域摸爬滚打的人我曾一度认为单纯依靠海量数据和庞大参数堆砌出来的生成模型更像是一种对“暴力美学”的极致追求离真正的智能还有距离。但ChatGPT的出现以及其后GPT-4等模型的持续突破彻底改变了我的看法。这不仅仅是学术圈的狂欢它已经实实在在地渗透到了工业界的每一个角落甚至开始重塑普通人的工作流和创造力工具链。这股浪潮并非凭空而来它背后是一条由OpenAI等机构用一篇篇里程碑式论文铺就的、清晰可见的技术演进之路。要真正理解ChatGPT为何能如此“智能”我们不能只看最终那个会对话的界面而必须回溯其技术谱系。这条脉络的起点可以追溯到那个在BERT光芒下略显低调却奠定了至关重要基石的模型——GPT-1。今天我们就抛开那些浮于表面的惊叹深入这些经典论文的肌理看看ChatGPT的“朋友们”是如何一步步走来以及我们从中能学到什么实实在在的工程与算法经验。2. 奠基GPT-1与预训练-微调范式的确立2.1 核心动机与时代背景时间回到2018年当时的NLP领域正处在从传统特征工程向深度学习全面转型的后期。Word2Vec、GloVe等词向量技术让模型获得了更好的词义表示但如何让模型理解更长的上下文和更复杂的句法结构仍是悬而未决的问题。同时有监督任务面临一个根本性瓶颈高质量、大规模的标注数据获取成本极高严重限制了模型性能的上限。GPT-1论文《Improving Language Understanding by Generative Pre-Training》的核心动机正在于此能否利用海量的、无标注的文本数据先让模型学会“语言”本身再通过少量标注数据让它快速适应特定任务这个想法并非GPT-1首创但它是早期成功将Transformer架构的Decoder部分应用于此范式并取得显著效果的工作之一。它的目标很明确构建一个通用的语言理解模型骨架通过预训练获得强大的语言表征能力再通过下游任务的微调实现“一处预训练多处微调”的高效迁移。2.2 模型架构与训练方法解析GPT-1的方案在今天看来非常清晰和经典但其设计选择却影响深远。模型结构它摒弃了Transformer完整的Encoder-Decoder结构只采用了Transformer的Decoder部分。为什么是Decoder因为它的预训练目标是标准的自回归语言模型给定前文预测下一个最可能的词token。Decoder中的掩码自注意力机制Masked Self-Attention完美适配了这一目标——在预测当前位置时它只能看到之前的位置信息无法“偷看”未来的词这保证了生成过程的因果性。训练方法分为两步无监督预训练在大规模无标注文本语料上最大化一个简单的似然函数。具体来说给定一个token序列U {u1, u2, ..., un}模型的目标是最大化P(ui | u1, ..., ui-1)。模型通过多层Transformer Decoder块将输入序列编码为隐藏向量最后通过一个线性层和Softmax来预测下一个词的分布。有监督微调在预训练好的模型基础上针对具体的下游任务如文本分类、自然语言推理、语义相似度等进行微调。这里有一个关键技巧如何将不同格式的下游任务输入统一到预训练模型的框架中GPT-1的做法是引入特殊的任务相关标记Token例如在文本分类任务中在输入文本前后加上[Start]和[Extract]标记然后将最后一个标记通常是[Extract]对应的Transformer输出向量接入一个新增的任务特定线性分类层。损失函数则结合了任务本身的监督损失和预训练的语言模型损失作者发现这种联合优化能进一步提升泛化能力。实操心得这种“预训练任务特定微调”的范式后来成为了整个NLP领域的基础玩法。GPT-1的成功验证了Transformer Decoder在生成式预训练上的有效性也为后续模型规模的扩展铺平了道路。但当时它的风头很快被同时期谷歌提出的BERT基于Transformer Encoder所掩盖因为BERT在多项理解型任务上取得了更惊艳的成绩。这迫使OpenAI思考另一条路。3. 转向GPT-2与Zero-Shot学习的野心3.1 新动机逃离微调的“数据依赖”GPT-1之后BERT横空出世在GLUE等榜单上大杀四方。OpenAI发现在相同的“预训练-微调”赛道上即使增大模型参数GPT也难以匹敌BERT。这促使团队进行了一次关键的思路转变如果微调需要针对每个任务收集标注数据那模型永远无法做到真正的通用和灵活。人类的智能往往只需要几个例子甚至一个指令就能举一反三。于是GPT-2论文《Language Models are Unsupervised Multitask Learners》提出了一个大胆的设想能否训练一个模型不经过任何任务特定的微调仅通过阅读任务描述Prompt就直接完成任务这就是Zero-Shot Learning的野心。其核心思想是将所有NLP任务都统一建模为条件生成问题P(output | input, task)。这里的task不是隐含的参数而是以自然语言的形式作为输入的一部分明确告诉模型。3.2 实现Zero-Shot的关键数据与PromptGPT-2的网络结构相比GPT-1没有本质变化依然是Transformer Decoder。实现Zero-Shot能力的关键在于训练数据和输入格式。数据策略的升级为了让模型学会理解并执行各种任务它必须“见过”足够多、足够丰富的任务描述和对应输出的例子。GPT-2放弃了之前相对较小的BooksCorpus数据集转向构建一个规模巨大且质量更高的网页文本数据集——WebText。其数据收集逻辑非常巧妙他们从Reddit一个社交新闻聚合网站上抓取那些获得了至少3个“karma”类似点赞的外链文章。这个筛选逻辑基于一个假设被社区用户认可并分享的内容更有可能是高质量、有趣、信息丰富的。经过清洗和去重最终得到了超过800万份文档约40GB的文本数据。这种对数据质量和多样性的追求是GPT-2能实现Zero-Shot的基础。Prompting的早期实践在训练时模型会接触到大量自然存在的、带有任务指示性质的文本。例如一个网页可能包含“翻译成英文 ‘Hola, mundo’”后面跟着“Hello, world”。模型在学习预测下一个词的过程中就潜移默化地学会了“当看到‘翻译成英文’这样的提示时后面应该生成对应的英文翻译”。在推理时用户只需以同样的自然语言格式给出指令如“请总结以下文章...”模型就能基于学习到的模式生成答案。3.3 规模效应的初现与启示GPT-2训练了多个规模的模型最大的达到了15亿参数。实验结果清晰地展示了一个趋势模型越大在Zero-Shot任务上的表现就越好。更重要的是即使在最大的模型上在验证集上的损失困惑度仍未收敛意味着如果继续增加模型规模或数据量性能还有提升空间。这个发现至关重要它直接指向了后续GPT-3的“大力出奇迹”路线。注意事项GPT-2的Zero-Shot虽然概念新颖但在许多复杂任务上的实际效果仍远不及有监督的SOTA模型。它更像是一个重要的概念验证证明了通过扩大模型容量和高质量数据语言模型可以内化一部分任务执行能力。然而其输出不可控、容易生成有害或有偏见内容的问题也开始显现为后续的“对齐”研究埋下了伏笔。4. 突破GPT-3与In-Context Learning的威力4.1 从Zero-Shot到Few-Shot上下文学习如果说GPT-2证明了“大模型”的潜力方向那么GPT-3论文《Language Models are Few-Shot Learners》就是对这个方向的全力冲刺。它的核心创新点并非全新的模型架构而是将规模推向了前所未有的高度1750亿参数并系统性地探索和命名了In-Context Learning。GPT-3明确区分了三种评估模式Zero-Shot只给出任务指令不给例子。One-Shot给出任务指令和一个例子。Few-Shot给出任务指令和少量通常为10-100个例子。关键在于这些例子只是作为上下文Context提供给模型在推理过程中模型的参数不会发生任何更新即不进行梯度下降。模型仅仅依靠其庞大的参数中存储的知识和模式识别能力从上下文中“领悟”到任务该怎么做然后进行生成。这更贴近人类的学习方式我给你看几个示范你就能照猫画虎。4.2 工程上的巨大挑战与解决方案训练一个1750亿参数的模型是前所未有的工程壮举。GPT-3论文中花了相当篇幅描述其工程实践数据混合使用了经过过滤的Common Crawl数据集4100亿token以及多个高质量数据集如WebText2、维基百科、书籍等并按不同比例进行混合采样以确保数据多样性和质量。模型并行如此巨大的模型无法装入单张GPU甚至单个服务器的内存。OpenAI与微软合作采用了复杂的模型并行将模型层拆分到不同设备、数据并行不同数据批次在不同设备组上和流水线并行将计算过程分段流水化策略。训练稳定性大模型训练极易不稳定。GPT-3采用了诸如梯度裁剪、精心的学习率预热与衰减策略以及动态调整批次大小根据梯度噪声规模等技术来确保训练过程平稳。4.3 效果、局限与影响GPT-3在众多Few-Shot任务上取得了惊人效果尤其在文本生成、创作、编程代码补全等方面其流畅度和连贯性令人印象深刻。它证明了当模型规模突破某个临界点后会涌现出小模型不具备的复杂推理和任务泛化能力。然而GPT-3也存在明显问题不可控性它仍然会生成事实错误、带有偏见或有害的内容。“鹦鹉学舌”其推理能力更多是基于模式的模仿和记忆而非真正的逻辑推理。成本高昂训练和部署的成本极高将绝大多数研究机构拒之门外。GPT-3的成功与缺陷共同指明了下一个关键方向如何驾驭这个强大的“野兽”让它更安全、更可靠、更符合人类的意图这直接催生了后续的Codex和InstructGPT。5. 对齐InstructGPT与基于人类反馈的强化学习5.1 从“能力强大”到“有用、诚实、无害”GPT-3能力虽强但就像一个知识渊博却不懂分寸的孩子它不知道什么时候该说话该说什么话以及如何以用户期望的方式回答。用户想要的是一个能理解指令、提供有帮助且安全信息的助手。这个让模型行为与人类价值观和意图保持一致的过程被称为对齐。InstructGPT论文《Training language models to follow instructions with human feedback》的核心目标就是解决对齐问题。其方法论RLHF成为了ChatGPT技术的基石主要分为三步监督微调首先收集一批由人类标注员编写的“指令-期望回答”对。用这些数据对一个预训练的GPT-3模型进行有监督微调得到一个初始的SFT模型。这个模型初步学会了遵循指令的格式。奖励模型训练然后让SFT模型针对更多的指令生成多个不同的回答。标注员对这些回答进行排序指出哪个更好。利用这些排序数据训练一个奖励模型。这个RM模型学习的是人类的偏好输入一个指令和回答输出一个标量分数代表回答的质量。强化学习微调最后将SFT模型作为策略RM模型作为奖励函数使用近端策略优化等强化学习算法对SFT模型进行进一步优化。模型通过不断生成回答、获得RM评分、调整自身参数来学习生成更高分即更符合人类偏好的回答。第二步和第三步可以迭代进行用优化后的模型生成新的回答供标注员排序从而训练出更好的RM再进一步优化策略模型。5.2 数据与标注RLHF成功的关键RLHF的成功极度依赖于高质量的数据和严谨的标注流程InstructGPT论文在这方面提供了宝贵的经验数据来源多样性指令数据不仅来自标注员编写也来自真实的OpenAI API用户请求经过去隐私处理确保了指令分布的广泛性。标注员筛选与培训标注员需要经过测试和培训以确保他们能准确理解用户意图、识别有害内容并保持标注的一致性。论文甚至预留了部分“测试标注员”其数据不参与训练用于评估模型对未见过的标注员风格的泛化能力。目标权衡标注指南需要平衡“有帮助性”、“真实性”和“无害性”。有时这些目标会冲突例如一个完全无害的模型可能对所有问题都回答“我不知道”这显然没有帮助需要在训练中精心设计损失函数和奖励信号来权衡。5.3 效果与“对齐税”经过RLHF训练的InstructGPT模型在遵循指令和生成高质量、无害内容方面显著优于原始的GPT-3。人类评估者明显更偏好InstructGPT的输出。但RLHF也带来了一个副作用被称为“对齐税”模型在为了对齐人类偏好而优化的过程中可能会在某些传统的、客观的NLP基准任务如标准问答、阅读理解上性能下降。为了解决这个问题OpenAI在强化学习的目标函数中加入了预训练损失项让模型在优化人类偏好的同时不至于忘记原有的语言建模能力。实操心得InstructGPT的工作表明让大模型变得“好用”不仅仅是一个算法问题更是一个复杂的人机交互系统工程。它涉及数据收集、标注体系设计、奖励函数塑造、多目标优化等一系列环节。这也解释了为什么ChatGPT的体验如此不同——它的背后是一套精心设计的、以人类反馈为核心的持续迭代系统。6. 集成与涌现ChatGPT的技术融合OpenAI并未单独发表ChatGPT的论文仅通过博客文章透露了其基本方法它本质上采用了与InstructGPT相同的RLHF技术栈但关键区别在于使用了对话形式的数据进行微调。这意味着ChatGPT的训练数据包含了多轮对话的上下文。模型不仅要学习遵循单条指令还要学习在持续的对话中保持连贯性、记住上下文信息、以及处理指代、省略等对话特有的现象。它将InstructGPT的指令遵循能力与对话建模能力相结合最终产生了令人惊艳的交互体验。从GPT-1到ChatGPT我们看到了一条清晰的技术演进路径从奠定基础的生成式预训练GPT-1到探索无监督多任务学习GPT-2再到依靠规模实现上下文学习GPT-3最后通过人类反馈强化学习完成意图对齐InstructGPT/ChatGPT。每一步都建立在前一步的基础上解决了前一步的核心痛点。ChatGPT本身可能没有提出全新的算法但它将数据、规模、工程和对齐技术以正确的方式融合在了一起最终实现了从“技术原型”到“现象级产品”的跨越。理解这条脉络不仅能让我们看清ChatGPT从何而来更能为我们思考大语言模型的未来发展方向提供坚实的坐标系。在接下来的内容中我们将视角转向开源社区和更多样的模型架构看看在这股浪潮中还有哪些重要的“朋友们”做出了不可忽视的贡献。