Hub documentation

Argilla

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Argilla

Argilla 是一款面向 AI 工程师和领域专家的合作工具,用于为项目构建高质量数据集。

image

Argilla 可用于为多种 AI 项目收集人类反馈,例如传统 NLP(文本分类、NER 等)、LLM(RAG、偏好调优等)或多模态模型(文本生成图像等)。Argilla 的编程化方法允许你构建用于持续评估和模型改进的工作流。Argilla 的目标是确保你的数据工作能够产生回报,通过快速迭代正确的数据和模型来实现这一点。

人们使用 Argilla 构建什么?

社区使用 Argilla 创建了出色的开源 数据集 和 模型。

开源数据集和模型

Argilla 也向开源社区贡献了一些模型和数据集。

  • 用于微调 Notus 和 Notux 模型的 清理后的 UltraFeedback 数据集。原始的 UltraFeedback 数据集是使用 Argilla UI 过滤器进行整理的,以查找并报告原始数据生成代码中的一个 bug。基于此数据整理流程,Argilla 构建了 UltraFeedback 数据集的这个新版本,并微调了 Notus,在多个基准测试中超越了 Zephyr。
  • 用于微调改进版 OpenHermes 模型的distilabeled Intel Orca DPO 数据集。该数据集通过结合 Argilla 中的人工筛选与 distilabel 提供的 AI 反馈构建而成,从而生成了 Intel Orca 数据集的改进版本,并在性能上超越了基于原始数据集微调的模型。

示例 用例

来自红十字会、Loris.ai和Prolific等公司的 AI 团队使用 Argilla 来提升 AI 项目的质量和效率。他们在我们的AI 社区聚会上分享了他们的经验。

  • AI 造福人类:红十字会的演示展示了红十字会领域专家与 AI 团队如何通过分类和转接乌克兰危机难民的需求,从而简化红十字会的支持流程。
  • 客户支持:在Loris 聚会上,他们展示了其 AI 团队如何利用无监督和少样本对比学习,快速验证并获取大量多标签分类器的标注样本。
  • 研究项目:Prolific 的展示宣布已与我们的平台集成。他们利用该平台在其标注团队中积极分发数据收集项目。这使得 Prolific 能够快速、高效地收集用于研究项目的高质量数据。

先决条件

首先,使用您的 Hugging Face 账户登录:

hf auth login

请确保已安装 argilla>=2.0.0:

pip install -U argilla

最后,您需要部署 Argilla 服务器和 UI,这可以轻松地在 Hugging Face Hub 上完成。

导入和导出数据集和记录

本指南展示了如何将数据集导入和导出到 Hugging Face Hub。

在 Argilla 中,您可以导入/导出数据集的两个主要组件:

  • 在 rg.Settings 中定义的该数据集的完整配置。如果您希望共享您的反馈任务或在 Argilla 中稍后恢复它,这将非常有用。
  • 存储在数据集中的记录,包括 Metadata、Vectors、Suggestions 和 Responses。如果您希望在 Argilla 之外使用数据集的记录,这将非常有用。

将 Argilla 数据集推送到 Hugging Face Hub

您可以将 Argilla 中的数据集推送到 Hugging Face Hub。如果您希望与社区共享数据集或对其进行版本控制,这将非常有用。您可以使用 rg.Dataset.to_hub 方法将数据集推送到 Hugging Face Hub。

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = client.datasets(name="my_dataset")
dataset.to_hub(repo_id="<repo_id>")

无论是否有记录

上述示例会将数据集的 Settings 和记录推送到 hub。如果只想推送数据集的配置,可以将 with_records 参数设置为 False。当你只关注特定的数据集模板,或者想要修改数据集的设置和/或记录时,这非常有用。

dataset.to_hub(repo_id="<repo_id>", with_records=False)

从 Hugging Face Hub 拉取 Argilla 数据集

您可以从 Hugging Face Hub 将数据集拉取到 Argilla。如果您希望恢复数据集及其配置,这将非常有用。您可以使用 rg.Dataset.from_hub 方法从 Hugging Face Hub 拉取数据集。


import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = rg.Dataset.from_hub(repo_id="<repo_id>")

rg.Dataset.from_hub 方法会从数据集仓库中加载配置和记录。如果只想加载记录,可以将 datasets.Dataset 对象传递给 rg.Dataset.log 方法。这样你就可以配置自己的数据集并复用现有的 Hub 数据集。

无论是否有记录

上述示例将从 hub 中拉取数据集的 Settings 和记录。如果只想拉取数据集的配置,可以将 with_records 参数设置为 False。当您仅对特定的数据集模板感兴趣,或者想要修改数据集的设置和/或记录时,这非常有用。

dataset = rg.Dataset.from_hub(repo_id="<repo_id>", with_records=False)

通过数据集的配置,您可以对数据集进行修改。例如,您可以调整数据集的设置以适配不同的任务:

dataset.settings.questions = [rg.TextQuestion(name="answer")]

然后,您可以使用 datasets 包的 load_dataset 方法记录数据集的记录,并将数据集传递给 rg.Dataset.log 方法。

hf_dataset = load_dataset("<repo_id>")
dataset.log(hf_dataset)

📚 资源

Update on GitHub