cpu単体で動かせるようにビルドまでたどり着いた感じです。
ビルドと言っても、pythonなので実行環境の構築となるわけですが、oneAPIを使用する形にするとビルドスクリプトが通らなくなります。おそらくoneAPI周りのアップデートをかけてしまっているため、必要なパッケージがそろわずpythonの実行環境を作ることができませんでした。
ビルド中に色々見ていくと不安要素とか、制約条件やらが明らかになるにつれて絶望しかないのですが(笑)
vllmの利点は実行時に使用されるkvキャッシュの効率が(各段に)良くなるという点。
難点としては、使用メモリがほぼオンメモリになる点。
さらなる懸念としてインテル系のcpuの記載を見るとxeonしか見当たらないし、要件にCPU flags: avx512f (Recommended), avx512_bf16 (Optional), avx512_vnni (Optional)とあり、必須ではないけれども…(笑)
表現としては
Required, Recommended, Optional
必須、推奨、任意
(参照)
で、必須ではないから動かせるという認識なのですが…アッテマスヨネ?
そして実際に実行してみると、実際に扱えるファイルがgguf形式ではなく、その前の状態のファイル群だということ…早速用意して実行すると、モデルを読み込んでいくだけでシステム上のメモリがガンガン減ります。ここで初めてllmの動作にメモリが必要なんだと実感しました(笑)
そしてトドメに
Unexpected err=RuntimeError("Engine core initialization failed. See root cause above. Failed core proc(s): {'EngineCore_DP0': -9}"), type(err)=<class 'RuntimeError'>
というメッセージとともに処理が打ち切られました。
2度ほどgeminiに聞いてみたのですが、確実にメモリーが足りていなく、OSレベルでOut of memory: Killed processとして処理されてしまっている感じです(笑)
geminiから提示されている回避方法として、量子化されたものを使用する。とか実行時のメモリーをできる限り抑える方法が提示されました。が、どちらも無意味っぽい。
まず量子化されたものというのが、現状ではCPUだけではAWQ GPTQ INT8(W8A8)(参照)しかサポートされておらず、ggufファイルはサポートされていないという点。(genma3nのggufファイルを読み込ませたときのエラーメッセージはgemma3nのgguf形式は読み込めないと出たので、もう少し古いタイプのggufファイルならいけると思っていたのですが、調べてみるとだめそう)ちなみに、IntelGPUも同様にggufはダメなので、たとえ実行環境をそろえても手持ちのファイル群は使えそうにない。
小さいモデルで量子化されたファイルを用意してあげればいい感じで動いてくれるのかな?
0 件のコメント:
コメントを投稿