跳到主要内容

Argilla

Argilla 是一个协作工具,面向需要为项目构建高质量数据集的 AI 工程师和领域专家。

image

Argilla 可用于收集各种 AI 项目的人工反馈,如传统 NLP(文本分类、NER 等)、LLM(RAG、偏好调优等)或多模态模型(文本到图像等)。Argilla 的编程方法允许你构建用于持续评估和模型改进的工作流。Argilla 的目标是通过快速迭代正确的数据和模型,确保你的数据工作取得成效。

人们使用 Argilla 构建什么?

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

开源数据集和模型

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

  • Cleaned UltraFeedback 数据集用于微调 NotusNotux 模型。原始 UltraFeedback 数据集使用 Argilla UI 过滤器进行整理,以查找并报告原始数据生成代码中的错误。基于此数据整理过程,Argilla 构建了此新版本的 UltraFeedback 数据集并微调了 Notus,在多个基准测试中超越了 Zephyr。
  • distilabeled Intel Orca DPO 数据集用于微调改进的 OpenHermes 模型。该数据集通过结合 Argilla 中的人工整理和来自 distilabel 的 AI 反馈构建,产生了改进版本的 Intel Orca 数据集,并超越了在原始数据集上微调的模型。

示例用例

来自 the Red CrossLoris.aiProlific 等公司的 AI 团队使用 Argilla 来提高 AI 项目的质量和效率。他们在我们的AI 社区聚会中分享了他们的经验。

  • AI 向善:the Red Cross 演示展示了 Red Cross 领域专家和 AI 团队如何通过分类和重定向来自乌克兰危机难民的需求来简化 Red Cross 的支持流程。
  • 客户支持:在 the 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 中恢复它,这很有用。
  • 存储在数据集中的记录,包括 MetadataVectorsSuggestionsResponses。如果你想在 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)

📚 资源