ChatGPT,从规则到强化学习

要了解 ChatGPT(Chat Generative Pre-training Transformer),我们不得不先看看 NLP 自然语言处理(Natural Language Processing)。因为 ChatGPT 属于 NLP 领域,而 NLP 则又是人工智能的一个分支。

那么什么是自然语言处理呢?

自然语言处理是人工智能的核心领域之一,致力于让计算机能够理解、生成和运用人类的自然语言(如中文、英文、西文等等)。NLP 的终极目标是让计算机实现类似人类之间的自然交流。

NLP 的核心任务包括让机器解读语言的含义与意图、创造出流畅自然的文本或语音,以及进行有效沟通。然而,人类语言充满歧义、依赖语境而且灵活多变,这给依赖于逻辑和规则的计算机系统带来了巨大挑战。

作为连接人类与机器的桥梁,NLP 的应用已深入日常生活:如机器翻译、聊天机器人、语音助手、搜索引擎、文本摘要、情感分析等。实现这些功能通常涉及将文本分解并转换为机器可处理的数值表示,再通过机器学习(尤其是基于 Transformer 架构的深度学习模型)来学习语言模式。

简言之,NLP 是教会计算机处理和驾驭人类语言的科学与技术。

一 图灵测试

在 NLP 发展的过程中,有一个著名的测试就是图灵测试。

图灵测试是由艾伦·图灵于 1950 年提出的思想实验和智能衡量标准。其核心思想在于:通过一个受控的对话测试(询问者通过文本与一个隐藏身份的人或机器交流),来判断机器是否能模仿人类的对话行为达到“以假乱真”的程度——即询问者无法可靠区分对话的另一端是人还是机器。如果机器成功欺骗了询问者,则被认为在该测试中“展现出了智能”。

加州大学圣地亚哥分校的严格测试显示,ChatGPT-4 在 54% 的对话中被人类误认为是真人(人类对照组为 67%),远超早期 AI(如 1960 年代 ELIZA 的 22%),这是首个在交互式双人图灵测试中取得显著成果的 AI 系统,标志着机器在模仿人类对话上的里程碑。

当然这并不能说明 ChatGPT 就已经非常牛逼了。

研究指出,ChatGPT 通过测试主要依赖风格化模仿(如语气、情感表达)而非深层推理。例如,75% 的参与者通过询问“人类体验”(如疼痛感受)即可识破 AI,说明测试更侧重欺骗能力而非真实智能。并且在 AI 普及时代,人类对机器的警惕性提高,导致“真人被误判为 AI”的概率上升,挑战了图灵测试的原始假设(即人类应 100% 通过)。这其实也暴露出图灵测试的局限性,促使工程师继续探索更加科学的评估方式。

二 NLP 发展历程

在前面的文章中松哥和大家聊过 NLP 发展历程,今天也简单说两句。

小伙伴们想想,如果让你实现一个 ChatGPT 模型,你有哪些办法?

不卖关子了,其实自己实现,大致有三种策略:

  1. 基于规则的 NLP;
  2. 基于统计的 NLP;
  3. 基于强化学习的 NLP;

接下来我们就来简单说说这三种。

2.1 基于规则的 NLP

基于规则的 NLP 使用预定义的、手工编写的规则(如语法、句法规则)处理自然语言,不依赖机器学习模型。

松哥给大家举个简单的例子,这个例子基于模式匹配的文本替换,属于早期聊天机器人(如 ELIZA)的基础技术,适用于结构固定的简单对话。

比如说我定义下面一个规则:

  • 收到用户的问题后,将 去掉;将 ?替换为
  • 将用户问题中的 换成 ,将 换成

基于这个规则,我们可以实现一个简单的对话模型,并且开启对话模式:

用户:你好吗?

模型:我好。

用户:你觉得我聪明吗?

模型:我觉得你聪明。

用户:你借我的书还要还我吗?

模型:我借你的书还要还你。

有趣吧!

基于规则的 NLP,由于规则透明,便于调试,因此具备易解释的特点;同时也不需要大数据支持。但是缺点也很明显,人类语言规则千千万万,基于规则处理所有情况,根本不现实。并且语言可能会有歧义、俚语、现在隔段时间还会出现一个网络梗,很明显基于规则的 NLP 无法处理这么多的情况。

