微信扫码
与创始人交个朋友
我要投稿
近段时间接触了较多政务、医疗等行业问答类大模型项目,在沟通中,大部分行业客户均提出了数据安全、数据不出局的业务需求,这就要求我们进行大模型的私有化部署。但是目前,行业客户算力资源十分有限,多数以T4卡服务器为主,这就面临着大模部署选型上局限性很大,会以13B、7B模型选型为主,面向行业的问答对于SFT或RAG的需求很高,数据梳理、标注过程的缓慢,也影响到了客户在选择本地知识适配过程中,主要以RAG方式为主(也体现了当下急功近利的行业应用心态)。RAG方式很好的解决了本地知识快速适配的问题,但是在使用过程中,会发现基于embedding和相似度比较的知识获取方式,在面向一些问题时回答的很差,例如一些短问题、一些携带知识库文件名的问题。针对上述情况,整理了一下几种处理的思路。
先来看看对齐,从对齐方式上来看,是人向大模型对齐和大模型向人对齐。
人向大模型的对齐方式:prompt工程,通过提示词工程提升,进行问题的优化,或引入BPO机制,进行提示词的预训练。
大模型向人的对齐方式:RLHF、SFT、RAG等方式,通过对于人类习惯、领域知识的增强与补充,使模型的输出更加符合人类的预期和需求。
在实际工程中也会通过以上融合的方式,使大模型能够更加符合人类对于问答的预期。本篇还是主要描述RAG的作用与使用技巧。
RAG:全称为Retrieval-Augmented Generation,中文翻译为检索增强生成,是一个为大模型提供外部知识源的概念,使它们能够生成准确且符合上下文的答案,同时能够减少模型幻觉。RAG的基本原理是,首先对现有文档进行检索,然后基于检索到的信息对生成的答案进行修正。RAG主要的作用还是来提高LLM的处理效率,并有效控制tokens的长度,主流框架包括LlamaIndex和langchain等,通过RAG对于领域知识的引入,可以减少大模幻觉问题。并且,由于无需打开模型调参的工作机制,与SFT等对齐方式相比,具有更加快速、便捷的优点。
RAG由于涉及到大模型自身、检索定位等多个环节,因此准确率计算涉及三部分:RAG准确率=LLM的准确率*语义搜索准确率*RAG信息保存率。
接下来看一下什么是RAG信息保存,目前主流增强知识会以向量库的方式进行存储,针对较长文本,需要以chunk的方式进行切片保存。如此,chunk之间的联系会被切断,并且只有TopK的chunk有机会被召回。
另外对于RAG的准确性,还有一下问题会产生影响。
上下文脱节问题:如果文本有多层上下文信息,chunk之间会使得内容上上下文脱节
位置因素失效问题:一般文字位置代表一定的重要性,但是在向量库存储的模式下,位置关键因素会失效
连续信息不完整问题:由于连接不再完整,语序容易被打乱
描述信息丢失问题。
因此RAG在问答准确性方面,可大概归纳一下优劣势:
优势:小范围描述式问答回答精准
劣势:1、不擅长关系型推理;2、不擅长时间跨度长的问题。如:分析一下二战的一共有多少次战役。
以上劣势,主要还是因为chunk的分散性导致的。
prompt优化,减少问题中的错别字,并尽量对于提问内容表达详细。比如:原始用户查询为“跟我说说托尼”,在原始查询的基础上使用bard重新表述的为:”托尼的政治背景是什么,最显著的成就是什么,政治观点是什么“
保持embedding模型在同一个平面上。
chunk的创建也要讲究策略,其中,chunk的大小就是优质的超参,微软通过实验,给出了各超参尺寸下的recall值,可以进行参考。
文本分割的策略的不同,对于召回也会产生影响,根据以下微软的实验结果,可看出多的overlapping对于召回也会有比较好的提升。
另外,embedding模型语义提取能力有限,多主体、多回合的语料库不如简单语料更加有效,在微软的任曦中,最小的chunk大小是512 tiokens,因此,要做好分块的数据实验,根据自身情况调整块大小与分块策略。
一些通用的RAG准确率提升的优化策略可概括为:
大量重叠的chunk可以减少信息的丢失,以此提高准确率;
引入知识图谱,RAG将关系存储到图数据库中,以此保留关系信息。
在进行RAG设计的时候,要考虑:
1、LLM是否获得了它需要的信息
2、信息是否以对LLM友好的方式投喂
在构建RAG文件时,有如下通用性建议
1、表述清晰,尽量分拆文件
2、按照属性全部进行描述。如下为优质知识库范例
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-05-28
2024-04-12
2024-04-25
2024-05-14
2024-07-18
2024-08-13
2024-04-26