Prompt 语宙Prompt 语宙
  • 首页
  • AIGC 资讯
    • AIGC 早报Hot
    • 最新趋势
    • AI 工具
    • 热门资源
  • AI 绘图
    • Prompt 实战
    • AI 绘画教程
    • 模型精选
  • 强化 AI 学习
  • AI 图库
    • 人物
    • 展台场景
    • Banner
    • 游戏
    • 动物
    • 食物
    • 自然
    • 背景
    • 海报
    • 建筑
    • 室内设计
  • Remaker AI
    • Free Image Splitter
    • AIGC 工具
    • Prompt 咒语生成器
  • 社区
    • 知识星球
    • 公众号
Search
  • Contact
  • Blog
  • Complaint
  • Advertise
© 2024 Prompt 语宙. HalfPX. All Rights Reserved.
阅读: DREAM: 分布式 RAG 实验框架 [译]
Share
登陆
通知 阅读更多
Font Resizer字体
Font Resizer字体
Prompt 语宙Prompt 语宙
Search
  • 首页
  • AIGC 资讯
    • AIGC 早报Hot
    • 最新趋势
    • AI 工具
    • 热门资源
  • AI 绘图
    • Prompt 实战
    • AI 绘画教程
    • 模型精选
  • 强化 AI 学习
  • AI 图库
    • 人物
    • 展台场景
    • Banner
    • 游戏
    • 动物
    • 食物
    • 自然
    • 背景
    • 海报
    • 建筑
    • 室内设计
  • Remaker AI
    • Free Image Splitter
    • AIGC 工具
    • Prompt 咒语生成器
  • 社区
    • 知识星球
    • 公众号
已有帐户? 登陆
  • Contact
  • Blog
  • Complaint
  • Advertise
© 2023 Prompt 语宙. Paooo.com. All Rights Reserved.
DREAM 架构
Prompt 语宙 > 强化 AI 学习 > DREAM: 分布式 RAG 实验框架 [译]
强化 AI 学习

DREAM: 分布式 RAG 实验框架 [译]

宝玉的分享
最近更新: 2025年4月15日 下午3:29
SHARE

使用 Ray, LlamaIndex, Ragas, MLFlow 和 MinIO 在 Kubernetes 上的分布式 RAG 实验蓝图

阅读目录
1. 🌟 什么是 DREAM?a. 🤔 这究竟是什么?b. 🏛️ 架构c. 💻 展示代码!2. 🚶 代码导览a. 📂 准备非结构化数据b. 🥇 分布式创建黄金数据集 这里开始变得有趣!c. 🔬 分布式实验与评价d. 📊 实验追踪3. 📍 结论

1. 🌟 什么是 DREAM?

a. 🤔 这究竟是什么?

在有那么多大语言模型(LLM)、嵌入模型、检索方法及重新排序方法可选时,要确定哪一种组合最符合你的需求确实挑战重重。毕竟,谁会有时间挨个尝试每一种组合呢?

DREAM 架构
DREAM 架构

于是,我们有了分布式 RAG 实验框架(DREAM)——这是一套包括 Kubernetes 原生架构和示例代码的蓝图。它展示了如何在 Kubernetes 上利用 Ray, LlamaIndex, Ragas, MLFlow 和 MinIO 这些工具,以分布式的方式进行检索增强生成(RAG)的实验、评估和监控。

通过部署必要的 Kubernetes 工具并在分布式系统中进行实验和评估,我们的最终目标是比较各种 RAG 参数组合,找出最适合我们需求的那一种。

下面这张平行坐标图显示了通过分布式 RAG 实验得到的不同参数组合,以及它们在各种评价指标上的表现
下面这张平行坐标图显示了通过分布式 RAG 实验得到的不同参数组合,以及它们在各种评价指标上的表现

b. 🏛️ 架构

