Hub documentation

Argilla

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Argilla

Argilla es una herramienta de colaboración para ingenieros de IA y expertos en el dominio que necesitan crear conjuntos de datos de alta calidad para sus proyectos.

image

Argilla se puede utilizar para recopilar retroalimentación humana para una amplia variedad de proyectos de IA, como NLP tradicional (clasificación de texto, NER, etc.), LLMs (RAG, ajuste de preferencias, etc.) o modelos multimodales (texto a imagen, etc.). El enfoque programático de Argilla te permite crear flujos de trabajo para la evaluación continua y la mejora de modelos. El objetivo de Argilla es garantizar que tu trabajo con datos dé resultados, iterando rápidamente sobre los datos y modelos adecuados.

¿Qué construyen las personas con Argilla?

La comunidad utiliza Argilla para crear increíbles conjuntos de datos y modelos de código abierto.

Conjuntos de datos y modelos de código abierto

Argilla también contribuyó con algunos modelos y conjuntos de datos al código abierto.

  • Conjunto de datos UltraFeedback limpio utilizado para el ajuste fino de los modelos Notus y Notux. El conjunto de datos UltraFeedback original se curó utilizando los filtros de la interfaz de Argilla para encontrar e informar sobre un error en el código de generación de datos original. Basándose en este proceso de curación de datos, Argilla creó esta nueva versión del conjunto de datos UltraFeedback y ajustó Notus, superando a Zephyr en varios benchmarks.
  • El conjunto de datos Intel Orca DPO de distilabel utilizado para ajustar el modelo OpenHermes mejorado. Este conjunto de datos se creó combinando la curaduría humana en Argilla con la retroalimentación de la IA de distilabel, lo que dio lugar a una versión mejorada del conjunto de datos Intel Orca y superó a los modelos ajustados con el conjunto de datos original.

Ejemplos Casos de uso

Los equipos de IA de empresas como la Cruz Roja, Loris.ai y Prolific utilizan Argilla para mejorar la calidad y la eficiencia de los proyectos de IA. Compartieron sus experiencias en nuestro encuentro de la comunidad de IA.

  • La IA para el bien común: la presentación de la Cruz Roja muestra cómo los expertos del dominio de la Cruz Roja y el equipo de IA colaboraron clasificando y redirigiendo las solicitudes de los refugiados de la crisis ucraniana para agilizar los procesos de apoyo de la Cruz Roja.
  • Soporte al cliente: durante el encuentro de Loris mostraron cómo su equipo de IA utiliza el aprendizaje contrastivo no supervisado y few-shot para ayudarles a validar rápidamente y obtener muestras etiquetadas para una gran cantidad de clasificadores multietiqueta.
  • Estudios de investigación: la presentación de Prolific anunció su integración con nuestra plataforma. La utilizan para distribuir activamente proyectos de recopilación de datos entre su personal de anotación. Esto permite a Prolific recopilar rápidamente y de manera eficiente datos de alta calidad para estudios de investigación.

Prerrequisitos

Primero inicia sesión con tu cuenta de Hugging Face:

hf auth login

Asegúrate de tener instalado argilla>=2.0.0:

pip install -U argilla

Por último, deberá desplegar el servidor y la interfaz de Argilla, lo cual puede hacerse fácilmente en Hugging Face Hub.

Importar y exportar conjuntos de datos y registros

Esta guía muestra cómo importar y exportar tu conjunto de datos al Hugging Face Hub.

En Argilla, puedes importar/exportar dos componentes principales de un conjunto de datos:

  • La configuración completa del conjunto de datos definida en rg.Settings. Esto es útil si deseas compartir tu tarea de retroalimentación o restaurarla más adelante en Argilla.
  • Los registros almacenados en el conjunto de datos, incluidos Metadata, Vectors, Suggestions y Responses. Esto es útil si deseas utilizar los registros de tu conjunto de datos fuera de Argilla.

Subir un conjunto de datos de Argilla al Hugging Face Hub

Puedes subir un dataset de Argilla al Hugging Face Hub. Esto es útil si deseas compartir tu dataset con la comunidad o controlarlo por versiones. Puedes subir el dataset al Hugging Face Hub usando el método rg.Dataset.to_hub.

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = client.datasets(name="my_dataset")
dataset.to_hub(repo_id="<repo_id>")

Con o sin registros

El ejemplo anterior enviará los Settings y los registros del conjunto de datos al hub. Si solo deseas enviar la configuración del conjunto de datos, puedes establecer el parámetro with_records en False. Esto es útil si solo te interesa una plantilla específica de conjunto de datos o si quieres realizar cambios en la configuración y/o en los registros del conjunto de datos.

dataset.to_hub(repo_id="<repo_id>", with_records=False)

Obtener un conjunto de datos de Argilla desde Hugging Face Hub

Puedes obtener un conjunto de datos desde Hugging Face Hub hacia Argilla. Esto es útil si deseas restaurar un conjunto de datos y su configuración. Puedes obtener el conjunto de datos desde Hugging Face Hub usando el método rg.Dataset.from_hub.


import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
dataset = rg.Dataset.from_hub(repo_id="<repo_id>")

El método rg.Dataset.from_hub carga la configuración y los registros del repositorio del dataset. Si solo quieres cargar registros, puedes pasar un objeto datasets.Dataset al método rg.Dataset.log. Esto te permite configurar tu propio dataset y reutilizar datasets existentes de Hub.

Con o sin registros

El ejemplo anterior obtiene los Settings y los registros del conjunto de datos desde el hub. Si solo deseas obtener la configuración del conjunto de datos, puedes establecer el parámetro with_records en False. Esto es útil si solo te interesa una plantilla específica del conjunto de datos o si quieres realizar cambios en la configuración y/o en los registros del conjunto de datos.

dataset = rg.Dataset.from_hub(repo_id="<repo_id>", with_records=False)

Con la configuración del conjunto de datos, luego podrías realizar cambios en él. Por ejemplo, podrías adaptar la configuración del conjunto de datos para una tarea diferente:

dataset.settings.questions = [rg.TextQuestion(name="answer")]

A continuación, puede registrar los registros del conjunto de datos utilizando el método load_dataset del paquete datasets y pasar el conjunto de datos al método rg.Dataset.log.

hf_dataset = load_dataset("<repo_id>")
dataset.log(hf_dataset)

📚 Recursos

Update on GitHub