大语言模型训练原理解析:ChatGPT背后的技术原理与应用价值

大语言模型训练分为三步:预训练阶段通过互联网数据训练基础预测模型;监督微调阶段通过问答数据让模型学会回答问题;强化学习阶段让模型自行探索最佳解法,产生思维链。大模型本质是统计学预测器,通过预测下一个token生成内容,其训练过程类比人类学习知识的方式,从基础学习到模仿再到自主创新。


【前言】

生活中 AI 用得已经越来越多,一直想要了解其大概原理,这样才能知道 AI 能做什么,不能做什么。恰逢最近看了OpenAI 联合创始人安德烈·卡帕西一个长达 3 小时的视频,用非常通俗易懂的方式讲解了像 chatGPT 这样的大语言模型,是怎么一步步训练出来的,像我这样一个基本没有技术背景的人,也能看懂,是非常优秀的科普视频。

大家可以前往 B 站搜索“安德烈·卡帕西:深入探索像ChatGPT这样的大语言模型”,即可观看,全文都有字幕,不用担心听不懂。

本文也从 3 小时的视频中提炼出最核心的内容,希望能帮助你“不求甚解”地大概了解AI 大语言模型的基本训练原理。

总览:对大语言模型的训练,跟我们人类学习知识的逻辑,是一脉相承的

视频中最让我印象深刻的一点,是安德烈·卡帕西把大语言模型的训练逻辑,类比成我们上学读书学习知识的过程,竟然是出奇的一致。

回想我们小时候的课本,每个知识点的章节讲解,都包含三个步骤:

第一步、学习知识点:单纯地通过阅读了解相关知识。完成这一步,我们只掌握了知识的表层,却不知道如何使用。

第二步、查看经典题目与解法:通过查看经典题目,了解知识点如何运用来解决实际问题。完成这一步,我们能模仿这些经典解法去解决类似的问题。

第三步、课后习题:这个环节里面,课本只会提供问题与答案,需要我们自己研究如何解题。每个人的脑回路都不一样,适合的解法也都不一样,我们需要自己摸索各种可能的解法,并找到最适合自己的解法。这个过程中,甚至会激发出比经典解法更高效的方法。完成这一步,我们就真正做到了对知识点的融会贯通。

大语言模型训练的三个步骤,也正正对应着这三步,即:

接下来逐一介绍每个步骤。

第一步、预训练

【核心流程】

1、学习信息搜集

要学习知识,自然要先获取信息,而最丰富而免费的信息,自然是来自互联网。因此,最初的模型训练内容,主要来自对互联网信息的爬取。

当然,这里要做的不是简单的爬取,而是包含了过滤劣质网站、文本提取、信息去重等一系列数据加工的过程。

2、信息的编码与压缩,生成“token”

爬取到的信息都是文字,人类能通过文字理解其所表达的内容,但计算机是不能的。

那计算机能理解什么呢?是数字与计算。因此,要让计算机能学习这些信息,首先要把文字转化为数字。这里也可以分为两小步:

第一步,对文字的基本单元做编码:例如英文而言,自然是每个字母对应一个数字 ID;中文则是每个汉字对应一个数字 ID

第二步,进一步压缩信息:把信息中高频出现的“单元序列组合”,编码出一个新的 数字ID,这样,就可以用更短的 ID 序列更高效地表达一句话,计算机需要理解的成本就会更低。

例如,在下图这个案例中,既有“你”、“的”这样的独立汉字用一个数字ID来表示,也有“你好”、“今天”这样的日常短语用一个数字 ID 来表示。

而这里代表一个文字或短语的数字 ID,就是所谓的大语言模型的“token”,是计算机理解与输出信息的最小“信息单元”。

3、信息学习:神经网络“预测”模型的训练

完成前面两步后,我们已经有了用于学习的原材料数据,接下来便可用于模型学习。

那么什么是所谓的学习?

回到我们期望模型的效果,是可以像人类一样,根据上文内容输出适合的下文内容。也就是说,根据上文“预测”下文的内容。

因此,这一步,我们使用统计学中最前沿的“预测”模型:神经网络模型,再基于我们搜集到的原材料数据,训练出一个基于上文输出下文的预测模型。

