AI 笔记
模型 · 检索 · 工程

把 AI 系统
讲清楚一点

从 Transformer 如何理解上下文,到 RAG 如何找到可靠资料。用结构图、公式和工程经验,记录大模型应用里的关键概念。

Transformer 架构

用注意力机制,让序列中的 token 相互交换信息。

核心机制

Self-Attention 在做什么?

每个 token 生成 Query、Key、Value。Query 与所有 Key 计算相关性,Softmax 将分数变成权重,再对 Value 加权求和。模型因此能按上下文选择要关注的位置。

Attention(Q,K,V) = softmax(QKᵀ / √dₖ)V

Query我在找什么
×
Key位置索引
→
权重
×
Value传递的信息

除以 √dₖ 可控制点积规模,避免 Softmax 过早饱和。多头注意力让模型在不同子空间并行学习关系。

一层结构

一个 Transformer block

注意力负责 token 间的信息交互;前馈网络对每个位置分别做非线性变换。残差连接和 LayerNorm 帮助深层网络稳定训练。

输入表示token embedding + position
多头注意力读取上下文
残差 + LayerNorm稳定信息流
前馈网络(MLP)逐位置变换
残差 + LayerNorm传给下一层

Decoder-only 模型会使用因果掩码,预测当前位置时不能读取未来 token。

RAG 检索指标

检索命中只是起点,还要看排序和答案质量。

RAG(检索增强生成)先从知识库取回候选片段,再把它们交给语言模型组织回答。用带相关文档标注的查询集,可以离线评估检索阶段:

指标回答的问题直观理解 / 公式适用场景
Recall@k前 k 条里找回了多少相关文档?命中相关文档数 ÷ 全部相关文档数关注漏检;问答系统通常先看召回
Precision@k前 k 条里有多少结果真正相关?前 k 条相关数 ÷ k关注噪声;上下文窗口有限时很有用
MRR第一个相关结果排得有多靠前?平均(1 ÷ 第一个相关结果的名次)每个查询只需快速找到一个好结果
nDCG@k按相关程度打分后,整体排序如何?DCG@k ÷ 理想排序的 IDCG@k相关性有多个等级,且高位结果更重要
一起看,不要只盯一个数:增大 k 往往提高 Recall,也可能带入噪声、挤占上下文。用真实问题标注验证集,同时观察 Recall@k、nDCG@k、答案正确性和引用准确性。
1切分文档控制片段长度与重叠
2召回候选向量、关键词或混合检索
3重排按相关性调整顺序
4组织上下文去重、过滤、限制长度
5生成与核验检查答案和引用证据

落地时的几个提醒

离线指标帮助改进,最终还要回到真实问题。

数据集覆盖真实提问

从实际问题中抽样并标注相关片段。保留困难样本、无答案问题和不同表达方式,避免数据分布偏差带歪优化方向。

分开评估检索与生成

检索没找到证据时,生成模型很难补救;证据找对了,也要检查回答是否忠实。分别记录命中、答案正确性、引用支持度和延迟。

让混合检索互补

向量检索擅长语义近似,关键词检索擅长精确名称、编号和缩写。可并行召回、合并去重,再用重排模型调整顺序。

记录语料和参数版本

保存语料快照、切分规则、Embedding 模型、k 值和重排器版本。用同一查询集回归,才能判断改动带来的效果。