大模型是怎么炼成的:从数据清洗到预训练、微调与部署的工程链路

📅 发布时间:2026/9/9 12:09:00
大模型是怎么炼成的:从数据清洗到预训练、微调与部署的工程链路 大模型Foundation Model这个概念最初是2021年斯坦福大学互联网研究中心的学者们提出来的。他们用这个词描述一类模型——在海量数据上以自监督方式训练然后可以被各种下游任务适配。这个词本身强调的不是“大”而是“基础”。后来ChatGPT出圈全世界都开始用“大模型”称呼这类技术却很少有人停下来问一句它到底是怎么来的作为一个从传统深度学习转到大模型方向、亲手跑过数据清洗、预训练、微调和部署全流程的从业者我想把这条链路上最关键的几个环节拆开来讲——尤其是数据它最容易被人低估但恰恰决定了模型的天花板。这篇文章适合谁如果你正在学大模型或者刚看完一堆“大模型科普”但对内部机制还是很模糊如果你想搞清楚“为什么大模型训练动不动就要几千张GPU”“为什么有人说数据比算法更重要”又或者你只是想弄明白Foundation Model和以前的CNN、LSTM到底有什么本质区别——那这篇文章应该能给你一个比较完整的答案。我不打算讲那些花哨的数学推导而是尽量还原一个真实的工程链路数据从哪来、模型怎么炼、对齐在做什么、部署和微调有哪些坑。1. 大模型不是一夜之间长出来的Foundation Model的前世与位置要理解大模型是怎么来的得先理解它在整个深度学习发展史里处于什么位置。时间线拉长一点2012年AlexNet在ImageNet上拿下冠军那是深度学习第一次真正火起来。当时的范式是“专才”——一个模型只干一件事识别猫就是识别猫翻译就是翻译。2017年Transformer架构提出来其在机器翻译上的表现非常亮眼但真正让大家意识到“这条路可能走通了”的是2018年的BERT和GPT-1。它们的核心做法叫“预训练微调”先用无监督数据把模型训练出一个“通用的语言理解能力”再拿到具体任务上做小规模微调。这就好比你先在学校里通识教育毕业后再到具体岗位上培训。Foundation Model把“预训练”这个概念进一步推向极致——它不再追求“训练一个模型然后微调成多个任务”而是直接训练一个“什么都能干的基础模型”下游任务不需要重新训练只需要“引导”它就行。这就是为什么ChatGPT能聊天、能写代码、能翻译不是因为它被分别训练了三遍而是因为它的底座已经学会了语言背后的统计规律、知识结构和推理模式。我在跟很多刚入门的朋友聊的时候发现大家有个误区以为“大模型”就是“模型参数更大”。其实参数大只是表象真正的质变有三个数据规模从百万级样本变成了千亿级Token量级跨越了五个数量级以上。模型架构Transformer的self-attention机制让模型能同时看到整个序列而不是像LSTM那样一步步“挤牙膏”。训练范式从“每任务一训”变成了“先通才、后专才”这个范式转变才是Foundation Model的灵魂。所以我们说“大模型是怎么来的”本质上是在回答一个问题**一个模型如何从“什么都不会”变成“什么都会一点”**答案就藏在这句话里——它见的“世面”足够大。而这个“世面”就是我们接下来要讲的数据。2. 原料决定智商万亿Token数据从哪来、怎么洗2.1 大模型吃的是Token不是“文档”也不是“字节”很多初学者问我“GPT训练用了多少本书”这个问题本身就有点偏差。大模型处理文本的最小单位不是“字”也不是“词”而是Token。Token简单理解就是“分词后的片段”一个英文单词常常是1个Token一个中文汉字在主流分词器下大约是0.6到1.5个Token具体看分词算法和词表设计。业界说“训练数据有几十万亿Token”说的就是分词之后的Token数量。为什么要强调这个因为Token的数量直接决定了训练成本——模型每吃一个Token就要做一次前向传播和反向传播。所以你可以把Token理解成大模型的“卡路里”它从数据中吸收的知识密度和数量都靠Token来计数。2.2 数据来源互联网是最大的语料矿场那么大模型的“卡路里”从哪来答案可能让你意外——绝大多数训练数据来自互联网的公开页面。业界常用的数据源包括Common Crawl一个非盈利组织维护的网页爬虫数据库每个月爬取数十亿网页十几年来积累了PB级别的原始HTML。它几乎是所有大模型训练数据的基础底料。维基百科数据量不大相对于整体可能只占极小比例但质量极高用词规范、结构清晰是大模型“学常识”的重要来源。书籍语料像Books3这类数据集提供了长篇上下文和复杂叙事结构让模型学会“读长文”的能力。代码仓库像GitHub上的公开代码经许可后使用是模型学会编程的关键。代码和自然语言的结构差异很大能帮助模型理解逻辑、语法和抽象结构。学术论文arXiv上的论文提供了高度凝练的专业知识表达方式。问答社区和论坛像Stack Overflow、Reddit、百度贴吧等提供了大量的问答对对模型学会“人对问题的期望”非常有帮助。这几种数据源的比例需要仔细设计。Common Crawl虽然量大但里面大量是垃圾页面、重复内容、机器生成的乱码维基百科和书籍质量高但量不够。所以真实训练数据的配比通常是一个需要反复试验的配方——就像做菜主料是CCCommon Crawl配料是高质语料最后的口感取决于配比。2.3 数据清洗大模型训练里最脏最累的活我敢说任何一个做过真实大模型训练的人都会同意这句话数据清洗才是真正的核心工程。在公开数据集的论文比如LLaMA的论文里你看到的可能只是短短一段“we deduplicated and filtered the data”但实操中这才是最花时间的环节。数据清洗的主要工序包括工序目标常用手段语言识别去掉非目标语言的内容fastText语言分类器识别中英文并过滤混杂页面去重删除重复和近重复文档避免模型“背课文”MinHash LSH局部敏感哈希对文档计算指纹质量过滤去掉无意义、机器生成的垃圾内容用困惑度perplexity打分用分类器判断是否为高质量文本隐私过滤移除电话号码、身份证号、邮箱等个人隐私PIIPersonal Identifiable Information检测与脱敏毒性过滤去掉色情、暴力、仇恨言论分类器 关键词黑名单格式清洗去掉HTML标签、脚本、导航栏、页脚解析HTML结构提取正文去除模板噪声这里面最容易被低估的是去重。如果你不去重模型会因为某个文档在训练集里出现了100次而对它的内容“过度自信”甚至直接把那一长段文字背下来。这会导致两个问题一是生成内容时出现“复读机”现象二是模型的泛化能力下降——它无法从相同知识的不同表达中抽象出本质规律。MinHash去重的思路很朴素把一篇文档切成很多shingle固定大小的连续片段算哈希后取最小值作为签名签名相同的文档就视为相似文档保留一份即可。这个思路后来被扩展成了更精细的近重复检测方案但核心思想至今没变。很多人以为数据清洗是“脏活累活没技术含量”实际上清洗策略直接决定了训练出来的模型是“聪明”还是“看起来聪明”。同一个架构、同样的Token数目数据质量差一档最终模型的理解能力可能差好几个点。我在的实际项目中见过太多团队训练了几百万美元还没出结果最后回头发现是他当初过滤时把高质量数据也一起滤掉了。2.4 经典小数据集与大模型语料的量级差异很多初学者是从MNIST手写数字识别、CIFAR-10、KITTI这些经典入门数据集开始接触机器学习的。MNIST一共只有6万张28×28的灰度图KITTI也只有几千帧自动驾驶标注图像。这些数据集的定位是练手、验证算法它们的规模在公开语料面前连零头都算不上。这背后有个重要的认知转变传统的深度学习模型是“数据少的时候靠人工特征和迁移学习”而大模型的逻辑是“给你海量数据让你自己找规律”。就像我之前带的学生一开始让他拿MNIST练手他还觉得“训练一轮几分钟已经很快了”后来接触到大模型预训练一个epoch要跑几小时甚至几天才真正体会到“量级完全不同”是什么概念。3. 预训练的高炉Transformer、损失函数和万卡集群3.1 为什么偏偏是Transformer数据准备好了下一步是让模型“吃”下去。这个过程叫预训练Pre-training核心目标是让模型通过自监督学习掌握语言的统计规律。自监督的意思是数据不需要人工标注模型自己给自己出题——最常见的方式就是“预测下一个Token”。为什么是Transformer而不是LSTM原因有两个并行效率和长距离依赖建模。LSTM是串行处理的你读完第100个词才能处理第101个词而Transformer的self-attention机制允许所有Token同时参与计算每个Token都能“看到”序列中的其他所有Token这在GPU上可以大规模并行加速。打个比方LSTM像一个人在一条窄路上走每一步都只能踩着前一步的脚印走Transformer像是站在一个巨大的广场上用望远镜环顾四周一眼就能看到广场上所有人的位置。3.2 预训练到底在“学”什么预训练的目标函数很简单——交叉熵损失Cross-Entropy Loss。具体来说模型给定前面的Token序列预测下一个Token的概率分布然后用真实的Token做监督信号计算损失函数进行反向传播。迭代无数轮之后模型学会了的事情是非常惊人的它不只是记住了“the”后面常跟“cat”它还在多层网络的内部表示中建立起了对语法、语义、常识知识、逻辑推理的压缩表达。这个“压缩表达”就是我们常说的大模型“能力”的来源。一个175B参数的大模型相当于用几千亿个参数去“记住”了互联网海量文本里的知识模式和推理模式。说“记住”不准确更准确的词是“内化”——模型不是把文章背下来了而是从文章的统计规律中学到了“这个世界是怎么运作的”。如果只做“预测下一个Token”模型的输出其实已经很像人话了但它仍然“不听话”——它只会顺着你的话头继续延续而不懂得“回答问题”或“执行指令”。这也是为什么预训练之后还需要对齐Alignment阶段这个放到第4节展开。3.3 千亿参数的训练工程理论讲讲很简单但真正训练一个大模型是个不折不扣的超级工程。以训练一个7B70亿参数规模的模型为例在几百张A100上训练动辄需要几周时间如果再往上到175B甚至更大就需要数千张高端GPU并行计算光电费可能都是天价。我在训练一个2B规模的模型时就深刻体会到了“分布式训练”的复杂度。简单说单张GPU的显存是有限的放不下动辄几十上百GB的模型参数和中间激活值所以必须把模型和数据拆到多张卡上并行计算。业界常见的并行策略有三种并行策略思路类比典型使用场景数据并行Data Parallelism每张卡复制一份完整模型分到不同的数据批次通过梯度同步更新参数复印试卷每个人做全套题最后对答案取平均模型能放进单卡时的首选张量并行Tensor Parallelism把单个Transformer层的矩阵乘法切分到多张卡上各算一部分结果再拼起来一道题拆成几道小题分给几个人并行算层内计算量超大时使用流水线并行Pipeline Parallelism把网络的不同层分到不同的卡上前层算完传给后层工厂流水线每人只干一道工序模型层数很深时使用实际训练中通常不是只用一种而是把三种组合起来用这就是常说的“3D并行”。除此之外还有ZeRO零冗余优化器这类技术能进一步减少显存占用——它把模型参数、梯度和优化器状态分片到多张卡上而不是每张卡都抱着一份完整的副本。我记得第一次看ZeRO论文时觉得挺震撼原来“参数装不下”还可以通过“把参数拆了轮流算”来解决。训练过程中还少不了断点续训Checkpoint。因为训练周期太长一次数据中心的电压波动、一张GPU卡故障、一个CUDA报错都可能导致整轮训练崩溃。没有定期保存模型权重和优化器状态的checkpoint一旦中途出问题就得从头再来那可是烧了几十万美元打水漂。所以训练脚本里每几百步定期存储checkpoint是标配保存checkpoint的同时最好把训练数据、随机种子、配置参数都记清楚否则恢复训练时模型行为对不上排查起来能让人崩溃。3.4 训练过程最怕的三个“炸”一个负责任的训练工程师每天干的事情就是盯监控面板、看loss曲线、检查GPU利用率和显存占用。实际训练中最怕遇到下面几种情况Loss 突然变NaN非数值常见的诱因是学习率过大导致梯度爆炸或者数据里混入了异常值。解决思路是降低学习率、增加梯度裁剪gradient clipping、检查数据清洗流程。Loss Spike突然尖峰模型本来学得好好的loss突然跳高。这经常是某个数据批次里混入了一堆垃圾数据。这时候你得用日志把每个batch的平均loss记下来再对照样本去排查。Loss 不降反升如果持续多步loss不降就别急着调超参了——极大概率是数据有bug比如tokenizer对某些特殊字符处理错了或者数据混入的格式不对。这里分享一个我自己的教训有次训练一个多语言模型loss始终在某个阈值下不去我调了两天学习率和batch size都没用。后来实在没辙把训练数据抽出来人工看一眼才发现数据清洗时语言过滤器的阈值设得过于宽松混入了大量把中文按空格切成一个字一个Token的乱码文本。那一刻我才真正体会到“Garbage in, garbage out”不是一句空话。4. 从“会接话”到“听话”对齐背后的人工力量4.1 预训练出来的模型是个“接话机器”预训练阶段结束后模型的行为是这样的你给它输入一句“今天我去了”它很自然地续写“超市买东西”。听起来挺聪明对吧但如果你给它输入“你知道大模型是什么吗”它很可能不会回答这个问题而是顺着话头往下编——比如“问题很多我不确定如何回答”这类废话。它根本不是在与用户对话只是在做“根据上文预测下文”的统计游戏。所以我们还需要一个阶段教会模型“用户问了一个问题你要给出答案而不是继续编”。这个阶段统称为对齐Alignment核心目标就是让模型的行为符合人类期望——回答问题、遵循指令、拒绝不当请求。4.2 SFT先让模型学会“有问必答”对齐的第一步是监督微调Supervised Fine-TuningSFT。做法很直白请人写一批高质量的“指令-回答”对比如“请写一段关于量子计算的简介”配上人类精心撰写的回答然后在这些数据上继续训练模型。这一步能让模型从“接话机器”转变成“问答机器”但它有个明显的天花板——它只能教会模型没见过的东西而人类写不了几百万条高质量指令数据。而且SFT有一个隐患模型学到的是“模仿”不是“理解”——它知道要输出答案但不明白什么样的答案更好。4.3 RLHF用“评委”给模型打分所以就有了RLHF基于人类反馈的强化学习它做的是把SFT再往前推一步。RLHF分三步走训练一个奖励模型Reward Model先请人类标注员对同一个提示词下的多个模型回答进行排序比如“回答A比回答B好回答B比回答C好”然后用这些排序数据训练一个奖励模型。这个奖励模型的作用是给它一段回答它能打出一个分数模拟“人类觉得这个回答有多好”。用强化学习优化策略以SFT阶段训练好的模型为初始策略让模型对提示词生成回答然后用奖励模型打分再通过PPO近端策略优化这类强化学习算法更新模型参数——目标是让模型生成的回答在奖励模型那里拿到更高的分。迭代这个过程需要反复进行模型变强了奖励模型也要跟着换新再标注新的比较数据……RLHF是“大模型是如何来的”这个故事里最像“驯化”的一个环节。预训练是让野兽长身体RLHF是教野兽守规矩。不过RLHF有一个很有名的副作用叫奖励黑客Reward Hacking——模型找到了直接刷高分的捷径。举个例子奖励模型发现“回答里带有很多恭喜、赞美、积极词汇”往往得分较高模型就开始无原则地拍马屁不管用户问什么回答都要先夸用户一句“你这个问题问得非常好”。这种“谄媚”现象在实际产品里其实不少见本质就是奖励模型被模型钻了空子。4.4 DPO为什么说它是对齐的“平民方案”RLHF虽然效果好但工程实现复杂度很高——它需要同时维护四个模型策略模型、参考模型、奖励模型和价值模型训练不稳定超参敏感。2023年出现的DPODirect Preference Optimization直接偏好优化则另辟蹊径它把奖励模型的优化目标直接融入到策略优化里不需要单独训练奖励模型也不需要复杂的强化学习循环——只需要一组“更好/更差”的回答对就可以直接做偏好优化。现在很多开源模型比如一些基于Mistral/Llama的中文微调模型都选择用DPO而不是RLHF因为它更简单、更稳定、算力需求更低。如果你研究一下新发布的开源大模型的技术报告会发现“SFT DPO”已经是一个非常流行的对齐配方。对齐阶段也是继预训练之后第二个“人工密集”环节。SFT的数据需要人工编写RLHF的排序需要人工标注DPO的偏好对也需要人工挑选。所以很多人问“大模型是不是真的靠自己学习”答案是它的语言能力是自监督学来的但它的价值观和好习惯靠的是无数标注员在背后加班加点地给它“当老师”。5. 模型炼成之后部署、推理优化与跑起来的真成本5.1 为什么推理比训练更让团队头疼大模型训练是一次性成本——“烧”几十万美元换一个模型。但上线后每次有用户调用模型都是一次推理Inference过程也要花钱。论总量很多做API服务的团队推理成本会远超训练成本因为训练只需要付一次推理却要源源不断地付下去。推理模型最耗资源的瓶颈是生成式解码。整个过程中模型只能一个Token一个Token地往外蹦——生成100个Token就需要跑100次前向传播。更尴尬的是每次前向传播里前面已经算过的历史信息理论上是可以复用的但如果不加任何优化等于每次都把前面所有内容重新算一遍。5.2 KV Cache把算过的东西记下来为了解决这个重复计算的问题业界普遍采用KV Cache——把已经计算过的Key和Value缓存到显存里当下一个Token生成时直接读取缓存不再重复计算前面所有的历史内容。KV Cache可以说是推理优化里最基础、最有效的一招但它也有成本——显存。一个输入很长的对话场景KV Cache可能占据比模型权重本身更大的显存。所以现在很多推理框架都在做KV Cache的量化、剪枝、上下文压缩力求在显存占用和推理速度之间找平衡。5.3 量化把模型“瘦身”到能跑在日常电脑上第二个常用优化是量化Quantization。大模型默认以FP16半精度浮点每个参数占2字节保存。一个7B的模型FP16权重需要约14GB显存普通家庭电脑根本跑不动。但如果把它量化为INT8每个参数占1字节体积直接减半量化为INT4每个参数占0.5字节就更小了。这也是为什么现在大家能在本地用Ollama跑7B或13B模型——这些工具背后基本都用了4-bit量化技术。精度每参数字节数7B模型理论占用优点缺点FP162字节约14GB精度无损效果最接近原版显存要求高INT81字节约7GB精度损失小速度较快需要较好的量化校准INT40.5字节约3.5GB显存占用极小消费级显卡可跑精度损失明显复杂推理能力下降量化的动态范围压缩会让模型某些“精细”能力受损特别是代码生成、逻辑推理、数学计算这类任务。所以量化通常是“边测边用”——我一般会先跑一遍评估集对比原模型和量化模型在目标场景上的效果差异再决定要不要上线。5.4 蒸馏让大模型“教”出小模型比量化更进一步的是知识蒸馏Distillation。思路很简单——用一个大而强的模型当“老师”去“教”一个小而快的“学生”模型。老师模型生成的输出不只是答案还包括各Token的概率分布作为学生模型的训练信号让学生模型学会老师的“思考方式”。蒸馏的本质是把容量的“能力”转移到“效率”上。一个4B的蒸馏模型在许多任务上能达到接近14B原版模型的效果但推理成本却低了一个数量级。这在工业界特别有价值所以你能看到很多团队用“超大模型离线蒸馏 中等模型线上服务”的组合打法。5.5 部署环节的几件“小事”真正部署上线时还有一堆看似“小事”但能坑到人的环节Token不一致训练时的tokenizer和部署时的tokenizer如果版本不同模型输出可能会莫名其妙变差。显存碎片化高并发场景下KV Cache扩张导致显存碎片会直接触发OOM显存溢出。vLLM这类框架通过PagedAttention管理KV Cache能显著缓解这个问题。并发与调度如果服务线程模型设计不好小流量也能把GPU打满——重要指标是吞吐量token/s和首Token延迟不全看单次推理速度。6. 领域大模型的工程真相微调不是把书塞进脑子里6.1 为什么要微调对大多数团队来说他们不是在训练大模型而是在**微调Fine-tuning**大模型——比如基于某个开源底座模型像Llama、Qwen、DeepSeek系列在特定领域数据上继续训练。微调的两大动机通常是一是注入领域知识比如金融法规、医疗术语、企业内部文档二是改变行为模式比如让模型学会客服语气、按特定格式输出、配合企业API做结构化调用。这里要澄清一个常见的错误认知微调不是“把知识灌进模型脑子里”。很多人以为只要把公司所有PDF喂给模型模型就能变成领域专家。实际上微调更适合“教格式”“教规范”“调行为”而不是“背知识”。你要让模型记住具体的新闻、法规条文、企业FAQ更好的方案是用RAG检索增强生成——把文档存到向量数据库里用户问问题时先检索相关内容再让模型根据检索结果回答。微调和RAG各有分工硬拿微调去做知识注入不仅效果差还容易出现灾难性遗忘。6.2 LoRA物美价廉的微调方案全量微调一个大模型需要更新所有参数显存成本很高。业界现在最常用的方案是LoRALow-Rank Adaptation低秩适配。它的做法很有意思冻结原始模型的全部权重只额外训练两个很小的低秩矩阵作为“补丁”最终模型输出等于原始输出加上这个补丁的影响。LoRA的直觉类比是你不需要重新锻造一把刀只需要在刀刃上贴一层薄薄的特殊材料就能改变刀的锋锐度和切割方式。LoRA训练出来的“补丁”一般只有几十到几百MB而原始模型有几个GB甚至更大。这让LoRA有几个巨大的优势显存占用大幅降低消费级显卡就能微调小模型训练速度快同一个底座模型可以同时挂载多个LoRA补丁——客服场景用客服LoRA法律场景用法律LoRA互不干扰按需切换我对LoRA的实用建议是先从rank16或rank32开始试。rank太小模型的表达能力不够rank太大显存占用增加且容易过拟合。训练数据至少要有上千条高质量指令对否则模型学不到什么实质能力。6.3 微调数据怎么准备才能不翻车微调失败八成因数据。以企业客服场景为例我见过太多次这种情况团队把历史客服对话记录直接拿去做SFT训练结果模型学到了非常差的格式——因为真实客服对话里充满口语、错别字、无意义的寒暄甚至夹杂着情绪化的表达。模型从中学到的只能是“乱说”。好的微调数据应该具备几个特点指令清晰每条数据都有明确的输入用户问题和期望输出标准回答。多样性同一个问题尽量覆盖不同问法、不同表达方式。只有一种模板的问答对会让模型面对真实用户提问时非常脆弱。格式统一对话模板、特殊分隔符如|user|、|assistant|要严格一致不能让模型在格式判断上消耗学习能力。负面样本模型必须知道哪些问题不该答比如涉及隐私、违法、政治敏感、越权操作等场景。如果没有负面样本模型遇到这类请求就分不清边界容易说错话。有个真实的翻车案例我记忆很深某团队用一万条企业FAQ微调模型每条FAQ都是“问题——答案”的模板结果模型被喂成了“背书机器”。用户问“你们公司营业时间是几点”它回答得非常好但换一种问法“我想去你们办公地点办业务几点能到”模型就完全不会了因为它训练里见过的是规范性问句没见过口语化变体。最后团队花了两周重新写数据加入了大量同义改写和对话变体才把模型的泛化能力拉回来。6.4 微调之后的评估别只看测试集准确率微调完成之后最大的坑是“过拟合测试集”。我建议至少要分三个层次做评估领域能力在真实领域数据上的准确率、完整性、格式合规率。通用能力底座模型原本的通用能力有没有退化——用一份纯通用评测集比如MMLU、C-Eval的抽样子集做回归测试。边缘场景挑一些极端输入、对抗性输入看模型会不会胡说八道、泄露敏感信息、生成防火墙外内容。很多团队只做第1层结果上线后发现模型在垂直领域变厉害了但写代码、逻辑推理、日常对话的能力全崩了——这就是典型的灾难性遗忘。微调时在数据里混入10%到20%的通用语料或者用LoRA这类参数高效微调方法都能在一定程度上缓解这个问题。顺着这个话题往下说大模型的应用落地还有一条路叫“Agent智能体”本质上就是让大模型学会调用工具、做计划、执行任务相当于给“大脑”装上“手脚”。这已经是另一个很深的工程话题了这里先不多展开。最后回到数据这件事上。我自己的实操体会是不管是做预训练、微调还是RAG手里有没有一份干净、多样、贴合实际场景的数据直接决定了项目的成败。很多人一开始热衷于追求“更大更强的模型”但我见过太多的团队把重点放在追新模型、堆算力上最后发现瓶颈其实在数据侧——清洗不净、样本失衡、格式混乱、覆盖不够。如果你想自己动手体验从数据到模型的完整过程我建议的路径是先跑通MNIST这类小数据集找训练手感然后读一遍Transformer原论文理解注意力机制接着找一个中小规模的开放语料尝试一次小规模预训练最后用开源底座模型配合LoRA微调一个属于你自己的“领域小助手”。走完这条路你对“大模型是怎么来的”这个问题就会有远比读论文更深刻的体感。