AI 1000问:RAG、Agent、向量检索与AI应用

一、RAG 与知识检索

Q1. RAG 为什么能缓解知识截止和幻觉?它和直接塞长文有什么区别?

答案: RAG(Retrieval-Augmented Generation,检索增强生成)在回答前先从外部知识库检索相关材料,再把材料作为上下文交给模型生成答案。它能让模型访问训练后新增或私有的资料,并让回答有机会引用证据;但它不能保证消除幻觉。

典型链路:

flowchart LR
  A[文档/数据库] --> B[清洗与切块]
  B --> C[Embedding]
  C --> D[向量/关键词索引]
  Q[用户问题] --> E[查询改写/向量化]
  E --> F[检索与重排]
  D --> F
  F --> G[证据上下文]
  G --> H[LLM生成与引用]
  H --> I[答案与来源]

与直接把大段资料塞进上下文相比,RAG 可以只取与问题相关的片段,降低 token 成本并保持知识可更新。它的主要失败模式包括:文档未入库、分块丢失上下文、检索排序错误、权限过滤缺失、来源本身错误、模型误读证据或引用不匹配。

可靠做法: 保留文档 ID/页码/版本;检索后重排;要求回答逐项绑定证据;证据不足时明确说不知道;用真实问题集评估 Recall@K、MRR、答案正确性和引用正确率。

Q2. PDF 应按固定字数、段落还是语义切块?如何找到平衡?

答案: 没有通用最佳 chunk size。切块要同时考虑文档结构、问题类型、Embedding 模型、上下文窗口和检索评估结果。

  • 固定 token 窗口:实现简单、大小可控,适合结构较弱文本。
  • 按标题/段落切:保留章节语义,适合技术文档和书籍。
  • 语义切块:根据主题变化切分,边界更贴合内容,但成本更高且算法复杂。
  • 重叠窗口:保留相邻上下文,减少边界处信息断裂,但会增加索引冗余。

建议保留标题路径、页码、段落顺序等 metadata;对代码/表格/公式单独解析;通过真实问答集比较不同 chunk 大小和 overlap 的 Recall@K、答案完整性、引用精确度和成本,而不是凭经验指定 256 字或 512 token。

二、AI Agent 与工具使用

Q3. Agent 和普通 LLM 聊天有什么区别?谁决定调用哪个工具?

答案: 普通聊天通常直接生成回复;Agent 则把模型放进一个可执行的控制循环,允许它根据任务状态选择工具、调用外部系统、观察结果并继续下一步。

工具选择通常由模型基于工具描述/schema 输出结构化调用请求;Agent runtime 校验参数、执行工具、把结果回传模型,再决定继续调用还是回答。模型本身并不会凭空访问 API;真正执行动作的是受权限控制的运行时。

flowchart TD
  A[用户目标] --> B[LLM分析任务]
  B --> C{需要工具吗}
  C -->|否| D[生成回答]
  C -->|是| E[生成结构化工具调用]
  E --> F[权限/参数校验]
  F --> G[执行工具]
  G --> H[返回观察结果]
  H --> B

工程上要加入工具白名单、参数 schema、超时/重试、幂等性、审计日志、最小权限和人工确认;涉及付款、删除、发信或生产环境变更时,不应让模型无约束自动执行。

Q4. ReAct 的“思考—行动—观察”循环是什么?

答案: ReAct 是一种把推理步骤与外部行动交替组织的 Agent 模式:系统先判断当前缺少什么信息,再调用工具,观察返回结果,依据新信息决定下一步,直到足以回答或达到停止条件。

它与人类解决问题相似之处在于“先形成假设,再做实验并根据结果修正”。但模型的中间推理不等于可靠事实;工程系统应记录可审计的工具调用、输入、输出和证据,而不是把内部推理文本当作执行证明。

停止条件应包括目标达成、证据不足、预算耗尽、超时、工具失败和安全策略拒绝,避免无限循环。

三、向量数据库与嵌入搜索

Q5. 向量数据库存什么?“语义相似”如何变成“向量距离近”?