浅显地介绍下这个神经网络模型的训练方法:

所谓的神经网络模型,其实就是一个巨大的包含大量参数计算的数学方程式,但其核心目标跟我们小学学的一元一次方程是类似的,也是根据输入的“x”(上文)跟模型的参数“w”(一系列计算),输出一个结果“y”(下文)。

但也有两个区别,一个是,我们之前定义的 token 并不是一个具有数值计算意义的数字,而只是一个代表对应文字的“标识符”(ID);一个是这里输出的结果,代表的是,下文出现各个 token 的分别的概率值。

参数训练:一开始,参数都是随机的数据,输出的结果也是随机的。我们把从互联网上搜集到的学习材料,都喂给模型进行训练。模型以提升,学习材料中“正确”的下文 token 的概率,为计算目标,不断地调整参数。

【得到的成果】

当我们把全部互联网搜集到的知识,都喂给这个拥有数十亿级参数的超大模型,完成参数的训练后。我们就得到了一个可以根据“上文”预测下文的预测模型。

而在预测时:

1、每一次预测,都根据上文输入的全部内容,只输出一个下文“token”

2、根据上文输入的全部内容,本质输出的结果是,各个 token 出现的“概率”,然后基于这个概率进行一次抽样,输出一个下文“token”。
正因为存在这个抽样,而不是直接就只取概率最大的 token,因此,即使一样的上文,每一次得到的下文都是不完全一样的。

我们得到的,只是一个根据上文不断预测下文 token的预测器, 且是随机的,每次的预测结果都不一样;还并不是一个能回答问题的助理(assistant)。

我们把这一步得到的模型叫做 base model。

案例:下图这个例子很有意思。模型之所以能回答这个问题,并不是因为它理解了这个问题以及会进行计算,而是大概率 2+2 这样的问题在喂给模型的训练数据中出现过,模型能够回忆出来。而如果放任模型不断地输出下文,它就开始走向了跟问题完全没关系的哲学领域的内容当中…此时的模型,还不知道应该如何正确地回答问题。

【这个预测模型的本质】

base model 的本质,是互联网内容的模拟器。相当于把整个互联网的内容,都压缩成一堆参数。而且这些内容是模糊的/有损的、概率性的/统计性的。

特性:

  • 它是一个token级别的互联网内容模拟器
  • 具有随机性/概率性——每次运行都会得到不同的结果
  • 它能凭借记忆逐字复述一些训练文档:模型的参数有点像互联网的一个有损压缩文件,大量有用的世界知识存储在模型的参数中
  • 通过巧妙设计提示词,你可以激活其记忆,输出与提示词相关的内容

但我们还能让模型变得更好,于是咱们来到了模型训练的第二步。

第二步、后训练之“监督微调”

【背景】

完成预训练后,我们已经得到了一个可以根据“上文”预测“下文”的预测模型了,唯一的问题是,它还不大会处理“问答”这种场景中的下文预测。

要解决这个问题,很容易想到,那就是增加“问答类内容”的样本量,再训练一下模型对这方面“上文”的处理能力。这就是”监督微调“的核心原理。

这个阶段的模型训练方法,与预训练阶段是相同的,唯一改变的是数据集的类型,变成了一系列“对话问答”类的内容。

【核心流程】

1、构建对话问答类 token 序列

我们构建了<|im_start|>、<|im_sep|>、<|im_end|>等在预训练时没有的,全新人为定义的特殊token,用于把对话内容结构化,变成一种对话内容特有的 token 序列。

这些特殊 token 就像对话的‘分隔符’,明确告诉模型‘<<|im_start|>user’后面是用户的问题,‘<<|im_start|>assistant’后面是正确回答,帮助模型学会‘问答对应’”。

2、构造海量的对话问答类内容用于模型训练

接下来,我们构建海量的,涉及各个领域的对话问答内容,供给模型进行训练。这一步,需要耗费非常非常大的人力投入。所谓没有“人工”,何来“智能”。

而随着现在大语言模型的不断进步,也会通过大语言模型来生成这些数据,用于新的模型训练。

【得到的成果】

