📝

llama.cpp で gemma2 2B/9B を CPU で動かし日本語性能味見する

2024/09/01に公開

gemma.cpp を前回ためしました.

gemma.cpp で CPU で Gemma を動かし日本語試すメモ
https://zenn.dev/syoyo/articles/324901c2bb2835

ただ, gemma2 は対応していないっぽいようです.

一方, 2024/08/31 時点で, gemma2 は llama.cpp で動かすのがだいたいできるようです.
今回 2B, 9B を試します.

https://huggingface.co/bartowski/gemma-2-2b-it-GGUF
https://huggingface.co/bartowski/gemma-2-9b-it-GGUF

9B は Q6_K_L が recommended ですが, Q8_L があったので今回はこちらを使います.

https://huggingface.co/bartowski/gemma-2-9b-it-GGUF/blob/main/gemma-2-9b-it-Q8_0_L.gguf

10 GB ほどです.

prompt="***"
llama-cli -m models/gemma-2-2b-it-Q6_K_L.gguf -t 10 -p "$prompt"

などとして実行してみました.

2b

10 tokens/sec くらいでした

日英翻訳

Translate into English: 2010年5月22日、ビットコインの開発者がピザ屋からピザ2枚を注文し、別の開発者の家に届け、1万ビットコインと交換。 初めてビットコインを利用した商取引が成立した瞬間となった。当時のビットコインの価値は1BTC=約0.2円であったが現在の価値に換算すると(1BTC=550万円)、このピザは1枚約275億円ということになる。
**Translation:**

On May 22, 2010, the Bitcoin developers ordered two pizzas from a pizzeria and delivered them to a different developer's home, exchanging them for 10,000 Bitcoin. This marked the first recorded transaction using Bitcoin. At the time, the Bitcoin value was about 0.2 yen per BTC. Today, that value is 550 million yen per BTC, meaning that this pizza is worth about 275 billion yen for one slice.

**Note:** I've kept the original wording as closely as possible to the Japanese.

英日翻訳

Translate into Japanese: TOKYO. Crude oil prices have fallen 20% from a September high to a four-month low as economic slowdowns in the U.S. and China, the two largest consumers, lead to widespread expectations that demand will weaken.
*Japanese Translation:**

東京。9月の高値からCrude Oilの価格は20%下落し、4ヶ月ぶりの低迷に達しました。米と中国、2つの最大の消費国での経済の鈍化によって、需要が 弱まるという見方が広がっており、その結果として価格が下落した。

Elyza ちゃん行間読みタスク

1. 彼は比類のない陸上選手だ。
2. 彼は比較的に良い陸上選手だ。
1の文が難しいので2の文に直そうと思っているのですが、これってあってますか?
##  質問に対する回答

「彼は比類のない陸上選手だ」と「彼は比較的に良い陸上選手だ」は、文脈とニュアンスで大きく異なります。

**1. 彼は比類のない陸上選手だ。**

   - **意味:**  他の陸上選手にはない、まさに一 Of a kind の選手。能力や実績、個性など、他の選手と比較して圧倒的に優れたレベルです。

   - **例:**  「彼は、世界で最も優れた陸上選手だと言われています。」

   - この文は、彼の能力を非常に高いレベルで表現しています。

**2. 彼は比較的に良い陸上選手だ。**

   - **意味:**  他の陸上選手と比較して、彼が持つ能力や成績は比較的良いレベルです。ただし、彼がトップクラスの選手であることを断定するわけではありません。

   - **例:**  「彼は、他の陸上選手たちと比べて、比較的良い成績を収めている。」

   - この文は、彼がトップクラスの選手であることを断定しない、あくまで比較的な表現です。


**直すべきかどうか:**

「彼は比較的に良い陸上選手だ」は、文脈によっては適切な表現になる場合もありますが、文脈によってニュアンスが大きく異なるため、必ずしも直す必要はありません。

**ポイント:**

* 「比類のない」は、非常に高いレベルで表現しています。
* 「比較的に」は、他の選手との比較に基づいています。
* 文脈によって適切な表現を選択することが重要です。



 [end of text]

ほほー!

9B

日英翻訳

