跳到主要内容

LoRA/QLoRA 参数高效微调实战:低秩假设、NF4 双重量化与多 Adapter 生产部署

· 阅读需 8 分钟

全参微调(full fine-tuning)的成本账很吓人:训练时除了权重本身,还要存梯度,以及 Adam 优化器的一阶矩、二阶矩两个状态。一个 7B 模型,权重 bf16 约 14GB,梯度 14GB,Adam 状态约 28GB,再加上激活和中间结果,全参微调 7B 要 60GB 以上显存,70B 直接破 600GB。这不是普通工程师玩得起的。

于是有了参数高效微调(PEFT)三件套:Adapter、Prefix Tuning、LoRA。其中 LoRA(Low-Rank Adaptation,微软 2021)因为"训练省显存、推理时可合并、能热插拔多任务"成为事实标准;QLoRA(2023)进一步把底座量化到 4bit,让 65B 模型在单张 48GB 消费卡上做微调成为可能。本文不重复上一篇多 Agent 编排(多 Agent 协作架构),专注把 LoRA/QLoRA 这条线讲透到能直接上手。

多 Agent 协作架构:Orchestrator-Worker 之外,任务依赖图、上下文隔离与结果合并的工程实践

· 阅读需 10 分钟

单 Agent 的瓶颈很直观:上下文窗口有上限、一次只能专注一件事、越长的对话越容易跑偏。于是大家开始拆多 Agent——一个检索、一个写代码、一个质检、一个做安全审查。但真正上手做过的人会发现,多 Agent 协作的难点从来不是"让 Agent 会聊天",而是编排(Orchestration):任务怎么拆、谁先谁后、上下文怎么隔离、结果怎么合并、一个挂了怎么办。

本文不重复上一篇 A2A 协议(A2A 协议深挖),那解决的是"Agent 之间怎么发现和通信"的协议层;这篇解决的是"有了通信之后,你怎么组织它们干活"的工程层。协议是网卡,编排是大脑。

A2A 协议深挖:Agent 之间怎么协作?AgentCard、Task 状态机与 SSE 流式传输全解析

· 阅读需 9 分钟

很多人到现在还分不清 MCP 和 A2A 的区别,把它们当成一回事。一句话讲清:MCP 是给 Agent 接外设的 USB 接口,A2A 是给 Agent 联网的网卡。MCP 让一个 Agent 用统一方式调用工具、文件、数据库;A2A 让多个 Agent 之间互相发现、协商、委托任务。上篇拆解了 MCP 2026-07-28 新规范(MCP 规范解读),这篇聊它的姊妹协议 A2A。

RAG 检索优化深度拆解:分块策略到 Cross-Encoder 重排序,召回率提升的完整链路

· 阅读需 13 分钟

先抛一个反直觉的结论:RAG 效果不好的时候,九成问题出在检索,而不是生成。生成模型再强,检索漏掉的 chunk 永远不会出现在 context 里——"垃圾进,垃圾出"在 RAG 里是一条铁律。业界普遍共识是「检索质量决定 RAG 上限」:生成只能在上限之内修修补补,把答案写得通顺,但补不回没检索到的事实。

本文不聊"如何搭一个 hello-world RAG",而是拆解检索链路里真正决定召回率的三个环节——分块(Chunking)、检索融合(Hybrid Search)、重排序(Re-ranking)——每一环给出可运行代码、性能量级和生产踩坑记录。这是我在多个生产 RAG 系统里反复调过的地方。

LLM 量化深度拆解:4-bit 省 75% 显存,GPTQ / AWQ / GGUF / NF4 怎么选

· 阅读需 13 分钟

先摆一个反差数字:Llama-2-70B 的 FP16 权重约 140 GB,量化到 4-bit 后约 35 GB,压缩 75%,而它在 WikiText2 上的 perplexity 只上升 0.1~0.3。这意味着原本要两台 A100-80G 才装得下的模型,量化后一台就够,decode 速度反而更快——因为权重小到能塞进更大的显存余量里,KV cache 也能放得更长。

为什么「省显存」和「不掉精度」能同时成立?答案藏在 LLM 推理的真实瓶颈里。这篇拆四条主流量化路线(GPTQ / AWQ / GGUF / NF4)的原理、可运行代码和选型,写给要在生产里真刀真枪跑量化的人。

为什么标准 Attention 的 O(n²) 绕不开?softmax 全局归一化才是数学根源

· 阅读需 6 分钟

很多人能脱口而出「Attention 是 O(n²)」,但少有人追问:这个 n² 到底卡在哪一步?为什么优化不掉?

答案不是「矩阵乘法天生就是 n²」这么简单——矩阵乘法有结合律,本来可以调顺序把 n² 甩掉。真正把 n² 焊死的,是 softmax 的全局归一化。这篇把它从数学上拆开。