完成训练后,我们就得到了一个能够回答问题的模型,我们称之为SFT(supervise fine tuning 监督微调) model。

这个模型的本质,是结合了预训练知识, 以及从后训练数据集中习得的模仿人类回答问题方式,的一个预测模型。

听起来,是不是很像我们在学习完课本的经典题目的解法后,依样画葫芦地解决类似的问题?

案例:完成这一步,模型已经能很标准地回答一些常见问题了。

【关于幻觉产生的原因,以及其缓解方法】

幻觉产生的原因

如上文描述,模型的本质是一个概率预测模型,回答会基于统计学从概率中抽样给出一个答案,即使答案的概率本身在模型计算结果中非常低,也有出现的可能。

案例:下图这个例子中,后训练数据集曾经出现过”who is“这样的问题案例。在模型完成训练后回答类似问题时,即使向模型提问一个完全不存在的人orson kovacs,模型也会模仿后训练中这类问题的回答方式,基于预训练的知识模拟出一个答案,即使这个答案在模型计算结果中概率是非常低的,模型也会选择进行输出,因此就会出现胡编乱造的回答。

缓解方法

1、让模型学会说不知道:丰富后训练数据集,添加会回答”不知道“的案例

2、让模型学会借助工具:对于模型不懂的内容,让模型使用包括联网搜索、计算工具等能力,让搜索结果、计算结果成为模型的信息源,也就是成为输入进模型的“上文”的一部分,再输出答案

要缓解幻觉问题,可以引入以下几类训练数据:

第三步、后训练之“强化学习”

【背景】

在监督微调的过程中,后训练数据集的提供者,教会了模型按他们的方式去回答问题,模型是他们的模仿者。

但对于一个问题,是有多种解法的。而我们作为人类其实并不了解模型,我们并不知道哪个解法是更能帮助模型获得正确答案的。就像小时候做数学题,每道题都有几种解法,而我们每个人的脑回路是不一样的,并不是书本给的经典解法就最适合自己,最终需要我们自己摸索出最适合自己的,最舒适的解法,可以帮助我们自己获得最高的准确率,这个摸索过程中,甚至能迸发出比经典解法更优的全新解法。

而这就是我们这一步需要做的事情。我们只给到题目与答案,然后让模型自己摸索出最适合自己的解法。

【核心流程】

1、我们提供问题,然后让模型自己去生成一系列的解法

2、这些解法中,只有一部分是正确的

3、我们再从这些解法中找到最优秀的解法(既准确,又精简高效的)

4、把这个优秀解法作为训练数据集,去用于模型训练

5、如此往复,重复很多很多次…

【得到的成果】

通过强化学习,我们得到了两个喜人的效果:

1、模型产生了思维链(chains of thought)。
这就是我们使用 DeepSeek 等最前沿的大模型的时候,看到的思考过程。因此,我们把他们称之为推理模型(reasoning model)。

思维链的一个很重要的特点,在于让模型有了思考的过程,而不是一上来就回答问题。而这个思考的过程,都会成为“上文”的一部分,还记得大模型的预测原理,是基于全部的上文推测出下一个 token,因此上文的内容越长,越完整,预测出来的“下文”质量自然也会越高。

2、模型能产生超越人类已有知识的全新解法。

强化学习第一次出圈,就是击败人类最强围棋手的 alpha go。它正是通过强化学习,人类只告诉了它围棋的规则跟目标,然后它通过自己不断的训练,最终训练出了人类围棋历史上从来未有过的落子方法,最终超越了人类。如果它只是限制在模仿学习人类围棋手的历史案例,那它是不可能超越人类的。
当然,大语言模型的训练,要比 alpha go难得多。 因为围棋只是一个闭合领域问题(规则有限),而大语言模型要面对的是一个开放领域问题(要解决各种各样的问题)。因此,需要找多足够多的练习题给到模型进行训练。

总结

最后,再回顾一下模型训练的三个环节:

1、预训练:获取基本知识

2、监督微调:查看大量实例,模仿专家回答问题的方式

3、强化学习:提供习题,让模型自己不断训练、试验、纠错,直到找到正确的解法

