MokuML:パイプラインなしでローカルの機械学習予測
概念実証の研究。github.com/amiune/MokuML
小規模事業がPostgresに接続し、平易な英語で予測したいことを伝えるだけで、データサイエンスのチームもクラウドの機械学習基盤もKumoのようなサブスクリプションも使わず、自分のMacで結果を得られるとしたらどうでしょうか。
MokuMLで、その可能性を探っています。軽量版のKumo.aiをイメージしてください。データベースを接続し、予測を求め、答えを得る。ただし、すべてローカルで動きます。
アイデア
- 自分のPostgresデータベースに接続します。
- 予測したい内容を説明します(「どの顧客が離れていくか」「どの請求書の支払いが遅れるか」など)。
- ローカルのLLMがスキーマ(テーブル名、列、キー)を読み、安全な
SELECTクエリを書きます。実際のデータ行を見ることはありません。 - クエリは、自分のコンピューターで読み取り専用のトランザクションとして実行されます。
- 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