- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Milvus 实战系列#3 思必驰:Milvus在问答系统中的应用
Milvus 实战是由 Milvus 社区协同社区成员共同发起的场景应用系列直播,直观分享 Milvus 向量数据库在各行各业中的实际应用。
本期分享大纲:
- 问答系统简介
- 召回模型;传统召回和深度网络模型
- Milvus的应用
欢迎添加小助手微信:Zilliz-tech 备注“直播”加入讨论群与讲师实时QA
展开查看详情
1 .Milvus在问答系统中的应⽤ 公司:思必驰 分享⼈:朱新宇
2 .⽬录 ! 问答系统介绍 ! 召回模型 ! Milvus的应⽤ www.aispeech.com
3 .问答系统介绍 • 检索式和⽣成式 • 闲聊问答和任务型问答 • 检索式问答系统的通⽤架构 QA1: Q-天⽓真好 A-是啊,天⽓好,⼼情 也好了呢 有的系统会有精排过程 Query: QA2: Q-天⽓真棒 QA1 今天天⽓ A-是的呢,叫上朋友 QA1 返回A 真不错呀 预处理 ⼀起出去玩吧 QA2 QA3: Q-天⽓好差 A-不能出去玩了,那 就在家看看电影吧 召回:从候选库⾥选出相关的Q 排序:对相关Q进⾏打分排序 • Milvus 系统应⽤在流程的召回阶段 www.aispeech.com
4 .召回模型-传统召回 • 基于TF-IDF、BM25 的词袋模型 • TF-IDF https://zh.wikipedia.org/wiki/Tf-idf • BM25 https://en.wikipedia.org/wiki/Okapi_BM25 QA1: Q-天⽓真好 QA2:Q-天⽓真棒 • ⽐如⼯业上常使⽤的ES系统(5.0版本默认BM25) QA3:Q-天⽓好差 今天 None 今天 query: 天⽓ 天⽓ 1,2,3 分词 ⽂档库 今天天⽓ 预处理 真 真 2 真不错呀 词权重计算 不错 不错 None 相关⽂档:1、2 倒排索引 • 缺点很明显: • 词义(可通过同义词词典解决) • 词袋模型缺少句⼦顺序信息,误召回较多 • 在深度学习应⽤之前⼀直是信息检索系统中最常⻅有效的算法 www.aispeech.com
5 .模型-深度⽹络模型 • 向量召回只能⽤于基于表示(Representation-Based)的匹配模型 • Similarity 可以是IP也可以是L2, Milvus都⽀持 • 使⽤bert 作为encoder,CLS位置的向量或者池化之后的向量作为句⼦Embedding • 考虑到⽤户query和候选question是相同类型,两个bert参数共享 bert bert www.aispeech.com
6 .模型-深度⽹络模型 • 如何训练出⼀个较好的语义表征? • 对⽐学习 • 模型的3种训练形式 • Pointwise • 直接预测每个候选和问题的相关分数 • f(x,y) --> IP,L2 • loss --> 均⽅损失、交叉熵损失 • 优点 • 容易实现 • 缺点 • ⽆法学到不同候选之间的排序关系 • Pairwise • 输⼊多个候选,要求正例得分>负例 • f(x,y) --> cosine相似度、IP • loss -->tript loss或 的交叉熵损失 • 缺点 • 两两⽐较与任务⽬标不同(所有⽂档 排序) www.aispeech.com
7 .模型-深度⽹络模型 • Listwise • 输⼊多个候选,要求候选得分顺序正确的 概率最⼤ • f(x,y) --> cosine、IP • 通常数据集只有正例和负例,不可能有标注 score(A)>score(B)>score(C)。 • 表现形式更像是多个Pairwise。 这⾥我们使⽤pairwise www.aispeech.com
8 .模型-深度⽹络模型 • 召回效果与BM25 对⽐ 《Dense Passage Retrieval for Open-Domain Question Answering》 https://arxiv.org/abs/2004.04906 www.aispeech.com
9 .Milvus的应⽤ • 向量召回技术选型 faiss milvus 不同索引类型 ⽀持 ⽀持但更多 索引数据管理 ⽀持 ⽀持但更⽅便 GPU ⽀持 ⽀持 SDK和API python/c++ python/c++/java /RESTfulAPI/GRPC 社区⽀持 活跃 很活跃 开箱即⽤ 不⽀持 ⽀持 www.aispeech.com
10 .Milvus的应⽤ • 召回系统如何应⽤? 标准question 发布 闲聊 笑话 Encoder 成语 。。 query 查询 召回模型 • 离线发布 • 数据分类, 不同类型QA发布到不同collection⾥ • 在线查询 • 多路召回,结果融合 • 数据量500w左右,所以未使⽤mishards • ⼀个读写节点, 多个读节点,共享存储。 www.aispeech.com
11 .Milvus的应⽤ • 假如有100w question,编码成768d的向量。机器16核,64G内存 • 索引:IVF_SQ8, 聚类簇数 2048 • 搜索:簇数10, topK20 thread num tps AVG(ms) P95 1 40 24.56 30 5 152 32.35 46 10 272 36.34 50 25 519 47.56 62 50 525 94.45 108 100 524 189.63 222 www.aispeech.com
12 .Milvus的应⽤ • 期望的功能 • ⽀持结构化数据,特别是⽀持存储字符类型数据 • 元数据管理⽀持其他类型数据库,⽐如mongoDB www.aispeech.com
13 .Thank You https://milvus.io https://github.com/milvus-io/milvus 添加企业微信 发送 “直播” 加⼊交流群 领取直播PPT + 回放链接 🔗 https://twitter.com/milvusio