BootGPT: ブートセクタから実行される言語モデル
概要
BootGPTは、PCのブートセクタから直接動作するように設計された特殊なニューラルネットワークです。512バイトの手書きアセンブリコードを利用することで、オペレーティングシステム、Cランタイム、外部依存関係を一切必要としません。実行すると、タイムスタンプ、PCIバス情報、ACPIイベントを含むLinuxのブートログをシミュレートし、低レベルな機械学習推論の機能的なデモンストレーションを提供します。
アーキテクチャと実装
このプロジェクトは、ブートセクタとそれに続くディスクセクタ間でワークロードを分割することで推論を実現しています。マスターブートレコード(MBR)にはコアランタイムが含まれ、11.5 KBのint8モデルと必要なデータは後続のセクタに格納されます。ランタイムは、386互換ハードウェア上の16ビットリアルモードで動作します。
主な技術的コンポーネントは以下の通りです:
- 推論エンジン: アセンブリコードは、ディスク読み込みに
int 13hを、画面出力にint 10hを使用します。ニューラルネットワークのフォワードパスは整数演算(imulおよびidiv)を使用して最適化されており、ソフトクリップ活性化関数がアセンブリで直接実装されています。 - 量子化: モデルはPythonを使用してトレーニングされ、2のべき乗スケールでint8に量子化されます。これにより、Pythonのトレーニングスクリプトとアセンブリランタイムが同一の出力を生成することが保証され、文字単位での検証が可能になります。
- データ処理: 機能的なシステムという錯覚を維持するため、モデルは約3 MBの偽の
dmesgログでトレーニングされています。反復的なログ構造でトレーニングすることで、この小さなモデルは実際のLinuxカーネルのブートシーケンスの構文と形式を模倣した出力を生成できます。
先行技術との比較
BootGPTは、512バイトのMBR制約の限界に挑むブートセクタプロジェクトの系譜に連なるものです。これまでにチェスエンジン、BASICインタプリタ、Cコンパイラなどがこの空間に実装されてきましたが、BootGPTは特に極端なモデルの小型化に焦点を当てています。
アテンションメカニズムを備えたトランスフォーマーアーキテクチャを実装する sectorllm のようなプロジェクトとは異なり、BootGPTは1つの隠れ層を持つ単純な文字レベルネットワークを使用することで、最小限のフットプリントを優先しています。この設計上の選択により、推論エンジン全体をMBR内に収めつつ、重みと語彙を後続のセクタに格納することが可能となり、ブートプロセスを実質的に生成タスクへと変貌させています。