Teknologian jakaminen

Outo virheloki

2024-07-12

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

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

Mallin lukemisessa ei ole ongelmia, mutta päättelyn aikana näkyy seuraava:
RuntimeError: "triu_tril_cuda_template" ei ole otettu käyttöön BFloat16:ssa

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

Tapahtuman syy

Kun yritän ymmärtää muuntajien automaattista prosessoria, se kysyy minulta:
RuntimeError: Transformers.models.auto.processing_auto tuonti epäonnistui seuraavan virheen vuoksi (katso sen jäljitys):
Havaittiin, että PyTorch ja torchvision oli käännetty eri CUDA-versioilla. PyTorchin CUDA-versio = 11.8 ja torchvisionin CUDA-versio = 11.7. Asenna PyTorch-asennusta vastaava torchvision uudelleen.
Tarkoitatko, että taskulampun ja torchvisionin CUDA-versiot eivät ole yhteensopivia? Asensin sen alun perin Pytorchilla. . .

Minun taskulamppuversioni on seuraava:
taskulamppu 2.0.0+cu118
torchaudio 2.0.1
torchvision 0.15.1

Todella outoa, näiden kahden jälkeen ei todellakaan ole sanaa cu118. Joten menin pytorchin viralliselle verkkosivustolle ja latasin sen uudelleen:
pip asennus taskulamppu2.0.0 torchvision0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

Juuri tällä kertaa. Poistin vain torchvisionin, joten torchaudioa ei päivitetä.
taskulamppu 2.0.0+cu118
torchaudio 2.0.1
torchvision 0.15.1+cu118

Tässä vaiheessa tapahtui ensimmäinen virhe.

————————

väliaikainen parannuskeino

Luen qwen1.5 7B:tä, aseta torch_dtype=torch.bfloat16. Kun bfloat16 on muutettu muotoon torch_dtype=torch.float16, voit perustella. Tai palauta torchvision normaaliversioon.
Mutta torch.float16 ja torch.bfloat16 ovat kaksi täysin eri asiaa, joten niiden muuttaminen on väärin. . .

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

paras lääke

Kun torch_dtype="auto", muuntajat käyttävät automaattisesti bfloat16:ta.
Tein myös joitain havaintoja, tulostin model.config:n eri olosuhteissa:

  1. Käytin Autoconfigia qwenin mukana tulevaan konfigurointitiedostoon ja lähetin sen osoitteeseen AutoModelForCausalLM.from_pertrained. Se osoittaa, että bfloat16:ta käytetään, mutta float32-tilaa kuluu.
  2. Aseta torch_dtype=torch.float16, joka vie 16 välilyöntiä ja näyttää float16:n.
  3. Aseta torch_dtype="auto", joka vie 16 tilaa ja näyttää bfloat16.

Voi, mikä vertailu.