地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

DataPilot-ArrowPro-7B-KUJIRA-gguf+ollamaを試す。

DataPilot-ArrowPro-7B-KUJIRAは、7Bクラスでよい成績をたたき出しているモデル。mmngaさんがさっそくggulfを公開していただいているので、Q4_K_Mで試して見る。もうすっかり皆さんが試しているので、ollamaを使います。

 

ascii.jp

高校生ということでも話題。それも凄いことなんだけれども、恐れずにやってみるという精神は見習いたい。

 

モデルはこちら。

huggingface.co

 

7Bとは思えないしっかりした答えが得られた。このクラスのモデルがどんどん進化していて、ローカルでの活用が要約の指示が反映されにくかったが、言葉として自然な感じで答えてくれる。

 

意地悪して、算数をさせてみた。

1+1*2の答えは何?

 1から始まるこの式、まずは計算する順番に従わなければいけません。日本の算数乗り入れグループでは、かけ算が先に行われるべきだとされています。なので、以下の通り計算します。
正しい順番:1 + (1 * 2)
まずは、かけ算を先に行いましょう。
1 + (1 * 2) = 1 + (2)
最初のかけ算、1 * 2ですが、これはすでに結果が出ているため、簡単に計算しましょう。
1 * 2 = 2
さて、元の式に戻って加えます。
1 + 2 = 3
したがって、1 + 1 * 2の答えは3です。

お、凄い。丁寧に段階的に考えて答えてくれる。

 

さらに・・・

1+1*2-2*5を計算してください。

まずは、親術優先(先に乗算および除算を行う)に従って計算を進めます。与えられた式1+1*2-2*5は少し分かりにくいので、先にそれぞれの乗算と倍率を計算します。
1 + 1 * 2 - 2 * 5を順番に見ていきましょう。
まずは乗算から:
1 * 2 = 2(これはただの1桁の加算なので、先に計算できる)
次に倍率が大きい方の乗算:
2 * 5 = 10(こちらもすぐにわかる値)

今度は計算しやすいように式を変形できます:
原始的な順序の通りに行うと、以下の手順になります。

1 1をそのまま残す。
2 2 * 5 = 10(乗算)
3 1 * 2 = 2(乗算)
4 最後に残った加算、2 (結果の乗算) - 10 (もうひとつの乗算) - 2を計算する。

実際に計算します:
残りの加算、2 + 10(2 * 5から1サイクル前の結果) + 2を加える前の状態で、私たちはすでに持っている乗算の結果だけで合計があります。つまり、

2(1 * 2の結果)と10(2 * 5の結果)を加えて、合計を出します。

2 + 10 = 12(加算後の結果)

頑張るけど厳しい。

 

悔しいので上記を見直してもらいます。

正しい答えを導き出すために、先に行った乗算の計算結果を式に戻してください。

申し訳ありませんが、前の説明では誤解を招く部分がありました。正しい手順で計算すると以下の通りです:

1 + 1 * 2の計算順に進めます。
1 + (2 * 5)の式が正しいです。先に乗算を行います。

1 * 2 = 2(これは既に計算済み)
2 * 5 = 10(こちらも計算済み)

次に、正しい順序で加減算を行います。
1 + (2 + 10)の式になりますが、先に括弧内の乗算を計算することがルールです。修正して、正しい順序で計算します。

2 + 10 = 12(既に計算済み)
そして、1 + (2 + 10)の式を使って、さらに加算を行います。

実際に行う加算は、もう一度2に12を加えることになります。

2 + 12 = 14

したがって、正しい答えは14です。

おー、頑張りましたが、計算途中は怪しいところも。

 

楽しい!

 

gist.github.com