cocolog:95917075
TinyLoRA は普通の LoRA が和なのに対し、積の LoRA のような感じになるようだ。極小パラメータの TinyLoRA は生物の「ファインチューニング」の効率の良さとつながりがあるという直感から興味を持ったのだった。 (JRF 0999)
JRF 2026年3月25日 (水)
……。
まず結論となるコピペから。
○ 2026-03-25T10:29:41Z
TinyLoRA の式は W' = W + U Σ (Σ_{i=1}^{u} v_i P_i) V^⊤ だが、これは W' = W (I + v1 P1 + v2 P2 +…) という式で行ってもだいたい遜色なくできる。つまり単純な「積」である。I P1 P2 … を正規直交化すれば、訓練が早くなるようだ。
これはモデルをとても単純にする。TinyLoRA を「低ランク更新」から「低次元群作用」に再定式化している…と言える。
JRF2026/3/256123
ChatGPT さんによるとスタッキングを可能とする方向として W' = W exp(v1 A1 + v2 A2 + ...) という方向がおもしろそうだと示された。
実は、TinyLoRA について以前、調べたのだが、実験失敗だけが結果報告になっていて、何も有用な結果として残ってなかったのが気にかかっていて、その議論で、意味がありそうなもののみ、再度 ChatGPT さんにお願いして実験してもらったのだった。そして以上がその結論になる。
JRF2026/3/259242
ChatGPT さんとの会話は↓になる。
https://chatgpt.com/share/69c3b83b-f118-8322-a439-203f184d03b6
JRF2026/3/251616
……。
ちなみに TinyLoRA の論文として参照してもらったのは↓。
《Learning to Reason in 13 Parameters - John X. Morris, Niloofar Mireshghallah, Mark Ibrahim, Saeed Mahloujifar》
https://arxiv.org/pdf/2602.04118
JRF2026/3/258633
……。
……。
さて、上で書いた「以前の失敗」が次からの文になる。生物の「ファインチューニング」とのつながりの直感などは、こちらに書かれているので、「失敗」ではあるが、書き残しておくことにする。
JRF2026/3/250251
○ 2026-03-11T09:53:31Z
ChatGPT さんに実験してもらったところ、TinyLoRA と進化的アルゴリズム(遺伝的アルゴリズム)の組み合わせが有効そうだ、という結果が得られた。
TinyLoRA では、SVD (特異値分解)した空間の中で、ランダム行列で「方向」を作り、その方向での係数 v を学習する。しかし私は、そのランダム行列を固定してしまうところに疑問を持っていた。いろいろ試してもらう中、そのランダム行列に関して進化的アルゴリズムを使えばよいのではないかとアイデアを出し、toy 実験してもらったところ、確かに、loss の改善が見られたようだ。
JRF2026/3/253872
しかも、遺伝的アルゴリズムにおける交差ありとなしも試してもらったところ、交差ありのほうが結果がよく、これが ChatGPT さんにはやや意外だったようだ。交差ありが効くということは、「LoRA空間がモジュール構造を持つ」ことを示唆しているようだ。
ただし、ある意味これは当然の結果とも言える。というのは、遺伝的アルゴリズムでランダム行列を扱うということは、ランダム行列をパラメータとして「学習」することに相当し、「Tiny」な探索ではすでになくなっているからだ。探索空間がとても広くなっているのである。
JRF2026/3/256185
しかし、とはいえ、ChatGPT さんが提案した、他のパラメータを「少し」増やす方法では TinyLoRA の loss を破れなかったのに対し、遺伝的アルゴリズムは確かに破ったので、少なくとも、何か意味のある方向性ではあるのではないかと私は思っている。もちろんこれは小さな toy 実験なので一般化はできないが、LoRA 空間の探索構造については少し面白い示唆があるように思える。
JRF2026/3/252031
ちなみに、なぜ遺伝的アルゴリズムがよいと思ったかというと、そこには生物の「ファインチューニング」の効率の良さの謎があった。なぜ生物はそんなにうまく「ファインチューニング」できるのか、パラメータを少なくする方向にその謎を解く端緒を見出したいというのが私に TinyLoRA に注目させ、さらに遺伝的アルゴリズムに注目させたのだった。
JRF2026/3/259605
……。
○ 2026-03-11T11:27:59Z
先に、「ChatGPT さんに実験してもらったところ、TinyLoRA と進化的アルゴリズム(遺伝的アルゴリズム)の組み合わせが有効そうだ、という結果が得られた。」と書いたが、これは間違っていた。
グラフを良く見たところ、進化的アルゴリズムを使ったものは確かにそうでないものより loss が低いのだが、世代を経るごとにむしろ loss は高くなっていっている。これは、単純に、ランダム行列の数を多く試しているので、loss が低いものがその中にあっただけで、進化はむしろマイナスにしか機能していないことを示唆している。
JRF2026/3/259151
残念だ。ランダム固定行列がなぜこんなにいいのか、私には再び謎になった。SVD が探索空間をせばめている。それにしても…という謎。
https://x.com/jion_rockford/status/2031693526107582686
JRF2026/3/254158
……。
○ 2026-03-11T13:05:33Z
TinyLoRA。遺伝的アルゴリズム(GA)では、次第に多様性がなくなるため、最もフィットするものが残ってない場合が出てくる(似たものばかりで探索空間が小さくなる)という分析になった。ChatGPT さんは、結局は、(複数のランダム行列の) MoE (Mixture of Experts)のほうがいいという。
MoE にすると、パラメータは多少増えるが、劇的な改善があるようだ。LoRA そのものよりは、増えるパラメータ数はかなり少ないため、有効な方法である。…とのこと。
JRF2026/3/250909
……。
TinyLoRA の MoE を試すミニコードは↓に置いておく。
《tinylora_moe_by_chatgpt.ipynb - TinyLoRA に MoE を使う - Colab》
https://colab.research.google.com/drive/1Yq7GmLCtA1m038S5UHw0TmBHcTLAWcby
https://gist.github.com/JRF-2018/549a5ecd4b04596709774759e7d8b2c3
JRF2026/3/256537
……。
……。
追記。
○ 2026-04-18T16:46:48Z
TinyLoRA を発展させると W exp(k_1 A_1) の形で書ける。
これは W exp(k_1 A_1) exp(k_2 A_2) のように拡張できる。
ここで A_i はランダム行列でもよいので、逆に「基底」を共有して、各重み W ごとに係数 k_i だけを学習するという方向が考えられる。さらに A_i 自体も、k_i より遅いスケールで学習する(メタ的に更新する)こともできる。
JRF2026/4/194431
これは LoRA とは異なる「乗法的な変換」の軸になっている。
したがって
W_{eff} = W_0 exp(sum_i k_i A_i) + B_t C_t
のように、LoRA(加法)と組み合わせることができる。
JRF2026/4/191802
実験すると、
・LoRA的なデータでは LoRA が効く
・指数型の構造がある場合はこちらが効く
・混合の場合はハイブリッドが最も良い
という結果になった。
直感的には「ax + b」の非線形版(乗法 + 加法)になっており、少ないパラメータで広い変形を表現できる可能性がある。
JRF2026/4/195316
ChatGPTとの議論とコードで検証した:
会話URL: https://chatgpt.com/share/69e3afc7-3e0c-83e8-94f6-f26100c77992
Colab URL: https://colab.research.google.com/drive/1Ql1ncYjvm9aYsy_b15qSLq-yc_UtJFp9
JRF2026/4/198364


ランダム行列を使うのが納得できず、いろいろ試してもらう中でそういう認識に私は落ちついた。
(「グローバル共有メモ」と Twitter (X) に書いたことのコピペ。主に ChatGPT さんに教わって書いている。)
JRF2026/3/258395