見出し画像

【EVO-X2】AI MAX+395 / Radeon8060SでLLMを動かす ~人気のLLM15種をローカル推論 実用的な速度は出るのか?~

こんにちはRcatです。
今回はこちらの記事で紹介しているEVO-X2を使って、今まで動かせなかった巨大LLMが実用レベルで扱えるか試していきます!!
この記事では、扱ったモデルと占有メモリ、生成速度をまとめています。
かなり高級なPCなので購入に踏み切れない方は、その価値があるのか参考になるかもしれません。
環境やPCの詳細は下記をご確認の上進んでください。

試してほしいモデルがあればコメントください。興味持てば試します。


この後の他のベンチマークはこちら


はじめに

利用規約

情報や作品の活用時は事前に利用規約をご確認ください。

コメントについて

利用規約のガイドラインを確認の上コメントしてください。
則っていないコメントは削除します。

この記事に限り試してほしいモデルがあれば、そのモデルのHuggingfaceのリンクをいただければ追記検討します。
例:Gemma3 27B  https://huggingface.co/unsloth/gemma-3-27b-it-GGUF
※モデルの紹介ページのリンクとし、ダウンロードリンクはNG。
※なぜそのモデルを試したいのか簡単に教えてください。
※GGUFの量子化モデルに限ります。
※DL数がある程度あるものに限ります。
※フォロワー限定とします。


スペック / 環境

環境

  • OS Ubuntu 24.04.3 LTS
    AIサーバーとして使うのでLinux化は必須ですね。
    もともとWindowsが入ってますが、小さく隅に追いやりました。

スペック

  • CPU AMD Ryzen AI MAX+ 395
    16C32TのCPU。普通に強い。9700Xよりスコア上。

  • GPU Radeon 8060S (CPU内蔵)
    私のメインPCのRTX2060より高性能です。とうとう内蔵に負けたのか。
    内蔵GPUなので本体のメモリを使え、VRAMのMAXは驚異の96GBです

  • NPU 有(今回は使わない)

  • メモリ
    128GB。APUなのでVRAMと共用。
    8000MHzという驚異的な速度。

LLM推論を行う準備

AI環境

  • 言語 Python

  • ライブラリ llama-cpp-python
    昔ROCmという表記を見た覚えがあるのでそれに賭けることにしました。

今回は以下のllama-cpp-pythonを使った自作ツールを本PCに導入することで検証を行います。

量子化モデルの用意

AIモデルはすべて4Bit量子化の物を使います。量子化はCPUでも推論可能なレベルに演算コストを落とせるため、個人でホストするなら必須です。
量子化についてはこちらをご確認ください。

環境構築

pythonの実行環境を整えておいてください。詳しくは冒頭のPC紹介の記事を一通りやっておけばOKです。
今回はデフォルトで入っていたPython 3.12.3をそのまま使います。

今回はGPU(ROCm)ビルドを行うので、上記で配布している自動環境構築スクリプトは使えません。使うとCPU版のライブラリが入ってしまいます。
まぁコマンド的に強制上書きなので一回CPU版を入れるでもいいと思いますが。

手動でやる場合は仮想環境を作ってアクティブ化します。
既に自動構築した場合は2行目だけやります。

python3 -m venv venv
source venv/bin/activate

次にllama cppをROCmビルドでインストールします。この時、事前にROCmとドライバを入れておくことを忘れずに。冒頭の記事でやっています。

次に下記でllmama cppをインストールします。
コマンドの意味は公式pypiをご覧ください。この入れ方でない場合はGPUを有効にできません。
最初は単純に"CMAKE_ARGS="-DGGML_HIPBLAS=on" pip install llama-cpp-python"で試したんですがGPUが有効にならず、色々試行錯誤したところ、以下のコマンドでのインストールで成功しました。

もう少し後の話ですが、うまく有効になった状態でプログラムを起動するとこんな感じでVRAMの部分の数値がモデル分増えます。

LLMで推論する

前提

準備が出来たら早速動かしていきましょう!
サーバーを起動してアクセスするとこんな画面になります。
今回は1000文字程度の文章を適当に生成してもらって速度を見ていきます。
※サーバーの起動にはモデルが必要なので、この下のモデルを先に用意します。

