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,而是其规模化与深度化的产物。

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

相关推荐
bearpping37 分钟前
SpringBoot最佳实践之 - 使用AOP记录操作日志
java·spring boot·后端
一叶飘零_sweeeet39 分钟前
线上故障零扩散:全链路监控、智能告警与应急响应 SOP 完整落地指南
java·后端·spring
开心就好20252 小时前
不同阶段的 iOS 应用混淆工具怎么组合使用,源码混淆、IPA混淆
后端·ios
架构师沉默2 小时前
程序员如何避免猝死?
java·后端·架构
椰奶燕麦2 小时前
Windows PackageManager (winget) 核心故障排错与通用修复指南
后端
zjjsctcdl3 小时前
springBoot发布https服务及调用
spring boot·后端·https
zdl6863 小时前
Spring Boot文件上传
java·spring boot·后端
世界哪有真情3 小时前
哇!绝了!原来这么简单!我的 Java 项目代码终于被 “拯救” 了!
java·后端
RMB Player3 小时前
Spring Boot 集成飞书推送超详细教程:文本消息、签名校验、封装工具类一篇搞定
java·网络·spring boot·后端·spring·飞书
重庆小透明3 小时前
【搞定面试之mysql】第三篇 mysql的锁
java·后端·mysql·面试·职场和发展