并且本质上,基于规则的 NLP,还是人在主导,人设定规则,机器执行规则。这并非由机器处理自然语言。

2.2 基于统计的 NLP

想象一下学习一种新语言的方法。

假设你刚到澳洲生活,想学会英文。你可以怎么做呢?

  1. 你不急着看语法书,而是天天泡在街上、咖啡馆、电视节目里“偷听”人们说话。
  2. 你会默默记录:哪些词经常一起出现?(比如 “一杯咖啡”、“天气真热”)、哪些词经常出现在句子的开头或结尾?(比如 “请问”、 “谢谢”)、人们在类似情境下最常说的是哪些话?(比如有人打喷嚏后很多人会说 “Bless you”)。
  3. 你会统计词语出现的次数。发现某些组合(“New York”)出现频率远远高于把这两个字分开的频率。

通过这种方式,你潜移默化地掌握了语言的“习惯”和“概率”。你知道看到“一杯”后面很可能是某个饮料或食物名;听到“因为”后面有很大概率会跟着“所以”。你不会死记规则,但知道哪些组合更常见、更自然、更有可能被使用。

这就是基于统计的 NLP 的核心思想!

基于统计的 NLP 可以让计算机理解或生成人类的语言(文本或语音)。并且这个过程不依靠人编写的、复杂的语言规则(虽然有时会参考),而是让计算机从大量的真实的语言数据(称为“语料库”)中自己学习语言的规律和概率。

基于统计的 NLP 有很多优势,比如:

  • 适应性强,因为语言是在不断变化的,新词新用法层出不穷。只要有足够的新数据,统计模型就能学习到这些新现象,而不需要人工去更新复杂的规则库;
  • 并且还能处理模糊性和不规则性,由于自然语言充满了歧义和不规则表达,统计方法可以通过统计哪种解释或说法在类似上下文中出现概率最高来做出更好的判断(虽然不一定完美);
  • 并且也更接近人类的“语感”,某种程度上,统计模型学习到的就是一种量化的“语感”,它更关注“人们通常怎么说话”而不是“语法书规定应该怎么说话”。

基于统计的 NLP 在我们的日常生活中应该是比较常见的,举几个简单的例子:

  1. 手机输入法预测: 当你输入 “我爱” 时,输入法会给你候选词 “吃”、“你”、 “家”。它统计了无数用户输入的历史,发现这些词在 “我爱” 后面出现概率最高。
  2. 搜索引擎自动纠错/补全: 当你搜索 “什么是 NL”,搜索引擎建议你 “什么是 NLP”。因为它统计到用户在输入 “什么是 NL” 后,继续输入 “P” 的概率很高,或者直接发现 “什么是 NLP” 是一个常见的搜索词组。
  3. 早期机器翻译: 早期的谷歌翻译等系统大量依赖统计方法。它会分析海量的双语平行语料(如联合国文件的中英文对照),统计源语言一个短语在目标语言中最可能对应的翻译是什么。
  4. 垃圾邮件过滤: 通过统计哪些词语(如 “免费”、“优惠”、“中奖”)在垃圾邮件中出现的概率异常高于在正常邮件中出现的概率来判断。

我们稍微总结下,整体上来说基于统计的 NLP 技术相对成熟,理论支撑坚实,它的数学基础(概率论、统计学、信息论)非常扎实。许多核心模型(如 n-gram, HMM, 早期统计机器翻译模型)经过了长时间的发展和验证,在特定的任务上(如语言建模、基础分类)效果稳定可靠,传统的垃圾邮件过滤器主要依赖词频统计和简单的贝叶斯分类器,在很长时间内效果都非常好。

但是!

缺点也很明显。

首先就是难以理解语义和深层次结构,统计模型本质上是学习词语间的关联模式(共现频率),而不是真正的语义含义、逻辑推理、常识或世界知识。它知道“苹果”和“吃”常一起出现,但不理解“苹果”是一种水果,可以被咀嚼、消化并提供营养。

