LocalAI経由で動作確認してるのが悪かったわけですが、結構手間取りました。
結果として、ggml-cpu : re-enable fast gelu_quick_f16(b8937)が含まれた状態のb8940をベースにしたllama-cppと、直前のリリース(b8936)をベースにしたllama-cppのバイナリを作って動作確認してみました。
現状sycl_16はまともに動作していないので除外。(llama.cppのserverで動かしたら動く気がする)
gemma 4 E2B/E4Bベースの量子化されたF16とQ8_0形式のモデルファイルを使って様子を確認してみました。LocalAIのmodel設定ファイルのF16を変えてみたのですが、結果としてどちらもF16で動いていただけのようなので、今回はこれだけで。
| model name | 量子化 | b8936 | b8940 |
|---|---|---|---|
| Gemma 4 E2B it | F16 | 3.7 | 3.5 |
| Q8_0 | 6.3 | 6.3 | |
| Gemma 4 E4B it | F16 | 1.8 | 1.9 |
| Q8_0 | 3.3 | 3.3 |
数字の単位はピーク時のトークン/秒です。誤差は大きいのであくまでも目安。「こんばんは」で初めて「あなたの事について教えてください。」と入力したときの実測値になります(笑)llama.cppのソースを見る限り、内部ではF16として処理されているはず…。
F16のものを試したのは、もしかしたら処理上影響出るかな?と思ったんですが出ませんでした。レスポンスが得られるまでの時間を計測した方が良かったのかな?あくまでもLocalAIのbackendのllama-cpp越しの結果なので「前提が崩れていて結果が変わらなかった」だけかもしれないことを付け加えておきます。
結局のところ、gccの最適化が優秀だったという事でしょうか。
0 件のコメント:
コメントを投稿