生产就绪
的数据处理变得
简单
和
可共享
探索文档 »
🪤 为什么选择Fondant?
Fondant是一个数据框架,可以实现协作构建数据集。它旨在共同开发和制作数据集,共享可重用的操作和完整的数据处理树。
Fondant允许您初始化数据集,对它们应用各种操作,并从其他用户处加载数据集。它有助于在托管服务上执行操作,分享操作,并跟踪您的数据集版本。所有这些都无需移动源数据。
💨 入门指南
Fondant允许您轻松定义由可重用和定制组件组成的工作流。以下示例使用可重用的“load_from_hf_hub组件”从Hugging Face Hub加载数据集,并使用一个定制组件来处理这些图像,使其生成一个新数据集。
import pyarrow as pa
from fondant.dataset import Dataset
# 通过从Hugging Face Hub加载数据来初始化数据集
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(),
},
)
# 添加一个操作从URL下载图像
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还使操作可共享,因此您可以轻松在工作流中使用操作。
- 可共享树:数据集是对其他数据集应用操作的结果。完整的谱系被包含在内。这不仅允许共享最终产品,还可以共享全部历史记录,用户也可以轻松基于一个数据集继续或从现有图表分支出去。
(返回顶部)
🧩 主要特色
Fondant带来了以下功能:
- 🔧 插拔式可组合数据处理工作流
- 🧩 包含现成可重用组件的库
- 🐼 简单的基于Pandas的数据帧接口用于创建自定义组件
- 📊 内置谱系、缓存和数据浏览器
- 🚀 生产就绪、可扩展部署
- ☁️ 跨不同云的运行器集成(Google Cloud上的Vertex、AWS上的Sagemaker、任何k8s集群上的Kubeflow)
👉 查看我们的组件中心了解所有可用组件的概览
(返回顶部)
🪄 示例流水线
我们创建了多个现成的示例流水线,供您作为探索Fondant的起点。 它们作为单独的存储库托管,包含一个笔记本教程,因此您可以轻松克隆它们并开始使用:
📖 RAG调优流水线 端到端的Fondant流水线,用于索引和评估RAG(检索增强生成)系统。
🛋️ ControlNet室内设计流水线 端到端的Fondant流水线,用于收集和处理用于控制网模型微调的室内设计相关图像数据。
🖼️ 筛选创作共用许可证图像 端到端的Fondant流水线,从我们的Fondant-CC-25M创作共用图像数据集开始,筛选并下载所需图像。
⚒️ 安装
首先,运行基本的Fondant安装:
pip install fondant
Fondant还包括特定运行器、存储集成和发布组件到注册表的额外依赖项。本地运行器(docker)的依赖项默认包括在内。
更多详细的安装选项,请查看安装页面上的文档。
👭 贡献
我们欢迎多种形式的贡献:
问题 | 如果您遇到任何问题或错误,请将其提交为Github问题。您还可以直接提交拉取请求以修复任何明显的错误。 |
建议和反馈 | 我们的路线图和优先事项是基于社区反馈确定的。要提供意见,您可以加入我们的discord或在我们的Github讨论中提交一个想法。 |
框架代码贡献 | 如果您想帮助开发Fondant框架,请查看标有good first issue标签的问题。如果您想添加额外的功能,请首先提交一个问题。 |
可重用组件 | 扩展我们的可重用组件库是贡献的一种绝佳方式。如果您构建了一个对其他用户有用的组件,请提交一个PR将其添加到components/目录中。您可以在这里找到一份可能的可贡献组件列表here或者您的任何想法也同样欢迎! |
要详细查看路线图和日常开发,您可以查看我们的github项目板。
您还可以查看我们的架构页面,熟悉Fondant架构和存储库结构。
环境设置
我们使用poetry和pre-commit来实现顺畅的开发者流程。运行以下命令设置您的开发环境:
pip install poetry
poetry install --all-extras
pre-commit install
(返回顶部)