本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「GPUなしノートPCでローカルLLMを比較してみた」を再編集したものです。
1. なぜローカルLLMを試すのか
近年、ChatGPTをはじめとする大規模言語モデル(LLM)は急速に普及しています。特にクラウド上のモデルを用いることで、手軽に業務にAIを導入することができるため利用シーンは増加しています。一方で、データの外部送信やAPI利用料など継続的なコストといった課題もあります。
こうした背景から、モデルをローカル環境で実行する「ローカルLLM」が注目されるようになっています。
一般に、大規模言語モデルはデータセンター内の高性能GPUや大規模な計算資源を前提として動作しています。ローカルLLMは、必要メモリや計算量を抑えて動作するモデルを使うことで、通常の大規模言語モデルより少ない計算資源で動作します。
ではさらに計算資源の少ない、GPUを搭載していない一般的なノートPCでも実用的に動作するのでしょうか。
本記事では、CPUのみのノートPC環境で複数のローカルLLMを実行し、推論速度やメモリ使用量、出力の傾向を確認しました。
なお、本記事はあくまで一環境での検証例です。すべての環境に当てはまるものではない点はあらかじめご了承ください。
2. ローカルLLMの基本
モデルサイズの違い
LLMは「3B」「7B」「8B」といった形でパラメータ数が表されます。BはBillionの頭文字で、1Bは10億バラメータを表します。一般的には、モデルサイズが大きいほど高品質な出力が期待できますが、その分メモリ使用量や推論時間も増える傾向があります。
そのため、用途に応じて適切なサイズを選ぶことが重要です。
量子化とは
ローカル環境でLLMを動かす上で欠かせないのが量子化です。量子化を行うことで、モデルサイズを大幅に削減しながら、ある程度の精度を維持できます。これにより、GPUなしのノートPCでも7B〜8Bクラスのモデルが動作します。今回は4bit量子化(Q4_K_M)モデルを使用しました。
これより少ないビット数で量子化したモデルは、さらにサイズが小さくなりますが、精度が落ちてしまいます。
推論速度(tokens/sec)
LLMの速度は「tokens/sec」という指標で表されます。これは1秒あたりに生成できるトークン数を示すもので、体感速度に直結します。
日本語の場合、1から3トークンで1文字表せます。
本記事では、llama-benchの結果と実際の生成時間の両方を確認しています。
3. 今回の検証環境
3.1 ハードウェア構成
・CPU:12th Gen Intel Core i7-1265U
・RAM:32GB
・GPU:なし(CPUのみで推論)
・OS:Windows 11 Enterprise
一般的な社用ノートPCを想定した構成です。
検証時は、メモ帳・タスクマネージャー・ターミナルのみを起動し、電源モードは「最高パフォーマンス」に設定しました。
3.2 ソフトウェア構成
・ランタイム:llama.cpp
・モデル形式:GGUF
・量子化方式:Q4_K_M
すべてCPU実行で統一しています。
4. 比較したモデルと選定理由
4.1 比較対象モデル
・Phi-3 Mini 3.8B
・Mistral 7B
・Llama 3 ELYZA JP 8B
4.2 なぜこのモデルを選んだのか
今回は、3B → 7B → 8Bというサイズ帯の違いを段階的に比較することを目的としました。
いずれも現在広く利用されているオープンウエイト(公開)モデルであり、GPUなし環境でも動作できるサイズのため、これらのモデルで検証しました。
5. 検証方法
5.1 実行条件の統一
すべてのモデルで、以下の条件を統一しました。
・スレッド数:8
・コンテキスト長:2048
・max_tokens:512
・温度:デフォルト
モデル間の比較がしやすいよう、設定は固定しています。
5.2 使用プロンプト
以下のタスクで比較しました。
要約タスク
以下の文章を3行(100字程度)で日本語での**要約のみ**行ってください。 --- ローカルLLMは、クラウドAPIを利用せずにローカル環境で大規模言語モデルを実行する仕組みである。近年では量子化技術の進展により、GPUを搭載していない一般的なノートPCでも数十億パラメータ規模のモデルを動作させることが可能になってきた。特に4bit量子化(Q4)などの技術により、モデルサイズを大幅に削減しながらも実用的な精度を維持できる点が注目されている。一方で、モデルサイズが大きくなるほどメモリ消費量や推論時間は増加する傾向がある。そのため、用途に応じたモデル選択が重要となる。例えば、単純な要約や文章の校正といった軽量タスクであれば3Bクラスのモデルでも十分な場合があるが、複雑な推論や長文生成では7Bや8Bクラスの方が安定した結果を出すことが多い。さらに、ローカルLLMを業務で利用する場合には、単純な精度だけでなく、推論速度やCPU使用率、メモリ使用量といったシステムリソースの観点も重要になる。特にGPUを搭載していない環境では、CPUへの負荷が高くなりやすく、他のアプリケーションとの同時利用に影響を及ぼす可能性がある。そのため、実際の業務環境に近い条件で検証を行い、どの程度のパフォーマンスが得られるのかを把握することが重要である。
文書生成タスク
社内でローカルLLMを導入するメリットと注意点について、500文字程度で説明してください。
いずれも一般的な業務を想定した内容で、特定のモデルに有利にならないようにしています。
5.3 測定方法
・llama-bench による tokens/sec の測定
・実際の生成時間の計測
・タスクマネージャーによるピークメモリ確認
・各モデル2回実行し、平均値を算出
6. 実測してみた結果
6.1 推論速度比較
| モデル | パラメータ数 | tg128 1回目(tokens/sec) | 2回目 | 平均 |
| Phi-3 Mini | 3.8B | 15.12 | 13.96 | 14.54 |
| Mistral 7B | 7.2B | 7.70 | 7.70 | 7.70 |
| ELYZA JP 8B | 8.0B | 7.48 | 7.35 | 7.42 |
llama-benchのtg128は、主にデコード(生成)フェーズのスループットを測るテストです。
tg128の結果を見ると、モデルサイズの増加に伴い生成速度が低下する傾向が見られました。
・3Bクラス:約14〜15 tokens/sec
・7B〜8Bクラス:約7 tokens/sec前後
おおよそ半分程度まで低下するという結果になっています。
ちなみに要約タスクと文書生成タスクでは次のような時間になりました。
要約タスク
| モデル | 1回目 (秒) | 2回目 (秒) | 備考 |
| Phi-3 Mini | 62.78 | 52.45 | 1回目で指示逸脱あり |
| Mistral 7B | 90.43 | 31.90 | 出力不安定 |
| ELYZA JP 8B | 36.44 | 33.64 | 安定 |
文書生成
| モデル | 1回目 (秒) | 2回目 (秒) | 備考 |
| Phi-3 Mini | 34.28 | 38.53 | 日本語やや不安定 |
| Mistral 7B | 62.89 | 63.67 | 構造は明確 |
| ELYZA JP 8B | 57.92 | 67.18 | 自然で安定 |
6.2 メモリ使用量比較
| モデル | 要約タスク (MB) | 文書生成タスク (MB) |
| Phi-3 Mini | 約 4,329 MB | 約 4,271 MB |
| Mistral 7B | 約 7,700 MB | 約 7,611 MB |
| ELYZA JP 8B | 約 8,054 MB | 約 7,959 MB |
ピークメモリはおおよそ以下の通りでした。
・3B:約4GB
・7B:約7.6GB
・8B:約8GB
32GB環境であれば動作自体に問題はありませんが、他アプリと併用する場合は余裕を考慮する必要がありそうです。
6.3 出力の傾向
要約タスク
・Phi-3は概ね要約できますが、まれに指示逸脱が見られました。
・Mistralは挙動が安定しないケースがありました。
・ELYZAは日本語要約において比較的安定した出力を生成しました。
文書生成タスク
・3Bは高速ですが、文章品質にばらつきが見られました。
・7Bは構造化された出力を行うものの、日本語の自然さに課題が出る場合があります。
・8B(ELYZA)は自然な文章を安定して生成しました。
7. やってみて感じたこと
サイズが大きくなるにつれて、体感速度は明確に低下しました。タスクマネージャー上ではCPU使用率が最高で80%近くまで上昇し、メモリ使用率も55%程度まで上昇しました。
3Bモデルは比較的スムーズに生成されますが、精度にばらつきがありました。7B〜8Bでは3Bより比較的精度が安定するものの、30〜60秒程度待つ場面やメモリやCPU使用率が高くなる場面もありました。
今回検証に用いたノートPCのスペックで業務と併用して使うのは難しいと感じました。
おわりに
GPUなしのCPU-only環境でも、ローカルLLMは動作することを確認できました。
一方で、用途によって最適なモデルサイズは変わります。軽量タスク中心であれば3Bでも成立する可能性がありますし、品質重視であれば7B〜8Bが候補になります。
竹内一真/FIXER
24卒で入社しました!「かずま」ではなく「いっしん」と読みます。
身体に障害があり電動車椅子に乗って生活しています。
卒業研究でPythonをメインに使っていましたが、それ以外にも趣味や授業でCやRuby, C#を少しだけ勉強してました。音楽制作や3Dモデリングに手を出していた時期もありました。何か作るのは好きな方だと思います。
趣味はアニメ鑑賞、音楽鑑賞、映画鑑賞、ゲームです!
よろしくお願いします!


この連載の記事
-
TECH
生成AIで360°パノラマ画像を作る! 最新研究でやってみた -
TECH
生成AIのプロンプトがうまく書けないときのアプローチ(演繹法/帰納法) -
TECH
“GPT-10”が登場するころ、プロンプトエンジニアはどうなっているか? -
TECH
生成AIは複雑な計算が苦手、だからExcelを使わせよう -
TECH
BPEの動作原理を学び、自作トークナイザーを実装してみた -
TECH
エンジニアとプロンプトエンジニアの違い、「伝える」がなぜ重要なのか -
TECH
システムエンジニア目線で見たプロンプトエンジニアリングのコツ -
TECH
学生向けの生成AI講義で人気があったプロンプト演習3つ(+α) -
TECH
ユースケースが見つけやすい! 便利な「Microsoft 365 Copilot 活用ベストプラクティス集」を入手しよう -
TECH
自治体業務でどう使う? 生成AIアイデアソンに自治体職員が挑戦 -
TECH
アンケート分析」「トーク台本作成」を効率化、お客様サポート業務でのGaiXer活用 - この連載の一覧へ


