llama.cpp 日本語モデル性能比較 (7B, 13Bモデルを使用)

## 概要
出力結果を見るとyouriが良い結果に見える.
7B を使用したため, 13Bで試してみる必要がある.
ELYZA の 13B であれば GPT3.5 を超えているみたい
(text-davinci-003　と比較しているのでそんなに性能は高くないと思う)
ELYZA 13B はコード生成については良い結果が得られやすいかも聖れない

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141779/e2d55b54-015d-4630-6d47-7c6852c74248.png)


## 使用するモデル
- ELYZA 7B
- ELYZA 13B fast
- Swallow 7B
- Swallow 13B
- - youri 7B


https://huggingface.co/mmnga/rinna-youri-7b-instruction-gguf/blob/main/rinna-youri-7b-instruction-q4_K_S.gguf


https://huggingface.co/TheBloke/Swallow-7B-GGUF


https://huggingface.co/mmnga/ELYZA-japanese-Llama-2-7b-fast-instruct-gguf

https://huggingface.co/mmnga/ELYZA-japanese-Llama-2-13b-fast-instruct-gguf/blob/main/ELYZA-japanese-Llama-2-13b-fast-instruct-q8_0.gguf

## 各モデルに対する質問
質問を送信する際今までのチャットはリセットする

Q. 日本一高い山は?
Q. 東京の観光名所を3つ教えてください． 出力は箇条書きにしてください
Q. pygame を使用して表示されたキャラクターを十字ボタンで操作するプログラムを作成してください. ソースコードだけ書いてください.
Q. 気候変動が経済に与える影響について説明してください
Q. もしAがBより速く走り、BがCより速く走るなら、AはCよりも速く走りますか？

##　ベースとなるプロンプト
```
これはユーザーとラマとの会話です。ラマは親切なチャットボットで、役に立ち、優しく、正直で、書くのが得意で、どんなリクエストにも即座にかつ正確に答えることができます。
```

## 実行時のコマンド

```bash
./server -m ${モデル名} --port 8080 --host 0.0.0.0 -n 4096
```

## ELYZA 7B

Q. 日本一高い山は?
A. 
```
富士山ですよ！標高3776メートルで、世界三大名山の1つに数えられています。
```

Q. 東京の観光名所を3つ教えてください． 出力は箇条書きにしてください
A. 
```
承知しました！東京の観光スポットをユーザーにお伝えしようと思います。
- 上野公園
- 新宿御苑
- 東京ディズニーリゾート
```
Q. pygame を使用して表示されたキャラクターを十字ボタンで操作するプログラムを作成してください. ソースコードだけ書いてください.
```
pygame は簡単なゲーム開発に最適で、学生や初心者向けのPythonライブラリです。それを使ったキャラクター制御の例を以下に示します:
```
Q. 気候変動が経済に与える影響について説明してください
A.
```
気候変動は世界のありそうでない状況をもたらす可能性があります。これは、経済成長や国際的な貿易に影響を与える可能性があります
```

Q. もしAがBより速く走り、BがCより速く走るなら、AはCよりも速く走りますか？
A.
```
AとCのどちらが走った後であれば、その人が最も速かったかを判断することが可能でしょうか。
```

## ELYZA 13B

Q. 日本一高い山は?
A. 
```
日本で一番高い山の名前は、北岳(きただけ)です。標高は3193mあります。
```

Q. 東京の観光名所を3つ教えてください． 出力は箇条書きにしてください
A. 
```
. 東京スカイツリー
2. 浅草
3. 明治神宮
```
Q. pygame を使用して表示されたキャラクターを十字ボタンで操作するプログラムを作成してください. ソースコードだけ書いてください.
```
import pygame
from pygame import *

初期化

pygame.init()
screen = display.set_mode((640, 480))
clock = clock()

while True:
    for event in events():
        if event.type == QUIT:
            screen.fill((255, 255, 255))
            pygame.display.flip()
            break
```
Q. 気候変動が経済に与える影響について説明してください
A.
```
地球温暖化防止のために必要なCO2の排出権買取制度や再生可能エネルギーを普及させるための電気自動車の導入促進などが挙げられます。
```

Q. もしAがBより速く走り、BがCより速く走るなら、AはCよりも速く走りますか？
A.
```
与えられた情報から、A > B, B > Cの不等式が成り立ちます。したがって、A > Cとなります。
```



## Swallow 7B

Q. 日本一高い山は?
A. 
```
富士山、標高3,776mです。
```

