pip install refuel-autolabel
https://docs.refuel.ai/
El acceso a conjuntos de datos etiquetados grandes, limpios y diversos es un componente crítico para que cualquier esfuerzo de aprendizaje automático tenga éxito. Las LLM de vanguardia como GPT-4 pueden etiquetar automáticamente los datos con alta precisión y con una fracción del costo y el tiempo en comparación con el etiquetado manual.
Autolabel es una biblioteca de Python para etiquetar, limpiar y enriquecer los conjuntos de datos de texto con cualquier modelo de lenguaje grande (LLM) de su elección.
Consulte nuestro informe técnico para obtener más información sobre el rendimiento de RefuellLM-V2 en nuestro punto de referencia. Puede replicar el punto de referencia usted mismo siguiendo los pasos a continuación
cd autolabel / benchmark
curl https : // autolabel - benchmarking . s3 . us - west - 2. amazonaws . com / data . zip - o data . zip
unzip data . zip
python benchmark . py - - model $ model - - base_dir benchmark - results
python results . py - - eval_dir benchmark - results
cat results . csv Puede comparar el modelo relevante reemplazando el modelo $ con el nombre del modelo necesario. Si se trata de un modelo API alojado como gpt-3.5-turbo , gpt-4-1106-preview , claude-3-opus-20240229 , gemini-1.5-pro-preview-0409 o algún otro modelo compatible con Autolabel, solo escriba el nombre del modelo. Si el modelo que se comparará es un modelo compatible con VLLM, pase la ruta local o la ruta de la cara de abrazo correspondiente al modelo. Esto ejecutará el punto de referencia junto con las mismas indicaciones para todos los modelos.
El results.csv contendrá una fila con cada modelo que se comparó como una fila. Mire benchmark/results.csv para un ejemplo.
Autolabel proporciona un proceso simple de 3 pasos para etiquetar datos:
Imaginemos que estamos construyendo un modelo ML para analizar el análisis de sentimientos de la revisión de películas. Tenemos un conjunto de datos de reseñas de películas que nos gustaría etiquetar primero. Para este caso, así es como se verá el conjunto de datos y las configuraciones de ejemplo:
{
"task_name" : "MovieSentimentReview" ,
"task_type" : "classification" ,
"model" : {
"provider" : "openai" ,
"name" : "gpt-3.5-turbo"
},
"dataset" : {
"label_column" : "label" ,
"delimiter" : ","
},
"prompt" : {
"task_guidelines" : "You are an expert at analyzing the sentiment of movie reviews. Your job is to classify the provided movie review into one of the following labels: {labels}" ,
"labels" : [
"positive" ,
"negative" ,
"neutral"
],
"few_shot_examples" : [
{
"example" : "I got a fairly uninspired stupid film about how human industry is bad for nature." ,
"label" : "negative"
},
{
"example" : "I loved this movie. I found it very heart warming to see Adam West, Burt Ward, Frank Gorshin, and Julie Newmar together again." ,
"label" : "positive"
},
{
"example" : "This movie will be played next week at the Chinese theater." ,
"label" : "neutral"
}
],
"example_template" : "Input: {example} n Output: {label}"
}
}Inicialice el agente de etiquetado y pase la configuración:
from autolabel import LabelingAgent , AutolabelDataset
agent = LabelingAgent ( config = 'config.json' )Vista previa de un mensaje de ejemplo que se enviará a la LLM:
ds = AutolabelDataset ( 'dataset.csv' , config = config )
agent . plan ( ds )Esto imprime:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100/100 0:00:00 0:00:00
┌──────────────────────────┬─────────┐
│ Total Estimated Cost │ $0.538 │
│ Number of Examples │ 200 │
│ Average cost per example │ 0.00269 │
└──────────────────────────┴─────────┘
─────────────────────────────────────────
Prompt Example:
You are an expert at analyzing the sentiment of movie reviews. Your job is to classify the provided movie review into one of the following labels: [positive, negative, neutral]
Some examples with their output answers are provided below:
Example: I got a fairly uninspired stupid film about how human industry is bad for nature.
Output:
negative
Example: I loved this movie. I found it very heart warming to see Adam West, Burt Ward, Frank Gorshin, and Julie Newmar together again.
Output:
positive
Example: This movie will be played next week at the Chinese theater.
Output:
neutral
Now I want you to label the following example:
Input: A rare exception to the rule that great literature makes disappointing films.
Output:
─────────────────────────────────────────────────────────────────────────────────────────
Finalmente, podemos ejecutar el etiquetado en un subconjunto o total del conjunto de datos:
ds = agent . run ( ds )El marcado de datos de salida contiene la columna de etiqueta:
ds . df . head ()
text ... MovieSentimentReview_llm_label
0 I was very excited about seeing this film , ant ... ... negative
1 Serum is about a crazy doctor that finds a ser ... ... negative
4 I loved this movie . I knew it would be chocked ... ... positive
...El reabastecimiento de combustible proporciona acceso a LLM de código abierto alojados para el etiquetado, y para estimar la confianza, esto es útil, porque puede calibrar un umbral de confianza para su tarea de etiquetado, y luego enrutar etiquetas menos seguras a los humanos, mientras que aún obtiene los beneficios del marcado automático para los ejemplos confidentes.
Para utilizar LLM alojados de Reabastecimiento de combustible, puede solicitar acceso aquí.
Consulte nuestra hoja de ruta pública para obtener más información sobre mejoras en curso y planificadas en la Biblioteca Autolabel.
Siempre estamos buscando sugerencias y contribuciones de la comunidad. Únase a la discusión sobre Discord o abra un problema de GitHub para informar los errores y las funciones de solicitud.
Autolabel es un proyecto en rápido desarrollo. Agradecemos las contribuciones en todas las formas: informes de errores, solicitudes e ideas para mejorar la biblioteca.