
最近后台私信里出现频率最高的一个词就是“大模型”。做开发的同学想转大模型工程师做产品的想把大模型塞进自家工具还有学生党一上来就问是不是该从 Transformer 源码开始啃。我大概数了一下光是我手上收到的“大模型系统性入门资料”相关的求助就涵盖了学习路线、微调实战、本地部署、提示词工程、Agent 框架等十几个方向。这篇文章就是冲着“系统性入门”写的。我不打算搞一份论文索引式清单而是按我自己走过来、也带过新人的思路把大模型入门的完整路径拆开讲透先搞清楚原理和术语再制定路线接着把提示词工程、上下文工程、微调、部署、RAG 这些核心实操逐个过一遍最后附上常见问题排查和一套我认为最值得收藏的资源。内容面向纯新手也适合已经会调 API、但知识体系比较碎的人。1. 先把基本盘搞清楚大模型到底是什么1.1 从“语言模型”到大模型到底发生了什么很多人第一次接触“大模型”这个概念会以为它是一个“像搜索引擎一样的东西”。这个误解要最先纠正。大模型本质是一个语言模型Language Model它的核心任务只有一个根据已经看到的一段文字预测下一个词最可能是什么。这个思路其实很老。早在上世纪九十年代就有基于 n-gram 的统计语言模型用“前面几个词出现后下一个词的概率分布”来做完形填空式预测。但 n-gram 能覆盖的上下文太短数据稀疏问题严重效果非常有限。真正的转折点有两个。第一是 2017 年 Google 团队发表的 Transformer 架构它用自注意力机制解决了长距离依赖问题让模型能同时看到一句话甚至一整段里所有词之间的关联。第二是“规模效应”——大家发现把 Transformer 做得越来越大训练数据越来越多模型的表现会出现“涌现能力”参数规模到几十亿、上百亿之后它竟然能学会翻译、写代码、做数学推理、遵循指令这些能力在小模型上根本不显眼。这也是“大模型”这个“大”字的由来。不是说模型大了就一定好而是规模达到了某个临界点之后模型会展现出质变级别的能力。现在市面上说的 7B、13B、70B指的就是模型的参数量7B 就是 70 亿参数13B 就是 130 亿参数。1.2 一张术语地图新手必须搞懂的词入门最大的障碍不是原理有多难而是资料里的术语密度太高。我建议新手先背熟下面这十几张“牌”后面再接触任何教程都会顺畅很多。术语一句话解释为什么你要关心它Token模型处理文本的最小单位可以是一个词、半个词或一个汉字API 计费、上下文长度、性能都按它算中文通常 1 个汉字约 1 个 Token 左右上下文窗口模型一次能“看到”的 Token 总数比如 8K、32K、128K超出上限只能通过截断、摘要或外置知识库解决温度Temperature控制回答随机性的参数越低越确定越高越发散写代码要低温度创意写作可以调高基座模型 vs 对话模型Base 模型只会“接续文本”Chat/Instruct 模型会“回答问题”拿 Base 模型直接聊天会非常奇怪必须用 Chat 版SFT/指令微调用“问题-回答”对把基座模型调教成助手大多数开源 Chat 模型都经过这一步RLHF基于人类反馈的强化学习让模型偏好符合人类评价ChatGPT 类产品体验提升的关键RAG检索增强生成先从外部资料库里搜相关内容再喂给模型解决“知识过时”和“私有知识”问题的主流方案微调在预训练模型基础上用特定数据继续训练定制模型能力、输出格式的主要手段LoRA/QLoRA低秩微调方法只训练一小部分参数大幅降低显存需求个人/小团队微调模型几乎必用Agent让大模型学会调用工具、规划步骤、完成多轮任务的系统大模型落地应用最活跃的方向把这些词消化掉再去看热门文章会轻松很多。别指望一次性背熟在看下面的实操时反复对照这张表就行。1.3 大模型的能力边界先知道它不能干什么学大模型之前先建立正确的期望值反而能少走很多弯路。从我实际使用的经验看大模型擅长的是文本理解、生成、总结、改写、抽取、分类、代码辅助、翻译这类语言任务但有几个明显的短板第一它会一本正经地胡说八道幻觉。模型预测的是“概率最高的下一个词”而不是“事实”。你问一个它训练数据里没有、或者本来就不确定的问题它很容易编一个听起来合理的答案。所以涉及事实核验的场景必须用 RAG 或人工把关。第二它不太擅长精确计算。让它算“3456 乘 789”这种复杂算术它可能在两步之间就开始出错因为语言模型的核心机制不是在执行计算而是在模仿计算过程的文本模式。第三它的知识有截止日期。没有联网能力的模型不知道训练之后发生的事。你问它“上个月发布的新手机怎么样”它只能基于训练时见过的旧知识来推断。这也解释了为什么现在大家都在做“工具调用”本质就是给模型外挂百科、搜索引擎、数据库让它自己去取“新鲜事实”。理解这些边界之后你就知道大模型不是万能答案机而是一个需要配合提示词、工具、外部知识库才能稳定发挥的推理引擎。下面这条学习路线就是围绕“如何让它稳定发挥”来展开的。2. 学习路线怎么排从提示词到部署分四步走2.1 第一步从“对话”开始提示词工程与上下文工程我在带新人时总说一句话**别一上来就啃微调和源码先学会和模型说话。**提示词工程是性价比最高的入门课零成本、见效快而且它是理解模型行为的最佳途径。你调几次 Prompt会比读十篇原理文章更能体会“模型到底是怎么工作的”。提示词听起来简单但真写好的没几个人。我给团队内部沉淀了一套万能结构套用之后基本不会跑偏角色告诉模型“你是谁”比如“你是资深数据分析师”。任务明确要干什么比如“把下面这段会议记录归纳成三条待办事项”。上下文给它需要的信息材料比如背景资料、原始数据。格式约束规定输出的结构与形式比如“用 Markdown 列表每项不超过 30 字”。示例给一两个输入输出样例模型会照着模仿。举个例子不加约束的提问是“帮我写个周报”。加上结构化之后的效果完全不同你是一名互联网产品运营工作风格是简洁务实。 请根据我提供的本周数据写一份面向部门负责人的周报。 格式要求 1. 先用三句话总结本周核心结论 2. 再用表格列出“指标名称 / 本周数值 / 环比变化 / 原因分析” 3. 最后给出下周的两个重点动作每个动作不超过20字。 数据如下 粘贴你的数据这里还要提一下最近特别火的“上下文工程”Context Engineering概念。这是提示词工程的外延升级Prompt 只是上下文工程的一小部分真正的上下文工程还包括如何选择、组织、截断、压缩外部信息再把它以最优结构塞进模型有限的上下文窗口里。一个很直观的例子如果你做的是长文档问答把所有资料一股脑塞进 Prompt马上会遇到两个问题——一是 Token 费用暴涨二是关键信息淹没在大段噪音里。这时候正确的做法是先用检索或摘要压缩信息保留和问题最相关的片段再把它们按逻辑顺序拼接成“迷你知识包”。上下文工程的本质就是管理“模型能看到什么、以什么顺序看到”。这部分练熟了你再去学 API 调用、RAG、微调会发现所有技巧都是在解决同一个问题让模型在正确的时间看到正确的信息用正确的格式产出结果。2.2 第二步用 API 把模型接到自己的程序里对话练熟之后就该进入工程阶段了。我推荐的方式是注册一个模型 API写一个最简单的命令行问答程序然后逐步加功能。现在国内外的模型 API 基本都兼容 OpenAI 的接口协议也就是说你只要学会调一套接口就能自由切换不同的模型服务商。常见的有 OpenAI 的 GPT 系列、Anthropic 的 Claude 系列国内可用的是阿里云百炼上的通义千问DashScope、智谱的 GLM、DeepSeek 等。对新手来说我建议从国内大厂的 API 或是一些免费额度够用的公益接口开始成本低、中文效果好也不需要操心网络问题。一个最基础的调用示例用 Python 写也就十几行from openai import OpenAI client OpenAI( api_key你的密钥, base_url模型服务商提供的兼容地址 ) response client.chat.completions.create( modelqwen-plus, # 换成你想用的模型名 messages[ {role: system, content: 你是一个只讲实话的助手回答要简洁。}, {role: user, content: 用一句话解释什么是上下文窗口。} ], temperature0.3, max_tokens200, streamTrue ) for chunk in response: print(chunk.choices[0].delta.content or , end, flushTrue)这个阶段你还会接触到几个高频概念。System Prompt是系统消息用来设置模型整体行为Temperature控制随机性我在生产环境通常设成 0.1 到 0.3宁可让它无聊也不允许胡说Max Tokens控制回答长度上限Stream模式可以像打字机一样逐字返回结果提升用户体感Function Calling/Tool Calling则是让模型在对话中决定“要不要调用某个外部函数”比如查天气、查数据库、发邮件。再往后你会接触到 LangChain、LlamaIndex 这类应用框架以及 Dify、FastGPT 这类可视化平台。我想给新手的建议是**先用原生 API 手写一个小应用再考虑上框架。**框架封装了很多能力但也屏蔽了太多细节。你如果一上来就用 LangChain出了问题根本不知道是模型的问题、向量库的问题还是 Prompt 组装的问题。自己手写一遍把每一步都剥开看过后面用框架才是真的省力。2.3 第三步微调——只在这几种情况下才需要很多新手一上来就问“我怎么微调一个自己的大模型”我的回答往往是**先确认你是不是真的需要微调。**微调不是常规手段它成本不低而且有副作用。大部分业务问题靠提示词工程和 RAG 就能解决。我整理过一张决策表可以直接对照你遇到的问题建议方案原因模型回答风格不对、格式不规范提示词工程可加 few-shot 示例成本最低效果通常已经足够模型不了解你的私有业务知识RAG外挂知识库知识可以实时更新不污染模型本体需要让模型学会全新的输出结构如 JSON Schema、固定模板微调结构性约束靠 Prompt 容易翻车需要模型掌握特定的领域术语、行话和思维模式微调RAG 只能“提到”术语微调能让模型“内化”术语要从底层改变模型的知识和推理能力微调但预期要放低小成本微调改变不了模型先天能力先排除“伪需求”剩下的才值得做微调。真到了这一步你要先知道微调有几种姿势。全参数微调Full Fine-tuning所有参数都更新效果最强但显存需求极高。以 7B 模型为例就算用 batch size 1训练显存也奔着 100GB 以上去了个人基本不用考虑。LoRA低秩适配冻结原模型参数只额外训练一小部分“旁路参数”显存需求能降到 16GB 甚至更低。绝大多数个人和中小团队的微调都是这种。QLoRA更进一步把原模型量化到 4-bit 再训练显存需求进一步压缩一张 4090 都能微调 13B 甚至更大的模型。LoRA 的核心思想值得记一下它假设模型参数的更新量是低秩的只需要在原有权重旁边加一个小型矩阵来模拟这种变化。训练完成之后这个小矩阵就是一个独立文件几十到几百 MB可以随时合并回原模型也可以单独加载。实操中你一定会遇到这几个 LoRA 关键参数。Rank秩决定旁路参数的大小一般 8 到 64 之间任务越复杂 rank 可以适当调大Alpha是缩放系数通常设成 rank 的一半或等于 rankTarget Modules指定要插入 LoRA 的层常见的是注意力层的 q、v、k、o 投影矩阵有些教程会建议全部加学习率一般在 1e-4 到 3e-4 之间局部搜索。做微调还要理解数据集格式。目前最通用的格式之一是 Alpaca 格式每一条数据是一个 JSON 对象{ instruction: 将下面的句子转换为正式的商务用语, input: 麻烦你帮我搞定这个事, output: 恳请您协助妥善处理该事项。 }我见过很多新手微调翻车大多数不是训练过程有问题而是数据没准备好要么数据太少几百条就幻想改变全部能力要么格式不统一output 里有的带标点、有的不带要么任务太杂既想让它写诗又想让它写 SQL。记住微调是“用数据教模型做一种动作”数据越聚焦、越干净、越一致效果越好。2.4 第四步部署落地——本地跑起来与私有化方案模型调教好了接下来就是把它跑起来这一步的热度一点都不比微调低。尤其是在数据敏感的企业场景下私有化部署几乎是刚需。对个人和刚起步的团队我推荐从这几种工具里做选择部署方案特点适合场景Ollama一句命令安装自动拉模型自动管理显存本地体验、个人学习、开发调试llama.cpp纯 C 实现支持 CPU 推理量化方案成熟GGUF无 GPU 的机器、低配环境vLLM高吞吐、PagedAttention 显存管理、连续批处理生产环境 API 服务、多并发场景我个人的建议是**学习阶段直接用 Ollama生产环境直接上 vLLM。**Ollama 把复杂细节全藏起来了你只需要ollama run qwen2.5:7b就能拥一个本地模型。但到了线上服务延迟和吞吐才是关键Ollama 的高并发表现不如 vLLMvLLM 的兼容性和吞吐优势才是业界首选。部署前一定要先做显存估算。这里有个经验公式模型参数量B乘以部署字节数就是模型权重占用的显存。FP16 精度下约等于 2GB 每 10 亿参数所以 7B 模型大约 14GB 权重如果做 INT4 量化大约降到 4GB 到 6GB。别忘了还要给 KV Cache 留出空间并发越高、上下文越长KV Cache 吃得越多。我自己部署 7B 模型的底线是 24GB 显存预留足够的余量。量化和推理优化也是这个阶段的高频词。GPTQ 和 AWQ 是面向 GPU 的量化方案效果稳定GGUF 是 llama.cpp 系列的格式支持 CPU GPU 混合运行。还有一个概念叫“流式输出”可以让用户体验从“等半天出一整段”变成“边生成边看到”部署时务必打开。企业私有化部署还要多想几件事多卡并行方案模型太大单卡放不下推理性能调优并发上限、超时时间、队列策略数据安全管理输入输出审计日志脱敏以及监控告警。千万不要出现模型服务挂了半小时没人知道的情况这在我身边真实发生过。3. 三个可以直接照做的入门实操3.1 实操一本地拉起一个开源模型先把最简单的跑起来。第一步安装 Ollama。Windows 和 macOS 直接去官网下载安装包Linux 用一行命令curl -fsSL https://ollama.com/install.sh | sh第二步从官方模型库里拉一个中文效果不错的模型。以阿里通义千问的 7B 版本为例ollama run qwen2.5:7b第一次运行会自动下载模型之后就是交互式对话框你直接输入问题就能得到回复。这一步走通之后可以试着用ollama serve启动服务然后用下面的代码从 Python 调用本地模型from openai import OpenAI client OpenAI( base_urlhttp://localhost:11434/v1, api_keyollama ) response client.chat.completions.create( modelqwen2.5:7b, messages[{role: user, content: 说一句欢迎语并说明你是谁。}], streamTrue ) for chunk in response: print(chunk.choices[0].delta.content or , end, flushTrue)你会发现它和云端 API 的调用方式一模一样。这也解释了为什么现在生态都向 OpenAI 兼容协议靠拢——本地和云端切换只需要换一行 base_url。3.2 实操二搭一个最简单的文档问答RAG这个练习非常实用做一次能同时吃透 Embedding、向量检索、提示词组装三块知识。整体思路是这样先把文档切成小段Chunk用 Embedding 模型把每段转成一个向量用户提问时把问题也转成向量在向量库里找最相似的几段最后把这几段作为上下文拼进 Prompt让大模型基于它们作答。给你一个最小可运行的示例我故意不用重型框架方便你看清每一步from openai import OpenAI import faiss import numpy as np client OpenAI( base_url你的embedding服务地址, api_key你的密钥 ) # 1. 文档切块这里简化成手动切 chunks [ 大模型的上下文窗口限制了单次输入长度。, RAG通过检索外部知识来缓解知识过时问题。, LoRA只训练少量参数适合低成本微调。 ] # 2. 生成向量并建索引 vectors [] for chunk in chunks: resp client.embeddings.create(modeltext-embedding-v3, inputchunk) vectors.append(resp.data[0].embedding) index faiss.IndexFlatIP(len(vectors[0])) index.add(np.array(vectors)) # 3. 检索 query 什么是RAG它解决什么问题 q_vec client.embeddings.create(modeltext-embedding-v3, inputquery).data[0].embedding scores, idx index.search(np.array([q_vec]), k2) # 4. 组装提示词 context \n.join([chunks[i] for i in idx[0]]) prompt f请根据下面的资料回答问题不要编造资料里没有的信息。 资料 {context} 问题{query} print(prompt)这段代码虽然简陋但把 RAG 的核心链路跑通了。实际项目中你要换的是更好的切块策略按标题结构切、更强的向量库Milvus、Elasticsearch、更科学的检索策略重排。但原理就是这一套先跑通再优化。3.3 实操三用 LoRA 微调一个只输出 JSON 的模型这算是微调方向最经典的入门练习——让模型“格式化听话”。先说场景。你接了个需求想让模型从一段客户反馈里提取结构化信息输出固定格式的 JSON。你用 Prompt 试了很多次模型偶尔还是输出 Markdown 代码块或者多余的解释于是决定用微调来“锁死”格式。我用的是开源工具 LLaMA-Factory它对新手非常友好支持 Web 界面操作也支持命令行。第一步准备数据。造 200 条左右的训练样本格式用 Alpaca 风格[ { instruction: 从以下客户反馈中提取情绪倾向和问题类别严格输出JSON不要输出其他内容。, input: 这个软件更新后经常闪退体验很差再也不用了。, output: {\sentiment\: \negative\, \category\: \stability\} }, { instruction: 从以下客户反馈中提取情绪倾向和问题类别严格输出JSON不要输出其他内容。, input: 新功能很好用界面也变漂亮了推荐, output: {\sentiment\: \positive\, \category\: \feature\} } ]第二步用命令行启动训练llamafactory-cli train \ --model_name_or_path Qwen/Qwen2.5-7B-Instruct \ --stage sft \ --dataset json_format \ --finetuning_type lora \ --lora_rank 8 \ --lora_alpha 16 \ --learning_rate 2e-4 \ --num_train_epochs 3 \ --output_dir qwen_json_lora第三步训练完在推理时指定加载 LoRA 权重llamafactory-cli chat \ --model_name_or_path Qwen/Qwen2.5-7B-Instruct \ --adapter_name_or_path qwen_json_lora这个练习做完之后你对微调的整个工作流——数据、训练、加载——就有了完整认知。我在实测中发现只要 output 格式保持绝对一致大概 100 到 200 条数据就能让模型在格式合规上大幅改进。但如果你的数据里 output 偶尔带换行、偶尔不带模型就会学成一个“薛定谔的格式”训练数据的一致性是微调效果的第一生命线。4. 常见问题与排查技巧实录4.1 高频问题速查表我在用大模型、带新人做项目时反复遇到的问题其实就那几个。整理成一张表你可以先收藏遇到问题再回来查。问题现象可能原因解决办法本地推理报“CUDA out of memory”模型权重 缓存超过显存容量换更小模型、开量化4-bit、减小 max_tokens、关掉并发测试模型回答总是长篇大论不听话Prompt 约束弱、温度过高加输出长度限制、用 few-shot 约束、把 temperature 调到 0.2 以下回答明显编造事实幻觉知识缺失或问题超出能力边界接入 RAG 提供资料、在 Prompt 里要求“基于资料回答”必要时再加一道人工校验提示“context length exceeded”输入内容超过上下文窗口压缩内容、摘要、只保留关键片段或换成长上下文模型微调之后模型变“笨”了数据过少、学习率太大、训练轮次过多导致过拟合降低学习率、减少 epoch、增大数据量和基准模型做对比测试API 调用突然变慢或限流并发过高、模型服务端排队改流式输出、加本地缓存、限流重试、考虑私有化部署本地模型生成速度奇慢未开 GPU 推理、量化不合适、batch 太小确认 GPU 部署、换 GGUF 量化、使用 vLLM 提升吞吐4.2 几个实战排查思路光有问题表不够我再分享几个我实际排查问题的思路。**排查“慢”要分层看。**有一次同事反馈本地模型“巨慢”我第一反应是看它是不是在跑 CPU。一查果然Ollama 默认没开 GPU模型全量跑在 CPU 上7B 模型出字速度惨不忍睹。先把设备切换到 GPU速度立刻翻了十几倍。如果 GPU 已经是瓶颈再看是不是模型太大了、量化精度太高、并发没做 Batching。生产服务建议直接上 vLLM它的连续批处理能把 GPU 利用率拉满。**排查“效果差”要对比变量。**有人在群里问“为什么我微调完模型反而更不会用中文了”。我让他对照三个变量数据质量、训练超参、评估基准。最后发现他用了一张英文的公开数据集训练了 20 个 epoch导致模型严重向数据集的语言风格偏移。微调不是训练越多越好一般 2 到 3 个 epoch 就够了超过 5 个 epoch 很容易过拟合。**排查“上下文超限”要学会断舍离。**上下文窗口是稀缺资源塞进去的信息必须精挑细选。遇到长文档时优先做摘要、分段问答、按需检索而不是把整篇文档都硬塞进去。这不是笨办法而是大模型应用最常见的优化手段。5. 学习资源资料、开源项目与“大模型八股文”5.1 入门资料推荐入门资料贵精不贵多堆收藏夹只会制造焦虑。我精选这几个按顺序学就够打底了。课程方面吴恩达在 DeepLearning.AI 上有一个免费的ChatGPT Prompt Engineering for Developers短课很适合第一周建立感觉。国内也有不少机构出了大模型入门课选那种带“代码实操”的比纯讲概念的有用得多。论文方面新手不用从经典 NLP 论文串起但有几篇绕不开建议列入必读清单Attention Is All You NeedTransformer 原文看懂自注意力、多头机制、位置编码。GPT-3体会“大规模 Prompt”的威力。InstructGPT理解“人类反馈对齐”和指令微调的意义。LoRA和QLoRA微调技术的基石。Retrieval-Augmented GenerationRAG 的原始论文。如果英文读得吃力可以配合中文解读文章一起看。但记住解读文章是辅助原论文的图表和实验部分才是精髓。5.2 开源项目工具箱我按用途整理一份工具清单你可以照着装推理与部署vLLM高吞吐服务、Ollama本地体验、llama.cppCPU 友好、Hugging Face Transformers通用加载与实验。微调LLaMA-Factory功能全、支持界面操作、XTuner也适合入门、Unsloth显存优化极强。应用开发LangChain最流行生态全、LlamaIndex专注 RAG、Dify / FastGPT可视化应用搭建平台。Agent 框架LangGraph适合做有状态的工作流编排、MetaGPT多角色协作模拟、AutoGPT最早带火 Agent 概念。这里想强调一下入门阶段选一个框架吃透就够了多数人一上来收集一圈结果一个都没试过。5.3 “大模型八股文”转岗和面试怎么准备现在网上常看到“大模型八股文”这种说法指的就是面试高频知识点的背诵清单。虽然我不建议光背题但如果你想转岗或校招面试有些知识确实得能脱口而出。常见的方向包括Transformer 结构问题自注意力公式、多头注意力、位置编码包括 RoPE 相对位置编码。推理优化问题KV Cache 的作用、PagedAttention 原理、Continuous Batching 解决什么问题。微调问题LoRA 的原理、QLoRA 比 LoRA 多做了什么、SFT 和 RLHF 的区别。部署问题F16/INT8/INT4 量化的区别、显存估算、并发指标 TPS/Latency 怎么权衡。RAG 与 Agent向量检索流程、重排、工具调用、规划能力是如何实现的。准备八股文最好的方式不是死记而是配合实操去理解。比如你亲手部署过一次 7B 模型、调过一次量化和 batch size再回头看“KV Cache 为什么能加速生成”就会觉得它是自然而然的结论而不是需要背诵的答案。我个人对入门的建议其实很朴素别囤资料跑通一个端到端的小项目比收藏一百篇“入门必看”都强。我自己在公司带过不少从零起步的实习生凡是上手快的都有一个共同特点——耐着性子把一个 7B 模型从提示词、RAG、微调、部署完整走了一遍中间摔了多少次都不重要重要的是把每个环节的“手感”练出来了。大模型这个领域变化太快追热点永远追不完但基础链路提示词 - API - 检索 - 微调 - 部署是相对稳定的骨架把它吃透后面再学多模态、Agent、视频生成都会顺很多。最后再送一个实用小技巧**建立你自己的“实验台账”。**每试一个 Prompt 模板、每跑一次微调、每调一个部署参数都把配置、现象、结论记下来。这个台账用不了多少时间但三个月后它就是你自己最宝贵的大模型入门资料而且全世界独一份。