OpenSearch RAG 应用实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 阿里云OpenSearch
RAG应用实践
阿里云OpenSearch研发负责人/邢少敏
2.
3. 目录
• RAG产生背景
• RAG技术方案
• RAG应用实践
• RAG总结展望
4. 人机对话系统发展简史
2、NLP、AIML标签语言
自动机、Slot-Filling等
“Bots are the new apps”
--by Microsoft CEO Nadella, 2016
心理医师 ELIZA
MIT Artificial
Intelligence
Laboratory
Loebner Prize设立
每年数千美元的奖金
对首次首次通过图灵测试
额外奖励
1966
1950
图灵测试
Alan Turing
1991
1972
模拟精神病患者 PARRY
Stanford
1、专家系统
Jabberwacky
获得Loebner Prize
2005、2006连续2届
冠军
1997
1995
A.L.I.C.E
在互联网上可以使用,获
得Loebner Prize 2000、
2001、2004共3届冠军
IBM Watson
在《危险边缘》
Jeopardy!战胜人类
2006
2005
Mitsuku
获得Loebner Prize
2014、2016、2017共3
届冠军
Google
Transformer
Google Now
2017
2012
2010 2015
苹果Siri 微软小冰
亚马逊Alexa
阿里小蜜
3、神经网络、强化学习、
端到端对话系统
OpenAI
ChatGPT
2022
2018
OpenAI GPT
4、生成式AI
5. 垂直领域的挑战催生RAG
直接使用大模型?
查找信息
结果整合
提问
回答
世界知识
企业自身知识库
海量通用知识、语料参差不齐、存在安全风险
企业内部文档、业务数据、经营数据
大模型在知识问答场景存在的问题
幻觉问题
知识受限
成本很高
不可解释
合规问题
……
6. 目录
• RAG产生背景
• RAG技术方案
• RAG应用实践
• RAG总结展望
7. RAG
•RAG
• Retrieval-Augmented Generation
(检索增强生成)
• 搜索结果引导LLM的生成
• RAG优势
• 实时更新知识库,无需重新训练
• 答案能追溯来源,可解释可追踪
• 答案基于知识库,不易产生幻觉
论文地址:https://arxiv.org/pdf/2312.10997.pdf
Github:https://github.com/Tongji-KGLLM/RAG-Survey
8. 阿里云OpenSearch RAG
文档
在线链路
离线链路
解析、切片、索引
html, markdown, pdf, doc
向量索引
文本索引
文本、图片、表格、代码
问题
混合检索
介绍Opensearch
Query扩展
Opensearch功能
介绍Opensearch
Opensearch优缺点
重排
回答
大模型总结
Opensearch是基于阿里巴巴…
RAG定制模型
大模型评测
预训练&SFT&DPO
Prompt生成
评测指标
检索增强数据
Qwen
准确率、幻觉率、全面性、不相关比例
训练链路
客户数据 第三方开源模型
数据 模型
9. RAG关键点
场景效果要求高
“预期100%准确”
实时生成答案
“1~3秒内”
训练推理成本高
“RAG主要成本是GPU”
隐私和安全性
“过滤敏感话题”
ü 准确解析不同格式文档 ü 高性能召回问题相关结果 ü 低成本训练方法 ü 遵守相关法律法规
ü 准确召回问题相关结果 ü 高性能大模型推理生成 ü 大模型推理加速 ü 可控的大模型生成
ü 低幻觉率的大模型总结
ü 过滤屏蔽敏感话题
10. RAG关键点
场景效果要求高
“预期100%准确”
实时生成答案
“1~3秒内”
训练推理成本高
“RAG主要成本是GPU”
隐私和安全性
“过滤敏感话题”
ü 准确解析不同格式文档 ü 高性能召回问题相关结果 ü 低成本训练方法 ü 遵守相关法律法规
ü 准确召回问题相关结果 ü 高性能大模型推理生成 ü 大模型推理加速 ü 可控的大模型生成
ü 低幻觉率的大模型总结
ü 过滤屏蔽敏感话题
11. 数据多样复杂
表格信息提取
图表理解
文档结构分析
12. 数据解析和提取
pymupdf pdfminer papermage pdfplumber camelot borb pypdf
文章 ✅ ✅ ✅ ✅ ❌ ✅ ✅
段落 ⚠️ ❌ ✅ ❌ ❌ ❌ ❌
左右分栏 ✅ ❌ ✅ ❌ ❌ ❌ ✅
引用 ✅ ❌ ❌ ✅ ❌ ❌ ❌
目录 ✅ ❌ ❌ ❌ ❌ ❌ ❌
作者 ⚠️ ❌ ✅ ❌ ❌ ❌ ❌
标题 ⚠️ ❌ ✅ ❌ ❌ ❌ ❌
脚注 ✅ ❌ ⚠️ ✅ ❌ ❌ ❌
标注(图片、表格) ✅ ❌ ❌ ❌ ❌ ❌ ❌
图片 ✅ ✅ ❌ ✅ ❌ ❌ ✅
注释 ✅ ❌ ❌ ❌ ❌ ❌ ❌
上标 ✅ ❌ ❌ ✅ ❌ ❌ ❌
⚠️ ❌ ❌ ⚠️ ⚠️ ❌ ❌
页眉、页脚
公式
表格
✅ :支持
❌ :不支持 ⚠️ :部分支持
没有一个现有工具可以解决所有问题,需要长期精细的打磨
13. 文本切片
层次切分
一级标题
段落1
段落2
二级标题1
段落3
二级标题2
段落4
三级标题1
段落5
切片1 一级标题 切片2 一级标题 二级标题1 段落2
切片3 一级标题 二级标题1 段落3
切片4 一级标题 二级标题2 段落4
切片5 一级标题 二级标题2 三级标题1
段落1
段落5
多粒度切分
粗切片1
一级标题
二级标题1
段落1
细切片1 一级标题 二级标题1 句子1
细切片2 一级标题 二级标题1 句子2
细切片2 一级标题 二级标题1 句子3
14. 多语言向量模型
Method 电商数据 优酷数据 医疗数据 short_avg
openai_ada 0.3864 0.3464 0.3555 0.3627
sgpt_bloom(7b) 0.5159 0.4382 0.4183 0.4575
sgpt_bloom_1b1_300_lora (opensearch) 0.4870 0.4621 0.4304 0.4598
数据集: https://github.com/Alibaba-NLP/Multi-CPR
•训练数据
• 300:MS MARCO Passage Ranking Dataset + hard negative样本构造
• 2k:MS MARCO Document Ranking Dataset + 清洗2k token长度内均匀分布样本 + hard negative样本构造
•底座模型
• bloom_1b1:参数量适中,输出embedding维度1536,效率友好
•训练方法
• loss:In Batch Negative Loss
• 分布式训练 + 数据并行,batch size = 32 = 4 * 8卡
•效果评测
• 自研基于bloom底座大模型的向量模型sgpt_bloom_1b1系列在短文本效果已接近7B模型
15. Query理解
• 分析Query结构(分词、NER) • 意图决策处理链路
• 纠正Query错误(纠错) • 信息不足意图澄清
• 联想Query语义(改写)
• HyDE
• RAG-Fusion
• 扩充Query上下文(省略补全、指代消解)
对话数据
独立及简略问题对
独立问题
多轮对话query改写
Q: 介绍Opensearch
A: Opensearch是…
包含智能问答版、
向量检索版…
Opensearch智能问答版有哪些功能?
简略问题
智能问答版有哪些功能
训练样本
Q: 介绍Opensearch
A: Opensearch是…
包含智能问答版、
向量检索版…
Q: 智能问答版有哪些功能
Opensearch智能问答版有哪些功能?
16. NL2SQL
Q:查询所有有电商业务并且员工数量少于50人的
企业名称?
A:SELECT ‘company_name’ FROM
‘company_table’ WHERE ‘is_ebusiness’
= 'Y' AND ‘employee_num’ < 50;
Q:北京物多美便利店的员工人数是多少?
SQL: SELECT ‘employee_num’ FROM
‘company_table’ WHERE ‘company_name’
= '北京物多美便利店’;
A:北京物多美便利店的员工人数是500人
17. NL2OpenSearch
模型/方法
ChatGPT
Llama2-13B
OpenSearch-Llama2-13B
准确率
80%
32%
93%
latency
N/A
N/A
1.11s
18. 混合检索
• Dense Vector主要处理语义匹配问题,而Sparse Vector可以处理精确匹配问题
• 提供统一向量化模型针对同一文本同时产出Dense向量和Sparse向量
• 召回阶段提供Dense索引+Sparse索引结合的混合检索
Dense Vector
稠密向量模型
[0.3,0.5,6.2,2.3,
0.3,0.5,6.2,2.3…5.6]
数据处理
模型的高维特征表达:语义搜索
混合索引
原始语料
Sparse Vector
稀疏向量模型
indices:[12,16,18…]
value:[0.21,0.1,0.15…]
关键词分析、词频统计的信息表达
稠密&稀疏向量嵌
入组合为单个向量
混合召回 排序
语义匹配 相似度权重
关键词匹配 排序公式
词频匹配
检索结果
19. 混合检索模型
• Sparse与Dense结合后在小模型上实验,对大部分任务都有提升
• 2024年3月份阿里云OpenSearch RAG混合检索Embedding模型荣获C-MTEB榜单第一
英文实验
SPLADE (4096)
bge-small-en-v1.5-angle
OpenSearch
Avg Retrieval
53.90
60.95
62.36 48.05
48.09
52.91
Classificatio
n
64.54
72.87
74.08
Clustering Reranking STS
25.5
43.23
42.41 51.51
58.04
57.92
76.14
82.38
82.53
PairClassificat
ion
81.98
85.14
85.58
Summarization
29.34
30.59
29.42
中文实验
Avg
stella_v3
68.46
bge-m3 sparse 4096_0.6+stella_v3 68.20 73.60
74.40 Classificati Clustering Reranking
on
71.50
53.75
68.27
71.74
53.48
67.96
OpenSearch 74.40 71.74
68.70
Retrieval
53.75
68.27
STS PairClassification
62.45
61.24 88.10
85.28
62.45 88.10
20. 检索结果重排序
• 混合检索后重排,进一步提升排序效果
MIRACL数据集
hit_rate@5 dureader retrieval
hit_rate@5
未rerank 0.403 0.413
rerank 0.492 0.494
• 模型重排:bge-reranker、cohere rerank
• 规则重排:文档序重排
• 切片扩展:扩展相邻切片
• 效果:召回率+20%,回答准确率+12.5%
21. RAG大模型微调
提问+检索结果
开源数据
后处理
回答
GPT3.5
ICL+COT
回答样式筛选
训练数据生产流程
客户真实提问+ 引
擎检索结果
多轮对话
大模型抽取提问+
引擎检索结果
客户场景效果
来源引用
低质量筛选
回答风格定制
答案综合评分 幻觉率
GPT-4-turbo
OpenSearch-Qwen1.5-14B
Qwen-200B
OpenSearch-Qwen-72B 0.9379
0.8661
0.9018
0.8908 7.1%
11.3%
9.2%
6.4%
OpenSearch-Qwen1.5-72B 0.8790 4.3%
22. 大模型评测
评测指标:回答准确率,幻觉率,全面性,不相关内容比例
评测方法:多agent评测(prompt生成、评测、校验、分析总结)
Prompt生成
基于badcase样例总结问题类型,
生成评测prompt
问题发现及评分
问题校验
基于上下文、提问,
检测回答中的问题,并给出理由
校验发现问题对错,
纠正评估错误
结论分析
问题类型分类
评测效果:
问题发现及评分(开源方案:Ragas)
问题发现及评分+prompt生成
问题发现及评分+prompt生成+问题校验
问题发现及评分+prompt生成+问题校验+结论分析
评测准确率
83%
88%
95%
95%
问题分类
无
不准确
不准确
准确,包括幻觉(编造&混淆)、遗漏、包含不相关内容、重复
23. RAG关键点
场景效果要求高
“预期100%准确”
实时生成答案
“1~3秒内”
训练推理成本高
“RAG主要成本是GPU”
隐私和安全性
“过滤敏感话题”
ü 准确解析不同格式文档 ü 高性能召回问题相关结果 ü 低成本训练方法 ü 遵守相关法律法规
ü 准确召回问题相关结果 ü 高性能大模型推理生成 ü 大模型推理加速 ü 可控的大模型生成
ü 低幻觉率的大模型总结
ü 过滤屏蔽敏感话题
24. 高性能向量引擎VectorStore
• VectorStore引擎基于navi框架实现,调度简单且性能高效。
Ø 千亿数据毫秒级响应,实时数据更新秒级可见
Ø 检索性能优于同类开源产品数倍
Request
Query
Parse
QRS
Merge
Format
Response
Searcher
Scan
Scan
Table
Scan
25. VectorStore图检索
ØHNSW (Hierarchical Navigable Small World),HNSW 是一种分层小世界图的检索方法,上层小世界图可以看成是下层
图的缩放。多层图的方式目的是为了减少搜索时距离计算和比较的次数,类似于跳表查找。
ØVectorStore的图算法基于HNSW实现,并在HNSW基础上从图结构和检索两个方面进行了优化。
HNSW 性能进行优化,可以从图的构建和检索两个方面入手。
Ø 构建阶段的优化:优化图结构,使图的出度入度更加合
理,更利于 ANN 搜索
Ø 检索阶段的优化:减少距离计算操作的开销,以及预测检
索游走时所需的总步数,当到达预期步数时可以提前终止
检索,以减少计算开销
26. VectorStore图结构优化
Ø 图结构优化
优化前
优化后
27. VectorStore图检索优化
Ø 检索阶段优化
Gist数据集,top 10
Sift数据集,top 100
28. VectorStore异构计算
Host
CPU
CPU
GPU
CPU
GPU
Ø GPU+CPU并行加速
CPU
Ø Nvidia T4性能提升3~6倍
Ø Nvidia A100/A800/H100性
能提升30~60倍
FPGA
FPGA
Memory
29. Havenask引擎
Havneask 读写分离
Havenask 读写统一
查询链路
数据链路
实时数据
服务发现
Hape
Cluster 0
Qrs 0
Hape
Qrs m
Ha tools
Ha tools
Searcher 0
Searcher
0
p0
Swift tools
Swift
(ProcessedDoc)
Swift
(实时数据)
Max
Compute
OSS文件
Searcher n
Searcher 1 Searcher n
p1 pn
Broker n
Broker 0
Builder
Index Data
分布式文件
系统
Cluster n
Online
Processo
r 0 Builder 0 Merger 0
… … …
Processo
r n Builder n Merger n
Index Data
Table n
Offline
Searcher 0
Follower 0
读写分离
Searcher 0
Follower n
Searcher 0
Leader
数据读取
W
AL
Swift
Admin
Broker 0
Broker 1
Broker n
Searcher n
Follower n
Searcher n
Leader
Log订阅
索引整理
分布式文
件系统
Index
Log
Data
读写统一
• 存算分离,远端、本地、内存多级缓存
• 多集群互备,更加可靠
Searcher n
Follower 0
数据写入
Log落盘
BS Admin
• 独立索引构建流程,高效数据导入
• 多版本索引管理,互不干扰
Swift
tools
Merger
HDFS文件
Processor
Searcher 1
Qrs n
Qrs 0
Bs tools
服务发现
Cluster 0
• 更高时效性保证,read-your-writes
• 轻量的表管理,支持DDL
GitHub地址:https://github.com/alibaba/havenask
• 多集群互备
Index
Cluster n
30. 大模型推理加速
模型量化和加速(8bit/4bit)
Ø KV Cache:额外显存空间缓存结果,避免重复计算
Ø Continuous Batching:模型量化将内存占用减半,吞吐翻倍
Ø Tensor Parallel:将模型同层、不同层计算分到多卡
推理加速收益
• 13b Qwen和Llama2模型, 3秒内生成200token答案
• 采用70b模型, 6秒内生成200token答案
31. RAG关键点
场景效果要求高
“预期100%准确”
实时生成答案
“1~3秒内”
训练推理成本高
“RAG主要成本是GPU”
隐私和安全性
“过滤敏感话题”
ü 准确解析不同格式文档 ü 高性能召回问题相关结果 ü 低成本训练方法 ü 遵守相关法律法规
ü 准确召回问题相关结果 ü 高性能大模型推理生成 ü 大模型推理加速 ü 可控的大模型生成
ü 低幻觉率的大模型总结
ü 过滤屏蔽敏感话题
32. 大模型优化方法选择
• Prompt
• Zero-shot、Few-shot、Chain-of-Thought(CoT)
• Pretraining
• ~1000 GPU、月级(数据规模相关)
• Continue Pretraining
• <100 GPU、天级(数据规模相关)
• 领域数据+数倍通用数据
• Supervised FineTuning(SFT)
• 全参数、LoRA
• <100 GPU、天级(数据规模相关)
• 方法简单、效果直接、最常用
• RLHF(PPO)-> DPO
• <100 GPU、天级(数据规模相关)
33. 客户专属模型
单卡Lora:每张卡相同基座大模型+多个不同LoRA小模型
多卡lora:基座大模型和LoRA小模型相同比例切分到多卡
LoRA的成本收益
效果
新增参数比例
新增显存消耗
新增成本费用
基础模型
89%
0
-
-
lora rank64
94%
2.5%
1
100/月
lora rank512
97%
20%
8
800/月
全参数微调
100%
100%
40
4000/月
34. RAG关键点
场景效果要求高
“预期100%准确”
实时生成答案
“1~3秒内”
训练推理成本高
“RAG主要成本是GPU”
隐私和安全性
“过滤敏感话题”
ü 准确解析不同格式文档 ü 高性能召回问题相关结果 ü 低成本训练方法 ü 遵守相关法律法规
ü 准确召回问题相关结果 ü 高性能大模型推理生成 ü 大模型推理加速 ü 可控的大模型生成
ü 低幻觉率的大模型总结
ü 过滤屏蔽敏感话题
35. 目录
• RAG产生背景
• RAG技术方案
• RAG应用实践
• RAG总结展望
36. RAG应用场景
电商场景
内容场景
企业知识库
教育搜题
• 用户选品、直播答疑 • IT、文娱等个性化信息检索 • 企业内部资料 • 搜题生成答案,知识总结
• 商品售前咨询,售后服务 • 提升检索效率、用户粘性、 • 产品文档、技术资料等 • 提升学习效率,用户粘
• 提升企业信息检索效率 性、活跃度、业务转化
• 提升购物互动体验、销量转化
活跃度、业务转化
37. RAG客户场景
“ 为您找到 Dior Boy 男士乐福鞋,价格 9200 元 ”
处理&返回
“ 男士乐福鞋多少钱 ”
文本Query
[0.3,0.5,6.2,2.3,
0.3,0.5,6.2,2.3,
0.3,0.5,6.2,2.3,
0.3,0.5,6.2,2.3…5.6]
Query向量化
问答结果
商品库
38. 客户场景全链路效果
问题解决率
87%
72%
61%
48%
Qwen Prompt工程 向量检索 多路召回 向量模型蒸馏LLM
层次切片 多粒度切片
Qwen SFT
重排
39. 目录
• RAG产生背景
• RAG技术方案
• RAG应用实践
• RAG总结展望
40. 阿里云AI搜索开发平台
LangChain
组件编排
LlamaIndex
Query改写 实体识别 分词
拼写纠错 指代消解 意图识别
Query理解
搜索组件
SFT数据生成
微调服务(PAI) 推理服务(PAI-EAS)
大模型评测服务
大模型服务
Qwen系列模型
在线引擎
数据层
Havenask
数据格式
数据源
离线服务
Elasticsearch
PDF、Word、PPT
MaxComput
e
Hologres
第三方开源大模型
向量化 sgpt-
bloom stell
a bge-m3
文本切片 多粒度切分 层次切分 语义切分
数据提取 文本提取 OCR 视觉模型
Excel、CSV
HDFS
JSON、HTML、Markdown
OSS
RDS
41. RAG下一步探索
•
多模态
•
•
•
文本、图片交互->文本、图片、语音、视觉交互
Agent
• Static Dialog Flow
• Dynamic Agent Planning
Long-Context
•
RAG vs Finetune
开源Havenask技术交流
•
RAG vs Long-Context
42.
43.