1. 先想清楚大模型入门到底要学什么很多同学一上来就问大模型用哪本书Transformer源码要不要读其实这是把入门顺序搞反了。大模型这个词现在往小了说是神经网络的一种架构往大了说是一条从数据清洗、训练调优到部署上线的完整技术链路。你在网上看到的各种刷榜模型、爆款AI应用背后都是这条链路在运转。所以入门的第一步不是找资料而是先建立全局视图知道自己要学的东西长什么样。1.1 大模型不是一个模型而是一条完整的技术链路先给一个最简化的理解框架。大模型之所以叫大核心在于两个特征一是参数量大动辄几十亿上百亿二是训练数据量大基本是把互联网级别的文本都过了一遍。有了这两个大模型才表现出所谓的涌现能力——小模型学不会的推理、上下文理解、指令跟随大模型能学会。完整技术链路大致分成五块数据工程原始语料清洗、去重、质量过滤、配比。决定模型的天花板。预训练用海量文本做自监督学习让模型学会接话和理解。对齐与微调让模型学会听指令、说人话、拒绝坏请求。SFT、RLHF、DPO都在这一层。推理与部署把训练好的模型跑起来做加速、量化、并发管理。应用开发围绕模型做提示词工程、检索增强、Agent 工具调用、业务逻辑封装。对入门者来说你不用从预训练开始啃。大多数人走的是应用开发微调这条线先会用模型再学会怎么把模型接到业务里最后按需做定制化训练。这个顺序最符合认知规律也不会一上来就被损失函数和分布式训练劝退。1.2 给零基础同学的阶段式学习路线我不太建议一上来就啃《深度学习》和原版Transformer论文那相当于还没学会开车就先学发动机原理。比较务实的节奏是四步走工具期第1-2周学会调用别人的模型。用几行代码跑通一个开源模型或者调一次API对模型能做什么、不能做什么建立体感。原理期第3-6周补深度学习基础。重点理解神经网络、梯度下降、损失函数然后精读Transformer的Attention机制。这个阶段不需要推公式推到底但要知道模型为什么能理解文字。进阶期第7-12周做实战项目。微调一个模型、搭一套RAG问答系统、写一个Agent工具调用。把前面学的工具和原理串起来。深耕期半年以后往细分方向走。想搞训练就学分布式并行想搞推理就学CUDA和量化想搞应用就学工程架构和产品设计。这条路线最大的价值是每两周都有反馈。你不会处在学了三个月还在看理论的焦虑里而是早早动手用项目倒逼理解。2. 从零搭建一套能跑大模型的学习环境很多人卡在入门第一步不是不想学而是觉得自己电脑配置不够。我先说一个反直觉的结论大模型入门阶段对硬件的要求远没有你想象中那么高。真正需要高端显卡的是预训练和全参微调而这些并非入门必修。2.1 硬件不达标也能学的三种方式如果你的电脑没有独立显卡或者显存只有8G下面三条路任选一条方式一用云端GPU平台。现在国内有不少按小时计费的GPU租用平台几十块钱就能跑一天。选那种已经装好PyTorch和CUDA的镜像启动后直接用省去配置环境的痛苦。适合做微调和推理实验。方式二用免费API额度。国内外主流大模型厂商基本都会给新用户赠送调用额度或者提供免费的小规格模型。这类方式适合练习提示词工程、搭建应用逻辑不用关心显存和模型文件。方式三用本地CPU跑小模型。现在很多1B-3B参数的小模型经过量化后CPU也能出结果只是速度慢一点。你可以体验完整的下载模型-加载-推理流程对工程细节的理解一点不会少。我的建议是本地跑小模型作为日常练手云端GPU作为微调和较大模型的试验场两者结合性价比最高。2.2 本地安装 Ollama跑通你的第一个模型我在不少实操里发现Ollama是目前对新手最友好的本地模型运行工具没有之一。它把模型文件下载、依赖管理、API服务全部封装好了你把模型名字告诉它剩下的事它自己干。以我自己实测过的安装流程为例# 安装Ollama后拉取一个1.5B的小模型 ollama pull qwen2.5:1.5b # 启动交互式对话 ollama run qwen2.5:1.5b就这么两行命令一个能聊天的模型就跑起来了。整个过程不需要你手动配置Python环境也不会有依赖冲突的问题。Ollama还有一层价值是它自带了OpenAI兼容的API接口。启动服务后你在代码里只需要把API地址指向http://localhost:11434/v1就能用标准的OpenAI SDK调用本地模型。这意味着你写的应用代码可以无缝切换云端大模型和本地模型这在开发和调试阶段实在太方便了。2.3 用Transformers加载模型的最小代码如果你想更底层地理解模型推理就要接触HuggingFace Transformers。这套库是当前大模型生态的事实标准几乎所有开源模型都提供Transformers版本。下面这段代码是你能写出来的最小推理程序from transformers import AutoModelForCausalLM, AutoTokenizer model_name Qwen/Qwen2.5-1.5B-Instruct tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForCausalLM.from_pretrained(model_name) prompt 用一句话解释什么是大模型 messages [{role: user, content: prompt}] text tokenizer.apply_chat_template(messages, tokenizeFalse) inputs tokenizer(text, return_tensorspt) output model.generate(**inputs, max_new_tokens128) print(tokenizer.decode(output[0], skip_special_tokensTrue))这里有几个容易踩的坑我提前给你排掉首次运行会下载模型文件。建议先确认一下网络条件或者优先选择国内可访问的模型仓库。显存不足时优先用半精度加载torch_dtypetorch.float16能把显存占用降低一半。推理时一定要设max_new_tokens。不设的话模型可能无限生成把显存跑爆。跑通这段代码你对模型是怎么工作的就有了第一个具象认知先把文本变成token序列再token序列变成模型能处理的向量最后逐字预测下一个token直到满足停止条件。3. 模型从训练到微调关键环节必须弄明白用现成的模型做推理只是大模型应用的冰山一角。真正让你和普通用户拉开差距的是理解模型是怎么训练出来的以及如何在保留通用能力的前提下把它改造成适合你业务的样子。3.1 预训练、SFT、RLHF 的阶段划分整个训练流程可以类比成上学预训练 通识教育。模型在浩如烟海的文本里学习语言规律、常识知识和推理模式。这个过程消耗的算力最大普通团队根本做不了。SFT监督微调 专业培训。用一批人工编写的高质量指令-回答样例教模型学会听指令、按要求的格式输出。比如教它你是客服请礼貌回答本质上就是让模型在特定对话分布上继续学习。RLHF/DPO 价值观塑造。让模型知道哪些回答是好的、哪些是危险的学会拒绝不当请求保持稳定可靠。这也解释了为什么很多模型知识面其实差不多但在使用体验上差距明显——差异主要来自对齐阶段。对入门者来说SFT是你最需要掌握的一环因为绝大多数业务定制需求都用SFT解决。你不需要去动预训练的底座只需要在一个通用模型基础上做微调。3.2 微调不是重新训练LoRA 的原理与实操很多新手误以为微调就是把模型整个重新训练一遍。实际上现在95%以上的微调场景都用的是LoRALow-Rank Adaptation这类参数高效微调技术。LoRA的核心思想很巧妙它冻结原始模型的所有参数不改变模型本身而是在模型的线性层旁边加一个小型的低秩矩阵这两个矩阵就是可训练的适配器。训练时只更新适配器的参数原始模型参数保持不动。这意味着什么全参微调要更新十几亿个参数LoRA只需要更新几十万到几百万个参数。普通显卡就能跑训练时间大幅缩短而且原始模型能力基本不被破坏。训练完成后适配器文件往往只有几十MB部署时可以随时拆卸和替换。用PEFT库做LoRA微调的核心代码长这样from peft import LoraConfig, get_peft_model from transformers import AutoModelForCausalLM model AutoModelForCausalLM.from_pretrained(Qwen/Qwen2.5-7B-Instruct) lora_config LoraConfig( r8, lora_alpha16, target_modules[q_proj, k_proj, v_proj, o_proj], lora_dropout0.1, biasnone, task_typeCAUSAL_LM, ) model get_peft_model(model, lora_config) model.print_trainable_parameters() # 输出trainable params: 约8M只占全部参数的0.1%这里r是低秩矩阵的秩lora_alpha是缩放系数。我的经验是r取8-16在大多数场景下已经够用不是越大越好target_modules要选对不同模型的线性层命名不同可以参考模型的配置文件确定。微调阶段还有一个容易被忽略的点学习率。LoRA训练的学习率一般设在1e-4到5e-5之间比全参训练大一些但如果你直接用1e-4跑出灾难性loss先降一半试试。3.3 数据质量才是微调的生命线我见过不少同学花大价钱租GPU跑微调效果却不理想最后发现问题是出在数据上。模型训练领域有句话叫垃圾进垃圾出在大模型时代这句话依然成立甚至更加成立——因为模型足够聪明你给它的数据质量直接决定它学成什么样。SFT数据的基本格式是[ { instruction: 解释什么是人工智能, output: 人工智能是研究如何让机器模拟人类智能行为的学科…… }, { instruction: 帮我写一封请假邮件, output: 尊敬的领导您好因……特此请假。 } ]写训练数据时三个原则最重要质量优于数量。几百条精心设计的高质量数据往往好过几万条从网上乱抓的文本。模型要的是范例不是信息垃圾。多样性要足够。指令的表述方式、难度层级、场景覆盖面都要丰富否则模型只会机械模仿某一种模板。格式要绝对一致。每条数据都要有统一的字段结构对话类和问答类数据不要混在一起。一个实操技巧微调之前先把你准备的数据中抽取20%作为验证集。如果模型在验证集上的效果比训练集差很多说明过拟合了需要增加数据量或减小LoRA的秩。4. 真正高频的落地场景RAG、Agent 与流式输出学大模型不能只停留在跑通Demo的水平更关键的是把模型接入真实业务。在我接触的落地项目里最常用的三个技术栈就是RAG、Agent和流式输出。这三个场景几乎是任何AI应用都逃不开的组合拳。4.1 RAG 解决模型不知道新知识的问题大模型有个天然的短板训练数据有截止日期它不知道你的内部文档、最新产品、私有数据。一种思路是微调让模型把这些知识背下来但成本高、更新难。更务实的方案是RAGRetrieval-Augmented Generation检索增强生成。RAG的流程可以用一句大白话概括先查文档再写答案。具体拆开是四步切分把知识文档切成小块比如按512个token切分每块带上下文。向量化用Embedding模型把每一块文本变成一个向量。检索用户提问时把问题也向量化然后用余弦相似度找到最相关的几个文本块。生成把这些文本块拼到提示词里连同问题一起交给大模型生成回答。我实测下来的RAG项目里最大的坑不在模型而在切分策略。切得太碎上下文丢失模型只能看到碎片切得太整检索结果不精准还浪费上下文窗口。最稳妥的做法是保留两层结构一级是大章节切片二级是小段落切片检索时优先匹配小段落然后带上所属的大章节一起喂给模型。RAG的进阶玩法还包括给文本块加元数据过滤、做混合检索关键词向量、对检索结果重排。入门阶段先把基础链路跑通再去优化检索精度。4.2 Agent 让模型能调用工具RAG让模型学会了查资料Agent则让模型学会了干活。所谓Agent本质上是给大模型配了一套使用外部工具的能力让它能自己决定什么时候查天气、什么时候查数据库、什么时候调用计算器。举个例子用户问北京明天会不会下雨模型本身不知道。但如果你在提示词里告诉它有一个函数叫query_weather(city, date)你可以调用它获取天气模型就会输出一个特殊格式的调用请求你的程序拦截这个请求、执行工具、把结果返回给模型模型再据此生成最终回答。这个模型决定调用-程序执行工具-结果回传给模型的循环就是Agent的核心机制。业界常用的协议是OpenAI Function Calling格式以及Anthropic的Tool Use格式。入门时我不建议一上来就上LangChain这类重框架而是先用原生代码实现一个工具调用tools [ { type: function, function: { name: get_weather, description: 查询指定城市未来几天的天气, parameters: { type: object, properties: { city: {type: string, description: 城市名}, days: {type: integer, description: 查询天数} }, required: [city] } } } ] response client.chat.completions.create( modelyour-model, messages[{role: user, content: 北京明天天气如何}], toolstools, )如果你能看懂这个函数定义结构再去看LangChain这类框架的源码会清晰很多。工具定义的本质就是你用一段JSON描述了一个函数的输入输出格式然后告诉模型需要的时候调用它。4.3 流式输出让回答逐字出现做过Web应用的同学都知道用户点击按钮后如果等好几秒才看到完整回答体验是非常糟糕的。大模型的生成是逐token的一个长回答可能要生成几十秒如果全部生成完再返回用户早跑了。业界标准方案是SSEServer-Sent Events流式输出。核心思路是后端一旦生成了第一个token就立刻推给前端前端逐字渲染在页面上。用户看到的效果就是模型在打字等待焦虑大幅降低。前端配合的另一个关键技术是AbortController——用户点击停止生成按钮时前端发起中断请求后端停止生成。这两个技术配合是AI交互体验的基本功。我自己在实际开发中建议的顺序是先在终端用命令行测试流式输出确认token是逐步打印的再写一个最简单的Flask或FastAPI接口做SSE转发最后才接入前端框架。每层都验证通了再往上叠排查问题时能少走很多弯路。5. 入门阶段的自我检查做一个小项目而不是攒一堆资料课程和资料是学不完的真正能证明你学会的只有亲手做出来的东西。我见过太多同学收藏了几百G的教程最后卡在什么都懂一点什么都没跑通的状态。要突破这个状态最好的办法是给自己规定一个截止日期做一个必须交付的完整项目。5.1 推荐三个不同难度的小项目项目一个人知识库问答适合学完RAG后做把你平时的工作文档、学习笔记导入向量数据库做一个能回答我上周写的总结里提到了哪些结论这类问题的网页应用。这个项目会让你完整经历文档切分、Embedding、向量检索、Prompt拼接、流式渲染。难度适中做完会很有成就感。项目二领域客服机器人适合学完SFT微调后做自己构造几百条某个垂直领域比如宠物医疗、装修咨询的问答数据用LoRA微调一个小模型再部署成对话接口。这个项目会逼你认真思考数据质量也会让你体会到模型从通用到定制是怎么发生的。项目三能自主上网查信息的Agent适合学完Agent后做给大模型配一个搜索函数和一个网页抓取函数让它能回答当前AI领域发布了哪些新模型这类需要实时信息的问题。这个项目的重点不是代码有多复杂而是模型判断该调用哪个工具的提示词设计是否合理。5.2 如何评估你的模型效果入门阶段很多人最容易犯的错是跑通就结束。跑通了只能说明代码没报错不代表模型效果好。我建议至少从三个维度做评估准确率对于有标准答案的任务算一下回答正确的比例。忠实度模型有没有编造知识库里不存在的内容这在RAG场景尤其重要幻觉是RAG的头号敌人。指令遵循度模型是否按照你要求的格式回答比如要求JSON输出是否真的输出了合法JSON。实操技巧是建一个固定的评测集包含50-100条代表性问题。每次改动提示词、切分策略、微调参数后用同一套评测集跑一遍对比前后差异。没有评测集就盲目调参等于闭着眼睛开车。5.3 我给入门者的最后几条实操建议经过这些年自己的学习和带人经验有几条心得想特别分享给刚起步的同学第一不要迷信最强模型。入门阶段拿官方最强模型练手其实是件坏事因为模型太聪明了什么错误都能自己纠正你反而感知不到工程设计的价值。用小模型练手暴露的问题更多成长反而更快。第二日志和中间结果是你最好的老师。跑RAG时把检索到的每个文本块打出来看跑Agent时把模型的每一步推理打出来看跑微调时把loss曲线画出来看。大多数问题通过观察中间过程就能定位不需要问任何人。第三一定要建立自己的模型工具箱。定期记录你用过的每个模型的特点、适合场景、显存占用、部署难度。几个月后你回头翻这份记录会比任何课程笔记都有价值。最后大模型这个领域变化快但底层逻辑其实很稳定。Transformer、Attention、tokenizer、微调、推理加速这些内核知识扎实了外面换什么模型框架都不慌。从现在开始动手跑通第一个模型吧剩下的路会越走越清晰。