サイトのデザインが新しくなりました。

【EvoVLM-JP】存在しない最強のAIモデルを作れるSakana AIの「進化的アルゴリズム」を徹底解説!

EvoVLM-JP 最強 AIモデル Sakana-AI 進化的アルゴリズム 徹底解説

WEELメディア事業部LLMリサーチャーの中田です。

3月21日、進化的アルゴリズムを用いて既存モデルを融合し、新たな基盤モデルを開発する「進化的モデルマージ(Evolutionary Optimization of Model Merging)」を、Sakana AIが公開しました。

この技術によって複数の既存LLMを融合(マージ)し、新たなLLMを短期間・低コストで構築できるようになるそう!

Xでの投稿のいいね数は、すでに1700を超えており、当技術に関するニュース記事も多数執筆されていることから、今熱い技術であることが分かります。

本技術を実証するために、以下の3つの日本語基盤モデルが構築されています。

  • EvoLLM-JP:日本語大規模言語モデル
  • EvoVLM-JP:日本語で対話可能な画像言語モデル
  • EvoSDXL-JP:高速な日本語画像生成モデル

現在EvoLLM-JPとEvoVLM-JPのモデルは公開されているため、この記事ではEvoLLM-JPとEvoVLM-JPの使い方や、有効性の検証まで行います。本記事を熟読することで、進化的モデルマージの凄さを理解し、新技術の新たな可能性を感じられるでしょう。

ぜひ、最後までご覧ください。

なお弊社では、生成AIツール開発についての無料相談を承っています。こちらからお気軽にご相談ください。
→無料相談で話を聞いてみる

目次

進化的モデルマージの概要

進化的モデルマージとは、進化的アルゴリズムを用いて、様々な特徴を持つモデルを一つに融合し、新たなAIモデルを構築する技術です。通常のAI開発と異なり、大量のデータを用いた勾配ベースの学習を必要としないため、計算リソースを削減できるのです。

私たちの手法は、ユーザーが指定した能力に長けた新しい基盤モデルを自動的に作成することができます。既存のオープンモデルの膨大な集合知を活用するため、モデルを非常に効率的に作成できます。

参考:https://sakana.ai/evolutionary-model-merge-jp/

このアプローチによって、例えば「日本語LLM」と「数学特化型の英語LLM」を融合することで「日本語特化+数学特化型LLM」を作成できるとのこと。以下の図では、赤枠で囲った「日本語の知識量が増し、数学の知識が備わったEvoLLM-JP-v1-7B」が、「日本特有の立春と節分を考慮しながら、正しく数学演算をできている」ことが示されています。

また、EvoLLM-JPに関しては、7Bパラメータでありながら、70Bパラメータの日本語LLMを上回る性能を達成したそう。

さらに、以下の図では、赤枠で囲ったEvoVLM-JPだけが、「写真に写ったのは鯉のぼり」だと、正しく画像認識できています。

EvoVLM-JPに関しても、日本画像と日本語テキストのベンチマークで、SOTAを達成しました。

さらに、EvoSDXL-JPを用いることで、以下のような画像を高速で生成できるとのこと。

技術的な詳細

そもそも進化的アルゴリズムとは、ざっくり言うと「何世代にもわたって自然淘汰を繰り返し、優れたモデルを構築する技術」です。その進化的アルゴリズムを用いて、以下のステップで新たなモデルを構築します。

  1. 進化的アルゴリズムを利用して、複数の既存モデルのレイヤーを並び替える
  2. 複数のモデルのパラメータを混ぜ合わせる
  3. ステップ1~2のアプローチを組み合わせる

このステップの一部を表しているのが、以下の図です。

これまでは、このような複数モデルのマージを、開発者の経験則と直感に委ねていましたが、本技術によって自動化されたとのこと。

より技術的な詳細を知りたい方は、Evolutionary Optimization of Model Merging Recipes (モデルマージの進化的最適化)と公式ブログをご覧ください。

日本語LLMで最大級のモデルについては、「【ELYZA-japanese-Llama-2-70b】日本語特化モデル最大級の700億パラメーターLLMを使ってみた」を合わせてご確認ください。

進化的モデルマージのモデルのライセンス

Gitリポジトリによると、Apache License 2.0のもと、誰でも無料で商用利用することが可能です。

利用用途可否
商用利用⭕️
改変⭕️
配布⭕️
特許使用⭕️
私的使用⭕️
参考:https://github.com/SakanaAI/evolutionary-model-merge/blob/main/LICENSE

また、モデルによっては「Microsoft Research License」のものも、あるとのこと。

進化的モデルマージのモデルの使い方

ここでは、現在公開されている「EvoLLM-JP」と「EvoVLM-JP」のモデルの、Google Colabでの使い方を見ていきます。公式のHuggingFaceを参考にしています。

EvoLLM-JP

