featured image

謎のユニコーン企業Sakana.aiの正体と進化的モデルマージの概要について

創業後2年足らずでユニコーン企業として名を馳せた、「sakana.ai」の取り組みについて調べてみました。主に進化的モデルマージという独自の開発手法に焦点を当てています。今後の可能性を感じると共に面白い取り組みでした。

Yusuke Sugino
Yusuke Sugino

published on 2024-08-07

新進気鋭のユニコーン企業、sakana.aiについて

sakana.aiはAI関連のテクノロジー企業です。創業後2年足らずでユニコーン企業となり話題となりました。とはいえ、実際に何をやっている会社なのか?については存じ上げないという人も多くいらっしゃるのではないでしょうか。

最近の取り組み

そこでsakana.aiの最近の取り組みについて、いくつか例を紹介します。

Evo-Ukiyoe/Evo-Nishikie

一つ目は浮世絵を生成するAIモデルおよび、浮世絵の色をつけるモデルです。

このツイートについての個人的な所感を述べておくと、二重に面白いなと感じました。一つは「浮世絵の絵柄に特化した画像生成モデル」、というポジション取り。そして、もう一つはこのツイートに対するリプライの内容です。賞賛や驚嘆するのと、同じくらい否定的なコメントが見られたことも面白かった。

EvoSDXL-JP

最近の取り組みとしてもう一つ、EvoSDXL-JPというモデルについて紹介します。これはStable Diffusion XLをベースに開発された日本語・日本風の画像生成に特化したモデルとなっています。

このモデルは後述の「進化的モデルマージ」という開発手法によって作られています。

sakana.aiは何を主軸とする会社なのか

このように様々なモデルを開発・公開しているsakana.aiですが、一体何を主軸に据えて事業開発を行っている会社なのでしょうか。sakana.aiの公式HPではブログ記事が掲載されているので、そちらを見てみることにします。
その中で目を引いた記事がこちら。

趣旨としては、AIモデル開発に対するsakana.aiの指針を示したものです。主題としては主に2つです。

  1. モデル開発に対しての、sakana.aiの基本指針
  2. 1に基づいて考案された「進化的モデルマージ」という手法について

その内容がどちらも興味深いです。自分なりに噛み砕いて説明していきます。

1/ sakana.aiの根底思想にある、集合知と進化論に基づく世界観

まず初めに面白いと思ったポイントは、sakana.aiが自然界の法則・摂理に則った考え方でAIと対峙していることです。AI(Artificial Inteligence)とは文字通り、人間が作り出した人工物であるにも関わらずです。

それを象徴する考え方として、どうやら「集合知」と「進化論」があるようです。それぞれどういうことかを説明します。

「集合知」

自然の摂理を代表する考え方の1つは「集合知」です。冒頭に書かれていた文章が面白いので、丸ごと抜粋します。

人類の知性は、個ではなく、集合として実現されています。我々人類は、個人としては、実のところそれほど知的でも有能でもありません。私たちの社会や経済は、異なる専門分野や専門知識を持つ多様な個人で構成される様々な機関の存在を前提としています。この膨大な集合知が、私たち一人一人の個性を形作っています。そして、私たちは各々異なる人生を歩み、唯一無二の存在となり、今度は自らが種となることで、絶え間なく拡大する集合知に貢献していくのです。

我々Sakana AIは人工知能の発展も同じように集合的な道をたどると考えています。AIの未来は、膨大なエネルギーを必要とする単一の巨大な全知全能のAIシステムではなく、それぞれが専門性や役割を持ち、互いに相互作用する小さなAIシステムの膨大な集合体で構成されることになるでしょう。そして、集合に不足している専門性や役割を補うために新しいAIシステムが開発されていくのです。

まさしく集合知的な世界観を持っていることがわかります。

「進化論」

もう一つの考え方は「進化論」です。ブログに掲載されていた動画がわかりやすいです。

sakana.aiはダーウィンの進化論で提唱される、自然淘汰のシステムをAIモデルの開発に応用している。ということのようです。ブログの中で、この動画に対して加えられていた説明を抜粋します。

最初は全ての車がランダムに設計され、多くのものは失敗作となります。しかし、少し前進することのできた一部の車の設計が次の世代に受け継がれます。この自然淘汰の過程を何世代にもわたって繰り返すことで、効率的に移動できる車が徐々に設計されます。最終的に得られる車の設計は非常に高性能なものになります。また、その設計はしばしば人間の直感に反した意外なものとなり、人間が設計したものとは似ても似つかないものになります。

