RAG在企业淘汰部分程序员的优势

52 阅读8分钟

引言 

在当今数字化的时代,企业积累了海量的项目数据。从项目文档、报表到各种技术资料,这些数据蕴含着巨大的价值。然而,如何高效地从这些数据中获取有用的信息,成为了企业面临的一个重要挑战。大语言模型(LLM)的出现为解决这一问题提供了新的思路,但通用的基础大模型在处理企业特定的项目数据时往往力不从心。检索增强生成(Retrieval Augmented Generation,简称RAG)技术应运而生,它能够结合企业自有垂域数据库,为大模型提供相关信息,从而生成更符合企业需求的回答,在企业项目查询编码方面具有广阔的应用前景。 

RAG技术概述 

图片

RAG概念 

RAG是一种当前非常火热的LLM应用方案。其核心思想是通过自有垂域数据库检索相关信息,然后将这些信息合并成为提示模板,提供给大模型,让大模型生成漂亮的回答。例如,当企业员工在查询项目相关问题时,RAG技术可以从企业的项目数据库中检索出与问题相关的信息,然后将这些信息与问题一起提供给大模型,大模型根据这些信息生成准确的回答。 

RAG系统的基础技术 

RAG系统的起点一般是一个文本文档的语料库。其基本流程如下: 

  1. 文本分割:把文本分割成块,以便后续处理。不同类型的文档,如doc、ppt、excel、pdf等,需要采用不同的切片方式。例如,ppt中包含大量架构图、流程图等图示以及展示图片,pdf也有扫描版和文字版等不同类型,抽取出来的文字信息呈现碎片化、不完整的特点,因此在处理时需要先将PPT转换成PDF形式,然后再进行解析。 

  2. 向量化:将这些分块嵌入到向量与transformer编码器模型,把所有这些向量建立索引。可以使用Bert之类的自然语言编码模型将文本块转换为文本向量,这与人脸识别中的人脸向量有相似之处。 

  3. 数据入库:将文本块以及对应的文本向量存入向量数据库以便快速搜索。向量数据库是一种能够快速搜索相近向量的数据库,常见的向量数据库有Faiss、milvus和chroma等。如果要考虑百万级别的数据,基本上用Faiss或者milvus;如果只是考虑快速构建的话可以使用chroma,它简单易上手。 

图片

RAG流程详解 

  1. 检索:这是RAG流程的第一步,从预先建立的知识库中检索与问题相关的信息。其目的是为后续的生成过程提供有用的上下文信息和知识支撑,将外部知识融入生成过程中,使生成的文本内容更加丰富、准确和符合用户需求。 

图片

  1. 增强:通过增强步骤,LLM模型能够充分利用外部知识库中的信息,将检索到的信息作为上下文输入,以便更好地生成符合用户需求的回答。

图片

 3. 生成:生成是RAG流程的最后一步,生成器会利用检索到的信息作为上下文输入,并结合大语言模型来生成文本内容。 

图片

RAG常用排序模型架构 

图片

双编码器(Dual Encoder) 

在排序阶段,只需要计算两个向量相似度即可。但由于双编码器针对查询和文档分别编码,因此无法捕获查询和文档的Token之间的复杂交互关系,在语义上会有很多损耗。 

交叉编码器(Cross Encoder) 

Cross - Encoder并不输出查询和文档的Token所对应的向量,而是再添加一个分类器直接输出查询和文档的相似度得分。它的缺点在于,由于需要在查询时对每个文档和查询共同编码,这使得排序的速度非常慢,因此Cross - Encoder只能用于最终结果的重排序,例如针对初筛结果的Top10做重排序,仍然需要耗时秒级才可以完成。 

延迟交互编码器(Late Interaction Encoder) 

虽然搜索结果中未详细介绍延迟交互编码器,但它也是RAG常用的排序模型架构之一,在实际应用中可能具有独特的优势。 

「大模型应用开发实战训练营」

「AI技术原理 + 实战应用 + 职业发展

5小时 吃透大模型

👇👇👇

仅限前100名

图片

丝👆

24小时后失效!大家抓紧领

✅技术原理+应用场景,超详细!

大模型能真正解决什么问题?各行业有怎样的落地场景?2节直播课,为你展示如何利用RAG、Fine-tuning的技术来改善大语言模型的使用!解析大模型底层原理,和技术架构!剖析AI技术的应用场景,用实战经验落地AI技术。

————————————————

企业项目查询编码中RAG技术的应用 

数据准备阶段 

企业项目数据包含各种类型的文档,如项目计划书、技术文档、会议纪要等。在数据准备阶段,需要对这些数据进行提取、文本分割、向量化(embedding)/分词处理以及数据入库(ES/Milvus)等操作。例如,将项目文档中的文本分割成合适的块,然后使用自然语言编码模型将这些文本块转换为向量,最后将向量和对应的文本块存入向量数据库。 

查询环节 

当企业员工发起项目查询时,先把要问的问题使用同样的自然语言编码模型转换为向量,然后在向量数据库内查询和问题向量最接近的文本向量,找到对应的文本块,将这个文本块作为上下文信息提供给大语言模型,大语言模型根据这些信息生成回答。 

应用案例 

假设企业正在开发一个新的软件项目,项目团队成员需要查询项目中某个技术模块的相关信息。通过RAG技术,系统可以从项目数据库中检索出与该技术模块相关的文档、代码示例等信息,然后将这些信息提供给大语言模型,大语言模型可以根据这些信息生成详细的技术说明、解决方案等回答,帮助项目团队成员更好地理解和解决问题。 

RAG技术在企业项目查询编码中的难点及解决方法 

数据难点 

  1. 文档种类多:企业项目数据包含doc、ppt、excel、pdf等多种文档类型,其中ppt和pdf处理难度较大。可以先将PPT转换成PDF形式,然后用处理PDF的方式进行解析,以减少信息丢失。 

  2. 不同文档结构影响,需要不同的切片方式:不好的切片方式会导致查询精准度低、语义信息不完整等问题。企业需要根据不同文档的结构特点,采用合适的切片方式,例如对于结构化的文档可以按照章节进行切片,对于非结构化的文档可以根据语义进行切片。 

用户提问的随意性和对RAG定位的混乱 

大部分用户在提问时,写下的query较为模糊笼统,使得检索出来的文本段落不能完全命中用户想要的内容,大模型根据这些文本段落也不能输出合适的答案。同时,企业对RAG的定义和用户的查询需求可能存在不匹配的情况。为了解决这些问题,企业可以对用户进行培训,引导用户提出更明确的问题;同时,对RAG系统进行优化,使其能够更好地理解用户的意图,提供更符合用户需求的回答。 

结论 

RAG技术为企业项目查询编码提供了一种高效、准确的解决方案。通过结合企业自有垂域数据库和大语言模型,RAG技术能够从海量的项目数据中快速检索出相关信息,并生成符合企业需求的回答。虽然在实际应用中还面临一些难点,但随着技术的不断发展和完善,RAG技术在企业项目管理、知识检索等领域的应用前景将更加广阔。企业可以充分利用RAG技术,提高项目查询的效率和准确性,为企业的发展提供有力支持。