Pré-processar texto para treino

Treinamento Eficiente de Modelos de IA com PyTorch

Dennis Lee

Data Engineer, Amazon

Transformação de texto: preparando dados para dominar o modelo

  • Resumir textos em documentos
  • Identificação de paráfrase
  • Dataset MRPC: pares de sentenças com rótulos

Pilha alta de documentos para revisar.

Treinamento Eficiente de Modelos de IA com PyTorch

Estrutura do 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'],
    })
})
Treinamento Eficiente de Modelos de IA com PyTorch

Manipulando o dataset de texto

  • Dicionário aninhado com splits de treino/validação/teste
  • Exemplo de acesso ao split de treino:
dataset["train"]
  • Acessa features específicas do dataset dentro de um split
  • Features do MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Carrega tokenizer pré-treinado
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Treinamento Eficiente de Modelos de IA com PyTorch

Definir uma função de codificação

  • Define uma função para codificar exemplos do dataset
  • Chama o tokenizer; extrai sentence1 e sentence2 do exemplo de treino
  • truncation: corta entradas maiores que o máx. (512 tokens)
  • padding: preenche sequências curtas com zeros para ter mesmo tamanho
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Treinamento Eficiente de Modelos de IA com PyTorch

Formatar nomes de colunas

  • Aplica encode a cada exemplo do split de treino com map
train_dataset = dataset["train"].map(encode, batched=True)
  • Renomeia label para labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Consulta na documentação do Hugging Face os requisitos de colunas do modelo
Treinamento Eficiente de Modelos de IA com PyTorch

Salvar e carregar checkpoints

  • Coloca o dataset nas GPUs disponíveis
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Funciona com qualquer dataset do PyTorch (torch.utils.data.Dataset) em um DataLoader
  • Salva o estado do texto pré-processado (checkpoint)
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Carrega o checkpoint para retomar o treino
accelerator.load_state(checkpoint_dir)
Treinamento Eficiente de Modelos de IA com PyTorch

Vamos praticar!

Treinamento Eficiente de Modelos de IA com PyTorch

Preparing Video For Download...