news 2026/3/11 6:04:16

程序员必看:构建大语言模型的四个关键阶段,建议收藏学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
程序员必看:构建大语言模型的四个关键阶段,建议收藏学习

文章详解了构建大语言模型的四个阶段:预训练(学习语言基础)、指令微调(遵循指令)、偏好微调(对齐人类价值观)和推理微调(强化推理能力)。从随机初始化模型开始,通过这四个阶段逐步优化,使大语言模型能够适应现实世界应用场景,完成从无到有的完整构建过程。


导读

本文将介绍从零开始构建大语言模型并使其适用于现实世界应用场景的四个阶段。涵盖:1. 预训练, 2. 指令微调, 3. 偏好微调, 4. 推理微调。

阶段0 :随机初始化的LLM

此阶段,模型的参数是随机或基于某种分布随机初始化的,也就是说此时模型是一无所知的。你问它“什么是LLM?”,会得到一串胡言乱语的回复,也就是next token是随机,随机的“词语接龙”。因为此时它尚未见过任何训练数据,只拥有随机的权重。

此阶段你需要知道的是(训练)一个decoder-only架构的大语言模型由哪些部分组成:

  1. Tokenizer:分词器;
  2. Embedding Block: 文本/多模态嵌入;
  3. Positional embedding:位置嵌入/RoPE;
  4. Attention Block:注意力模块,MHA/MQA/GQA/MLA;
  5. Masked Attention:掩码注意力机制(训练阶段),Causal Masking;
  6. MLP/MOE;
  7. Engram:Conditional Memory;
  8. RMSNorm与残差连接;
  9. AdamW …

阶段1 :预训练

此阶段通过在海量语料库上训练模型预测下一个token(令牌/词元),来教授 LLM 语言基础知识。通过这种方式,它吸收了语法、世界知识等。

由于训练方法的原因导致它不善于对话,它只是在你输入的prompt之后接续生成文本,也就是词语接龙。

在阶段0你了解了一个大语言模型构成,到达此阶段你需要了解的是训练框架的选择以及准备预训练语料库。当然预训练一个大语言模型涉及到AI infra,计算集群、通信与存储、分布式训练等等,这是一个大工程。

阶段2 :指令微调

为了让模型能够对话,我们可以使用指令-响应对进行指令微调。这有助于大模型学习如何遵循提示并格式化回复。

现在它可以:

  • 回答问题
  • 总结内容
  • 编写代码,等等。

此阶段你可能需要了解的是参数微调的一些高效方式(PEFT),比如LoRA及其变体,基于Prompt的微调,比如Prefix-Tuning、P-Tuning等,还有一类是Adapter Tuning,通过插入适配器的方式。

这时候一些微调框架是你所需要的,比如Peft、Lamma-factory、unsloth等。

你可能还需要注意的是不同的开源模型使用的微调数据集的组织形式有所不同,比如ChatML、ShareGPT等,Qwen系列模型送入模型训练的格式就是使用的类似ChatML的格式。

微调仅仅是微调,因此你只需要几个epochs就可以了,小心造成大模型的灾难性遗忘问题。

至此,我们可能已经利用了整个原始互联网存档知识,投入了预算用于人工标注指令-响应数据。那么,我们能做些什么来进一步改进模型呢?我们进入了强化学习的领域。

阶段3 :偏好微调

你一定在 ChatGPT 上见过这个界面,它问:你更喜欢哪个回答?

回复 1
感谢您提供详细的错误信息和最新代码。这个错误似乎与“collate_fn”函数内部如何处理数据有关。让我们通过修正“collate_fn”以正确处理来自xxx的数据格式来解决此问题。

  1. 更新“collate_fn”函数:该函数应直接处理从“GPT2Dataset”接收到的张量列表,而无需像处理字典格式数据那样尝试提取“input_ids”和“attention_mask”。
  2. 移除诊断打印语句:“collate_fn”中的诊断打印语句不再必要,可以移除以清理函数。

以下是更新后的“collate_fn”:

代码略…

