MokuML:パイプラインなしでローカルの機械学習予測

概念実証の研究。github.com/amiune/MokuML

小規模事業がPostgresに接続し、平易な英語で予測したいことを伝えるだけで、データサイエンスのチームもクラウドの機械学習基盤もKumoのようなサブスクリプションも使わず、自分のMacで結果を得られるとしたらどうでしょうか。

MokuMLで、その可能性を探っています。軽量版のKumo.aiをイメージしてください。データベースを接続し、予測を求め、答えを得る。ただし、すべてローカルで動きます。

アイデア

  1. 自分のPostgresデータベースに接続します。
  2. 予測したい内容を説明します(「どの顧客が離れていくか」「どの請求書の支払いが遅れるか」など)。
  3. ローカルのLLMがスキーマ(テーブル名、列、キー)を読み、安全なSELECTクエリを書きます。実際のデータ行を見ることはありません。
  4. クエリは、自分のコンピューターで読み取り専用のトランザクションとして実行されます。
  5. TabPFN-3がそのテーブルを使って学習と予測を行います。これもローカルです。

特徴量エンジニアリングのパイプラインも、モデル調整の画面も不要です。顧客データをAPIに送ることもありません。

プライバシーは製品の原則

LLMに渡すのはスキーマのメタデータとプロンプトだけです。セルの値、プレビュー、パスワードは渡しません。SQLは実行前にASTパーサーで検証します。データを変更する操作、DDL、複数の文を組み合わせた不正な操作は拒否します。

任意でリモートのLLMを使うモードもありますが、境界は同じです。渡すのはスキーマだけです。

技術構成

  • SwiftUIのmacOSアプリ
  • データベースへのアクセス、SQLの検証、TabPFNの推論を担当する127.0.0.1上のPythonワーカー
  • テキストからSQLを作るためのOllama(またはOpenAI互換API)
  • ~/Library/Application Support/MokuML/runs/に保存するローカルの実行履歴

現実的な制約

根拠なしに未来を予測できるわけではありません。過去のラベルか、スキーマから導ける予測対象が必要です。TabPFNには行数と特徴量の制限があります。また、商用利用の前にTabPFNのライセンスを確認してください。

まだ初期段階ですが、方向性は有望です。ローカルのLLMと表形式データの基盤モデルを組み合わせれば、小規模事業にも、安価でプライバシーを守れる実用的な機械学習を届けられるかもしれません。

リポジトリ: github.com/amiune/MokuML