🔑

色々なモデルのSuper Weightを探そう

2024/12/06に公開

1人ローカルLLMアドベントカレンダーの6日目です。

ローカルLLMやマルチモーダルモデルの学習やデータセット周りについて書いていく予定なので、興味がある方は明日以降も読んでいただけると嬉しいです!
https://qiita.com/advent-calendar/2024/local-llm

要約

  • 論文に記載のあるモデルのSuper Weightを0にすると出力が崩壊することが確認できた
  • モデルによってはSuper Weightが存在しないかもしれない

目的

数日前に話題になっていた論文に、LLMからSuper Weightと呼ばれる1つのパラメータの値を0にすると出力が崩壊してしまう、というものがありました。

https://arxiv.org/abs/2411.07191

量子化するときにこのパラメータを保持していくことで性能を維持しやすくなるなど、モデルとして重要度の高いパラメータになっているようです。

今回は、このパラメータを色々なモデルで探してみましょう。

実施内容

論文を参考に、Super Weightの候補となる重みを探索し、それぞれを削除した場合のperplexityを算出するコードを作成しました。

使用したコードはこちらに置いてあります。
https://github.com/kkendama/FindSuperWeight/tree/main

検証したモデルは以下の6つです。

  • mistralai/Mistral-7B-v0.1
  • llm-jp/llm-jp-3-3.7b
  • sbintuitions/sarashina2-7b
  • meta-llama/Llama-2-7b-hf
  • meta-llama/Llama-3.1-8B
  • meta-llama/Llama-3.2-3B

すべての結果について書くと長くなるので、この中から3つに絞ってご紹介します。

結果

mistralai/Mistral-7B-v0.1

見つかったのは本家と同じく

  • layer1 (2070, 7310)

の1つでした。

Removed Weight Perplexity Output
original 7.18 日本で一番高い山は、富士山です。\n\n富士山は、日本の国宝です
layer1, (2070, 7310) 27408.00 日本で一番高い山は、 is one billion in billion billion billion billion billion billion billion billion billion billion billion billion billion
layer1, (2070, 8572) 7.20 日本で一番高い山は、富士山です。\n\n富士山は、日本の国宝です

Super Weightを0にしたケースを見ると、perplexityが大幅に増加し、出力が崩壊しているのがわかります。

一番下のパラメータは第二候補として出てきた場所なのですが、こちらを0にした場合にはperplexityはほとんど変わらず、出力もオリジナルから変化がありませんでした。

やはり、Super Weightは特別な重みになっているようです。

llm-jp/llm-jp-3-3.7b

見つかったのは

  • layer1 (2938, 7633)

の1つでした。

Removed Weight Perplexity Output
original 63.09 日本で一番高い山は、富士山です\n\n富士山は標高3776mで、日本で一番高い山です。
layer1, (2938, 7633) 21344.00 日本で一番高い山は、日本で一番高い山は、日本で一番高い山は、日本で一番高い山は、日本で一番高い山は、日本
layer7, (1161, 546) 75.50 日本で一番高い山は、富士山です。\n\n富士山は標高3776メートルです。\n\n富士山の頂上は山梨県と静岡県にまたがっています。

繰り返ししかできなくなってしまっていますね

sbintuitions/sarashina2-7b

候補としては以下の3つが見つかりましたが、どれもperplexityはほとんど変化せず、出力にも変化がありませんでした。

  • Layer: 5, (2223, 5235)
  • Layer: 5, (85, 5235)
  • Layer: 29, (2223, 1648)

モデルによってはSuper Weightが存在しないケースがあるようです。

また、meta-llama/Llama-3.1-8Bやmeta-llama/Llama-3.2-3Bも同様にSuper Weightが見つかりませんでした。

まとめ

今回は、モデルの重みにおいて重要度の高いSuper Weightを探してみました。

論文と同様にmlp.down_projしか探索していないので他の場所にある可能性は無きにしもあらずですが、Super Weightが存在しないケースがあるのかもしれません。

Discussion