其次就是结果解释性差(“黑盒子”问题),模型给出决策(如分类结果、预测的词)的确切原因往往难以清晰溯源,因为它是基于大量权重和概率计算得出的综合结果,不像规则引擎那样可以明确说出“因为触发了第 38 条规则”,这让调试、纠错和理解模型行为内在机制变得困难。

第三就是长距离依赖和上下文捕捉能力有限,例如像 n-gram 这样的经典统计模型(特别是低阶 n-gram 如 bigram,trigram)主要关注邻近几个词之间的关联。对于需要理解整个句子结构甚至跨句子指代的长距离依赖关系(例如,“尽管他做了很多努力,但最终还是失败了。这让他非常沮丧” 中“这”指代前文整个结果),早期统计模型难以有效捕捉。高阶 n-gram 又面临数据稀疏问题。

第四就是数据稀疏问题(低频词或组合是难题),语言中大量词语是低频词,大量可能的词组合在有限的训练数据中从未出现过。统计模型遇到从未见过的组合时就束手无策(概率为零或估计极不准确),需要复杂的平滑技术来缓解,但效果有限。

那么基于统计的 NLP 中存在的这些缺陷该如何化解呢?我们继续往下看。

2.3 基于强化学习的 NLP

ChatGPT 与基于统计的 NLP(自然语言处理)之间存在紧密的继承与演进关系。ChatGPT 本质上是在统计 NLP 基础上发展起来的高级形态,其核心机制仍遵循统计学习原理,但通过深度神经网络架构和训练方法的革新实现了性能的飞跃(主要是采用带人工反馈的的强化学习,Reinforcement Learning with Human Feedback,RLHF)。

可能有不少小伙伴养过小狗,养小狗多多少少就会有一点训小狗的经验,比如我们想训练小狗听到“坐下”的时候,就会坐下,我们可以怎么做呢?

随机探索阶段(初始训练)

  • 小狗听到"坐下"指令后随机尝试各种行为(坐下、站立、趴下等)
  • 主人只对坐下行为奖励零食
  • 小狗开始注意到:坐下→零食的关联

价值评估阶段

小狗计算不同动作的价值:

  • 坐下 = 高概率获得零食(+价值)
  • 乱跑 = 获得零食概率极低(-价值)
  • 不动 = 无奖励(0价值)

策略优化阶段
小狗发展出最优策略:

  • 听到"坐下"→立即执行坐下动作
  • 坐下时保持姿势期待零食
  • 避免分心和乱跑行为

强化学习的本质是:让智能体(小狗)通过与环境互动,根据奖励反馈自主发展出最大化长期收益的行为策略,而不是被动接受指令。

就像训练优秀的小狗:

  • 不是通过强迫记忆动作
  • 而是创造它自己"发现"正确行为的条件
  • 最终形成主动选择最优行为的智能系统

这种方法不仅用于训练宠物,更是开发游戏AI、自动驾驶系统、机器人控制的核心技术!

基于强化学习的 NLP 也是类似的道理。

基于统计的 NLP 通过分析大规模语料库中的词频、共现概率等统计规律,构建语言模型(如早期的 N-gram 模型)。ChatGPT 的语言模型(如 GPT 系列)延续了这一思想,通过预训练学习词序列的概率分布,预测下一个词的可能性;传统统计模型(如 HMM、CRF)依赖手工特征工程,而 ChatGPT 采用深度神经网络(如 Transformer)自动从数据中学习特征,大幅提升了语言建模能力,例如 Transformer 的自注意力机制可捕捉长距离词依赖关系,解决了传统 RNN 的序列遗忘问题。

ChatGPT 的预训练阶段在海量无标注文本上学习语言统计规律(如词语搭配、语法结构),本质是统计学习的扩展,例如 GPT-3 通过 1750 亿参数模型拟合语言概率分布,实现小样本学习能力;在预训练后,ChatGPT 通过监督微调和强化学习(RLHF)进一步优化模型。RLHF 引入人类反馈作为奖励信号,引导模型生成更符合统计偏好的回答,本质是统计学习与交互式学习的结合。

