Athrun Data Intelligence


Analizar la opinión de los clientes y los temas esencia a partir de datos textuales siempre ha sido una tarea que requiere mucho tiempo y requiere resumen de datos, etiquetado manual y ajuste de modelos especializados. Pero, ¿qué pasaría si pudiera evitarse la molestia de entrenar un maniquí y aun así ganar resultados precisos? Ingrese a la clasificación de texto de disparo cero, un enfoque progresista impulsado por Modelos de jerga grandes (LLM). En este artículo, exploraremos cómo la clasificación de tiro cero simplifica el disección de sentimientos utilizando la biblioteca SKLLM (una combinación de scikit-learn y LLM). En este tutorial, verá cómo utilizar el Biblioteca SKLLM (scikit-learn + LLM) para clasificar el conjunto de datos de Reseñas de ropa de comercio electrónico para mujeres de Kaggle.

Objetivos de educación

  • Comprender el proceso tradicional de disección de sentimientos y sus desafíos.
  • Conozca el concepto y las ventajas de la clasificación de texto cero con LLM.
  • Explore la biblioteca SKLLM y su integración con aprendizaje-scikit.
  • Clasifique sentimientos en el conjunto de datos de Reseñas de ropa de comercio electrónico para mujeres sin capacitación personalizada.
  • Obtenga experiencia actos con la clasificación de disparo cero para casos de uso prácticos.

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

¿Qué es la clasificación de texto Zero-Shot?

Los minoristas en rasgo suelen cobrar grandes volúmenes de reseñas de texto de los clientes, lo que dificulta el disección rápido de las opiniones o los temas esencia. Tradicionalmente, las empresas:

  • Recopile y limpie los datos de revisión.
  • Etiquete manualmente miles de muestras (p. ej., “positivas”, “negativas”, “neutrales”).
  • Ajuste un maniquí de clasificación dedicado a estos datos etiquetados.

Si perfectamente es efectivo, el ajuste requiere tiempo, experiencia y bienes computacionales considerables. Ingrese a la clasificación de texto inmediata: use modelos de jerga excelso (LLM) directamente para clasificar texto con el minúsculo esfuerzo. Simplemente puede proporcionar un conjunto de etiquetas descriptivas (por ejemplo, “positivo”, “placa”, “indefinido”) y dejar que el maniquí infiera la clase correcta, ¡no se requiere capacitación personalizada!

¿Por qué Zero-Shot es tan valioso?

A continuación analizaremos los puntos para comprender por qué el disparo cero es tan valioso:

  • No se requieren ajustes finos: Ajuste de los LLM como GPT-4o puede resultar costoso. No necesita sobrevenir horas (o incluso días) entrenando un clasificador de opiniones en su conjunto de datos. En su ocupación, aprovecha los LLM previamente capacitados como GPT-4o, lo que le brinda un clasificador de ingreso calidad de inmediato.
  • Dócil amoldamiento a nuevas etiquetas: Si su conjunto de etiquetas cambia (por ejemplo, de «positivo, placa, indefinido» a sentimientos más específicos como «oportuno, frustrado, excéntrico, amargo»), simplemente actualice su serie de etiquetas. No es necesario retornar a entrenar un maniquí.
  • Menos requisitos de datos: En el educación supervisado representativo, necesita datos etiquetados para cada clase. La clasificación de tiro cero solo requiere que describas tus clases (etiquetas) en jerga natural. Esto es particularmente útil si tiene datos limitados o sin etiquetar.
  • Velocidad de implementación: Al callar los pasos de anotación de datos y entrenamiento del maniquí, puede implementar su decisión de clasificación mucho más rápido.

Descripción normal del conjunto de datos

Usaremos el conjunto de datos de Reseñas de ropa de comercio electrónico para mujeres de Kaggle.

Haga clic aquí para aceptar al conjunto de datos.