「無造作に作られた大量サンプルが何世代にもわたって試行錯誤し、結果としてある目的に対して最適化されていくもの」という進化論的な考え方が理解できます。
この進化論的アプローチでは「しばしば人間の直感に反した意外なものになる」、という点が面白いと感じました。

以上が、sakana.aiのAIに対する捉え方についての説明でした。
またこれは自分の推測ですが、「sakana.ai」の「sakana」もこの辺の考え方が由来となっているのかもかもしれません。(知っている人いたら教えてほしい)

2/ 「進化的モデルマージ」とは何か?

続いて面白いと思ったポイントが、同記事内で紹介されているsakana.ai独自のモデル開発手法です。
「進化的モデルマージ」と呼称するそうです。とはいえ僕も含めて唐突に「進化的モデルマージ」と言われても、ピンとくる人はほぼいないのではないでしょうか。

「進化的モデルマージ」のざっくりとした全容

「進化的モデルマージ」の内容について説明するにあたっての背景知識として、まず、

  • 進化的アルゴリズム
  • モデルマージ
    について、それぞれ抑えておく必要があります。

「モデルマージ」とは

先に簡単なモデルマージの説明からします。モデルマージとは、既存の2モデルを融合し、新たなモデルを生み出すことを指します。
ちなみに「マージ」を日本語にすると「融合」という意味になります。

「進化的(アルゴリズム)」とは

続いて「進化的アルゴリズム」についての説明です。これは進化論、すなわち自然淘汰の考え方を取り入れたアルゴリズムのことを指します。詳しくは先ほど説明しているので割愛します。

要するに「進化的モデルマージ」とは、「既存の2モデルを進化的アルゴリズムによっていい感じに配合して新しいモデルを作ってしまう」という開発手法のようです。

進化的アルゴリズムによる最適化と配合バランス

するとモデルマージにおいて、「進化的アルゴリズムにより、何が最適化されていくのか?」という疑問が生まれてきます。これに対する答えは、「2つのモデルの配合バランス」となります。もう少し詳しく触れます。
モデルを配合する際に考慮すべきバランスには

  • レイヤー: - モデルの構造(アーキテクチャ)
  • 重み: モデルの内部パラメータ(重み)

の2つがあります。どちらもいまいちピンとこないので、それぞれClaudeに聞いてみることにしました。すると我々にとって身近な料理に準えた形で、以下のような回答が返ってきました。(sakana.aiに公式ブログに内にあった動画を挿入しています)

  • レイヤーは「レシピの手順」を組み合わせるようなものです。

例:ラーメンとカレーのレシピを組み合わせる場合

  • ラーメンのスープを作る手順
  • カレーのルーを作る手順
  • ラーメンの麺を茹でる手順
  • 最後にスープと麺とカレールーを組み合わせる

以上がレイヤーについての説明です。続いて重みです。

  • 重み: これは「材料の配分」を調整するようなものです。

例:2つの異なるラーメンレシピを組み合わせる場合

  • スープの素:レシピA 70%、レシピB 30%
  • 麺の太さ:レシピA 40%、レシピB 60%
  • トッピング:レシピA 50%、レシピB 50%

このように、各要素で異なる比率で2つのレシピを混ぜ合わせます。以上が、Claudeによる「重み」についての説明でした。

料理という身近な例えで解説してくれたおかげで、少し理解できたような気がします。とりあえず、この2つの配合バランスを進化的アルゴリズムによって最適化していく。ということのようです。

実例紹介: Llama-3-EvoVLM-JP-v2

それでは実際に進化的モデルマージを使って、作られたモデルの実例を紹介します。2024年8月2日に(ちょうど記事執筆時)に進化的モデルマージを使って作られたモデルがsakana.aiから公開されました。

Llama-3-EvoVLM-JP-v2JA-Multi-Image-VQAの2つです。前者について詳しく取り上げます。Llama-3-EvoVLM-JP-v2は次の3つのモデルを進化的モデルマージで組み合わせています。

  • 「複数の画像を扱える英語のVLM」(Mantis-8B-SigLIP-Llama-3)
  • 「日本語の能力に長けたLLM」(Llama-3-ELYZA-JP-8B)
  • 「単一画像の説明能力が高いVLM」(Bunny-v1.1-Llama-3-8B-V)

面白いのはその結果です。どのようなモデルが完成したのかというと、なんと「日本語能力に長け、複数の画像を扱え、尚且つ説明能力が高い」という既存の3モデルの強みを全て持ったAIモデルが完成してしまったということのようです・・・!
面白すぎる

進化的モデルマージの特徴(強み)について

進化的モデルマージというモデル開発手法のざっくりとした全容と実例について抑えたところで、このモデル開発手法が持つ特徴、強みについて解説していきます。
まず初めに参考として、あるツイートが進化的モデルマージの特徴をよく表しています。これを載せておきます。

ということで、その特徴を3つ挙げます。

特徴1. 性質の異なるモデル同士をマージすることができる

特徴の1つ目が、全く毛色の異なるモデル同士をマージできるということです。これは従来の方法では、難しいとされていました。以下ブログからの引用です。

私たちの経験からは、専門家であっても、日本語のLLMと数学のLLMを手動で組み合わせることは非常に難しいことがわかっています。しかし、何百世代もの進化的モデルマージによって、日本語のLLMと数学のLLMを効果的に組み合わせ、両方の能力を持つモデルを構築する方法を見つけることができました。

このように、日本語特化のLLMと数学特化のLLMを効果的にマージすることができたと書かれています。

特徴2. 既存の2モデルのいいところ取りをした、より高性能なモデルを生み出すことができる

さらにすごい特徴は先ほど挙げた例にもあった通り、まず両方の既存モデルのいいとこ取りをした上で、高性能なモデルを生み出すことができるという点です。以下はブログからの引用です。

また、数学の能力に限らず、日本語の全般的な能力を評価するため、日本語lm-evaluation-harnessを利用し評価を行いました。驚くべきことに、これらのモデルは、数学とは無関係のいくつかのタスクでも元のモデルより高いスコアを達成していることが分かりました。我々のモデルは本来これらのベンチマークで良い結果を出すように明示的に最適化されていないことは特筆に値します。

モデルマージの偶然の産物として、他の能力も意図せず向上したという結果が得られたという内容です。進化的モデルマージによって新しく生み出されたパラメータ数7Bのモデルの日本語性能が、パラメータ数70Bのモデルの日本語性能に肉薄するどころか、それを超えるスコアを叩き出したことも書かれていました。
2つのモンスターを掛け合わせて、より強いモンスターを新しく生み出す。。。まさにドラクエモンスターズみたいな話でとても面白いですね。

特徴3. 新しくモデルを作り出す上で、膨大な開発コストを必要としない

極め付けは開発のコストがかからないという点です。
そもそもモデル開発は膨大な量のデータセットとコンピューティングリソースが必要、というのが従来の常識でした。それが故に、LLMの開発は大規模な研究機関であったり大企業が取り組めるものでした。以下はブログからの引用です。

私たちの手法は、勾配ベースの訓練を全く必要とせず、比較的少ない計算資源とデータで新しい基盤モデルを自動的に生成できます。これらのモデルに誤差逆伝播による勾配ベースの手法を追加で適用し、性能をさらに向上させることも原理的には可能です。しかし、今回のリリースでは、誤差逆伝播を全く使わなくても、最先端の基盤モデルを進化的に構築できることを示し、膨大なコストのかかる現在の基盤モデル開発のパラダイムに一石を投じることを目指しています。

進化的モデルマージでは既存の2モデルを掛け合わせるだけなので、それらを必要としない。ということが書かれています。
これは進化的モデルマージという手法によって小規模な企業、或いはは個人でも望む用途に最適化されたLLMを新しく作り出せてしまう可能性を示唆しています。

所感

長くなりましたが、sakana.aiの取り組みと進化的モデルマージについて自分なりにまとめてみました。これを書いている中で思ったことは、「自分の取り組みにも活かせるかも??」ということです。
生成AIを使ったデジタル広告の領域を取り扱うようになった自分としては、この「進化的モデルマージ」によって、広告クリエイティブの生成に最適化したモデルを作れるような気がしています。
実際に配合するモデルとしてはフォントや色も含めた日本語テキスト画像の生成に特化したモデルとレイアウトデザインに特化したモデルを組み合わせる。とかになるのかな?その辺はまだよくわからないが試してみる価値はありそうです。

今後

ということで、その第一歩として実際に進化的モデルマージを試してみようと思います。進化的モデルマージの手順についてはこちらのページで詳しい解説がされています。

面白い結果が得られたら、また記事にします。