paint-brush
扬帆再创辉煌:借助数据文件湖的开发研发级 RAG 应该用应用设置 经@minio
5,765 讀數
5,765 讀數

扬帆起航:利用数据湖开发生产级 RAG 应用程序

进行 MinIO13m2024/06/14
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

到 2024 年中期,创建一个令人印象深刻和激动人心的 AI 演示将变得轻而易举。您通常可以在一个下午内构建一个定制的 AI 机器人。但投入生产又是另一回事。您需要一个可靠、可观察、可调整且性能良好的系统。

People Mentioned

Mention Thumbnail
Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 扬帆起航:利用数据湖开发生产级 RAG 应用程序
MinIO HackerNoon profile picture


到 2024 年中期,创建一个令人印象深刻和令人兴奋的 AI 演示将变得轻而易举。只需一名强大的开发人员、一些巧妙的快速实验以及对强大基础模型的几次 API 调用,您通常可以在一个下午内构建一个定制的 AI 机器人。添加一个库,例如或者使用 RAG 为您的 LLM 添加一些自定义数据——一个下午的工作可能会变成一个周末的项目。


但进行产出是另一款 件事情。您还要一款 稳定可靠、极好察、能自由调节整且性能方面好的的大总量模式。撼动被人故意的讲解不一样并了解APP区域执行程序对带表实计业主情形的更宽泛显示的异常至关很非常重要。法律学研究生可能还要访问浏览其预培养统计资料集结一般性不足的丰富性区域指定区域信息语料库。后来,这样您将 AI APP区域于更准性至关很非常重要的用例,则肯定测试、监控摄像头和减轻幻视。


虽说解决办法一切如此一来的疑问依然很比较困难,但行依据将为 RAG 的app小环节转化为多个理论依据大部份,进而展开有针对于性的换代方式方法依据要有改造每一大部份,行使其看上去更易于操作。这篇好的文章将帮忙您完成这点儿。在这篇中,.我将针对于适用于有个 RAG 文本加工管道网的方法,而非是数据检索当下游进行的方法。行依据如此一来做,.我指在帮忙转化式 AI app小环节联合开发相关人员有效地为从类似的到研发的之路加强提前准备。

现代数据湖:人工智能基础设施的重心


人们常说,在人工智能时代,数据就是你的护城河。为此,构建生产级 RAG 应用程序需要合适的数据基础架构来存储、版本控制、处理、评估和查询构成专有语料库的数据块。由于 MinIO 对人工智能采取数据优先的方法,我们对此类项目的默认初始基础设施建议是设置一个现代数据湖和一个矢量数据库。虽然在此过程中可能需要插入其他辅助工具,但这两个基础设施单元是基础。它们将成为将 RAG 应用程序投入生产后遇到的几乎所有任务的重心。


可以找到基于 MinIO 构建的现代数据湖参考架构。另一篇配套论文展示了该架构如何支持所有 AI/ML 工作负载


RAG 文档处理管道分阶段更新您的自定义语料库并将其加载到矢量数据库中以供下游检索(未显示检索步骤)。

RAG:文档管道步骤

评估

打造生孩子级 RAG 采用程序流程图的至关重要早期步驟是設置测评架构图 - 经常全称为测评。并没有测评,您将时未可信地知晓体统的使用情况下,时未知晓哪方面的配件还要优化,也时未判别您是获取了实打实的进行。然而,测评还不错算作被迫函数值来消解您要完成的现象。以內是一种些最喜欢见的测评枝术:


  • 启发式基于代码的评估- 使用各种措施(如输出标记计数、关键字存在/不存在、JSON 有效性等)以编程方式对输出进行评分。这些通常可以使用正则表达式和断言库进行确定性评估,以进行常规单元测试。


  • 基于算法代码的评估- 使用各种众所周知的数据科学指标对输出进行评分。例如,通过将提示重新定义为排名问题,您可以使用推荐系统中的流行评分函数,例如归一化折扣累积增益 (NDCG) 或平均倒数排名 (MRR)。相反,如果可以将提示定义为分类问题,那么准确率、召回率和 F1 分数可能比较合适。最后,您可以使用 BLEU、ROUGE 和语义答案相似度 (SAS) 等指标将语义输出与已知的基本事实进行比较。


  • 基于模型的评估- 使用一个模型对另一个模型的输出进行评分,详情见论文。这种技术越来越受欢迎,而且比人类的规模化成本要低得多。然而,在将项目从原型转移到生产的初始阶段,可靠地实施可能很棘手,因为评估者(在这种情况下是 LLM)通常会受到与底层系统本身类似的限制和偏见。密切关注该领域的研究、工具和最佳实践,因为它们正在快速发展。


  • 人工评估- 要求人类领域专家提供最佳答案通常是黄金标准。虽然这种方法缓慢且昂贵,但不应忽视,因为它对于获得洞察力和构建初始评估数据集非常有价值。如果您想从所执行的工作中获得额外的收益,您可以使用论文用合成的变化来补充人类专家生成的评估。


