1. 项目概述与核心价值
如果你正在学习大模型(LLM)、强化学习(RL)或者视觉语言模型(VLM),并且被网上零散、晦涩的技术文章和公式搞得晕头转向,那么这个名为“LLM-RL-Visualized”的开源项目,绝对是你梦寐以求的宝藏。我最初接触这个项目时,感觉就像在茫茫的技术海洋里找到了一张清晰、详尽、且自带导航的“藏宝图”。
这个项目的核心价值,可以用一句话概括:它用超过100张原创的、高质量的架构图和技术图谱,将大模型与强化学习领域最核心、最复杂的算法原理和训练流程,进行了系统性的可视化拆解。它不是简单的概念罗列,而是真正从工程实践和算法本质出发,把LLM的结构、SFT微调、DPO/RLHF对齐、强化学习基础、乃至各种免训练的推理优化技术(如CoT、RAG),用一张张逻辑清晰的图表串联起来,让你一眼就能看懂整个技术栈的全貌和内在联系。
我自己在带团队和做技术分享时,最头疼的就是如何把Transformer的注意力机制、PPO的策略更新、DPO的隐式奖励这些抽象概念讲清楚。文字描述往往苍白无力,而原始的论文图表又过于学术化。这个项目完美地解决了这个问题。它就像一位经验丰富的架构师,把所有的技术模块都画成了标准的“工程图纸”,你不仅可以按图索骥理解原理,甚至能直接参考这些图来设计自己的训练流程或向别人讲解。
无论是刚入门的新手想建立宏观认知,还是有一定经验的开发者想深入某个细分领域(比如想搞清楚RLHF和DPO到底有什么区别),这个项目都能提供极大的帮助。它降低了理解门槛,但并没有牺牲技术的深度和准确性,这正是其最难能可贵的地方。
2. 项目内容深度解析与学习路径
2.1 内容架构:一张图看懂大模型与强化学习全景
项目的第一部分就放出了“王炸”——大模型算法总体架构图和强化学习算法图谱。这两张图是项目的总纲,建议任何学习者都从这里开始。
大模型总体架构图清晰地划分了从基础模型结构(LLM/VLM)、训练方法(SFT, RLHF, DPO等)、到推理优化技术(CoT, RAG, Function Calling等)的完整脉络。它帮你回答了一个根本问题:“我想让一个大模型变得有用,需要经历哪些关键步骤?” 这张图让你看到,预训练(Pre-Training)只是万里长征第一步,后面的监督微调(SFT)和基于人类反馈的强化学习(RLHF)或直接偏好优化(DPO)才是让模型“听话”和“有用”的关键。而推理阶段的思维链(CoT)和检索增强生成(RAG)则是提升模型实际表现的法宝。
强化学习算法图谱则更为宏大,它几乎囊括了主流强化学习算法的家族谱系。从基于价值的Q-learning、DQN,到基于策略的Policy Gradient、PPO、TRPO,再到Actor-Critic架构及其变种(如DDPG),以及多智能体、模仿学习等前沿方向,都被有机地组织在一起。这张图的价值在于,当你听到一个新算法时,可以迅速定位它在整个RL领域中的位置,理解它解决了什么问题,以及它和同类算法的异同。
学习建议:不要试图一次性消化所有细节。先把这两张总图当成“地图”,每次学习一个具体技术时,都回来看看它在地图上的位置,思考它前后左右关联了哪些技术。这种全局视角是避免“只见树木,不见森林”的关键。
2.2 LLM基础:从Token到完整生成的透明化拆解
项目对LLM基础的拆解非常细致,尤其是那张被作者称为“全网最大”的LLM结构全视图。这张图没有停留在“Transformer Decoder堆叠”这种笼统的描述上,而是具体到了输入层(Tokenization, Embedding, Positional Encoding)、多层Decoder的内部细节(MHA/GQA, FFN, Add & Norm),以及输出层(LM Head, Softmax, Decoding)的完整数据流。
对我触动最大的是它对生成(Decoding)过程的图示。很多材料只讲解码策略(如Beam Search, Top-P),但这个项目用流程图清晰地展示了:每一个新Token的生成,都需要将当前的序列(包含之前生成的所有Token)重新输入模型,走完所有Transformer层,最后从LM Head输出的概率分布中采样。这个看似简单的过程,却是理解LLM推理延迟和计算成本的基础。图里还贴心地对比了贪婪搜索、波束搜索等不同策略的搜索路径,让你直观感受“多样性”和“最优性”之间的权衡。
输入层和输出层的单独图示也极具实操指导意义。输入层那张图清楚地展示了文本如何一步步变成模型能吃的“数字粮食”——从分词到词嵌入,再到加上位置编码。这对于处理长文本、理解不同Tokenizer的差异(比如BPE、WordPiece)非常有帮助。输出层则详解了从隐藏状态到最终Token的“临门一脚”,包括Logits、Softmax和温度系数(Temperature)的作用,这些都是在实际部署和调参中必须搞清楚的细节。
2.3 微调技术:从全参数微调到高效适配的演进
项目的第三部分聚焦于监督微调(SFT),这是让通用大模型适应特定任务的核心环节。这里不仅介绍了全参数微调(Full Fine-Tuning),更重点剖析了目前工业界主流的参数高效微调(PEFT)技术,尤其是LoRA和Prefix-Tuning。
LoRA(低秩适配)的图解非常精彩。它用矩阵分解的视角,直观地解释了为什么一个大矩阵的参数更新(ΔW)可以用两个小得多的低秩矩阵(A和B)的乘积来近似。图里还给出了一个具体的例子:一个1024x1024的矩阵(约105万个参数),用秩r=2的LoRA近似后,只需要两个矩阵共4096个参数,参数量降至原来的0.4%。这完美解释了LoRA为何能极大减少训练时的显存占用和存储开销。
更关键的是,图示指出了LoRA中矩阵A和B的初始化技巧:A用随机高斯初始化,B用零初始化。这样做的目的是确保训练开始时,LoRA模块的输出接近零,不对原始预训练模型造成大的扰动,让微调从一个稳定的起点开始。这种工程细节,在论文里可能只是一句话,但在这里用图示一目了然。
Prefix-Tuning的图示则展示了另一种思路:不修改模型参数,而是在输入的Embedding序列前拼接一段可训练的“虚拟Token”向量。这些向量在Attention计算中同样参与Key和Value的运算,从而间接地引导模型的生成行为。这种“动输入,不动模型”的方法,为无法修改模型权重的场景(如调用云端API)提供了微调可能性。
2.4 对齐技术:深入对比RLHF与DPO的核心差异
对齐(Alignment)是让大模型输出符合人类价值观和偏好的关键技术,也是当前最活跃的研究领域之一。项目用对比图的方式,清晰地揭示了RLHF(基于人类反馈的强化学习)和DPO(直接偏好优化)这两大流派的核心区别。
RLHF的流程相对复杂,是一个“四模型舞会”:需要先训练一个奖励模型(Reward Model, RM)来学习人类的偏好评分,然后用这个RM作为环境,使用PPO(近端策略优化)算法来训练策略模型(即我们要对齐的LLM)。过程中还需要一个参考模型(Reference Model)来防止策略模型偏离太远(通过KL散度惩罚),以及一个价值模型(Value Model)来辅助PPO训练。流程长,稳定性挑战大,但它是ChatGPT早期成功的基石。
DPO则是一种巧妙的“降维打击”。它发现,基于Bradley-Terry模型的偏好学习目标,可以经过数学变换,直接转化为一个监督学习的损失函数。这意味着,我们不再需要单独训练一个奖励模型,也不再需要运行复杂的PPO算法。只需要准备好“提示(Prompt)-优质回答-劣质回答”这样的偏好对数据,直接用一个损失函数去优化策略模型即可。项目中的DPO训练全景图,清晰地展示了如何计算策略模型和参考模型对优劣回答的Log概率,并通过一个基于隐式奖励差异的动态系数来更新梯度。
实操心得:如果你资源有限,想快速尝试对齐效果,DPO是更友好的起点。它的代码实现更简单,训练更稳定,相当于把RLHF的三步(SFT -> RM -> RL)简化成了两步(SFT -> DPO)。但要注意,DPO的效果非常依赖于偏好数据的质量,且其理论假设(偏好模型符合Bradley-Terry模型)在极端情况下可能不成立。
2.5 强化学习基础:为理解PPO/GRPO打下坚实根基
项目花了大量篇幅夯实强化学习的基础,这是理解PPO、GRPO等大模型训练算法的前提。这部分内容从马尔可夫决策过程(MDP)开始,循序渐进地介绍了智能体、环境、状态、动作、奖励、策略、价值函数等核心概念。
其中,关于同策略(On-policy)与异策略(Off-policy)的对比图尤为关键。PPO是一种同策略算法,这意味着用于更新策略的数据必须是由当前最新策略自己与环境交互产生的。这带来了数据利用效率的问题——每更新一次策略,旧数据就不能再用了。而像DQN这样的异策略算法,可以用任何历史策略(甚至随机策略)产生的数据来学习最优策略,数据利用率高。理解这一点,就明白了为什么PPO在训练大模型时,需要反复进行“采样-训练-采样”的循环,以及为什么数据收集(Rollout)成了计算瓶颈。
策略梯度(Policy Gradient)的推导图是另一个亮点。作者声称“手撕推导”,确实把 Sutton 的经典公式用可视化的方式重新演绎了一遍。它展示了如何通过采样轨迹,利用奖励信号来调整策略参数,使获得高奖励的动作概率增加。这是PPO、TRPO、乃至GRPO算法的理论基石。图里还引入了优势函数(Advantage Function)和广义优势估计(GAE)的概念,解释了为什么用“动作价值减去状态价值”(A = Q - V)作为梯度权重,比单纯用累计奖励(Return)更好——因为它降低了方差,使训练更稳定。
2.6 免训练优化技术:解锁大模型推理阶段的潜力
这部分内容展示了不更新模型参数,也能大幅提升模型表现的各种“黑科技”。对于很多无法进行微调的应用场景(如使用闭源API),这些技术是主要的性能提升手段。
思维链(CoT)的图示简单却有力。它对比了传统问答(模型直接输出答案)和CoT(模型先输出推理步骤,再输出答案)。图里用一个数学题的例子,展示了CoT如何将复杂的多步推理分解,让模型一步步“思考”,从而显著提高复杂推理任务的准确率。项目还进一步展示了CoT的演进,如Self-Consistency CoT(生成多个推理链然后投票)、思维树(ToT)(允许在推理过程中回溯和探索不同分支),体现了从线性链式推理到树状结构化推理的发展。
检索增强生成(RAG)的架构图清晰地分成了离线和在线两部分。离线部分负责将知识库文档切片、编码成向量,存入向量数据库;在线部分则根据用户问题检索相关片段,并将其作为上下文与问题一同输入给大模型生成答案。这张图完美诠释了RAG如何解决大模型的“幻觉”问题和知识更新滞后问题。它让你明白,构建一个RAG系统,重点不仅在模型本身,更在检索器的质量、文本分块的策略以及提示词(Prompt)的工程。
解码策略的对比图(贪婪、波束、Top-K, Top-P)也非常实用。它用概率分布上的操作,直观展示了不同策略如何影响输出。例如,Top-P(核采样)如何动态地根据概率累积分布来选取候选词,从而在不同置信度下保持灵活性。这些策略的选择,直接关系到生成文本的流畅性、创造性和可控性,是产品调优时必须掌握的“旋钮”。
3. 项目特色与使用指南
3.1 核心特色:可视化驱动的深度理解
这个项目最与众不同的地方在于其“可视化驱动”的理念。它不是文字的附庸,而是理解的主体。每一张图都经过精心设计,力求用最直观的图形元素(如数据流箭头、矩阵形状、颜色对比、层级结构)来表达复杂的数学关系和系统流程。
例如,在解释PPO-Clip这个关键算法时,它用一张图展示了新旧策略概率比r(θ)被限制在区间[1-ε, 1+ε]内的直观效果。clip操作如何防止一次更新步子迈得太大导致策略崩溃,一看便知。再比如,多模态模型(VLM)结构图,清晰地标明了图像编码器(如ViT)、文本编码器、以及两者信息融合(如交叉注意力)的位置,让你对BLIP、Flamingo等模型的架构一目了然。
这种可视化降低了认知负荷,让大脑更容易建立记忆锚点。当你回想起某个概念时,首先浮现的很可能就是那张图的结构,然后才是相关的公式和文字描述。
3.2 如何高效使用这个项目进行学习
面对如此丰富的资料,如何高效利用?结合我自己的学习经验,建议分三步走:
通览与定位(建立地图):首先花1-2小时快速浏览所有章节的标题和主要图片,特别是“大模型算法总体架构”和“强化学习算法图谱”。不要纠结细节,目标是建立整体框架,知道每个技术模块放在哪里。可以用思维导图工具简单记录一下结构。
按需深钻(主题学习):根据你当前的学习或工作需求,选择一到两个主题深入。比如,如果你在做模型微调,就重点研究第3部分(SFT)和第4部分(DPO)。如果你想理解ChatGPT的训练原理,则重点攻克第8部分(RLHF与RLAIF)和第7部分(策略优化架构)。学习时,以项目中的图解为主线,遇到不明白的术语(如“重要性采样”),可以跳转到相关章节(如第7部分)查看详解,或者辅以其他资料(如原论文、博客、课程视频)。
对比与串联(形成网络):在理解单个技术后,有意识地进行对比和串联。例如:
- 对比RLHF和DPO:它们的训练流程、所需资源、稳定性有何不同?各自适合什么场景?
- 串联SFT、RLHF、CoT:在一个完整的模型优化 pipeline 中,它们分别扮演什么角色?是串行关系还是可选分支?
- 联系基础RL与PPO:PPO中的“近端”和“信任域”概念,在基础的策略梯度理论中是如何演进而来的?
项目中的图表本身就是极好的学习笔记和分享素材。你可以直接引用这些图来制作自己的技术分享PPT,或者在团队内部进行技术培训,这能极大提升沟通效率。
3.3 注意事项与潜在难点
尽管项目非常出色,但在学习过程中仍需注意几点:
- 理论深度与代码实现的差距:项目侧重于算法原理和架构的可视化,并没有提供配套的代码实现。你需要结合像Hugging Face的Transformers、TRL库,或DeepSpeed-Chat、ColossalAI等训练框架,来将理论知识付诸实践。理解图中的“价值模型头”和“策略模型头”如何用代码实现,是另一个层面的挑战。
- 动态发展的领域:大模型和强化学习领域日新月异。项目内容主要覆盖到2024年初的主流技术(如DPO、GRPO)。对于更新的进展(如更复杂的强化学习算法、MoE模型的具体训练技巧等),需要你结合最新的论文和开源项目进行补充学习。
- 对数学基础的要求:虽然可视化降低了门槛,但要真正吃透DPO的损失函数、PPO的clip目标、策略梯度的推导,仍然需要一定的概率论、微积分和最优化理论基础。对于公式,不要畏惧,结合图示去理解每个变量的物理意义,会容易很多。
- 系统资源的现实考量:图中展示的RLHF四模型协同训练,对算力和内存的要求是极高的。个人开发者通常只能尝试SFT或DPO。理解架构图能帮助你在云服务商的控制台或集群管理界面中,更合理地配置资源和监控训练过程。
4. 从理解到实践:关键环节的实操要点
4.1 实操要点一:构建高质量的SFT与DPO数据
无论是SFT还是DPO,数据的质量直接决定了模型微调的天花板。项目里提到了指令数据的来源,但在实操中,你需要更细致的处理。
- SFT数据格式:通常采用“指令-输出”对。确保指令清晰、多样,覆盖目标场景。输出需要高质量、无错误。对于长文本生成,可以构造“开头-续写”对。数据清洗至关重要,需要过滤掉含有不当内容、格式混乱、或明显错误的样本。
- DPO偏好数据:这是DPO成功的关键。你需要为同一个提示(Prompt)构造一个“优质回答”(chosen)和一个“劣质回答”(rejected)。如何构造?
- 人工标注:最可靠但成本高。可以设计清晰的标注指南,让标注员从多个模型生成结果中选择更好的,或直接撰写优劣回答。
- 模型自生成:使用一个基础模型(如SFT后的模型)对同一提示生成多个输出,然后利用一个更强大的模型(如GPT-4)或一套规则(如长度、关键词、连贯性)进行排序,自动生成偏好对。这种方法可扩展性强,但需要小心“胜者通吃”导致的数据偏差。
- 数据集的混合:利用现有的开源偏好数据集(如Anthropic的HH-RLHF),并与自己的领域数据混合。注意不同数据分布可能带来的冲突。
经验之谈:在DPO训练初期,一个常见的坑是偏好对中“劣质回答”的质量不够“差”。如果劣质回答只是稍逊一筹,模型很难学习到明确的区分信号。可以有意构造一些具有典型错误的回答(如事实错误、逻辑矛盾、答非所问)作为负样本,强化学习信号。
4.2 实操要点二:理解并监控训练过程的关键指标
训练大模型,尤其是RLHF,不能像传统监督学习一样只盯着训练损失(Loss)下降。你需要一套更丰富的监控指标。
- KL散度(KL Divergence):在RLHF/DPO中,这是防止策略模型“放飞自我”、偏离原始SFT模型太远的核心约束。需要监控策略模型与参考模型输出分布之间的KL散度。一个平稳或缓慢上升的KL散度是健康的;若KL散度急剧上升,意味着模型正在“遗忘”原有知识,可能产生胡言乱语,需要调整KL惩罚系数(β)。
- 奖励值(Reward):在RLHF中,监控奖励模型给策略模型生成内容的打分趋势。奖励值应稳步上升,但也要注意防止奖励黑客(Reward Hacking)——模型找到了刷高奖励值但不符合人类偏好的“捷径”(比如总以“当然,我很乐意帮助你!”开头)。
- 生成质量的人工评估:自动化指标有局限,定期进行人工评估必不可少。可以设计一个小测试集,每隔一定训练步数,让当前模型和基线模型(如SFT模型)同时生成回答,由评估者进行盲测打分。这是衡量训练是否真正有效的金标准。
- 损失函数分解:对于DPO,其损失函数可以分解为两部分:一部分推动优质回答概率上升,另一部分抑制劣质回答概率下降。在训练日志中同时监控这两部分,可以帮助你诊断问题。如果只有一部分在变化,可能是数据或模型初始化有问题。
4.3 实操要点三:解码策略的调优实战
模型训练好了,推理时的解码策略直接面向用户。项目介绍了多种策略,这里补充一些调参经验:
- 创造性任务 vs. 确定性任务:对于写故事、写诗等需要创造性的任务,可以尝试较高的温度(如0.8-1.0)配合Top-P采样(如0.9),让输出更有趣、更多样。对于代码生成、数据提取等需要确定性和准确性的任务,则应使用较低的温度(如0.1-0.3)甚至贪婪搜索(temperature=0)或小波束宽度的波束搜索。
- 重复与退化问题:如果模型输出开始重复句子或退化到无意义的字符,通常是解码策略或后处理的问题。可以尝试:
- 引入重复惩罚(repetition_penalty),降低已出现Token的生成概率。
- 使用对比搜索(Contrastive Search),它在采样时同时考虑模型置信度和与上文的重度,能有效提升生成结果的连贯性和多样性。
- 检查并设置合理的最大生成长度(max_new_tokens)和停止词(stop_words)。
- 波束搜索的权衡:波束搜索(Beam Search)通常能获得更流畅、语法更正确的长文本,但计算成本随波束宽度(num_beams)线性增长,且可能导致输出过于保守和模板化。在对话场景中,较小的波束宽度(如2-4)结合适度的温度,往往是更好的平衡。
5. 常见问题与排查思路实录
在实际操作中,你肯定会遇到各种各样的问题。下面是我和同行们踩过的一些坑,以及我们的排查思路。
5.1 问题一:DPO训练后,模型反而“变笨”了,常识性回答错误增多。
- 现象:经过DPO训练,模型在偏好任务上表现更好,但在一些简单的常识问答或基础任务上,性能却下降了。
- 可能原因与排查:
- KL散度惩罚过强(β值过大):DPO损失中包含了KL散度项以防止模型偏离参考模型。如果β设置得太大,模型会被过度限制,不敢做出任何“创新”或深入推理,表现为保守和性能下降。解决方案:尝试减小β值(例如从0.1降到0.01),并密切监控KL散度在训练过程中的变化。
- 偏好数据分布过于狭窄:如果DPO训练数据只集中在某一类特定偏好(例如“更详细的回答”),模型可能会过度优化这一点,而牺牲其他能力。解决方案:检查你的偏好数据集,确保它覆盖了多样化的偏好维度(如准确性、有用性、无害性、简洁性等)。可以考虑混合多个来源的偏好数据。
- 参考模型选择不当:如果参考模型本身能力较弱,或者其数据分布与你的SFT模型差异很大,强行让策略模型去靠近它,就会导致能力退化。解决方案:确保参考模型是一个强而稳定的SFT模型。有时,直接使用初始的SFT模型作为参考模型是安全的选择。
5.2 问题二:使用LoRA微调后,模型效果提升不明显,甚至不如全参数微调。
- 现象:采用LoRA对某个下游任务进行微调,训练损失下降正常,但评估指标(如准确率、BLEU分数)提升有限。
- 可能原因与排查:
- 秩(r)设置过小:LoRA的秩r决定了低秩矩阵的表达能力。对于复杂任务或大模型,过小的r(如1或2)可能不足以捕捉任务所需的参数变化。解决方案:逐步增加r值(如尝试8, 16, 32),观察验证集性能。通常,更大的模型和更复杂的任务需要更大的r。
- 未应用到所有关键层:默认的LoRA实现通常只应用到注意力层的Q、K、V、O投影矩阵。但对于某些任务,前馈网络(FFN)层的适配同样重要。解决方案:尝试将LoRA也应用到FFN层(如
target_modules=['q_proj', 'k_proj', 'v_proj', 'o_proj', 'gate_proj', 'up_proj', 'down_proj'])。这会增加可训练参数量,但可能带来性能提升。 - Alpha参数与学习率:LoRA中有一个缩放参数α,最终LoRA的输出会乘以
α/r。α需要与学习率协同调整。如果α太大,更新可能过于激进;太小则更新不足。解决方案:常见的做法是固定α为一个值(如16或32),然后主要调整学习率。可以尝试将学习率设置为全参数微调时的2-10倍。 - 任务本身不适合高效微调:对于某些需要模型大幅改变底层表示或学习全新模式的任务,高效微调可能确实存在天花板。解决方案:如果资源允许,可以尝试用全参数微调作为性能上限的基准。如果全参数微调效果显著更好,则说明该任务需要更彻底的参数更新。
5.3 问题三:实施RAG系统时,检索到的内容无法有效提升回答质量。
- 现象:搭建了RAG系统,但最终生成的答案似乎没有很好地利用检索到的文档,甚至出现“幻觉”,编造了文档中没有的信息。
- 可能原因与排查:
- 检索器与生成模型不匹配:使用的检索器(如基于BERT的编码器)的语义空间与生成式大模型(如GPT系列)的语义空间不一致,导致检索到的片段在模型看来“不相关”。解决方案:尝试使用与生成模型同系列或同训练方式的嵌入模型(例如,用OpenAI的
text-embedding-ada-002配合GPT,或用BGE、GTE等优秀开源模型)。对检索到的Top-K个结果进行重排序(Re-ranking)也能显著提升精度。 - 提示词(Prompt)工程不到位:简单地将检索到的文本拼接到问题后面,模型可能无法理解这是需要引用的上下文。解决方案:设计明确的指令式Prompt。例如:“请基于以下提供的上下文信息来回答问题。如果上下文信息不足以回答问题,请直接说‘根据已知信息无法回答’。上下文:[此处插入检索到的文本] 问题:[用户问题]”。
- 文本分块(Chunking)策略不佳:分块过大,会引入噪声;分块过小,会割裂语义。解决方案:根据文档类型调整分块大小和重叠(Overlap)区域。对于技术文档,可以按章节或子标题分块;对于通用文本,可以尝试用语义分割模型(如
bert-base-uncased)进行更智能的切分。重叠100-200个字符有助于保持上下文连贯。 - “大海捞针”测试失败:这是一个经典的测试。在知识库中插入一个独特的事实(“针”),然后问一个直接相关的问题。如果模型无法准确回答,说明检索或生成环节有问题。解决方案:系统地进行“大海捞针”测试,调整检索数量(Top-K)、分块策略和Prompt,直到模型能稳定地从大量文本中找回并引用这个特定事实。
- 检索器与生成模型不匹配:使用的检索器(如基于BERT的编码器)的语义空间与生成式大模型(如GPT系列)的语义空间不一致,导致检索到的片段在模型看来“不相关”。解决方案:尝试使用与生成模型同系列或同训练方式的嵌入模型(例如,用OpenAI的
这个“LLM-RL-Visualized”项目,与其说是一个代码仓库,不如说是一部用图表写成的“大模型与强化学习百科全书”。它填补了理论公式与工程实践之间的可视化鸿沟。我强烈建议任何从事或希望进入AIGC、大模型研发、AI算法相关领域的朋友,将它加入你的浏览器书签,作为常备的工具手册和灵感来源。随着技术的演进,期待作者能持续更新,加入更多像MoE、混合专家训练、更前沿的强化学习算法等内容的图解。