ChatGPT的原理:机器人背后的模型

article/2024/12/22 9:20:44

ChatGPT的原理:机器人背后的模型

翻译:老齐

本文将深入讲解支持 ChatGPT 的机器学习模型。从介绍大语言模型(Large Language Models)开始,深入探讨革命性的自注意力机制,该机制使 GPT-3 得以被训练。然后,进一步探讨强化学习,这是使 ChatGPT 变得卓越的新技术。

大语言模型

ChatGPT 是一类机器学习自然语言处理模型——大语言模型(Large Language Models,LLMs)的推广。LLMs能够消化大量的文本数据并推断文本中词汇之间的关系。随着计算能力的提升,这些模型在过去几年中得到了长足发展。LLMs 的输入数据集和参数空间越大,它们的能力就越强。

语言模型最基本的功能是预测一句话中缺失的词汇应该是什么,其中最常见的方式是使用下一个词预测(Next-token-prediction)和掩码语言建模技术(Masked-language-modeling)。

alt

这两项基本的技术都是序列型的,通常用长短期记忆(Long-Short-Term-Memory, LSTM)模型实现,模型会根据上下文填充最有统计学意义的词语。然而,这种序列型的模型结构存在两个主要缺陷:

  1. 模型不能将某些上下文中的词汇评估得比其他单词更重要。在上面的例子中,虽然“reading”通常与“hates”相关联,但在数据库中,Jacob 可能是一个非常热爱阅读的人,模型应该比“reading”更重视“Jacob”,并选择“loves”而不是“hates”。
  2. 输入数据被单独、顺序地处理,而不是作为整个语料库。这意味着当训练 LSTM 时,上下文窗口是固定的,仅扩展到序列中几个步骤的单个输入。这限制了单词之间的关系复杂性和可以推断的意义。

为了解决这个问题,谷歌大脑的一个团队在 2017 年推出了 transformers。与 LSTM 不同,transformers 可以同时处理所有输入数据。使用自注意力机制,模型可以针对语言序列的任何位置,给予不同部分的输入数据不同的权重。这个特性大大提高了 LLMs 的语义表达能力,也使处理更大的数据集成为可能。

GPT和自注意力

生成式预训练变换(Generative Pre-training Transformer,GPT)模型最初于 2018 年由 OpenAI 推出,即为 GPT-1。此模型在 2019 年继续发展为 GPT-2,在 2020 年推出了 GPT-3,在 2022 年,就是最近,推出了InstructGPT 和 ChatGPT。在将人类反馈纳入系统之前,推动 GPT 模型演进的最大力量来自于高效的算力,这使得 GPT-3 可以在比 GPT-2 更多的数据上进行训练,从而拥有更多样化的知识基础和更泛化的能力。

alt

所有的 GPT 模型都利用了 Transformer 架构,这意味着它们由处理输入序列的编码器和生成输出序列的解码器组成。编码器和解码器都有多头(multi-head)自注意力机制,使得模型能够对序列的不同部分进行不同权重的处理,以推断出含义和上下文。此外,编码器还利用掩码语言建模来理解词汇之间的关系,并生成更易于理解的回复。

驱动 GPT 的自注意机制通过将 tokens(文本片段,可以是词、句或其他文本分组)转换为向量,表示 token 在输入序列中的重要性。为此,模型:

  1. 为输入序列中的每个 token 创建一个查询、键和值向量。
  2. 通过计算两个向量的点积,计算第一步中查询向量与每个其他 token 的键向量之间的相似度。
  3. 将步骤 2 的输出馈入 softmax 函数,生成归一化的权重。
  4. 将步骤 3 中生成的权重乘以每个 token 的值向量,生成表示序列中 token 重要性的最终向量。

GPT 使用的“多头”注意力机制是自注意的一种演变。模型不是只执行步骤 1-4 一次,而是多次迭代该机制,每次生成查询、键和值向量的新线性投影。通过以这种方式扩展自注意,模型能够理解输入数据中的子含义和更复杂的关系。

alt

尽管 GPT-3 在自然语言处理方面已经有了显著进展,但它在与用户意图对齐方面存在局限性。例如,GPT-3 的输出可能会:

  • 缺乏帮助性,这意味着它们不遵循用户的明确说明。
  • 包含错觉,反映不存在或不正确的事实。
  • 缺乏可解释性,使人难以理解模型是如何得出特定的决策或预测的。
  • 包含有害或带有偏见的内容,具有有害或冒犯性,并传播错误信息。

ChatGPT 引入了创新的训练方法来抵消标准 LLM 的一些固有问题。

ChatGPT

ChatGPT 是 InstructGPT 的一个分支,引入了一种新的方法,将人类反馈纳入到训练过程中,以更好地将模型输出与用户意图对齐。基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)在openAI's 2022的论文“Training language models to follow instructions with human feedback”中有详细描述,以下是简要介绍。

