Hub documentation
Argilla
Argilla
Argilla 是一款面向 AI 工程师和领域专家的合作工具,用于为项目构建高质量数据集。
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 能够快速、高效地收集用于研究项目的高质量数据。
先决条件
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)