Partage de technologie

Journal d'erreurs étrange

2024-07-12

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

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

Il n'y a aucun problème à lire le modèle, mais ce qui suit apparaît lors de l'inférence :
RuntimeError : « triu_tril_cuda_template » n'est pas implémenté pour « BFloat16 »

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

Cause de l'incident

Lorsque j'essaie de comprendre l'autoprocesseur des transformateurs, cela me demande :
RuntimeError : échec de l'importation de transformers.models.auto.processing_auto en raison de l'erreur suivante (recherchez sa trace) :
Nous avons détecté que PyTorch et torchvision ont été compilés avec des versions CUDA différentes. PyTorch a la version CUDA = 11.8 et torchvision a la version CUDA = 11.7. Veuillez réinstaller torchvision qui correspond à votre installation PyTorch.
Êtes-vous en train de dire que les versions CUDA de ma torche et de ma torchevision ne sont pas compatibles ? Je l'ai initialement installé avec Pytorch. . .

Ma version torche est la suivante :
torche 2.0.0+cu118
torchaudio 2.0.1
vision de la torche 0.15.1

Très étrange, il n'y a effectivement aucun mot cu118 après les deux. Je suis donc allé sur le site officiel de pytorch et je l'ai téléchargé à nouveau :
installation de la torche pip2.0.0 vision de la torche0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

Juste cette fois. J'ai seulement désinstallé torchvision, donc torchaudio n'est pas mis à jour.
torche 2.0.0+cu118
torchaudio 2.0.1
torchevision 0.15.1+cu118

C'est à ce moment-là que la première erreur s'est produite.

————————

remède temporaire

Ce que je lis est qwen1.5 7B, définissez torch_dtype=torch.bfloat16. Après avoir changé bfloat16 en torch_dtype=torch.float16, vous pouvez raisonner. Ou remettez torchvision à la version normale.
Mais torch.float16 et torch.bfloat16 sont deux choses complètement différentes, donc les changer est une erreur. . .

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

meilleur remède

Avec torch_dtype="auto", les transformateurs utiliseront automatiquement bfloat16.
J'ai également fait quelques observations, en imprimant model.config dans différentes conditions :

  1. J'ai utilisé Autoconfig pour utiliser le fichier de configuration fourni avec qwen et l'envoyer à AutoModelForCausalLM.from_pertrained. Cela montre que bfloat16 est utilisé, mais que l'espace float32 est réellement consommé.
  2. Définissez torch_dtype=torch.float16, qui consomme 16 espaces et affiche float16.
  3. Définissez torch_dtype="auto", qui consomme 16 espaces et affiche bfloat16.

Hélas, quelle comparaison.