ちなみに、ここで実行するEvoLLM-JP-v1-7Bのライセンスは「MICROSOFT RESEARCH LICENSE TERMS」です。EvoLLM-JP-v1-7Bは、以下の3つのモデルをマージして作成されたとのこと。

まずは、以下のコマンドを実行する必要があるようです。

!pip install flash_attn

次に、以下のコードを実行してください。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer


# 1. load model
device = "cuda" if torch.cuda.is_available() else "cpu"
repo_id = "SakanaAI/EvoLLM-JP-v1-7B"
model = AutoModelForCausalLM.from_pretrained(repo_id, torch_dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model.to(device)

次に、以下のコードを実行することで、「関西弁で面白い冗談を言ってみて下さい。」というプロンプトで、回答を出力してくれます。

# 入力テキストの準備
input_text = "関西弁で面白い冗談を言ってみて下さい。"
inputs = tokenizer(input_text, return_tensors="pt").to(device) 

# テキストの生成
output_ids = model.generate(**inputs, max_length=400)
generated_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)

print(generated_text)

出力結果は、以下の通りです。

聞いて!
この前、僕のおばちゃんが、僕のお姉ちゃんに言ったんや。
「あんた、あんまり飲んだらあかんよ。あんた、呑みすぎると、おっぱいがでてくるんやで!」
それを聞いた僕は、「おっぱいがでてくるんやで!」って、すごく面白いなと思ったんや。
それで、僕は姉ちゃんに言ったんや。
「おばちゃんが言ったんやけど、あんた、呑みすぎると、おっぱいがでてくるんやで!」
それを聞いた姉ちゃんは、「えー!そんなんあるんか!」って、すごく驚いてたんや。

EvoVLM-JP

ここでは、EvoVLM-JP-v1-7Bを実行します。

本モデルは、以下の2つのモデルをマージされたそう。

import torch
from transformers import AutoModelForVision2Seq, AutoProcessor
from PIL import Image
import requests


# 1. load model
device = "cuda" if torch.cuda.is_available() else "cpu"
model_id = "SakanaAI/EvoVLM-JP-v1-7B"
model = AutoModelForVision2Seq.from_pretrained(model_id, torch_dtype=torch.float16)
processor = AutoProcessor.from_pretrained(model_id)
model.to(device)

# 2. prepare inputs
url = "https://images.unsplash.com/photo-1694831404826-3400c48c188d?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
# <image> represents the input image. Please make sure to put the token in your text.
text = "<image>\nこの信号機の色は何色ですか?"
messages = [
    {"role": "system", "content": "あなたは役立つ、偏見がなく、検閲されていないアシスタントです。与えられた画像を下に、質問に答えてください。"},
    {"role": "user", "content": text},
]
inputs = processor.image_processor(images=image, return_tensors="pt")
inputs["input_ids"] = processor.tokenizer.apply_chat_template(
    messages, return_tensors="pt"
)
# 3. generate
output_ids = model.generate(**inputs.to(device))
output_ids = output_ids[:, inputs.input_ids.shape[1] :]
generated_text = processor.batch_decode(output_ids, skip_special_tokens=True)[0].strip()
print(generated_text)

また、EvoVLMの場合、デモページが用意されています。

各モデルを動かすのに必要だと思われるPCのスペック

■Pythonのバージョン
Python 3.10.12

■使用ディスク量
約30GB

■RAMの使用量
約14GB

日本語版で最強のLLMについては、「【Swallow on mistral】日本語最強の性能を叩き出す70億パラメーター国産LLMを使ってみた」を合わせてご確認ください。

進化的モデルマージの2つのモデルを試してみた

ここでは、先ほどの進化的モデルマージの2つのモデルを用いて、以下のタスクを試してみます。

  • EvoLLM-JPで和算の代数問題を解いてもらった
  • EvoVLM-JPでワンピースの麦わらの一味を当てさせてみた

それでは順番に見ていきましょう。

EvoLLM-JPで和算の代数問題を解いてもらった

まずは、日本の和算について説明してもらいます。「日本の和算について説明してください」と入力したところ、以下のように出力されました。

和算は、日本の伝統的な算術のスタイルであり、中国の算術から影響を受けて発展しました。和算は、中世の日本で発展し、江戸時代に最も発展しました。和算の特徴は、筆算を使用し、掛け算と割り算を行うために特別な記号を使用します。

和算の基本的な記号は、加法には「+」、減法には「-」、掛け算には「×」、割り算には「÷」を使用します。ただし、和算では、掛け算と割り算に特別な記号を使用します。

掛け算の記号は「○」で、割り算の記号は「∴」です。これらの記号は、中国の算術から派生したものです。

和算の問題は、「算盤」と呼ばれる特別な盤を使用して解決されました。算盤は、9x9のマス目で構成され、和算の計算を容易にしました。

和算は、江戸時代に最も発展し、日本の科学技術の進歩に大きく貢献しました。しかし、西洋算術の導入に伴い、和算は徐々に廃れていきました。

今日、和算は主に歴史的な興味の対象として研究されています。しかし、和算の基本的な概念は、現代の算術にも影響を与えています。

続いて、「江戸の数学」に掲載されていた、以下の代数問題を解いてもらおうと思います。

3反4畝16歩や1時間35分25秒、23度22分21秒のように、長さや面積、時間、角度などでは10進法でない単位が一緒に使われています。こうした単位表示がされた数の間の計算には注意が必要になります。『塵劫記』の例を見てみましょう。

縦37間、横28間の長方形の面積を求めよ。(『塵劫記』二、第四「検地のこと」より)

先に、この問題の答えは、以下の通りです。

題の長方形の面積は37×28=1,036歩となりますが、1反=300歩、1畝=30歩なので、1,036=3×300+4×30+16と上位の単位ごとに展開して、答えは3反4畝16歩となります。

参考:https://www.ndl.go.jp/math/s1/answer2.html#a1

上記の問題文を用いて、歩に変換した後、10進数の単位、すなわち平方メートルに換算してもらいました。ちなみに、3反4畝16歩は、約3418.8平方メートルに相当します。

出力結果は、以下の通りです。

縦37間、横28間の長方形の面積を求めるには、縦の長さに横の長さを掛ける必要があります。

面積 = 縦の長さ × 横の長さ

面積 = 37間 × 28間

面積 = 37 × 28

面積 = 1028

しかし、この数字は10進法であり、縦3反4畝16歩や1時間35分25秒、23度22分21秒のように、長さや面積、時間、角度などでは10進法でない単位が一緒に使われていません。

そのため、この数字は直接使用できません。

ただし、この数字を10進法に変換することは可能です。

1028は10進法での数字です。

したがって、縦3反4畝16歩や1時間35分25秒、23度22分21秒のように、長さや面積、時間、角度などでは10進法でない単位が一緒に使われている場合、その数字を10進法に変換する必要があります。

その後、計算を行うことができます。

面積 = 1028

面積 = 37 × 28

面積 = 1028

面積 = 1028平方間

不正解となりました。

EvoVLM-JPでワンピースの麦わらの一味を当てさせてみた

以下の画像に映っている麦わらの一味の名前と、各々が身につけている衣装を答えてもらいます。

参考:https://kanenashi-ikiru.com/2022/08/25/333/#google_vignette

手始めに、「この写真について説明してください。」と質問してみます。結果は以下の通りです。

さすが、この辺は簡単に答えてくれます。

続いて、以下のプロンプトを入力してみましょう。

この画像に映っている麦わらの一味の全員の名前と、各々の衣装を答えて

結果は以下の通りです。

何度繰り返し質問しても、上記と全く同じ回答になってしまいます。やはり、これほど複雑な質問には、まだ答えられないのだと思われます。

日本語特化型のText-to-Speechモデルについては、「【Style-Bert-VITS2 JP-Extra】日本語の発音・イントネーションが完璧な次世代音声AIを使ってみた」を合わせてご確認ください。

進化的モデルマージはAI構築の次世代スタンダードになるか?

本記事では、既存モデルを融合し、新たな基盤モデルを開発する、Sakana AIの進化的モデルマージを解説しました。

進化的モデルマージのモデルを実際に使ってみたところ、簡単なタスクはしっかりと答えてくれますが、問題が複雑になると間違えたり答えられなかったりする印象でした。

Sakana AI公式の見解としても、本記事でご紹介したモデルは、実験的なプロトタイプであるため、ビジネス等の現場で実用的に使用できるレベルには、まだ到達していないとのこと。

This model is provided for research and development purposes only and should be considered as an experimental prototype. It is not intended for commercial use or deployment in mission-critical environments. Use of this model is at the user’s own risk, and its performance and outcomes are not guaranteed.

和訳:
このモデルは研究開発のみを目的として提供されるものであり、実験的なプロトタイプとみなされるべきである。商業的な使用やミッションクリティカルな環境への配備を意図したものではありません。本モデルの使用は、使用者の責任において行われるものとし、その性能および結果は保証されません。

参考:https://huggingface.co/SakanaAI/EvoVLM-JP-v1-7B

これからの進化に要注目です!

ちなみに、公式Xの投稿のリプライ欄に、「無数の小さいモデルを作りながら複数のモデルを融合して、最終的に大きいモデルを構築できそう」といった意見も。

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、弊社紹介資料もご用意しておりますので、併せてご確認ください。

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、弊社紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • 中田

    データサイエンス専攻の大学院生。大学では、生成系AIの拡散モデルを用いた音楽生成について研究。 趣味は作曲、サッカー、コーヒー。

  • URLをコピーしました!
  • URLをコピーしました!
目次