AI 文摘

RAG如何让chatgpt等大语言模型具备矿山知识?





作者: 数字深地圈 来源: 数字深地圈

以chatgpt为代表的LLM(大语言模型)飞速发展,使得LLM具备优秀的问答交互,但LLM也有缺点,那就是:

(1)缺乏特定领域的知识,以煤矿冲击地压数据为例,训练LLM的数据来源于知网、百度等关于冲击地压的理论知识,而缺乏具体某次冲击地压灾害更具体地分析(这些数据一般是企业内部资料)。

(2)有时会犯逻辑错误,模型可能会基于错误的假设来生成答案,例如,假设所有鸟都能飞行,而忽略了有些鸟(如企鹅)实际上不能飞。

(3)另外不能访问最新的信息,比如某矿在线应力的最新分布。

为了解决上述问题,设想有没有一种技术能让LLM具备矿山知识,答案是RAG,即检索增强技术 ,其作为新型技术正在崭露头角。

RAG是什么

传统的搜索引擎无法理解文本的语境和复杂性,导致难以满足用户在特定领域深度探索的需求,RAG通过将文本向量化,再通过向量寻找相似内容。简单说来就是RAG可以从第三方去检索与问题相关的信息,检索到的信息作为LLM的提示内容,使其回答的更加准确。

RAG怎么做

RAG中的信息检索通常源自向量化的数据。以文本数据为例,在检索过程中,首先将文本分隔成块,并转化为向量表示(embedding)后存储在向量数据库中,可以利用预训练的语言模型如BERT、RoBERTa等进行文本编码。当用户提问时,对问题进行嵌入处理,根据语义相似度检索最相关的前k个块,将原始问题和检索到的块一起输入LLM生成最终答案(如图1)。

图1 向量数据库存储过程

RAG在矿山领域的应用案例

矿山领域经过几十年的发展,积累了包括地质赋存、生产数据和监测数据在内的海量结构化、半结构化及非结构化数据,这些数据将为领域问答、决策提供数据支撑。科研团队依托在相关方向的数据积累,探索基于RAG技术的可行性,开发了矿山领域的问答助手MineAssist,其回答专业问题时,同时从向量数据库和会话记录(记忆模块)中检索相似文本、数据库查询和分析,最后将结果作为大语言模型背景知识(如图2)。其中sql是数据库的查询语言。

图2 MineAssist问答流程

MineAssit的主界面如图3。下面将一一介绍实现思路。

图 3 MineAssit

0****1

矿山信息检索

当用户提出问题时,直接对问题进行向量化。最后,通过余弦相似度在向量数据库中检索背景信息,并将这些相关内容作为问答模型的背景知识。从图4中可以看出,在没有采用背景知识检索的情况下,系统无法回答有关“硫磺沟煤矿”具体情况的问题。

图4 引入背景知识的问答

0****2

会话记录检索

考虑到对话的连续性,在回答用户问题时,会将最近的k条记录保存在内存中,作为问答的上下文提示信息。而对于更早期的对话内容,有多种处理方法,例如:通过词向量嵌入将对话内容送入向量数据库,并进行相似性搜索;通过实体关系提取构建知识图谱;或者对较早的内容进行摘要存储等。这里采用了第一种方法,即通过向量嵌入和相似性搜索来处理更早的对话内容。此外,每个用户都拥有独立的记忆模块,确保其对话历史的私密性和个性化。如图6所示,记忆模块的引入能够保存之前的聊天记录,从而提供更连贯和精准的回答。

(a) 无记忆模块

(b) 有记忆模块

图 5 有无记忆模块问答对比

0****3

让LLM写数据库查询语言

在背景知识及记忆模块的问答中,只能分析静态数据,无法处理实时监测数据。这里利用大语言模型分析可能的SQL查询语句,然后尝试执行这些SQL查询,将执行结果作为问答模型的背景知识。如果查询结果不理想或无法正确执行SQL查询,则问答模型不考虑本部分的结果。如图6所示,在进行SQL查询和分析时,可以更准确地回答问题。

图 6 引入SQL查询与分析的问答

END

参考阅读:

(1) Gao Y, Xiong Y, Gao X, et al. Retrieval-augmented generation for large language models: A survey[J]. arXiv preprint arXiv:2312.10997, 2023.

(2) https://dev.to/pavanbelagatti/wtf-is-a-vector-database-a-beginners-guide-16p

数字深地圈 向地球深部进军

诚邀您关注“数字深地圈”微信公众号

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具