传统统计模型(如 N-gram)仅能处理局部上下文,而 ChatGPT 的 Transformer 架构可捕捉全文依赖,实现多轮对话的连贯性;基于统计的早期模型(如 RNN)生成文本生硬且易出错,而 ChatGPT 通过生成式预训练(Generative Pre-training)可输出流畅、逻辑性强的自然语言,甚至创作诗歌或代码;传统统计 NLP 依赖规则和词典(如关键词匹配),而 ChatGPT 通过语义向量(词嵌入)建模词语的深层关联,实现更接近人类的理解能力。

总结一下,ChatGPT 并非颠覆基于统计的 NLP,而是其规模化与深度化的产物。

好了,今天就聊这些吧,后面有空继续。

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

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

相关文章

【目标检测之Ultralytics预测框颜色修改】

在 Ultralytics YOLOv8 中修改预测框颜色为红色,以下是三种实用方案:方案 1:直接修改 plot() 方法的 colors 参数 在调用 results.plot() 时直接指定颜色参数: from ultralytics import YOLO# 加载模型 model YOLO("yolov8n…

让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息

文章目录🎯 目标:在 VS Code 调试器中自动显示这些变量信息🔍 原理简介⚠️ 其他方案的局限性❌ 方案一:重写 __repr__❌ 方案二:向 debugpy 注册自定义变量显示器(StrPresentationProvider)✅ …

pip国内镜像源一览

以下是2025年主流pip国内镜像源完整清单及配置指南,综合多个权威来源整理的最新数据:一、核心镜像源推荐(2025年稳定可用)‌阿里云镜像‌https://mirrors.aliyun.com/pypi/simple/优势:依托阿里云CDN,全国平…

当大模型遇见毫米波:用Wi-Fi信号做“透视”的室内语义SLAM实践——从CSI到神经辐射场的端到端开源方案

作者 | Blossom.118 2025-07-12 关键词:CSI-SLAM、神经辐射场、毫米波、Transformer、数字孪生、开源 ---- 1. 为什么要“无摄像头”语义SLAM? • 隐私红线:欧盟GDPR 2024修订版把“摄像头点云”列入高风险生物特征,落地成本高。…

脉冲神经网络膜电位泄漏系数学习:开启时空动态特征提取的新篇章

脉冲神经网络膜电位泄漏系数学习:开启时空动态特征提取的新篇章 摘要 脉冲神经网络(Spiking Neural Networks, SNNs)作为第三代神经网络模型,凭借其事件驱动、高生物逼真度和潜在的超低功耗特性,已成为类脑计算与高效人…

SSRF(ctfshow)

web351-358这部分的题目都是明文的&#xff0c;按照题目要求绕过就行了<?php error_reporting(0); highlight_file(__FILE__); $url$_POST[url]; $xparse_url($url); if($x[scheme]http||$x[scheme]https){ if(!preg_match(/localhost|127\.0\.|\。/i, $url)){ $chcurl_ini…

亚矩阵云手机:重构物流供应链,让跨境包裹“飞”得更快更准

在跨境电商“时效即生命”的竞争中&#xff0c;物流信息滞后、清关效率低下、成本居高不下已成为商家最头疼的“三座大山”。传统模式下&#xff0c;人工更新物流状态耗时易错&#xff0c;跨境包裹常因清关延误遭客户投诉&#xff0c;而高昂的物流成本更直接吞噬利润。亚矩阵云…

HTML(5) 代码规范

HTML(5) 代码规范 引言 HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言。HTML5 作为最新的 HTML 标准,自 2014 年正式发布以来,已经成为了构建现代网页应用的基础。本文将详细介绍 HTML5 代码规范,包括结构、语法、属性以及最佳实践等内容,旨在帮助…

【PTA数据结构 | C语言版】顺序栈的3个操作

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 请编写程序&#xff0c;将 n1 个整数顺序压入容量为 n 的栈&#xff0c;随后执行 n1 次取顶并出栈的操作。 输入格式&#xff1a; 输入首先在第一行给出正整数 n&#xff08;≤10^4 &#xff09;&a…

使用Pycharm集成开发工具远程调试部署在虚拟机上的flask项目:超级详细的完整指南

