Menu iconMenu icon
NLP con Transformadores: Técnicas Avanzadas y Aplicaciones Multimodales

Proyecto 3: API de Análisis de Sentimientos con Transformador Ajustado

Paso 3: Ajuste Fino del Modelo

Realizar el ajuste fino de un modelo transformer preentrenado para el análisis de sentimientos. Este paso crucial implica tomar un modelo preentrenado que ya comprende patrones del lenguaje y entrenarlo adicionalmente en nuestra tarea específica de análisis de sentimientos. El ajuste fino permite que el modelo aprenda los matices de la expresión de sentimientos en reseñas de películas mientras mantiene su comprensión fundamental del lenguaje.

El proceso implica ajustar los parámetros del modelo mediante aprendizaje supervisado con ejemplos etiquetados, donde cada reseña está emparejada con su etiqueta de sentimiento correspondiente. Este enfoque es más eficiente que entrenar un modelo desde cero, ya que aprovecha el conocimiento existente del modelo mientras lo adapta a nuestro caso de uso específico.

from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer
from sklearn.metrics import accuracy_score, precision_recall_fscore_support

# Load the model
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# Define training arguments
training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    learning_rate=2e-5,
    per_device_train_batch_size=16,
    num_train_epochs=3,
    weight_decay=0.01,
    save_steps=500,
    logging_dir="./logs",
    logging_steps=100,
)

# Define a compute_metrics function
def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = logits.argmax(axis=-1)
    precision, recall, f1, _ = precision_recall_fscore_support(labels, predictions, average="binary")
    acc = accuracy_score(labels, predictions)
    return {"accuracy": acc, "f1": f1, "precision": precision, "recall": recall}

# Initialize the trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_datasets["train"],
    eval_dataset=tokenized_datasets["test"],
    tokenizer=tokenizer,
    compute_metrics=compute_metrics,
)

# Train the model
trainer.train()

Este código implementa el proceso de ajuste fino del modelo para el análisis de sentimientos. Analicemos sus componentes principales:

1. Configuración del Modelo

  • El código carga un modelo preentrenado (AutoModelForSequenceClassification) con 2 etiquetas de salida para clasificación binaria (positivo/negativo)

2. Configuración del Entrenamiento

Los TrainingArguments establecen los parámetros de entrenamiento:

  • Tasa de aprendizaje de 2e-5
  • Tamaño de lote de 16 muestras por dispositivo
  • 3 épocas de entrenamiento
  • Decaimiento de pesos de 0.01 para regularización
  • Evaluación realizada después de cada época

3. Cálculo de Métricas

La función compute_metrics calcula métricas de rendimiento importantes:

  • Precisión: Predicciones correctas totales
  • Precisión: Exactitud de las predicciones positivas
  • Exhaustividad: Capacidad para encontrar todos los casos positivos
  • Puntuación F1: Medida equilibrada de precisión y exhaustividad

4. Configuración del Entrenamiento

La clase Trainer combina todos los componentes:

  • El modelo en sí
  • Argumentos de entrenamiento
  • Conjuntos de datos de entrenamiento y prueba
  • Tokenizador para procesar texto
  • Cálculo de métricas

Este enfoque es particularmente eficiente ya que aprovecha la comprensión existente del lenguaje del modelo mientras lo adapta específicamente para el análisis de sentimientos

Paso 3: Ajuste Fino del Modelo

Realizar el ajuste fino de un modelo transformer preentrenado para el análisis de sentimientos. Este paso crucial implica tomar un modelo preentrenado que ya comprende patrones del lenguaje y entrenarlo adicionalmente en nuestra tarea específica de análisis de sentimientos. El ajuste fino permite que el modelo aprenda los matices de la expresión de sentimientos en reseñas de películas mientras mantiene su comprensión fundamental del lenguaje.

El proceso implica ajustar los parámetros del modelo mediante aprendizaje supervisado con ejemplos etiquetados, donde cada reseña está emparejada con su etiqueta de sentimiento correspondiente. Este enfoque es más eficiente que entrenar un modelo desde cero, ya que aprovecha el conocimiento existente del modelo mientras lo adapta a nuestro caso de uso específico.

from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer
from sklearn.metrics import accuracy_score, precision_recall_fscore_support

