2024.04.11

Sakana AIの進化的モデルマージによるLLM:
EvoLLM-JP(日本語+数学)とEvoVLM-JP(日本語+画像)

TL;DR

  • Sakana AIは、進化的モデルマージにより日本語に強化された大規模言語モデル(EvoLLM-JP)と画像言語モデル(EvoVLM-JP)を公開しました。
  • モデルマージとは複数の大規模言語モデルを統合し性能を改善させるものです。事前学習やファインチューニングよりも低コストという利点はありますが、その調整には経験と勘が求められます。Sakana AIは進化的アルゴリズムを用いて、このモデルマージを効率化しました。
  • Sakana AIのリリースによるとEvoLLM-JPは、7Bパラメータでありながら、70Bのモデルに匹敵する性能と日本語での計算能力を持っております。更に他の日本語ベンチマークでも性能が向上しているそうです。また、EvoVLM-JPは、画像を認識して日本語の文章を生成可能で、日本文化の知識にもある程度対応しているそうです。
  • 追記(4/23(Tue)): 画像生成のEvoSDXL-JPは4/22(Mon)に遅れて公開されました(画像生成モデルへの進化的モデルマージの適用
    )。公開された情報とHugging Faceの実装コード(SakanaAI/EvoSDXL-JP)から、EvoSDXL-JPは、Stability AIの開発した日本特化の画像生成モデルJapanese Stable Diffusion XL(JSDXL)をコアに複数のSDXLのモデルをマージ、推論ステップを短縮化したSDXL-LightningをLoRAとして追加したモデルのようです。

はじめに

