如何提升AI问答的准确度?

巴别鸟智巢AI推出后,很多客户想使用智巢AI来快速搭建自己的AI客服系统,不少客户有一个疑问或者好奇,就是巴别鸟智巢AI是如何做到AI客服的高准确度的?但把相应的训练集(素材)放入通用大模型(包括GPT4)来回答问题,并不能保证准确度(AI幻觉明显)以造成不可用,智巢AI对接的也是大模型啊,是做了什么优化么?还是有什么特殊接口?

所以,我们在这里来做一个科普,让大家更深入的了解AI在垂直商业场合的实际应用。

先思考一个问题,在kimi、通译千文都支持100万字甚至1000万字的时代,直接把网盘里存储的文档根据权限让用户选择,导入大模型,大模型学习后直接提问或者总结不就可以了么?为什么巴别鸟智巢AI还需要从训练集准备、数据优化、专有模型训练、甚至数据结构化编码的角度来帮助搭建客服系统?

让用户根据网盘中存储的内容去选择用户权限内的文件,然后根据这些文件生成一个专属助理,让客户几步操作就可以简单使用,甚至AI可以去学习用户权限内的所有文件,然后变成一个最熟悉企业的助理。这的确是我们的初衷和产品设计的理想状态。但是,理想很性感,现实很残酷。

是的,因为AI有幻觉,多文档回答效果很难令人满意。个人使用因为文档是自己的,所以能容忍这种不准确。用在企业级产品上,准确度的要求就不是一个级别的,所以简单的把一堆文档交给大模型来生成一个AI客服应用显然目前是不现实的,甚至可以这样说,对于通用AI大模型型来说,要做到准确的企业级应用,还有很长的路要走。

这个问题的本质在于大模型存在幻觉问题,所以要求开发者对大模型的技术边界有一个准确的判断和理解。原则上,我们要让大模型处理它能处理的事情,充分利用它而不是依赖它。

RAG模式:现有的不少”私有知识库问答”,就是采用了这种技术路线。它本质上就是外挂了一个知识库,技术原理大致是这样的:

1. 将大批文档扔进知识库,并且以固定大小切割,做Embedding运算,入向量库。

2. 将用户问的问题做Embedding向量化,在向量库中做向量索引,找出最匹配的topK。

3. 将topK对应的文档切片打包输入LLM(比如chatGLM),让LLM生成用户可读的结果,最终形成一次问答。

RAG模式的问题

RAG模式是chatPDF类产品通用的技术实现方法,对于简单的小文档的问答,效果还算可以(因为搜索空间很小)。但对于大批量的文档,效果很难令人满意。抛开向量匹配的质量(实际上这一点也很难)不说,单从业务上来讲,一个question answer pair中,更多是因果关系,蕴含关系,而不是相似关系。而RAG模式本质上是根据向量的相似度来匹配的,这就是RAG方案经常会出现张冠李戴现象的根本原因。

那么怎么办呢?

针对行业垂直化优化,训练小模型,配合大模型实现准确度较高的智能助理,是目前最优方案(甚至是唯一方案)。

以AI能产生极大价值的金融行业来举例:

向量库的非结构化特性,导致了问答系统的不可解释性,问答的质量也不高。作为金融系统,数据的精准性是最重要的,其次是可解释性。我们不能依赖不可解释的深度学习网络来解决准确性问题。所幸,金融行业的数据是具有高度结构化的特征,文档的格式化程度很高,是一个非常典型的大模型垂直应用场景,非常适合落地。我们的解决方案是将数据结构化,并且使用LLM作为输入和输出。

1. 自动处理文档(比如一大堆上市公司的年报),从中提取关键的财务数据,形成数据库表格。

2. 微调多个大模型,分别处理问题分类、用户查询转SQL查询、数据格式规范化等等。

3. 对于用户的提问,首先进行问题分类,对于那些有精确数据要求的问题,可以将用户问题其转为SQL查询语句,然后从数据库从查询出来,最后将查询结果输入到大模型中,由大模型生成用户可读的文本。

4. 另外还有一个选择,就是将知识库通过二次预训练的方式注入大模型中(BloombergGPT就是采用这样的策略)。这样的话,就需要每隔一段时间将新产生的知识再次注入(再次训练)。这种做法具有一定的维护成本。

总之,我们的策略是尽可能地减少大模型的搜索空间,让其输出准确、可解释的文本。我们相信,在足够细分的专业领域,中小模型加上高质量的数据预处理,其性价比远超通用的大模型。

综上,要实现可用的企业级要求的准确的AI客服系统或助理,是需要从数据结构化、多模型配合、再训练等角度,结合行业的要求进行优化和调校才能做出可用的产品。

智巢AI客服系统就是这样的一个AI服务,我们会根据客户所在行业的数据性质进行分析,提供解决方案,优化训练方式等多个角度出发,为客户打造出满足要求的AI客服系统。

发表评论

电子邮件地址不会被公开。 必填项已用*标注