LLM 课程文档
将数据集加载到 Argilla
并获得增强的文档体验
开始使用
将数据集加载到 Argilla
根据您正在处理的 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 实例中,但你会发现它是空的。

现在我们需要添加将要注释的记录,即数据集中的行。为此,我们只需将数据记录为记录,并为那些在 hub 和 Argilla 数据集中名称不相同的元素提供映射。
dataset.records.log(data, mapping={"label_text": "label"})
在我们的映射中,我们指定了数据集中的`label_text`列应映射到名为`label`的问题。这样,我们将使用数据集中现有的标签作为预标注,以便我们可以更快地进行标注。
当记录继续登录时,您已经可以开始在 Argilla UI 中使用数据集了。此时,它应该看起来像这样:

现在我们的数据集已准备好开始标注!
< > 在 GitHub 上更新