Translate into English: 2010年5月22日、ビットコインの開発者がピザ屋からピザ2枚を注文し、別の開発者の家に届け、1万ビットコインと交換。 初めてビットコインを利用した商取引が成立した瞬間となった。当時のビットコインの価値は1BTC=約0.2円であったが現在の価値に換算すると(1BTC=550万円)、このピザは1枚約275億円ということになる。
On May 22, 2010, a Bitcoin developer ordered two pizzas from a pizzeria and had them delivered to another developer's house in exchange for 10,000 Bitcoins. This marked the first time Bitcoin was used in a commercial transaction. At the time, the value of Bitcoin was about 0.2 yen per BTC, but when converted to its current value (1 BTC = 5.5 million yen), this pizza would cost approximately 275 million yen per slice.

英日

Translate into Japanese: TOKYO. Crude oil prices have fallen 20% from a September high to a four-month low as economic slowdowns in the U.S. and China, the two largest consumers, lead to widespread expectations that demand will weaken.
## 日本語訳候補

**東京 -**  9月の高値から20%下落し、4か月ぶりの安値に取引されている原油価格。最大の消費国である米国と中国の経済減速を受けて、需要減退が広く予想されているため。

概ね Good!

Elyza ちゃん行間読みタスク

1. 彼は比類のない陸上選手だ。
2. 彼は比較的に良い陸上選手だ。
1の文が難しいので2の文に直そうと思っているのですが、これってあってますか?
2の文は、「比較的」という言葉を使っていますが、あまり適切ではないように感じます。

1の文をより自然で理解しやすい表現にするためのアドバイスをお願いします。

## 回答

2の文は、「比較的」という言葉を使うと少しニュアンスが変わってきますね。

「比較的に良い陸上選手」というのは、**他の陸上選手と比べてそこそこ良い**、という意味になります。一方で、「比類のない」は**他に類を見ない、非常に優れた**という意味なので、ニュアンスが異なります。

1の文をより自然で理解しやすい表現にするには、いくつかの方法があります。

* **具体的な能力や実績を挙げる:**

    * 例: 「彼はスピードが抜群で、他の選手を圧倒する走りを見せる。」
    * 例: 「彼は陸上競技で数々の記録を打ち立て、誰もが彼の才能を認めている。」

* **比喩表現を使う:**

    * 例: 「彼は陸上競技の舞台を駆け抜ける、まさに風のように。」

* **強調する単語を変える:**

    * 例: 「彼は他に類を見ないほど優れた陸上選手だ。」
    * 例: 「彼は圧倒的な力で陸上競技の頂点に君臨している。」

これらの方法を組み合わせることで、より具体的で印象的な表現にすることができます。


## まとめ

「比類のない」は強い表現なので、その意味をそのまま伝える場合は、そのまま使用しても良いでしょう。しかし、より自然で理解しやすい表現にしたい場合は、具体的な能力や実績、比喩表現などを用いると良いでしょう。 [end of text]

うぉおおおお!
Voila~

まとめ

gemma2 はかなり日本語性能の改善が見受けられました.

9B はさすがに CPU only だとちょっと遅かった(Ryzen 3900X で 2 tokens/sec くらい)ので, 翻訳とかは 2B で行い, 深い考察などしたいときは 9B 使うとよいでしょう.
9B は Q8 量子化で 10 GB ほどなので, だいたいのデスクトップ PC(32GB くらいメモリ積んだ)で動作するでしょう
(Q6 くらいなら頑張ればメモリ 16GB のスマホでもうごくやも?)

あと, M1 mac mini(16GB)でも動作試したところ, Q6_K_L(8GB)が問題なく動きました. 7 toks/sec くらい出てそれなりに快適でした.
M 系 Mac ユーザーであれば 9B 問題なさそうです!

GPU も使わずに CPU でぺろっと動いて日本語性能も 2B でも実用的に扱えるようになってきていますね.
各社もまた日本語対応モデル改善したのを出してくるでしょうから, モデルの選択肢は広がるでしょう.

今後はローカルで動かすときの手軽さ(llamafile みたいに単体 exe で動くとか, GUI とか)や, LLM への入力・出力の日本語前処理・後処理(NG ワード判定, テキスト抽出, RAG とかとの連携)をどうするかがトレンドになりそ?
...なってほしい.. jagger で形態素解析 https://zenn.dev/syoyo/articles/8381ddef921a5a や, jdepp で係り受け解析とか! https://zenn.dev/syoyo/articles/d642867aae9aee

Discussion