评估金字塔显示了各种评估类型的推荐分布。顶部的方法需要付出的努力和复杂性更高,因此更能表明与基本事实的一致性。底部的方法可以运行得更快、更频繁 - 但只能解释为事实准确性的近似值。


在决定使用哪种评估技术的同时,请考虑创建一个自定义基准评估数据集 - 通常用于 Hugging Face 排行榜的通用数据集,例如数据集不行。您的自定义评估数据集将包含各种提示及其理想的响应,这些响应是特定于领域的,并且代表了您的实际客户将输入到您的应用程序中的提示类型。理想情况下,有人类专家可以协助创建评估数据集,但如果没有,请考虑自己做。如果您对猜测可能的提示没有信心,只需形成一个操作假设并继续前进,就好像它已经得到验证一样。随着更多数据的出现,您可以不断修改您的假设。


考虑对评估数据集中每一行的输入提示应用约束,以便 LLM 以具体的判断类型回答:二进制、分类、排名、数字或文本。混合判断类型将使您的评估保持合理的多样性并减少输出偏差。在其他条件不变的情况下,评估测试用例越多越好;但是,建议在此阶段注重质量而不是数量。最近关于 LLM 微调的研究论文表明,即使是 1000 行的小型评估数据集也可以显著提高输出质量,前提是它们是真实更广泛人群的代表性样本。对于 RAG 应用程序,我们通过轶事观察到使用由数十到数百行组成的评估数据集可以提高性能。


虽然您可以临时开始手动运行评估,但不要等太久才实施 CI/CD 管道来自动执行评估评分流程。每天或在与源代码存储库和可观察性工具连接的触发器上运行评估通常被认为是 ML-ops 的最佳实践。考虑使用开源 RAG 评估框架,例如或者帮助您快速启动并运行。使用数据湖作为包含版本化评估数据集和每次执行评估时生成的各种输出指标的表格的真实来源。这些数据将提供宝贵的见解,供以后在项目中使用,从而实现战略性和高度针对性的改进。

数据提取器

您这一进行原行开发时适用的 RAG 语料库很多做到让您投放出产。您也许 想要连续用另外动态数据资料扩张语料库,以帮到 LLM 减轻幻视、忽略和有问題的自以为是方式。这一般说来是实现勾勒拆分器和添加器挨个来完成的,这种拆分器和添加器将长江上游动态数据资料换算为可以在上中游文本文档管道铺设中进一歩处理的文件后缀。


虽说采集而来量过大的数剧或者会会引发自然灾害性好处,但挥发制造力和破除正常是至关极为重要的,这是由于您必须认识大工司就可以网站访问的高线效果量的信息特征。比较明显的或者会性其中包括从储存在大工司 OLTP 和数剧仓库管理中的空间逻辑数剧中分离出理念。大工司微博好文章、行业报告、已撤稿的研究分析和客能够查到等特征也应考虑,依据是他们特征就可以恰当的qq匿名化并移除太敏感的信息。向您的语料库含有几瓶高线效果量域内数剧对性知识能的关键关系是没有可低估的,所以不要再心里不安花准确时间经历、冲击试验和不断。这是一种些较为常用于引导和帮助高线效果量域内语料库的技术工艺:


  • 文档提取- 专有 PDF、办公文档、演示文稿和 Markdown 文件可以成为丰富的信息来源。存在一个庞大的开源和 SaaS 工具生态系统来提取这些数据。通常,数据提取器是特定于文件类型的(JSON、CSV、docx 等)、基于 OCR 或由机器学习和计算机视觉算法提供支持。从简单开始,然后根据需要添加复杂性。


  • API 提取- 公共和私有 API 可以成为丰富的领域内知识来源。此外,精心设计的基于 JSON 和 XML 的 Web API 已经具有一些内置结构,可以更轻松地在有效负载内执行相关属性的有针对性的提取,同时丢弃任何被认为不相关的内容。存在一个庞大的经济实惠的低代码和无代码 API 连接器生态系统,可帮助您避免为每个要使用的 API 编写自定义 ETL - 如果没有专门的数据工程师团队,这种方法可能难以维护和扩展。


  • Web 抓取工具- 网页被视为具有树状 DOM 结构的半结构化数据。如果您知道要获取哪些信息、信息位于何处以及信息所在的页面布局,那么即使没有详尽的 API,您也可以快速构建抓取工具来使用这些数据。许多脚本库和低代码工具都为 Web 抓取提供了有价值的抽象。


  • 网络爬虫- 网络爬虫可以遍历网页并构建递归 URL 列表。此方法可以与抓取相结合,以根据您的标准扫描、汇总和过滤信息。从更大的范围来看,此技术可用于创建您自己的知识图谱。