在上述训练方法的基础上,模型不断进化,并发展到现在支持多模态、多流程任务的模型。

反思:预测,就等于逻辑吗?

了解完大语言模型的训练原理后,最让我惊讶的是,我们现在使用的,可以解决这么多复杂问题,甚至连高深数学题目都能解答的AI,本质上只是一个统计学的“预测模型”吗?我们人类独有的所谓“逻辑”能力,就这么简单被一个“预测”模型所战胜了?

但转念一想,会不会是,我把“逻辑”想的太高深了。会不会是,我们所拥有的“逻辑”,本质上也是一种我们基于过去经验而对当前事情的一种“预测”?当我们面对一个问题时,所想到的解题路径,也是我们基于自己过往经历类似事情时的成功或失败的反馈,而得到的属于自己的一个解法。

恰逢最近听了孟岩《无尽的探索》那期播客,里面提到了美国计算机科学家、神经科学家杰夫·霍金斯的一本书《千脑智能》,里面对大脑机制的阐述正是类似的:

或许,我们人类自诩独有的“逻辑”与“智慧”,就真的只是一种“预测模型”而已……

或许,硅基生命,已然诞生,正在以一种独特的方式,重走着碳基智能的进化之路……

AI大模型从0到精通全套学习大礼包

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

只要你是真心想学AI大模型,我这份资料就可以无偿共享给你学习。大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!

如果你也想通过学大模型技术去帮助就业和转行,可以扫描下方链接👇👇
大模型重磅福利:入门进阶全套104G学习资源包免费分享!

01.从入门到精通的全套视频教程

包含提示词工程、RAG、Agent等技术点

02.AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线


03.学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的


04.大模型面试题目详解

05.这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!


如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

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

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

相关文章

MCP与A2A深度解析:AI系统集成与智能体协作的未来之路

MCP与A2A是AI系统集成的两大关键协议。MCP解决AI安全调用工具与数据的问题&#xff0c;提供资源、工具和提示模板三大能力&#xff1b;A2A则规范智能体间的协作&#xff0c;通过任务、消息和产物等组件实现高效接力。它们共同构成AI系统的分层规范&#xff0c;将开发范式从&quo…

【升级版本】基于多目标粒子群算法的微电网优化调度【风光、储能、柴油、燃气、电网交互】附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真…

【实时无功-有功控制器的动态性能】【带有电流控制的两级电压源变流器(VSC)】采用αβ阿尔法-贝塔转换进行电流反馈的实时无功功率控制器附Simulink仿真

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真…

【2026最新】大模型面试全攻略:23家科技公司面试经验+高频考点总结,助你轻松上岸

本文详细记录了作者对23家大模型相关公司的面试经历&#xff0c;包括智元机器人、面壁科技、Minimax、阿里夸克、蚂蚁等公司的面试流程与结果。作者总结了大模型面试的高频考点&#xff0c;如多头注意力机制、框架并行方式、BERT/GPT模型细节、大模型训练技巧等&#xff0c;并分…

【使用Copulas对金融时间序列进行波动率估计与预测,涵盖GARCH、EWMA和EqWMA等模型】基于件风险价值(CVaR)、极值理论(EVT)、风险因子及蒙特卡洛模拟进行市场风险管理附Matlab

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真…

个人AI产业定义、产业架构与发展趋势白皮书|附60页PDF文件下载

本报告以用户为中心&#xff0c;立足于产业与生态&#xff0c;系统阐述个人AI时代来临的产业逻辑与必然趋势&#xff0c;厘清个人AI的基础架构与核心特征&#xff0c;剖析其对产业链、价值链及竞争格局带来的结构性变革。报告亦将对个人AI主导的未来生态进行前瞻展望&#xff0…

企业AI开发与技术实践白皮书2025|附36页PDF文件下载

白皮书探讨了在GenAI时代&#xff0c;企业如何利用大模型技术实现智能化转型。白皮书指出&#xff0c;大模型能力的不断提升为企业带来了无限想象力&#xff0c;但也面临着战略规划、数据治理、算力资源、场景适配等方面的挑战。企业需要构建覆盖顶层设计、技术选型、数据治理、…