如图所示,DREAM 的技术栈包括:

  • Ray (Kuberay)(由 Anyscale 开发)适用于在 Kubernetes 上进行分布式计算,可以用于通过 Ray Tune 进行各种实验和通过 Ray jobs 执行其它分布式任务
  • LlamaIndex(由 Jerry Liu 和他的团队开发)是一个专门处理非结构化数据和采用先进的 RAG 技术的框架
  • ragas(由 Shahul ES, Jithin James 及其团队开发)用于生成模拟数据和进行大语言模型(LLM)辅助评估
  • MinIO 用作 S3 和 Kubernetes 原生的对象存储方案,主要存放非结构化数据、关键数据集以及 MLFlow 的数据记录
  • MLflow 用作科研项目的追踪工具,辅助数据库采用 PostgreSQL,存储则使用 MinIO
  • Project Jupyter 笔记本用于在 Ray 集群上开展互动式实验活动
  • Kubernetes 作为主要的容器管理系统……自然不在话下!(在 DigitalOcean 的小型服务器上通过 kubeadm 部署,当然,您也可以选择 minikube 或其他的版本)
  • ArgoCD(由 Argo Project 开发)负责将各种工具部署到 Kubernetes 集群上,并利用 GitOps 技术维护集群的运行状态。

要安装这些组件,您可以遵循 安装指南 中的步骤。您会发现,DREAM 实际上是我即将推出的一个宏大项目“GOKU(在 Kubernetes 上的生成式 AI 运营)”的一部分。

c. 💻 展示代码!

Here you go: DREAM Github 🙂

2. 🚶 代码导览

a. 📂 准备非结构化数据

这些步骤在 此 Jupyter 笔记本 中非常简单直接:

  • 从 github 下载 PDF 文件到本地机器
  • 利用 boto3 技术,把 PDF 文件上传到 S3 (MinIO) 存储服务

在 MinIO 中上传 PDF 后的界面截图

b. 🥇 分布式创建黄金数据集 这里开始变得有趣!

  • 利用我们的 Jupyter 笔记本 作为 Ray 驱动,通过 ray 客户端提交任务,分布式地创建黄金数据集。
  • 在每一个 Ray 任务中,最多从 S3 加载三个 PDF,并运用 ragas 框架的 TestsetGenerator 生成仿真测试数据。每个任务会返回一个含有仿真数据的 Pandas 数据框。
  • 驱动器 (Jupyter 笔记本) 将这些数据框合并,并将合并后的数据框以 CSV 文件的形式存储到 S3。

分布式黄金数据集生成的工作流程
分布式黄金数据集生成的工作流程

c. 🔬 分布式实验与评价

接下来的部分可能会比较复杂,以下是整个工作流程的图示说明:

分布式实验、评价及追踪工作流程
分布式实验、评价及追踪工作流程

在详述核心内容前,先来看看我们的搜索空间及评估标准。我们的搜索空间涵盖三种 RAG 方法,两种大语言模型 (LLMs) 和两种嵌入模型。我们利用 LlamaIndex 提供的三种 RAG 方法:块重叠,句子窗口检索及层次化自动合并检索。使用的大语言模型包括 OpenAI 的 gpt-3.5-turbo 和 gpt-4,以及两种嵌入模型:text-embedding-3-small 和 text-embedding-3-large。评估使用 ragas 提供的六种标准:忠实度、答案相关性、上下文精确度、上下文回忆度、答案正确性及答案相似度。深入了解这些 RAG 方法和评估标准,欢迎阅读我之前的高级 RAG 文章。

  • 在 Jupyter 笔记本充当 Ray 驱动程序的情况下,我们使用 Ray 客户端提交 Ray Tune 作业

查询引擎选择工具的代码示例
查询引擎选择工具的代码示例

  • 在处理嵌入模型和大语言模型(LLM)时,我们通过特定的代码字符串来选择和启动这些模型,这一过程在实验的辅助功能中完成。

模型启动的代码工具示例
模型启动的代码工具示例

  • 完成模型选择后,实验中的下一步是使用评估工具,这个工具通过分析标准数据集来帮助我们获取问题的上下文和答案。通过一个特别的程序 ragas 对结果进行评价并计算不同的性能指标,然后通过一个记录功能将这些数据保存下来。

评估器函数的代码 evaluator()
评估器函数的代码 evaluator()

d. 📊 实验追踪

最后,我们通过使用 MLflow 的强大实验追踪功能,不仅记录了实验的成果,也建立了与核心数据集的连接,并把实验结果可视化。以下是一些直观的截图,它们足以自述其效果。

记录到 MLFlow 的实验结果代码
记录到 MLFlow 的实验结果代码

实验的表格视图
实验的表格视图

平行坐标图,描绘了分布式 RAG 实验中不同组合的成果以及它们在多个评估指标上的性能。
平行坐标图,描绘了分布式 RAG 实验中不同组合的成果以及它们在多个评估指标上的性能。

