
Ajustando um modelo de cara de abraço envolve a adaptação do modelo pré-treinado à tarefa específica em mãos, realizando treinamento adicional com um conjunto de dados menor. Essa técnica é benéfica, pois nos permite aproveitar o vasto conhecimento geral dos modelos pré-treinados e focar mais nas peculiaridades de nossa tarefa.
Processo de ajuste fino
A primeira etapa no ajuste fino de um modelo Hugging Face é escolher um modelo pré-treinado apropriado para a tarefa. Os modelos comumente usados incluem BERT, GPT-2 e RoBERTa. É essencial importar as bibliotecas necessárias, como o Hugging Face's Biblioteca de transformadores, PyTorch ou TensorFlow.
import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification
Após a importação, escolha um modelo pré-treinado e instancie o tokenizador e o modelo, certificando-se de especificar o ponto de verificação e o tipo de modelo corretos.
model_checkpoint = "distilbert-base-uncased-finetuned-sst-2-english" tokenizer = AutoTokenizer.from_pretrained(model_checkpoint) model = AutoModelForSequenceClassification.from_pretrained(model_checkpoint)
Em seguida, prepare seu conjunto de dados para ajuste fino. Isso pode incluir tokenização, preenchimento e criação em lote. Use o método `encode_plus` do tokenizador para tokenizar o texto de entrada e crie um DataLoader para lote de dados.
from torch.utils.data import DataLoader # Tokenize the dataset inputs = tokenizer(sentences, return_tensors="pt", padding=True, truncation=True) # Create a DataLoader dataloader = DataLoader(inputs, batch_size=16)
Agora que o conjunto de dados está pronto, você pode iniciar o processo de ajuste fino real. Definir um circuito de treinamento com um otimizador especificado, como AdamW, e um escalonador de taxa de aprendizado. Atualize iterativamente os pesos do modelo enquanto minimiza a função de perda.
from transformers import AdamW, get_linear_schedule_with_warmup
optimizer = AdamW(model.parameters(), lr=5e-5)
scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=100, num_training_steps=len(dataloader))
for batch in dataloader:
outputs = model(**batch)
loss = outputs.loss
loss.backward()
optimizer.step()
scheduler.step()
optimizer.zero_grad()
Após o ajuste fino, avalie o modelo em um conjunto de teste e salve-o para uso posterior, se necessário.
Bibliotecas e funções
Várias bibliotecas e funções importantes são essenciais no processo de ajuste fino:
- Biblioteca de transformadores: Desenvolvido pela Hugging Face, esta biblioteca oferece uma ampla gama de modelos pré-treinados e é crucial para o ajuste fino. Ele suporta as estruturas PyTorch e TensorFlow.
- PyTorch/TensorFlow: Essas estruturas populares de aprendizado profundo fornecem ferramentas essenciais para treinamento de modelo, como otimizadores e agendadores de taxa de aprendizado, necessários durante o ajuste fino.
- AdamW: Esta é a implementação PyTorch do popular otimizador Adam com uma redução de peso integrada. É amplamente utilizado para o ajuste fino de modelos de transformadores.
- get_linear_schedule_with_warmup: Esse agendador de taxa de aprendizado, fornecido pela biblioteca Transformers, aumenta suavemente a taxa de aprendizado no início do treinamento para evitar mudanças repentinas e diminui suavemente no final do treinamento para ajustar com mais eficiência.
Em conclusão, o ajuste fino dos modelos do Hugging Face Transformer é uma técnica essencial para alcançar alto desempenho em tarefas específicas de PNL. Compreendendo o processo, o código e as bibliotecas e funções envolvidas, você pode criar modelos personalizados que se destacam em vários aplicativos.