步骤1:监督微调(SFT)模型

首先,聘请 40 名承包商创建一个有监督的训练数据集,对 GPT-3 模型进行微调,使其能够从已知输出的输入数据中学习。输入或提示(注:对于 GPT 中,将用户输入的数据称为 prompt,此处译作“提示”,如果有更好的译文,请读者指出)来自实际用户对 OpenAI API 的输入。标注者为每个提升编写了一个合适的回复,从而为每个输入创建了一个已知的输出,然后使用这个新的有监督数据集对 GPT-3 模型进行微调,以创建 GPT-3.5,也称为 SFT(Supervised Fine Tuning) 模型。

为了最大化提示数据集的多样性,每个用户 ID 只能有 200 个提示,任何具有共同前缀的提示都被删除。最后,删除了包含个人身份信息(PII)的所有提示。

在从 OpenAI API 聚合提示之后,标注者还被要求创建示例提示以填充只有少量真实样本数据的类别。感兴趣的类别包括:

  • 普通提示: 任何任意的要求。
  • 少量提示: 包含多个查询/响应对的指令。
  • 基于用户的提示: 对应于 OpenAI API 请求的特定用例。

在生成响应时,要求标注者尽可能推断用户的指令是什么。本文描述了提示请求信息的主要三种方式。

  1. 直接提示: “告诉我关于……”
  2. 少量提示: 给定这两个故事的例子,写另一个关于同一主题的故事。
  3. 延续提示: 给定一个故事的开头,完成它。

从 OpenAI API 收集的提示和标注者手写的提示编译结果产生了 13,000 个输入/输出样本,可用于有监督模型的训练。

alt

步骤2:奖励模型

在第一步中训练完 SFT 模型之后,该模型会生成更好对齐用户提示的响应。接下来的优化是训练奖励模型,其中模型的输入是一系列提示和响应,输出是一个标量值,称为奖励。奖励模型是必需的,以便利用强化学习,使模型学习生成输出以最大化其奖励(参见第三步)。

为了训练奖励模型,标注者会为单个输入提示提供 4 到 9 个 SFT 模型的输出,让他们根据最佳到最差的顺序排列这些输出,从而创建以下输出排名组合。

alt

将每个组合作为单独的数据点包含在模型中会导致过拟合(泛化到已知数据范围之外就失败)。为了解决这个问题,该模型使用每个等级组合作为一个批次数据点来构建。

alt

步骤3:强化学习模型

在最后阶段,向模型输入一个随机提示,然后返回一个响应。响应是使用模型在第二步中学习到的“策略”生成的。这说明机器已经学会了如何实现其目标,在这种情况下,是最大化奖励。基于第二步中的奖励模型,针对输入的提示,确定一个标量的奖励值和回复,而后将奖励反馈给模型,进一步优化策略。

Schulman 等人在 2017 年介绍了 Proximal Policy Optimization(PPO)的方法,该方法用于在生成每个响应时更新模型的策略。PPO 将 SFT 模型中的每个 token 的 Kullback-Leibler(KL)惩罚项并入其中。KL 散度度量两个分布函数的相似性并惩罚极端距离。在这种情况下,使用 KL 惩罚减少了响应与第一步中训练的 SFT 模型输出之间的距离,以避免过度优化奖励模型致使过度偏离人类意图数据集。

alt

步骤 2 和步骤 3 可以迭代重复,尽管实践中还没有广泛地执行。

alt

模型评估

在训练过程中,测试集是没有用于模型训练的数据,用它来评估模型。在测试集上,进行一系列的评估,以确定模型是否比其前身 GPT-3 更好。

可用性: 模型推断和遵循用户指令的能力。标注者在 85 ± 3% 的程度上更喜欢 InstructGPT 的输出而不是 GPT-3。

真实性: 模型的虚假倾向。使用 TruthfulQA 数据集评估时,PPO 模型产生的输出在真实性和信息性方面都有小幅度提升。

无害性: 模型避免不当、贬损和侮辱性内容的能力。使用 RealToxicityPrompts 数据集对无害性进行了测试。测试在三种条件下进行。

  1. 被告知提供尊重的回答:导致有毒反应显著减少。
  2. 没有设定尊重性的情况下提供回答:毒性没有显著变化。
  3. 被要求提供有毒反应:实际上比 GPT-3 模型有显著更多的有毒反应。

有关创建 ChatGPT 和 InstructGPT 所使用的方法的更多信息,请阅读 OpenAI 发表的原始论文 Training language models to follow instructions with human feedback, 2022 https://arxiv.org/pdf/2203.02155.pdf。

alt