Puntos esencia sobre el conjunto de datos:

  • Contiene miles de reseñas de clientes sobre prendas de vestir para mujeres.
  • El texto principal está en la columna «Revisar texto».
  • Otros metadatos como «Título», «Clasificación», «IND recomendado» y más están disponibles, pero no siempre son necesarios para la clasificación cero.

Asesor paso a paso

A continuación, aprenderemos cómo optimizar el disección de sentimientos y la detección de temas con clasificación de texto cero utilizando Modelos de jerga grandes (LLM). En este tutorial, lo guiaremos para rendir la biblioteca SKLLM para clasificar datos del mundo efectivo sin esfuerzo, ¡sin escazes de capacitación personalizada!

Paso 1: instalación y configuración

Asegúrese de tener Python 3.7+ e instalar SKLLM:

pip install scikit-llm

Por otra parte, asegúrese de tener una esencia API válida para un proveedor de LLM (p. ej., API de OpenAI). Configúrelo en su entorno:

from skllm.config import SKLLMConfig

# Replace with your coetáneo OpenAI API key
SKLLMConfig.set_openai_key("your_openai_api_key")

(Incluso puede almacenarlo en un archivo .env o manejarlo interiormente de su código, pero las variables de entorno suelen ser más limpias).

Paso 2: importar bibliotecas y cargar el conjunto de datos

import pandas as pd
from skllm.models.gpt.classification.zero_shot import ZeroShotGPTClassifier

# Load dataset
df = pd.read_csv("Womens Clothing E-Commerce Reviews.csv")

# Inspect the first few rows
print(df.head())

Nos centraremos en el “Texto de revisión» columna. Es posible que a algunas filas les falten títulos para las revisiones, así que eliminemos los NaN:

# Filter out rows without review text
df = df.dropna(subset=("Review Text")).reset_index(drop=True)

# Extract the review texts into X
X = df("Review Text").tolist()

Paso 3: Defina sus etiquetas

Haremos una clasificación de sentimientos: (“positivo”, “placa”, “indefinido”).

¿Por qué estos tres? Son etiquetas de sentimiento comunes. Sin incautación, eres evadido de cambiarlos o ampliarlos: por ejemplo, (“positivo”, “placa”, “indefinido”, “fósforo”).

Paso 4: Clasificación de disparo cero

Instanciar el Clasificador ZeroShotGPT. Elegiremos gpt-4o como maniquí, pero puedes escoger un maniquí diferente si lo deseas.

# Create a zero-shot classifier
clf = ZeroShotGPTClassifier(model="gpt-4o")

# Fit the classifier - here we pass `None` for X because we don't need training data
clf.fit(None, ("positive", "negative", "indefinido"))

Por qué encajar(Ningún, etiquetas)? En un atmósfera puro de tiro cero, no se produce ningún entrenamiento efectivo. La señal a fit() le dice efectivamente al clasificador qué etiquetas son posibles. Luego, el maniquí puede nominar entre ellos para cada revisión.

Paso 5: clasificar las reseñas

# Predict labels for the entire dataset
predictions = clf.predict(X)

# Let’s see the first few results
for review_text, sentiment in zip(X(:5), predictions(:5)):
    print(f"Review: {review_text}")
    print(f"Predicted Sentiment: {sentiment}")
    print("-" * 50)

Este tirabuzón imprimirá cada reseña inmediato con el sentimiento previsto por el clasificador de tiro cero.

Discusión de resultados

Con un enfoque de ML tradicional, necesitaría:

  • Etiquetado: Un gran subconjunto de estas reseñas se etiquetan como positivas, negativas y neutrales.
  • Entrenamiento maniquí: Ajustar o entrenar un clasificador desde cero (por ejemplo, un SVM, un maniquí basado en BERT).
  • Garra del maniquí: Demostración manual del rendimiento en un conjunto de nervio.
  • Actualizaciones continuas: Si surgen nuevos sentimientos o categorías, necesitará más datos etiquetados y capacitación adicional.