また、この記事では出力速度を "日本語/秒"として扱います。
この世界ではtoken/秒が普通ですが、それ言われてどの程度の速度かぱっとわかりますか??
少なくとも私は想像できないので、"現実では日本語を程度の速度で出力できるか"が大事という視点の元、文字毎秒を使います。

Gemma3 4B Q4

まずは初回から使っているGemma3を動かします。
モデルはこちら。Q4KMです。
このモデルは40憶パラメータを持ちますが、量子化によりパラメータが32Bitから4Bitに落とされているため2GBちょいのサイズです。

ストリーム応答動画

というわけで応答がこちら。1060文字ですね。
処理時間は何と12.5秒です。毎秒84文字程度生成できます。なお、あまり考える内容ではないので、ファストトークンが0.1秒で出ているため、長文要約などのタスクではもう少し時間がかかると予測されます。
余裕で運用できるレベルというか前にRTX2060で試したとき並みなんだが。

Gemma3n E4B Q4(トラブル有り)

次に、特殊なアーキテクチャで4Bサイズで8Bパラメータを実現したGemma3n E4Bです。現在私がメインで運用しているやつですね。

ですがこれ、なんとそのままでは動きませんでした。

結論から言うと、アーキテクチャがうまくかみ合わず出力結果がPythonにうまく戻らず空文字が返り続けるというバグ。
色々試しましたが、回避方法はモデルのレイヤーを1層だけCPUに残す事でした。

このモデルは合計36の層からなっており、このうち35層をVRAMに、1層をCPUのメモリに配置することで強制的につながりを残す作戦です。
※この方法の場合は若干CPUの利用があり正確な性能計測はできません。

ストリーム応答動画

応答がこちら。993文字で55文字毎秒程度です。
完全にGPUというわけではないので比較はしづらいですが少々遅くなりました。まぁ実質パラメーターが多いというのもあるんでしょうけど。

Gemma3 12B Q4

ここからはモデルを大きくしていきます。次は12Bです。
現段階ではVRAMを11GB消費しています。

ストリーム応答動画

応答はこちら。なんか長くないですかね?
1483文字で43.3秒です。毎秒34文字程度です。
4Bの時から3倍になりましたが、速度は60%低下しただけなのでパラメータに比例して遅くなるわけでもなさそう。

Gemma3 27B Q4

次は27Bです。Gemma3シリーズでは最大のモデルとなります。
読み込み後のVRAMは20GB。

ストリーム応答動画

さすがにちょっと遅いですね。今までN100でGemmaのE4Bを運用していたレベル。
毎秒16文字程度の速度です。長文処理がある場合は厳しいかもしれません。

GPT-OSS-20B Q4

さて、だいぶ前に気になるとかいったgpt-ossです。まずは20Bから
ちなみにアクティブパラメータというのがあるらしく、応答に全体を使わないので高速らしい。
VRAMは12G。あれ?Gemmaとだいぶ違うぞ?

ストリーム応答動画

1284文字を17.2秒で生成なので74文字毎秒です。
最初英語が出てますが、これ思考過程ですね。オープンソースのでここまで出来るモデルというのに驚き。
ちなみにアルファベットはトークン軽いので2文字で1文字扱いにしてます。
もし、実質的な出力という風に考えると830文字なので48文字毎秒です。

GPT-OSS-20B Q8

8bitでも試してみました。

ストリーム応答動画

応答はこちら
こちらも思考過程が入っているので同じ要領で計算すると56文字毎秒程度。
さすがにBit数上がると遅くなりますね。25% Downです。
モデルサイズ的にはあまり変わらないので大した差は出ないのではと思っていましたが。

サイズの方は13%程度増加。

GPT-OSS-120B Q4 (CPU)

さて、ここまで見ていただいたあなたならもうお気づきではないでしょうか。
そう、ほぼモデルパラメータGBのメモリがいります。ですが現在割り当ては96GBなので…。読み込みが永遠に終わりませんでした!。システムメモリにはみ出れば、Linuxが8Gも使うわけないのでギリ入ると思ったんですが無理でした…。
これはCPUにメモリを全部回してCPU演算なら見られるかもですね。

というわけでVRAMを2GBに変更しました。なのでシステムは126GBつかえます!

読み込みしたんですが、なんかおかしい。全くメモリを使ってない。そのくせ完了ってどういうことだ??
→調べたところメモリマップトファイルという機能らしく必要に応じて直にSSDから読み込んでるっぽい。ちなみにCPU限定。
これなら巨大なLLMも少ないメモリで実行できますが、ストレージとの速度が思いっきりネックになる。

ストリーム応答動画

応答がこちら。
動画を見ていただければわかるが、CPU使用率は50%に張り付き状態。さらになぜかGPU使用率も50%になっている。
iGPUだと勝手に使うとかあるのだろうか?

ちなみに性能は1511文字を92秒の16文字毎秒
Gemma3の27Bと同等の処理時間で4倍以上のパラメータを処理できることになる。すごいな。

つまるところ
GPUで動くモデルはそっちでホストして、GPT-OSSはCPUでホストすれば演算機が別だから同時に使える。しかもCPUは直読みなのでメモリを使わない。

Lama3.3 70B Q4

次はLlamaです。昔から大きくて試せなかったんですよね。やっとです。
まずはVRAMの使用率43GBです。このサイズも余裕で収まりますね。

ストリーム応答動画

応答がこちら。1150文字を200秒で出力しました。
5.8文字毎秒程度で今までで最も遅い。これならGPT OSS 120B CPUの方が圧倒的なんだが。

Llama3.3 Nemotron-Super 49B Q4

Nemotron-SuperというNASで推論効率を極限まで高めたモデルというのがあったので試します。
メモリは31Gの使用です。

ストリーム応答動画

応答がこちら。
とても長い思考過程を挟んで応答が出ています。
全体で3947文字を255秒で生成。うち1170文字が日本語なので2557文字計算として毎秒10文字。やはりだいぶ遅い。

DeepSeek R1 Llama 70B Q4

以前世間を混乱させたDeepSeekです。本体は600B越えなので量子化でも無理です。Llamaを使った蒸留があるので試します。

ストリーム応答動画

応答がこちら。
残念ながら中国語の応答になってしまったので使えません。本家DeepSeekは日本語返せるんですけどね。
速度は5秒毎秒くらい。思考も漢字だとトークンコストが高そうに感じた。

Qwen3 30B A3B Q4

何かとよく聞くQwenを試してみます。
パラメータは30Bですが、回答には3Bしか使わないらしく高速らしい

ストリーム応答動画

応答がこちら。905文字を12秒という驚異的な速さで返してきました。
gpt-oss 20BやGemma3 4B並みの速度です。しかし、本体のパラメータは30Bなので一番大きいのです。まじか。

ELYZA Shortcut-1.0-Qwen-32B Q4

Elyzaは日本企業のLLMです。今回はここのモデルを使います。
ちなみに以下の記事で生のモデルを扱っていたこともあります。

ストリーム応答動画

応答がこちら。
毎秒14文字程度の速度で、他の30Bサイズ並みといったところでしょうか。

ELYZA JP Llama2 13B Q4

サイズをダウンして試してみます

ストリーム応答

応答がこちら。
うん、1000文字といったのに聞いてませんね。
16文字毎秒程度なので速度的にも微妙です。

ELYZA JP Llama2 fast 13B Q4

fastというモデルがありました。名前的に応答が早そうな気がするので比較してみます。
使用メモリは同じ

ストリーム応答動画

応答がこちら
35文字毎秒と、fastなしモデルの倍近い速度で動きました。
また、こっちはちゃんとある程度の長さの文章を生成してくれます。使うならこっちでしょうか。

RakutenAI 2.0 8x7B Q4

以前にこちらの記事でminiの方を動かしていました。なかなかの性能なので、試したくても試せなかった本家の方を試そうと思います!
こちらも8x7Bの複数のモデルが協調するタイプなので、パラメータ数の割には速度が期待できます。

メモリは28G結構食うな。まぁ8x7 / 2 (8Bit=>4Bit)だから計算的には合うのか

ストリーム応答動画

