共计 1847 个字符,预计需要花费 5 分钟才能阅读完成。
【技术本质】AG 与传统生成的架构差异
先看这张对比图:

flowchart LR
A[传统生成模型] --> B[仅依赖模型参数]
C[AG 架构] --> D[检索器]
C --> E[生成器]
D -->| 向量相似度 | F[外部知识库]
E -->| 融合检索结果 | G[最终输出]
关键差异点:
- 知识来源:传统生成仅用训练数据,AG 实时检索外部知识库
- 工作流程 :检索器(Retriever) 先筛选相关文档,生成器 (Generator) 结合检索内容输出
- 可解释性:AG 能追踪参考来源,传统生成是 ” 黑箱 ”
【渐进式学习】三阶段成长路线
阶段 1:OpenAI API 基础 +Prompt 工程
-
安装必备库
pip install openai tiktoken -
基础调用模板(带类型注解)
from typing import List import openai def generate_with_prompt( prompt: str, temperature: float = 0.7 ) -> str: response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}], temperature=temperature ) return response.choices[0].message.content -
关键技巧:
- 使用
temperature控制创造性(0-1) - 结构化 prompt 模板:” 请基于 [上下文] 回答[问题],若不知晓请明确说明 ”
阶段 2:FAISS 本地向量库实战
-
构建向量索引
import faiss import numpy as np # 示例数据 data = np.random.random((1000, 1536)).astype('float32') # 模拟 embedding index = faiss.IndexFlatIP(1536) # 内积相似度 index.add(data) -
检索优化策略
- 量化压缩:
IndexIVFPQ节省 70% 内存 - 批处理:每次查询 100+ 文档提升吞吐
阶段 3:LangChain 生产级部署
典型架构:
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(),
chain_type="stuff",
retriever=vector_db.as_retriever())
部署要点:
– 使用 FastAPI 封装 HTTP 接口
– 监控 latency_per_token 指标
【避坑指南】三大典型陷阱
- 知识冲突问题
- 现象:检索到错误文档导致生成矛盾
-
解法:添加一致性校验层
-
长上下文浪费
- 错误示例:将 10 页文档全部喂给模型
-
优化:动态提取关键段落
-
相似度阈值
- 黄金法则:
- 通用领域:0.75-0.85
- 专业领域:0.65-0.75
【实战代码】Colab 可运行示例
带相似度过滤的检索
from sklearn.metrics.pairwise import cosine_similarity
def filter_by_similarity(
query_embed: np.ndarray,
doc_embeds: np.ndarray,
threshold: float = 0.7
) -> List[int]:
sims = cosine_similarity([query_embed], doc_embeds)[0]
return [i for i, s in enumerate(sims) if s >= threshold]
置信度融合算法
def hybrid_scoring(
gen_score: float,
retriever_score: float,
alpha: float = 0.3
) -> float:
return alpha * retriever_score + (1-alpha) * gen_score
【性能调优】关键指标对比
| Model | QPS | Latency(ms) | 显存占用(GB) |
|---|---|---|---|
| all-MiniLM-L6 | 120 | 25 | 1.2 |
| bge-small | 95 | 38 | 1.8 |
| OpenAI-embedding | 15 | 210 | N/A |
测试环境:AWS g4dn.xlarge (1x T4 GPU)
开放性问题
当检索结果与生成模型先验知识矛盾时,您会采用哪种决策策略?常见选择有:
- 优先信任检索结果(适合事实性查询)
- 以模型知识为主(适合创意任务)
- 混合加权策略(需设计置信度算法)
期待在评论区看到您的解决方案!
正文完
发表至: 技术分享
近一天内
