(承前) 実験結果を少しずつ説明しよう。 まず、最初の構想ではこれまでの…
jrf> (承前) 実験結果を少しずつ説明しよう。 まず、最初の構想ではこれまでの LSP に対する学習のクセから、expert も simple も standup も一気に LoRA を作ろうとした。しかし、expert はまったく発現しなかった。これは三つの理由があると思われる。一つは、バッチのロスがそれぞれのタスクのロスと微妙に異なるせいでまとめての学習だとうまくいかないという点である。もう一つはL1正則化の縛りが強い過ぎて十分なパラメータが残らない…という点である。さらに一つは LORA_RANK が 4 では表現力が足りないという点である。 これらを解消したのが、humanoid_nested_attention_dt_8_2.ipynb である。これは expert タスクだけを「隔離学習」し、L1正則化をなしにし、LORA_RANK を 16 にしたものである。これをエポック数5まで学習させることにより、expert の(再)発現が確認できた。一安心である。 では、L1正則化がどれほど意味があるか。それを調べたのが humanoid_nested_attention_dt_8_3.ipynb である。これは prompt_id=1 の「歩行」系にあえて、standup (起立)タスクを学ばせる(隔離学習させる) LoRA である。prompt_id=1 にとっては、見知らぬタスクを下層目的だけあるところから学ぶことになる。これはどうも expert を発現するよりは簡単なタスクと見えて、L1正則化なしだと、エポック数1で概ね「起立」タスクが発現する(LORA_RANK は元の 4 のままである)。これに対し、L1正則化(L1_REG_LAMBDA)を再設定すると発現がほぼなくなる。L1_REG_LAMBDA の強さを 5e-5 から徐々に、発現が邪魔されない強さまで下げていくと、結局 L1_REG_LAMBDA = 5e-7 まで下げることで再発現と言える状況にすることができた。コツとしては、L1正則化ロス(L1 Reg)が、最初以外むしろ上がっていって、模倣ロス(Imitation)が下がるほうが優先されるぐらい弱くするのがよいようだ。しかし、そうやって「許される」スパース度は、わずか 0.83%。これでは L1 正則化の意味はほとんどないであろう。 結論としては LoRA は割とうまく機能するが、L1正則化を入れるとほとんど機能できなかったと言えるだろう。 ……。 その1からその8までの総括と今後の課題。 「多層目的=アテンション」という直感にしたがい、二足歩行に関する実験をしばらく行った。 この一連の実験で、模倣学習の DecisionTransformer の層を増やし、プロンプトをスキップ接続で導入した実験は成功し、MoE で混合したデータから学習したモデルから元の純粋データが「創発」することを試す実験をして失敗し、LoRA を使って混合して学習されたモデルから純粋データに近いものを「復元」する実験は成功した。 しかし、私の勉強にはなったものの、残念ながら、新規性はほぼないだろう。私のアイデアと思ったものは Gemini さんによると既存の技術の組み合わせでしかないことがわかった。また、それら実験のプログラムは Gemini Flash さんに頼り、そのあっさりとした生成を考えると、元となるプログラムはどこかにあることを感じる。そのものズバリの論文がすでにあるか、論文に発表するまでもないとしてどこかの研究室にはすでにある程度のものなのだろう。 今後の方向としては、まず、その7までの MoE 的枠組みをその8の LoRA の枠組みに PPAP (ペンパイナッポーアッポーペン) よろしく、フンッと合体させることが考えられる。技術もコードもほぼできあがっているので、その実験自体はすぐにできるだろう。しかし、その7で expert run が発現しなかったこと、その8で判明した expert run の難しさを考えると、PPAP しても expert run は発現しないと思われる。おそらく expert run ではなく、データセットを変えてもっと発現しやすいタスクで実験すべきなのだと思われる。それは、そういうデータセットが使えるやりたい方・後進の方に委ねたい。 私の今後としては、二足歩行を対象とするのは続けるけれども、強化学習を取り入れる方向に進もうと思っている。時期的にはしばらく休んで、おそらく年末も休んで、来年(2026年)に入ってからになるかもしれない。 とりあえずここで一区切りとして、お礼を述べさせてください。一連の長い実験におつきあいいただきありがとうございました。