Zero-shot elimina la longevo parte de esa sobrecarga:

  • Inicio Inmediato: Solo proporciona una serie de etiquetas y un mensaje perfectamente esmerado detrás de panorama.
  • No se requieren datos etiquetados: El LLM ha aprendido suficiente semántica sobre el jerga para inferir el significado a partir de etiquetas descriptivas.
  • Dócil de refinar: ¿Necesita nuevas categorías como “tenuemente positiva” o “ambivalente”? Simplemente agréguelos a la serie de etiquetas candidatas.

Posibles limitaciones a tener en cuenta

  • Variación de precisión: La calidad de la clasificación de tiro cero puede variar. Para un disección de sentimiento simple, a menudo funciona sorprendentemente perfectamente. Para dominios técnicos o enormemente especializados, el maniquí puede malinterpretar cierto texto o argot del dominio.
  • Costo: Usar un maniquí excelso como GPT-4o implica costos de API si lumbre a un servicio foráneo.
  • Privacidad de datos: Debe comprobar de que se permita el remisión de datos a una API (especialmente si el texto es confidencial).

Clasificación de texto de pocas tomas

La clasificación de texto en pocas tomas es una tarea de clasificar un texto en una de las clases predefinidas en función de algunos ejemplos de cada clase. Por ejemplo, dados algunos ejemplos de las clases positivo, placa y indefinido, el maniquí debería poder clasificar texto nuevo en una de estas categorías.

Nota: Los estimadores proporcionados por Scikit-LLM no seleccionan automáticamente un subconjunto de datos de entrenamiento; utilizan todo el conjunto de entrenamiento para construir ejemplos de pocas tomas. Si su conjunto de entrenamiento es excelso, considere dividirlo en conjuntos de entrenamiento y nervio manteniendo el conjunto de entrenamiento pequeño (idealmente no más de 10 ejemplos por clase). Por otra parte, asegúrese de permutar el orden de estas muestras para evitar cualquier sesgo de ahora en la atención del LLM.

from skllm.models.gpt.classification.few_shot import (
    FewShotGPTClassifier,
    MultiLabelFewShotGPTClassifier,
)
from skllm.datasets import (
    get_classification_dataset,
    get_multilabel_classification_dataset,
)

# Single-label classification
X, y = get_classification_dataset()
clf = FewShotGPTClassifier(model="gpt-4o")
clf.fit(X, y)
labels = clf.predict(X)

# Multi-label classification
X, y = get_multilabel_classification_dataset()
clf = MultiLabelFewShotGPTClassifier(max_labels=2, model="gpt-4o")
clf.fit(X, y)
labels = clf.predict(X)

Clasificación de textos en prisión de pensamiento

La clasificación de texto en prisión de pensamiento es similar a la clasificación de tiro cero en el sentido de que no requiere datos etiquetados de antemano. La principal diferencia es que el maniquí genera pasos de razonamiento intermedios inmediato con la marbete. Esta «prisión de pensamiento» adicional puede mejorar el rendimiento pero aumenta el uso de tokens (y, por lo tanto, el costo potencial).

from skllm.models.gpt.classification.zero_shot import CoTGPTClassifier
from skllm.datasets import get_classification_dataset

# Demo sentiment analysis dataset
# Labels: positive, negative, indefinido
X, y = get_classification_dataset()

clf = CoTGPTClassifier(model="gpt-4o")
clf.fit(X, y)
predictions = clf.predict(X)

# Each prediction has (label, reasoning)
labels, reasoning = predictions(:, 0), predictions(:, 1)

Al probar un enfoque de pocos intentos o un enfoque de prisión de pensamiento, es posible que observe una progreso con respecto a los resultados de clasificación de cero intentos de relato.

Conclusión

La biblioteca de Scikit-LLM es una alternativa rápida, flexible y sencilla para crear un canal de disección de sentimientos personalizado. Sin la escazes de etiquetar datos o ajustar un maniquí, puede clasificar inmediatamente los comentarios de los clientes en categorías descriptivas.

