Κοινή χρήση τεχνολογίας

Περίεργο αρχείο καταγραφής σφαλμάτων

2024-07-12

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

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

Δεν υπάρχει πρόβλημα με την ανάγνωση του μοντέλου, αλλά εμφανίζονται τα ακόλουθα κατά την εξαγωγή συμπερασμάτων:
Σφάλμα χρόνου εκτέλεσης: το "triu_tril_cuda_template" δεν υλοποιήθηκε για το "BFloat16"

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

Αιτία του συμβάντος

Όταν προσπαθώ να κατανοήσω τον Αυτόματο Επεξεργαστή των μετασχηματιστών, μου προτρέπει:
Σφάλμα χρόνου εκτέλεσης: Απέτυχε η εισαγωγή transformers.models.auto.processing_auto λόγω του ακόλουθου σφάλματος (αναζητήστε για να δείτε την ανίχνευση του):
Εντοπίστηκε ότι το PyTorch και το torchvision είχαν μεταγλωττιστεί με διαφορετικές εκδόσεις CUDA. Το PyTorch έχει Έκδοση CUDA=11.8 και το torchvision έχει Έκδοση CUDA=11.7. Εγκαταστήστε ξανά το torchvision που ταιριάζει με την εγκατάσταση του PyTorch.
Λέτε να μην είναι συμβατές οι εκδόσεις CUDA του φακού και του φακού μου; Το εγκατέστησα αρχικά με το Pytorch. . .

Η δική μου έκδοση πυρσού είναι η εξής:
φακός 2.0.0+cu118
torchaudio 2.0.1
λαμπαδηδρομία 0.15.1

Πολύ περίεργο, όντως δεν υπάρχει λέξη cu118 μετά τα δύο. Πήγα λοιπόν στον επίσημο ιστότοπο της pytorch και το κατέβασα ξανά:
φακός εγκατάστασης pip2.0.0 φακός0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

Ακριβώς αυτή τη φορά. Απεγκατέστησα μόνο το torchvision, οπότε το torchaudio δεν ενημερώνεται.
φακός 2.0.0+cu118
torchaudio 2.0.1
λαμπαδηδρομία 0.15.1+cu118

Σε αυτό το σημείο παρουσιάστηκε το πρώτο σφάλμα.

————————

προσωρινή θεραπεία

Αυτό που διαβάζω είναι qwen1.5 7B, set torch_dtype=torch.bfloat16. Αφού αλλάξετε το bfloat16 σε torch_dtype=torch.float16, μπορείτε να αιτιολογήσετε. Ή επαναφέρετε το torchvision στην κανονική έκδοση.
Αλλά το torch.float16 και το torch.bfloat16 είναι δύο εντελώς διαφορετικά πράγματα, επομένως η απλή αλλαγή τους είναι λάθος. . .

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

καλύτερη θεραπεία

Με torch_dtype="auto", οι μετασχηματιστές θα χρησιμοποιούν αυτόματα το bfloat16.
Έκανα επίσης κάποιες παρατηρήσεις, εκτυπώνοντας το model.config υπό διαφορετικές συνθήκες:

  1. Χρησιμοποίησα το Autoconfig για να χρησιμοποιήσω το αρχείο διαμόρφωσης που συνοδεύει το qwen και να το στείλω στο AutoModelForCausalLM.from_pertrained Δείχνει ότι το bfloat16 χρησιμοποιείται, αλλά ο χώρος float32 καταναλώνεται.
  2. Ορίστε torch_dtype=torch.float16, το οποίο καταναλώνει 16 κενά και εμφανίζει το float16.
  3. Ορίστε torch_dtype="auto", που καταναλώνει 16 κενά και εμφανίζει το bfloat16.

Αλίμονο, τι σύγκριση.