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