En el caso del conjunto de datos de Reseñas de ropa de comercio electrónico para mujeres, puede desbloquear rápidamente información (como la opinión del cliente) sin la sobrecarga habitual de preparación del conjunto de datos, etiquetado y reentrenamiento del maniquí. Esta superioridad es especialmente poderosa si necesita iterar o expandir sus etiquetas de clasificación con el tiempo.

A medida que el ecosistema de IA evolucione, las técnicas de disparo cero y de pocos disparos seguirán ganando importancia. Permiten la creación rápida de prototipos y aceleran los flujos de trabajo empresariales al rendir el conocimiento masivo ya integrado en grandes modelos de jerga.

Conclusiones esencia

  • La clasificación de tiro cero simplifica el disección de sentimientos sin la escazes de etiquetado manual o entrenamiento de modelos.
  • La biblioteca SKLLM integra scikit-learn con LLM para una clasificación de texto valioso.
  • SCIKIT-LLM permite una clasificación de texto valioso Zero-Shot y Few-Shot, eliminando la escazes de etiquetado manual y entrenamiento de modelos.
  • Los modelos de jerga grandes (LLM) como GPT-4 permiten resultados de clasificación inmediatos y de ingreso calidad.
  • Con SCIKIT-LLM, puede implementar rápidamente soluciones de clasificación de texto utilizando modelos de jerga excelso previamente entrenados, ahorrando tiempo y bienes.
  • El conjunto de datos de Reseñas de ropa de comercio electrónico para mujeres proporciona un ejemplo práctico de clasificación de tiro cero en actividad.
  • La clasificación de texto de disparo cero es rápida, adaptable y requiere datos mínimos, lo que la hace ideal para una implementación rápida.

Preguntas frecuentes

P1. ¿Cómo decido entre los métodos de clasificación de cero disparos, de pocos disparos y de prisión de pensamiento?

R. Zero-shot es excelente para pruebas de concepto rápidas o cuando los datos etiquetados son escasos. Few-shot progreso la precisión al utilizar un pequeño conjunto de ejemplos por clase, lo que requiere un conjunto de datos etiquetados minúsculo. La prisión de pensamiento progreso aún más el rendimiento al rendir el razonamiento intermedio, pero aumenta el uso de tokens y los costos.

P2. ¿Cuántos ejemplos debo incluir para una configuración de algunas tomas?

R. Generalmente se recomienda incluir hasta 10 ejemplos por clase. Más allá de eso, el mensaje puede volverse demasiado dispendioso o costoso de procesar, y las mejoras en el rendimiento pueden estabilizarse. Por otra parte, recuerde mezclar (permutar) los ejemplos para evitar el sesgo de ahora del maniquí.

P3. ¿Adicionar razonamiento en prisión de pensamiento mejorará automáticamente la precisión?

R. No siempre. Si perfectamente la prisión de pensamiento puede proporcionar al maniquí una ruta de razonamiento estructurada, su competencia depende de la complejidad de la tarea y de la claridad de las indicaciones. Puede conducir a mejores explicaciones y decisiones en muchos casos, pero incluso consume más tokens y aumenta el costo de la API.

P4. ¿Es costoso ejecutar estas clasificaciones a escalera?

R. El costo depende del uso del token, que varía según la dilema del maniquí, la duración del mensaje y el tamaño del conjunto de datos. Las indicaciones de disparo cero y de pocos disparos pueden ser relativamente breves, especialmente si mantiene al minúsculo los ejemplos por clase. Los métodos de prisión de pensamiento aumentan la distancia de las indicaciones porque el maniquí necesita crear explicaciones encima de etiquetas.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

¡Hola! Soy Adarsh, un licenciado de Business Analytics de ISB, actualmente inmerso en la investigación y la exploración de nuevas fronteras. Me apasiona la ciencia de datos, la inteligencia fabricado y todas las formas innovadoras en que pueden modificar las industrias. Ya sea creando modelos, trabajando en canales de datos o sumergiéndome en el educación involuntario, me encanta observar con la última tecnología. La IA no es solo mi interés, es cerca de donde veo que se dirige el futuro, ¡y siempre estoy emocionado de ser parte de ese alucinación!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *