Problemas com Repetições Indefinidas Após Fine Tuning do Modelo de Linguagem
Problemas com Repetições Indefinidas após Fine Tuning do Modelo de Linguagem
Olá,
Recentemente, venho enfrentando um desafio com meu modelo de linguagem que persiste em repetir respostas indefinidamente após o processo de fine tuning. Ao analisar a configuração do modelo, notei que o pad_token_id
está definido como 0, que é o mesmo valor atribuído ao <unk>
. Não tenho certeza se isso está afetando o desempenho.
Além disso, tentei incluir o eos_token
(</s>
) no prompt de treino, mas parece que o modelo não reconhece esse token como um sinal para cessar a geração de resposta. Verifiquei também o arquivo special_tokens_map.json
e observei que não contém o pad_token
. Igualmente, no tokenizer_config.json
, o parâmetro legacy
não está presente, não da pra saber se usar como false
ou true
.
Gostaria de solicitar conselhos sobre como realizar o fine tuning de forma eficaz, especialmente no que diz respeito ao uso correto do pad_token
. Também agradeceria orientações sobre como carregar o tokenizer apropriadamente para treino e elaborar prompts eficientes para evitar essas repetições indesejadas nas respostas.
Qualquer ajuda para resolver este problema seria extremamente valiosa. Obrigado.
Olá João,
Isso parece ser um bug to AutoTokenizer. Por favor tente usar use_fast=False?
tokenizer_sabia = AutoTokenizer.from_pretrained('maritaca-ai/sabia-7b', use_fast=False)
tokenizer_sabia.tokenize('hello</s>')
>>> ['▁hello', '</s>']
Parece que vai ser consertado nessa PR: https://github.com/huggingface/transformers/pull/26678
Enquanto isso, tem que usar o use_fast=False
Quanto ao pad_token para finetuning, basta atribuir tokenizer.pad_token_id=0 e deveria funcionar normalmente.
Fechando esta discussão, mas sinta-se a vontade para reabri-la caso tenha mais perguntas.