# Load the model
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# Define training arguments
training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    learning_rate=2e-5,
    per_device_train_batch_size=16,
    num_train_epochs=3,
    weight_decay=0.01,
    save_steps=500,
    logging_dir="./logs",
    logging_steps=100,
)

# Define a compute_metrics function
def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = logits.argmax(axis=-1)
    precision, recall, f1, _ = precision_recall_fscore_support(labels, predictions, average="binary")
    acc = accuracy_score(labels, predictions)
    return {"accuracy": acc, "f1": f1, "precision": precision, "recall": recall}

# Initialize the trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_datasets["train"],
    eval_dataset=tokenized_datasets["test"],
    tokenizer=tokenizer,
    compute_metrics=compute_metrics,
)

# Train the model
trainer.train()

Este código implementa el proceso de ajuste fino del modelo para el análisis de sentimientos. Analicemos sus componentes principales:

1. Configuración del Modelo

  • El código carga un modelo preentrenado (AutoModelForSequenceClassification) con 2 etiquetas de salida para clasificación binaria (positivo/negativo)

2. Configuración del Entrenamiento

Los TrainingArguments establecen los parámetros de entrenamiento:

  • Tasa de aprendizaje de 2e-5
  • Tamaño de lote de 16 muestras por dispositivo
  • 3 épocas de entrenamiento
  • Decaimiento de pesos de 0.01 para regularización
  • Evaluación realizada después de cada época

3. Cálculo de Métricas

La función compute_metrics calcula métricas de rendimiento importantes:

  • Precisión: Predicciones correctas totales
  • Precisión: Exactitud de las predicciones positivas
  • Exhaustividad: Capacidad para encontrar todos los casos positivos
  • Puntuación F1: Medida equilibrada de precisión y exhaustividad

4. Configuración del Entrenamiento

La clase Trainer combina todos los componentes:

  • El modelo en sí
  • Argumentos de entrenamiento
  • Conjuntos de datos de entrenamiento y prueba
  • Tokenizador para procesar texto
  • Cálculo de métricas

Este enfoque es particularmente eficiente ya que aprovecha la comprensión existente del lenguaje del modelo mientras lo adapta específicamente para el análisis de sentimientos

Paso 3: Ajuste Fino del Modelo

Realizar el ajuste fino de un modelo transformer preentrenado para el análisis de sentimientos. Este paso crucial implica tomar un modelo preentrenado que ya comprende patrones del lenguaje y entrenarlo adicionalmente en nuestra tarea específica de análisis de sentimientos. El ajuste fino permite que el modelo aprenda los matices de la expresión de sentimientos en reseñas de películas mientras mantiene su comprensión fundamental del lenguaje.

El proceso implica ajustar los parámetros del modelo mediante aprendizaje supervisado con ejemplos etiquetados, donde cada reseña está emparejada con su etiqueta de sentimiento correspondiente. Este enfoque es más eficiente que entrenar un modelo desde cero, ya que aprovecha el conocimiento existente del modelo mientras lo adapta a nuestro caso de uso específico.

from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer
from sklearn.metrics import accuracy_score, precision_recall_fscore_support

# Load the model
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# Define training arguments
training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    learning_rate=2e-5,
    per_device_train_batch_size=16,
    num_train_epochs=3,
    weight_decay=0.01,
    save_steps=500,
    logging_dir="./logs",
    logging_steps=100,
)

# Define a compute_metrics function
def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = logits.argmax(axis=-1)
    precision, recall, f1, _ = precision_recall_fscore_support(labels, predictions, average="binary")
    acc = accuracy_score(labels, predictions)
    return {"accuracy": acc, "f1": f1, "precision": precision, "recall": recall}

# Initialize the trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_datasets["train"],
    eval_dataset=tokenized_datasets["test"],
    tokenizer=tokenizer,
    compute_metrics=compute_metrics,
)

# Train the model
trainer.train()

Este código implementa el proceso de ajuste fino del modelo para el análisis de sentimientos. Analicemos sus componentes principales:

1. Configuración del Modelo

  • El código carga un modelo preentrenado (AutoModelForSequenceClassification) con 2 etiquetas de salida para clasificación binaria (positivo/negativo)

2. Configuración del Entrenamiento

