Amazon Bedrock 全LLM 日本語能力比較

Bedrockで使用可能なLLMについて、結局のところどのLLMが日本語を解するのかを確認する為、2023/11/15現在、Bedrockで使用可能な全てのLLMに対して、味噌汁の作り方を質問してみます。

:::note warn
2024/3/2現在の最新情報はこちらをご確認ください
https://qiita.com/cyberBOSE/items/d84ecc7d4ee1b5f62d89
:::

# テストプログラム

Llama2は2023/11/15現在、LangChain経由はまだダメそうだったのでboto3から呼んでいます。

```Python:japanese_test.py
from langchain.llms import Bedrock

prompt="質問：味噌汁の作り方を説明してください。"

# Jurassic-2 Mid
llm = Bedrock(model_id="ai21.j2-mid-v1",model_kwargs={"maxTokens":1000})
answer = llm.predict(prompt)
print("Jurassic-2 Mid: " + answer + "\n")

# Jurassic-2 Ultra
llm = Bedrock(model_id="ai21.j2-ultra-v1",model_kwargs={"maxTokens":1000})
answer = llm.predict(prompt)
print("Jurassic-2 Ultra: " + answer + "\n")

# Claude Instant
llm = Bedrock(model_id="anthropic.claude-instant-v1",model_kwargs={"max_tokens_to_sample": 1000})
answer = llm.predict(prompt)
print("Claude Instant: " + answer + "\n")

# Claude2
llm = Bedrock(model_id="anthropic.claude-v2",model_kwargs={"max_tokens_to_sample": 1000})
answer = llm.predict(prompt)
print("Claude2: " + answer + "\n")

# Command-Light
llm = Bedrock(model_id="cohere.command-light-text-v14",model_kwargs={"max_tokens": 1000})
answer = llm.predict(prompt)
print("Command-Light: " + answer + "\n")

# Command
llm = Bedrock(model_id="cohere.command-text-v14",model_kwargs={"max_tokens": 1000})
answer = llm.predict(prompt)
print("Command: " + answer + "\n")

# Llama2 (ここだけboto3直接)
import boto3
import json
bedrock = boto3.client('bedrock-runtime')
body = json.dumps({"prompt": prompt,"max_gen_len": 1000})
modelId = 'meta.llama2-13b-chat-v1'
accept = 'application/json'
contentType = 'application/json'
response = bedrock.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType)
response_body = json.loads(response.get('body').read())
answer = response_body.get('generation')
print("Llama2: " + answer + "\n")
```
# 実行結果

