c0d3man52

Webサイト制作

GPT4Allを使っていろんなPCでローカルGPTをテスト

GPT4AllでローカルGPTをテストしてみたのでパフォーマンスなどをメモします。

公開日: 2024.12.4

GPT4Allとは?

NOMICが開発する、専用のGPUがなくても、CPUでもAI推論ができるアプリケーションです。Windows、macOS、Linux向けに用意されていて、名前の通り「誰でもLLMでAI推論ができる」というコンセプトの元に開発されています。

今回は、自分の機器でテストをしてみたのでメモとしてまとめます。

テスト

無料で公開されているLLMは最新の情報で学習をしていないため、最新性が必要な推論には不向きです。そのため、プログラミングでのコード作成補助として使う前提でテストをしました。

テストは、日本語からJSのコードを生成させる簡単な処理をさせてみました。

JSで次のデータのうちtrueのものだけを抽出してカンマ区切りにしたい。

const options = ref({
    apple: true,
    sony: false,
    samsung: true,
    google: false,
    sharp: false,
    xiaomi: false,
  })

モデルは、META社のLlaMa 3.2 3Bを使いました。1B(10億パラメータ)の方が軽量なのですが、パラメータが少ないため結構頓珍漢な答えをすることがあったので、現在CPUで推論をするなら3Bがベストかと思いました。

MacBook Pro 2017 15インチでテスト

まずは、現在もメイン機種として活躍してくれているMacBook Pro 2017 15インチで使ってみました。

  • 推論: 8秒
  • 生成: 5token/秒ほど

回答は以下です。

const options = {
  apple: true,
  sony: false,
  samsung: true,
  google: false,
  sharp: false,
  xiaomi: false,
};

// trueのオブジェクトを取得し、カンマで結合する
const trueOptions = Object.keys(options).filter(key => options[key]).join(', ');

console.log(trueOptions); // Output: apple, samsung

遅いですが、回答は間違ってないですね。

自作PC Intel Core i3 10110F + 16GBメモリ

続いて、自宅でのメインPCで同じ条件で行いました。

  1. 推論3秒
  2. 生成:10token/秒ほど

今となっては古いCPUですが、MacBook Proの倍くらいの速度が出ています。

回答は以下です。

const options = {
    apple: true,
    sony: false,
    samsung: true,
    google: false,
    sharp: false,
    xiaomi: false,
};

// true の値を取得する
const trueOptions = Object.keys(options).filter(key => options[key]).join(', ');
console.log(trueOptions); // apple,samsung

問題ないですね。

このPCには、Intel Arc a580グラフィックボードが搭載しているのですが、現在GPT4Allでは使えませんでした。

Intel Arc自体はVulkanに対応しているので、Vulkanを経由すればできそうですが、Githubのレポジトリを覗いてみると、不安定だからメニューに出ないようにしている的なコメントがありました。時間があったら、強制的にIntel Arcを使う方法をテストしてみたいと思います。

hp ENNY X13 360 (CPU)

続いてWindowsノートPCでもテストしてみました。hp ENNY X13 360はAMD Ryzen 3500U搭載の8GBメモリモデルで、Radeon Vega 8での生成もできます。

  1. 推論: 11秒
  2. 生成:6token/秒ほど

軽量ノートPCですが、生成はMacBook Proよりも早かったです。ベンチマークでもRyzen 3500Uの方が低いはずですが、何回やってもEnvyの方が速かったです。

回答は以下。ちょっと意図と違いますが、問題ないですね。

const options = {
  apple: true,
  sony: false,
  samsung: true,
  google: false,
  sharp: false,
  xiaomi: false,
};

// filter() で true の値だけを取得し、join() でカンマで結合します。
console.log(options.apple, options.samsung).filter(Boolean).map(String).join(', ');

hp ENNY X13 360 (GPU)

最後に、Ryzenの内蔵グラフィックスRadeon RX Vega 8での生成です。VRAMへの割り当てが2GBしかなく、3Bモデルだとアプリが落ちてしまった(VRAM不足)ので、1Bモデルでテストしています。

  1. 推論: 3秒
  2. 生成:5.5token/秒ほど

推論が速くなっていますが、これはモデルのパラメータが少ないからです。同じ1BモデルでCPUで処理をすると推論が3秒、生成が16token/秒ほどになるので、内蔵グラフィックスを使う方が遅くなります。

ここは、メモリの上限(2GB)や、GPTに最適化されてない点が影響するのかもしれません。

回答は以下です。

つまり、次のデータを取得する必要があります。


const options = ref({
    apple: true,
    sony: false,
    samsung: true,
    google: false,
    sharp: false,
    xiaomi: false,
})

ここに来て初めて解答が間違っています。これはモデルが小さいのが要因でしょう。1Bモデルは結構こんな感じで、簡単な質問も平気で間違えます。

使うなら最低でも3Bモデル以上、できれば8Bモデルが必要だなと感じました。

使用中のマシン負荷について

さて、ローカルでGPTを使うとなると気になるのが負荷です。

今回テストしたケースでは、CPUは処理中は100%で張り付きました。これは全てのPCで同じです。

GPUを使ったケースでは最適化がされていないのか、GPUの全てを使っている感じではなく、50%程度という感じでした。ただ、統合型・内蔵グラフィックスの場合はAPU自体が高熱化するとCPUも引っ張られて低速化するため、どちらを使っても処理中はマシン自体は低速化します。

この辺りはアプリのチューニングと、今後のCPUの発展次第なのかもしれません。

手持ちマシンでのローカルGPTは実用的?

現状ではNPUを大量に搭載しているPCでないと、「メインマシンで作業をしつつ、GPTを快適に使う」というのは難しそうです。Chat GPTに比べると生成は遅いですし、何よりも生成中に他の作業をするマシンパワーがありません。それなら、Chat GPTに課金した方がコスパが高いです。

現状ではNPU搭載マシンでコスパが良いのはMacですが、AppleのMシリーズCPU搭載Macをそれ用に買うのであれば、別途NVIDIAのグラボを積んだ「生成AI専用マシン」を自作で組んだ方が処理は高いですし、コスパが高そうです。

GPUの高騰が続いているため微妙な点もありますが、GPUにメモリ8GB以上割り当てできるM4 Mac miniだと15万円からとなります。M4 ProのMac miniだと約22万円からです。

それなら、メインマシンにはMac miniエントリーモデル(9.4万円)を選んで、8GB VRAM以上のGPU搭載した自作PCを6〜8万円くらいで組んだ方が、処理性能的には幸せになれそうな気がします。何よりもguGPUに最適化したRTXシリーズが使えるというのは大きなメリットです。