AI绿皮书学习之路(二)-语言模型怎么训练
取自逻辑帧
一、Embedding(一)-从符号到数字
疑问:计算机只懂数学计算,它是怎么处理人类文字的?
1. 根本矛盾:符号 vs 数字
人类语言是“符号系统”(比如“猫”这个字),本身没有数值大小。
大模型(Transformer)是“数值计算系统”,只能做加减乘除。
因此,必须把文字变成数字,模型才能工作。
2. 第一次尝试:One-Hot 编码(独热编码)
做法:给每个词分配一个专属位置。假设词表只有5个词,那“猫”就是
[1, 0, 0, 0, 0],“狗”就是[0, 1, 0, 0, 0]。致命缺点:
维度灾难(太浪费):如果大模型有5万个词,每个词就要用5万维的向量来表示,里面全是0,极度浪费空间。
丢失语义(没感情):在这种编码下,任何两个词之间的相似度都是0。在电脑眼里,“猫”和“狗”的亲疏远近,跟“猫”和“吃”没有任何区别。
形象类比:就像身份证号,能区分每个人,但看不出谁和谁是兄弟,谁和谁是同事。
3. 革命性方案:Embedding(词嵌入)
核心思想:不用那种全孤立、全是0的超长向量,而是用低维、稠密、充满语义的小数向量来表示词(比如把5万维缩减到几千或上万维)。
怎么运作:每个词都变成一串小数(如
[0.2, -0.5, 0.7...])。这串数字不是一成不变的,而是大模型在海量文本中自动学习出来的。它们共同编码了词的各种特征(如:是不是动物、喜欢吃什么、经常和什么词一起出现)。形象类比:就像DNA特征向量,里面记录了身高、体重、智商等各种隐性特征。此时,电脑不仅能区分“猫”和“狗”,还能通过计算发现它们在语义空间里靠得很近。
总结:One-Hot 编码只能区分词,而 Embedding 既能区分词,还能让电脑真正“理解”词与词之间的关系。
二、词向量的魔法
1、什么是 Embedding?
通俗来说,Embedding(词向量)就是连接“人类文字世界”和“计算机数字世界”的桥梁。因为计算机本身是看不懂文字的,所以需要把每个词变成一串数字来理解。
2、词向量的神奇魔法:语义代数
词向量最厉害的地方在于,它不仅是随机的数字,还包含着词的含义,甚至可以做加减法数学运算。
例如,国王减去男人,再加上女人,其结果会非常接近女王。把国王去掉男性属性,就剩下了权力,再加上女性属性,就变成了女王。
类似的例子还有:鱼减去水加上天空等于鸟;大减去小加上长等于短。这证明了语言并不是随机堆砌的,它背后有内在的数学和几何结构。
3、词向量是怎么学出来的?
这些神奇的数字不是工程师手动填写的,而是大模型自己在海量文本中训练出来的。
刚开始,模型给每个词分配的数字是完全随机的,没有任何意义。
接着,模型在数百万篇文章里进行上下文预测。当它看到“猫喜欢吃鱼”、“猫抓老鼠”之后,就会自动调整数字。
经过无数次微调,常常一起出现、用法相似的词,它们的数字就会变得非常接近;而毫无关系的词,数字就会离得非常远。
4、ChatGPT 处理文本的完整流程
当我们对 ChatGPT 输入一句话时,它会经历以下几步:
首先是分词,把句子切分成一个个Tokenization(分词)。
然后是变成 ID,把每个词变成词表里对应的唯一数字编号。
接下来是查表换向量,用这个 ID 去一个巨大的密码本里查出它对应的数字向量。
最后是模型计算与输出,把这些代表语义的数字送入大脑进行复杂的数学计算,最终预测并吐出下一个最可能出现的词。
5、总结
总的来说,Embedding 是大模型理解人类语言的基石。它通过将文字转化为包含语义关系的低维稠密数字向量,成功将复杂的语言规律和几何空间里的数学计算联系在了一起。正是这种“把意义数学化”的机制,才让 ChatGPT 能够像人类一样理解上下文并流畅地对话。
三、意义的数学化
1、什么是意义的数学化
对于“猫”这个词,人类用汉字或英文表示,计算机用二进制编码,而大模型(如ChatGPT)则用一串长长的数字(词向量/Embedding)来表示。语言学上认为,一个词的真正意义并不在符号本身,而在于它与其他词构成的关系网络(例如猫和狗都是宠物,猫会吃鱼,猫很可爱)。Embedding技术正是用数学向量的方式,把这种复杂的“关系网络”编码成了数字。AI虽然没有人类的感性经验,但它通过在海量文本中观察一个词与其他词同时出现的规律,实现了统计学意义上的“理解”。
2、有趣的向量加减法实验
因为词向量捕捉了词语之间的关系,所以它们可以像数字一样进行神奇的加减运算。比如将“火焰”和“水”的向量相加,会得到介于两者之间的“蒸汽”或“云雾”;如果用“火焰”减去“水”,去掉冷湿属性后就会得到“干燥”或“沙漠”。同理,“夜晚”加上“火焰”会变成黑暗中的光亮——“篝火”;“白天”减去“夜晚”去掉所有黑暗成分,就会得到极致的光明——“正午”。这些实验证明了向量空间能够极其微妙地组合与拆解语义。
3、哲学家与工程师的百年巧合
这是一个科学与哲学殊途同归的故事。1916年,语言学家索绪尔在书中提出“词的意义在于与其他词的差异关系”,这属于哲学思辨。而97年后的2013年,Google的工程师团队为了让计算机更高效地表示词语,开发了Word2Vec算法。他们完全没有读过索绪尔的理论,只是纯粹从工程和数据的角度出发,却惊人地发现训练出的向量可以做“国王 - 男人 + 女人 = 女王”这样的代数运算。两代人在不同时空、用不同路径证明了同一个真理:语言的本质是关系网络。
4、如何衡量向量相似度
在向量世界中,我们使用“余弦相似度”来衡量两个词的亲疏程度。它不看向量的绝对大小(长度),只看它们在空间中的“方向”是否一致。如果两个向量方向完全相同,相似度就是1;如果相互垂直完全无关,相似度就是0(例如猫和狗在传统One-Hot编码下就是垂直无关的);如果方向完全相反,相似度就是-1。由于余弦相似度值域固定在-1到1之间,且只关注语义方向,因此成为了大模型判定词语相关性的最佳数学工具。
5、整体核心总结
通过Embedding(词向量)技术,将人类语言中抽象的“语义关系”转化为了可以在多维空间中进行加减运算的“数学向量”。这种纯粹基于数据和统计的关系网络构建,不仅完美印证了百年前结构主义语言学的哲学洞见,也通过余弦相似度等数学公式,为计算机理解人类世界的逻辑提供了坚实的底层技术支撑。
四、预训练(一)-本质
1、什么是预训练
预训练就像是让AI“读万卷书”来积累知识。它的核心方法非常简单,就是让模型在海量的文本数据中做“文字接龙”,不断去预测下一个词。通过高达数亿次的尝试、对比和调整,AI就能逐渐掌握语言的规律,变成一个懂语言的专家。这个过程通常包含收集数据、定义任务、训练模型和训练完成四个步骤。
2、预训练是如何自动出题的
互联网上的网页、书籍和维基百科等原始文本在进入训练前,会先被切成一个一个的词块(称为Token)。系统会自动把这些词块切成无数个“填空题”,而答案就在原文里。比如一句话被切成六个词,系统就会从左到右自动生成五道填空题,让模型根据前面的词去猜下一个词是什么。
3、模型是如何在训练中学习的
训练是一个“预测、对比、调整”的循环过程。每次给模型看一段输入,它会随机猜一个答案。系统把它的猜测和原文的正确答案进行对比,发现猜错了,就会轻微调整其内部的1750亿个参数,让它下次尽量猜对。在阅读3000亿个词的过程中,这种轻微的参数调整会重复3000亿次,模型就是这样学会语言规律的。
4、自监督学习改变AI的根本原因
传统的监督学习需要人工去给数据打标签,比如判断一句话是正面还是负面情绪,或者人工翻译句子。这种方式成本高昂、速度慢、而且任务单一,无法规模化。而预训练采用的是“自监督学习”,它的最大优势在于答案就在原文里,不需要任何人手来标注,不仅实现了零标注成本,还能让训练数据量实现爆炸式增长。
5、总结
预训练的本质是让模型在海量文本上通过自监督学习的方式,自动将原文切分成无数个预测下一个词的填空题。它彻底摆脱了传统人工标注数据的成本束缚,让大模型可以通过处理数千亿级别的词汇,高效且规模化地掌握人类语言的底层规律。
五、预训练(二)-代价与数据
1、预训练的昂贵代价
大语言模型的预训练是一场只有少数科技巨头才能参与的资源豪赌。以2020年的GPT-3为例,它需要约1万块GPU并持续运行34天,总算力消耗惊人。其耗电量相当于120个美国家庭一年的用电量,资金总成本估算在1200万美元以上。而2023年的GPT-4训练成本更是飙升至约6300万美元。这种高昂的资金、算力和技术门槛,导致大模型市场目前被极少数有巨头支持的玩家所垄断。
2、数据清洗与质量策略
在预训练中,数据质量决定了模型的上限。互联网上的数据鱼龙混杂,直接喂给模型会导致其学到错误知识、偏见和低质量表达,因此必须进行严格的数据清洗。GPT-3采取了按比例组合的数据策略:60%是经过严格过滤去重的海量低质量网页数据(提供多样性),其余则由Reddit高赞链接、精选书籍以及极高质量的维基百科数据组成。通过大量低质量数据覆盖广度,少量高质量数据建立标准,从而构建出无法被轻易复制的数据护城河。
3、纯预训练模型的局限性
纯预训练模型虽然强大,但存在三个明显的致命缺陷。第一,它没有“任务意识”,只会顺着文字逻辑玩“接龙”而不会真正“回答问题”;第二,它缺乏价值观,没有对齐人类道德,可能会给出有害的输出(如教人破解密码);第三,它的知识具有时效限制,无法知晓训练截止时间之后发生的事情或实时新闻。
4、微调与后续优化手段
为了解决预训练模型的局限性,必须通过后续的三个步骤进行优化。首先是监督微调(SFT),通过提供高质量的问答对,教会模型理解并执行“回答问题”的任务;其次是强化学习对齐(RLHF),引入人类反馈以赋予模型价值观,使其学会拒绝有害请求;最后是外挂知识库(RAG),通过检索增强生成技术为模型接入实时外部信息,弥补知识滞后的短板。
没有任务意识 ——> 监督微调(STF)
缺乏价值观 ——> 强化学习对齐(RLHF)
知识存在时效性 ——> 外挂知识库(RAG)
5、核心总结
预训练是大模型开发中最重要也最昂贵的第一步,它是一场极度消耗算力和资金的资源竞赛,且对训练数据的清洗和质量控制有着极高的要求。虽然预训练赋予了模型强大的语言表达能力,但由于其存在不会回答、缺乏价值观和知识滞后等局限,因此必须依赖后续的监督微调、强化学习对齐以及外挂知识库等技术,才能将一个只会“文字接龙”的原始模型真正打造成听懂人话、安全有用的AI应用。
六、预训练(三)-为什么叫预训练
1、为什么叫“预”训练
大语言模型的训练是一个完整的多阶段流程,而“预训练”只是最重要、成本最高的基础第一步。在这个阶段,模型通过阅读海量无标注文本去学习通用语言能力,学会了“文字接龙”(预测下一个词),成了一个什么都懂一点、但还不会做具体任务的“通才”。
在这之后,模型还需要经历“监督微调(SFT)”来学会回答问题和执行具体指令,以及“强化学习对齐(RLHF)”来让回答更安全、更符合人类的偏好。经历了这些后续精雕细琢的步骤,模型才真正变成了像 ChatGPT 这样好用的智能助手。
2、大模型行业的有趣见闻
在目前的 AI 行业中,有几个非常有趣的现象和故事:
第一是谷歌的开源策略。谷歌虽然以开源闻名,但其最顶尖的旗舰模型 Gemini(双子座)是完全闭源的,只通过 API 提供服务;它只开源了参数量较小的轻量级模型 Gemma(小宝石)。这种“大双子闭源保核心,小宝石开源树旗帜”的做法,与其当年开源 Android 操作系统却闭源核心 Google 服务的商业策略如出一辙。
第二是互联网的“公共图书馆”——Common Crawl。这是一个每年预算仅约 200 万美元的非营利组织,从 2008 年开始免费爬取并开放了超过 250 PB、3500 亿个网页的数据。它解决了一般研究团队自己爬取数据所面临的高昂成本与版权违法风险。包括 GPT-3、LLaMA、Gemini 以及国内的 DeepSeek、Qwen 等几乎所有知名大模型,都大量使用了它的数据,它是 AI 行业投资回报率最高的公益项目之一。
第三是小公司如何拥有自己的大模型。预训练一个顶级大模型(如 GPT-3)需要耗费上千万美元,但许多小公司也能推出自己的对话模型。这是因为 Meta、阿里、DeepSeek 等机构选择将自己预训练好的模型权重开源。小公司不需要重复付出最昂贵的预训练成本,只需要在其基础上,用 1% 的成本和少量的标注数据进行微调与对齐,就能快速让模型学会干活。计算机领域程序员这种无私的开源精神,极大地降低了大模型的门槛,加速了整个技术的发展。
3、核心总结
预训练赋予了模型通用的语言规律和海量知识,奠定了最坚实、最昂贵的基础。而得益于 Common Crawl 这样的开源数据项目,以及各大科技公司和程序员群体的开源共享精神,AI 技术的门槛被大幅拉低,使得整个行业能够基于开源的预训练成果,用极低的成本微调出各种各样高效的 AI 助手。
七、监督微调(一)-概念与本质
1、预训练模型的局限:没有任务意识
纯预训练模型(如未微调的 GPT-3)在海量文本上只学会了“预测下一个词”。因为缺少对任务的理解能力,它无法分辨什么是提问、什么是陈述,也不知道什么是“好”的答案。当用户提出问题时,它往往只会把问题当成文章的开头,像续写小说一样继续“接龙”下去,甚至无法纠正问题中的常识性错误。
2、什么是监督微调(SFT)
监督微调是指在预训练模型的基础上,使用由人类专家标注的“高质量问答对”进行针对性训练。如果说预训练是让模型“博览群书”成为学者,那么监督微调就是“教他如何当老师”。在这个阶段,模型不再是盲目摸索,而是在人类标准答案的“监督”下,学会识别用户意图、组织答案并保持有帮助的语气。因为需要人工标注,其数据规模远小于预训练。
3、核心词汇理解
在微调过程中有几个关键概念。监督微调(SFT)指用人工问答对做针对性训练;任务意识(Task Awareness)指模型区分问答、翻译等不同任务的能力;指令遵循(Instruction Following)指模型执行人类指令的能力;问答对(Q&A Pair)和人类标注(Human Annotation)则是构成这种高质量训练数据的核心要素。
4、为什么少量数据就足够
研究表明,大约 1 万到 5 万条高质量的示例就足以显著改善模型的指令遵循行为。这是因为大模型在预训练阶段其实已经掌握了足够多的知识,它只是不知道如何根据人类的指令去调用。监督微调并不是让模型重新学习语言,而是在已有能力的基础上调整其行为模式,因此几万条高质量数据就足够让模型学会“如何像助手一样对话”。
5、总结
纯预训练大模型虽然知识渊博,但由于缺乏任务意识,只会盲目“接龙”续写。监督微调(SFT)则是通过少量、人工标注的高质量问答数据,对模型进行针对性的行为规范训练。这一过程不增加新知识,而是教会模型理解人类指令、识别问答模式,从而将一个“只会接龙的通才”转化为“能够精准回答问题的对话助手”。
八、监督微调(二)-三个关键要素
1、高质量的问答对数据
监督微调的核心是高质量的问答对。这些数据主要来自两方面:一是AI训练师或众包人员人工编写,确保回答准确、友好且规范;二是从网络高质量问答社区中筛选。相比预训练动辄数千亿词的数据量,微调只需要数万到数十万条。在微调阶段,数据的质量远比数量重要,因为模型此时不是在学基础语言知识,而是在学习如何像人类一样有礼貌、结构清晰地回答问题。
2、微调的训练任务
微调的本质依然是预测下一个Token,但它的上下文变成了结构化的“问题-答案”格式。训练时,一个完整的问答对会被拆解成多个训练样本,模型根据前面的输入去预测下一个词,并与人类给出的标准答案进行对比,计算误差并调整参数。预训练的上下文是杂乱无章的随机文本,而微调的上下文具有明确的问答结构,这让模型学会了识别用户在提问,并在回答时采用清晰、有条理的组织方式。
3、参数的微调更新
微调与预训练在参数更新上有很大不同。预训练是从零或随机值开始,进行大幅度调整,耗时费钱;而监督微调是以预训练好的优秀参数为起点,进行小幅度的精调,成本大幅降低。微调时的学习率控制得非常小,通常比预训练小一个数量级。如果学习率过大,会破坏预训练已经学到的海量知识,如果太小则学不到新的问答模式,这就像在完成的画作上进行小心翼翼的细节修饰。
4、核心总结
监督微调是让大模型从“博学”走向“会表达”的关键阶段。它通过极高质量、数量较少的结构化问答数据,在极小的学习率下对预训练模型进行参数微调。预训练赋予了模型海量的语言知识,而监督微调则教会了模型如何理解用户的提问意图,并以人类习惯、喜欢且规范的结构化方式进行回应,实现了模型行为模式的成功转变。
九、监督微调(三)-对比与局限
1、微调前后的巨大变化
在没有经过监督微调(SFT)之前,纯预训练的大模型(如 GPT-3)本质上只是在做“文字接龙”。当你向它提问或者要求它写代码时,它往往只会围绕这个话题进行科普或长篇大论,却不会真正去“回答问题”或“执行任务”。
经过监督微调之后,模型(如 ChatGPT)发生了质的飞跃。它不仅能够听懂人类的指令,还会用友好、耐心的语气直接“做事”。比如面对常识错误时,它会礼貌地纠正并引导;面对写代码的要求时,它会直接给出可运行的代码、示例和原理解释,甚至还会主动询问是否需要更多帮助。
2、监督微调的局限性
虽然监督微调让模型学会了如何像一个助手一样去回答问题,但它依然存在三个明显的痛点。
第一,难以保证回答的一致性。面对同样的问题,模型给出的答案质量时好时坏,有时详细,有时简略。
第二,无法彻底杜绝有害建议。虽然模型在面对违法或危险提问时会给出警告,但由于它本质上只是在模仿训练数据,它可能在警告之后依然把具体的技术方法提供给用户。
第三,模型不会诚实地承认自己“不知道”。当面对无法获知答案的问题(例如用户的梦境)时,模型不会说“我无法知道”,而是会编造一段看似合理但实际没有意义的通用废话。
导致这些局限性的根本原因,是因为监督微调只是通过标注员写的例子教会了模型“回答的模式”,并没有教会它“什么是好答案的原则”。因为不同标注员的标准不同,模型学到的只是一堆例子,而不是真正的原则,这就需要后续的 RLHF(强化学习对齐)技术来解决。
3、冷知识:ChatGPT 的前身 InstructGPT
很多人以为 ChatGPT 是一夜之间蹦出来的,但实际上它有一个低调的前身叫 InstructGPT,早在 ChatGPT 发布前 11 个月就已经问世。
InstructGPT 已经完整采用了监督微调和 RLHF 的技术路线。它之所以没有像 ChatGPT 那样火爆全球,是因为它当时只以 API 接口的形式提供给开发者,没有一个对普通大众友好的网页对话界面。两者的核心技术几乎完全相同,而 ChatGPT 的成功在于它拥有更大的数据规模、更强的多轮对话能力,以及让所有人都能免费使用的网页产品形态。
4、核心总结
它成功让模型从只会“文字接龙”转变为能够“听懂指令并直接做事”的 AI 助手。但同时,监督微调也存在无法保证一致性、无法完全杜绝有害内容以及容易编造答案(幻觉)的局限性。技术的发展是循序渐进的,这也是为什么需要引入后续的 RLHF 技术来让模型真正做到有帮助、诚实与无害。同时,InstructGPT 与 ChatGPT 的对比也证明了,优秀的技术同样需要匹配优秀的产品形态才能爆发巨大的社会价值。
本文章仅供个人学习,如有侵权,请联系删除
评论