Leon:インテント優先でオフライン動作できるオープンソース個人アシスタント、コアを TypeScript で再構築中
Leon は MIT ライセンスのオープンソース個人アシスタントで、自分のサーバーで音声とテキストを扱い、完全オフラインでも動きます。NLU はインテント優先で、LLM ではなく自前のモデルを使い、機能はスキルにまとめられます。1.0.0-beta.8 でバイナリ配布と TypeScript への書き直しが進みました。外部貢献は一時停止中で、ベンチマークは未公開です。
位置づけ:自分のサーバーに住まわせられるオープンソースの個人アシスタント
Leon は MIT ライセンスのオープンソース個人アシスタントです。キャッチフレーズは「あなたのオープンソース個人アシスタント」。クラウド型のチャットボットとは違い、自分のサーバー上で常駐させて使うプログラムです。話しかければ声で答え、テキストを送ればテキストで返し、向こうから連絡することもできます。何より、完全オフラインで動かしてプライバシーを守れる点が特徴です。大規模言語モデルが話題を独占する今、この方針は流れに逆らって見えます。だからこそ、じっくり読む価値があります。
作者は README で五つの動機を挙げています。第一に、日常を助ける小さな道具を作りたい開発者にとって、アイデアごとに別プロジェクトを立てる代わりに、Leon の「スキル」構造にまとめられること。第二に、共通の構造により誰でもスキルを作って共有でき、コアは一つで済むこと。第三に、AI の概念を使っていて面白いこと。第四に、プライバシーが大切で、第三者サービスなしのオフライン会話に設定できること。第五に、オープンソースは素晴らしいことです。
コアアーキテクチャ:協調する複数のノード
README によると、このリポジトリには Leon の複数のノードが含まれます。サーバー、スキル、Web アプリ、ホットワードノード、TCP サーバー、Python ブリッジです。TCP サーバーは、Leon と spaCy などサードパーティのノードとのプロセス間通信を担当します。メインのプロセスと専任の補助プロセスに分ける設計は現実的です。自然言語処理の資産は Python に多く、サーバーと Web 側は TypeScript が向いています。ローカル TCP で両者をつなげば、それぞれの強みを生かせます。
最新リリース 1.0.0-beta.8 のブログ記事の題は「バイナリと TypeScript による書き直し」です。ここから二点が読み取れます。コアを TypeScript で書き直していること、そして事前ビルド済みバイナリを配布して導入の敷居を下げていることです。README には、今後 JavaScript ブリッジが Python ブリッジと並んで追加されることも書かれています。スキル作者は慣れた言語でスキルを書けるようになります。
仕組み:インテント優先の NLU
Leon の自然言語理解(NLU)は「インテント優先」です。独自に学習したモデルを使い、大規模言語モデルには頼りません。大まかな流れはこうです。ユーザーの発話(音声認識後のテキスト、または直接入力)をインテントに分類し、同時に固有表現を抽出します。次に対応するスキルへ振り分け、スキルが回答を作ります。この設計の利点は明確です。モデルが小さく、推論が速く、結果が予測しやすく、エッジ機器で完全オフラインに動かせます。欠点も明確です。事前に定義したインテントしか扱えず、汎化能力は LLM に遠く及びません。
作者はこのトレードオフを冷静に見ており、README で LLM の将来の使い道を四つ挙げています。一つ目はインテントのフォールバックで、どのインテントにも合わない発話を LLM に任せます。二つ目は新しい固有表現抽出エンジンで、果物、数、都市、期間、人名などをより良く取り出します。三つ目はスキル機能で、要約、翻訳、感情分析などをスキルがすぐ使えるようにします。四つ目はスキル開発の支援で、サンプル発話の言い換え、回答の翻訳、Python ブリッジと将来の JavaScript ブリッジ間のコード変換を行います。作者は、量子化などの小型化技術によって、いずれ LLM をコアに据えてもエッジで動かせると見ています。
性能とコスト:README にベンチマークはない
率直に言うと、この README にはベンチマークが載っていません。遅延、精度、資源使用量の比較はありません。したがって本稿も数値を作りません。アーキテクチャから言えるのはトレードオフだけです。
インテント優先の小型モデルは運用コストが非常に低く、従量課金の推論費用もほぼありません。代償はカバー範囲で、コミュニティがスキルをどれだけ書くか、各インテントにサンプル発話がいくつ要るかに左右されます。将来、量子化したローカル LLM を入れるなら、メモリ使用量と初回応答の遅延が新しい主なコストになります。作者が「エッジで動くこと」を強調するのはそのためです。
エコシステムと導入への影響
開発者にとっての Leon の価値は、スキルという統一された抽象です。小さなアイデアをスキルにすれば、音声、テキスト、NLU、デプロイの仕組みを共通で使えます。
プライバシーを重んじる個人や小規模チームには、セルフホストとオフライン動作が必須条件で、Leon は数少ない完結したオープンソースの選択肢です。作者は、スキルプラットフォームが公開されれば進捗の共有や新しいスキルの公開が容易になると述べています。Discord の整理、定期的な通話、スキルの共同開発も計画しています。
限界と課題
第一に、プロジェクトの状況は楽ではありません。作者は個人的な事情で、新しいコアを仕事の後と週末にしか開発できないと述べています。破壊的変更が多いため、当面は外部からの貢献を受け付けず、新コアの正式リリースまでドキュメントやテストも書かないとしています。
第二に、インテント優先の NLU はカバー範囲が限られ、LLM のフォールバックが必要ですが、それはまだ計画段階です。第三に、資金の問題があります。作者はいつか専業で取り組みたいと考え、収益化の案を持ちつつ、コアは常にオープンソースだと約束しています。現在はスポンサー支援を受け付けています。
今後の展開
見込まれる流れは、新コアの正式リリース、スキルプラットフォームの公開、JavaScript ブリッジと LLM フォールバックの実装、Discord や定期通話などのコミュニティ活動です。注目点は二つあります。
新コアの公開後に貢献の受け付けが再開されるか、そして LLM の導入後もオフライン動作を保てるかです。それまでの Leon は、明確な理念を持ちながら土台を作り直している長期プロジェクトと見るのが適切です。理念は参考になりますが、実運用の前に最新のブランチとリリースノートを確認してください。