RuntimeError: esperado tipo escalar Half, mas encontrado Float
causa um
A versão do Peft não é compatível, tente usar uma versão diferente do Peft
Motivo dois
1. Descrição do problema
Ao usar a GPU V100
(32GB) para realizar o ajuste fino de lora no modelo ChatGLM, a mensagem de erro RuntimeError: esperado scalar type Half, mas encontrado Float apareceu durante o treinamento e a previsão, respectivamente, conforme mostrado na figura a seguir:
Após a prática pessoal, finalmente encontrei uma solução para o problema e finalmente resumi o processo de operação passo a passo da seguinte forma. Espero que possa ajudar os alunos que encontrarem o mesmo bug.
2. Soluções de treinamento
Depois de depurar e analisar o código-fonte, descobriu-se que o problema vem principalmente da biblioteca bitsandbytes. A solução mais simples é modificar load_in_8bit=False. O trecho de código modificado é o seguinte:
model = AutoModel.from_pretrained(
"/home//model/ChatGLM/chatglm-6b", load_in_8bit=False, trust_remote_code=True, device_map="auto"
)