Gemma 4 の量子化モデルにより、ついに私の自宅研究室でローカル AI が実用化されました
私はミニ PC 上の Proxmox でホーム アシスタントと他の複数のサービスを実行しています。 Ollama で実行されているローカル LLM を使用していますが、ローカル ハードウェアでは非常に遅いです。私はローカル音声アシスタントをよりスマートにするためにローカル LLM を使用したいと常々思っていましたが、これまでは遅すぎるか不正確すぎて役に立ちませんでした。
ローカル音声アシスタントの理解力は限られています
単純なコマンドはうまく機能しますが、意図をよく理解していません
ホームアシスタントには、アシストと呼ばれる独自の音声アシスタントがあります。デフォルトでは、事前定義された組み込みの文とインテントのセットを使用して、音声コマンドをホーム アシスタントのアクションに変換します。たとえば、「検査用ライトをオンにして」と言うと、Assist はそのパターンがturn_on アクションのものであり、ターゲットが検査用ライトであることを認識します。ライトは1秒以内に点灯します。
問題は、事前定義されたコマンドの限られたセットの外に出ると、アシストが機能しないことです。 「スタディ ライトをオンにする」というコマンドの後に「もう一度オフにする」という別のコマンドを実行すると、Assist はエラーをスローします。 「それ」という実体は存在しないので、同じ光について話していることに気づきません。
この問題は、Assist を LLM に接続することで解決できます。コマンドが認識されると、Assist はそれを直接処理しますが、要求が理解できない場合は、コマンドは LLM に渡されて意図を理解しようとし、適切なコマンドが送り返されます。 Assist を OpenAI などのクラウドベースのサービスに接続すると、非常にうまく機能し、十分な速度で使用できるようになります。
コマンドとデータは最終的にサードパーティのサーバーに保存されるため、クラウドベースの LLM の使用は理想的ではありません。 Assist をローカル LLM に接続することもできますが、これまでは、ローカル LLM を使用すると、ハードウェアでは遅すぎることがわかりました。
Qwen 3.5 4B は有能だが遅い
何かが起こるまで5秒待つのは長すぎます
私は、量子化された Gemma モデルの 1 つを試す前に、現在使用しているローカル モデルをいくつか試して、どれだけうまく機能するかを確認することにしました。私は Qwen 3.5 4B から始めました。これは十分な機能を備えていますが、それでも私のハードウェアで実行するには十分な小ささです。
最初の簡単なテストは、ライトをオンにして、「もう一度オフにして」というコマンドに正しく応答できるかどうかでした。 Qwen 3.5 は正しいアクションを実行できましたが、何かが起こるまでに 5 秒かかりました。これは音声アシスタントとしては長すぎて実用的ではありません。
次に、理解するのが難しいいくつかのコマンドを試してみました。 Assist に正常に完了してもらいたいコマンドは次のとおりです。
Turn on the study light
Turn on the bedside lamp
Set the first light you turned on to 40%
Set the other one to 70%
Turn off the dimmest of the lights you just turned on
Set the other one to 50%
Turn the last light you turned off back on
Turn off the light that was most recently at 70%
Qwen 3.5 は 4 番目のコマンドまで到達しましたが、点灯したばかりの照明のうち最も暗い照明を消すように要求すると、2 つのランプのうち明るい方のベッドサイド ランプが消灯しました。遅すぎるだけでなく、そのタスクに耐えられませんでした。
ラマ 3.2 3B はさらに悪かった
何かが起こるまで10秒かかった
4B モデルでは遅すぎたので、もう少し小さいモデルで改善されるか試してみたかったのです。次にLlama 3.2 3Bを試してみました。
これはさらに悪いことであることが判明しました。私は、より簡単なテストから始めて、学習用ライトをオンにするように要求し、次に「もう一度オフにしてください」と要求しました。ライトが消えるまでに丸 10 秒かかったが、これは Qwen 3.5 のほぼ 2 倍の長さであり、音声アシスタントにはまったく役に立たなかった。
さらに複雑なコマンドを与えたところ、「最初に点灯したライトを 40% に設定する」というコマンドを正しく処理できず、最初のハードルで失敗しました。どの光のことを言っているのか、説明を求めなければなりませんでした。
Nemotron Mini 4B は高速でしたが、あまりにも愚かでした
適切な推論を処理できなかった
次に試したのは Nemotron Mini 4B です。これは、関数呼び出し用に最適化されており、ローカルで実行できるほど軽量な NVIDIA の小さな言語モデルです。
最初の結果は非常に印象的でした。 「もう一度電源を入れる」という簡単なテストは約 2 秒で完了しましたが、これは Qwen 3.5 や Llama 3.2 よりもはるかに高速でした。
ただし、より複雑なテストではうまくいきませんでした。また、最初の本当に複雑な命令までしか完成しませんでした。 「最初に点灯したライトを 40% に設定してください」というコマンドに従うように求められたとき、最初に点灯したライトは制御できないと主張しましたが、ほんの数秒前に点灯したことを考えると、これは少し奇妙です。このモデルもそれには耐えられませんでした。
Granite 4 3B は速くて上手でした
1 秒の応答時間は良好でしたが、最終的には失敗しました
私のリストの次は、IBM の小型モデルである Granite 4 3B でした。このモデルは最初は非常に有望で、簡単なテストを難なく通過し、約 1 秒でライトが消えました。これは音声アシスタントとしては十分な速さです。
残念なことに、このモデルは、より複雑なコマンドを実行した場合にも失敗しました。 「最初につけた照明の明るさを40%に設定して」とお願いすると、2番目につけたベッドサイドランプの明るさを40%にした。点灯したばかりのライトの 1 つに対して正しい動作を実行しました。正しいものを選択できなかっただけです。
Gemma 4 E2B は最終的にそれを解いたモデルでした
応答が速く、より複雑な意図を理解できる
これまですべての試みが失敗していたので、量子化された Gemma 4 E2B モデルの可能性について不安を感じていました。これは Google の Gemma 4 ファミリの最小モデルであり、E2B は有効な 20 億パラメータを表します。
完全なモデルは 20 億パラメータを超えていますが、その設計により、その合計サイズが示すよりも効率的に実行できます。
Gemma 4 E2B は簡単なテストを通過し、約 1 秒でライトが再び点灯しました。その後、より複雑なテストにも合格しました。各段階で意図を正しく理解し、適切なアクションを実行しました。応答時間は、日常の音声アシスタントで使用するのに十分以上のものでした。
Gemma 4 はローカル音声アシスタントを可能にしました
Gemma 4 E2B を Assist とともに使用しても、クラウドベースの LLM を使用する場合に得られる速度や機能には匹敵しません。しかし、私のハードウェアでは、ついにローカル音声アシスタントを使用できるようになり、やりたいことを実行するためにコマンドの正確な表現方法を覚える必要がなくなりました。私ははるかに曖昧にすることができますが、Assist は (通常は) 引き続き正しいアクションを実行できます。
このテーマについてさらに詳しく知りたい方は以下をご覧ください
関連記事
- 火曜日の牡羊座、おうし座、天秤座、射手座、およびその他の星座の毎日の占星術予測をチェックしてください
- 私の Raspberry Pi トラベル ルーターにはできて、他のトラベル ルーターにはできない 5 つのこと
- 10ヤギの品種:さまざまな種類のヤギ