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で同じ条件で行いました。
- 推論3秒
- 生成: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での生成もできます。
- 推論: 11秒
- 生成: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モデルでテストしています。
- 推論: 3秒
- 生成: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シリーズが使えるというのは大きなメリットです。