LLM 课程文档

将您的数据集加载到 Argilla

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

将您的数据集加载到 Argilla

Ask a Question Open In Colab Open In Studio Lab

根据您正在处理的 NLP 任务以及特定的用例或应用程序,您的数据和标注任务看起来会有所不同。在本课程的这一部分,我们将使用一个收集新闻的数据集来完成两个任务:对每篇文本的主题进行文本分类,以及进行词元分类以识别提到的命名实体。

可以使用 Argilla UI 直接从 Hub 导入数据集,但我们将使用 SDK 来学习如何在需要时进一步编辑数据。

配置您的数据集

第一步是连接到我们的 Argilla 实例,就像我们在上一节中所做的那样

import argilla as rg

HF_TOKEN = "..."  # only for private spaces

client = rg.Argilla(
    api_url="...",
    api_key="...",
    headers={"Authorization": f"Bearer {HF_TOKEN}"},  # only for private spaces
)

现在我们可以考虑在 Argilla 中数据集的设置。这些设置代表我们将对数据执行的标注任务。首先,我们可以从 Hub 加载数据集并检查其特征,以便确保正确配置数据集。

from datasets import load_dataset

data = load_dataset("SetFit/ag_news", split="train")
data.features

这些是我们数据集的特征

{'text': Value(dtype='string', id=None),
 'label': Value(dtype='int64', id=None),
 'label_text': Value(dtype='string', id=None)}

它包含一个 text,以及一些用于文本分类的初始标签。我们将这些添加到我们的数据集设置中,以及一个用于命名实体的 spans 问题

settings = rg.Settings(
    fields=[rg.TextField(name="text")],
    questions=[
        rg.LabelQuestion(
            name="label", title="Classify the text:", labels=data.unique("label_text")
        ),
        rg.SpanQuestion(
            name="entities",
            title="Highlight all the entities in the text:",
            labels=["PERSON", "ORG", "LOC", "EVENT"],
            field="text",
        ),
    ],
)

让我们更深入地了解这些设置的含义。首先,我们定义了字段,这些字段包括我们将要标注的信息。在本例中,我们只有一个字段,它以文本的形式出现,因此我们选择了 TextField

然后,我们定义了问题,这些问题代表我们想要对数据执行的任务

  • 对于文本分类任务,我们选择了 LabelQuestion,并使用 label_text 列的唯一值作为我们的标签,以确保问题与数据集中已存在的标签兼容。
  • 对于词元分类任务,我们将需要一个 SpanQuestion。我们定义了一组将用于该任务的标签,以及我们将绘制 span 的字段。

要了解有关所有可用字段和问题类型以及其他高级设置(如元数据和向量)的更多信息,请访问 Argilla 文档

上传数据集

现在我们已经定义了一些设置,我们可以创建数据集

dataset = rg.Dataset(name="ag_news", settings=settings)

dataset.create()

数据集现在出现在我们的 Argilla 实例中,但您会看到它是空的

Screenshot of the empty dataset.

现在我们需要添加我们将要标注的记录,即数据集中的行。为此,我们只需要将数据记录为记录,并为 Hub 和 Argilla 数据集中名称不同的元素提供映射

dataset.records.log(data, mapping={"label_text": "label"})

在我们的映射中,我们指定数据集中的 label_text 列应映射到名称为 label 的问题。通过这种方式,我们将使用数据集中现有的标签作为预标注,以便我们可以更快地进行标注。

当记录继续记录时,您已经可以开始在 Argilla UI 中使用您的数据集。此时,它应该看起来像这样

Screenshot of the dataset in Argilla.

现在我们的数据集已准备好开始标注!

< > 在 GitHub 上更新