前回の記事でollama-ipex-llmを素のままで動作させてみました。
ただ、モデルファイルは5.2GBしかないのでVRAMに十分収まる容量でした。
B570はVRAMは10GBしかありませんので、ollamaで大きなモデルを動作させるにはちょっとした調整が必要です。
ということで、今回は「deepseek-r1:32b」の 19GBにチャレンジしてみます。
ちなみに同様の方法で「deepseek-r1:70b」の42GBの動作も確認しています。
ただ、モデルが大きくなるほどGPUに割り当てる層が少なくなるので、速度向上の影響は少なくなっていきます・・・。
それでは、やっていきましょう。
ドライバとoneAPIのインストール
前回の記事とやり方は同じです。
ollama-ipex-llmのダウンロード
前回の記事とやり方は同じです。
start-ollama.shの書き換え
ollama-ipex-llmのフォルダ内に移動して「start-ollama.sh」を実行するのですが、環境変数の書き換えが必要です。
以下は原文です。
#!/bin/bash
export OLLAMA_NUM_GPU=999
export no_proxy=localhost,127.0.0.1
export ZES_ENABLE_SYSMAN=1
export OLLAMA_KEEP_ALIVE=10m
# [optional] under most circumstances, the following environment variable may improve performance, but sometimes this may also cause performance degradation
export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
export OLLAMA_HOST='127.0.0.1:11434'
# [optional] if you want to run on single GPU, use below command to limit GPU may improve performance
# export ONEAPI_DEVICE_SELECTOR=level_zero:0
# If you have more than one dGPUs, according to your configuration you can use configuration like below, it will use the first and second card.
# export ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"
./ollama serve
これに変更を加え、以下のように書き換えます。
#!/bin/bash
export OLLAMA_NUM_PARALLEL=1
unset OLLAMA_NUM_GPU #GPUに乗せる層数の自動指定
unset OLLAMA_CONTEXT_LENGTH || true #コンテキストも自動指定
export OLLAMA_FLASH_ATTENTION=1
export OLLAMA_MAX_LOADED_MODELS=1
export no_proxy=localhost,127.0.0.1
export ZES_ENABLE_SYSMAN=1
export OLLAMA_KEEP_ALIVE=10m
export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
export OLLAMA_INTEL_GPU=true
export OLLAMA_HOST='127.0.0.1:11434'
# [optional] if you want to run on single GPU, use below command to limit GPU may improve performance
# export ONEAPI_DEVICE_SELECTOR=level_zero:0
# If you have more than one dGPUs, according to your configuration you can use configuration like below, it will use the first and second card.
# export ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"
./ollama serve
書き換えたら保存して「start-ollama.sh」を実行します。
モデルのダウンロード
「start-ollama.sh」を実行したら、別のターミナルを開いて
ollama pull deepseek-r1:32b
でモデルをダウンロードします。
実行テスト
time ollama run deepseek-r1:32b "動作テストします。適当に何か話してください。"
で実行テストを開始します。

なので、本家ollamaでCPU動作させてみました。

GPUに乗せる層数
通常は起動オプションに「-ngl」以下で数値を指定するらしいのですが、今回は「unset OLLAMA_NUM_GPU」とすることで自動設定するようにしています。
VRAMの多いGPUなら速度もより向上すると思います。
細かく指定したいときは「export OLLAMA_NUM_GPU=24」みたいな感じで詰めていけば良いと思います。
乗り切らなかった層はCPUで処理することになるので、CPUの性能も必要になってくるでしょう。
最後に
今回のテストでは、GPU使用時のB570の消費電力は15W程度となっていました。
つまりほとんど動いていません。
もっと良い環境変数の設定があるのかもしれませんが、自分にはわかりません。
モデル容量が14GBとかだと、同じ設定でも30W〜40Wくらいは使ってくれます。
正直VRAMを超えるモデルを扱うと、処理速度がグッと下がるので、できればよりVRAMの多いGPUがあった方がいいと思いました。
ARC PRO B50が早く出てくれればなぁ・・・。
今回は以上です。
コメント