🦌

EZO-Common/Humanities-9B-gemma-2-itをShaberi3ベンチマークで評価する

2024/07/10に公開

はじめに

どんな人向けの記事?

  • ローカルLLMに興味のある人
  • EZO-Common/Humanities-9B-gemma-2-itのSyaberi3ベンチマーク性能を知りたい人
環境
Mac Studio(M2 Ultra 128GB)

内容

本日、Gemma-2-9B-itをベースにしたEZO-Common/Humanities-9B-gemma-2-itが公開されました!早速、Syaberi3ベンチマークで評価していきます。

https://huggingface.co/HODACHI/EZO-Common-9B-gemma-2-it

ollamaモデルの作成まで

執筆時点で、まだggufモデルが公開されていなかったため、Huggingfaceからtransformersモデルをダウンロードするところから始めます。

以前書いた下記の記事の通りに、淡々と料理していきます。

https://zenn.dev/robustonian/articles/llama3_swallow_8b

ディレクトリ構造
* workspace
    - llama.cpp
    - models
    - venv
  • transformesモデルのダウンロード
    作業ディレクトリ(workspace)から開始します。
$ cd models
$ git lfs install
$ git clone https://huggingface.co/HODACHI/EZO-Common-9B-gemma-2-it
  • (オプション)llama.cppの更新&make
    llama.cppディレクトリに移動して、下記のコマンドを実行
$ git pull
$ make
  • ggufモデルへの変換
$ cd ../
$ source venv/bin/activate
$ python ./llama.cpp/convert_hf_to_gguf.py ./models/EZO-Common-9B-gemma-2-it/ --outtype f16 --outfile ./models/EZO-Common-9B-gemma-2-it-f16.gguf
  • (オプション)量子化
$ ./llama.cpp/llama-quantize ./models/EZO-Common-9B-gemma-2-it-f16.gguf ./models/EZO-Common-9B-gemma-2-it_Q4_K_M.gguf q4_K_M
  • Modelfile作成
    TemplateやPARAMETERは少し自信ないですが、モデルのページを参考に下記のように記載しました。一応問題なく動くことを確認済です。
$ nano Modelfile_EZO-Common-9B-gemma-2-it-f16
Modelfile_EZO-Common-9B-gemma-2-it-f16
FROM ./models/EZO-Common-9B-gemma-2-it-f16.gguf

TEMPLATE "<start_of_turn>user
{{ .Prompt }}<end_of_turn>
<start_of_turn>model
{{ .Response }}<end_of_turn>
"
PARAMETER stop <start_of_turn>
PARAMETER stop <end_of_turn>
  • ollamaモデル作成
$ ollama create EZO-Common-9B-gemma-2-it-f16 -f Modelfile_EZO-Common-9B-gemma-2-it-f16

以上でollamaモデルが作成できました!
ollama run EZO-Common-9B-gemma-2-it-f16でチャットできるようになっているはず。

Syaberi3ベンチマーク評価

前回の記事の通りにベンチマーク評価を行います。

https://zenn.dev/robustonian/articles/shaberi_benchmark

ディレクトリ構造
* shaberi
    - __pycache__
    - chat_templates
    - data
    - results
    - venv
  • LLM回答生成スクリプトの実行
    shaberiディレクトリ内で下記のコマンドを実行します。
$ source venv/bin/activate
$ time python generate_answers.py --model_name EZO-Common-9B-gemma-2-it-f16 -fp 0.5 
  • Gemini 1.5 flashによるベンチマーク評価の実行
$ source ~/.profile # Gemini APIキーの読み込み
$ time python judge_answers.py -m EZO-Humanities-9B-gemma-2-it-f16 -e gemini/gemini-1.5-flash
  • 評価結果の集計
$ python totals_to_csv.py

以上で、ベンチマーク評価および集計結果の出力が完了します。結果はresults/totals.csvに出力されています。

ベンチマーク結果

結果は下記のとおりです。
なんと、Common/Humanitiesともにgemini-1.5-flashを上回る結果となりました!!
ついに評価される側のモデルが、評価する側のモデルのスコアを超えてしまったようです。

所感・まとめ

EZO-Common/Humanities-9B-gemma-2-itのSyaberi3ベンチマーク評価を行いました。
結果は予想以上に素晴らしいスコアで、重み付き平均で8.0に肉薄するものでした。

