Berbagi teknologi

Log kesalahan yang aneh

2024-07-12

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

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

Tidak ada masalah dalam membaca model, tetapi hal berikut muncul selama inferensi:
RuntimeError: “triu_tril_cuda_template” tidak diterapkan untuk 'BFloat16'

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

Penyebab kejadian tersebut

Ketika saya mencoba memahami AutoProcessor transformator, saya diminta:
RuntimeError: Gagal mengimpor transformers.models.auto.processing_auto karena kesalahan berikut (cari untuk melihat jejak baliknya):
Terdeteksi bahwa PyTorch dan torchvision dikompilasi dengan versi CUDA yang berbeda. PyTorch memiliki Versi CUDA=11.8 dan torchvision memiliki Versi CUDA=11.7. Harap instal ulang torchvision yang sesuai dengan instalasi PyTorch Anda.
Apakah Anda mengatakan bahwa versi CUDA dari obor dan torchvision saya tidak kompatibel? Saya awalnya menginstalnya dengan Pytorch. . .

Versi obor saya adalah sebagai berikut:
obor 2.0.0+cu118
obor audio 2.0.1
visi obor 0.15.1

Aneh sekali, memang tidak ada kata cu118 setelah keduanya. Jadi saya pergi ke situs resmi pytorch dan mengunduhnya lagi:
pip memasang obor2.0.0 visi obor0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

Benar kali ini. Saya hanya mencopot pemasangan torchvision, jadi torchaudio tidak diperbarui.
obor 2.0.0+cu118
obor audio 2.0.1
torchvision 0.15.1+cu118

Pada titik ini kesalahan pertama terjadi.

————————

obat sementara

Yang saya baca adalah qwen1.5 7B, setel torch_dtype=torch.bfloat16. Setelah mengubah bfloat16 menjadi torch_dtype=torch.float16, Anda dapat bernalar. Atau kembalikan torchvision ke versi normal.
Namun torch.float16 dan torch.bfloat16 adalah dua hal yang sangat berbeda, jadi mengubahnya saja adalah salah. . .

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

obat terbaik

Dengan torch_dtype="auto", trafo akan otomatis menggunakan bfloat16.
Saya juga melakukan beberapa pengamatan, mencetak model.config dalam kondisi berbeda:

  1. Saya menggunakan Autoconfig untuk menggunakan file konfigurasi yang disertakan dengan qwen dan mengirimkannya ke AutoModelForCausalLM.from_pertrained. Ini menunjukkan bahwa bfloat16 digunakan, tetapi ruang float32 sebenarnya dikonsumsi.
  2. Setel torch_dtype=torch.float16, yang menggunakan 16 spasi dan menampilkan float16.
  3. Setel torch_dtype="auto", yang menggunakan 16 spasi dan menampilkan bfloat16.

Sayangnya, perbandingan yang luar biasa.