Compartilhamento de tecnologia

Log de erros estranho

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

https://github.com/meta-llama/llama3/issues/80

Não há problema na leitura do modelo, mas o seguinte aparece durante a inferência:
RuntimeError: “triu_tril_cuda_template” não implementado para 'BFloat16'

————————————————

Causa do incidente

Quando tento entender o AutoProcessor dos transformadores, ele me pergunta:
RuntimeError: Falha ao importar transformers.models.auto.processing_auto devido ao seguinte erro (consulte para ver o traceback):
Detectado que PyTorch e torchvision foram compilados com versões CUDA diferentes. PyTorch tem CUDA Version=11.8 e torchvision tem CUDA Version=11.7. Reinstale o torchvision que corresponde à sua instalação PyTorch.
Você está dizendo que as versões CUDA da minha tocha e da torchvision não são compatíveis? Eu o instalei originalmente com Pytorch. . .

Minha versão da tocha é a seguinte:
tocha 2.0.0+cu118
tochaudio 2.0.1
visão de tocha 0.15.1

Muito estranho, na verdade não existe nenhuma palavra cu118 depois dos dois. Então fui ao site oficial do pytorch e baixei novamente:
pip instalar tocha2.0.0 visão de tocha0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

Certo desta vez. Eu apenas desinstalei o torchvision, então o torchaudio não é atualizado.
tocha 2.0.0+cu118
tochaudio 2.0.1
visão de tocha 0.15.1+cu118

Neste ponto ocorreu o primeiro erro.

————————

remédio temporário

O que estou lendo é qwen1.5 7B, defina torch_dtype=torch.bfloat16. Depois de alterar bfloat16 para torch_dtype=torch.float16, você pode raciocinar. Ou retorne o torchvision para a versão normal.
Mas torch.float16 e torch.bfloat16 são duas coisas completamente diferentes, então apenas alterá-las é errado. . .

——————————————

melhor remédio

Com torch_dtype="auto", os transformadores usarão automaticamente bfloat16.
Também fiz algumas observações, imprimindo model.config sob diferentes condições:

  1. Usei o Autoconfig para usar o arquivo de configuração que vem com o qwen e enviá-lo para AutoModelForCausalLM.from_pertrained. Ele mostra que bfloat16 é usado, mas o espaço float32 é realmente consumido.
  2. Defina torch_dtype=torch.float16, que consome 16 espaços e exibe float16.
  3. Defina torch_dtype="auto", que consome 16 espaços e exibe bfloat16.

Infelizmente, que comparação.