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)}
它包含一个 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 实例中,但您会看到它是空的

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

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