LLM Course documentation

Încărcați setul de date în Argilla

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Încărcați setul de date în Argilla

Ask a Question Open In Colab Open In Studio Lab

În funcție de sarcina NLP cu care lucrați și cazul de utilizare sau aplicația specifică, datele dvs. și sarcina de adnotare vor arăta diferit. Pentru această secțiune a cursului, vom folosi un set de date care colectează știri pentru a completa două sarcini: o clasificare de text asupra subiectului fiecărui text și o clasificare de token-uri pentru a identifica entitățile numite menționate.

Este posibil să importați seturi de date din Hub folosind direct interfața Argilla, dar vom folosi SDK-ul pentru a învăța cum putem face editări suplimentare la date dacă este necesar.

Configurați setul de date

Primul pas este să ne conectăm la instanța Argilla așa cum am făcut în secțiunea anterioară:

import argilla as rg

HF_TOKEN = "..."  # doar pentru space-uri private

client = rg.Argilla(
    api_url="...",
    api_key="...",
    headers={"Authorization": f"Bearer {HF_TOKEN}"},  # doar pentru space-uri private
)

Acum putem gândi la setările setului nostru de date în Argilla. Acestea reprezintă sarcina de adnotare pe care o vom face asupra datelor noastre. Mai întâi, putem încărca setul de date din Hub și să inspectăm caracteristicile acestuia, astfel încât să ne asigurăm că configurăm setul de date corect.

from datasets import load_dataset

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

Acestea sunt caracteristicile setului nostru de date:

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

Conține un text și de asemenea câteva etichete inițiale pentru clasificarea textului. Le vom adăuga la setările setului nostru de date împreună cu o întrebare spans pentru entitățile numite:

settings = rg.Settings(
    fields=[rg.TextField(name="text")],
    questions=[
        rg.LabelQuestion(
            name="label", title="Clasificați textul:", labels=data.unique("label_text")
        ),
        rg.SpanQuestion(
            name="entities",
            title="Evidențiați toate entitățile din text:",
            labels=["PERSON", "ORG", "LOC", "EVENT"],
            field="text",
        ),
    ],
)

Să aprofundăm puțin ce înseamnă aceste setări. Mai întâi, am definit fields (câmpuri), acestea includ informațiile pe care le vom anota. În acest caz, avem doar un câmp și vine sub forma unui text, așa că am ales un TextField.

Apoi, definim questions (întrebări) care reprezintă sarcinile pe care vrem să le efectuăm asupra datelor noastre:

  • Pentru sarcina de clasificare de text am ales o LabelQuestion și am folosit valorile unice ale coloanei label_text ca etichetele noastre, pentru a ne asigura că întrebarea este compatibilă cu etichetele care există deja în setul de date.
  • Pentru sarcina de clasificare de token-uri, vom avea nevoie de o SpanQuestion. Am definit un set de etichete pe care le vom folosi pentru acea sarcină, plus câmpul pe care vom desena intervalele.

Pentru a afla mai multe despre toate tipurile disponibile de câmpuri și întrebări și alte setări avansate, precum metadatele și vectorii, mergeți la documentația Argilla.

Încărcați setul de date

Acum că am definit câteva setări, putem crea setul de date:

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

dataset.create()

Setul de date apare acum în instanța noastră Argilla, dar veți vedea că este gol:

Captură de ecran cu setul de date gol.

Acum trebuie să adăugăm înregistrările pe care le vom anota, adică rândurile din setul nostru de date. Pentru a face asta, va trebui pur și simplu să înregistrăm datele ca înregistrări și să oferim o mapare pentru acele elemente care nu au același nume în seturile de date din hub și Argilla:

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

În maparea noastră, am specificat că coloana label_text din setul de date ar trebui mapată la întrebarea cu numele label. În acest fel, vom folosi etichetele existente din setul de date ca pre-adnotări astfel încât să putem anota mai rapid.

În timp ce înregistrările continuă să se înregistreze, puteți începe deja să lucrați cu setul de date în interfața Argilla. În acest moment, ar trebui să arate așa:

Captură de ecran cu setul de date în Argilla.

Acum setul nostru de date este gata să începem adnotarea!

< > Update on GitHub