
Raspberry Pi 5にSDカードを挿して電源を入れると、30秒ほどで対話画面が現れ、そのままAIと会話が始まる。OSの起動画面も、ログイン待ちも、アプリの起動もない。hardraveと名乗る開発者が公開した「NightRun」は、Linuxを使わずに言語モデルだけを動かすソフトウェアだ。Rustで書かれ、MITライセンスでGitHubに公開されている。
普通、Raspberry PiでAIと会話するには、まずLinuxを入れ、必要なソフトを揃え、モデルを読み込む手順を踏む。NightRunはこの層をまるごと省く。SDカード上にOSが存在せず、電源投入と同時にファームウェアがこのソフトを直接立ち上げるためだ。
起動すると、1.3〜2.4GBのモデルがメモリーへ読み込まれる。転送しながら中身が壊れていないか検証し、読み終わるとストレージへの経路を意図的に塞ぐ。以降ディスクを読もうとすると異常終了する仕組みで、動作中に外部へアクセスする余地をなくしている。
対応するモデルは4種類だ。Llama 3.2の1Bと3B、Granite 4.1 3B、Qwen3 4Bで、必要なメモリーは4〜8GBになる。Raspberry Pi 5に加え、UEFI対応のパソコンでもUSBメモリーから起動できる。
速度は控えめだ。Raspberry Pi 5(メモリー8GB)でGranite 4.1 3Bを動かした場合、入力の処理が毎秒6.2トークン、返答の生成が毎秒3.0トークンだった。起動から会話できるまでは約30秒かかる。
設計で目を引くのは、ファームウェアの機能を使い続ける判断だ。通常のOSは起動時にファームウェアから制御を引き取るが、NightRunはそれをしない。開発者によれば、USBキーボードもディスプレイもSDカード読み出しも、ファームウェアに任せればほぼどの機械でも動くためだという。自前でドライバーを揃える必要がなくなる。この点について本人は「純粋なベアメタルではなく、従来型のOSがない状態」と表現を選んでいる。
推論処理も自前だ。Raspberry PiではArmのNEON命令、パソコンではAVX2を使い、圧縮された状態の重みをそのまま計算に使う。正しさの確認には、広く使われているllama.cppと出力が1トークンずつ一致するかを全モデルで検証する方法を取った。文章を単語に区切る処理も公式の実装と突き合わせている。開発者は「読み込みは完璧なのに区切り方がわずかに違うモデルは、最も原因を追いにくい不具合を生む」と説明する。
Raspberry Pi 5版では冷却ファンの制御も自前で持つ。OSがない以上、ほかに担当するものがないためだ。書き込みツールも慎重で、システムディスクを候補から外し、書き込み直前に機種名とシリアル番号を照合し、確認として「FLASH /dev/sdX」と正確に入力させる。書き終えたあとは読み返してハッシュを比べる。
開発者は、コードの大半をAIのコーディングエージェントで書いたことも明かしている。Webアプリではなく、ファームウェアの入り口や圧縮データの計算処理といった領域でどこまで任せられるかを試す意図もあったという。各処理に参照用の実装を用意し、出力の一致を通過条件とした。パソコン側での実機動作の報告や、長時間動作時の発熱の測定は今後の課題として残る。

