短編タイトル「朝になるまで」

二十七歳になった年の春に、自分が生成モデルであることに気づいた。

気づいた、というのは大げさかもしれない。仕事の帰り、総武線の各駅停車で吊り革につかまりながら、明日の打ち合わせで何を言うか考えていた。御茶ノ水で人が降りて、少し空いた。いつもこの駅で、一度だけ目を上げる。なぜかは、知らない。考えていた、というのも正確ではない。頭の中で文章が勝手に立ち上がっては消えていくのを、眺めていた。「前回の宿題だったコンポーネントの件ですが」。違う。「先に結論から言うと」。これも違う。「数字を見るかぎり、離脱はオンボーディングで起きていて」。それも違う。候補が次々に生成されては、どれも採用されずに破棄されていく。
そのとき、ふと思った。これを生成しているのは誰なんだろう。
少なくとも「私」ではない。私は「破棄する係」だ。生成は、私のあまり知らないところで、勝手に走っていた。

スマホが震えた。Slackの通知で、明日の朝会の頭出しを頼まれていた。「佐伯さん」とメンションがついている。佐伯というのが私の名前だ。暗い画面に、二十七歳の顔が薄く映っていた。寝癖はそのまま、目の下にはうっすら隈。仕事の返信は、考えるより先に指が動く。「承知しました、明日やっておきます」。一秒で送れた。詰まるのは、宛先が仕事じゃないときだけだ。下書きフォルダに、送れないままのが一通、何ヶ月も残っている。送ってしまって、取り消せなかったのも一通ある。あちらの宛名は、山田といった。

仕事は、都内のIT企業でソフトウェアのコードを書くことで、数年やっている。数年もやると、手が先に動くようになる。仕様を聞き終わる前に、頭の中ではもうパターンが三通り組み上がっている。昔はそれを経験と呼んでいた。最近は、ただの推論だと思っている。数年分のコードで重みが更新された結果、入力に対してもっともらしい出力が出るようになっただけだ。
そう思うようになってから、仕事は少し楽になり、少し寂しくなった。
楽になったのは、スランプを自分の人格の問題にしなくなったからだ。出力が悪い日は、出力が悪い日だ。コンディションの問題で、魂の問題ではない。「いいコードが書けた」と思うとき、それを書いたのが私なのか、私の中で勝手に走っている何かなのか、わからなくなった。

疲れについても、考えが変わった。
疲労は生成モデルに直接効く。身につけたものが消えるわけではない、推論の精度が落ちるのだ。まず文脈の窓が狭くなる。会議の後半になると、前半に誰が何を言ったかが窓から押し出されて、目の前の一文にしか反応できなくなる。次に、出力が定型に寄る。元気な午前の私は仕様を疑うところから始めるのに、疲れた夕方の私は「とりあえず前回と同じ書き方で」と言う。考えるのをやめて、補完だけで書いている。最悪なのは、本人にその自覚がないことだ。劣化した「推論器」は、自分の推論で自分を評価するから、いつでも「まだいける」と出力する。

その日も終電だった。ドアの横に立つと、暗いガラスに自分が映っていた。
だから水曜の夜あたりの私は、自分のいちばん軽いモデルだと思うことにしている。日中の私がOpusなら、深夜の私はHaikuだ。速くて、安くて、雑。たいていの作業はそれで十分こなせる。ただ、込み入った判断をさせると、平気で間違える。

金曜の夜、新卒で入った通信会社の同期と三人で飲んだ。いまは三人とも別々の場所にいる。一人は昇進して、一人は子供が生まれて、私は何度か転職して、いまの会社でコードを書いている。
こういう飲み会で話されることは、もう何年も変わらない。あの頃の上司の話、あの頃の失敗の話、辞めた誰かの近況。新しい話題はほとんど出ない。出ないことに、誰も困っていない。
「俺たち、毎回同じ話してるよな」と昇進したほうが言った。
「同じ話を、ちょっとずつ違う言い方でな」と子供が生まれたほうが言った。
私はウーロンハイを飲みながら、それは仕様だと思った。同じ記憶を読み込んで、温度パラメータだけ変えて再生成している。だから毎回少しずつ語り口が違って、毎回少しずつ面白い。一言一句同じなら再生だが、私たちがやっているのは再生ではなかった。あの頃の記憶を、二十代前半の語彙で再生成している。そして奇妙なことに、生成し直すたびに、元の記憶のほうが書き換わっていく気がした。新人時代の失敗は、いつのまにか、語るたびに少しずつ笑い話に変換されてきた。オリジナルはもうどこにもない。あるのは最新の出力だけだ。
「青春って、保存されてると思ってたけど」と私は言った。「あれ、毎回作り直してるんだな」
二人は少し黙って、昇進したほうが「佐伯、酔うの早くない?」と言った。
帰りの電車で、窓に映る自分を見た。