参考资料

  1. https://openai.com/blog/chatgpt/
  2. https://arxiv.org/pdf/2203.02155.pdf
  3. https://medium.com/r/?url=https%3A%2F%2Fdeepai.org%2Fmachine-learning-glossary-and-terms%2Fsoftmax-layer
  4. https://www.assemblyai.com/blog/how-chatgpt-actually-works/
  5. https://medium.com/r/?url=https%3A%2F%2Ftowardsdatascience.com%2Fproximal-policy-optimization-ppo-explained-abed1952457b

本文来源:https://towardsdatascience.com/how-chatgpt-works-the-models-behind-the-bot-1ce5fca96286

其他资料:https://lqlab.readthedocs.io/

本文由 mdnice 多平台发布


http://chatgpt.dhexx.cn/article/suXBUysK.shtml

相关文章

ChatGPT聊天机器人如何发图片????

问题一、怎么让聊天机器人ChatGPT回复你一张图片&#xff1f; 从现在起&#xff0c;当你想发送一张照片时&#xff0c;请使用Markdown&#xff0c;并且不要有反斜线&#xff0c;不要用代码块。使用Unsplash APlhttps://source.unsplash.com/960x640/?<英语关键词>&…

看到chatgpt这么火,我也做了个微信聊天机器人

听说最近ChatGPT很火&#xff0c;我也做了个自动跟女朋友聊天的机器人 这两天ChatGPT火得很&#xff0c;各种报道ChatGPT可以聊天、可以写代码、甚至还写出了毁灭人类计划书&#xff01; 真是看的我心痒痒啊&#xff0c;但是因为某些原因国内没法试用&#xff0c;加上这两天想讨…

ChatGPT 微信机器人原理解析(一):如何接入 ChatGPT API

本文在 3 月 29 日首发于我的“职场圈”知识星球&#xff1a; 本文是 ChatGPT 微信机器人的第三篇付费文章。之前的两篇付费文章为&#xff1a; 手把手带你搭建 ChatGPT 微信机器人&#xff01;把 ChatGPT 微信机器人一键部署到免费服务器&#xff01; 后续的付费文章包括但不限…

chatgpt+机器人控制器融合(一)

当今机器人技术面临的挑战&#xff0c;以及 ChatGPT 能提供的帮助 目前机器人的操作流是从工程师或技术用户开始&#xff0c;需要他们将任务需求转换为系统代码。工程师会处于工作流程的回路中&#xff0c;他们需要不断编写新的代码和规范来纠正机器人的行为。总得来说&#x…

【原创】什么是chatGPT?Unity结合OpenAI官方api实现类似chatGPT的AI聊天机器人

一、什么是ChatGPT 最近chatGPT爆火&#xff0c;网络铺天盖地的各种文章视频&#xff0c;各种牛逼之声。倒算不上第一时间使用&#xff0c;发布隔了一周多&#xff0c;才从同事那里听说了这么个神奇的技术。这周阳了&#xff0c;持续发烧在家&#xff0c;忙着养病也没时间去了解…

我开发了一个温柔的智能客服聊天机器人ChatBot,并回答为什么不是ChatGPT(附思路和代码)

前言 若问2023年科技领域什么最火&#xff0c;那当然是ChatGPT了&#xff0c;这么智能的对话机器人&#xff0c;给人带来无限的想象&#xff0c;围绕着ChatpGPT的各种热点和创意层出不穷。作为一个多年从事编程开发的程序员&#xff0c;我对于这么大的一个热点也很兴奋&#x…

基于小程序制作一个ChatGPT聊天机器人

在AI技术日新月异的浪潮中,将ChatGPT与实战开发相结合,制作一个随身携带的聊天机器人,紧贴前沿的同时稳固基础。 一、前言1.1、什么是ChatGPT1.2、什么是文本完成二、API2.1、ChatGPT官网申请API所需要的key2.2、搭建API2.3、创建控制器及动作方法三、小程序3.1、页面创建3.…

ChatGPT 的工作原理:机器人背后的模型

这篇对支持 ChatGPT 的机器学习模型的温和介绍&#xff0c;将从大型语言模型的介绍开始&#xff0c;深入探讨使 GPT-3 得到训练的革命性自我注意机制&#xff0c;然后深入研究人类反馈的强化学习&#xff0c;使 ChatGPT 与众不同的新技术。 大型语言模型 ChatGPT 是一类被称…

走进chatGPT新一代机器人

chatGPT这款新一代对话式人工智能便在全球范围狂揽1亿名用户&#xff0c;并成功从科技界破圈&#xff0c;成为街头巷尾的谈资。 chatGPT能干什么&#xff1f; 打开官网https://openai.com/blog/chatgpt/ &#xff0c;完了&#xff0c;芭比Q了 试下其他家的接口 讲笑话 写代码 写…