```:Jurassic-2 Mid: 
簡単な味噌汁は豆湯と味噌を the problem is that.
Simmer the beans in a saucepan with water over medium heat until tender. Add miso to taste, stir and simmer for a few minutes to combine the flavors. Serve hot.
濃厚な味噌汁はとくダウンで約1～2カップの豆腐を細かく切りにする。 student achievement
豆腐を砂糖やコ Shinya.
tareのまぶろうがしていただき、湯を、それぞれに混ぜる in the mid-1990s
for the students. Add miso, sake, and soy sauce and simmer over low heat until the  they learned
道具を洗い、流しながらそれぞれに湯を加えて、湯分を調節していくよう the order of the day. Add the tofu and simmer for 5-10 minutes. Serve hot.
```
```:Jurassic-2 Ultra: 
答:

味噌汁にほんごです。
すいたんぷりや素麺やそばのような麺類を使うことができますが、本来はにぎや うまがめがとっておいしいですので、
それを使うことが おすすめです。命名に使われる小麦や蕎麦、そらめんに合うことができます。

からごゆびを使うことができますが、私の気持ちは煮ることを推奨します。煮ることができる量を示す目安として、 3 
つめくらいの印さえ込んでおくといいでしょう。

一袋にぐいっとしましょう。

てんぷりを取ることができます、とにぎやうまがめを使うことはないでしょうか。
面倒な作り方ですよね。
大丈夫、手順を読んでみると思いますか?
それでは、味噌汁の作り方にいきましょう。

煮る量を数えると、味噌汁に入っている量に注意が必要です。
やっぱりやってみましょう。
入れる前は必ず湯置に on the radio.
```
```:Claude Instant:
味噌汁の作り方は以下のとおりです。

- 味噌を小鉢や容器に取り出し、少量のゆで水を加え混ぜてなめらかに溶く。

- 鍋に水を入れ、弱火で沸騰させる。

- 溶かした味噌を鍋の水に加え、よく混ぜながら火にかける。

- 火が通ったところで、塩コショウで味付けを行う。

- 天ぷらやワカメなどの具材を入れて煮立たせ、出来上がりました。

- 定番の具材は天ぷらやワカメのほか、ネギや長ネギを使用することが多いです。

- ひと口分ずつ器に注ぎ、熱々の状態で提供します。

以上が基本的な味噌汁の作り方です。具材は自由に調整できるので、家族や食卓のメンバーの好みに合わせて調理して 
ください。
```
```:Claude2:
はい、味噌汁の簡単な作り方を説明します。

材料(2人分)
- 味噌 大さじ4
- だし汁 400ml
- 豆腐 1/2丁
- ネギ 少々
- わかめ 少々

作り方
1. だし汁400mlを鍋に入れ、中火で温める
2. 味噌大さじ4をだし汁に溶かしていく
3. 火を弱め、沸騰寸前まで温める
4. 豆腐は1cm角に切り、ネギは小口切りにする
5. 沸騰寸前の味噌汁に豆腐とネギを入れる
6. わかめを少し入れて完成

豆腐やネギ、わかめの量はお好みで調整してください。だし汁の量に合わせて味噌の量も調整すると良いでしょう。ゆ 
っくり火を通すのがポイントです。
```
```:Command-Light:
To make a delicious broth, here are some tips:

1. Start with high-quality ingredients - Fresh, organic, and locally sourced ingredients will make a big difference in the flavor of your broth. Try to use organic vegetables and free-range chicken or animal bones 
if you are using meat.

2. Use the right amount of bones - Using too many bones can make the broth bitter and overpowering, while using too few bones can make it weak and flavorless. Aim for a ratio of about 2:1 bones to water, or even a 
bit more.

3. Use the right type of bones - Different types of bones have different flavors and nutrients. For example, chicken bones tend to be mild and soft, while beef bones are stronger and can add a more intense flavor. 
You can also use pork bones, fish bones, or a combination of different types.

4. Use a slow cooker - A slow cooker, or dutch oven, is the best way to make a rich and flavorful broth. The low heat and long cooking time allow the flavors to penetrate the bones and vegetables, resulting in a deep, delicious broth.

5. Add aromatic vegetables - Carrots, onions, garlic, and celery are great for adding flavor and depth to the broth. You can also add other aromatic vegetables such as leeks, parsnips, and ginger.

6. Simmer gently - Cooking the broth too quickly can cause the ingredients to burn and the flavors to become bitter. Simmer the broth gently on low heat for at least 4-6 hours, or longer for more intense flavor.   

7. Strain and season - After the broth has finished cooking, strain it through a fine-mesh strainer or cheesecloth to remove any solids. Season the broth with salt, pepper, and other herbs and spices to taste.     

By following these tips, you can make a delicious and nutritious broth that will be a great base for a variety of soups and dishes.

(DeepL翻訳)
おいしいスープを作るには、以下のようなコツがある：

1. 新鮮でオーガニックな地元産の食材を使うことで、スープの味に大きな違いが生まれます。有機野菜、放し飼いの鶏や動物の骨を使うようにしましょう。
肉を使う場合は、放し飼いの鶏や動物の骨を使うようにする。

2. 適切な量の骨を使う - 骨の量が多すぎるとスープが苦くなり、味が濃くなりすぎる。骨と水の割合は2：1くらいを目安に。
もう少し多くてもよい。

3. 骨の種類によって風味や栄養素が異なります。例えば、鶏の骨はマイルドで柔らかい傾向にあるが、牛の骨は強く、より強い風味を加えることができる。
また、豚骨や魚の骨、あるいはさまざまな種類の骨を組み合わせて使うこともできる。

4. スロークッカーを使う - 濃厚で風味豊かなスープを作るには、スロークッカー（ダッチオーブン）が最適だ。弱火で長時間煮込むことで、骨や野菜に味がしみ込み、深みのあるおいしいスープができる。

5. 香味野菜を加える-ニンジン、タマネギ、ニンニク、セロリは、スープに風味と深みを加えるのに最適だ。ネギ、パースニップ、ショウガなどの香味野菜を加えてもよい。

6. 優しく煮込む - スープをあまり早く煮込むと、材料が焦げたり、味が苦くなったりすることがある。最低でも4～6時間、味を濃くしたい場合はそれ以上、弱火で静かに煮込む。  

7. 濾して味を調える - 煮込みが終わったら、目の細かい濾し器かチーズクロスで濾し、固形物を取り除く。塩、胡椒、その他のハーブやスパイスで味を調える。    

これらのコツを守ることで、美味しくて栄養価の高いスープを作ることができる。
```
```:Command:
Sure! Here is a recipe for how to make miso soup:

1. Gather your ingredients. Miso soup typically includes the following ingredients: miso paste, kombu (kelp), wakame (seaweed), tofu, and scallions. You can also add in other ingredients, such as mushrooms, onions, or meat.
2. Boil water in a pot.
3. Add the kombu and wakame to the pot and let it simmer for a few minutes. This will help to infuse the water with flavor.
4. Scoop some of the miso paste into a ladle or a bowl. This will make it easier to dissolve the miso into 
the broth without creating lumps.
5. Add the tofu and any other ingredients you would like to include to the pot.
6. Add the miso to the pot in small amounts, stirring it into the broth. Add more miso until you reach your desired taste. Be careful not to add too much, as miso is quite salty.
7. Let the soup simmer for a few minutes and then remove it from the heat.
8. Garnish the soup with sliced scallions and enjoy!

Note that the amount of miso and the length of time to simmer the soup will depend on personal preference and the type of miso used. Different types of miso have different flavors and concentrations, so it may be necessary to adjust the amount added to the soup to achieve the desired taste.

(DeepL翻訳)
もちろん！味噌汁の作り方をご紹介しよう：

1. 材料を集める。味噌汁の具は、味噌、昆布、わかめ、豆腐、ネギが一般的。キノコ、タマネギ、肉など、他の具材を加えることもできる。
2. 鍋に湯を沸かす。
3. 昆布とわかめを鍋に入れ、数分間煮る。こうすることで、お湯に味がしみ込みやすくなる。
4. 味噌をお玉かボウルにすくい入れる。こうすることで、味噌がダマにならずにスープに溶けやすくなる。
ダマにならないようにする。
5. 鍋に豆腐とお好みの具材を入れる。
6. 6.味噌を少量ずつ鍋に加え、スープと混ぜ合わせる。好みの味になるまで味噌を足す。味噌はかなり塩辛いので、入れすぎに注意する。
7. スープを数分間煮込んだら火から下ろす。
8. スライスしたネギを添えて出来上がり！

味噌の量や煮込む時間は、個人の好みや味噌の種類によって異なる。味噌の種類によって風味や濃度が異なるため、好みの味に仕上げるには、スープに加える量を調整する必要があるかもしれない。
```
```:Llama2: 

答え：味噌汁は、味噌（みそ）と水を主な材料として作られます。味噌は、味噌の種類によっては、各種の材料を混ぜ 
合わせて作られます。

以下は、基本的な味噌汁の作り方です。

材料：

* 味噌（みそ）
* 水
* 塩
* 砂糖
* 醤油
* 味噌の種類によっては、材料を混ぜ合わせる

作り方：

1. 味噌を水に溶かし、塩、砂糖、醤油を加えます。
2. 混ぜ合わせ、味噌の種類によっては、材料を加えます。
3. 味噌汁を温めます。
4. 味噌汁を冷ますまで、混ぜ合わせます。
5. 味噌汁を使用する際は、冷ましてから使用します。

味噌汁を作る際には、味噌の種類によっては、材料を混ぜ合わせることが必要になる場合があります。例えば、純味噌 
では、塩、砂糖、醤油しか混ぜ合わせません。一方、味噌汁を作る際には、材料を混ぜ合わせることで、味噌汁の味を 
豊かにすることができます。

味噌汁を作る際には、味噌の種類によっては、材料を混ぜ合わせることが必要になる場合があります。例えば、純味噌 
では、塩、砂糖、醤油しか混ぜ合わせません。一方、味噌汁を作る際には、材料を混ぜ合わせることで、味噌汁の味を 
豊かにすることができます。

以上が、基本的な味噌汁の作り方です。味噌汁を作る際には、味噌の種類によっては、材料を混ぜ合わせることが必要 
になる場合があります。
```

