自然言語の仕様をローカル神経関数へ変換するCompile by Training
概要
文章の変換、分類、情報抽出などには、自然言語で説明するのは簡単でも、ルールだけで安定して実装するのが難しい機能があります。毎回大規模なリモートモデルを呼び出せば対応できますが、推論のたびに遅延と利用コストが発生し、外部プロバイダーへの依存も残ります。Compile by Trainingは、この問題に対して、仕様を一度コンパイルし、何度も使えるローカル神経関数にする方法を提案します。
仕組み
基盤となるProgram-as-Weights(PAW)は、自然言語で書かれた関数の説明を、小型ニューラルプログラムへ変換します。プログラムは共有の0.6Bローカル解釈器上で実行されます。従来の高速コンパイラは1回のフォワード計算で変換するため、コンパイルは数秒で完了します。
Compile by Trainingの高精度モードでは、次の処理を行います。
- ユーザーが記述した自然言語仕様を読み取る
- 教師モデルにタスク固有の入出力例を生成させる
- 生成例を使って軽量アダプターを微調整し、解釈器を対象関数に適応させる
生成されたPAWプログラムは、毎回教師モデルを必要としません。ローカルで実行でき、通常のソフトウェア関数のように保存、バージョン管理、組み合わせが可能です。公開された例には、英語と「Claude風」文章の相互変換、自然言語によるリアルタイム3Dアバターの操作、個人情報の検出とマスキングがあります。
精度とコンパイルコストの交換
FuzzyBench-Hardの一部では、元の高速PAWコンパイラが完全一致を生成できなかったのに対し、Compile by Trainingは意味的精度83.6%に到達しました。タスク専用の例を作り、その例でアダプターを訓練することで、曖昧さや複雑さを含む仕様への対応力を高めたと考えられます。
ただし、精度向上にはコストがあります。高速方式のコンパイルが数秒で済むのに対し、訓練方式はおよそ1分を要します。追加コストは各リクエストの推論時ではなく、関数を作る段階で発生します。そのため、同じ機能を繰り返し呼び出すケースや、ローカル実行を重視するケースでは、長期的な遅延やリモートモデル利用の削減につながる可能性があります。
実運用での注意点
教師モデルが生成する例の範囲は、そのままコンパイルされた関数の学習範囲になります。まれな入力、境界条件、分布外のデータが例に含まれなければ、そこでは挙動が不安定になる可能性があります。実運用では、合成例だけに頼らず、独立したテストケースや回帰評価を用意する必要があります。
また、自然言語仕様を変更した際に、再コンパイルされた関数が新しい要件を正しく反映するかも検証が必要です。Compile by Trainingの意義は、小型モデルで大規模モデルを全面的に置き換えることではありません。仕様から小さなローカルツールを必要に応じて作り、コンパイル費用と引き換えに、その後の再利用性を得るという開発パターンを示した点にあります。
コメント
ログイン状態を確認中…
コメントを読み込み中…