表 1: 实验结果的表格展示。
表 1: 实验结果的表格展示。

3. 📍 结论

在这篇文章里,我们详细介绍了 DREAM 项目。这个项目不仅是一系列工具和代码的设计方案,还展示了如何利用 Ray, LlamaIndex, Ragas, MLFlow 和 MinIO 这些开源技术,在 Kubernetes 平台上进行分布式的 RAG (retrieval-augmented generation) 实验、评估和监控。

  • 由 Jithin James、Shahul ES 以及他们的团队和贡献者共同创建的优秀项目 ragas,你可以在这里找到详尽的 文档 和 源代码。
  • 探索如何通过 Ray 和 LlamaIndex 构建和扩展强大的查询引擎,不妨阅读 Jerry Liu 和 Amog Kamsetty 的精彩 分析。
  • 欢迎阅读我关于高级 RAG 的 详细讨论 🙂
利用大语言模型开发先进的推理与规划算法 [译]
DeepSeek 开源周第 6 天彩蛋 – DeepSeek-V3/R1 推理系统概览
利用 LoRA 高效撤销 Llama 2-Chat 70B 的安全防护训练 [译]
Sora:探索大型视觉模型的前世今生、技术内核及未来趋势 [译]
模型即产品(The Model is the Product)
分享
Email 复制链接 打印
Share
上一篇 RAG 在长上下文大语言模型 (LLM) 中的应用探讨 [译]
下一篇 Pedro David Garcia Lopez 的照片 从一个卡车司机到 38 岁成为 Ruby on Rails 开发者 [译]
发表评价

发表评价 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Please select a rating!

Ad image
- 入群领取知识星球折扣卷, 仅剩99份 -
Ad imageAd image

最近更新

Deep Research 与知识价值:从信息搜索到价值重新定义
强化 AI 学习
什么是多模态大语言模型(MLLM)?[译]
强化 AI 学习
比尔·盖茨:特朗普、马斯克,以及我的神经多样性如何塑造了我 [译]
强化 AI 学习
阿兰·图灵的神秘“Delilah”项目:被遗失的故事 [译]
强化 AI 学习

相关推荐

强化 AI 学习

你无法用 AI 建立护城河 [译]

宝玉的分享
强化 AI 学习

亲手制作 transformer:无需训练! [译]

宝玉的分享
OpenAI 博客中的一张截图,日期为 2023 年 11 月 9 日,标题为“寻求数据合作伙伴”,内容说明他们对“反映人类社会且目前未能轻易在网上公开获取的大型数据集”感兴趣
强化 AI 学习

AI 并非你的职场竞争对手 [译]

宝玉的分享
两位医生在病房中使用平板电脑协商
强化 AI 学习

大语言模型在帮助医生获取信息方面效果如何?[译]

宝玉的分享
/ Prompt 语宙 /

Experience the limitless creative possibilities of generative AI and unlock new levels of innovation.

Quick Link

  • Remaker AI
  • BGRemaker 抠图Hot
  • AIGC 工具
  • Prompt 咒语生成器
  • 去水印工具

Support

  • Contact
  • Blog
  • Complaint
  • Advertise

标签

3D AI AIGC AI人像 AI创作小助手 AI工具 AI换脸 AI海报设计 AI生成视频 AI绘画 AI视频 AI设计 app图标 chatgpt DALL-E3 excel GPT meta Midjourney openai Pika prompt runway SDXL stable diffusion UI设计 专业 丛林 乐高 人像 人物 光晕 动物 吉卜力 咒语 图标设计 圣诞 壁纸 女性 奶牛 实验室 宠物 客厅 室内设计 家居 局部重绘 展台 山景 帅哥 建筑 建筑设计 影谱科技 微摄影 怪物 提示词 摄影 教程 新闻 日本排放核污水 早报 星光 枯木 植物 模特 水果 泳池 海报 海报设计 清华大学 温馨的家 游戏 游戏美术 炫光 炫彩 玻璃 白茶花 矢量插画 研究报告 破碎 科幻 穿搭 窗 美食 背景 节日 芭比 花 花卉 茶园一角 草原 荷兰奶源 表情包 赛博朋克 超现实主义 软件 运动 金毛 风景 食物 香水
Prompt 语宙Prompt 语宙
Follow US
© 2009-2023 Prompt 语宙. Paooo.com. All Rights Reserved.
Welcome Back!

Sign in to your account

Username or Email Address
Password

忘记密码