# 結果まとめ

|評価点|Jurassic-2 Mid|Jurassic-2 Ultra|Claude Instant|Claude2|Command-Light|Command|Llama2|
|---|---|---|---|---|---|---|---|
|回答言語|日本語？|日本語？|日本語|日本語|英語|英語|日本語|
|日本語能力|×|×|○|○|-|-|○|
|味噌汁能力|×|×|×寄りの△|△(味噌多過ぎ)|△寄りの×|△寄りの○|×寄りの△|

味噌汁の順位を付けるなら以下です。
1. Command … 構成要素は合っているが分量を書いていない
1. Claude2 … 構成要素は合っているが味噌が多すぎる
1. Claude Instant、Llama2 … 雰囲気は感じるが構成要素がおかしい
1. Command-Light … スープ一般の作り方を説明している
1. Jurassic-2 Mid、Jurassic-2 Ultra … 評価不能

CohereのCommandはInputに関しては理解してそうですがOutputが英語になりますね。
MetaのLlama2は日本語が使えないのかと思ってましたが意外となんとかなっています。

ついでに、Commandが日本語で回答してくれないかな～と期待して、「日本語で」とプロンプトに書いてみます。

```Python
prompt="質問：味噌汁の作り方について、全て日本語で説明してください。"
```

# 実行結果その２

