見出し画像

にわにはにわにわとりがいる【ローカルLLM性能】

はじめに

ローカルで実行できるMicrosoft Phi-4の日本語性能が高いので、色々試していたのですが、やはり(トークン扱いから難しいとされるstrawberry問題系に共通する)日本語の言葉あそびは難しいようです。

いろいろ実験してみました。

最近リリースされたMicrosoft Phi-4と、下記事のモデルを比較してみます。

各LLMの回答

次の質問で試しました。

次の文章を意味のある日本語文に書き直して。
「にわにはにわにわとりがいる 。」

「庭には二羽、鶏がいる。」

ChatGPT 4o

さすがトッププレーヤーChatGPTです。ずばり正解です。死角はありませんね。(ただし有名な言葉遊びなので、GPTが出したものでなく、データベースから引っ張ってきただけなのかもしれません)

その文章は少し冗長で不自然な表現になっていますね。「庭にはニワトリがいる」という形に直してみます。
「庭にはニワトリがいる。」
これだと明確かつ自然な日本語の文章になります。

Phi-4

まあ、そんなものでしょう。

「庭には鶉がいる。」
注: 「にわ」という漢字は、一般的には「庭」を表すことが多いです。「にわにわとり」は、意味が重複していて不自然な文章です。

Llama-3-ELYZA-JP-8B

LLMはどれも上から目線ですね。

「にわには、にわとりがいます。」

qwen2.5-14b

予想通りLLMにとっては「二羽」が鬼門です。

庭には鶏がいます。

Mistral-Nemo-Japanese-Instruct-2408-12b

どれも似たような性能です。

工夫する

few shotプロンプト(例も情報として与える手法)を利用してみます。

あなたは日本語の言葉あそびの専門家です。
次の文章を意味のある日本語文に書き直して。
「にわにはにわにわとりがいる。」
例:「すもももももももものうち」→「李も桃も桃の内」
例:「はははははははのははははははとわらう」→「母は”はは”、母の母は”ははは”と笑う」

この文章は、「にわにはにわにわとりがいる」という言葉あそびです。「鶏を飼っているにわ(庭)に、さらにもう一つのにわ(庭)があります」と解釈できます。
書き直した文は次のようになります: 「庭には、もう一つの庭と鶏がいる。」

phi-4

面白い言葉遊びですね。専門家として、意味のある日本語文に書き直します。
元の文章:「にわにはにわにわとりがいる。」
書き直した文章:「庭には庭に鶏がいる。」
解説: この文章は「すももももももものうち」や「はははははははのははははははとわらう」のように、繰り返し文字を使用して意味のある文を作る言葉遊びです。元の文章は「にわにわにわとりがいる。」で、庭に鶏が複数居る印象を受けますが、意味のある日本語文にするために、繰り返しを省略して「庭には庭に鶏がいる。」のように書き直しました。

Llama-3-ELYZA-JP-8B

論理的な推論は正しいのですが、書き直して間違えてますね。

「にわには、にわとりがいる。」

qwen2.5-14b

Qwenはブレません。

もちろんです。「にわにはにわにわとりがいる。」を意味のある日本語文に書き直します。
「庭には鶏がいます。」
このようになります。いかがでしょうか?他にもご質問があればどうぞ。

Mistral-Nemo-Japanese-Instruct-2408-12b

「二羽」は難しいようです。

さらに工夫する(モンテカルロ木探索)

論理的なものに対して有効であるとされるモンテカルロ木探索法を利用してみます。

Phi-4

どうしても「二羽」の数の概念が難しいようです。

Elyza3
Qwen2.5

あまり改善はなさそうです。「二羽」は鬼門ですね。

さらに工夫する(ウェブ検索あり)

※ ただし、検索結果にはズバリ解答は含まれていません

「庭には庭で鳴くニワトリがいる。」
この書き換えでは、「にわ」という単語を分解し、その一つずつの文字から始まるフレーズを作成しています。「庭」は「にわ」を使っており、「鳴くニワトリ」は音が似ていることを利用しています。これにより、元の文章のリズムと意味を保持しつつ、遊び心ある表現が加わっています。

Phi-4

この文章を意味のある日本語文に書き直すと、「庭には鶏がいる」となります。
「にわにはにわにわとりがいる」の各単語を分解すると、以下のようになります。 「にわ」→「庭(にわ)」「にわ」→「にわ(ニワウサギ)」「にわとり」→「鶏」
それぞれの言葉を意味のある日本語文に再構成すると、「庭には鶏がいる」となります。
この書き換えは、元の文章の音韻的な繰り返しや重複を維持しながらも、その中にある意味を明確にするように作られています。

Qwen 2.5

さらに工夫する(チート)

ぜんぜんダメなので、ほとんど回答そのままを例に加えます。

あなたは日本語の言葉あそびの専門家です。
次の文章を意味のある日本語文に書き直して。
「にわにはにわにわとりがいる。」
例:「にわにわとりがいる」→「二羽鶏がいる」
例:「すもももももももものうち」→「李も桃も桃の内」
例:「はははははははのははははははとわらう」→「母は”はは”、母の母は”ははは”と笑う」

文章「にわにはにわにわとりがいる。」を意味のある日本語文に書き直すと:
「庭には、二羽鶏がいる。」
このように、「にわ」という音が重ねられていることで「二羽(にわ)」と読め、それに基づいて文章の意味を解釈します。

Phi-4 14b

ついに正解にたどり着きました!園児へのヒントレベルでしょうか。

面白い言葉あそびですね。
というわけで、「にわにはにわにわとりがいる」を意味のある日本語文に書き直します。
「庭には二羽鶏がいる」
この文章は、単純な同音異義語を利用した言葉あそびから脱し、実際の生活場面や情景を描写する日本語文として成立しています。

llama3 Elyza3 8b

これも正解です。

「にわにはにわにわとりがいる。」という文章を意味のある日本語文に書き直すと、「にわにはわとりがいる」となります。
これは「鶏がいるのは庭です」という意味になります。「にわには」という言葉から、この文章は「庭の」「ニワトリの」などの場所や対象を指していることが読み取れます。また、「にわに」は「わとりがいる」という文脈においては、主語である「にわ」が存在する状況を示しています。
したがって、「にわにはにわにわとりがいる。」という文章は「鶏がいるのは庭です」という意味合いを持つことがわかります。

Qwen2.5 14b

意味がわかりません。

「にわには二羽鶏がいる。」
このように、意味を持つ日本語文に書き直しました。この文章では、「にわには」という部分が冗長であるため、「にわには」を省略し、「二羽鶏がいる」と簡潔に表現しています。また、「にわにわ」の繰り返しも削除して、読みやすくしました。

Mistral-Nemo-Japanese-Instruct-2408-12b

ほとんど正解ですが惜しいですね。

まとめ

結果は予想通りで、あまり有意義な情報を得る事はできませんでしたが、Phi-4の性能は突出したものでは無くとも、他のローカルの日本語チューニングモデルを超える性能のようです。

今のところは暴走も経験していないので、安定性も上々です。

ちなみにPhi-4は、英語「strawberry問題」を難なく正解しています。ただし有名になりすぎたので、特別対応されているのかもしれません。

以下、関連する記事の【PR】です。

いいなと思ったら応援しよう!