1
resposta

[Sugestão] Fix para o erro

Boa tarde pessoal, assim como outro colega, tive problemas ao seguir a aula e tentar executar o trainer.

Redigindo conforme na aula, é lançada uma RuntimeError exeception, dizendo "Unsloth: You must specify a formatting_func".

Para resolver isso, crie uma função conforme exemplo a seguir:

def formatting_func(dados):
  contextos = dados['contexto']
  perguntas = dados['pergunta']
  respostas = dados['resposta']
  textos = []

  for contexto,pergunta,resposta in zip(contextos,perguntas,respostas):
    texto = gerar_prompt_sql(contexto,pergunta,resposta) + EOS_TOKEN
    textos.append(texto)

  return textos

Execute a célula para criar a mesma. Em seguida, inclua o seguinte parâmetro no SFTTrainer:

trainer = SFTTrainer(
    model = modelo,
    tokenizer = tokenizador,
    train_dataset = dataset,
    dataset_text_field = 'texto', 
    max_seq_length = 2048, 
    dataset_num_proc = 2, 
    packing = False, 
    formatting_func = formatting_func, # INCLUIR A CHAMADA PARA A NOVA FUNÇÃO
    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'
    )
)

Por aqui deu certo. Espero que ajude!

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Adorte29!

Agradeço por compartilhar.

Gostei muito da sua contribuição, a explicação ficou clara e objetiva, e o código que você trouxe resolve bem o problema da falta da função formatting_func no treinamento do modelo. Isso com certeza vai ajudar outras pessoas que enfrentarem o mesmo erro.

Continue compartilhando essas soluções práticas, elas fortalecem o aprendizado coletivo.

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