请务必将脚本中现有的“collate_fn”函数替换为此更新版本。用“pad_sequence”函数确保一个批次中的所有序列具有相同长度,并且创建的“attention_mask” 与 “input_ids”形状相同,所有元素设为1(因为所有词元都是…

回复 2

感谢您提供详细信息和当前代码状态。问题似乎出在“collate_fn”函数中。具体来说,是“input_ids”和“attention_mask”被提取和处理的方式。

在您的xxx类中,“samples”列表中的每一项都是一个表示分词后输入ID的张量。“collate_fn”函数应正确处理这些张量。以下是修改后的“collate_fn”及其集成方式:

  1. 更新“collate_fn”函数:

    由于“data”中的每一项都是张量(而非字典),我们直接处理这些张量。

    我们使用“pad_sequence”将所有张量填充到相同长度。

    对于注意力掩码,我们创建一个与“input_ids”形状相同,并在“input_ids”非填充位置设为1的掩码。

  2. 确保在您的“DataLoader”中使用此“collate_fn”:

代码略…

这不仅仅是为了反馈,更是宝贵的人类偏好数据。OpenAI 利用这些数据通过偏好微调来微调他们的模型。

在偏好微调中:

用户在两个回答之间进行选择,以产生人类偏好数据。
然后训练一个奖励模型来预测人类偏好,并使用强化学习来更新 LLM。

上述过程称为RLHF,而用于更新模型权重的算法称为PPO

它教会 LLM 即使在没有“正确”答案时也能与人类价值观对齐。

此阶段你需要有一些强化学习的知识,需要厘清一些强化学习的概念。比如PPO所需要的四个模型,奖励模型、价值模型、参考模型和策略模型,以及4个模型之间的协作方式,On-policy以及Off-policy。除了PPO之外,还有一些PPO算法的演进算法,比如TRPO,deepseek用的GRPO,Qwen用的GSPO等。当然最简单的DPO算法也许也会有一些作用。

偏好微调的框架比如Hugging Face的开源库trl、OpenRLHF等。

阶段4 :推理微调

在推理任务(数学、逻辑等)中,通常只有一个正确的回答和一系列确定的步骤来获得答案。所以我们不需要人类的偏好,我们可以用正确性作为信号。这叫做推理微调。

当然,大模型本身具有推理能力,只是这种能力没有直接形成文本生成出来,我们要解决的是激发它的这种推理能力,使其显式的生成正确推理内容。

推理微调步骤:

  • 模型对输入的Prompt生成答案。
  • 将答案与已知正确答案进行比较。
  • 根据正确性分配奖励。

这被称为带可验证奖励的强化学习。DeepSeek 的 GRPO 是这方面的一种流行技术。

使模型显式输出推理除了推理微调之外,通过提示器工程来激发是一种trainning free的方法,不过要保证推理的准确性就需要微调了。

以上就是训练 LLM 的四个阶段。

从一个随机初始化的模型开始。在大规模语料库上进行预训练。使用指令微调使其遵循指令。使用偏好和推理微调来优化回答。

如何学习AI大模型?

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!


第一阶段:从大模型系统设计入手,讲解大模型的主要方法;

第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

大模型全套视频教程

200本大模型PDF书籍

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

大模型产品经理资源合集

大模型项目实战合集

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/8 16:01:01

从传统AI到 Agentic AI:教育技术中,提示工程架构师的转型之路!

从传统AI到Agentic AI:教育技术中,提示工程架构师的转型之路 一、引言:当“机械导师”遇到“主动学习者” 你是否见过这样的场景? 一个学生用某款英语背单词APP,连续3天收到“abandon”的复习提醒——哪怕他早就把这…

作者头像 李华
网站建设 2026/3/9 11:35:36

论文开题不再愁!书匠策AI:你的学术“开题神器”

在学术研究的漫漫征途中,论文开题报告就像是一座灯塔,为我们指引着研究方向。它不仅是对研究项目的初步规划,更是向评审专家展示研究价值与可行性的重要窗口。然而,对于许多研究者,尤其是初涉学术领域的新手来说&#…

作者头像 李华
网站建设 2026/3/4 16:03:55

python + vue 健康饮食食材烹饪管理系统vue3

目录健康饮食食材烹饪管理系统(Python Vue3)摘要系统概述技术栈核心功能扩展性应用场景项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作健康饮食食材烹饪管理系统(Pytho…

作者头像 李华
网站建设 2026/3/9 22:55:37

【一竞技】LCK第一赛段:落后一万四惊天逆转 T1 2比0横扫KT!

北京时间1月24日,LCK赛区第一赛段的比赛继续进行,昨天LCK杯T1和KT的BO3,本场比赛可以说KT是将心态给打崩了,在领先一万四的经济情况下,被T1完成了惊天逆转,让这一场传统的通讯社大战再一次成为T1的舞台&…

作者头像 李华
网站建设 2026/3/10 18:35:19

10. 构造方法和析构方法

1.构造方法 2.析构方法1.构造方法 a.核心定义构造函数是类的特殊成员函数, 当对象被创建时自动调用, 唯一作用是初始化对象的成员变量、分配资源(如动态内存、文件句柄、网络连接等)b.语法核心特点c.常见类型- 无参构造函数(默认构造)#include <iostream> #include <s…

作者头像 李华
网站建设 2026/3/10 13:32:47

用Python requests库玩转接口自动化测试!测试工程师的实战秘籍

接口自动化测试是提升测试效率的关键&#xff0c;而Python的requests库因其简洁易用、功能强大&#xff0c;成为测试工程师的“瑞士军刀”。 但你是否还在用requests.get()和requests.post()写重复代码&#xff1f;是否遇到过文件上传失败、Cookie管理混乱、响应断言复杂的问题…

作者头像 李华