3 ポイント 投稿者 GN⁺ 2025-02-17 | 1件のコメント | WhatsAppで共有
  • distributed-llama v0.12.2でdeepseek_r1_distill_llama_8b_q40モデルをRaspberry Pi 5 8GB 4台で実行した結果、2台構成より評価・生成速度の両方が高かった
  • 2台構成はEvaluation 7.70 tok/sPrediction 3.54 tok/sを記録し、4台構成はEvaluation 11.68 tok/s、Prediction 6.43 tok/sを記録
  • 4台構成のPredictionログはトークンあたり約155.60ms、2台構成はトークンあたり約282.22msと表示され、同じモデルでもノード数の増加による処理速度の差が見られる
  • 別のユーザーはv0.12.7で8ノード、2.5G LAN、旧世代Intel CPUベースの構成でEvaluation 33.64 tok/s、Prediction 16.63 tok/sを共有
  • Raspberry Pi 5 8GB 2台でメモリ不足によりプロセスが終了する事例には、--max-seq-len 4096によるコンテキストサイズ縮小が必要との回答が付いた

Raspberry Pi 5 8GB構成の実行結果

  • テストモデルはdeepseek_r1_distill_llama_8b_q40、distributed-llamaのバージョンは0.12.2
  • 比較対象は2 x Raspberry Pi 5 8GB4 x Raspberry Pi 5 8GBの構成
構成 Evaluation Prediction
2 x Raspberry Pi 5 8GB 7.70 tok/s 3.54 tok/s
4 x Raspberry Pi 5 8GB 11.68 tok/s 6.43 tok/s

2台構成のログ数値

  • 2 x Raspberry Pi 5 8GB構成はEvaluationで次の数値を記録
    • nBatches: 32
    • nTokens: 19
    • tokens/s: 7.70
    • 129.89 ms/tok
  • Predictionでは次の数値を記録
    • nTokens: 77
    • tokens/s: 3.54
    • 282.22 ms/tok
  • 実行終了時のログにはNetwork is closedと表示

4台構成のログ数値

  • 4 x Raspberry Pi 5 8GB構成はEvaluationで次の数値を記録
    • nBatches: 32
    • nTokens: 19
    • tokens/s: 11.68
    • 85.63 ms/tok
  • Predictionでは次の数値を記録
    • nTokens: 77
    • tokens/s: 6.43
    • 155.60 ms/tok
  • ログにはトークン生成中の送信864 kB、受信1191 kBが繰り返し表示される

別ユーザーの8ノード結果

  • あるユーザーはdistributed-llama v0.12.7で8ノードを使用した結果を共有
    • 多くは旧世代Intel CPU、4コアまたは6コア構成
    • AVX2対応
    • 2.5G LAN接続
  • この構成の実行結果は以下の通り
    • Evaluation: 33.64 tok/s, 29.73 ms/tok
    • Prediction: 16.63 tok/s, 60.13 ms/tok
    • Predictionトークン数は245
  • 使用したコマンドは./dllama inferenceにモデル、トークナイザー、--buffer-float-type q80--nthreads 6--max-seq-len 4096、複数の--workers--steps 256を指定する形式

実行時の問題と回答

  • Raspberry Pi 5 8GB 2台構成で実行中、RequiredMemory: 20474 MBが表示された後にKilledで終了する事例が共有
    • ルートノードのコマンドには--buffer-float-type q80--steps 16--nthreads 4、workerアドレス1つが含まれる
    • 回答は--max-seq-len 4096コンテキストサイズを縮小すべきという内容
  • 別のユーザーは、複数workerに接続した後、what is 99+12というプロンプトに対して空白とピリオドだけが出力される現象を共有
    • ログにはRopeScaling: f=8.0, l=1.0, h=4.0, o=8192RequiredMemory: 3310 MBChat template: deepSeek3が表示
    • 管理者は使用中のバージョン、最新の変更をpullしたか、どのCPUで実行しているかを確認してほしいと返答

1件のコメント

 
GN⁺ 2025-02-17
Hacker News の意見
  • Raspberry Pi で Deepseek R1 を動かすという発表は、だいたい同じパターンです。実際には DeepSeek の蒸留手法で修正した LlamaQwen を実行しているものに近いです

    • 蒸留された DeepSeek モデルでよく見られる失敗モードは、自分が足踏みしていることに気づかない点です
      DeepSeek は、蒸留された大規模言語モデルが「Wait.」で自分の出力を区切るよう促し、ある程度の推論をさせますが、完全なモデルの推論力よりはるかに弱く、すでに出した結論を新しいニュアンスへ発展させるというより、延々と「Wait.」を繰り返して自己疑念のループに陥ることがあります
    • 投稿タイトルが変わったのかは分かりませんが、今は明示的に Deepseek R1 Distill 8B Q40 となっているので、「Deepseek R1」と呼ぶと結果を誤って表現しているのは確かです
      ただし公式 R1 リポジトリの Distilled Model Evaluation[1] セクションを見ると、DeepSeek-R1-Distill-Llama-8B もかなり良く、一部のベンチマークでは 4o-0513 や Sonnet-1022 より優れているとされています
      形式文法からサンプリングするものもあることを覚えておく必要があります。llama.cpp には GBNF があり、lazy grammar[2] の設定も追加され、一部の用途ではかなり使えるようになっています。つまり文法が後から介入するということです
      さらに追加のファインチューニングの余地もあります。複数の企業が今では「RFT」サービスを提供しており、普通の教師ありファインチューニング用データセットを、大きな R1 が作った合成推論データで充実させる方式です。なのでこの結果は、思ったよりずっと価値のある事前結果かもしれません
      6 tok/s のデコードは速くありませんが、Raspberry Pi を使う人たちはそういうことをあまり気にしません
      [1] https://github.com/deepseek-ai/DeepSeek-R1#distilled-model-e...
      [2] https://github.com/ggerganov/llama.cpp/pull/9639
    • 機械学習が本業ではないソフトウェアエンジニア向けに、この蒸留方法が何を意味するのか説明してほしいです
      R1 が Llama モデルを学習させるとはどういうことなのか、DeepSeek の蒸留方法の何が特別なのかが気になります
    • これは DeepSeek に似た思考の連鎖を生成するようファインチューニングした LLaMa にすぎません
      ちゃんとした「蒸留」モデルなら、より大きなモデルを完全に模倣するよう最初から学習されるべきですが、ここではそういうことは起きていません
    • こうしたモデルが Deepseek R1 という名前でブランディングできてしまうのは本当に気に入りません
  • いつものことですが、tok/s の数値はかなり割り引いて見るべきです
    デモでは 500 トークンにも満たない質問を「解決」しています。可能であること自体は今でも驚きですが、実際の問題や実際に有用なコンテキスト長の「考える」モデル、つまり 8〜16k トークンを扱う場合には、その速度に近づくのは難しいです。チャンネル数の多い Epyc でも、コンテキスト長が 4096 あたりを過ぎると 2〜4 tok/s まで落ちます

    • Raspberry Pi 5 4台で長時間実行、つまり予測がどうなるかを確認してみました
      pos=0 => P 138 ms S 864 kB R 1191 kB Connect
      pos=2000 => P 215 ms S 864 kB R 1191 kB .
      pos=4000 => P 256 ms S 864 kB R 1191 kB manager
      pos=6000 => P 335 ms S 864 kB R 1191 kB the
    • 小さなロボットは通常、小さな問題を扱います
      モデルが少し助けるだけでも、今よりずっと有能になり得ます
  • 悪い結果ではありませんが、Pi 5 4台に £320 を使うなら、中古の 12GB 3080 が手に入り、トークン速度もおそらく 10倍以上速いでしょう

    • あるいは 12GB や 16GB の GPU を Pi 5 1台に直接接続して、より大きなモデルでも 20 tok/s 以上を得られます
      https://github.com/geerlingguy/ollama-benchmark?tab=readme-o...
    • 「Deepseek R1 Distill 8B Q40 on 1x 3080, 60.43 tok/s (eval 110.68 tok/s)」だったら Hacker News には載らなかったでしょう
    • それでも消費電力は 48W 対 320W です
    • 12GB 3060 を2枚ほど使う手もあります
  • ここで興味深いのは、複数のコンピュータにまたがって分散方式で Llama 推論を実行できることです

    • それなら分散 GPU に相当するものはどこにあるのか、と思います
      Seti@HOME のように、世界中に分散した遅い R1 フルモデルにツールを接続し、深く複雑なタスクを公開的に推論させられるのではないでしょうか
  • これは現代版の Beowulf クラスタです

    • Raspberry Pi クラスタのミームは、正直あまり理解できません
      Pi 5 4台より少し多くお金を出せば、eBay で 32コア Epyc CPU と 64GB メモリを搭載した 1U Dell サーバーを見つけられ、少なくとも一桁以上高い性能が出ます
      ホームラボで Beowulf クラスタを語りたいなら、少なくとも非常に安価な FDR Infiniband ネットワークを付けた計算ノードで、Slurm+Lustre や k8s+OpenStack+Ceph のような構成を動かすべきだと思います。遅いノード4台で線形スケールすらしないようなものは、ちょっと見ていられません
  • 複数の Raspberry Pi がどのように並列に使われているのか、見ても理解してもいません
    誰か方向性を教えてくれると助かります

  • この素晴らしい新しい AIツール は、いつごろ apt-get install でインストールできるようになるのだろう?

    • Mac では brew install ollama がよい出発点になるかもしれない
    • いま使っているディストリビューションが大規模言語モデルのツールをパッケージ化し始めるか、そうしたディストリビューションに移行すれば可能になる
    • ollama pull はかなり近い形
    • 厳密には apt-get ではないが、「AIツール」の下にあるインフラ構成要素の多くは conda install でインストール可能
    • 見栄えのよい GUI 版として lm-studio をダウンロードすることもできる
      会話を保存してくれて、モデルのダウンロードも簡単にしてくれる
  • Mac でこのモデルを試してみたいなら、使われているモデルは DeepSeek-R1-Distill-Llama-8B に近そうで、新しい llm-mlx プラグイン で次のように実行できる
    brew install llm # or pipx install llm or uv tool install llm
    llm install llm-mlx
    llm mlx download-model mlx-community/DeepSeek-R1-Distill-Llama-8B
    llm -m mlx-community/DeepSeek-R1-Distill-Llama-8B 'poem about an otter'
    性能もかなりよく、先ほど実行したときは 22 tokens/second が出た: https://gist.github.com/simonw/dada46d027602d6e46ba9e4f48477...

  • メモリを増やすと役に立つだろうか? 最近 16GB RAM 搭載の Rpi 5 が出た

    • 推論速度はメモリ容量よりも 読み書き速度 に大きく左右される
      モデルがメモリに収まりさえすれば、実際の動作を決めるのはメモリ帯域幅
    • モデルとコンテキストがメモリに収まる限り、メモリ容量そのものは役に立たない
      8B パラメータの Q4 モデルは 8GB Pi 1台にも収まるはず
    • 16GB Pi 5 は入荷してすぐになくなった
      最近 Adafruit に在庫が入ったときに何とか1台買えたが、すぐまた売り切れた
      とはいえ性能とは別に、実行に 8GB 超を要求するため Ollama ではそもそも動かせないモデルもある
  • Alexa や Google Home のような製品が必要だ
    ただしクラウドに接続するのではなく、ローカル大規模言語モデルを実行する形であるべき。なぜまだ存在しないのか、誰も作っていないのか分からない

    • 価格のせいではないかと思う
      優れた大規模言語モデルは高価なので、本当の問いは、人々が買うほど有用なモデルを載せつつ、利益が出るほど安く作れるかどうか
    • Home Assistant である程度似た形にはできる
      ツール利用ができるかは確かではないが、天気のように質問できそうなものを公開することはできる
    • ローカル大規模言語モデルというのは、Ollama + llamacpp のようなものを指しているのか?