ChatGPT さんに実験してもらったところ、TinyLoRA…
jrf> ChatGPT さんに実験してもらったところ、TinyLoRA と進化的アルゴリズム(遺伝的アルゴリズム)の組み合わせが有効そうだ、という結果が得られた。 TinyLoRA では、SVD (特異値分解)した空間の中で、ランダム行列で「方向」を作り、その方向での係数 v を学習する。しかし私は、そのランダム行列を固定してしまうところに疑問を持っていた。いろいろ試してもらう中、そのランダム行列に関して進化的アルゴリズムを使えばよいのではないかとアイデアを出し、toy 実験してもらったところ、確かに、loss の改善が見られたようだ。 しかも、遺伝的アルゴリズムにおける交差ありとなしも試してもらったところ、交差ありのほうが結果がよく、これが ChatGPT さんにはやや意外だったようだ。交差ありが効くということは、「LoRA空間がモジュール構造を持つ」ことを示唆しているようだ。 ただし、ある意味これは当然の結果とも言える。というのは、遺伝的アルゴリズムでランダム行列を扱うということは、ランダム行列をパラメータとして「学習」することに相当し、「Tiny」な探索ではすでになくなっているからだ。探索空間がとても広くなっているのである。 しかし、とはいえ、ChatGPT さんが提案した、他のパラメータを「少し」増やす方法では TinyLoRA の loss を破れなかったのに対し、遺伝的アルゴリズムは確かに破ったので、少なくとも、何か意味のある方向性ではあるのではないかと私は思っている。もちろんこれは小さな toy 実験なので一般化はできないが、LoRA 空間の探索構造については少し面白い示唆があるように思える。 ちなみに、なぜ遺伝的アルゴリズムがよいと思ったかというと、そこには生物の「ファインチューニング」の効率の良さの謎があった。なぜ生物はそんなにうまく「ファインチューニング」できるのか、パラメータを少なくする方向にその謎を解く端緒を見出したいというのが私に TinyLoRA に注目させ、さらに遺伝的アルゴリズムに注目させたのだった。