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)}

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

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`。我们定义了一组用于该任务的标签,以及我们将绘制跨度的字段。

要了解所有可用的字段和问题类型以及其他高级设置,例如元数据和向量,请访问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 上更新