Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Reclamação] Há um erro na aula

Essa aula apresenta a instanciação da classe SFTTrainer como o processo de treinamento e não apresenta que, para realmente fazer o fine tunning do modelo é necessário chamar o método SFTTrainer.train() após instanciar a classe de treinador.

"Executando o código
Ao executar a célula com "Ctrl + Enter", o Colab executará todas as etapas do treinamento. Como estamos atualizando apenas alguns pesos e uma parte da base de dados, o treinamento será rápido (demorando menos de 1 minuto) mesmo com um modelo grande de 8 bilhões de parâmetros."

Em referência à célula:

trainer = SFTTrainer(
    model = modelo,
    tokenizer = tokenizador,
    train_dataset = dataset,
    dataset_text_field = 'texto',
    max_seq_length= 2048,
    dataset_num_proc = 2,
    packing = False,
    args = TrainingArguments(
        per_device_train_batch_size = 2,
        gradient_accumulation_steps = 4,
        warmup_steps = 5,
        learning_rate = 2e-5,
        max_steps = 60,
        fp16 = not is_bfloat16_supported(),
        bf16 = is_bfloat16_supported(),
        logging_steps = 1,
        optim = 'adamw_8bit',
        weight_decay = 0.01,
        lr_scheduler_type = 'linear',
        seed = 10,
        output_dir = 'outputs'
    )
)

No próprio notebook utilizado como FONTE, a célula seguinte chama o método correto:
celula

1 resposta

Olá, Tiago! Tudo bem?

Agradeço por trazer essa observação!

Você está correto em apontar que, para efetivamente realizar o fine-tuning do modelo, é necessário chamar o método train() após a instanciação do SFTTrainer. No trecho de código que você mencionou, apenas a configuração do treinador é feita, mas o treinamento em si não é iniciado até que trainer.train() seja executado.

Com certeza esses esclarecimentos irão ajudar a comunidade a prestar atenção no método train(), ainda mais que ele está mencionado no notebook citado.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!