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 上更新