🔥 Argilla 2.0: the data-centric tool for AI makers 🤗

Community Article Published July 30, 2024

Since joining Hugging Face, we've worked hard to ship Argilla 2.0. Today it’s out and it’s a big deal.

Data quality is what makes or breaks AI, and Argilla 2.0 is the data-centric tool for AI makers.

The most exciting aspect of 2.0 is collaboration and community. You can open your annotation tasks to the entire Hugging Face community with a few clicks. And, you can set the automatic task distribution with a minimum number of user responses per tasks to control data quality and completing projects in record time!

But this post is not about new features, this post is for those who don't know Argilla yet!

image/png

What's Argilla?

A free and open source tool to build and iterate on data for AI.

Why Argilla?

High quality data is needle-moving for AI.

Data makes models to go from general to specific, from large to small, from commodity to unique, from useless to useful, from harmful to safe, from average to excellent, from their model to your model, from proof-of-concept into production!

For whom?

For everyone!

Argilla is designed for collaboration between AI builders and knowledge experts:

  • AI builders can use Argilla and automate things with the tools they love. They can make data and model outputs available to experts without the headaches.
  • Knowledge experts can contribute with their expertise to have an impact on AI systems.

Everyone should contribute to AI! No one should be intimidated with engineering concepts. It’s a matter of enabling collaboration and making data work more pleasant. It's about making the most of everyone’s time, skills, and knowledge.

To do what?

To think, build, evaluate, and improve AI systems with the right data, iteratively, and continuously!

What makes Argilla different?

Waterfall software development doesn’t work, so why should waterfall AI development? Most labeling tools and services still work this way: AI/business/experts teams define the requirements, they collect data from annotators, spending $$$, train model, and realize the need to go back to point A, leading to more requirements, more $$$ in annotations, more models and hyper parameter tuning, etc.

This process is inefficient for several reasons:

  • AI and business teams don’t really get to collaborate on what makes or breaks an AI model: the data!
  • It’s a waste of compute, but more importantly it is a waste of human brain power! As AI models get more powerful, only experts can really contribute to evaluate, shape and improve their outputs. You can’t get this by asking experts to write requirements docs or use an annotation UI designed for repetitive data labeling. Let them explore, find, and fix things leveraging their knowledge.
  • AI teams need to fail fast to deploy early. If AI teams don’t get human (expert) feedback early, budgets run out, and projects don’t leave the proof of concept stage.

Argilla changes this with

A powerful SDK to set up projects and datasets. No matter the stage of development, AI teams can gather human feedback from ideation to post-deployment!

import argilla as rg
from datasets import load_dataset
# Argilla datasets are configured with questions for your annotators and data fields
settings = rg.Settings(
    fields=[
        rg.TextField(name="review"),
    ],
    questions=[
        rg.LabelQuestion(
            name="sentiment",
            title="In which category does this article fit?",
            labels=["positive", "negative"],
        )
    ]
)

dataset = rg.Dataset(
    name="my_first_dataset",
    settings=settings,
    client=client,
    workspace="argilla"
)
# create dataset in Argilla
dataset.create()
# read a dataset from the Hub, add its rows to your dataset
hf_dataset = load_dataset("imdb", split="train[:100]").to_list()
dataset.records.log(records=hf_dataset, mapping={"text": "review"})

No more one-size-fit-all. No more datasets just for text/image classification, NER, or supervised fine-tuning. Each project is different and you want to ask the right questions to your experts, not what a single model expects. Why not gather data for NER, text classification, and text generation, all at once!

image/png

A explore-find-and-label approach. Being asked repetitive questions or to highlight the same issues over and over again it’s a great way to waste your expert’s time. In Argilla you ask experts to leverage their knowledge, not to annotate a fixed list of 1000 examples one by one.

image/png

A tight integration with the Hugging Face Hub means you can get up and running in under 5 minutes.It brings data work closer to models, dataset management, and a huge community.

For example, Argilla datasets can be shared and imported from the Hub:

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
# retrieve your dataset from Argilla
dataset = client.datasets(name="my_dataset")
# export to Hub
dataset.to_hub(
    repo_id="<my_org>/<my_dataset>",
    with_records=True,
    generate_card=True
)
# import from hub
dataset = rg.Dataset.from_hub(repo_id="<my_org>/<my_dataset>")

But the most exciting integration is: you can deploy Argilla and open your annotation task to the whole community with just two clicks!

But don’t take my word for granted, get started today, and let’s make data go brrr together!

https://docs.argilla.io/latest/getting_started/quickstart/