如何搭建私域知识问答业务:开源模型 vs 向量检索

目前市面上通用大模型已经很多而且也比较成熟,但是相较于通用大模型而言很多企业或者个人都需要建立私域数据知识库问答业务。而目前如果想要搭建私域知识问答业务通常有两种方式。

一种是用私域数据在开源模型上进行训练微调;一种是结合向量检索,将专业领域知识和原始提问转化为向量,再使用通用大语言模型进行回答。

这两种方式各有利弊,基于开源模型训练微调存在成本高,包括机器成本和人力成本,另外时效性也较差,但是数据安全性更高;而第二种基于向量检索的形式,工程上需要做的工作比较多,需要文档切片,向量存储,向量检索等技术,同时需要跟通用大模型进行交互,所以会有一些数据安全风险以及一些 Token 额度的消耗。

目前业界使用的方式较多的是第二种,下面是大概的整体流程。

0-2

这个流程中向量化的过程以及问答的时候都会涉及到跟大模型进行交互,而消耗的 token 跟上下文的内容的大小都有关系。

随着行业的发展,目前第二种方案形成了很多框架,其中很著名的就是 LangChain,更有很多开源项目基于 LangChain 做了封装和开发。如果自己想实现方案将二的话,也完全可以使用 LangChain 来实现上述的整个流程。

同时方案二也形成了很多行业解决方案,包括云上产品以及一些开源项目,这里给大家介绍两个,一个是开源项目 DialoqBase,一个是阿里云的 Lindorm 多模态数据库。

DialoqBase

项目地址:https://github.com/n4ze3m/dialoqbase

Dialoqbase 是一个开源应用程序,旨在通过使用个性化知识库来促进定制聊天机器人的创建。该应用程序利用先进的语言模型生成准确和上下文感知的回复。此外,它利用 PostgreSQL,一个强大的关系数据库管理系统,用于高效的向量搜索操作和存储知识库。

搭建完成过后,通过地址 http://127.0.0.1:3000/#/ 我们可以创建问答机器人。

0-1

点击 create new bot

0

创建的时候我们可以选择数据源,这里的数据源就是我们的私域知识库,知识库的类型有很多中,可以是一个网页,可以是一段文本,也可以是一个文件,或者是爬虫等。

需要注意的是这里的 DataSource 数据源在创建的时候不是必选的,可以在后面再进行添加,而且数据源内容的多少决定了 Embedding 的时间长短,以及对应 Embedding 模型 Token 的消耗多少。

接下来再选择一个需要进行交互的 Chat Model,目前支持 OpenAIClaude 的模型。

0-3

接下来再选择 Embedding 模型,目前支持的有下面这些。注意对于创建的一个 Bot 来说,Embedding 模型一旦选择过后是不能进行修改的,Chat Mode 后续是可以修改的。

0-4

创建完成过后会进入到 Playground 模块,如果前面增加了 DataSource 的话,这里就可以直接进行问答了,如果没有增加 DataSource 的话,可以在左侧的 DataSource 模块进行添加,支持添加多个。

0-5
0-6

下面是我将公众号里面的文章作为数据源添加过后,进行的测试,效果还是可以是。

0-7

1.0 版本的 DialoqBase 支持多人注册创建 Bot 进行问答。

0-9

DialoqBase 目前支持集成到一些社交软件当中,不过目前都还只支持国外的软件,这里就不介绍了,后续不知道会不会考虑接入国内的社交软件。

0-8

Lindorm

Lindorm 是阿里云的一款多模数据库产品,针对私有知识库问题,云原生多模数据库 Lindorm 推出一站式私域数据知识问答 AIGC 解决方案,结合 Lindorm AI 引擎和内置的向量检索能力,实现仅通过一条 SQL 语句就能简单构建知识问答业务的功能,简化应用开发的工作。

简单来说就是 Lindorm 将文档切片,向量化,向量检索等操作全部封装到底层,用户只需要像操作数据库一样进行数据的插入和通过 SQL 语句来进行知识问答。

0-11
0-10

云产品的初衷就是将复杂留给自己,将方便留给用户,只不过你要花钱;同时 Lindorm 支持私有模型的部署,这一点相对于公共模型会好点。

目前阿里云上面 Lindorm 体验版是 60 一个月,感兴趣的可以去体验一下。

官方文档

  1. https://help.aliyun.com/document_detail/2401799.html?spm=a2c4g.2399914.0.0.697b4dd9JMmMCO

  2. https://mp.weixin.qq.com/s/7Dkz3rHhZgyTe664WplDBw

总结

未来几年将会是 AI 应用的井喷时代,所有移动互联网的应用都可能基于大模型的底座再重新做一遍,对于我们来说是机遇也是挑战。

推荐阅读

Java 程序员从零开始学 LangChain —— 01 入门介绍

Java 程序员从零开始学 LangChain —— 02 模型组件

Java 程序员从零开始学 LangChain —— 03 提示词组件

评论