Preprocesa texto para el entrenamiento

Entrenamiento eficiente de modelos de IA con PyTorch

Dennis Lee

Data Engineer, Amazon

Transformación de texto: preparar datos para dominar el modelo

  • Resumir texto en documentos
  • Identificación de paráfrasis
  • Dataset MRPC: pares de oraciones con etiquetas

Gran pila de documentos por revisar.

Entrenamiento eficiente de modelos de IA con PyTorch

Estructura del dataset

from datasets import load_dataset
dataset = load_dataset("glue", "mrpc")
print(dataset)
DatasetDict({
    train: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
    validation: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
    test: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
})
Entrenamiento eficiente de modelos de IA con PyTorch

Manipular el dataset de texto

  • Diccionario anidado con splits de train/validation/test
  • Ejemplo para acceder al split de train:
dataset["train"]
  • Accede a features específicas del dataset dentro de un split
  • Features de MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Carga un tokenizer preentrenado
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Entrenamiento eficiente de modelos de IA con PyTorch

Definir una función de codificación

  • Define una función para codificar ejemplos del dataset
  • Llama al tokenizer; extrae sentence1 y sentence2 del ejemplo de train
  • truncation: trunca entradas si superan la longitud máx. (512 tokens)
  • padding: rellena secuencias cortas con ceros para igualar longitudes
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Entrenamiento eficiente de modelos de IA con PyTorch

Formatea nombres de columnas

  • Aplica encode a cada ejemplo del split de train con map
train_dataset = dataset["train"].map(encode, batched=True)
  • Renombra label a labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Consulta en la documentación de Hugging Face los requisitos de columnas del modelo
Entrenamiento eficiente de modelos de IA con PyTorch

Guardar y cargar checkpoints

  • Coloca el dataset en las GPU disponibles
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Funciona con cualquier dataset de PyTorch (torch.utils.data.Dataset) en un DataLoader
  • Guarda el estado del texto preprocesado (checkpoint)
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Carga el checkpoint para reanudar el entrenamiento
accelerator.load_state(checkpoint_dir)
Entrenamiento eficiente de modelos de IA con PyTorch

¡Vamos a practicar!

Entrenamiento eficiente de modelos de IA con PyTorch

Preparing Video For Download...