跳转到主要内容

Fondant - 使大规模数据处理变得简单且可重用

项目描述

生产就绪 数据处理变得 简单可共享
探索文档 »

Discord PyPI version License GitHub Workflow Status Coveralls


🪤 为什么选择Fondant?

Fondant是一个数据框架,它使协作数据集构建成为可能。它旨在共同开发和使用数据集,共享可重用操作和完整的数据处理树。

Fondant 允许您初始化数据集、对这些数据集执行各种操作,并从其他用户那里加载数据集。它有助于执行托管服务上的操作、与他人共享操作以及跟踪您的数据集版本。Fondant 在不移动源数据的情况下实现所有这些功能。

💨 入门指南

Fondant 允许您轻松定义由可重用和自定义组件组成的流程。以下示例使用可重用的 load_from_hf_hub 组件从 Hugging Face Hub 加载数据集,并使用自定义组件对其进行处理,该组件将调整图像大小,从而生成新的数据集。

import pyarrow as pa

from fondant.dataset import Dataset

raw_data = Dataset.create(
    "load_from_hf_hub",
    arguments={
        "dataset_name": "fondant-ai/fondant-cc-25m",
        "n_rows_to_load": 100,
    },
    produces={
        "alt_text": pa.string(),
        "image_url": pa.string(),
        "license_location": pa.string(),
        "license_type": pa.string(),
        "webpage_url": pa.string(),
        "surt_url": pa.string(),
        "top_level_domain": pa.string(),
    },
)

images = raw_data.apply(
    "download_images",
    arguments={
        "input_partition_rows": 100,
        "resize_mode": "no",
    },
)

dataset = images.apply(
    "resize_images",
    arguments={
        "resize_width": 128,
        "resize_height": 128,
    },
)

自定义用例需要创建自定义组件。请查看我们的分步指南,了解更多关于如何构建自定义管道和组件的信息。

(回到顶部)

运行您的管道

一旦您有了管道,就可以轻松地使用内置的 CLI 运行(和编译)它。

fondant run local pipeline.py

要查看所有可用的运行器和参数,您可以在 fondant CLI 帮助页面进行检查。

fondant --help

或者对于子命令

fondant <subcommand> --help

(回到顶部)

🪄 Fondant 的工作原理

  • 数据集:构建块,数据集是一组列。Fondant 通过数据集独特地运行。我们从数据集开始,将其增强为新数据集,并以数据集结束。Fondant 通过按需存储和加载列来优化数据传输。同时根据可用的分区进行处理。目标是使这些数据集可共享,并允许用户根据其他数据集创建自己的数据集。
  • 操作:应用于数据集的转换,生成新数据集。操作将加载所需的列并产生新/修改后的列。转换可以是加载、过滤、添加列、写入等任何操作。Fondant 还使操作可共享,这样您就可以轻松地将操作用于工作流程。
  • 可共享的树:数据集是应用其他数据集上的操作的结果。完整的谱系已内置其中。这不仅可以共享最终产品,还可以共享完整的历史记录,用户还可以轻松地基于数据集或从现有图形分支。

overview

(回到顶部)

🧩 关键特性

以下是 Fondant 带来的好处

  • 🔧 插件式可组合数据处理工作流程
  • 🧩 包含现成可重用组件的库
  • 🐼 用于创建自定义组件的简单 Pandas 接口
  • 📊 内置谱系、缓存和数据探索器
  • 🚀 适用于生产的可扩展部署
  • ☁️ 与不同云(Vertex、Sagemaker、Kubeflow)的运行器集成

👉 查看我们的 组件中心 了解所有可用的组件概述

(回到顶部)

🪄 示例管道

我们为您创建了几个现成的示例管道,您可以将它们用作探索 Fondant 的起点。它们作为独立的存储库托管,包含笔记本教程,因此您可以轻松地克隆它们并开始。

📖 RAG 调优管道
用于索引和评估 RAG(检索增强生成)系统的端到端 Fondant 管道。

🛋️ ControlNet 室内设计管道
用于收集和加工数据以微调 ControlNet 模型的端到端 Fondant 管道,重点关注与室内设计相关的图像。

🖼️ 筛选创意共享许可图像
从我们的 Fondant-CC-25M 创意共享图像数据集开始,筛选并下载所需图像的端到端 Fondant 管道。

⚒️ 安装

首先,运行最小的 Fondant 安装程序

pip install fondant

Fondant 还包括针对特定运行器、存储集成和将组件发布到注册表的额外依赖项。默认情况下包括本地运行器(docker)的依赖项。

有关更详细的安装选项,请查看我们的文档中的安装页面

👭 贡献

我们欢迎各种类型的贡献

问题 如果您遇到任何问题或错误,请将其作为GitHub问题提交。您也可以直接提交一个拉取请求来修复任何明显的错误。
建议和反馈 我们的路线图和优先级是基于社区反馈定义的。要提供输入,您可以加入我们的discord或在我们的GitHub Discussions中提交一个想法。
框架代码贡献 如果您想帮助Fondant框架的开发,请查看带有good first issue标签的问题。如果您想添加额外的功能,请先提交一个相关的问题。
可重用组件 扩展我们的可重用组件库是做出贡献的好方法。如果您构建了一个对其他用户有用的组件,请提交一个PR将其添加到components/目录。您可以在这里找到可能的可贡献组件列表,或者您的想法也欢迎!

要详细了解路线图和日常开发,您可以查看我们的GitHub项目板

您还可以查看我们的架构页面,熟悉Fondant架构和存储库结构。

环境设置

我们使用poetrypre-commit来启用流畅的开发者流程。运行以下命令来设置您的开发环境

pip install poetry
poetry install --all-extras
pre-commit install

(回到顶部)

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

fondant-0.12.1.tar.gz (71.2 kB 查看哈希值)

上传时间

构建分发

fondant-0.12.1-py3-none-any.whl (91.7 kB 查看哈希值)

上传时间 Python 3

由以下支持