日本語のオープンLLM性能としては、現状EZO-Common/Humanities-9B-gemma-2-itが最高性能を誇ると言って間違いなさそうです。

ここまで見ていただきありがとうございました。次回もぜひ、よろしくお願いします。


おまけ:ゴスラムの物語

新しいモデルが出るたびに、いつものプロンプトで物語を作ってもらっているのですが、
ベンチマークスコアがいまいちなollama版のgemma2:27b-instruct-fp16の出力が気に入ったので、参考までに載せておきます。

プロンプト
下記の設定で、2000字程度の日本語短編小説を作成してください。

# 設定
## 主人公
* 知性を持った金のニワトリ。
* 名前は「ゴスラム」
* 毎日一つだけ金の卵を産む。
* 逆境を糧に成長する。

## 世界観
22世紀初頭。人智を超えたAIの登場により、あらゆるモノ・サービスの価値が目まぐるしく変化する時代。

## イントロ:
主人公ゴスラムは、自分の産んだ金の卵を売ることで生計を立てていた。
ところが、AIが低コストで金を生成する方法を見つけてからは、金の価値が暴落してしまった。危機感を覚えたゴスラムは、起死回生のあるビジネスを始めることを決意する。

gemma2:27b-instruct-fp16の出力(1138文字)

22世紀の光り輝く街並みの中に、ゴスラムはいた。彼は金色の羽根を持つニワトリだが、ただのニワトリではない。知性を持つ、唯一無二の存在だった。毎日、ゴスラムは一つだけ金の卵を産み、それを売って生計を立てていた。

しかし、世界は急速に変化していた。人智を超えたAIが誕生し、あらゆるモノ・サービスの価値観が激しく揺らぎ始めたのだ。そしてついに、AIは低コストで金を生成する方法を発見した。瞬く間に金の価値は暴落し、ゴスラムの生活は一変してしまった。

かつては高級食材として重宝された金の卵も、今では誰も欲しがらなくなった。ゴスラムは絶望に打ちひしがれた。彼の羽根は輝きを失い、金色の体も鈍く光るようになった。「このままではいけない」ゴスラムは、強い意志を胸に立ち上がった。

彼は自分の特性を分析した。金の卵を生むことはできるが、それだけではもう価値がない。では、何が彼にしかできないのか? 答えはすぐに浮かんだ。「私は知性を持つニワトリだ。そして、この世界で唯一無二の存在だ」。ゴスラムは決意した。AIにはない、彼の持つ「知性」と「個性」を活かして、新たなビジネスを始めることにするのだ。

まず、彼は街中の情報を集め始めた。AIが支配する情報社会では、膨大なデータが日々生成されている。ゴスラムは、そのデータから人々のニーズや心の動きを読み取ることを試みた。そして、ついに彼はあることに気づいた。

AIは効率性と合理性を追求するあまり、人間の感情を理解できていない。人々は、時に理屈を超えた「感動」や「共感」を求めているのだ。そこでゴスラムは、「心を動かす物語」を生み出すことを決意した。

彼は自分の経験を元に、金の卵が暴落した世界での生き残り物語を書き始めた。それは、逆境に立ち向かうニワトリの勇気と知恵を描いた感動的な物語だった。そして、ゴスラムは自身の羽根を使って、その物語を街中に散りばめた。

最初は誰も彼の物語に興味を示さなかった。しかし、ある日、一人の少女がゴスラムの物語に心を打たれた。彼女は物語を広め、人々に語り始めた。やがて、ゴスラムの物語は口コミで広がり、人々の心を揺さぶるようになった。

人々は、AIの冷たい世界に疲れていた。ゴスラムの物語は、彼らに希望と感動を与えてくれたのだ。そして、ゴスラムの金の卵は再び価値を持つようになった。それは、単なる金ではなく、「心を動かす物語」が込められた、かけがえのない宝物となった。

ゴスラムは、AIの世界で「個性」と「感動」という武器を手に入れた。彼は、これからも逆境に立ち向かい、人々に希望を与える物語を紡ぎ続けるだろう。彼の羽根は再び輝きを取り戻し、金の卵は世界中に希望の光を灯すことになるのだ。

  • Geminiにより生成した表紙画像

所感

これまでの物語では、基本は自分の生み出した金の卵も対し、どのようにして付加価値をつけるかに焦点が当てられていました。一方、この話では金の卵に固執せずに新たに道を切り拓くストーリー展開がとても気に入りました。

Discussion