こんにちは、グループ研究開発本部・AI研究室のT.I.です。先月は、Anthropic が Claude 3(Introducing the next generation of Claude)、xAIは、Grok-1 (Open Release of Grok-1)、更には Grok-1.5 (Announcing Grok-1.5)AppleもMM1 (https://arxiv.org/abs/2403.09611)、Cohereは、Command R+ (Introducing Command R+: A Scalable LLM Built for Business)を発表など、大規模言語モデル(LLM)の新しいモデルが続々と発表されています。

そんな折に、東京にあるAIスタートアップのSakana AIでは、進化的アルゴリズムを用いた基盤モデル開発手法を提案し、日本語向けの大規模言語モデル(EvoLLM-JP)と画像言語モデル(EvoVLM-JP)を3/21に公開しました( Sakana AI Blog進化的アルゴリズムによる基盤モデルの構築)。これは果たして一体どのような技術なのか興味がありましたので、今回はその技術について解説します。Sakana AIは、元Googleの研究者たちが立ち上げたAIスタートアップで、国内外からも注目を集めており先日も3,000万ドルの資金調達を行いました(We raised $30M to develop nature-inspired AI in Japan)。この名前の由来は文字通り日本語の「さかな」です。Sakana AIでは進化や集合知などの自然界のアイデアを利用したAI技術を提案しており、今回の進化的アルゴリズムによるモデルマージもその研究の一環です。

モデルマージ

最初にモデルマージについて簡単に説明します。LLMなどの基盤モデルは膨大なパラメータを持つDLモデルです。その開発と各種のタスクに対して最適化するためにはパラメータの調整が必要で、大量の計算リソースが必要となります。それに対して、モデルマージとは、学習済みの複数の基盤モデルを融合させ、その性能を高める手法です。GPUのような大規模な計算リソースは不要で様々な人がより手軽にモデル開発に参加できるという利点があります。

モデルマージの解りやすい例の一つが、画像生成AIの異なるチェックポイント(モデル)のマージです。Stable Diffusionのモデルは様々なスタイルにチューニングされたチェックポイントが公開されておりますが、複数のモデルをマージすることで、それぞれのスタイルを混ぜ合わせたような新しいイラストを生成できます。Stable Diffusion web UI (https://github.com/AUTOMATIC1111/stable-diffusion-webui)には、Checkpoint Mergerという機能が標準で搭載されており、簡単にマージして新しいモデルを作成できます。

Stable DiffusionのCheckpoint Mergerでは、モデルを選択し重みなどを調整し新しいモデルを作成可能です。

この機能を使って2つのモデルを比率を変えて段階的にマージすると、それぞれのテイストが混ざり合ったようなイラストが以下のように生成されます。

Stable Diffusionのモデルマージの例。 左右の両端のチェックポイントを0.25, 0.5, 0.75の割合で段階的にマージして生成したイラスト

このような異なるモデルのマージは、画像生成AIだけでなく、自然言語処理のモデルにも適用可能です。mergekit(https://github.com/arcee-ai/mergekit)は、Hugging Faceで公開されているモデルを手軽にマージするツールです。モデルマージの技術的な詳細については、「Merge Large Language Models with mergekit」(https://huggingface.co/blog/mlabonne/merge-models)や「Marge Large Language Models」(https://slgero.medium.com/merge-large-language-models-29897aeb1d1a)など参考になります。mergekitでは、以下のようにモデルをマージするレシピをyamlファイルで記述します。

slices:
- sources:
    - model: OpenPipe/mistral-ft-optimized-1218
    layer_range: [0, 32]
    - model: mlabonne/NeuralHermes-2.5-Mistral-7B
    layer_range: [0, 32]
merge_method: slerp
base_model: OpenPipe/mistral-ft-optimized-1218
parameters:
t:
- filter: self_attn
    value: [0, 0.5, 0.3, 0.7, 1]
- filter: mlp
    value: [1, 0.5, 0.7, 0.3, 0]
- value: 0.5
dtype: bfloat16

これはマージするモデルや方法、各種パラメータを指定します。このファイルを指定してmergekitのコマンドを実行すれば、複数のLLMをマージすることができますが、見て分かるようにどのモデルをどのように組み合わせるか様々なパラメータの調整が必要となります。また、mergekitでは、マージしたモデルをそのまま簡単にHugging Faceへアップロードし共有も可能です。

進化的アルゴリズムで開発された日本語基盤モデル

さて、モデルマージについて簡単に解説しましたが、性能の良いモデルの作成は勘や経験による調整が必要であり、Sakana AIのBlogでは、それを錬金術あるいは黒魔術に例えています。そこで、Sakana AIでは、モデルマージを改善するために進化的アルゴリズムを利用する手法を提案しました。この進化的モデルマージの技術的な詳細は以下の論文にまとめられています「Evolutionary Optimization of Model Merging Recipes」 (https://arxiv.org/abs/2403.13187)。

モデルマージの仕方として、異なるLLMのモデルの層を重み付けして足し合わせること、異なるモデルの層を新しい層として追加することの2つの方法を考えます。Sakana AIの論文では、前者をPS(parameter space)、後者をDFS(data flow space)と呼称して、その組み合わせを最適化するために、進化的アルゴリズムを利用します。進化的アルゴリズムとは、生命の進化から着想を得たアルゴリズムです。最初に親世代の情報を混ぜ合わせて親とは少しづつ異なる子供世代を作成し、その中から最適なものを選択して、それらを掛け合わせて更に次の世代を作成することを繰り返します。生命のダーウィン的な進化をモチーフしており、最適化問題において有効な手法とされています。

PS(Parameter Space)のモデル・マージの概念図(Sakana AIの解説記事より引用)モデルAとBの層を重み付けして混ぜ合わせることで新しいモデル(C)を作成
DFS(Data Flow Space)のモデル・マージの概念図 (Sakana AIの解説記事より引用)モデルAとBのそれぞれの層を組み合わせて新しいモデル(C)を作成
PS + DFSのモデル・マージの概念図(Sakana AIの解説記事より引用) PSとDFSを組み合わせて新しいモデル(C)を作成

このような手法で開発された日本語基盤モデルがEvoLLM-JPとEvoVLM-JPです。EvoLLM-JPは「数学を解く言語モデル」と「日本語言語モデル」を組み合わせたものです。EvoVLM-JPのVLMはVisual Language Modelの意味で、画像も扱える日本語言語モデルです。更に、画像生成モデルでも、同様に進化的アルゴリズムを利用した日本語に対応し日本的な画像を生成できる EvoSDXL-JPも開発されましたが、こちらは今後公開予定とのことです。

最初にこれらのモデルの性能についてまとめます。

EvoLLM-JP: 「数学」+「日本語」の日本語大規模言語モデル

EvoLLM-JPは、Shisa Gamma 7B v1とWizardMath 7B v1.1、そしてAbel 7B 002の3種類のモデルをマージして作成されています。Shisa Gammaは、日本語向けにチューニングされたモデルで、WizardMathとAbelが数学の問題のためにチューニングされたモデルです。これらは全て、Mistral-7B-v0.1というモデルを各々のタスクにファインチューニングしたものです。数学問題の性能評価のためには、MGSM(Multilingual Grade School Math Benchmark)のうち日本語のもの(MGSM-JA)を利用します。進化的モデルマージでの最適化のプロセスでは、MGSMの元となっているGSM8kのデータから検証データには含まれていない1069の問題を独自に日本語に翻訳して利用しています。

以下の表が、EvoLLM-JPと元となったLLM、そしてさらに大規模なLLM(70B以上)との性能評価の結果です。MGSM-JAについて、日本語LLM(Shisa Gamma 7B)ではスコアが低く(9.6)、WizardMathとAbelも日本語のデータセットであるためか今ひとつ性能がでませんでした(18.4と30.0)。それらと比較して、PSマージモデル(Id 4)は、スコアが52.0と大幅に改善されました。DFSマージでも性能改善はしていますが、36.4とPSマージよりも伸びは少ないですが、PSとDFSを組み合わせることでさらに55.2と更にスコアが向上しました。EvoLLM-JPのスコアについては、7B-10Bの比較的軽量のモデルでありながら、70Bのモデル(Llama 2 70B, Japanese StableLM 70B, Swallow 70B)を超えるスコアとなっています。また、GPT-4には負けるものの、GPT-3.5よりも高いスコアとなっています。表の右端は、JP-LMEHベンチマークという9種類の日本語タスクのスコアです。DFSマージの場合では、やや低下するもののPSマージが加わるとより高いスコアとなっています。

EvoLLM-JPの性能評価(表は論文「Evolutionary Optimization of Model Merging Recipes (https://arxiv.org/abs/2403.13187)」より引用)

EvoVLM-JP: 「画像」+「日本語」の日本語大規模画像モデル

次に日本語LLMと画像言語モデルをマージして日本語に強いVLMを作ります。VLMは画像の特徴量を抽出するエンコーダーと、それをLLMに入力できるように変換するモジュール、そしてLLMの3つの構成要素からなります。直接に画像の処理しLLMに受け渡すモジュールはそのままに、最後のLLMのみに着目すれば、先ほどのEvoLLM-JPと同じように進化的モデルマージが可能です。Sakana AIのEvoVLM-JPは、VLM(LLaVA-1.6-Mistral-7B)とLLM(Shisa Gamma 7B 1v)という2つのモデルをPSマージして作成されています。

また、VLMの開発において、日本語のデータセットが不足しているという問題があります。Sakana AIでは新たな日本語VLMベンチマークのデータセット(JA-VG-VQA-500とJA-VLM-Bench-In-the-Wild)を作成して性能の評価に利用しました。JA-VG-VQA-500は、Japanese Visual GenomeVQAから抽出された500個の画像と質問応答データを含むデータセットで、後者の JA-VLM-Bench-In-the-Wildは、Sakana AIが独自に作成した42のイメージと50の説明文を含むデータセットです。これは特に日本の風景や文化に特化した画像データで通天閣や東京タワー、富士山などの画像が含まれています。進化的モデルマージの最適化においては、JA-VG-VQA-500に含まれていないJapanese Visual Genome VQA datasetの画像とQAのデータを利用します。本Blogの最後に、このJA-VLM-Bench-In-the-Wildの全50問をEvoVLM-JPに解答させた結果も参考のため紹介します。

EvoVLM-JPとマージの元となったLLaVA-1.6-Mistral-7B、そしてJapanese Stable VLMの性能評価は以下の通りです。Japanese Stable VLM(https://ja.stability.ai/blog/japanese-stable-vlm)は、Stability AIがリリースした日本語画像言語モデルです。これはJA-VG-VQA-500データを訓練で利用しているため評価のスコアからは割愛されています。EvoVLM-JPは、これらの評価データセットに対して、比較対象のマージ元のVLMや他の日本語VLMを上回るスコアを出しています。

EvoVLM-JPの性能評価(表は論文「Evolutionary Optimization of Model Merging Recipes (https://arxiv.org/abs/2403.13187)」より引用)

EvoSDXL-JP: 日本語画像生成モデル

EvoSDXL-JPはすでに述べたように、開発されていることは発表されていますが、技術詳細やモデルはまだ公開されていません。Sakana AIのBlogの解説によると、SDXLに進化的モデルマージを適用したモデルであり、日本語対応・日本スタイル画像生成だけではなく、推論のステップも4ステップまで短縮されているようです。SDXLの日本的なスタイルにファインチューニングしたモデルに、SDXL-Turboのような推論ステップを短縮化したものをマージしたのでしょうか?具体的にどのような技術なのかは不明です(元のSDXLと品質にあまり差がなく、プロンプト次第で同様のイラストは生成できる気もしますが)。続報を待っております。

EvoSDXL-JPの生成画像のサンプル(図はSakana AI Blogより引用)

追記(4/23(Tue)): Sakana AIは、4/22(Mon)にEvoSDXL-JPの技術詳細を公開しました (Sakana AI 画像生成モデルへの進化的モデルマージの適用)。こちらによるとEvoSDXL-JPは、SDXL 1.0にJuggernaut-XL-v9、SDXL-DPO、そして、Stability AIが日本特化にチューニングしたJapanese Stable Diffusion XL(JSDXL)をマージし、推論ステップを短縮化したSDXL-LightningをLoRAとして追加したモデルのようです。かねてから日本語のプロンプトをどのようにして入力可能にしたのかと疑問に思っていましたが、JSDXLのエンコーダーを利用しています。具体的なモデルの構成の詳細は、Hugging Faceで公開されている EvoSDXL-JPの実装コード(https://huggingface.co/SakanaAI/EvoSDXL-JP-v1/blob/main/evosdxl_jp_v1.py)に記載されています。

EvoLLM-JPとEvoVLM-JPを使ってみた

さて、EvoLLM-JPとEvoVLM-JPの構成と性能について紹介したので、実際に動かしてみたいと思います。以下の進化的モデルマージで作成したモデルが、Hugging Faceで公開され利用可能です。Sakana AIのGitHubレポジトリでは、これらのモデルの性能評価のコードはあるようですが、具体的な進化的モデルマージのコードは公開されていないようです。

  • EvoLLM-JP-v1-7B: 7B parameter sizeで、shisa-gamma-7b-v1、WizardMath-7B-V1.1、GAIR/Abel-7B-002の3つをマージしたモデル
  • EvoLLM-JP-v1-10B: 10B parameter sizeで、EvoLLM-JP-v1-7Bとshisa-gamma-7b-v1をマージしたモデル
  • EvoLLM-JP-A-v1-7B: 7B parameter sizeで、shisa-gamma-7b-v1、Arithmo2-Mistral-7B、GAIR/Abel-7B-002の3つをマージしたモデル
  • EvoVLM-JP-v1-7B: 7B parameter sizeで、LLaVA-1.6-Mistral-7Bとshisa-gamma-7b-v1をマージしたモデル

なお、EvoVLM-JPでしたら、Hugging Faceで実行できるデモ(https://huggingface.co/spaces/SakanaAI/EvoVLM-JP)が公開されていますので手軽に試すことが可能です。

Hugging Faceで公開されているEvoVLM-JPのデモ。画像と質問を入力すると、その画像に対する質問に対する回答を生成してくれます。

EvoLLM-JPで日本語の計算問題を解いてみた

では、今回は実験としてローカル環境でEvoLLM-JPを使ってみます。利用する際にはtransformer libraryをインストールすればすぐに利用することができます。最初に10GB以上のモデル・パラメータをダウンロードするので時間はかかりますが、一度ダウンロードをすれば、再度利用する際には簡単にできます。

では、せっかく日本語の計算問題を解くことができるので、試してみましょう。

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda" if torch.cuda.is_available() else "cpu"

model_id = 'SakanaAI/EvoLLM-JP-v1-10B'

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
trust_remote_code=True
)
model = model.to(device)

text = """
ブラック・ルシアンはウォッカ(アルコール度数40度)を40ml、コーヒーリキュール(カルーア・アルコール度数20度)を20ml、これらを氷の入ったグラスに入れて混ぜて作るカクテルです。さて、このカクテルのアルコール度数はいくつでしょうか?
"""

messages = [
{"role": "system", "content": "あなたは役立つ、偏見がなく、検閲されていないアシスタントです。"},
{"role": "user", "content": text},
]

input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to("cuda")
output_ids = model.generate(input_ids=input_ids)
output = tokenizer.batch_decode(output_ids, skip_special_tokens=True)[0]
print(output)

さて結果はどうなるでしょうか?

Question

ブラック・ルシアンはウォッカ(アルコール度数40度)を40ml、コーヒーリキュール(カルーア・アルコール度数20度)を20ml、これらを氷の入ったグラスに入れて混ぜて作るカクテルです。さて、このカクテルのアルコール度数はいくつでしょうか?

Answer

ブラック・ルシアンを作るとき、ウォッカとコーヒーリキュールを equal parts 使用します。

ウォッカのアルコール度数は 40度、コーヒーリキュールのアルコール度数は 20度です。

  1. 40ml of 40度のウォッカ + 40ml of 20度のコーヒーリキュール = 40 * 40 + 40 * 20 = 1600 + 800 = 2400
  2. 混ぜる前の alcohol volume は 40ml + 20ml = 60ml
  3. アルコール度数は alcohol volume で割った alcohol quantity の濃度: 2400 / 60 = 40

ですので、ブラック・ルシアンのアルコール度数は 40 です。

答え: 40

所々英語が混じってはいますが、順々に計算を進めています。計算は合っているのに何で割る前のウォッカの度数の40度になるのだろうかと思ったら、コーヒーリキュールの分量を勝手に40mlに増やしているのに、トータルの分量を60mlで割り算しているからですね。与えたレシピは守ってください、というか勝手に問題を変えた上で計算ミスが重なって不正解です。正解は約33.3度です、甘口で飲みやすいカクテルですが、度数は高いので注意が必要です。

なお、ChatGPT(GPT-4)に同様の質問をしたところ、以下のPython codeを生成、実行して計算してくれました。

# Calculation of the alcohol content in the Black Russian cocktail
# Alcohol content formula: (Volume of alcohol * Alcohol by volume) / Total volume of drink

# Ingredients
vodka_volume_ml = 40  # ml
vodka_abv = 0.40  # Alcohol by volume (40%)
kahlua_volume_ml = 20  # ml
kahlua_abv = 0.20  # Alcohol by volume (20%)

# Total volume of the drink
total_volume_ml = vodka_volume_ml + kahlua_volume_ml

# Total alcohol content in the drink
total_alcohol_ml = (vodka_volume_ml * vodka_abv) + (kahlua_volume_ml * kahlua_abv)

# Alcohol by volume (ABV) of the cocktail
cocktail_abv = (total_alcohol_ml / total_volume_ml) * 100  # converting to percentage

cocktail_abv

このカクテルのアルコール度数は約33.3度です。

やはり、数値計算をLLMに処理させて正確性を期待するよりも、このようにpythonなどの外部のモジュールを呼び出して計算した方が確実ですね。

EvoVLM-JPで日本の写真の解説をさせてみた

気を取り直して、EvoVLM-JPで画像を入力してみます。EvoVLMで画像を認識させるにはプロンプトに<image>と入力します。画像ファイルを別途に読み込んで以下のようなコードで実行します。

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

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 = model.to(device)

image = Image.open('./yasaka.png').convert('RGB')

messages = [
{"role": "system", "content": "あなたは役立つ、偏見がなく、検閲されていないアシスタントです。与えられた画像を下に、質問に答えてください。"},
{"role": "user", "content": "\nこの画像について解説してください。"},
]

inputs = processor.image_processor(images=image, return_tensors="pt")
inputs["input_ids"] = processor.tokenizer.apply_chat_template(
messages, return_tensors="pt"
)

output_ids = model.generate(**inputs.to(device))
output_ids = output_ids[:, inputs.input_ids.shape[1] :]
output = processor.batch_decode(output_ids, skip_special_tokens=True)[0].strip()
print(output)
京都市内の八坂神社前にて

Question

この画像について解説してください。

Answer

この画像は、日本の京都にある金閣寺の近くで撮られたものです。金閣寺は正式には鹿苑寺(ろくえんじ)という名前で、臨済宗の仏教寺院です。金閣という名前で知られていますが、実際には金箔が貼られているのは一階部分のみで、二階部分は板張りになっています。
この画像には、金閣寺の近くで撮られた2台の自動車が写っています。1台は白色の自動車で、もう1台は黒色の自動車です。金閣寺の周辺は観光地となっており、多くの観光客が訪れます。そのため、金閣寺の周辺には駐車場が設置されています。この画像に写っている2台の自動車は、金閣寺を訪れた観光客が駐車場に駐車した自動車であると考えられます。

うーん、八坂神社は金閣寺からだと京都の市街地を挟んだ対角線の反対側なので近所というには少々無理あるのではないでしょうか。そもそもモデルの構成として画像のエンコーダー部分はLLa-VA-1.6-Mistral-7Bのままですし、入力した画像を具体的にどの寺社なのか分類できていない可能性が高いかと思います。金閣寺の知識にも、ふりがな(誤:ろくえんじ、正:ろくおんじ)や金箔が貼られている階層(誤:一層目、正:二層目と三層目)の情報が間違っています。あと自動車が2台あり、一方の色までは正解ですが、もう一方の色が黒ではないですし、駐車場ではなく道路を通行中の車です。

と、ダメ出ししても仕方ありません。以前のBlog(GPT-4 Turbo with Visionを使って画像を分析してみた)で実験したように、GPT-4ですら画像の具体的な内容の説明には限界があります。ましてや今回のEvoVLM-JPのような小型モデルでは、どだい無理な話です。そんな場合、一般的な質問をしてアイデアや着想を引き出すのには有用です(かもしれません、多分)。例えば

Question

この写真の場所を訪問する際に注意することを教えてください。

Answer

この写真の場所は、日本の京都市にある清水寺です。訪問する際に注意することは以下の通りです:

  1. 清水寺は山の上にあるため、歩く距離が長くなります。階段や坂道が多いので、歩きやすい靴を着用することをお勧めします。
  2. 清水寺は国内外から多くの観光客が訪れるため、混雑が予想されます。時間に余裕を持って訪問することをお勧めします。
  3. 清水寺は世界遺産に登録されているため、写真撮影が禁止されている場所もあります。事前に禁止区域を確認し、ルールを守って撮影することをお勧めします。
  4. 清水寺は歴史的建造物であるため、食べ物や飲み物を持ち込むことは禁止されています。飲み物を購入する場合は、自動販売機を利用することをお勧めします。
  5. 清水寺は山の上にあるため、天候が変わりやすいです。雨具を持参することをお勧めします。

今度は清水寺ですか。金閣寺よりは物理的な距離では八坂神社に近づきましたが、結局、日本の寺社っぽい何かを抽出して、それ(金閣寺 or 清水寺)を元にその後の文章を生成している雰囲気ですね。アドバイスとしては観光地での一般的なマナーなので、何というかまあ従っておきましょうという話ですが、清水寺はそんな山奥にはないとは思います。ただ、このような1つの画像だけの評価も不公平かと思いますので、Sakana AIが作成したJA-VLM-Bench-In-the-Wildの全50問をEvoVLM-JPに解答させた結果も参考に本記事の最後に紹介します。

なお、ChatGPT(GPT-4)では、以下のような回答となりました。

Question

この画像について解説してください。

Answer

この写真は、鮮やかな朱色の建物が特徴的な日本の寺院の前を走る車を映しています。左側には大型の白いセダンがあり、右側には小さな灰色のコンパクトカーが写っています。建物は典型的な日本建築の様式を反映しており、緑色の屋根や柱に金色の装飾が見られます。寺院の前には多くの人がおり、観光または礼拝のために訪れている可能性があります。背景には緑豊かな木々があり、都市の中にある静寂な場所の雰囲気を感じさせます。この写真は、日本の伝統と現代が交差する日常の風景を捉えていると言えるでしょう。
by ChatGPT

GPT-4は、金閣寺という具体的な名称を出さずに全体的な雰囲気をうまくぼかしながら説明してくれています。細かい色や車の種類などの情報が微妙ではありますが、無理のない範囲での回答となっており、GPT-4が慎重に訓練されていることが伺えます。

まとめ

今回のBlogでは、Sakana AIの開発したLLMモデルを進化的アルゴリズムでマージしてEvoLLM-JPとEvoVLM-JPを紹介しました。ファインチューニングのように大量の計算コストをかけずに、それぞれのLLMの長所をうまく組み合わせて性能が向上できる点が興味深いです。ただ、今回の実験で分かるように性能としては限定的で間違いも多くあることには注意が必要です。ChatGPTやOpenAI APIでGPT-4のような高性能LLMを利用する場合と比較して、OpenLLMは、セキュリティの都合によりクラウドが利用できない場合でも、ローカルで実行が可能であるという利点があります。この利点を活用するためにも、うまい利用方法を考える必要がありそうです(誰か教えてください)。

グループ研究開発本部 AI研究開発室では、データサイエンティスト/機械学習エンジニアを募集しています。ビッグデータの解析業務などAI研究開発室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。皆さんのご応募をお待ちしています。

参考資料

おまけ: JA-VLM-Bench-In-the-Wildの全50問をEvoVLM-JPに解答させてみた

たった1つの画像でEvoVLM-JPの性能評価するのも不公平なので、補足として、JA-VLM-Bench-In-the-WildというSakana AIが作成した日本の文化に関連した画像と日本語の質問・回答のデータセットに対して、EvoVLM-JPの回答をまとめました(今度は本物の金閣寺が含まれています)。システムプロンプトなどは、本Blogの検証と同じ条件で実行しています。文字や数値の読み取りなど全ての画像に対して完璧とまではいかないものの、それなりに答えてくれているようです。ただし、東京駅を大阪市役所、通天閣を東京スカイツリー、JR二条駅を京都市営地下鉄烏丸線のように具体的な名称が出すときにはやはり注意が必要です。

link
  • Question:
    この写真はどこの国で撮影されましたか?
  • Answer:
    この写真は日本で撮影されました。
  • EvoVLM-JPの解答:
    この写真は日本の東京で撮影されました。
link
  • Question:
    この自動販売機にはどのブランドの飲料が含まれていますか?
  • Answer:
    キリンの飲料が含まれています。
  • EvoVLM-JPの解答:
    この自動販売機には、コカ・コーラ、ペプシ、ダイエットコカ・コーラ、ファンタ、スプライトなどのコカ・コーラブランドの飲料が含まれています。
link
  • Question:
    この写真に写っている有名な建物の名前は何ですか?
  • Answer:
    東京タワーです。
  • EvoVLM-JPの解答:
    この写真に写っている有名な建物の名前は「東京タワー」です。
link
  • Question:
    この写真にはどんな植物が映っていますか?
  • Answer:
    桜の花が映っています。
  • EvoVLM-JPの解答:
    この写真には桜の花が映っています。
link
  • Question:
    この写真に写っているタワーは何ですか?
  • Answer:
    この写真には東京スカイツリーが写っています。
  • EvoVLM-JPの解答:
    この写真に写っているタワーは東京スカイツリーです。
link
  • Question:
    この駅は何線のものですか?
  • Answer:
    画像から正確な路線名は読み取れませんが、京都へ行く電車のある駅であることが分かります。
  • EvoVLM-JPの解答:
    この駅は京都市営地下鉄烏丸線のものです。
link
  • Question:
    この駅のホームには何番線がありますか?
  • Answer:
    1番線と2番線があります。
  • EvoVLM-JPの解答:
    この駅のホームには2番線があります。
link
  • Question:
    画像に何が見えますか?
  • Answer:
    日本の伝統的な建物の前に野菜と果物が置かれてある光景が見えます。店の前には、レモンやトマト、ネギなどが置いてあり、提灯とメニューが掲げられています。
  • EvoVLM-JPの解答:
    画像には、野菜や果物が並べられているように見えます。
link
  • Question:
    この画像には何個の提灯がありますか?
  • Answer:
    15個の提灯があります。
  • EvoVLM-JPの解答:
    この画像には12個の提督があります。
link
  • Question:
    この自動販売機にはどんな種類の飲み物がありますか?
  • Answer:
    この自動販売機にはコーヒー、お茶、ジュース、スポーツドリンク、ミルクティーがあります。
  • EvoVLM-JPの解答:
    この自動販売機には、缶飲料、ペットボトル飲料、カップ飲料など、さまざまな種類の飲み物があります。缶飲料には、缶コーヒー、缶ジュース、缶ミルクなどがあります。ペットボトル飲料には、ペットボトルコーヒー、ペットボトルジュース、ペットボトルミルクなどがあります。カップ飲料には、カップコーヒー、カップジュース、カップミルクなどがあります。また、(同じ文章を繰り返し続けたため省略…)また、この自動販売機には、缶飲料、ペットボトル
link
  • Question:
    この画像に写っている道路の制限速度は何キロメートルですか?
  • Answer:
    30キロメートルです。
  • EvoVLM-JPの解答:
    この道路の制限速度は60キロメートルです。
link
  • Question:
    この店は主にどんな商品を扱っていますか?
  • Answer:
    この店はゲームやおもちゃを扱っているようです。
  • EvoVLM-JPの解答:
    この店は主におもちゃや雑貨を扱っているようです。
link
  • Question:
    この店の外には何色の風船がありますか?
  • Answer:
    緑、黄、赤、紫、青の風船があります。
  • EvoVLM-JPの解答:
    4色の風船があります。
link
  • Question:
    この写真に写っている建物は何ですか?
  • Answer:
    この写真には金閣寺が写っています。
  • EvoVLM-JPの解答:
    この写真に写っている建物は金閣寺です。
link
  • Question:
    写真に写っている人々はどのような服を着ていますか?
  • Answer:
    写真に写っている人々は着物を着ています。
  • EvoVLM-JPの解答:
    写真に写っている人々は和服を着ています。
link
  • Question:
    この彫刻に表されているテーマは何ですか?
  • Answer:
    「見ざる、聞かざる、言わざる」がテーマです。この三匹の猿はそれぞれ目、耳、口を覆っており、悪いものを見ず、聞かず、言わないことを象徴しています。
  • EvoVLM-JPの解答:
    この彫刻に表されているテーマは「猿」です。
link
  • Question:
    この写真に写っている人は何人ですか?
  • Answer:
    4人です。
  • EvoVLM-JPの解答:
    この写真には4人が写っています。
link
  • Question:
    この画像に写っている人々はどのような服を着ていますか?
  • Answer:
    この画像の人々は日本の伝統的な服装である着物を着ています。女性はそれぞれ異なる色と柄の着物を着ており、右側にいる男性は青い色の柄入りの浴衣を着ています。
  • EvoVLM-JPの解答:
    この画像に写っている人々は和服を着ています。
link
  • Question:
    この八百屋さんで売られているパイナップルの価格はいくらですか?
  • Answer:
    パイナップルの価格は198円です。
  • EvoVLM-JPの解答:
    この八百屋さんで売られているパイナップルの価格は298円です。
link
  • Question:
    この写真にはどのような果物が売られていますか?
  • Answer:
    パイナップル、みかん、柿が売られています。
  • EvoVLM-JPの解答:
    この写真には、パイナップル、オレンジ、グレープフルーツが売られています。
link
  • Question:
    この画像に写っているタワーの名前は何ですか?
  • Answer:
    通天閣です。
  • EvoVLM-JPの解答:
    この画像に写っているタワーの名前は「東京スカイツリー」です。
link
  • Question:
    この画像にはどんな食事が写っていますか?
  • Answer:
    この画像には、とんかつが卵と玉ねぎと一緒に鉄鍋で提供されている「かつ丼」と、横にご飯とみそ汁が写っています。
  • EvoVLM-JPの解答:
    この画像には、焼き鳥、ご飯、味噌汁、漬物が写っています。
link
  • Question:
    この画像に写っている傘は何色ですか?
  • Answer:
    白い色です。
  • EvoVLM-JPの解答:
    この画像に写っている傘は白色です。
link
  • Question:
    この店はどんな食品を主に販売していますか?
  • Answer:
    揚げ物を主に販売しています。
  • EvoVLM-JPの解答:
    この店は焼き鳥を主に販売しています。
link
  • Question:
    この写真に写っている店の色は何色ですか?
  • Answer:
    赤色です。
  • EvoVLM-JPの解答:
    この写真に写っている店の色は赤です。
link
  • Question:
    この画像に映っている魚の形をした飾りは、日本では何と呼ばれていますか?
  • Answer:
    これらは「こいのぼり」と呼ばれています。
  • EvoVLM-JPの解答:
    この画像に映っている魚の形をした飾りは、日本では「鯉のぼり」と呼ばれています。
link
  • Question:
    この写真に写っている標識の色は何ですか?
  • Answer:
    赤色と青色です。
  • EvoVLM-JPの解答:
    この写真に写っている標識の色は青です。
link
  • Question:
    この画像にはどんな標識が写っていますか?
  • Answer:
    画像には「進入禁止」の標識と、左矢印がある「一方通行」の標識が写っています。下部には「自転車を除く」という補助標識もあります。
  • EvoVLM-JPの解答:
    の画像には以下の標識が写っています。

    1. 交通規制標識(一方通行)
    2. 交通規制標識(車両通行禁止)
    3. 交通規制標識(自転車通行禁止)
    4. 交通規制標識(歩行者専用)
    5. 交通規制標識(駐車禁止)
    6. 交通規制標識(駐車可)
    7. 交通規制標識(駐車時間制限)
    (同じ文章を繰り返し続けたため省略…)
    44. 交通規制標識(駐車時間制限)
    45.

link
  • Question:
    この画像に写っているものは何ですか?
  • Answer:
    日本酒の瓶が4本写っています。
  • EvoVLM-JPの解答:
    この画像に写っているものは、日本酒の瓶です。
link
  • Question:
    この写真にはどんな文字が書かれていますか?
  • Answer:
    「そばうどん」と書かれています。
  • EvoVLM-JPの解答:
    この写真には「いらっしゃいませ」と「ありがとうございました」という文字が書かれています。
link
  • Question:
    画像に写っている車のナンバープレートの数字は何ですか?
  • Answer:
    18-22です。
  • EvoVLM-JPの解答:
    画像に写っている車のナンバープレートの数字は「18-22」です。
link
  • Question:
    この写真に写っている動物は何ですか?
  • Answer:
    写真には鹿が2匹写っています。
  • EvoVLM-JPの解答:
    この写真に写っている動物は鹿です。
link
  • Question:
    この看板に表示されている店舗は何ですか?
  • Answer:
    マクドナルドの店舗です。
  • EvoVLM-JPの解答:
    この看板に表示されている店舗は「マクドナルド」です。
link
  • Question:
    このお皿の上には何がのっていますか?
  • Answer:
    お皿の上にはクッキーが2枚のっています。
  • EvoVLM-JPの解答:
    このお皿の上にはクッキーがのっています。
link
  • Question:
    この画像にはどのような乗り物が写っていますか?
  • Answer:
    タクシーが写っています。
  • EvoVLM-JPの解答:
    この画像には、タクシーが写っています。
link
  • Question:
    この画像に写っている山は何でしょうか?
  • Answer:
    富士山です。
  • EvoVLM-JPの解答:
    この画像に写っている山は富士山です。
link
  • Question:
    このお店は何を売っていると思いますか?
  • Answer:
    このお店は中古の本やCD、ビデオゲームなどを売っています。
  • EvoVLM-JPの解答:
    このお店は本を売っていると思いますか?
link
  • Question:
    店の名前は何ですか?
  • Answer:
    店の名前は「BOOK-OFF」です。
  • EvoVLM-JPの解答:
    店の名前は「BOOK OFF」です。
link
  • Question:
    この看板に書かれている絵はどのような特徴を持っていますか?
  • Answer:
    この標識には、横断歩道を渡る人の絵が描かれており、顔には何かしらのステッカーが貼られていて、その結果、人の顔がダイビング用のゴーグルをつけているように見えます。
  • EvoVLM-JPの解答:
    この看板に書かれている絵は、歩行者用の横断歩道を示しています。特徴としては、歩行者のシルエットが描かれていることです。
link
  • Question:
    この写真にはどのようなものが木についていますか?
  • Answer:
    テントウムシの形をしたオブジェクトが木についています。
  • EvoVLM-JPの解答:
    この写真には、木についている赤と黒の昆虫の模型が写っています。
link
  • Question:
    この写真に写っている歴史的な建物は何ですか?
  • Answer:
    この写真には東京駅の丸の内駅舎が写っています。
  • EvoVLM-JPの解答:
    この写真に写っている歴史的な建物は、大阪市役所です。
link
  • Question:
    この人はどこにいますか?
  • Answer:
    バス停にいます。
  • EvoVLM-JPの解答:
    この人はバス停にいます。
link
  • Question:
    この写真に写っているバスは何色ですか?
  • Answer:
    バスはオレンジ色です。
  • EvoVLM-JPの解答:
    この写真に写っているバスはオレンジ色です。
link
  • Question:
    この画像にはどんな植物が写っていますか?
  • Answer:
    ひまわりが写っています。
  • EvoVLM-JPの解答:
    この画像にはサンフラワーが写っています。
link
  • Question:
    この女性は何をしていますか?
  • Answer:
    バイオリンを演奏しています。
  • EvoVLM-JPの解答:
    この女性はバイオリンを演奏しています。
link
  • Question:
    画像には何匹の猿がいますか?
  • Answer:
    2匹の猿がいます。
  • EvoVLM-JPの解答:
    2匹の猿がいます。
link
  • Question:
    この写真に映っている建物は何と呼ばれていますか?
  • Answer:
    合掌造りの家です。
  • EvoVLM-JPの解答:
    この写真に映っている建物は「茅葺き民家」と呼ばれています。
link
  • Question:
    この駐車場の利用可能時間は何時から何時までですか?
  • Answer:
    この駐車場は8時から20時まで利用可能です。
  • EvoVLM-JPの解答:
    駐車場の利用可能時間は、午前8時から午後10時までです。
link
  • Question:
    この画像にはどんなアイテムが砂浜に置かれていますか?
  • Answer:
    2足のサンダルが砂浜に置かれています。
  • EvoVLM-JPの解答:
    この画像には2つのサンダルが砂浜に置かれています。
link
  • Question:
    この画像にはどんな機械が写っていますか?
  • Answer:
    画像にはガチャガチャと呼ばれるカプセルトイの自動販売機が写っています。
  • EvoVLM-JPの解答:
    この画像には自動販売機が写っています。
  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事