本文将详细介绍如何通过PyCharm Professional版远程调试部署在虚拟机(这里以Ubuntu为例)中的Flask项目。这种开发方式特别适合需要在接近生产环境调试的场景。 虚拟机网络配置 这里用到的是VMware的NAT&#xff0c;即网络地址转换模式&#xff0c;要保证你Linux虚拟机的IP&…

UE制作的 AI 交互数字人嵌入到 Vue 开发的信息系统中的方法和步骤

要将 UE(Unreal Engine,虚幻引擎)制作的 AI 交互数字人嵌入到 Vue 开发的信息系统首页中运行,可以参考以下方法步骤以及涉及的软件工具: 准备工作 软件工具 Unreal Engine:用于创建和编辑 AI 交互数字人,需要在 UE 中完成数字人的建模、绑定骨骼、添加 AI 交互逻辑等工…

基于elementUI的el-autocomplete组件的自动补全下拉框实践

<template><div :class"$options.name"><el-autocompletestyle"width: 100%"ref"autocomplete":popper-class"${$options.name}-el-autocomplete"v-model"inputSearchValue":placeholder"输入关键词...…

Gameplay - 独立游戏Celeste的Player源码

TGA2018最佳独立游戏《蔚蓝》的一些公开代码&#xff1b;主要是Player部分的代码&#xff1a;using System; using System.Collections; using System.Collections.Generic; using Monocle; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input;namespace Cel…

基于大模型的鼻咽癌全周期预测及诊疗优化研究报告

目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目标与创新点 二、大模型技术与鼻咽癌相关理论基础 2.1 大模型技术概述 2.2 鼻咽癌疾病知识 2.3 大模型在医学领域的应用 三、数据收集与预处理 3.1 数据来源 3.2 数据清洗 3.3 数据标注 3.4 数据标…

基于odoo17的设计模式详解---访问模式

大家好&#xff0c;我是你的Odoo技术伙伴。想象一下&#xff0c;我们有一个复杂的对象结构&#xff0c;比如一个由不同类型的订单行&#xff08;销售行、折扣行、备注行&#xff09;组成的销售订单。现在&#xff0c;我们需要对这个结构执行一些新的操作&#xff0c;比如&#…

使用langgraph 构建RAG 智能问答代理

RAG 智能问答代理&#xff1a; ✅ 支持用户持续提问 ✅ 根据模型判断是否需要查资料 ✅ 自动调用 PDF 检索工具查找内容 ✅ 自动引用内容回答 ✅ 可以输入 exit / quit 退出 下载需要的library pip install langchain-google-genai pip install langgraph pip install langchai…

零基础搭建监控系统:Grafana+InfluxDB 保姆级教程,5分钟可视化服务器性能!​

​​你是否遇到过这些问题&#xff1f;​​服务器突然卡顿&#xff0c;却找不到性能瓶颈需要手动查看日志&#xff0c;无法实时监控数据运维报表全靠截图拼接&#xff0c;领导直呼“太原始”​今天教你用GrafanaInfluxDB构建企业级监控系统&#xff0c;从此告别“盲人摸象”式运…

Java中的wait和notify、Condition接口的使用

Java中的wait和notify机制基础概念在Java中&#xff0c;wait()和notify()是Object类的原生方法&#xff0c;用于实现线程间的协作&#xff1a;wait()使当前线程释放对象锁并进入等待状态必须在synchronized代码块内调用语法&#xff1a;obj.wait() 或 obj.wait(long timeout)线…

【Modern C++ Part9】Prefer-alias-declarations-to-typedefs

条款9&#xff1a;优先使用声明别名而不是typedef 我有信心说&#xff0c;大家都同意使用STL容器是个好的想法&#xff0c;并且我希望&#xff0c;条款18可以说服你使用std::unique_ptr也是个好想法&#xff0c;但是我想绝对我们中间没有人喜欢写像这样std::unique_ptr<std:…

STM32第二十一天定时器TIM

1 定时器基础知识a:上来说就是用来定时的机器&#xff0c;是存在于STM32单片机中的一个外设。STM32总共有8个定时器&#xff0c;分别是2个高级定时器(TIM1、TIM8)&#xff0c;4个通用定时器 (TIM2、TIM3、TIM4、TIM5) 和2个基本定时器 (TIM6、TIM7)&#xff0c;如下图所示&…