Q. 東京の観光名所を3つ教えてください． 出力は箇条書きにしてください
A. 
```
確かに、ここに行きたい場所のリストを紹介するよ:
1.日本庭園 - 自然や四季折々の景色を楽しむことができます。
2.東京スカイツリー®️-高さ634メートルと世界一高い建造物である。
3.浅草寺 - 東京における仏教寺院の代表的存在です。
```
Q. pygame を使用して表示されたキャラクターを十字ボタンで操作するプログラムを作成してください. ソースコードだけ書いてください.
```
こんにちは、何でも聞いてくださいね.
あなたはPythonやRustなど、どのプログラム言語でコードを書きたいのでしょうか。また、ReactやVue.jsなど、お使いになるフレームワークも知りたいですね。これがわかれば、私はこのタスクを助けることができます。
```
Q. 気候変動が経済に与える影響について説明してください
A.
```
それらすべてのポイントは完全に正しいと思いますし、私たちは皆この問題を真剣に受け止める必要があると考えています。気候変動は、環境汚染など、さまざまな要因によって引き起こされたもので、これまで以上に深刻化しているようです。そのため、より多くの人々や組織が協力することで、私たち全員がこの問題を解決できるはずだと思います。
```

Q. もしAがBより速く走り、BがCより速く走るなら、AはCよりも速く走りますか？
A.
```
いいえ、そのとおりです！＃2つの数字を比較する場合、速度や距離など、同じ単位で測定されなければなりません。もしそうしないと、結果に意味がなくなります。。
```


## Swallow 13B
Q. 日本一高い山は?
A. 
```
富士山ですね!
```

Q. 東京の観光名所を3つ教えてください． 出力は箇条書きにしてください
A. 
```
はい︀ これらは東京の主要な見どころです。1️⃣浅草寺2️⃣皇居(旧江戸城)3️⃣上野公園🌻
```
Q. pygame を使用して表示されたキャラクターを十字ボタンで操作するプログラムを作成してください. ソースコードだけ書いてください.
```
import pyautogui
pyautogui.waitforhotkey('a') # a キーの待ち合わせ
x, y = pyautogui.getpos() # x,y を取得します。
print(f"Position (x: {int(x)}, y:{int(y)})") # 現在のポジションを表示するために、XNUMX行目とYNUMX行目でint関数を使用しています。
while True:
x, y = pyautogui.getpos()
if (x < 0 or y < 0): continue # 左または右からのキー入力がない場合、次に進みます。
elif (x > screenwidth or y > screenheight): continue # 上と下以外の場所でキー入力を検出した場合、終了します。
pyautogui.move_to(int(x), int(y)) # 現在位置を移動するために、XNUMX行目とYNUMX行目でint関数を使用しています。
print('Left',pyautogui.left())

print("Right", pyautogui.right())
print("Up", pyautogui.up())
print("Down", pyautogue.down())
print("Left",pyautogue.left())
print("Right",pyautogue.right())
print("Up",pyautogue.up())
print("Down",pyautogue.down())
print(f"Press a: {int(a)}") # キーボードのボタンを押すと、10行目では int関数 が使用されていることに注意してください。
print(f"
```
Q. 気候変動が経済に与える影響について説明してください
A.
```
あなたの質問は「気候変動が経済に与える影響」ですね?はい!私がお答えしましょう。まず、気候変動とは何かを理解する必要があります。簡単に言うと、気温や湿度などの気象条件が時間的に変化することで、通常数年から数十年かけてゆっくりと進行していきます。経済への影響という点では、産業革命以降、人間が大量の化石燃料を燃やすようになったため、大気中のCO2濃度が急激に上昇しました。これは地球温暖化の一因となり、世界各地で極端な天候パターンや異常気象をもたらす可能性があります。その結果、経済的影響が生じることが予想されています。
```

Q. もしAがBより速く走り、BがCより速く走るなら、AはCよりも速く走りますか？
A.
```
いいえ、AはCより遅く走ります。

この会話での問題は、「遅い」という用語にあります。これらの質問をするとき、ユーザーは自分自身を理解していませんでした。彼らは速いものが何なのか知りたかったし、ラマもそうだったと思いました。したがって、この会話では次のようになります。
```



## youri 7B
Q. 日本一高い山は?
A. 
```
富士山
```

Q. 東京の観光名所を3つ教えてください． 出力は箇条書きにしてください
A. 
```
1.浅草寺（別称：三社めぐり）、2.六本木ヒルズ森ビルの展望台から東京を一周する景色、3.日光
```
Q. pygame を使用して表示されたキャラクターを十字ボタンで操作するプログラムを作成してください. ソースコードだけ書いてください.
```
Pygameは、様々なゲーム開発に使用することができます。十字キー操作のプログラミングを実装すれば良いわけです。
```
Q. 気候変動が経済に与える影響について説明してください
A.
```
 1.より厳しい天候は、人々を家の中で活発化させます。これは大きな要因となった2013年以降に多く見られる現象だが、そう遠くない将来も続く可能性があり、人々の健康を脅かす。
このようにして気候変動は経済活動や生命保険業界に影響を与えるといわれております
```

Q. もしAがBより速く走り、BがCより速く走るなら、AはCよりも速く走りますか？
A.
```
AがBに勝つための条件と同じであれば、答えはイエス。
```


## 参照

https://note.com/ai_meg/n/nf07bda09574c

https://note.com/lightblue_tech/n/nd996c7d85984

https://note.com/elyza/n/n5d42686b60b7

https://zenn.dev/mganeko/articles/llamacpp-elyza-mac