Transcript
00:00:00こちらはCactusです。モバイルやエッジデバイスを
00:00:06第一級市民として扱うよう設計された、低遅延の推論エンジンです。通常、
00:00:12エッジデバイスでAIモデルを動かそうとすると、動作が重く、バッテリーを消費し、
00:00:18モバイルOSのメモリマネージャーに強制終了されがちです。しかし、Cactusは
00:00:23NPUの制約や限られたRAMに特化して構築されているため、この問題を解決します。
00:00:28そこで今日は、Cactusの仕組みを見ていき、エッジデバイスで性能をテストしてみます。
00:00:34それでは本題に入りましょう。ローカルAIの最大のボトルネックは、実は計算能力ではなく
00:00:44メモリのオーバーヘッドです。標準的なモバイルデバイスでは、OSが
00:00:50RAMの使用量が急増したアプリを非常にアグレッシブに強制終了します。しかし、Cactusは
00:00:57ゼロコピーのメモリマッピングを使用することで、これを解決します。すべてをRAMに読み込む
00:01:02従来の方法とは異なり、Cactusはストレージからモデルの重みを直接マッピングします。
00:01:08必要な時にだけ特定のテンソルをアクティブな計算サイクルに引き込む、ゼロコピーシステムです。
00:01:13OSにアプリをシャットダウンされるリスクなしに、大型モデルの推論能力を活用できます。そして
00:01:19これを実現するために、彼らは従来のGGUF形式から移行し、
00:01:24エッジデバイスでこのマッピングを有効にする独自の「.CACT」形式を採用しています。しかし、
00:01:31本当に重い処理を行うのは、NPU(ニューラル・プロセッシング・ユニット)です。ほとんどの
00:01:37ローカルエンジンがデフォルトでGPUを使用するのに対し、CactusはNPUファーストで構築されています。
00:01:43Apple、Qualcomm、MediaTekなどの最新チップを見ると、どれもニューラルネットワーク専用の
00:01:50専用シリコンを搭載しています。Cactusはこれらのユニットと直接通信し、
00:01:55推論を遅らせる通常の変換レイヤーをバイパスします。そして実際に、
00:02:00これらの行列乗算ユニットを最大限に活用できるよう、特定のモデルを最適化しています。
00:02:07Cactusのダッシュボードに行くと、ダウンロード可能なNPU最適化モデルの一覧が表示されます。また、
00:02:12Cactusのもう一つの優れた機能として、ハイブリッドルーターがあります。現実問題として、
00:02:18エッジデバイス上のローカルモデルは、どんなに最適化されていても、いずれ推論能力の限界に達します。
00:02:23そこでハイブリッドルーターの出番です。高速だけど限界のあるローカルモデルと、
00:02:29賢いけれどコストがかかるクラウドモデルの二者択一を迫るのではなく、Cactusは両方を扱い、切り替えることができます。
00:02:35これは確信度ベースのルーティングシステムを使用しています。簡単な質問であれば、
00:02:40高速でプライベート、かつコストがかからないため、NPU上で処理が完結します。しかし、
00:02:45タスクが複雑すぎたり、大規模なコンテキストウィンドウが必要だとローカルモデルが判断した場合、
00:02:51その特定のリクエストをクラウド上の最先端モデルに自動的に引き渡します。コードはそのままで、
00:02:57エンジンがバックグラウンドでフェイルオーバーを処理してくれます。そのため、複雑な処理が発生しても
00:03:03ユーザー体験を損なうことなくコストを低く抑えられる、本番環境に対応した方法と言えます。
00:03:08能書きはこれくらいにして、実際に自分で試してみたいと思います。彼らのランディングページには
00:03:13エッジデバイス上で約100ミリ秒の遅延でリアルタイム文字起こしができるデモが掲載されています。
00:03:19そこで、私は彼らの「Swift Cactus」パッケージを使って、簡単なSwiftアプリを感覚で書いてみました。
00:03:25これは、ローカルでは彼らの「Parakeet」音声モデルを使い、クラウドではGeminiモデルを使って
00:03:30リアルタイム文字起こしを実行するものです。では、試してみましょう。ご覧のように、
00:03:36ローカルではライブストリーミングで平均約260ミリ秒の遅延となっています。ちなみに、
00:03:44これを動かしているのは古いiPhoneモデルの「12 Pro」です。これほど古いモデルで
00:03:50エッジでのこのパフォーマンスは、かなり良いのではないかと思います。そして、クラウドに切り替えると、
00:03:55Cactusはクラウド側の選択肢としてGemini 2.5 Flashに切り替えます。どういうわけか、
00:04:01クラウド側には同じParakeetモデルが用意されていなかったため、Geminiを使わざるを得ませんでした。
00:04:06こちらを見ると、3秒のバッチ文字起こしで平均約2,000ミリ秒かかっています。
00:04:12データサーバーとの往復が発生するため、これは予想通りだと思います。しかし
00:04:17現実的には、ほとんどの場合はエッジ側での文字起こしを使うことになるでしょう。ただ、
00:04:23クラウドの選択肢は、重い画像解析や、その他のより負荷の高いタスクに有用です。
00:04:27というわけで、皆さん、これが一言で言えばCactusエンジンです。彼らはここで
00:04:33本当に興味深いことに取り組んでいると思います。カスタムのNPUフレンドリーなアーキテクチャによる
00:04:37エッジ最適化の考え方が気に入っています。また、あらゆる種類のマルチモーダルタスク向けに、
00:04:43非常に多くのSDKとモデルを提供している点も素晴らしいです。この製品が今後どのように
00:04:50進化していくのか、とても興味があります。間違いなく今後の進捗をチェックしていきたいと思います。
00:04:54ところで、皆さんはCactusについてどう思いますか? 試したことはありますか? ぜひ
00:04:59下のコメント欄で教えてください。そして皆さん、こういった解説動画がお好きなら、
00:05:03動画の下にある高評価ボタンをぜひ押してください。チャンネル登録もお忘れなく。
00:05:08Better StackのAndrisでした。それではまた次の動画でお会いしましょう。
00:05:13バイバイ。
Community Posts
No posts yet. Be the first to write about this video!
Write about this video