Closed1

RuntimeError: CUDA error: device-side assert triggered

sjsj

Huggingface Trainer を使っているときに RuntimeError: CUDA error: device-side assert triggered が発生したときのよくある原因についてです。
今回はその中でも特殊?ケースに遭遇したので、その備忘録

このエラーが起こるとき、大抵の場合でその原因は input_id がモデルの vacab size を超えた値になっているのが原因。ありがちなものとして、モデルの事前学習に使っていない tokenizer を使っていた、というのがありますが、今回はそれに当たりませんでした。

今回使っていたのは Llama3.1 で、問題となっている input_id は 128000 でした。調べてみると、どうやら llama3 tokenizer を使って tokenizer を訓練すると BOS token に 128000 を割り当たってしまうようです。
https://github.com/huggingface/transformers/issues/33998
https://github.com/huggingface/transformers/pull/34246

tokenize 時に 128000 が現れたら BOS トークンの id (ふつう0)に変換してしまうというのがひとまずの解決策となります。

このスクラップは3ヶ月前にクローズされました