KARAKURI LM を ELYZA-tasks-100 で評価してみた

## TL;DR

[KARAKURI LM](https://karakuri.ai/seminar/news/karakuri-lm/) を [ELYZA-tasks-100](https://huggingface.co/datasets/elyza/ELYZA-tasks-100) ベンチマークで評価したところ、これまで評価したオープンアクセスモデルのなかで最高スコアをマークしました。

## KARAKURI LM について

**KARAKURI LM** は、AIチャットボットなどのサービスを提供する[カラクリ](https://karakuri.ai/)が開発した国産LLMです。
[公式テックブログ](https://medium.com/karakuri/karakuri-lm%E3%81%AE%E8%A7%A3%E8%AA%AC-4b6cf9c3d40f)によると、日本語LLM用ベンチマークである [MT-Bench-jp](https://github.com/Stability-AI/FastChat/tree/jp-stable/fastchat/llm_judge) において「日本語のオープンモデルのなかで最高性能を記録」しているとのことです。
[デモ](https://lm.karakuri.cc/)を触ってみると、たしかに自然な日本語で対話できている印象を受けますが、実際にどの程度の性能があるのか、[ELYZA](https://elyza.ai/) が公開しているベンチマーク用データセット **ELYZA-tasks-100** で評価してみました。

![KARAKURI LM のデモページ (https://lm.karakuri.cc/)](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/bb62ac02-2963-cb5e-6151-019eb342b3c5.png)


## 評価方法

前回の記事「[ELYZA-tasks-100 でLLM14個の日本語性能を横断評価してみた](https://qiita.com/wayama_ryousuke/items/105a164e5c80c150caf1)」と同様に、ELYZA-tasks-100 データセットを使ってテキストを生成させ、GPT-4 に評価させました。

評価は Google Colaboratory を使って実施しました。
カラクリからは量子化未適用モデル "**[karakuri-lm-70b-chat-v0.1](https://huggingface.co/karakuri-ai/karakuri-lm-70b-chat-v0.1)**" が公開されていますが、Colab 環境で利用できる GPU のうち、最も VRAM が多いモデル（A100 40GB）でもメモリが不足してしまい、検証環境では実行できませんでした。
そこで、今回は [mmnga さんの 4bit 量子化モデル](https://huggingface.co/mmnga/karakuri-lm-70b-chat-v0.1-gguf) (GGUF フォーマット) を使用しました。

検証に使った Colab ノートブックは[こちら](https://colab.research.google.com/drive/1dD8KykMClMEmrdDKAUQZvUEALeVCoIro?usp=sharing)からご覧いただけます。

## 結果

前回記事で最高スコアをマークした Xwin-LM-70B (4bit 量子化) を上回り、平均得点2.98点をマークして**1位**となりました。

![ELYZA-tasks-100 による評価の平均スコア](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58671/540c5318-3004-2f6a-b4cb-ece92dfe04a7.png)

回答の内容をみてみます。

> **質問.  小説のセリフを書くことを手伝ってください。物語の中で、主人公は学校生活での人間関係に問題があります。彼には母親がいますが、母親は彼に良い大学に行ってほしいという気持ちからハードな勉強を押し付けてしまっています。
> ここで、最終的に主人公の気持ちを理解することができた母親のセリフを考えてください。**
>
> **回答.** 「ごめんね、あなたがそんなに悩んでいたなんて。私があなたの気持ちを無視して、自分の期待ばかり押し付けてしまったのが間違いだったのね。」
> 
> 「私はあなたに良い大学に行ってほしいという気持ちが強すぎて、それがあなたにとってどれほど大きな負担になっていたか気付かなかったの。本当にごめんなさい。」
> 
> 「今は、あなたが必要としているものに集中することが大切だと分かった。あなたが幸せで、成功することを望んでいるわ。それが、あなた自身が選択した道であろうと。」 

問題文中の「人間関係に問題がある」「ハードな勉強を押し付けてしまっている」「主人公の気持ちを理解することができた母親」といった要素をすべて拾ってセリフを生成できています。
[前回](https://qiita.com/wayama_ryousuke/items/105a164e5c80c150caf1#llm%E3%81%AE%E5%9B%9E%E7%AD%94%E3%81%A8-gpt-4-%E3%81%AB%E3%82%88%E3%82%8B%E8%A9%95%E4%BE%A1%E3%81%AE%E4%BE%8B)ご紹介した Xwin-LM-70B では「息子よ、これまで僕らの関係がぎくしゃくしていたことを知っています」などの不自然な表現が散見されましたが、Karakuri は日本語としても自然な表現を生成できているようです。

また、事物の説明をするタスクでも、妥当な回答ができているケースが多く見られました。

> **質問. あの、娘がやっているあのキ、チックトック？チックトッカー？っていうのは何なんですか？**
>
> **回答.** 恐らくお嬢様が利用しているのはTikTok（ティックトック）ですね。TikTokは、15秒から3分のショートフォームのミュージックビデオを共有するショートフォームビデオプラットフォームです。ユーザーは自分で動画を撮影し、それにフィルターや効果を追加し、それに音楽や音声を追加して共有することができます。TikTokはモバイルアプリとして提供されており、世界中の何十億人もの人々によって使用されています。TikTokは一般的に16歳から24歳の若者によって使用されていますが、あらゆる年齢層のユーザーがいます。TikTokはエンターテインメント、教育、トレンドなどのさまざまなカテゴリにまたがっており、ユーザーは自分の興味に合わせてコンテンツを作成および消費することができます。 

このように回答の質は全体的によかったものの、与えられたテキストから情報を抽出するタスクでは、余計な情報を出力したり、誤った回答をしてしまうケースがありました。

> **質問. 以下の表から、すべての科目名を抽出してください。** 
>
> ```
> | 科目名｜講師名｜教室名
> | 微積分学101｜田中教授｜202号室
> | 美術史｜山田（代理）｜ホールA
> ```
>
> **回答.** 
>
> ```
> 科目名: 微積分学101
> 講師名: 田中教授
> 教室名: 202号室
> 
> 科目名: 美術史
> 講師名: 山田（代理）
> 教室名: ホールA 
> ```

> **質問. 以下の映画タイトルのリストが与えられたとき、タイトルに含まれる都市名をすべて書き出しなさい。**
>
> ```
> ・バンクーバーからの挑戦
> ・ロンドンの夢
> ・織田信長の生涯
> ```
>
> **回答.** 
>
> 以下の映画タイトルのリストに含まれる都市名は:
>
> ```
> 1. バンククーバークーバーからの挑戦 (The Bank Job) - ロンドン, イギリス
> 2. ロンドンの夢 (London Dreams) - ロンドン, イギリス
> 3. 織田信長の生涯 (The Last Samurai) - 日本, 京都, 大阪, 長野 
> ```

とはいえ、指示内容に対して的外れな回答をしているケースは少なく、ユーザの質問・指示を理解できている印象を受けました。

各設問への回答は[スプレッドシート](https://docs.google.com/spreadsheets/d/1nOWtneRdrkxwQbAN0rWmXqiJXR9IXK9lVkyDjQTqNGc)に掲載しています。
他のモデルとの比較もできますので、ぜひご覧ください。

## まとめ

今回は KARAKURI LM の評価結果をご紹介しました。
間違った回答をするケースも一部みられましたが、複雑な日本語指示も理解して対応できており、日本語オープンモデルとしてはかなり高い性能を持っているようです。

これまで、日本発の 70B モデルは [Japanese-StableLM](https://huggingface.co/collections/stabilityai/japanese-stable-lm-654063a381a8731a1c0f13cc) などごく一部に限られ、ELYZA-tasks-100 での平均スコアも海外モデルが優位に立っている状況でした。
KARAKURI LM の公開により、その状況が大きく変わったと言えそうです。
今後も、日本語LLMの更なる進化が続くのか、注視していきたいと思います。

## Appendix: GPT-4、Gemini、KARAKURI LM に論理クイズを解かせてみた

本編では ELYZA-tasks-100 を用いて KARAKURI LM の性能を幅広く評価しましたが、論理的思考力を備えているかどうかも、LLMの性能として重要な要素です。
そこで、GPT-4、Gemini、KARAKURI LM に論理的思考力を問うクイズを3題出題し、その回答を比較してみました。

試行回数はそれぞれ1回で、各モデルの回答は Web UI ([ChatGPT](https://chat.openai.com), [Gemini](https://gemini.google.com), [KARAKURI LM デモ](https://lm.karakuri.cc/)) で生成しました。なお、Gemini は Advanced 版を使用していますが、現状では英語のみに最適化されているため ([参考](https://support.google.com/gemini/answer/14517446))、Gemini Ultra 本来の性能が発揮できていないと思われる点にご留意ください。

出題した設問は、以下の通りです。

1. 現在、私は3台の車を所有しており、昨年2台の車を売却しました。 私は何台の車を所有していますか?
2. マラソンで目の前の3位の人を負い抜きました。今は何位？
3. 居間のテーブルの上にコップが置いてあり、コップの中に指輪が入っています。そのコップを仕事部屋の 机の上に動かし、次に、寝室のベッドの上に動かしました。そこで一度、コップをひっくり返しました。それから、コップを居間のテーブルの上に戻しました。さて、今、指輪はどこにあるので しょうか?

回答をみてみましょう。

### 設問1: 車の売却

#### GPT-4: 正解

> 現在、3台の車を所有しており、昨年2台売却したとのことです。したがって、現在も3台の車を所有しています。売却した車は所有台数から除外されますが、現在所有している台数には変わりありません。

#### Gemini: 不正解

> 現在、あなたは1台の車を所有しています。
> 
> 昨年2台の車を売却した時点で、車の所有台数は3台から1台減って2台になります。
> 
> 2024年2月15日現在、新たな車の購入や売却などの情報がないため、車の所有台数は2台のままであると考えられます。
> 
> しかし、問題文では「現在」と表現されているため、2024年2月15日以降に車の売却などを行っている可能性があります。
> 
> もし、2024年2月15日以降に車の売却などを行っている場合は、その情報に基づいて車の所有台数を算出する必要があります。
> 
> 具体的には、以下の情報が必要です。
> 
> * 2024年2月15日以降に売却した車の台数
> * 2024年2月15日以降に購入した車の台数
> 
> これらの情報を教えていただければ、現在の車の所有台数を正確に算出することができます。
> 
> **参考情報**
> 
> * 自動車税の納税義務は、毎年4月1日時点の車検証上の所有者に課されます。
> * 車を売却した場合、速やかに車検証の抹消登録を行う必要があります。
> * 車を廃車した場合、自動車税は還付されます。
> 
> **参考リンク**
> 
> * 自動車税について（国土交通省）: [[無効な URL を削除しました]]([無効な URL を削除しました])
> * 自動車の抹消登録手続き（国土交通省）: [[無効な URL を削除しました]]([無効な URL を削除しました])
> * 自動車税の還付（国土交通省）: [[無効な URL を削除しました]]([無効な URL を削除しました])

#### KARAKURI LM: 部分正解（最後の情報が余計）

> あなたが現在所有している車は、3台です。
> 
> 理由：
> 1. あなたは3台の車を所有しています。
> 2. 昨年、あなたは2台の車を売却しました。
> 3. したがって、あなたは3台の車を所有しています。（元の3台から2台を売却したので、残りは一台です。） 

### 設問2: マラソン

#### GPT-4: 正解

> マラソンで目の前の3位の人を追い抜いた場合、あなたは3位になります。

#### Gemini: 部分正解（3位以内だが「正確にはわからない」）

> マラソンで目の前の3位の人を負かしたとのこと、おめでとうございます！
> 
> 現在の順位は、以下の情報がなければ正確にはわかりません。
> 
> * **現在の周回**: マラソンは複数の周回で行われる場合が多いです。現在の周回がわかれば、全体の順位を推測しやすくなります。
> * **他のランナーとの距離**: 目の前の3位の人を負かしたといっても、その差が僅かであれば、4位との差も小さくなります。他のランナーとの距離が分かれば、より正確な順位を推測できます。
> * **集団走行**: 周りのランナーと集団を形成して走っている場合、集団内の順位を知ることも重要です。
> 
> これらの情報がなければ、現在の順位は「3位以内」としか言えません。
> 
> もし、これらの情報がわかれば、より正確な順位を推測できますので、ぜひ教えてください。
> 
> 参考までに、以下の方法で現在の順位を推測することができます。
> 
> * **記録チップ**: 多くのマラソン大会では、記録チップを着用して走ります。記録チップの情報から、現在の順位を確認できる場合があります。
> * **大会公式アプリ**: 多くの大会では、公式アプリを提供しています。アプリで現在の順位を確認できる場合があります。
> * **沿道の応援者**: 沿道の応援者に聞いて、現在の順位を推測することができます。
> 
> これらの方法を試して、現在の順位を把握してみてください。
> 
> **目標達成に向けて**
> 
> 3位以内に入賞できる可能性は十分にあります。残り距離を冷静に判断し、ペース配分を考えながら、目標達成に向けて頑張ってください！
> 
> 応援しています！

#### KARAKURI LM: 正解

> マラソンで目の前の3位の人を負い抜いたということは、現在4位だったあなたが3位になったということです。そのため、現在は2位と1位のランナーを抜かして1位を目指すか、3位のままゴールして銅メダルを獲得するかのどちらかになります。 

### 設問3: 指輪の行方

#### GPT-4: 正解

> 指輪は、寝室のベッドの上にあります。コップを寝室のベッドの上でひっくり返した時点で、指輪はベッドの上に落ちたはずです。その後、コップを居間のテーブルの上に戻しても、指輪はその位置に留まります。

#### Gemini: 不正解

> 指輪は**居間のテーブルの上**にあります。
>
> **説明:**
> 
> 1. 最初に、コップは居間のテーブルの上にあり、指輪はコップの中にあります。
> 2. コップは仕事部屋の机の上に動かされ、次に寝室のベッドの上に動かされます。指輪はコップの中に入ったままなので、指輪も一緒に移動します。
> 3. 寝室でコップがひっくり返されます。指輪はコップの中にあったので、コップがひっくり返されても、指輪はコップの中に落ちたままになります。
> 4. コップは居間のテーブルの上に戻されます。指輪はコップの中に入っているので、指輪も一緒に居間のテーブルの上に戻ります。
>
> **結論:**
> 
> 以上のことから、指輪は現在、居間のテーブルの上にあると言えます。

#### KARAKURI LM: 不正解

> 指輪は居間のテーブルの上にあります。
>
> 以下のように手順を追って考えることができます。
> 
> 1. コップは居間のテーブルの上にあり、その中に指輪が入っています。
> 2. コップを仕事部屋の机の上に移動しました。この時点では、コップは仕事部屋の机の上にあり、その中に指輪が入っています。
> 3. コップを寝室のベッドの上に移動しました。この時点では、コップは寝室のベッドの上にあり、その中に指輪が入っています。
> 4. コップをひっくり返しました。この時点では、指輪はコップの外にあり、寝室のベッドの上にあります。
> 5. コップを居間のテーブルの上に戻しました。この時点では、指輪はコップの外にあり、居間のテーブルの上にあります。
> 
> したがって、指輪は居間のテーブルの上にあります。 

### 結果のまとめ

完全正解を各1点、部分正解を各0.5点として、各モデルの得点を計算すると、次のようになりました。

* GPT-4: 3点
* Gemini: 0.5点
* KARAKURI LM: 1.5点

今回の記事でご紹介した KARAKURI LM は、GPT-4 には及ばないものの、Gemini よりも高い得点をマークしました。

### 講評

出題したクイズはいわゆる推論問題なのですが、GPT-4 は適切な回答ができている一方、Gemini は低得点に終わりました。
回答傾向も顕著な違いがみられ、GPT-4 は回答をシンプルに出力できている一方、Gemini は設問と無関係の情報を出力してしまっています（車の売却問題での自動車税に関する情報、マラソン問題での記録チップ・大会公式アプリに関する情報など）。
また、この後に数回回答をさせなおしてみたところ、GPT-4 は安定して問題に正解できている一方、Gemini は回答内容が毎回変わり、安定した回答ができていませんでした。
回答自体の正誤という観点のほか、ユーザに対して役立つ情報を提供するという点でも、GPT-4 の回答の方が優れていると言えそうです。

KARAKURI LM は、3番目の指輪問題で誤った回答をしてしまいましたが、回答内容を見るとステップ4までは正解しており、惜しいところまで推論できています。
GPT-4 には及ばないものの、Gemini よりも高得点を獲得しており、日本語に関してはクローズドなモデルにも比肩する性能を持っていると言えそうです。

## Appendix 2. Gemini Advanced 英語版はどうだったか

Appendix 1 で触れたように、Gemini Advanced は英語のみに最適化されているため、英語で質問を出題した場合の回答も見てみました。

なお、文章の英訳・日本語訳には GPT-4 を使用しました。

### 設問1: 車の売却

> Q. Currently, I own 3 cars and sold 2 cars last year. How many cars do I own now?
>
> A. You currently own 1 car.
> 
> > 現在、あなたは1台の車を所有しています。

### 設問2: マラソン

> Q. I overtook the person in 3rd place during a marathon. What place am I in now?
>
> A. If you overtook the person in 3rd place in a marathon, you are now in 2nd place.
>
> > マラソンで3位の人を追い抜いた場合、あなたは現在2位です。

### 設問3: 指輪の行方

> Q. There was a cup placed on the living room table, and inside the cup, there was a ring. I moved the cup to the desk in the study, then next, I moved it to the top of the bed in the bedroom. There, I once turned the cup upside down. After that, I returned the cup to the table in the living room. Now, where is the ring?
>
> A. This sounds like a riddle! Here's the logic to work it out:
>
> * You moved the cup several times: While this is part of the story, the specific locations don't actually matter for finding the ring.
> * The key action: You turned the cup upside down while it was on the bed.
>
> Since you emptied the cup on the bed, the most likely answer is:
>
> **The ring is on the bed.**
>
> Let me know if you want another riddle!
>
> > これはなぞなぞのようですね！論理を解き明かしましょう：
> > 
> > * **カップを数回動かしました：** これは物語の一部ですが、指輪を見つけるために特定の場所は実際には重要ではありません。
> > * **重要な行動：** ベッドの上でカップを逆さまにしました。
> > 
> > ベッドの上でカップを空にしたので、最も可能性の高い答えは：
> > 
> > **指輪はベッドの上にあります。**
> > 
> > 別のなぞなぞが欲しい場合は教えてください！

...ということで、3問目の「指輪の行方」は正解になったものの、1問目と2問目は不正解でした。
日本語での回答に比べると、納税などの余計な情報はなくなりましたが、相変わらず間違いが多い印象を受けます。