【数据驱动】【航空航天结构的高效损伤检测技术】一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

【柔性作业车间调度问题FJSP】基于鹅优化算法(GOOSE Algorithm,GOOSE)求解柔性作业车间调度问题(FJSP)研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真…

如何保证服务高可靠? - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

P1462 通往奥格瑞玛的道路

点击查看代码 #include<bits/stdc++.h> using namespace std;typedef long long LL; typedef pair<LL,int> PII; const int N=1e4+10,M=1e5+10;int h[N],ne[M],idx,e[M],w[M]; int n,m; LL b; LL f[N]; LL…

Codeforces Round 1073 Div.1 写题记录(编号 2190)

A 显然有序 Bob 赢,那么无序的情况就是选出一个不升子序列变成不降子序列,考虑一定有这么一个分界点,是的前面全部取 \(1\),后面全部取 \(0\),看一下合不合法即可,当然有一种更简单的构造方式是排完序后比对哪些…

动态系统思维:告别僵化内耗的破局指南

职场中总有这样的困惑&#xff1a;公司制定了标准化流程&#xff0c;却越执行越低效&#xff1b;团队追求“绝对有序”&#xff0c;反而失去创新活力&#xff1b;个人埋头重复固有工作&#xff0c;却在变化中逐渐被淘汰。我们总以为“稳定有序”是生存之道&#xff0c;却忽略了…

Vue 1.26

一、指令补充 1.指令修饰符 &#xff08;1&#xff09;按键修饰符 keyup.enter → 键盘回车监听 <body><div id"app"><h3>keyup.enter > 监听键盘回车事件</h3><input keyup.enter"fn" v-model"username" type&…

一站式指南:Obsidian Typora 统一写作规范与存量内容迁移实战

一站式指南:Obsidian & Typora 统一写作规范与存量内容迁移实战 引言 在内容创作领域,选择合适的写作工具和遵循统一的规范是提升效率和保证质量的关键。然而,许多创作者在使用 Obsidian 和 Typora 进行 Markdo…

UnicodeDecodeError: ‘charmap‘ codec can‘t decode byte 0x81 in position 17: character maps to <undefi

目录 问题原因分析1. **编码不匹配**2. **常见场景** 解决方案**方案1&#xff1a;设置正确的字符集连接MySQL****方案2&#xff1a;Python脚本中的解决方案****方案3&#xff1a;检查并设置系统环境编码****方案4&#xff1a;MySQL服务器端配置检查****方案5&#xff1a;在代码…

golang中使用 sort.Interface 实现复杂多级排序

举两个例子&#xff0c;说明 sort.Interface实现多级排序。 例子 1 学生成绩排序&#xff08;先按成绩降序&#xff0c;成绩相同按姓名升序&#xff09;package mainimport ("fmt""sort")type Student struct {Name stringScore int}type ByScoreAndName …

MySQL 中的 utf8 vs utf8mb4 区别

目录核心区别详细对比1. **编码范围不同**2. **历史背景**3. **实际影响最明显的场景**4. **存储空间差异**5. **性能差异**关键限制**索引长度限制**实际使用建议1. **新项目一律使用utf8mb4**2. **现有系统迁移步骤**3. **连接配置**4. **排序规则选择**兼容性考虑**向下兼容…

指针,C语言的灵魂与噩梦:从入门到“放弃”的终极指南 [特殊字符]

深入理解指针&#xff0c;让你的C语言技能实现质的飞跃&#xff01; 一、指针是什么&#xff1f;为什么它如此重要&#xff1f; 指针——这两个字让无数C语言初学者又爱又恨。简单来说&#xff0c;指针就是存储内存地址的变量。但它远不止如此&#xff01; 指针的三大核心意义…

SAGE-Net:融合语义信息的自动驾驶注意力预测框架

摘要 在自动驾驶领域,准确预测驾驶员的注意力焦点对于实现安全高效的驾驶决策至关重要。传统方法主要依赖人类眼动数据来构建显著性图,但这种方式存在明显局限性。本文介绍一种创新的语义增强注视检测方法(SAGE, Semantics Augmented GazE),通过将场景语义信息与原始眼动…