在 cnvrg.io 上利用 RAG 和 MinIO 增强大型语言模型
这篇文章是与 cnvrg.io 的 Harinder Mashiana 合作撰写的。
大型语言模型 (LLM) 彻底改变了技术世界,为文本分析、语言翻译和聊天机器人交互提供了强大的功能。 这场革命将严重影响企业,[根据 OpenAI 的数据,大约 80% 的美国劳动力可能至少有 10% 的工作任务受到 GPT 引入的影响](https://openai.com/research/gpts-are -gpts?ref=blog.min.io)。 虽然法学硕士的前景和价值是显而易见的,但它们也有一些局限性,应该考虑和解决这些局限性,以提高其绩效和效率。 在这篇博文中,我们将探讨 LLM 的一些缺点,以及如何利用 RAG(检索增强生成)和 cnvrg.io 上运行的 MinIO 来克服这些缺点。 这里提供的演示将展示如何针对特定用例微调法学硕士。
在我们深入探讨挑战之前,这里简要概述了我们在此解决方案中用来构建更有效的法学硕士的工具。
| 什么是 cnvrg.io? | 什么是 MinIO? |
|---|---|
| cnvrg.io 是一个全栈机器学习操作系统,提供人工智能开发人员在任何基础设施上构建和部署人工智能所需的一切。 cnvrg.io 由数据科学家为 AI 开发人员构建,旨在利用 MLOps 简化机器学习流程,这样他们就可以减少在技术复杂性上花费的时间,并专注于利用 AI 驱动价值。 cnvrg.io 提供无与伦比的灵活性,可以在本地或任何云中运行。cnvrg.io 允许开发人员利用 RAG 利用 MinIO 构建 LLM 管道。 | MinIO 是一种高性能、S3 兼容的对象存储。 它专为大规模 AI/ML、数据湖和数据库工作负载而构建。 它在本地和任何云(公共或私有)上运行,从数据中心到边缘。 MinIO 是 GNU AGPL v3 下的软件定义和开源软件。 企业使用 MinIO 来交付 ML/AI、分析、备份和归档工作负载 - 所有这些都来自单一平台。 MinIO 的安装和管理非常简单,提供了一套丰富的企业功能,涉及安全性、弹性、数据保护、可扩展性和身份管理。 在此演示的端到端演示中,MinIO 用于存储客户的文档。 |
| 要了解更多信息,请访问 https://cnvrg.io/ |
利用大型语言模型的挑战
作为独立解决方案的大型语言模型有几个可以克服的缺点。 仅举几例:
- 过时的回复 - 法学硕士受到他们接受培训的数据的约束,如果不经常更新和重新培训,可能会产生过时的答案。
- 缺乏行业特定知识 - 普通法学硕士不具备提供特定背景响应所需的特定领域知识。
- 知识更新频繁,培训成本高 - 法学硕士的大规模性质导致频繁的知识更新需要昂贵且资源密集的培训。
- 幻觉 - 即使经过微调,法学硕士也可能会“产生幻觉”或生成与所提供的数据不相符的事实上不正确的答案。
RAG 提升 LLM 成绩的优势
检索增强生成(RAG)是提高大型语言模型的强度和效率的强大工具。
RAG 是如何运作的?
想象一下,您向 ChatGPT 询问有关今天发生的事情的问题。 它将无法回答这个问题,因为它是根据 2021 年之前的数据进行训练的。RAG 可以帮助您克服这个问题。 检索增强生成(RAG)是一种结合了自然语言处理中两种关键方法的技术:基于检索的模型和基于生成的模型。 例如,假设 RAG 可以访问包含最新新闻文章的数据库。 现在,当您的客户提出问题时,RAG 将根据问题访问前 5 个最相关的文档,并将它们发送给您的法学硕士,以便更准确地回答问题。
使用 RAG,您可以使用较小的语言模型,因为每个请求都会发送最新的和上下文相关的信息。 RAG 解决了每个组织在实施法学硕士时都会面临的上述挑战。
- 最新的响应以及更高的精确度和召回率 - RAG 管道通过将检索机制纳入 LLM 来提高精确度和召回率,减少不准确或不相关响应的可能性。 这有助于减少不准确性并捕获更广泛的信息,从而提高召回率。
- 背景理解和行业特定知识 - RAG 管道通过集成可以访问外部知识库或网络的系统来增强法学硕士的背景理解和行业特定知识,从而允许模型检索训练数据之外的相关信息。
- 高效计算并降低延迟 - RAG 管道降低了 LLM 的高计算成本,并通过更小、更高效的模型降低延迟,同时以显着减少的计算开销提供更高质量的响应。
- 减少偏见并提高公平性以解决幻觉 - 检索机制使信息检索更加多样化,提供多种视角。 此外,对这些系统提供的信息源的明确控制可以提供精心策划的、多样化的文档集,从而减少有偏见的来源的影响。
如何应用 RAG 来增强 cnvrg.io 上 MinIO 的 LLM
为了演示 RAG 和 MinIO 的功能,我们在 cnvrg.io 上构建了端到端解决方案。 该解决方案利用 RAG 作为 cnvrg.io 上的端点,允许用户使用 API 请求提出问题,以 cnvrg.io 作为编排平台,并使用 MinIO 作为存储解决方案。

Figure 1
建立优化的 LLM 管道
使用 cnvrg.io,您可以构建自己的检索管道并帮助使用任何生成模型生成内容。 使用 cnvrg.io、MinIO 和 RAG,您可以优化您的 LLM,并为您的解决方案带来以下优势:
- 通过减小模型尺寸提高成本
- 为您的解决方案定制的上下文响应
在图 1 所示的解决方案中,RAG 部署为 cnvrg.io 上的端点,用户可以通过 API 提交问题。 生成响应的事件顺序总结如下:

Figure 2
使用 MinIO,用户可以轻松更新 RAG 使用的文档。 将新文档上传到指定的 MinIO 存储桶,将引发一个事件,该事件由监听器/更新器拾取,该事件将从您的存储桶下载新文档并更新 RAG 文档索引。 下次向 RAG 端点提交问题时,它将可以访问新文档并将其提供给法学硕士以生成改进的答案。

Figure 3
让我们看一个从用户角度来看的例子。 在此示例中,我们利用 fastRAG 一个开源库来构建针对 Intel CPU 优化的高性能 RAG 管道。
想象一下,有一种新疾病正在传播,并且您已经使用有关这种名为 X 的新疾病的信息更新了数据库。
问: 我有喉咙痛和腹泻。 可能是什么原因?
不带 RAG 的答案:喉咙痛和腹泻可能是由多种不同的原因引起的,包括病毒、细菌,甚至食物过敏。 最好去看医生以获得正确的诊断和治疗。
用 RAG 回答:您的症状可能是由多种因素造成的,包括病毒、细菌或食物过敏,但听起来您也可能出现 X 病(一种新传播的疾病)的症状。 建议您接受 X 病检测,并与其他人保持隔离,直到检测结果呈阴性。 此外,在从感冒、喉咙痛和腹泻中恢复期间,休息和照顾自己以及喝大量的水也很重要。 另请咨询您的医生以获得正确的诊断和治疗。
正如您所看到的,没有 RAG 的法学硕士没有新数据,并且生成的答案不包含有关新疾病的信息。 而 RAG 的法学硕士可以获得新的相关数据,并得出包含有关最新疾病信息的答案。
使用 MinIO 进行文档存储
当客户上传用于微调 LLM 的文档时,这些文档会安全地存储在 MinIO 中。 此外,RAG 解决方案利用了 [MinIO 的存储桶事件](https://min.io。 当文档到达 MinIO 时,会引发一个事件,从而调用 Webhook。 (图 1 中的监听器/更新器。)监听器/更新器处理新文档并更新客户的文档索引数据库。 该解决方案的未来版本可能会利用 MinIO 的 Object Lambda 功能。 MinIO 的 Object Lambda 使应用程序开发人员能够在将数据返回到应用程序之前处理从 MinIO 检索的数据。 如果您需要删除敏感信息或想要记录检索活动,这非常有用。
英特尔推理优化
RAG 算法和模型可以直接使用 CPU 进行部署,而不需要昂贵的 GPU 来进行检索管道。 像 GPT-3 这样的大型语言模型的运行计算成本很高,尤其是对于长而复杂的查询或文档。 检索模型可以充当初始过滤器,以缩小搜索空间并减少生成模型需要处理的查询数量。 通过检索相关文档或段落,我们可以显着降低为每个输入生成响应的计算成本。 此外,根据所使用的大型语言模型,完全可以使用 CPU 来部署 LLM,就像我们在生成上面共享的示例时所做的那样。
概括
检索增强管道代表了 NLP 领域的重大进步,利用了大型语言模型和高效检索机制的优势。 这些管道具有增强的精确度和召回率、知识扩展、偏差缓解、计算效率和改进泛化等优势。 通过将大型语言模型的强大功能与信息检索技术相结合,检索增强管道为更准确、上下文丰富且高效的 NLP 系统铺平了道路。 随着这一领域的研究和开发不断取得进展,我们可以预期检索增强管道将在塑造自然语言处理的未来方面发挥至关重要的作用。