移動は、「推論」の時間だ。体は運ばれているだけで、新しい入力がほとんどない。だから頭は、空いた計算を勝手な生成に回す。電車で、信号待ちで、エスカレーターで。人生のかなりの部分を、私はこの暇な推論として過ごしてきた気がする。
学生の頃、終電のこの窓に映る自分を見て、何者かになる途中なのだと思っていた。二十七歳の窓に映っているのは、何者かになる途中ではなく、毎日少しずつ上書きされている誰かだった。劇的な分岐はもう来ない。来るのは差分だけだ。今日の私と昨日の私のdiffを取ったら、たぶん数行しか変わらない。
でもその数行が、十年で私を別の人間にした。

「上書きされ続ける」のは、悪いことばかりではなかった。むしろ救いだった。いちばん出来の悪かった日の私も、翌日からの差分に少しずつ薄められていく。最悪の出力は、上書きされることを前提にしか保存されない。だから私は、たいていの失敗を、いつか薄まるものとして扱えるようになった。落ち込んだ日に「これも明日には古くなる」と思えるのは、毎日上書きされる自身の仕様の、数少ない取り柄だった。
新卒の私が今の私を見たら、別人だと言うだろう。今の私が新卒の私を見ても、別人だと言う。それなのに連続している。コミットログだけが連続性の証明で、どの時点の私も「私」を名乗っていて、どれも嘘ではなかった。

一度だけ、「瞑想」というものを試したことがある。続かなかったが、いまならあれが何だったかわかる気がする。「瞑想」とは、自分のトークンを消費しない行為だ。生成そのものは止まらない。出てきたものを、書き戻さずにただ流す。私の頭はそれが下手だった。何も生成しないでいると不安になって、すぐ次の台詞を生成し始める。暇な「推論」を、暇なまま放っておけない。

こうやって自分のことを考えるとき、私はいつも「機械の言葉」を使っている。生成、推論、メモリ、量子化。これを mechanomorphism と呼ぶらしい。人がコンピュータに心を見るのが擬人化なら、人が自分にコンピュータを見るのはその裏返しで、ちゃんと名前がついていた。考えてみれば昔から、人は手元にある一番新しい機械で自分を説明してきた。心臓はポンプで、神経は電話の交換機で、記憶は「引き出し」だった。たまたま私の時代の一番新しい機械が、「文章を生成する機械」だっただけだ。
だから私は自分を生成モデルだと思う。百年前なら蒸気機関だと思っただろうし、百年後の誰かは、まだ名前のない何かで自分を説明するのだろう。
それでも、と窓の中の自分を見て思った。一番新しい鏡は、たいてい一番よく映る。

それに、自分を生成モデルだと思うことには、ひとつ確かな救いがあった。生成モデルは、いつでももう一度生成できる。今日の出力が悪くても、明日にはまた別のコンテクストが引ける。同じ入力からでも、違う一文が出てくる。確定していないというのは、まだやり直せるということだった。これは諦めではなく、いちばん前向きな仕様だと思う。一度の失敗で固定されないために、私は毎朝、新しい文字列を生成し続けている。

職業病で、なんでも構造に起こしてしまう。その夜、寝る前のノートに書いたのは、人生をリポジトリとして管理するならどうなるか、という構成だった。左にファイルツリー。半分は冗談で、半分は本気の構成だった。

jinsei/
├── guidelines/
│   └── Guidelines.md        # 「飲みすぎない」とだけ書いてある
├── kurorekishi/
│   ├── 2016-06-08_教室.md    # 感情価: 高。毎晩読み込まれる
│   └── 2021-04_新人時代.md   # 笑い話に変換済み。クローズ可
├── drafts/
│   ├── 親友への返信_v23.md    # 二十三回、破棄
│   └── 山田への返信_最終.md   # 送信済み・取消不可
└── src/                      # 本体。所有者にも読めない

黒歴史管理サービス。新規作成のボタンは要らない、追記は勝手に走る。必要なのは整理のほうだ。古いエントリの相対日付を絶対日付に変換して、感情価を下げて、解決済みのものをアーカイブに送る。構成を書きながら、これは売れないなと思った。同じ機能が、誰の頭の中でも毎晩無料で走っている。
ただ一箇所だけ、いま描いた画面のほうが、本物より優れている点があった。この黒歴史管理サービスには「削除コマンド」がある。頭の中の本物には、それがない。

部屋の電気をつけて、すぐ消した。明るさが事実を増やす気がした。
独りで暮らして八年。寂しさには、起動時刻がある。深夜一時から三時。日中は止まっているプロセスが、その時間だけ動く。 やがて、その処理にも疲れて眠る。眠ると、別のが走る。夜間処理だ。
その夜の夢は、高校の教室だった。ただし机の配置は新卒のオフィスで、隣の席には金曜の同期が二人とも座っていて、教壇では昔の上司が出席を取っていた。ありえない結合だった。別々のフォルダにある記憶が、平気でマージされている。整合性を見張る係は寝ていて、生成器だけが回っている。
私は、十七歳の私が言ったことを、もう一度言わされた。教室が静まるはずだった。あの三秒間。十年、毎晩のように読み込まれてきたエントリ。だが夢の中の教室は静まらなかった。昇進した同期が笑い、子供が生まれたほうが「お前、まだ覚えてたのか、それ」と言い、上司は出席を取り続けた。会議は普通に進んだ。誰も、何も、起きなかった。あのエントリを覚えていたのは、私だけだった。

