1. 为什么大模型需要RAG技术?
大模型在处理长文档时面临两个核心痛点:Token消耗和上下文窗口限制。以GPT-4为例,其32k上下文窗口处理100页PDF文档时,单次推理就可能消耗超过20万Token(按1页≈2000Token估算),成本高达12美元(按GPT-4-32k $0.06/1k tokens计算)。更关键的是,超过95%的文档内容往往与当前问题无关,这种"全量投喂"方式既低效又昂贵。
RAG(Retrieval-Augmented Generation)的突破性在于将文档处理流程拆解为:
- 离线预处理:文档切块→向量化→存入向量数据库
- 在线检索:问题向量化→相似度检索→返回相关片段
- 生成应答:仅将相关片段作为上下文喂给大模型
实测显示,当处理100页技术文档时:
- 传统方式:消耗200k Token,响应时间15秒,成本$12
- RAG方式:平均仅需2k Token(降幅90%),响应时间3秒,成本$0.12
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文档预处理的关键四步
2.1 智能文档切块策略
文档切块(Chunking)是RAG的基石,常见误区是简单按固定字数分割。最佳实践应结合文档类型动态调整:
python复制from langchain.text_splitter import MarkdownHeaderTextSplitter
markdown_splitter = MarkdownHeaderTextSplitter(
headers_to_split_on=[("#", "Header 1"), ("##", "Header 2")],
chunk_size=1024,
chunk_overlap=128
)
分段策略对比表:
| 文档类型 | 推荐切块方式 | 块大小 | 重叠量 |
|---|---|---|---|
| 技术文档 | 按章节标题切分 | 800-1200 | 15% |
| 会议纪要 | 按议题切分 | 300-500 | 10% |
| 法律合同 | 按条款切分 | 500-800 | 20% |
| 学术论文 | 按章节+参考文献切分 | 1000-1500 | 10% |
关键技巧:对于代码文档,应将函数/类定义作为独立块,避免将示例代码与解释文本分离
2.2 向量化模型选型指南
向量模型的选择直接影响检索质量。2024年主流模型性能对比:
| 模型名称 | 维度 | MTEB得分 | 速度(文档/秒) | 显存占用 |
|---|---|---|---|---|
| bge-small-zh-v1.5 | 384 | 58.2 | 1200 |
