Registro de pit de passo de ajuste fino de vários cartões ChatGLM

O sujeito recentemente tentou usar o LoRA para ajustar o ChatGLM em seus próprios dados. Embora existam muitos códigos relacionados ao LoRA no GitHub, o sujeito ainda encontrou muitos problemas durante o processo de implementação. Agora vamos resolver os problemas encontrados para sua referência O código relacionado também será organizado no GitHub.

1. Erro: esperava que todos os tensores estivessem no mesmo dispositivo, mas encontrou pelo menos dois dispositivos, cuda:1 e cuda:0!

Este problema será encontrado ao usar o treinamento multicartão de velocidade profunda. O motivo é que, devido a uma atualização do ChatGLM, os parâmetros do modelo antigo baixado offline e a nova versão carregada pelo AutoModel entrarão em conflito.

Você pode usar o arquivo config.json no modelo para identificar se o ChatGLM baixado para o local é uma versão antiga ou uma nova versão.

O vocab_size da versão antiga do ChatGLM é 150528:

{
  "_name_or_path": "THUDM/chatglm-6b",
  "architectures": [
    "ChatGLMModel"
  ],
  "auto_map": {
    "AutoConfig": "configuration_chatglm.ChatGLMConfig",
    "AutoModel": "modeling_chatglm.ChatGLMForConditionalGeneration",
    "AutoModelForSeq2SeqLM": "modeling_chatglm.ChatGLMForConditionalGeneration"
  },
  "bos_token_id": 150004,
  "eos_token_id": 150005,
  "pad_token_id": 20003,
  "hidden_size": 4096,
  &

Acho que você gosta

Origin blog.csdn.net/u013250861/article/details/131262206
Recomendado
Clasificación