答案: 向量数据库通常保存向量、主键和 metadata;原始文本可保存在对象存储或文档数据库中。Embedding 模型把文本/图片等输入映射到固定维度的向量空间。

语义空间由训练目标塑造,例如:

  • 对比学习:把匹配的 query-document 或 image-text 对拉近,把不匹配样本推远。
  • 语言模型表示学习:利用上下文预测等目标学习 token/句子表示。
  • 检索微调:用真实检索对优化 query 与 passage 的匹配分数。

数据库不会自行理解语义;语义能力来自 Embedding 模型和训练数据。不同模型的向量空间不兼容,换模型通常需要重算索引。

Q6. 精确最近邻与 ANN 有什么区别?常见索引怎么工作?

答案: 精确最近邻逐个计算查询向量与所有候选向量的距离,结果精确但大规模时计算成本高。ANN(Approximate Nearest Neighbor)通过索引结构减少候选搜索,接受少量召回损失以换取低延迟。

常见方法:

  • HNSW:构建多层近邻图,从稀疏高层逐步导航到细粒度邻居。
  • IVF:先把向量聚类,查询时只搜索部分倒排簇。
  • PQ:把向量分段量化,压缩存储并加速距离估算。

评估时看 Recall@K、延迟分位数、内存占用、更新成本和过滤条件下的效果。所谓“95% 召回”必须在指定数据集和查询集上实测,不能当成算法固定保证。

四、时间序列与 AutoML

Q7. 时间序列预测和普通回归有什么区别?ARIMA 如何工作?

答案: 时间序列样本按时间排序,观测之间常存在自相关、趋势、季节性和结构变化;随机打乱数据会造成未来信息泄漏。普通回归可以用于时间序列,但必须显式处理时间依赖并按时间切分。

ARIMA(p,d,q) 由三部分组成:

  • AR(p):使用过去 p 个观测值解释当前值。
  • I(d):对序列做 d 阶差分以处理非平稳性。
  • MA(q):使用过去 q 个预测误差建模当前值。

季节性明显时可用 SARIMA/SARIMAX;还要与朴素季节基线、指数平滑和机器学习模型比较。检查残差自相关、预测区间和滚动回测,不只看训练拟合度。

Q8. LSTM 相比 ARIMA 有什么不可替代的优势?

答案: 没有“不可替代”的结论。LSTM 能学习非线性和多变量时间依赖,适合数据量足够、模式复杂且可重复的场景;ARIMA/指数平滑更易解释、训练成本低,在数据量有限或结构相对稳定时可能更好。

对“3 年小时级化工温度”任务,先建立季节性朴素预测、ETS、SARIMA 和梯度提升树基线,再测试 LSTM。必须按时间滚动验证,处理传感器漂移、异常点、停机工况、缺失值和未来变量可用性;若数据仅三年且工况变化大,复杂神经网络可能过拟合。

Q9. 为什么网格搜索在超参数空间中不可行?

答案: 网格搜索对每个参数设定若干离散值,再枚举所有组合。若有 d 个参数、每个参数 m 个候选,组合数是 m^d,维度增加时呈指数增长;而且很多参数对性能影响并不相同。

随机搜索通常在有限预算下更有效,因为它能在重要参数维度上探索更多不同取值。贝叶斯优化进一步利用已评估试验建立代理模型,估计候选配置的预期表现和不确定性,再用 acquisition function(如 Expected Improvement)选择下一次试验,以减少昂贵训练次数。

无论何种搜索,都必须在训练/验证流程内进行,不能用最终测试集选超参数。

五、多模态与知识图谱

Q10. CLIP 怎样同时学习图片和文本?如何做零样本分类?

答案: CLIP 使用图像编码器和文本编码器,把匹配的图片—文本描述映射到相近向量,把不匹配的配对拉远,常用对比损失训练。

零样本分类时,把候选类别写成文本提示(如“a photo of a dog”),分别编码图片和类别文本,计算相似度,选择相似度最高的类别。它不需要为每个新类别重新训练分类头,但效果受提示词、类别覆盖、数据偏差和领域差异影响。