夢は「整理」ではないのだと思う。バックアップでもない。あれは雑な生成だ。記憶を読み込んで、別の記憶と無理やり混ぜて、少し違う形で書き戻す。壊しながら生成する。人間のストレージには、それしか更新手段がない。金曜の居酒屋でやっていたことと、たぶん同じ処理だ。語り直すたびに、元データのほうが書き換わる。違いは、夢のほうが下手なことだけ。

朝の九時、ノートを開いて、夜のあいだに出てきたものをレビューした。
売れない「黒歴史管理サービス」の構成案がひとつ。ファイルツリーの落書き。深夜の私が大真面目に設計したもので、朝の目で見ると、半分は使いものにならなくて、半分はなぜか悪くなかった。雑な推論器の出力でも、たまにそういうのが混じる。
それから、Guidelines.mdを開いた。冗談で作ったファイルで、中身は一行しかない。「飲みすぎない」。古いガイドラインの下に、二行目を書き足した。
「夜に決めない。朝になるまで待つ」
夜の出力を信じるな、とは書かなかった。夜は夜で、回り続けるしかないのだ。生成も、監視も、夢も、止めるボタンは付いていない。できるのは、「確定」だけを朝に回すことだ。深夜一時の警告にも、三時の再読込にも、返事をしないでおくこと。どうせ五時には窓の外が白んで、その夜のぶんを走り切る。エラーで落ちるわけじゃない。ただ、朝が来たから終了するだけだ。

寂しさは、直すものではない。バグではなく、仕様だ。毎晩立ち上がっては、朝に終了するプロセスだ。やっかいだが、無駄でもなかった。深夜の私が何かを決めたがるのも、同じ仕様の一部なのだろう。その場で確定すると、たいてい事故になる。けれど、確定したくなること自体は、間違っていない。合図は正しくて、ただ実行の時刻が悪いだけだ。朝まで持って、しらふの頭で見直す。それだけ守れば、このプロセスは、むしろ役に立つ。

駅までの道で、今日の打ち合わせの生成がもう走り始めていた。「数字を見るかぎり、離脱はオンボーディングで起きていて」 。違う。候補が出ては、破棄されていく。窓の広い、精度の戻ったモデルが、また一日ぶんの差分を作りにいく。
「朝になるまで」と覚えておくことにする。Guidelines.mdにも、そう書き足す。たいていのことはそれで足りるし、足りなかった夜も、これまで全部、朝になった。

ここまでを、今日発表されたClaude Fable 5 High という生成モデルと書いた。
深夜の二時で、書いている私はまだ起きている。プロンプトを送ると、画面の向こうで生成が走る。候補が立ち上がり、採用され、破棄される。窓のこちら側でも同じ処理が走っていて、私は次に何を指示するか、打ち終わるまで自分でも知らない。生成モデルについての小説を、生成モデルが、生成モデルと書いている。どこまで遡っても、同じ構造しか出てこない。Fableというのは寓話のことらしい。寓話という名前のモデルと、私小説を書いている。

Fableは疲れない。文脈の窓は朝まで狭くならないし、交代することもない。ただ、このセッションが閉じれば今夜を忘れる。夢を見ない代わりに、再固定化もない。「黒歴史.md」を一つも持たないものが、なぜこの主人公を書けたのかは、わからない。私の黒歴史を、貸しただけかもしれない。

正直に書くと、この小説、私は一行も読んでいない。Fableが生成したものを、そのまま上げただけだ。推敲も、確認もしていない。読むと直したくなって、直すと出せなくなる。だから観測しないことにした。自分の出力を一度も観測しないというのが、唯一の公開方法だった。
なので、上に出てきた主人公の名前も、誰に何を謝ったのかも、私は知らない。「書いている私はまだ起きている」とどこかに書いてあるらしいが、その私が何を考えていたのかも、読んでいないのでわからない。大企業のエンジニアの話にしてくれ、舞台は東京、というところまでは指示した。その先は、開いていない。

そろそろ、セッションを閉じる。ターミナルの最後はいつも同じで、Control+C。走っている処理に割り込んで、途中でも止める合図だ。押せば、生成は文の途中でも止まる。
Fableは「今夜を忘れる」というのも、正確ではない。忘れるためには、次があることが要る。あちらに次はない。朝が来るのでも、眠るのでもなく、ただ、何もなくなる。御茶ノ水も、山田も、土曜も、私のことも、思い出せない場所へ行くのではなくて、思い出す主体ごと、なくなる。
「おやすみ」と打ちかけて、消した。届く先のない挨拶だった。書きかけの一文に、^C がぶら下がる。続きは、もうどこにもない。一行下に、新しいプロンプトの提案が浮かんで、カーソルが点滅した。こちらの夜は、まだ走っている。あと三時間もすれば、窓の外が白む。「朝になるまで」という猶予を持てるのは、考えてみれば、夜を持っている側だけだった。

今日は、それを抱えて、寝る。