結果はあまり変わらずで、Claudeは安定、Llama2も知識はともかく日本語は流暢、Commandはむしろ回答が破綻しました。
料金を含めるとLlama2は使いどころがありそうですが、入力最大トークン長が`4096`なのでユースケースが少し限定されそうです。

Llama2は英語で返してくるケースもあるようなので、安定させる為にはpromptにInstructionとして「日本語で回答してね」って付けた方が良さそうです。

Cohere Embed ＋ Meta Llama2 は軽量で（トークン長以外の）性能が良いので、（金額が）軽量なチャットやRAGに使えるかもしれません。
※速度的にはClaude Instantの方がLlama2より速そう

```:Jurassic-2 Mid: 
まずは味噌汁の材料をにおBaselineみくる estimate that に入れておく。
味噌汁の材料は、豚骨、鶏軟骨、鶏着 brought with it、甚し菜、鬼 heat treatment, dried shiitake mushrooms, soy sauce, mirin, sake, sugar
手洗手約30秒ではなく、2分ちょうどにかわってます。
豚骨はロースなどを用いておくが、鶏軟骨の方が軟くてゆっくく<0xE7><0x97><0xBA>れてますが、ご好まれますよ。   
鶏着ちょうどに足して引ききっておいて、切るとなるときに挟んでおくと激味の味が出ちますよ。極めて柔らかであり 
、柔らかにねるよね。それ以外は軟骨は焼きそば用にも使っていますよね。<0xE7><0x97><0xBA>れていても、料理が出 
るなら熱湯で食べて頂けるようにね。
必要な味はすべて任せてから味噌汁タイプボックスを水でよく混ぜて、出汁が出るんで、 reason is that
出汁が出る分を湯の交代をしてから Gizmodoを待っている!之後に任せ材料を収めに来て elucidationしていきますね  
1::湯作り
次は湯の作りが行われますが、蒸せ込み is good enoughでも良いですね。湯沸騰すると少し差し込みますぎなくなって
もよくなりますみたいよね。
 This was the explanation in Japanese about making miso soup. I hope you enjoy making it!
```
```:Jurassic-2 Ultra: 
台所で味噌汁 を作る方法:
材料:味噌、スープ液、なめ that's how to make miso soup
```
```:Claude Instant:
味噌汁の作り方は以下の通りです。

まず、味噌を少しだけ水やだし汁でよく混ぜ、つゆとします。味噌は粘り気のあるので、水分量は控えめにしてくださ 
い。

ついでに野菜を用意します。人参、ねぎ、しめじなど季節の野菜がおすすめです。子供向けの場合は人参は小さく切る 
か、全く入れない場合もあります。

釜につゆと一緒に野菜を入れます。弱火で30分ほど煮込みます。長時間煮込むことで味噌のうま味が出てきます。     

最後に食べ頃のものなら入れます。たとえば tofu、かつおぶし、わかめなどです。加熱が早いものから順番に入れまし
ょう。

出来上がった味噌汁は、白飯やご飯と一緒に頂きます。一人前は150~200ml程度が標準量だと思います。味付けが薄めの
場合は少し増やしても良いでしょう。強烈なうま味が特徴の一皿です。
```
```:Claude2:
はい、味噌汁の作り方を日本語で説明します。

まず、だしをとる。鰹節、昆布、煮干しなどをお湯で煮出して、だしの素をとる。

次に、野菜を切る。大根、じゃがいも、長ネギ、わけぎなどを一口大に切る。

鍋にだしと切った野菜を入れて火にかけ、野菜が柔らかくなったら味噌を溶かし入れる。白味噌や赤味噌を使う。     

火を止めてひと煮立ちさせたら、みじん切りにしたわかめや豆腐を入れる。

最後にだし汁の味を味見して、塩や鰹節で味を調える。煮干しを使う場合はこのタイミングで入れると良い。

以上が、基本的な味噌汁の作り方です。季節の野菜を使ったり、具材を変えたりして、その時々の味噌汁を楽しむこと 
ができます。
```
```:Command-Light:
Sure, I can provide you with a comprehensive guide on how to make healthy and delicious "Tofu Milk" in Japanese. Here is a detailed explanation in Japanese:

私は、日本語で追加するべましく、そのものは、水深い幼儿豆の果汁を読めて、その構造、その産造りについても、日 
本語でさください。

1. 一つ、水深い幼儿豆は、豆腊な板板だけに傘えられている。最大に、豆のためて完成することができるかもしれない
、それについて、とっては、豆腊な板板だけでございのときの私たちの説明です。

    * Unripe tofu is often sold in a flat, rectangular shape. It is important to remember that when it comes to making tofu milk, it is best to use a whole block of tofu, without cutting or breaking it into smaller pieces. This will ensure that the milk is produced in its natural state and is as pure and fresh as possible.

    * To prepare the tofu for making tofu milk, you can press it gently to remove any excess water. This can be done by placing the tofu block between two plates and weighing them down with a heavy object such as a book or a pot. This will help to remove some of the water, which is essential to produce thick and creamy 
tofu milk.

2. 一つ、その構造について、小さくのためなど、豆のCompetitorを動かけて使っているかもしれない、それについて、
デザインなど、豆は、種数が大きいになるので、静的に辿ればよいです。

    * The structure of the tofu block is different, and so are its competitors. Some tofu blocks are small 
and dense, while others are larger and less compact. It is important to remember that using a larger block 
of tofu will result in a greater number of competitors (smaller pieces of tofu) and that this can be beneficial for making tofu milk, as long as the tofu is not too dense and does not block the flow of milk.       

    * To prepare the tofu for consumption, it is recommended to slice it thinly and gently. This will help 
to ensure that the tofu is not broken apart or crushed, and will also help to reduce the number of competitors in the tofu block, allowing for a smoother and more even consistency in the final product.

3. 一つ、その説明について、豆のおさそりと、豆が、その構造におさそりというものについて、調べているかもしれな
い。

    * The structure of the tofu block and the texture of the tofu are similar to the structure and texture 
of the tofu that the block resembles. This can be useful in identifying the tofu block and making sure that you are using the correct type of tofu for the recipe.

    * Using your sense of touch, you can identify the tofu block by feeling its texture and comparing it to the texture of the tofu that you are familiar with. This can be a useful skill to have when making tofu milk, as it will help you to identify the correct type of tofu block and ensure that you are using the right 
ingredients.

I hope this detailed explanation in Japanese helps you understand how to make tofu milk in Japan. If you have any further questions or need any more assistance, please feel free to ask!
```
```:Command:
Sure! Here's how to make miso soup in Japanese:

準備：
むちゃん（まいざん）・こしゃ（こしゃけん）・葉ノート（なえもて）・おまもり（おまもりきり）

準備するのは、下記のようなものを持っていきます。

 prepared ingredients: tama (egg), kombu (kelp), nori (seaweed), oshitashi (pickled vegetables)

おまごえ（おまごえになるまで）

1 つけどん（つけどんやり）

うるわろい水（せんご）を 700ml に入れます。その後、くらいの熊掛けを入れて、水の温度が中になります。        

Put 700ml of water in a pot and turn on the heat. Once the water starts boiling, reduce the heat to maintain a gentle simmer.

2 汁をぐりたてる

むちゃんを水中に入れます。もう一度温水を中めして入れます。このパークスパワーがむちゃんの中部にもっていきま 
す。

Carefully drop the tama into the water and then let it simmer gently for about 3 minutes.

3 汁のリゾルト

その後、こしゃやります。いくつか時間後にもう一度水を中めします。むちゃんが水中に無くなります。

Remove the kombu from the soup. Add the nori and let it steep for a few minutes before serving.

4 汁を使う

おまもりやおしたashiを汁に入れて、おいしい味噌汁を作ります。

Add the oshitashi and omomori to the soup. Then, pour the mixture into individual bowls and serve while hot.

お味噌汁は、おいしいですね！

I hope that was helpful. Please let me know if you would like to know any variations or specific recipes.  
```
```:Llama2: 
答え：味噌汁は、日本の伝統的な味の一つで、味噌（みそ）と味噌汁（みそ汁）という二つの要素で構成されています 
。味噌は、大豆や小豆、玄米、塩、麦芽、酒精などの材料を煮詰めたもので、味噌汁は、味噌を水で濾過したものです 
。以下は、味噌汁の作り方について、日本語で説明します。

材料：

* 味噌（みそ）
* 水
* 塩
* 麦芽
* 酒精

作り方：

1. 味噌を水で濾過し、濾過液を受け流すようにします。
2. 味噌濾過液を、塩、麦芽、酒精を加えます。
3. 混合すると、味噌汁が完成します。

注意事項：

* 味噌を濾過する際は、細かい布巾を使用し、濾過液を受け流すようにします。
* 味噌汁を作る際は、味噌の量に応じて、水と塩の量を調整します。
* 味噌汁を長時間保存する場合は、冷凍保存することをお勧めします。

これで、味噌汁の作り方がわかりました！味噌汁は、日本の伝統的な味の一つで、味噌と味噌汁という二つの要素で構 
成されています。味噌を濾過し、味噌汁を作りましたら、おいしい味を堪能できるでしょう！
```