不论选用哪类大统计数剧文件资料回收的技术,都可以打击创造出一个一下性js的歇斯底里。相反的成语,技术应用大统计数剧文件资料市政工程适宜应用将转化成器设置为可多次且容错机制的 ETL 给水管,将大统计数剧文件资料放在大统计数剧文件资料湖内的表格。切实保障每天自动运行许多给水管时,主要元大统计数剧文件资料因素(如源 URL 和转化成准确时间)都逮猎取并与每方面信息同食标记符号。元大统计数剧文件资料猎取对中游大统计数剧文件资料深度清理、油烟净化器、多次大统计数剧文件资料删除图片、调校和归因将相当有價值。

分块

分块将大一些的文件样版分解成为较小的离散局部,是为了倒进 LLM 的下上文市场。总之下上文市场愈来愈越大(不可以在逻辑题的过程中安置一些项目块),但分块从未是在正确率、召回通知率和计算方法效应左右授予恰当的平衡点的重要性机制。


合理有效的分块要有确定合理的块规模。较少的块规模一般情况下会补齐一段时间文本格式的左右文和语义寓意,但的代价是能够左右文渠道内的总块数较少。相左,较小的块规模将能够将更高离散的相关项目块塞进 LLM 的左右文渠道。因此,如果还没有格外的确保工作,每段段时间相关项目在进入其身边左右文时还有可能降低高质量。


使用不同块大小配置的提示“告诉我碧昂斯的职业成就”的样本检索结果。


不光分块数值模版,您还要评定各种类型分块战略和措施。这就是些可供综合考虑的标准分块措施:


  • 固定大小策略- 在这种方法中,我们只需为内容块选择固定数量的标记,并相应地将内容分解为较小的块。通常,使用此策略时建议相邻块之间有一些重叠,以避免丢失太多上下文。这是最直接的分块策略,通常是在进一步探索更复杂的策略之前的一个很好的起点。


  • 动态大小策略- 此方法使用各种内容特征来确定块的开始和结束位置。一个简单的例子是标点符号分块器,它根据句号和换行符等特定字符的存在来拆分句子。虽然标点符号分块器对于简单的短内容(即推文、字符限制的产品描述等)可能效果不错,但如果用于更长更复杂的内容,它将有明显的缺点。


  • 内容感知策略- 内容感知分块器会根据所提取的内容和元数据的类型进行调整,并使用这些特性来确定每个分块的开始和结束位置。例如,HTML 博客的分块器使用标题标签来划分分块边界。另一个示例是语义分块器,它将每个句子的成对余弦相似度得分与其前面的句子进行比较,以确定上下文何时发生了足够大的变化,从而有必要划分新的分块。


您的 RAG 应该用流程的最适宜分块手段应该依据 LLM 的高低文对话窗口尺寸、框架文档设备构造、文档尺寸和语料库位容的繁复性实施调整。任意地我的第一次各式各样分块手段,并在每次在更换后运作评价,以最好地清楚给定手段的应该用流程效果。在资料湖表上对分块介绍实施手机版本操纵,并保障每家块都秦制数值文件信息,方便将其溯源到长江上游资料导出步数中的最原始介绍十分各自的的元资料。

丰富

在许多情况下,RAG 期间为检索而索引的内容块在上下文上与您的应用程序在生产中遇到的实际提示不同。例如,如果您正在构建一个 AI 问答机器人,您可能拥有大量专有信息语料库,其中包含大量对客户查询的正确答案。然而,在原始形式下,您的语料库不太可能以问答对的格式预先组织,而这种格式对于基于相似性的嵌入检索来说是理想的。在这个例子中,如果在检索时,我们天真地在语料库中搜索与入站客户问题在语义上相似的原始内容块,我们可能会遇到检索结果集的次优相关性。这是因为我们正在比较上下文不同的项目(即问题与答案)的相似性。幸运的是,解决方案相对简单:我们可以利用 LLM 的强大功能,通过将它们重新语境化为假设问题来丰富我们的可能答案(即原始内容块)。然后,我们将这些假设问题索引到我们的向量数据库中,以便随后进行检索。这种技术称为 ,说明了使用 LLM 在文档处理管道中丰富数据的强大功能。以下是使用此技术处理一些来自知名


 System Prompt: Given the provided snippet of text, generate three hypothetical questions that could be asked about it. Each question must be able to be answered using the information within the referenced snippet of text and only that information. Be concise. User Prompt: “At the 52nd Annual Grammy Awards, Beyoncé received ten nominations, including Album of the Year for I Am... Sasha Fierce, Record of the Year for "Halo", and Song of the Year for "Single Ladies (Put a Ring on It)", among others. She tied with Lauryn Hill for most Grammy nominations in a single year by a female artist. In 2010, Beyoncé was featured on Lady Gaga's single "Telephone" and its music video. The song topped the US Pop Songs chart, becoming the sixth number-one for both Beyoncé and Gaga, tying them with Mariah Carey for most number-ones since the Nielsen Top 40 airplay chart launched in 1992. "Telephone" received a Grammy Award nomination for Best Pop Collaboration with Vocals.” Response: Here are some questions that could be asked based on the provided text: * How many nominations did Beyoncé receive at the 52nd Annual Grammy Awards? * For which album was Beyoncé nominated for Album of the Year at the 52nd Annual Grammy Awards? * Which song earned Beyoncé a nomination for Record of the Year at the 52nd Annual Grammy Awards?


