ValueError: The checkpoint you are trying to load has model type `gemma2` but Transformers does not recognize this architecture.の解決方法!gemma2の読み込み

はるか
はるか
gemma2が読み込めない…。
ふゅか
ふゅか
うーん、とりあえずエラーログを見てみよう!

1. エラーの詳細

ValueError: The checkpoint you are trying to load has model type 'gemma2' but Transformers does not recognize this architecture.
 This could be because of an issue with the checkpoint, or because your version of Transformers is out of date.

1.0.1. 訳

あなたが読み込もうとしたgemma2タイプのモデルタイプを持っているが、Transformersライブラリがそのアーキテクチャを認識しないことを示しています。この問題の原因としては、チェックポイント自体の問題、またはTransformersライブラリのバージョンが古い可能性があります。

ふゅか
ふゅか
このエラー、チェックポイントかTransformersのバージョンに問題があるみたいね。
はるか
はるか
なるほど、Transformersをアップデートしよう。

2. エラー解決のためのTransformersのアップデート

2.1. 解決方法

このエラーは、gemma2アーキテクチャをサポートしていない古いバージョンのTransformersを使用していることが原因です。以下のコマンドを実行して、Transformersのバージョンをアップデートしてください。

pip install -U transformers
はるか
はるか
pipコマンドで簡単にアップデートできる。

2.2. バージョンの確認とアップデート

元のバージョンは4.41.2でしたが、アップデート後は4.42.4に変更されました。このバージョンで、gemma2アーキテクチャが認識されるようになります。

2.3. 動作確認

ふゅか
ふゅか
ちゃんと、gemma2が動くか確認してみよう!
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-9b")
model = AutoModelForCausalLM.from_pretrained("google/gemma-2-9b",
                                             device_map="auto",
                                             load_in_4bit=True)


モデルの読み込みができました。

2.4. まとめ

Transformersのバージョンを最新に保つことで、新しいアーキテクチャのサポートやバグ修正が反映されます。定期的にアップデートを行い、エラーの発生を防ぎましょう。

3. Transformers・大規模言語モデルに関連する書籍

PR