CLIP 的相似度不是校准概率,也不保证识别训练分布外的细粒度品种。

Q11. 多模态大模型怎样“看图说话”?图像 token 拼接有什么问题?

答案: 常见架构先用视觉编码器(如 ViT)把图像切成 patch 并编码成视觉特征,再通过投影层/适配器映射到语言模型可处理的表示空间,随后与文本 token 一起输入 LLM;也有使用 cross-attention 连接视觉与语言特征的架构。

挑战包括:高分辨率图像产生大量视觉 token、细节丢失、图文对齐不足、不同图像尺寸处理、视频帧时序、显存和推理延迟。单纯把所有图像 patch 拼到文本前面并不自动保证模型理解空间关系;通常需要专门的图文训练数据和对齐目标。

Q12. 知识图谱三元组是什么?与关系数据库有什么区别?

答案: 三元组由(头实体,关系,尾实体)构成,例如(北京,首都,中华人民共和国)。它把知识表示成实体及其关系网络,适合多跳关系查询、语义关联和图结构推理。

关系数据库擅长结构化记录、事务和复杂条件查询;图数据库/知识图谱更直接表达实体之间的连接路径。二者不是互斥替代:实际系统常用关系库保存业务事实、图数据库管理关系网络,并通过实体 ID、约束和数据同步保持一致。

Q13. 知识图谱补全和 TransE 是什么?

答案: 知识图谱往往不完整,补全任务要预测缺失实体或关系。TransE 将实体和关系嵌入向量空间,假设真实三元组满足:

h + r ≈ t

训练时让真实三元组的距离较小、负采样生成的错误三元组距离较大。TransE 简单高效,但对一对多、多对一和复杂关系表达能力有限;可考虑 TransH、TransR、RotatE 或图神经网络方法。

六、异常检测与特征工程

Q14. 点异常、上下文异常和集体异常有什么区别?

答案:

  • 点异常:单个样本明显偏离总体,例如传感器读数突然达到不可能的数值。
  • 上下文异常:数值本身可能常见,但在当前上下文不合理,例如冬季室外温度在本地突然升到 40°C。
  • 集体异常:一组样本联合起来异常,但单独看每个点可能正常,例如 CAN 报文周期组合异常或一段时间的振动模式异常。

异常检测要先定义上下文、时间窗口和业务损失,再选择统计阈值、Isolation Forest、One-Class SVM、自编码器或时序模型。

Q15. Isolation Forest 为什么能检测异常?

答案: Isolation Forest 随机选择特征和切分点,递归切分样本。异常点通常更稀疏、更容易被少量切分隔离;正常点往往需要更长路径才被孤立。模型通过多棵随机树的平均路径长度计算异常分数。

它适合高维、无标签异常检测,但对特征尺度、数据分布、污染率设置和异常类型敏感。它检测的是“容易被隔离”的点,不等同于理解异常的业务原因。

Q16. 为什么要做特征缩放?为什么树模型通常不太需要?

答案: 标准化/归一化让不同量纲特征处于可比较尺度。KNN、SVM、PCA 和梯度优化的线性模型对尺度较敏感;若某个特征数值范围远大于其他特征,距离或梯度可能被它主导。

树模型主要按特征阈值切分,单调缩放通常不会改变样本排序和候选切分,因此一般不依赖标准化;但异常值、缺失值处理和特征编码仍然重要。

Q17. 类别特征如何编码?Target Encoding 有什么风险?

答案: 常见方法有 One-Hot Encoding、Ordinal Encoding、频数编码和 Target Encoding。One-Hot 适合低基数无序类别,但高基数时维度会膨胀。

Target Encoding 用类别对应的目标统计量替换类别,能压缩高基数特征,但如果直接用全量训练标签计算,会发生目标泄漏并严重过拟合。应使用 out-of-fold 编码、平滑先验、训练/验证严格隔离,并对测试集只使用训练数据计算的映射。

相关专题