2026年4月15日水曜日

結構精力的に活動が活発なようですが、今度はturboquantですか…

なんかこちらもホットなllama.cppフォークの様で…kvキャッシュの量子化で小さくすることで高速化するとか。確かに…

デモですね…ここ数日複数のモデルを触ってて気づいたんです…処理をF16に限定しただけでモデルの反応が明らかに荒くなることに…

全モデル共通なんですけど、パラメータ数が大きいと返答される回答も高品質なのは間違いないです。ただ、とても重い…ファイルサイズも大きいし、占有メモリも大きい。なのでどうしてもレスポンスが悪化する。

高速化の手段としてモデルの再ファインチューニング、量子化(imatrixなどを利用して部分的に精度を調節しながら行ったり)、実行時のkvキャッシュの効率化。

演算は主にGPUやTPUと言われるハードウェア演算が使う事で高速化しています。

この中で、結局どれも精度を落として高速化されてしまいます。

この中で一番インパクトの強いのがハードウェア演算ですが、16bit演算と32bit演算では処理速度で4倍の差が出てしまうために、基本的には16bit演算が使用されるとのこと。これが実際にどのぐらい変わるかと言えば…もともとの精度だと学生レベルの優等生が、ちょっと頭がカチコチになった社会人のおやじぐらいになった感じでしょうかね?

知識はあるけど微妙に節々がオボロゲというかぼやけるというか。おそらくその程度の劣化で済んでいますが、確実に精度が落ちています。

モデルのファインチューニングは基本的に考え方の方向性を付けてあげてレスポンスの向上や知識を補えるという事で、テスト勉強に近いでしょうね。

モデルの量子化はこれ確実に痴呆レベルで劣化していきます。なので全体的に量子化させると結構別人になる可能性が高くなります。ただ、現状では各レイヤでその量子化の度合いを調節するのが流行っているようで上手くやれば少なくても人格は壊さずに知識だけ劣化します。話すことはできるのと、大雑把な部分は使える感じです。ただ、この量子化というものはモデルのファイルサイズが小さくなることでとても利点が高いんです。

まず読込速度が速い。次に今風なモデルだと不要なレイヤはメモリに載せておく必要がないので実行時のメモリ占有率が小さかったりするのですが、随時読み込むわけです。結局、システムのディスクキャッシュに引っかかるので、最終的にはオンメモリー上で収まるというのは非常に高速化につながります。

ik-llamaは思考するときのテンポラリとなるkvキャッシュの演算方法を効率化することで高速化するというアプローチで、このturboquantはkvキャッシュそのものを小さくすることで演算速度を早くするというアプローチ。

気になるのはこのkvキャッシュの量子化によってどの程度劣化してしまうのか?という疑問は残るので、とても気になります。ちょっと調べた範囲だとあまり劣化の点が触れられていなかったので、あまり変わらないのか、それともパラメータサイズが大きいモデルだと誤差範囲に収まる程度の劣化なのでしょうかね? 

0 件のコメント:

コメントを投稿