赞
踩
节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。
基于大模型实践和技术交流,我们写一本书:《大模型实战宝典》(2024版) 正式发布!
今天我分享一个开源项目QAnything,它是由网易开源自研的 RAG 引擎。该引擎允许用户上传 PDF、图片、Word、Excel、PowerPoint 等多种格式的文档,并实现类似于 ChatGPT 的互动问答功能,其中每个答案都能精确追溯到相应的文档段落来源。QAnything 支持纯本地部署,上传文档数量无上限,问答准确率高。
正如它的名字一样,Q 是 Question,A 是 Answer,QAnything 的目标就是万物皆可问!
总之,QAnything 是一个支持多种格式文件和数据库的本地知识库问答系统,可离线安装。
简单上传本地文件,即可获得准确、快速、靠谱的问答体验。
目前已支持格式: PDF(pdf),Word(docx),PPT(pptx),XLS(xlsx),Markdown(md),电子邮件(eml),TXT(txt),图片(jpg,jpeg,png),CSV(csv),网页链接(html)等。
开源 Github 地址:https://github.com/netease-youdao/QAnything
整个架构(如下图所示)包括了模型和系统等所有必要的模块。模型方面包括 OCR 解析、Embedding/rerank,以及大模型。系统方面包括向量数据库、MySQL 数据库、前端、后端等必要的模块。整个引擎的功能完整,用户可以直接下载,不需要再搭配其他的模块即可使用。系统可扩展性也非常好,只要硬盘内存足够,就可以一直建库,支持无上限的文档。
1、整个架构的工作流程主要包含三个环节:
索引(Indexing):文本索引的构建包括以下步骤:文档解析、文本分块、Embedding 向量化和创建索引。先将不同格式的原始文件解析转换为纯文本,再把文本切分成较小的文本块。通过 Embedding 为每一个文本块生成一个向量表示,用于计算文本向量和问题向量之间的相似度。创建索引将原始文本块和 Embedding 向量以键值对的形式存储,以便将来进行快速和频繁的搜索。
检索(Retrieval):使用 Embedding 模型将用户输入问题转换为向量,计算问题的 Embedding 向量和语料库中文本块 Embedding 向量之间的相似度,选择相似度最高的前 K 个文档块作为当前问题的增强上下文信息。
生成(Generation):将检索得到的前 K 个文本块和用户问题一起送进大模型,让大模型基于给定的文本块来回答用户的问题
2、为什么需要两阶段检索?
知识库数据量大的场景下两阶段优势非常明显,如果只用一阶段Embedding检索,随着数据量增大会出现检索降级的问题。二阶段 rerank重排后能实现准确率稳定增长,即数据越多,效果越好。
QAnything 使用的检索组件 BCEmbedding 有非常强悍的双语和跨语种能力,能消除语义检索里面的中英语言之间的差异。
3、使用的基座大模型
4、相关技术组件
BCEmbedding 文本嵌入模型
Triton Inference Server 推理服务
vLLM 在线推理服务加速器
FastChat 即时通讯平台
FasterTransformer 在线推理加速库
LangChain 应用开发框架
LangChain-Chatchat 聊天机器人应用
Milvus 向量数据库
PaddleOCR 图片识别组件
Sanic Python 3.6+ Web 框架
1、一键部署安装,特别简单
2、部署安装 FAQ
https://github.com/netease-youdao/QAnything/blob/master/FAQ_zh.md
技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。
成立了大模型面试和技术交流群,相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。
方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:来自CSDN + 技术交流
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。