Los TrainingArguments establecen los parámetros de entrenamiento:

  • Tasa de aprendizaje de 2e-5
  • Tamaño de lote de 16 muestras por dispositivo
  • 3 épocas de entrenamiento
  • Decaimiento de pesos de 0.01 para regularización
  • Evaluación realizada después de cada época

3. Cálculo de Métricas

La función compute_metrics calcula métricas de rendimiento importantes:

  • Precisión: Predicciones correctas totales
  • Precisión: Exactitud de las predicciones positivas
  • Exhaustividad: Capacidad para encontrar todos los casos positivos
  • Puntuación F1: Medida equilibrada de precisión y exhaustividad

4. Configuración del Entrenamiento

La clase Trainer combina todos los componentes:

  • El modelo en sí
  • Argumentos de entrenamiento
  • Conjuntos de datos de entrenamiento y prueba
  • Tokenizador para procesar texto
  • Cálculo de métricas

Este enfoque es particularmente eficiente ya que aprovecha la comprensión existente del lenguaje del modelo mientras lo adapta específicamente para el análisis de sentimientos

Paso 3: Ajuste Fino del Modelo

Realizar el ajuste fino de un modelo transformer preentrenado para el análisis de sentimientos. Este paso crucial implica tomar un modelo preentrenado que ya comprende patrones del lenguaje y entrenarlo adicionalmente en nuestra tarea específica de análisis de sentimientos. El ajuste fino permite que el modelo aprenda los matices de la expresión de sentimientos en reseñas de películas mientras mantiene su comprensión fundamental del lenguaje.

El proceso implica ajustar los parámetros del modelo mediante aprendizaje supervisado con ejemplos etiquetados, donde cada reseña está emparejada con su etiqueta de sentimiento correspondiente. Este enfoque es más eficiente que entrenar un modelo desde cero, ya que aprovecha el conocimiento existente del modelo mientras lo adapta a nuestro caso de uso específico.

from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer
from sklearn.metrics import accuracy_score, precision_recall_fscore_support

# Load the model
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)

# Define training arguments
training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    learning_rate=2e-5,
    per_device_train_batch_size=16,
    num_train_epochs=3,
    weight_decay=0.01,
    save_steps=500,
    logging_dir="./logs",
    logging_steps=100,
)

# Define a compute_metrics function
def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = logits.argmax(axis=-1)
    precision, recall, f1, _ = precision_recall_fscore_support(labels, predictions, average="binary")
    acc = accuracy_score(labels, predictions)
    return {"accuracy": acc, "f1": f1, "precision": precision, "recall": recall}

# Initialize the trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_datasets["train"],
    eval_dataset=tokenized_datasets["test"],
    tokenizer=tokenizer,
    compute_metrics=compute_metrics,
)

# Train the model
trainer.train()

Este código implementa el proceso de ajuste fino del modelo para el análisis de sentimientos. Analicemos sus componentes principales:

1. Configuración del Modelo

  • El código carga un modelo preentrenado (AutoModelForSequenceClassification) con 2 etiquetas de salida para clasificación binaria (positivo/negativo)

2. Configuración del Entrenamiento

Los TrainingArguments establecen los parámetros de entrenamiento:

  • Tasa de aprendizaje de 2e-5
  • Tamaño de lote de 16 muestras por dispositivo
  • 3 épocas de entrenamiento
  • Decaimiento de pesos de 0.01 para regularización
  • Evaluación realizada después de cada época

3. Cálculo de Métricas

La función compute_metrics calcula métricas de rendimiento importantes:

  • Precisión: Predicciones correctas totales
  • Precisión: Exactitud de las predicciones positivas
  • Exhaustividad: Capacidad para encontrar todos los casos positivos
  • Puntuación F1: Medida equilibrada de precisión y exhaustividad

4. Configuración del Entrenamiento

La clase Trainer combina todos los componentes:

  • El modelo en sí
  • Argumentos de entrenamiento
  • Conjuntos de datos de entrenamiento y prueba
  • Tokenizador para procesar texto
  • Cálculo de métricas

Este enfoque es particularmente eficiente ya que aprovecha la comprensión existente del lenguaje del modelo mientras lo adapta específicamente para el análisis de sentimientos