v4辺りから派手に変えたなぁと言う印象だったんですが、実際に動作を確認していたところどうもパフォーマンスの差が誤差範囲レベルでしか差が出ないという結果に。
普段いじらないthreads値を変えて、htopで見てみると、どうもスレッド数が制御されていない。
ソースを見ていると、どうも怪しいと思ったのでlocalAI側のデフォルト値を弄ってみる。→モデルの動作を停止→変わった…何がDefault Threadsだよw
そもそも論として、この辺の値はmodelの設定で持っているのがおかしい値ではあるものの、backendの事を考えると持っていてもいいかなぁ?と思える値だったんですが、ここに来て一気にやっつけた感が強いです。
で、F16に関しても…コメントアウトされてるんですがw
実際のllama.cppの方を見てみるとどうも途中から扱いが変わったのかパラメータ自体無くなっていて、それっぽいのが、cache_type_kとかcache_type_vとかになるのかな?
てか、この辺の設定値を見ると、すでにturboquantが取り込まれているように思えるのだが…
const std::vector<ggml_type> kv_cache_types = {
GGML_TYPE_F32,
GGML_TYPE_F16,
GGML_TYPE_BF16,
GGML_TYPE_Q8_0,
GGML_TYPE_Q4_0,
GGML_TYPE_Q4_1,
GGML_TYPE_IQ4_NL,
GGML_TYPE_Q5_0,
GGML_TYPE_Q5_1,
};
kvキャッシュを量子化で持つっていうのはそもそもそういう事だよね?違うのかな?
とりあえず、この辺に手を入れてみるのも手かもしれないな。llama.cpp側は未実装で動かない可能性は高いけども…あとgpu_layersの値もなんか機能してないっぽいのはちょっと良く分からない。値は突っ込んでる感じだけど、その値の元の設定値がどこから取ってきてるのか良く分からない。request->ngpulayers()ってなってて、上の値は確実にLocalAIの設定画面からの値だったことを考えると、これもそれらの値だと思うんだけど、設定画面に項目ないんだよねぇw
ただ、このへんのパラメータはモデルごとに調整するはずだからLocalAIはデフォルト値は持っても悪くないと思うけど、model設定ファイルの値を拾ってもらえないのは困る気がする。
0 件のコメント:
コメントを投稿