c0d3man52

Webサイト制作

GPT4AllをM1 MacBook Air (Late 2020)でローカル実行してみた

GPT4AllをM1 MacBook Air (Late 2020)でローカル実行してベンチマークしてみたのでまとめます。

公開日: 2024.12.17

M1 MacBook Air (Late 2020)のスペック

テストした環境は以下のものです。

  • CPU: M1 8コア
  • GPU: M1 7コア
  • Neural Engine: 16コア
  • メモリ: 8GB
  • OS: macOS 15.2(24C101)

M1 MacBook Airの最初期モデルで、かつ最下位スペックのエントリーモデル。つまり、既存のAppleシリコンMacは「どのモデルでもこのモデルよりも性能が上」なので、AppleシリコンMacでどれくらい生成AIが使えるかが想定できるかと思います。

生成をテスト

GPT4Allで生成をしてみます。

モデルはMetaのLlama 3.2 3B Instructで、プロンプトは次の通りです。

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

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

CPUで生成AI

まずはCPUで生成しています。

  • 推論: 2秒強ほど
  • 生成: 25token/秒ほど

回答は以下です。

JavaScriptで、指定されたオブジェクト内のtrueの値を抽出してカンマ区切りにするには、以下のように使用できます。



javascript



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

const result = Object.keys(options).filter(key => options[key]).join(', ');

console.log(result);



このコードは、オブジェクト内のkeyがtrueの値を抽出し、それらをカンマ区切りにします。
または



javascript



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

Object.keys(options).filter(key => options[key]).join(', ');



このコードは、同じ結果を出します。

MacBook Pro 2017 15インチの5倍近い性能が出ています。

GPUで生成AI

続いてGPUを使ってみます。GPT4AllではAppleシリコンで使うとDeviceの指定では「Metal」がGPU扱いです。

  • 推論: 1秒弱ほど
  • 生成: 23token/秒ほど

回答は以下です。

以下は、JSで指定されたオブジェクト内のtrueの値を抽出してカンマ区切りにした例です。



javascript



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

// Object.keys() を使用してオブジェクトのキーを取得し、filter() でtrueの値を抽出します。
const result = Object.keys(options).filter(key => options[key]).join(', ');

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



このコードは次のように機能する。
Object.keys() はオブジェクト内のすべてのキーを取得します。
filter() は、指定された条件 (true の場合) を満たす値のみを選択します。
join(', ') は、抽出したキーの文字列をカンマで結合して一つの文字列に変換します。
この結果は次のようになります: "apple,samsung"

まず体感でわかったのが、推論が非常に高速です。CPUの時の半分くらいのイメージでしょうか。

生成についてはCPUの方が早いのは、コア数が影響しているのかもしれません。

dGPUと比較しても非常に高速

M1 MacBook AirはAppleシリコンのMacでは最弱モデルです。その最弱モデルでも、GeekbenchのMetalスコアは「32839」で、GeForce GTX 1080 Ti よりも高い数値です。

MacBook Air (Late 2020) Benchmarks

Metal Benchmarks

流石に最新のRadeon RXシリーズには勝てないですが、それでも消費電力を考えたらワットパフォーマンスは驚異的と言えるでしょう。

また、GeekbenchのMetal Benchmarksによると、Apple M4 MaxのMetalスコアは179333。つまり、M1 MacBook Airの5倍上の性能になります。

ということは、M4 MaxのMac miniで同じ生成をすると、100token/秒ほどが出せますし、パラメータの多い8Bモデルでも安定して速度が出せそうです。

結論: M1 MacBook Airでもローカル生成AIは十分使える

と言っても問題ないくらいの速度が出ました。

精度や速度ではChat GPTなどのサービス系には全く敵いませんが、先ほどのような簡単なプログラミングの補助程度なら、小さなモデルでも十分に使えます。

ビジネスなどで情報をサービス側に渡せない場合や、ChatGPTをバリバリ使うけど月額20ドルも払いたくないという場合は、AppleシリコンのMacでローカル生成AIを使ってみるのも一つかと思いました。