技術共有

奇妙なエラーログ

2024-07-12

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

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

モデルの読み取りには問題ありませんが、推論中に次のように表示されます。
ランタイムエラー: 「triu_tril_cuda_template」は 'BFloat16' には実装されていません

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

事件の原因

トランスフォーマーの AutoProcessor を理解しようとすると、次のプロンプトが表示されます。
RuntimeError: 次のエラーのため、transformers.models.auto.processing_auto のインポートに失敗しました (トレースバックを参照してください):
PyTorch と torchvision が異なる CUDA バージョンでコンパイルされていることが検出されました。PyTorch の CUDA バージョンは 11.8 で、torchvision の CUDA バージョンは 11.7 です。PyTorch インストールと一致する torchvision を再インストールしてください。
私の torch と torchvision の CUDA バージョンには互換性がないということですか?最初は Pytorch を使用してインストールしました。 。 。

私のトーチのバージョンは次のとおりです。
トーチ 2.0.0+cu118
トーチオーディオ 2.0.1
トーチビジョン 0.15.1

非常に奇妙なことに、確かにこの 2 つの後に cu118 という単語はありません。そこで、pytorch の公式 Web サイトにアクセスして、再度ダウンロードしました。
pip インストール トーチ2.0.0 トーチビジョン0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

まさに今回です。 torchvision をアンインストールしただけなので、torchaudio は更新されていません。
トーチ 2.0.0+cu118
トーチオーディオ 2.0.1
トーチビジョン 0.15.1+cu118

この時点で最初のエラーが発生しました。

————————

一時的な救済策

私が読んでいるのはqwen1.5 7B、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 が表示されます。

ああ、なんという比較だろう。