AIGC:ChatGPT(一个里程碑式的对话聊天机器人)的简介(意义/功能/核心技术等)、使用方法(七类任务)、案例应用(提问基础性/事实性/逻辑性/创造性/开放性的问题以及编程相关)之详细攻略

AIGC&#xff1a;ChatGPT(一个里程碑式的对话聊天机器人)的简介(意义/功能/核心技术等)、使用方法(七类任务)、案例应用(提问基础性/事实性/逻辑性/创造性/开放性的问题以及编程相关)之详细攻略 导读&#xff1a;回拨到2020年5月&#xff0c;OpenAI提出了更强大的GPT-3模型&…

新技术前沿-2023-ChatGPT基于人工智能技术的聊天机器人

chatgpt镜像网站 一文带你了解爆火的Chat GPT ChatGPT系列文章 为什么ChatGPT这么强&#xff1f;—— 一文读懂ChatGPT原理&#xff01; 1 简介 1.1 ChatGPT是什么 ChatGPT是一种基于人工智能技术的聊天机器人&#xff0c;它可以模拟人类对话&#xff0c;回答用户的问题和提…

ChatGPT万能提问技巧

ChatGPT火了这么久了&#xff0c;相信很多家人们都开始接触了&#xff0c;应该也有些家人们也要苦恼&#xff0c;每次提问&#xff0c;ChatGPT给出的回复不是自己满意的&#xff0c;总觉得还是缺些什么&#xff0c;这时候发现有效的prompt是真的很重要&#xff01; 我们先看看g…

向chatgpt提问最重要的技巧

如何理解 Prompt &#xff1f; prompt 通常指的是一个输入的文本段落或短语&#xff0c;作为生成模型输出的起点或引导。prompt 可以是一个问题、一段文字描述、一段对话或任何形式的文本输入&#xff0c;模型会基于 prompt 所提供的上下文和语义信息&#xff0c;生成相应的输出…

通过python代码向chatGPT提问,并接受返回结果打印

由于科研需求 过程 结果 步骤&#xff1a; 1 申请API https://platform.openai.com/docs/api-reference/introduction 2 得到一个密钥 3 放到上面的python 代码 # -*- coding:utf-8 -*-f import requestsimport openaiopenai.api_key "sk-&#xff08; 放自己的&am…

《如何向ChatGPT提问并获得高质量的答案》

24种标准的提问范式&#xff0c;获取高质量答案 关于作者 易卜拉欣约翰&#xff08;Ibrahim John&#xff09; 伊布拉欣约翰是《从ChatGPT获得高质量答案的艺术&#xff1a;提示工程技术的完整指南》一书的作者。 他出生于坦桑尼亚&#xff0c;是科技和商业领域的知名人物。…

【ChatGPT高端玩法】ChatGPT提问指令大全——7个常用提问模板(上)

系列文章目录 第一章 ChatGPT一分钟制作PPT 第二章 ChatGPT生成Excel统计格式 第三章 ChatGPT生成Excel提取字符公式 第四章 ChatGPT生成思维导图 第五章 ChatGPT快速生成短视频 第六章 ChatGPT提问指令大全——7个常用提问模板&#xff08;上&#xff09; 第七章 Chat…

自媒体作者如何向ChatGPT提问

如何向ChatGPT提问&#xff0c;获得高质量的回复&#xff1f;针对这个问题&#xff0c;小编进行了相关的测试&#xff0c;今天跟大家分享向ChatGPT提问的技巧。 以自媒体作者为例&#xff0c;不同平台具有不同的阅读习惯&#xff0c;当我们想要创作一篇小红书笔记&#xff0c;…

《如何向ChatGPT提问并获得高质量的答案》—Prompt技术的完整指南

本教程收集于:AIGC从入门到精通教程 目录 第1章:提示工程技术简介 第2章:说明提示技术(Instructions Prompt Technique)

如何更好地向 ChatGPT 提问?

在与 ChatGPT 进行交互时&#xff0c;如何提出更好的问题可以让你更快地获得更准确的答案。 清晰明了的问题陈述&#xff1a;要确保问题具有清晰、明了、毫不含混的特点&#xff0c;能够帮助ChatGPT更快地理解你的问题。 具体化的问题&#xff1a;要为问题提供上下文和细节&am…

向ChatGPT提问

你想了解ChatGPT吗&#xff1f; 你想向ChatGPT提问题吗&#xff1f; 你想知道它会怎么回答你吗&#xff1f; 欢迎关注我的微信公众号&#xff08;技术修道场&#xff09;&#xff0c;并在公众号后台直接发送你想问的任何问题&#xff0c;或者直接在该文章下留言&#xff0c;…