広告

Raspberry Pi 5でのLLM性能

Reddit r/LocalLLaMA / 2026/4/1

💬 オピニオンSignals & Early TrendsTools & Practical UsageModels & Research

要点

  • 著者は、llama.cpp/llama-benchを用いて、16GB RAM搭載のRaspberry Pi 5上で大きめのLLM(Qwen3.5の各バリアントおよびGemma 3 12B)をCPUのみで動かしたベンチマーク結果を共有しています。
  • SDカードのスワップを無効化し、より大きいスワップ容量を確保するために1TBのUSB SSDを使用するなど、実用的なセットアップの詳細について説明しています。これにより、大きなモデルを読み込み、実行できるようにしています。
  • 文脈長が非常に長いケース(深さ最大32k)とゼロ文脈の両方についてベンチマークが報告されており、文脈長の増加に伴ってトークン生成の性能がどのように低下するかを示しています。
  • 本記事は「速度よりも品質を重視する」という方針を強調しており、低い量子化レベルの使用や、KV-cacheの量子化といった手法によって性能向上が見込める可能性にも言及しています。
  • 全体として、このレポートはRaspberry Pi上での30B/70Bクラスモデルに関する、これまでコミュニティで入手できなかったベンチマークの空白を埋めるものとなっています。

みなさん、こんにちは。

前置きとして:しばらく前に、Raspi(ラズパイ)上でより大きい(30B/70B)モデルの性能についてのベンチマークを誰か持っているかを尋ねましたが、ありませんでした(または見つかりませんでした)。これは、必要としている方や興味のある方のために、私が情報/ベンチマークを共有するものです。

私が試したモデルは以下です:

  • 0.8Bから122B-A10BまでのQwen3.5
  • Gemma 3 12B

以下は私のセットアップと、ゼロコンテキストおよび深さ32kでのllama-benchの結果です。性能がどれだけ劣化するかを見るために深さを指定しています。私は速度よりも品質を重視しているので、より低い量子化(quants)を使ったり、さらにはKV-cacheの量子化を使ったりすれば、もちろん改善の余地はあります。

私はRaspberry Pi5を持っています:

  • 16GB RAM
  • アクティブクーラー(純正)
  • USB経由で接続した1TB SSD
  • 標準のRaspberry Pi OS lite(Trixie)を使用

SSDの性能:

$ hdparm -t --direct /dev/sda2 /dev/sda2: O_DIRECTを用いたディスク読み取りのタイミング: 3.00秒で1082 MB = 360.18 MB/sec 

より大きいモデルを動かすにはより大きなスワップが必要なので、SDカード上の2GBスワップファイルを無効化し、その用途にもSSDを使いました。というのも、モデルがRAM/スワップに読み込まれてしまえば、それがどこから来たかは重要ではないからです。

$ swapon --show NAME TYPE SIZE USED PRIO /dev/sda3 partition 453.9G 87.6M 10 

その後、しばらく動かしました(約2日間):

$ llama.cpp/build/bin/llama-bench -r 2 --mmap 0 -d 0,32768 -m <all-models-as-GGUF> --progress | tee bench.txt 
model size params backend threads mmap test t/s
qwen35 0.8B Q8_0 763.78 MiB 752.39 M CPU 4 0 pp512 127.70 ± 1.93
qwen35 0.8B Q8_0 763.78 MiB 752.39 M CPU 4 0 tg128 11.51 ± 0.06
qwen35 0.8B Q8_0 763.78 MiB 752.39 M CPU 4 0 pp512 @ d32768 28.43 ± 0.27
qwen35 0.8B Q8_0 763.78 MiB 752.39 M CPU 4 0 tg128 @ d32768 5.52 ± 0.01
qwen35 2B Q8_0 1.86 GiB 1.88 B CPU 4 0 pp512 75.92 ± 1.34
qwen35 2B Q8_0 1.86 GiB 1.88 B CPU 4 0 tg128 5.57 ± 0.02
qwen35 2B Q8_0 1.86 GiB 1.88 B CPU 4 0 pp512 @ d32768 24.50 ± 0.06
qwen35 2B Q8_0 1.86 GiB 1.88 B CPU 4 0 tg128 @ d32768 3.62 ± 0.01
qwen35 4B Q8_0 4.16 GiB 4.21 B CPU 4 0 pp512 31.29 ± 0.14
qwen35 4B Q8_0 4.16 GiB 4.21 B CPU 4 0 tg128 2.51 ± 0.00
qwen35 4B Q8_0 4.16 GiB 4.21 B CPU 4 0 pp512 @ d32768 9.13 ± 0.02
qwen35 4B Q8_0 4.16 GiB 4.21 B CPU 4 0 tg128 @ d32768 1.52 ± 0.01
qwen35 9B Q8_0 8.86 GiB 8.95 B CPU 4 0 pp512 18.20 ± 0.23
qwen35 9B Q8_0 8.86 GiB 8.95 B CPU 4 0 tg128 1.36 ± 0.00
qwen35 9B Q8_0 8.86 GiB 8.95 B CPU 4 0 pp512 @ d32768 7.62 ± 0.00
qwen35 9B Q8_0 8.86 GiB 8.95 B CPU 4 0 tg128 @ d32768 1.01 ± 0.00
qwen35moe 35B.A3B Q8_0 34.36 GiB 34.66 B CPU 4 0 pp512 4.61 ± 0.13
qwen35moe 35B.A3B Q8_0 34.36 GiB 34.66 B CPU 4 0 tg128 1.55 ± 0.17
qwen35moe 35B.A3B Q8_0 34.36 GiB 34.66 B CPU 4 0 pp512 @ d32768 2.98 ± 0.19
qwen35moe 35B.A3B Q8_0 34.36 GiB 34.66 B CPU 4 0 tg128 @ d32768 0.97 ± 0.05
qwen35 27B Q8_0 26.62 GiB 26.90 B CPU 4 0 pp512 2.47 ± 0.01
qwen35 27B Q8_0 26.62 GiB 26.90 B CPU 4 0 tg128 0.01 ± 0.00
qwen35 27B Q8_0 26.62 GiB 26.90 B CPU 4 0 pp512 @ d32768 1.51 ± 0.03
qwen35 27B Q8_0 26.62 GiB 26.90 B CPU 4 0 tg128 @ d32768 0.01 ± 0.00
qwen35moe 122B.A10B Q8_0 120.94 GiB 122.11 BCPU 4 0 pp512 1.38 ± 0.04
qwen35moe 122B.A10B Q8_0 120.94 GiB 122.11 B CPU 4 0 tg128 0.17 ± 0.00
qwen35moe 122B.A10B Q8_0 120.94 GiB 122.11 B CPU 4 0 pp512 @ d32768 0.66 ± 0.00
qwen35moe 122B.A10B Q8_0 120.94 GiB 122.11 B CPU 4 0 tg128 @ d32768 0.12 ± 0.00
gemma3 12B Q8_0 11.64 GiB 11.77 B CPU 4 0 pp512 12.88 ± 0.07
gemma3 12B Q8_0 11.64 GiB 11.77 B CPU 4 0 tg128 1.00 ± 0.00
gemma3 12B Q8_0 11.64 GiB 11.77 B CPU 4 0 pp512 @ d32768 3.34 ± 0.54
gemma3 12B Q8_0 11.64 GiB 11.77 B CPU 4 0 tg128 @ d32768 0.66 ± 0.01

build: 8c60b8a2b (8544)

いくつか観察できたこと:

  • CPU温度は、RAMに完全に収まる小さなモデルではだいたい~70°Cでした
  • CPU温度は、スワップを使用したモデルではだいたい~50°Cでした。CPUは待つ必要があり、主にコアあたり25〜50%の負荷だったためです
  • gemma3 12B Q8_0 は、コンテキスト32768が(かろうじて)収まり、RAMの空きが約200〜300 MiB程度でした

特定のモデルのベンチマークをしてほしい人へ: ただ聞いてください。ただし、1〜2日かかる可能性があります(ダウンロードに1日、テストに1日)。

みんなが「なんで彼はそんな>9Bのモデルをジャガイモで動かしてるの?!」って気になる理由: 最小構成で何ができるかを見てみたいからです。そして、各人の“最小”はそれぞれ違います。;) それに、モデルはローカルで、自分の管理下に置きたいので(だからr/LocalLLaMAでの投稿です)。

誰かの役に立てばうれしいです :)

submitted by /u/honuvo
[link] [comments]

広告