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という機能が標準で搭載されており、簡単にマージして新しいモデルを作成できます。

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

このような異なるモデルのマージは、画像生成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)と呼称して、その組み合わせを最適化するために、進化的アルゴリズムを利用します。進化的アルゴリズムとは、生命の進化から着想を得たアルゴリズムです。最初に親世代の情報を混ぜ合わせて親とは少しづつ異なる子供世代を作成し、その中から最適なものを選択して、それらを掛け合わせて更に次の世代を作成することを繰り返します。生命のダーウィン的な進化をモチーフしており、最適化問題において有効な手法とされています。



このような手法で開発された日本語基盤モデルが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マージが加わるとより高いスコアとなっています。

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を上回るスコアを出しています。

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

追記(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)が公開されていますので手軽に試すことが可能です。

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度です。
- 40ml of 40度のウォッカ + 40ml of 20度のコーヒーリキュール = 40 * 40 + 40 * 20 = 1600 + 800 = 2400
- 混ぜる前の alcohol volume は 40ml + 20ml = 60ml
- アルコール度数は 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
この写真の場所は、日本の京都市にある清水寺です。訪問する際に注意することは以下の通りです:
- 清水寺は山の上にあるため、歩く距離が長くなります。階段や坂道が多いので、歩きやすい靴を着用することをお勧めします。
- 清水寺は国内外から多くの観光客が訪れるため、混雑が予想されます。時間に余裕を持って訪問することをお勧めします。
- 清水寺は世界遺産に登録されているため、写真撮影が禁止されている場所もあります。事前に禁止区域を確認し、ルールを守って撮影することをお勧めします。
- 清水寺は歴史的建造物であるため、食べ物や飲み物を持ち込むことは禁止されています。飲み物を購入する場合は、自動販売機を利用することをお勧めします。
- 清水寺は山の上にあるため、天候が変わりやすいです。雨具を持参することをお勧めします。
今度は清水寺ですか。金閣寺よりは物理的な距離では八坂神社に近づきましたが、結局、日本の寺社っぽい何かを抽出して、それ(金閣寺 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研究開発室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。皆さんのご応募をお待ちしています。
参考資料
- Sakana AI 「進化的アルゴリズムによる基盤モデルの構築」 (https://sakana.ai/evolutionary-model-merge-jp/)
- Evolutionary Optimization of Model Merging Recipes (https://arxiv.org/abs/2403.13187)
- SakanaAI/evolutionary-model-merge (https://github.com/SakanaAI/evolutionary-model-merge/)
- HuggingFace Sakana AI (https://huggingface.co/SakanaAI)
- mergekit (https://github.com/arcee-ai/mergekit)
- Marge Large Language Models (http://slgero.medium.com/merge-large-language-models-29897aeb1d1a)
- Merge Large Language Models with mergekit (https://huggingface.co/blog/mlabonne/merge-models)
おまけ: JA-VLM-Bench-In-the-Wildの全50問をEvoVLM-JPに解答させてみた
たった1つの画像でEvoVLM-JPの性能評価するのも不公平なので、補足として、JA-VLM-Bench-In-the-WildというSakana AIが作成した日本の文化に関連した画像と日本語の質問・回答のデータセットに対して、EvoVLM-JPの回答をまとめました(今度は本物の金閣寺が含まれています)。システムプロンプトなどは、本Blogの検証と同じ条件で実行しています。文字や数値の読み取りなど全ての画像に対して完璧とまではいかないものの、それなりに答えてくれているようです。ただし、東京駅を大阪市役所、通天閣を東京スカイツリー、JR二条駅を京都市営地下鉄烏丸線のように具体的な名称が出すときにはやはり注意が必要です。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD