Raspberry Piで自前のLLMを動かすには?GoogleのGemma 3対MicrosoftのBitNet

AGIに仕事を奪われたい
この記事は約11分で読めます。

6,374 文字

Como Rodar uma LLM na Raspberry Pi com Ollama? Gemma 3 da Google Versus BitNet da Microsoft
Aprenda Inteligência Artificial! ▸ Aprenda Agentes iA: ▸ Seja MEMBRO:

今日は、Raspberry Piという非常に有名な開発ボードに人工知能を動かしてみるとどうなるかを検証します。この小さなボードは非常に限られたリソースしか持っていないため、何かを動かすのは極めて困難ですが、現在では非常に小さなモデルが登場しており、もしかしたらそれらがこのボード上で動作するかもしれません。それらが動くのか、価値があるのか、そして関連する質問にも答えていきたいと思います。
まず始めに、いつもライクを付けてくれた方々、チャンネル登録してくれた方々に感謝します。特に、このAIチャンネルをサポートしてくれているメンバーの皆さんに特別な感謝を。メンバーの方々は、インテリジェントエージェントに関する独占動画やWhatsAppにインテリジェントエージェントを統合する方法を教える完全なプレイリスト、そして先行公開動画にアクセスできることを忘れないでください。
さて、私たちの質問はここから始まります。Raspberry Piと呼ばれるこれらの小さな開発ボードについて。多くの人はすでに知っていると思いますが、これらは電子工作プロジェクトに最適です。これはArduinoとは少し異なります。Arduinoはマイクロコントローラーですが、Raspberry PiはミニPCであり、小さなコンピューターです。つまり、Raspberry Piの中ではすでにLinuxが動作していますが、同時に非常に限られたリソースしか持っていません。
さらに悪いことに、私が持っているRaspberry Piはモデル3のB+で、これは何年も前の古いモデルで、今日のモデルと比較するとほとんどメモリがありません。わずか1GBのSDRAMしかなく、これは非常に少ないです。そして1.4GHzのプロセッサも、ほとんど何もないに等しいです。これが動作するのは奇跡に近いですが、どうやって実現できるか見ていきましょう。
ここでは2つの可能性をテストします。1つはGoogleのGemma 3の10億パラメータモデルで、大手テック企業が作った優れたモデルです。10億パラメータは非常に小さなモデルです。例えば、DeepSeekは6000億以上のパラメータを持っており、このモデルの600倍以上大きいことがわかります。つまり、Raspberry Piで動作する可能性があるということです。
もう1つの選択肢はBitNetを使用することです。これは非常に興味深いです。なぜなら、BitNetは異なる人工知能の考え方を使用しているからです。内部アーキテクチャをビットに変換しています。基本的に、小数点を含む数値やパラメータをすべて0、1、-1に変換しています。
これにより数学を簡略化し、その簡略化された数学によってハードウェアがはるかに高速に動作できるようになります。バイナリ数学を行うためのステップは、小数点を含む数学を行うよりもはるかに単純だからです。複雑な小数点数値がどのように0と1に単純化できるかを直感的に理解するには、単純に考えてみてください。
あなたが0か1で答える人を持っている場合、出力は常に0または1です。しかし、500人いて、そのうち240人が0と言い、260人が1と言った場合、0と1と言った人を割ると、きれいな0や1にはならず、端数が出ます。240と260は正確な数字ではないからです。
ここから、0と1を持つものがなぜ小数点の数値を作れるのかという直感が生まれます。群衆の中で多くの0と1が、より複雑なものになり得るからです。
まず最初に知りたかったのは、このプログラムを私のコンピュータで実行しようとするとどうなるかということです。
非常に簡単に言うと、インストール方法のすべての手順がここにあります。エラーが発生する可能性がありますが、横にあるChatGPTがあれば解決できるような難しいものではありません。私はここで小さな問題があり、彼らのFAQで解決されていた、Chronoライブラリに関する問題でした。
一般的に、Windowsを使用している場合は、Cakeとコンパイル用のClangをインストールする必要があります。そしてRaspberry Piでは、手動でインストールする代わりに、このコマンドを実行するとすべての必要なものがインストールされます。
より実用的な部分では、正確なコマンドでこのリポジトリをクローンする必要があります。Pythonライブラリをpip installで簡単にインストールします。このコマンドでモデルをダウンロードします。そして最も恐れられているのがこれ、バグが始まる時間です。ChatGPTに切り替えながら、表示されるエラーをコピー&ペーストする時間です。
しかし、このコマンドラインでは、実行可能ファイルをコンパイルして生成します。この行を通過できれば、すべてがうまくいき、あとは成功するだけです。あとは実際にこのコマンドを実行するだけで、推論プロセスが実行され、質問を送信し、モデルと会話できます。
他にも多くのオプションや高度なことがありますが、基本的にBitNetを実行するにはこれだけです。一方、Gemma 3を実行するのはもう少し簡単です。Ollamaをインストールする必要があります。ここに非常に簡単な手順があります。クリックしてインストールすれば動作します。その後、このコマンド「ollama run gemma:3b-1b」を実行するだけです。
明確にするために、私のOllamaはすでにインストールされています。「ollama run gemma:3b-1b」を実行してみます。これはWindowsの通常のPCで実行しています。注目したいのはGPUの部分で、Ollamaを実行しているときにどれだけのメモリを使用するかです。Gemma 3を実行して、メモリ使用量に変化があるか見てみましょう。
見てください、非常に小さくて見えにくいかもしれませんが、メモリ使用量が増え始めました。これはOllamaがGPUを使用するからです。興味深いことに、ここで会話して「ブラジルの首都は何ですか?」と尋ねると、すぐに応答してくれます。これは私のPC内のGPUで実行しているからです。すべて素晴らしく、これは非常に小さなモデルです。
ここではメモリも余裕があり、すべてが十分です。そして、ご覧のように、応答は非常に良いです。「ブラジルの首都はブラジリアです。ブラジリアは連邦区にある計画都市で、国の中心部に位置しています。」素晴らしい。この小さな1Bのゲンマは素晴らしく機能しています。ここで「/bye」と入力して、Gemma 3を停止します。メモリはまだ割り当てられています。Ollamaを停止して、メモリ使用量が下がるのを確認します。閉じましたか?完璧です。
BitNetの世界では少し異なります。GPUを使用せず、先ほど話していた0と1の仕組みにより、CPUで直接実行され、CPUを使用して高いパフォーマンスを発揮するように設計されています。
それでは、WindowsのPCでBitNetを実行するとどうなるか見てみましょう。あの長いコマンドを実行します。すべて設定されており、BitNetが起動し始めます。ご覧のように、アシスタントがロードされましたが、GPUのメモリは全く動いていません。これは100%CPUを使用していることを意味します。
「ブラジルの首都は何ですか?」と尋ねると、「ブラジルの首都はブラジリアです。これは多くの国と異なり、ブラジルは伝統的な首都を持っていません…」と答え、ヨーロッパの国々のように、と続き、さらに多くの情報を提供してくれました。全体的に両方のモデルが私のコンピュータでは機能しました。
しかし、Raspberry Piですべての手順とインストールを行った場合はどうなるでしょうか?GPUで実行されていたがCPUで実行する必要があるGemmaとCPU用に設計されたBitNetとの間に違いはあるでしょうか?特にBitNetはパラメータ数が多く、24億パラメータを持っているのに対し、Gemmaは10億パラメータしかありません。
これは違いを生むでしょうか?これがBitNetの素晴らしい点で、より大きなモデルでありながら、実行するためのより良いインフラストラクチャを持っています。Raspberry Piに行って、これを実行しようとするとどうなるか見てみましょう。
現在、BitNetにいます。すでにインストールされており、推論コマンドを実行して何が起こるか見てみます。すぐに気づく大きな違いの1つは、このRaspberry Piがコマンドとチャットが始まる画面に到達するまでに遅延があることです。少し時間がかかり、かなり長い時間待つ必要があります。
正直に言うと、ここでBitNetを実行することはできませんでした。実際には動作しますが、ロードに時間がかかります。プロンプトを入力するための画面が表示されますが、質問をしても、テストしたすべてのケースでは、最初のトークンを生成することさえできませんでした。トークンを生成しようと試みたにもかかわらずです。
では、Ollamaを使用してこれを実行しようとしたときに何が起こったのでしょうか?Ollamaの場合、右側の小さなウィンドウで、「NVIDIAやAMDのカードが検出されなかったため、Ollamaは’CPU only’モードで実行されます」と表示されています。つまり、ここでもビデオカードを使用していません。
長い時間の後、ここで質問することができました:「ブラジルの首都は何ですか?」Gemma 3の10億パラメータモデルは、「ブラジルの首都はブラジリアです」と答え、絵文字も送ってくれました。興味深いのは、トークンが1分以上かかったことです。
つまり、この文章が完全に表示されるまでに10分以上かかったということで、Raspberry Pi 3は非常に遅く、ここでモデルを実行することはできません。1Bの小さなモデルでさえも。ご覧のように、私たちはまだ話しており、BitNetではプロンプトや質問を送信するための画面がまだ表示されていません。
興味深いのは、このBan Boenという人がRaspberry Pi 4でテストを行い、結果が少し異なったことです。そのRaspberry Pi 4は2GBのメモリを持っています。Raspberry Pi 5もすでに存在していることを忘れないでください。
彼がGemma 3の1Bを実行したとき、「hey, how are you?」と尋ねると、Gemma 3が応答しています:「I am doing well, thank you for asking as an AI」と。AI応答がリアルタイムで正しく機能し、絵文字も送ってくれています。これはRaspberry Pi 4では正常に動作することを意味します。素晴らしい、これは素晴らしいことです。
Raspberry Pi 4でBitNetではどうだったでしょうか?彼はBitNetにも同じ質問をしました:「How are you?」BitNetは少し遅れて応答し始めます。彼にも同じことが起きました。BitNetはより遅いですが、Raspberry Pi 4では両方のケースで機能しました。これは非常に興味深い点です。
つまり、Raspberry Piで人工知能を使用することは可能ですが、モデル4かモデル5、つまり少し強力なモデルである必要があるということでしょうか?はい、そしていいえ、何をしたいかによります。
非常に小さなモデルは応答を送信できますが、幻覚を多く起こし、より多くのエラーを犯します。つまり、自動化や、Crew AIを行いたい場合、インテリジェントエージェントを配置したい場合など、インテリジェンスと精度を必要とするすべてのことはうまくいきません。これらのモデルは応答できますが、一貫性と回答の質を保証することはできません。
一方、プレイヤーと対話して会話をするようなゲームを作りたい場合など、精度を必要としないものであれば、ローカルPCやRaspberry Piで少し創造性を発揮して実現できます。グラフィックスを多用することは避けるべきです。グラフィックスにメモリを使いすぎると、LLMと会話するためのメモリが残りません。
皆さんはRaspberry Piの価格が気になるかもしれません。Mercado Livreでは、Raspberry Pi 3(私が持っているような古いモデル)は約350レアルです。電源、SDカード、その他のアクセサリーも購入する必要があり、価格はさらに上がります。Raspberry Pi 4なら約729レアルです。
ここに電源やその他多くのものを含む完全なキットがあります。スポンサーではありませんが、インターネットで見つけただけです。この点は重要です。これらのキットを購入する際、通常は電源、SDカード、ケース、HDMIケーブル、ヒートシンクなどが不足しています。通常、完全なキットの方が価値があります。
例えば、8GBのRAMを持つRaspberry Piの完全なキットは約1300レアルします。個人的には、1300レアルや300レアルをRaspberry Piに費やすなら、携帯電話を購入し、それをルーター化(パスワードを解除してコンピューターとして使用)し、Raspberry Piでできることをすべて携帯電話で行う方が良いと思います。携帯電話はケース、画面、バッテリー、充電器など必要なすべてがあり、さらに通話機能やカメラなど多くの機能がすでにパッケージ化されています。開いたこのボードのように組み立てる必要がなく、1300レアルという価格は実質的にエントリーレベルのPCやデスクトップの価格です。
いずれにせよ、Raspberry PiのようなシンプルなマイクロコントローラーでLLMを実行する価値があるかどうか、実際に動作するかどうかについて、現実的な概念が得られました。どう思いましたか?テストする価値はありましたか?私は非常に価値があったと思います。
ここで、BitNetが表示されました。「ブラジルの首都は何ですか?」この質問を送信すると、トークン生成は1分あたり1トークン以下の速度です。Ollamaとほぼ同じ速度です。つまり、この動画が終わってもまだトークンは表示されないでしょう。ここでテストした限りでは、長時間実行しても何も表示されませんでした。何らかの理由で、BitNetはここでは正常に動作しません。
メモリ使用率を確認するために「top」コマンドを実行すると、Lama CLIが実行されていることがわかります。動作しており、Raspberry Piの合計メモリの84%を使用しています。ほぼ1GB全体を消費しています。また、スワップメモリも2GBあり、そのうち1.8GBが残っています。つまり、スワップの使用量は少ないですが、この使用率はOllamaの使用率と非常に似ており、実行するとこのような結果になります。
おそらく1分以上経過していますが、トークンは一つも表示されていません。「A」という文字(回答の始まり)さえも表示されていません。ブラジルの首都は何かという質問に対して。
皆さん、このようなビデオを続けてサポートしたい場合は、メンバーになってください。メンバーはインテリジェントエージェントの独占動画と先行公開動画にアクセスできます。そして、いいね!もお願いします。
ありがとう!

コメント

タイトルとURLをコピーしました