LLM 工程管道的核心在于高效处理从输入文本到输出生成的每个环节,确保在有限计算资源下实现高性能推理。ZJU-LLMs 的《大模型基础》教材系统阐述了从 Transformer 语言模型基础到参数高效微调的完整链路,为工程实践提供了权威参考。本文聚焦单一技术管道,结合缩放定律指导资源分配、分词优化序列长度、预训练 / 微调策略提升模型能力,以及 KV 缓存优化加速推理服务。
分词方案是管道起点,直接影响序列长度与计算复杂度。主流采用 BPE(Byte-Pair Encoding)或 SentencePiece,通过迭代合并高频字节对构建词汇表,避免 OOV 问题。Byte-level BPE(BBPE)以 UTF-8 字节为基元,支持多语言如中文(character_coverage=0.9995)。工程参数:vocab_size=32000(LLaMA 标准),byte_fallback=True 确保无 OOV;训练语料采样几 GB,SentencePiece 命令spm.SentencePieceTrainer.train(input='corpus.txt', vocab_size=32000, model_type='bpe')。监控要点:Fertility(平均 Token / 词)<1.5,序列长度压缩率> 0.3。证据显示,BBPE 在中文上将平均 Token 数降至 1.2 / 词,提升 Transformer O (n²) 效率 20%。
Transformer 缩放定律指导预训练资源分配,避免无效扩展。Kaplan 定律(arXiv:2001.08361)揭示损失 L (N,D,C)∝N^{-α} D^{-β} C^{-γ},α≈0.34,β≈0.28,最优 C≈6ND,算力增 10 倍时 N 增 5.37 倍、D 增 1.86 倍。[1] Chinchilla 修正为 N∝D∝C^{0.5},强调数据均衡。工程清单:预算 C=10^{24} FLOPs 时,N_opt≈70B,D_opt≈1.4T tokens;小规模验证用小模型拟合曲线。风险:Kaplan 偏模型大 Chinchilla 偏数据多,监控 val_loss 幂律拟合 R²>0.95,回滚至均衡点。ZJU 教材第 2 章架构演化验证,Decoder-only 如 GPT 优于 Encoder。
预训练采用下一 Token 预测(NTP)在万亿 tokens 语料上自监督学习通用表示。策略:混合 FP16/BF16,AdamW 优化器 (lr=6e-4,warmup=10%), 梯度裁剪 1.0。微调转向 SFT+PEFT:监督微调用 1-10 万指令数据,LoRA (r=16,alpha=32,dropout=0.1) 仅训 0.1% 参数,QLoRA 进一步 INT4 量化。ZJU 第 4 章详述 Adapter/LoRA 低秩适配,参数:target_modules=['q_proj','v_proj'],lora_alpha=32。清单:SFT epochs=3,batch=32;RLHF 可选 DPO 避 RM 训练。监控:perplexity<2.5,任务 BLEU/ROUGE>0.7。
推理服务瓶颈在 KV 缓存:自回归解码存历史 K/V 避免重算,但内存 O (batchseqheads*dim)。优化:GQA/MQA 减 heads 至 8/1;INT4/8 量化 75% 节省;PagedAttention (vLLM) 分页 block_size=16,动态分配。工程参数:kv_cache_quant='int4',max_seq=4096,gpu_memory_util=0.9。清单:监控 cache_hit>90%,eviction_rate<5%;超时阈值 2s,回滚 greedy 采样。实践显示,vLLM+PagedAttention 吞吐提升 2-4x。
工程落地参数汇总:
- 分词:vocab=32k,BPE+byte_fallback
- 缩放:N:D=1:20,C=6ND
- 训:lr=1e-4,batch=1024,PEFT LoRA r=16
- 推理:GQA heads=8,KV INT4,paged=16
资料来源:[1] ZJU-LLMs/Foundations-of-LLMs GitHub;[2] Kaplan et al. Scaling Laws for Neural Language Models, arXiv:2001.08361。