Article

64GBのM5 Max MacBook Proで、自分用ニュースリーダーを動かす

※ この記事にはアフィリエイト広告が含まれることがあります。

M5 Maxと64GBのユニファイドメモリを載せたMacBook Proを買った。 高価な構成だったが、自分用のニュースリーダーを作ったことで、買った甲斐があったと思える使い方ができた。

自分が読みたい記事を選ぶNewzsnac

作ったニュースリーダーには、Newzsnacという名前を付けた。 RSSやAtom、Hacker News、Bluesky、Zennから記事を集め、本文、既読、保存、検索などの状態をローカルのSQLiteに保存する。

Newzsnacで記事の要約とKEY POINTSを表示している画面

記事を集めて並べるだけなら、既存のニュースリーダーでよい。 NewzsnacではLM Studioで動かしているローカルLLMに本文を渡し、日本語の要約とKEY POINTS、ラベル、読む優先度を作らせている。 海外の記事は、必要になったときに日本語へ翻訳できる。

「気になった」を付けた記事は、埋め込みモデルで作ったベクトルを使い、内容の近い未読記事を探す基準にもなる。 単に人気のある記事や新しい記事を勧めるのではなく、私が気に留めた記事に近いものだけを「読むべきかも?」へ出す。

記事を読んでいて確認したいことがあれば、その画面からローカルLLMへ質問できる。 記事の本文と同じ記事での過去の問答を渡すので、画面を移動せずに話を続けられる。 ローカルLLMでは足りないと感じたら、URL、要約、問答履歴をまとめた引き継ぎ文を作り、別のAI Chatへ自分で貼り付ける。 Newzsnacから外部のAIサービスへ自動送信することはない。

実装はまだGitHub上の非公開リポジトリに置いている。 自分の読み方に合わせて作ったものなので、まずはしばらく使いながら直していくつもりでいる。

GPUが100%になった

Newzsnacが記事を分析しているあいだにSiliconScopeを見ると、GPU使用率が100%に張り付いていた。 そのときCPUのPerformance Coreは5%、Super Coreは6%で、Neural EngineとMedia Engineはidleだった。

Newzsnacの記事分析中にGPU使用率が100%になったSiliconScope

SiliconScopeはAI WorkloadをLLM (GPU/Metal)、AI Runtimeをllama.cppと判定している。 少なくともこの処理では、ニューラルネットワークの処理を担う独立したNeural Engineではなく、GPUが主に働いている。

M5 Maxは各GPUコアにNeural Acceleratorを備えている。 これはNeural Engineとは別の仕組みで、AppleはM5 MaxのLLMプロンプト処理について、M4 Max搭載MacBook Proと比べて最大4倍高速としている。 購入前にどこかで見た「M4より10%以上高速」という記憶より、Appleの公称値はずっと大きかった。

もちろん、この数字はAppleの試験条件での最大値であり、私のNewzsnacでM4 Maxと比較した結果ではない。 それでも、手元の処理でGPUが100%動き続ける様子を見ると、このマシンを買った甲斐があったと思える。

ウェーイ。

64GBにした意味もあった

ちょうどこのタイミングでQwen3.8-27Bが公開され、LM Studioで使い始めた。 LM Studioに表示されるモデルサイズは17.74GBである。

LM StudioでQwen3.8-27Bを読み込んでいる画面

しかし、モデルファイルの大きさだけを見て、18GBほどあれば動くと考えるわけにはいかない。 このときはQwen3.8-27BのほかにGemma 4も読み込んでいた。 同じタイミングのSiliconScopeでは、LM Studioが使うllama.cppのRAMは34.6GB、GPUメモリは21.4GBと表示されていた。 システム全体では64GB中46.7GBを使用し、Freeは17.3GB、Cachedは7.5GB、Swapは3.9GBだった。

llama.cppだけで表示上のRAM使用量が32GBを超えている。 64GBに増やしたことで、27BのモデルをGPUで動かしながら、ブラウザーやエディターを開いておける余地が残った。 負荷の高い処理中なので何でも同時にできるわけではないが、ローカルLLMを日常の道具として使うには、この余裕がうれしい。

欲しかったのはベンチマークの数字ではなかった

M5 MaxのGPUを使い切ること自体が目的だったわけではない。 読みたい情報を集め、読む前に概要をつかみ、英語の記事も必要なら日本語で確認し、自分の関心に近い記事を見つける。 その処理を外部のAPIへ送り続けず、自分のMacで動かしたかった。

メモリを追加して64GBにしたことにも、具体的な使い道ができた。 今は27Bのモデルが、数百件の記事を一つずつ分析している。 GPU使用率100%という表示より、その先でNewzsnacの記事一覧が少しずつ自分向けになっていくことのほうが面白い。

高価な構成にした理由を、ようやく自分で作ったソフトウェアの中に見つけられた。

Newzsnacの詳しい機能や使い方は、GitHubのリポジトリにまとめている。

Prev Entry