大模型精准问答机制解析:从语义向量化到上下文增强的完整流程拆解

引言

首先我们需要思考一个问题:在我们用大模型,对它提出问题时,它为什么能够给到你一个相对精确的回复?

一、大模型生成会话流程

1、文本生成流程

用户输入问题——问题向量化(检索阶段)——向量相似性检索——拼接上下文与问题——大模型生成答案——用户接收答案

2、流程解析

2.1 用户输入问题

用户把问题给到大模型;

2.2 问题向量化(检索阶段)

大模型会将用户的问题转换成向量化数据(也就是将问题文本转化为数值形式的向量)。那为什么需要向量化呢?因为计算机无法直接去理解文本内容,所以需要将用户的问题文本进行转化,从而得到计算机能够去识别理解的文本形式,也就是数值形式的数据;

2.3 向量相似性检索

这里用户输入的问题向量化文本(转化为数值型的文本)会与大模型的知识库进行相似度检索。那检索的形式就是会去做一个“L2距离(欧氏距离)​”的一个计算,L2距离指的是在二维平面上,两点之间的直线距离。也就是“问题文本的向量化数据“与”大模型知识库中的向量化数据”会进行距离计算,距离越小相似度越高,大模型会选出相似度较高的数据。

2.3.1 L2距离示例说明
  •  ​类比:在二维平面上,两点之间的直线距离就是 L2 距离。

    • 点 A​(坐标 (1,2))和 ​点 B​(坐标 (4,6))的 L2 距离:
  • 扩展到高维
    L2 距离衡量高维空间中两个向量的相似性。距离越小,向量越相似。

    • 向量 1[0.2, -1.3, 0.8]
    • 向量 2[0.5, -1.1, 0.7]
    • L2 距离计算
  • 为什么用 L2 距离?
    FAISS 支持多种距离计算方式,IndexFlatL2 表示选择 L2 距离。其他常见选项:

    • 内积(IndexFlatIP)​:适合余弦相似度优化后的向量。
    • 余弦相似度:需先对向量做归一化(转换为单位长度),再用内积。

​2.3.2 实际场景示例

假设你有一个 ​电影推荐系统

  1. 向量维度:每部电影用 ​384 个特征 描述(如动作成分、浪漫成分、导演风格等)。
  2. L2 距离:用户喜欢的电影是 [0.2, -1.3, 0.8, ...],FAISS 会找到与之 L2 距离最小的其他电影(即特征最接近的)。

2.4 拼接上下文与问题

2.4.1 基本拼接形式

上下文标记 和 ​问题标记,通过自然语言明确区分二者,示例:

已知信息:{{CONTEXT_1}}\n{{CONTEXT_2}}...  
问题:{{USER_QUESTION}}  
请根据已知信息回答,避免编造。
  • 上下文部分:按相关性排序的检索结果(如Top-K文档片段),需去重和截断以适配模型窗口
  • 问题部分:用户原始提问,需保持语义完整性

示例

已知信息:This chunk is from an SEC filing on ACME corp's performance in Q2 2023; the previous quarter's revenue was $314 million. The company's revenue grew by 3% over the previous quarter.  
问题:ACME公司2023年第二季度的收入增长了多少?

2.4.2 高级拼接策略

针对不同场景,可优化拼接形式以提升效果:

​(1) 动态上下文选择

Self-RAG技术:在生成过程中动态判断是否需要检索,并筛选相关片段

步骤:模型先预测是否需要检索 → 若需要则召回文档 → 评估片段相关性 → 仅拼接高相关片段

重排序(Reranking)​:通过交叉编码器对召回结果二次打分,优先保留高置信片段

​(2) 结构化增强

知识图谱融合:将检索到的文本与知识图谱中的实体关系结合,生成带语义关联的上下文

示例:

"已知实体:ACME公司(类型:企业,行业:科技)

关联事件:2023年Q2收入增长3%"。

​(3) 多模态扩展

半结构化数据:将表格、图片描述等非文本信息转换为自然语言后拼接

示例:"表格摘要:ACME公司Q2收入为$323 million,环比增长3%。"

问题向量化(检索阶段)
  • 使用 ​Embedding 模型​(如 OpenAI text-embedding-3-small)将问题转换为 ​高维向量​(例如 1536 维)。
  • 目的:将文本转化为数学表示,便于计算相似性。
向量相似性检索
  • 在 ​向量数据库​(如 FAISS)中搜索与问题向量最相似的 ​Top-K 文档片段向量
  • 关键:向量维度必须与数据库索引维度一致,否则无法计算距离
拼接上下文与问题

将检索到的文档片段(如“剑桥大学的校长是马冬梅”)与用户问题 ​拼接,形成提示词(Prompt):

已知信息:剑桥大学的校长是马冬梅,马教授是一名计算机专业的教授...
问题:剑桥大学的校长是谁?
生成模型(如 GPT-4)生成答案

大模型基于 ​检索到的上下文 生成最终答案

(如“剑桥大学的校长是马冬梅教授”)。

注意:生成模型本身 ​不存储知识,而是依赖检索到的内容。


关键总结

  • 向量维度:向量的“描述复杂度”,需与 Embedding 模型输出严格一致。
  • L2 距离:衡量向量相似性的数学工具,距离越小越相似。
  • FAISS 的作用:快速从海量向量中找出 Top-K 最相似的条目(如搜索、推荐场景)。

你可能感兴趣的:(AI大模型应用-理论,python,AI大模型,向量维度,L2距离,Falss)