数据嵌入有关内容汇总250222版
1.什么是数据嵌入
数据嵌入(Data Embedding)是指将数据(如文字、图片、网页和url等)嵌入到与大模型对话的过程中,使得大模型基于嵌入的数据进行检索、分析、推理和决策等。数据嵌入的主要目的提升大模型在某一领域或某一系列知识块中的理解能力,回答用户提问的准确程度,进而提升回复信息质量、用户体验。
关于RAG
RAG(Retrieval Augmented Generation):检索增强生成,是一种基于检索技术的文本生成技术,通过检索相关的文本数据,并结合生成技术生成新的文本。
RAG的实现过程
RAG的实现过程可以分为以下几个步骤:
文本检索:RAG首先需要从大量的文本数据中检索出与用户提问相关的文本。
文本生成:RAG基于检索到的文本数据,结合生成技术生成新的文本。
文本融合:RAG将生成的文本与原始的文本数据进行融合,生成的文本可以更加符合用户的需求。
用户需要提前准备好相关的文本数据并使用Embedding
(嵌入)模型将其向量化为大模型易于理解的形式。用户提问时,被向量化的内容将会优先被大模型检索、分析,大模型根据获取到的嵌入内容结合自身既有的知识结构生成新的文本,生成更加符合用户需求的文本内容。
2.数据嵌入的应用场景
人工智能客服:客服系统中,数据嵌入可以将用户的提问和回复内容嵌入到对话中,提升客服的专业性、及时性和总体效率。如快速解答分析产品介绍、产品价格、售后服务等,提升用户对产品的理解和购买决策。
知识图谱(库):知识图谱中,数据嵌入可以将实体、关系、属性等知识信息嵌入到图谱中,提升图谱的检索、分析、推理和决策能力。将点、线结构的知识信息通过大模型形成立体的全方位的更易于理解和应用的知识体系。
其他文本生成:参数量更大或领域更专业的大模型,可以基于嵌入内容,实现嵌入文本的仿写和续写。
总的来说,在充分利用大模型的分析、理解、推理和决策能力的前提下,结合数据嵌入这种范围约束方式,可以提供更多既有应用与服务的效率提升,更能促进未知领域的探索。
3.数据准备
3.1 数据格式
绝大部分数据嵌入应用均支持txt
和md
格式的文本数据,一般建议使用md
格式,因为md
格式便于人类的编辑和阅读理解同时也有益于大模型的理解和索引。
3.2 数据大小
尽量使嵌入的数据更小,因为大模型特别是本地部署的大模型的计算资源有限,如果数据量过大,会导致大模型的计算资源不足,严重时会导致硬件宕机无法响应。
换句话说,数据嵌入的内容会以2-3倍的占用比例侵占大模型的计算资源,因此,数据嵌入的大小也需要考虑到模型的计算资源限制。
3.3 数据质量
数据质量的好坏直接影响到数据嵌入的效果,数据质量越好,嵌入的效果也就越好。
数据质量的好坏可以从以下几个方面进行评估:
准确性:不要试图提供错误逻辑或不准确的知识信息对大模型进行逻辑干扰。
完整性:注意嵌入文本量的完整,上下文的完整等。
相关性:减少无关文本的嵌入。
新鲜度:如果嵌入的数据过时,则会影响大模型回复的准确性。
无意义内容:避免嵌入过多的无意义内容,如没有明确意义的段落、章节、数据列等。
3.4 数据集成与分类
将同一领域的相关数据集成到一起,单独成立数据集(知识库),有的应用支持数据子分类,如交易数据再分为产品数据、用户数据、订单数据等。这会降低对大模型的理解能力的要求,提升回复的准确性。
3.5 数据准备的实现方式
人工:手动收集、整理、分类、标记数据。更准确但人力消耗大且效率低。
自动化:编制应用程序、脚本对数据进行自动化分类、标记、生成。效率高但有一定技术门槛,且需要更新调整自动化工具处理数据的逻辑和策略(专属会员群内会有对应工具提供,敬请期待)。
4.模型选择
推荐使用开源的Embedding模型,如mxbai-embed-large、nomic-embed-text、bge-m3等。
大模型结合本地硬件能力尽量使用参数量更大的模型,如deepseek-r1:14b(q4)、deepseek-r1:14b(q8)、deepseek-r1:32b(q4)、deepseek-r1:32b(q8)、deepseek-r1:70b(q4)、deepseek-r1:70b(q8)等。
关于API模型
无法避免嵌入的数据会被api供应商盗取(不是一定会被盗取,是无法避免),因此,建议基于本地大模型构建智能知识库应用,特别是一些从事隐私、保密要求较高的行业或在相关单位就职的用户。