
大模型 LLM 全栈技术深度解析从 Transformer 底层原理到 RAG 与 Agent 系统架构从175B参数的GPT-3到DeepSeek-R1大模型技术在过去三年经历了从规模竞赛到效率革命的范式转变。2026年大模型开发不再只是少数AI实验室的专属领域——开源模型的成熟、推理框架的优化、以及工程化工具链的完善使得中小团队也能构建生产级LLM应用。本文将系统性地拆解大模型全栈技术的核心组件从底层架构到上层应用为开发者提供一幅完整的技术地图。一、LLM核心架构从Standard Transformer到Decoder-Only1.1 Transformer的原始设计2017年Vaswani等人在《Attention Is All You Need》中提出的Transformer架构包含完整的Encoder-Decoder结构。Encoder负责理解输入序列Decoder负责生成输出序列。这种设计在机器翻译等seq2seq任务中表现出色。但GPT系列模型的成功揭示了一个关键洞察对于自回归语言建模预测下一个tokenDecoder-Only架构不仅更简单而且更高效。1.2 Decoder-Only架构的优势Decoder-Only架构的核心组件输入文本 │ ▼ Token Embedding Positional Encoding │ ▼ ┌─────────────────────────────┐ │ Masked Multi-Head Self-Attention │ │ Layer Normalization │ │ Feed Forward Network (SwiGLU) │ │ Layer Normalization │ └─────────────────────────────┘ │ (重复N层) ▼ LM Head (线性投影到词表大小) │ ▼ Softmax → 下一个token的概率分布Decoder-Only架构的关键设计Causal Masking在自注意力计算中每个位置只能看到它之前的位置。这确保了模型在生成时不会偷看未来。# Causal Mask的实现defcreate_causal_mask(seq_len):masktorch.triu(torch.ones(seq_len,seq_len),diagonal1)maskmask.masked_fill(mask1,float(-inf))returnmask# 示例seq_len4# [[0, -inf, -inf, -inf],# [0, 0, -inf, -inf],# [0, 0, 0, -inf],# [0, 0, 0, 0]]1.3 注意力机制的演进MHAMulti-Head Attention标准的多头注意力将Q、K、V分别投影到多个子空间在每个子空间中独立计算注意力最后拼接结果。这增加了模型的表达能力但计算和内存开销较大。MQAMulti-Query Attention多查询注意力让所有头共享K和V只有Q是独立的。这大幅减少了KV缓存的大小但可能损失一些表达能力。PaLM等模型使用了这个设计。GQAGrouped-Query Attention分组查询注意力是MHA和MQA的折中方案将头分成若干组每组内共享K和V。Llama 2和Llama 3都采用了GQA8组在效率和表达能力之间取得了良好平衡。# GQA的简化实现classGroupedQueryAttention(nn.Module):def__init__(self,d_model,num_heads,num_kv_groups):self.num_headsnum_heads self.num_kv_groupsnum_kv_groups self.heads_per_groupnum_heads//num_kv_groups self.q_projnn.Linear(d_model,d_model)self.k_projnn.Linear(d_model,d_model//self.heads_per_group)self.v_projnn.Linear(d_model,d_model//self.heads_per_group)defforward(self,x):# Q: 每个头独立qself.q_proj(x).view(batch,seq_len,self.num_heads,head_dim)# K, V: 每组共享kself.k_proj(x).view(batch,seq_len,self.num_kv_groups,head_dim)vself.v_proj(x).view(batch,seq_len,self.num_kv_groups,head_dim)# 扩展K, V到每个头kk.repeat_interleave(self.heads_per_group,dim2)vv.repeat_interleave(self.heads_per_group,dim2)# 标准scaled dot-product attention# ...1.4 RoPE位置编码RoPERotary Position Embedding已成为2024-2026年主流LLM的标准位置编码方案。它的核心思想是通过旋转矩阵将位置信息编码到注意力计算中defapply_rotary_emb(x,cos,sin):x: (batch, seq_len, num_heads, head_dim)# 将x分成两半分别旋转x_rotx[...,:head_dim//2]x_passx[...,head_dim//2:]x_rot_newx_rot*cos-x_pass*sin x_pass_newx_pass*cosx_rot*sinreturntorch.cat([x_rot_new,x_pass_new],dim-1)RoPE的优势在于自然地处理任意长度序列通过外推相对位置编码天然支持无需额外计算与线性注意力机制兼容1.5 SwiGLU激活函数SwiGLU已成为现代LLM的标准FFN激活函数替代了传统的ReLU/GELUclassSwiGLU(nn.Module):def__init__(self,d_model,d_ff):self.w1nn.Linear(d_model,d_ff,biasFalse)self.w2nn.Linear(d_model,d_ff,biasFalse)self.w3nn.Linear(d_ff,d_model,biasFalse)defforward(self,x):# SwiGLU(x) SiLU(xW1) ⊙ (xW2)returnself.w3(F.silu(self.w1(x))*self.w2(x))二、大模型三阶段训练范式2.1 预训练阶段预训练是LLM能力的基石。模型在海量文本数据上学习语言的基本模式和知识。数据工程是预训练中最关键也最被低估的环节数据收集Common Crawl、书籍、代码仓库、学术论文数据清洗去重、质量过滤、个人身份信息移除数据配比不同来源数据的比例直接影响模型能力数据编排训练数据的顺序影响学习效率训练目标Causal Language Modeling因果语言建模# CLM的损失计算defclm_loss(logits,labels):# logits: (batch, seq_len, vocab_size)# labels: (batch, seq_len)shift_logitslogits[...,:-1,:].contiguous()shift_labelslabels[...,1:].contiguous()lossF.cross_entropy(shift_logits.view(-1,shift_logits.size(-1)),shift_labels.view(-1),ignore_index-100# 忽略padding位置)returnloss2.2 分布式训练技术栈训练千亿参数模型需要分布式训练技术3D并行数据并行DP每个GPU持有完整模型副本处理不同数据批次张量并行TP将单个层的参数切分到多个GPU流水线并行PP将不同层分配到不同GPU形成流水线ZeRO优化器Deepspeed的ZeRO将优化器状态、梯度和参数分片到多个GPU显著降低单GPU内存需求ZeRO-1分片优化器状态8x内存节省ZeRO-2分片优化器状态梯度8x内存节省ZeRO-3分片优化器状态梯度参数与GPU数量线性扩展2.3 监督微调SFT预训练模型虽然知识丰富但不擅长遵循指令。SFT通过在高质量指令-回答对上进行微调使模型学会遵循人类意图。参数高效微调PEFT对于资源有限的团队LoRA是最常用的PEFT方法classLoRALayer(nn.Module):def__init__(self,in_dim,out_dim,rank8,alpha16):self.lora_Ann.Parameter(torch.randn(in_dim,rank)*0.01)self.lora_Bnn.Parameter(torch.zeros(rank,out_dim))self.scalingalpha/rankdefforward(self,x):# 原始权重 LoRA增量returnF.linear(x,self.weight)(x self.lora_A self.lora_B)*self.scaling2.4 偏好对齐RLHFReinforcement Learning from Human Feedback和DPODirect Preference Optimization是两种主流的对齐方法。DPO的优势在于它不需要单独训练奖励模型直接在偏好数据上优化defdpo_loss(pi_logps,ref_logps,yw_idxs,yl_idxs,beta0.1): pi_logps: 当前模型的log概率 ref_logps: 参考模型的log概率 yw_idxs: 偏好回答的索引 yl_idxs: 非偏好回答的索引 pi_ywpi_logps[yw_idxs]pi_ylpi_logps[yl_idxs]ref_ywref_logps[yw_idxs]ref_ylref_logps[yl_idxs]pi_logratiospi_yw-pi_yl ref_logratiosref_yw-ref_yl loss-F.logsigmoid(beta*(pi_logratios-ref_logratios))returnloss三、推理加速与生产级RAG3.1 KV Cache与PagedAttentionKV Cache是LLM推理优化的核心。在自回归生成中每生成一个新token都需要重新计算所有历史token的K和V。KV Cache缓存这些中间结果避免重复计算。PagedAttentionvLLM的核心技术将KV Cache组织为页类似于操作系统的虚拟内存管理# PagedAttention的简化概念classPagedAttention:def__init__(self,block_size16):self.block_sizeblock_size self.kv_blocks{}# 页表defstore(self,request_id,token_idx,k,v):block_idxtoken_idx//self.block_size offsettoken_idx%self.block_sizeifblock_idxnotinself.kv_blocks[request_id]:self.kv_blocks[request_id][block_idx]self.allocate_block()self.kv_blocks[request_id][block_idx][offset](k,v)defretrieve(self,request_id,seq_len):# 从页表中检索KV Cacheblocks[self.kv_blocks[request_id][i]foriinrange(seq_len//self.block_size1)]returnself.assemble(blocks,seq_len)3.2 RAG架构设计RAGRetrieval-Augmented Generation是当前最实用的LLM应用模式。一个生产级RAG系统包含以下组件用户查询 │ ▼ 查询重写Query Rewriting── 优化查询表达 │ ├── 密集检索Dense Retrieval── 向量相似度 └── 稀疏检索Sparse Retrieval── BM25/关键词 │ ▼ 混合排序Hybrid Search Re-rank │ ▼ 上下文构建Context Assembly │ ▼ LLM生成带检索上下文的Prompt │ ▼ 回答验证Citation/事实核查 │ ▼ 最终回答**HyDEHypothetical Document Embeddings**是一个实用的检索增强技术defhyde_retrieval(query,llm,vector_store):# 1. 让LLM生成一个假设的答案文档hypothetical_docllm.generate(fWrite a passage that answers the question:{query})# 2. 用假设文档的向量去检索而不是直接用查询向量hypo_embeddingembed(hypothetical_doc)resultsvector_store.search(hypo_embedding,top_k10)returnresults四、AI Agent系统设计4.1 ReAct范式ReActReasoning Acting是当前Agent系统的基础范式classReActAgent:def__init__(self,llm,tools):self.llmllm self.tools{t.name:tfortintools}defrun(self,task):messages[{role:system,content:self.get_system_prompt()}]messages.append({role:user,content:task})for_inrange(MAX_ITERATIONS):responseself.llm.chat(messages)# 解析actionactionself.parse_action(response)ifaction[type]final_answer:returnaction[content]# 执行工具调用toolself.tools[action[tool]]resulttool.execute(action[input])# 将观察结果加入对话messages.append({role:assistant,content:response})messages.append({role:user,content:fObservation:{result}})raiseException(Agent exceeded maximum iterations)4.2 多智能体协同对于复杂任务单Agent往往力不从心。多Agent架构通过分工协作来解决这个问题协调器-工作者模式一个协调器Agent负责分解任务和分配工作多个工作者Agent负责执行具体子任务。Router模式根据用户输入的类型路由到不同的专业Agent。classMultiAgentSystem:def__init__(self):self.routerRouterAgent()self.agents{code:CodeAgent(),data:DataAnalysisAgent(),writing:WritingAgent(),}defrun(self,user_input):# 路由到合适的Agentagent_typeself.router.classify(user_input)agentself.agents[agent_type]returnagent.execute(user_input)五、总结大模型全栈技术是一个快速演进的领域。从底层架构的GQA/RoPE/SwiGLU到训练范式的预训练/SFT/DPO再到推理优化和RAG/Agent系统每个层面都在持续创新。对于开发者而言理解这些技术的为什么比是什么更重要——理解设计决策背后的权衡才能在具体的业务场景中做出正确的技术选择。2026年大模型技术正在从研究驱动转向工程驱动掌握全栈能力将成为AI工程师的核心竞争力。