Condivisione della tecnologia

Registro degli errori strano

2024-07-12

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

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

Non ci sono problemi nella lettura del modello, ma durante l'inferenza appare quanto segue:
RuntimeError: “triu_tril_cuda_template” non implementato per 'BFloat16'

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

Causa dell'incidente

Quando provo a capire l'AutoProcessor dei trasformatori, mi viene chiesto:
RuntimeError: Impossibile importare transformers.models.auto.processing_auto a causa del seguente errore (cercare il traceback):
Rilevato che PyTorch e torchvision sono stati compilati con diverse versioni CUDA. PyTorch ha CUDA Version=11.8 e torchvision ha CUDA Version=11.7. Reinstalla torchvision che corrisponde alla tua installazione PyTorch.
Stai dicendo che le versioni CUDA della mia torcia e torchvision non sono compatibili? Inizialmente l'ho installato con Pytorch. . .

La mia versione della torcia è la seguente:
torcia 2.0.0+cu118
torciaaudio 2.0.1
visione della torcia 0.15.1

Molto strano, in effetti non c'è nessuna parola cu118 dopo le due. Quindi sono andato sul sito ufficiale di Pytorch e l'ho scaricato di nuovo:
pip installa torciaVisione della torcia 2.0.00.15.1 torchaudio==2.0.1 --indice-url https://download.pytorch.org/whl/cu118

Proprio questa volta. Ho solo disinstallato torchvision, quindi torchaudio non è aggiornato.
torcia 2.0.0+cu118
torciaaudio 2.0.1
torcia visione 0.15.1+cu118

A questo punto si è verificato il primo errore.

————————

rimedio temporaneo

Quello che sto leggendo è qwen1.5 7B, set torch_dtype=torch.bfloat16. Dopo aver cambiato bfloat16 in torch_dtype=torch.float16, puoi ragionare. Oppure riporta Torchvision alla versione normale.
Ma torch.float16 e torch.bfloat16 sono due cose completamente diverse, quindi semplicemente cambiarli è sbagliato. . .

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

miglior rimedio

Con torch_dtype="auto", i trasformatori utilizzeranno automaticamente bfloat16.
Ho anche fatto alcune osservazioni, stampando model.config in diverse condizioni:

  1. Ho utilizzato Autoconfig per utilizzare il file di configurazione fornito con qwen e inviarlo a AutoModelForCausalLM.from_pertrained. Mostra che viene utilizzato bfloat16, ma lo spazio float32 viene effettivamente consumato.
  2. Imposta torch_dtype=torch.float16, che consuma 16 spazi e visualizza float16.
  3. Imposta torch_dtype="auto", che consuma 16 spazi e visualizza bfloat16.

Ahimè, che paragone.