ChatGPTなんかの大規模言語モデルが言葉を生成しているときに、どういう反応が起きているのか気になりますよね。きっと気になる。 ということで、手元で動かせる言語モデルのニューラルネット各層での出力を表示してみました。 GPTにはGPTブロックが複数あって、それぞれのブロックが2層のニューラルネットレイヤを持っています。 モデルを読み込んだあとでこういうコードを動かしてニューラルネットの出力の二乗を足していきます。 for idx, elm in enumerate(model.transformer.h): elm.ln_1.index = idx * 2 elm.ln_2.index = idx * 2 + 1 elm.ln_1.old_forward = elm.ln_1.forward elm.ln_2.old_forward = elm.ln_2.forward def new_