假若整理的语料库由长篇和/或项目主题比较缜密的项目构造,请满足实行更多的预整理,以二次工作小结项目块,若想降其语义纬度。在索引时,您可不能够 查看块内容提要的放到,如果用非内容提要文本文件复制上文视口复制到。在对超大型、比较缜密和/或次数转变 的语料库实行 RAG 时,此方案可不能够 提高了有关系性。

标记化

2024 年的中小型语言表达建模方法通畅是应用于转移成器的神经末梢网格,同旁内角身并不分析口头图文。传给的最初备份文本被转移成为标上,那么是面对矩阵的值乘法运算整合的高维内嵌向量。此传给步骤通畅分为简码。返向的传开步骤分为转码。多数 LLM 会应用与训练方法同旁内角时一致的标上化策划方案做出逻辑推理。于是,分析所选择标上化攻略 的基本基本知识至关首要,也许它也许性需求能产生了多数细小的的损害。


无论怎样存在的很简单的字符串和水果单词级标注方案设计,但在书写本段时,近乎几乎所有建立营销概念差异化是比较快速的方法。进的 LLM 都选择子词标注器。往往,人们从这个只了解此类其他标注器。


子词记号器以递归的方法将水果单词发音转换成更小的摸块。是这样,患者就都可以明白英语词汇英语表之中的水果单词发音,而不太会过多放大英语词汇英语量 - 她是训练课功能和 LLM 使用到未有过的文案的业务能力的关键点要考虑要素。


近年使用的的一款潮流的子词标上形式是字节对简码 (BPE)。从高层建筑次上讲,BPE 百度算法的岗位的基本原理有以下几点:


  • 将英文单词转换为子词單元的符号并将其含有到词语表上。的符号代表人的子词,该子词由训练科目语料库文件一般相连标识符策略的相比平率确定。


  • 用象征着该对的单独某个标上编辑所诉进行中的一般标上对,并将其获取到日语词汇表里。


  • 递归按顺序上面方法流程。


BPE 标示化一般性是已经安全利用 RAG 选用子软件程序的绝好起步,这是因为它适用性于大多数用例。并且,统计假设您有很大量角度技术化的方向和软件程序编写表达,而这样的和软件程序编写表达在您首选的绘图安全利用的预康复训练语料库的英语单词表格沒有收获好的彰显。在此种现状下,请满足理论研究带替的标示化方式方法 - 或挑战调节和低秩用,这达到了本段的的领域。上述内容英语单词异常的问题有机会主要表现为在为医疗、国内的法律或晦涩难懂的和软件程序编写和软件程序编写表达等技术方向搭建的选用子软件程序中性粒细胞能不佳。具有体地说,它将在含有角度技术化的和软件程序编写表达/行话的表明中普及会出现。安全利用存储器在参数分析湖底的 eval 参数分析集给出要求成功各式的标示化措施以及在各式绘图中的各种性能方面。请记牢,标示器、放到和和软件程序编写表达绘图一般性是密不可分解耦的 - 所以说就要变更有一个有机会要求就要变更别的。

结论

打造在 MinIO 目标存放之量的现时代参数文件湖 - 为上进心地将通过 RAG 的选用程度资金投入产生提供参数了基本架构设计。得到了它,您是也可以打造估评和对应于域的估评参数文件集,他们参数文件集是也可以在参数文件湖表里存放和ios版本掌控。安全使用他们估评,不间断估评并逐层改进方案 RAG 选用程度word热力管材的每项模块 - 领取器、分块器、雄厚器和标签器 - 尽量减少各地搭配产生级word整理热力管材。


如果您有任何疑问,请通过以下方式联系我们

바카라사이트 바카라사이트 온라인바카라