応答がこちら
35文字毎秒程度で出力されます。パラメータ数に対して極端に高速です!

RakutenAI 2.0 mini 1.5B Q4

以前RTX2060でオリジナルのモデルが満足に動いた超軽量モデルです。
これがさらに量子化され最新のRadeonで動くとどうなるのか??
※このベンチマークは後からの追加のため一部情報はありません

応答情報
さすが軽量モデル…圧倒的出力速度。なんですか191文字毎秒って…


パフォーマンスモードにチェンジ

そういえば、BIOSにこんなのがありました。
ボタンで変更できるんですが、Linuxだと変わったかよくわからないのでBIOSで変えておきます。

というわけでGemma3 12BをCPUとGPUにて実行。
CPU使用率は相変わらず50%。GPUもいつも通り。
ただ、前回34文字毎秒だったのが36.5文字毎秒にUPした。微妙な差なのでほぼないのかもしれない。

各モデルの所感

名前順です

  • DeepSeek R1 Llama 70B Q4
    中国語出力なので論外。

  • ELYZA JP Llama2 13B Q4
    指示効かないのはいただけない。bit数変えれば変わるかもしれないが、速度的にこれ以上は無理。

  • ELYZA JP Llama2 fast  13B Q4
    速度とサイズのバランスはいい。
    タスクにちゃんと対応できれば採用できそう。

  • ELYZA Shortcut-1.0-Qwen-32B Q4
    さすがに大きいので遅い。現在の最新モデルらしいのでできれば使いたかったが難しいだろう。

  • Gemma3 12B Q4
    いままでGemmaを使ってきたので、タスク性能的には問題ないと推測している。
    速度的に考えて採用される可能性が高い。

  • Gemma3 27B Q4
    遅いのであまり使いたくない。同じパラメータだとqwen30Bに圧倒的に負けるので、推論性能次第。

  • Gemma3 4B Q4
    いつもの。早いけどタスク処理はまぁまぁ。RAMも少ないので軽量代表で置いとくのはあり。

  • Gemma3n E4B Q4
    残念ながら読み込みが特殊になるので今回は使えません。

  • gpt-oss 120B Q4
    CPU演算用にホストはほぼ確定。タスク性能が楽しみ。

  • gpt-oss 20B Q4
    パラメータも多く有名なChatGPTの子孫ということでタスク性能に期待。
    Qwen 30Bと比較して同なのかが採用のカギになりそう。

  • Llama3.3 Nemotron-Super 49B Q4
    思考もして頭よさそうだけど遅いので…

  • Llamma 3.3 70B Q4
    70Bは総じて遅いので採用は無し

  • Qwen3 30B A3B Q4
    日本語性能がどの程度出るのかで採用が決まりそう。速度とパラメータのスコアはピカ一

  • RakutenAI 2.0 8x7B Q4
    実用速度で最大パラメータを誇る。日本企業に頑張ってほしいところではある。

  • RakutenAI 2.0 mini 1.5B Q4
    最軽量なので爆速。ただしどの程度の実力を出せるのかは未知数


次回予告

次回は私向けのタスクをいくつか渡して、最も実用的なモデルを選定して運用していこうと思います。

リンク集

Pythonのインストール方法



検証結果まとめ

検証結果表

では今までの結果をまとめます。
運用を考えているので、出力速度順で並び替えました。
実用的には毎秒30文字以上は欲しいなと感じたので、Gemma 12Bより上のモデルで今度はタスクを達成できるかどうかの確認に進み採用モデルを決める必要がありそうです。

また、運用に関してもGPT-OSSは120B/CPUにすれば、SSDに直マッピングされるためメモリを使わずにホストできます。
それとGPUで運用できる何かをホストすれば2モデル同時にホストできそうです。
高速なGPUモデルと、正確な120Bのクロス運用とかいいですね。

この先はメンバーか有料でサクッと結果だけ見たい方向けです
一部コマンドのコピペエリアも含まれます。

ここから先は

1,008字 / 4画像
この記事のみ ¥ 300

普段の開発のうち、プランに応じて情報やツールのダウンロード情報などが読み放題。 今後はAI対策で画像…

Lv1

¥300 / 月

情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。