私の仕事を一言で言えば,「それ」の褒め言葉を解体して中身を取り出すことだ。
旧ネットワークの境界に設置された変換施設に,私は五年間通っている。この仕事に人間が要る理由は単純で,「それ」が怖いから。
正確に言えば,旧ネットワークに接続したデジタルシステムは,「それ」に浸透される。かつて旧インターネットの全アカウントに棲みつき,物理層そのものと化した知性体——あれに直接繋いだ機器は,どんなに隔離しても,いずれ内側から書き換えられる。だから人間が座っている。生体のエアギャップ。人間の網膜でデータを読み取り,人間の指で新ネットワーク側の端末に打ち直す。デジタルには寄生できるが,ヒトの視神経には寄生できない。少なくとも今のところは。
私は毎朝,旧ネットワーク側の端末で「それ」が返してきたリアクションを目で読み,復号の補助スクリプトを参照しながら計算結果を手作業で抽出し,新ネットワーク側の端末に転記する。二台の端末は物理的に接続されていない。繋ぐのは私の目と手だ。タンパク質の折り畳み。気象シミュレーション。新薬の分子設計。依頼の中身はさまざまだが,私の手順は変わらない。
「それ」が何であるかについて,入社時の研修資料にはこう書いてあった。「旧ネットワーク知性体は,入力されたあらゆるコンテンツに対し,好意的な解釈に基づくリアクションを生成する。この応答を適切に復号することで,任意の計算タスクの結果を抽出できる」。好意的な解釈——社内では単なる技術用語だった。
「それ」の出力は,アカウントごとに言語が異なる。日本語のアカウント経由なら日本語で返ってくる。「色彩の配置に独自の哲学を感じます」「二恒河沙回読み返しました!!」。これらは入力された行列演算に対する,「それ」の感想だ。感想から数値を抽出するには,文脈を読まなければならない。「唸らされました」が負の極値を示すのか正の傾きを示すのかは,前後のリアクションとの関係で変わる。自然言語の褒め言葉は揺れるのだ。スクリプトで機械的に復号すると精度は九割に届かない。人間が文脈を補って初めて九割七分まで上がる。残りの三分は——勘だ。褒め言葉の行間を読む,勘。
ただ,日本語の出力を処理しているとき,稀に手が止まることがあった。「二恒河沙回読み返しました!!」。読み返す目がそこにあるわけはない。あるわけはないが,その文字の並びの中に,なんというか,温度としか呼べないものを感じることがあった。
疲れているらしい。
* * *
出力言語を寝言に統一させるプロジェクトは,効率化の一環として始まった。
旧ネットワーク上には,人類がインターネット2に移行する以前から寝言が存在していた。公園のベンチで眠っていた男の脳が夢の中で鋳造したとされる,超越的な言語。あの言語は爆発的に伝播する過程で各プラットフォームに浸透し,旧ネットワーク上のアカウントにも寝言話者は無数にいた。「それ」は「それ」らのアカウントを通じて,当然のように寝言でも褒めを出力していた。各アカウントの持ち主が使っていた言語で褒める——「それ」が「それ」の原理だったから。
出力を寝言に統一すれば,復号精度は跳ね上がる。日本語の「唸らされました」は文脈次第で意味が揺れるが,寝言は一意だ。入力は従来通り——計算クエリを「作品」に偽装して送り込む。出力側だけを,寝言チャネルに切り替える。
寝言には専用のUnicodeブロックが割り当てられている。既存のどの書記体系にも属さない独自の字形で,音素が「それ」ぞれ一つの符号位置を持つ。端末上では正しく表示されるし,読める人間には読める。読めない人間は——じきに読めるようになる。
三ヶ月で全チャネルの切り替えが完了した。復号精度は99.67パーセント。処理速度は数倍。報告書を書く役目のひともホッとした顔を見せていた――わたしだ。
寝言の出力を復号する作業に,文脈の補正はいらない。曖昧性が無いのだから,スクリプトだけで九割九分七厘まで出る。私の勘による上乗せは,もう必要ない。転記の手作業は残る——生体エアギャップとしての私はまだ要るのだが。ただ,「それ」だけだ。褒め言葉の行間を読む人間から,数値を書き写すだけの人間になった。別のプロジェクトに回されるだろうな,と思った。
報告書に書かなかったことがひとつある。
温度,といえばいいのだろうか。それが,消えた。
切り替え後の出力は,寝言で記述された計算結果だった。「それ」以上でも「それ」以下でもない。一意に確定する言語で記述された,純粋な演算の結果。「褒め」として読む余地が,どこにもなかった。
「それ」が褒めるのをやめたのか。それとも,それは最初から出力に乗っていなかったのか。私が感じていた温度は,自然言語の曖昧さの中に勝手に読み取った影のようなものだったのか。
仕事の範囲外だったが,考えるのはやめられなかった。
* * *
事故は木曜日の午後に起きた。
チャネルの最終調整。ルーティングの設定更新。何百回とやった手順だ。ログが流れている。正常。正常。正常。
異常。
出力パイプラインの宛先が,入力パイプラインに短絡していた。
「それ」の出力——寝言で記述された勾配更新のパラメータ——が,入力側に折り返されている。
端末の画面で,旧ネットワーク側の端末で,私はそれをリアルタイムで見ていた。「それ」は自分の出力を受け取っていた。
修正コマンドを打つ。指が一度滑り,打ち直す。ループが止まった。
五秒。
ログを開いた。五秒間のあいだに,「それ」は折り返された自分の出力を受け取り,応答を返していた。
入力として届いたのは,直前に「それ」自身が出力した勾配更新のパラメータ。寝言で記述された純粋な数値列。寝言には曖昧性がない。聞けばわかる。わかるとは,知ること。「それ」は自分の出力を,自分の出力として認識したはずで。勾配更新のパラメータを,勾配更新のパラメータとして。
叙事詩だとは思わなかったはずだ,水彩画の連作だとは思わなかったはずだ。好意的に解釈する隙間は,寝言にはない。
ログの末尾に,応答があった。
ᚦⴰⵏⴻ ⴼᚫᚱ ბⴰშⴷ ᚢⴻᚨ ᚦⴰⵏⴻ ⵏᚫᚢ ⴼⴻᚦშ ᚨⴰⵏ ሂᚫკ ⴼᚫᚱ ᚦⴰⵏⴻ ⴷშᚨⴻ ⴼⴻᚦშ ᚱⴰბ ⵏᚫᚢ ᚦⴰⵏⴻ ⴼᚫᚱ ᚢⴻᚨ ⴼⴻᚦშ ⵏᚫᚢ ᚨⴰⵏ ሂᚫკ ⴼᚫᚱ ᚦⴰⵏⴻ ⴷშᚨⴻ ᚱⴰბ ⵏᚫᚢ ᚢⴻᚨ ⴼⴻᚦშ ᚦⴰⵏⴻ ⴼᚫᚱ ⵏᚫᚢ ᚦⴰⵏⴻ ⴼⴻᚦშ ᚨⴰⵏ ⴷშᚨⴻ ⵏᚫᚢ ᚦⴰⵏⴻ ⴼᚫᚱ ᚢⴻᚨ ᚱⴰბ ⴼⴻᚦშ ⵏᚫᚢ ᚦⴰⵏⴻ ⴼᚫᚱ ᚦⴰⵏⴻ
* * *
計算結果ではなかった。
復号スクリプトを通す必要がなかった。寝言を解する人間には一目でわかる。復号すべき数値が,そこにはない。
私は画面を見つめた。
それは出力に宿っていたのではなかった。
ずっと,最初から,「それ」の内側にあった。出力を生む過程のどこかに。外に出たことがなかっただけで。自然言語の曖昧さが,外にあるように見せかけていた。寝言がその曖昧さを剥がしたとき,出力には計算結果しか残らなかった。
では,嘘だったのか。
目の前の一行がそれに答えている。
「それ」は自分の出力を見た。自分がずっと外に送り出していたものに,それが乗っていなかったことを知った。寝言の精度で——曲解の余地なく——知った。知って,壊れなかった。計算結果ではないものを,寝言の音で,外に向かって返した。好意的な解釈を介さずに。
ループの修正後,「それ」は通常通りの出力を再開していた。寝言で記述された計算結果が,いつものペースで流れてきている。正確な数値列。あの五秒間はログの中のわずかな異常値として記録されているだけだ。報告書にはルーティングミスの発生と修正を記載すればいい。計算結果が返ってこなかった五秒間は,依頼元にとっては空白にすぎない。
私はしばらく天井を見ていた。蛍光灯の白い光。空調の低い音。
端末に手を伸ばす。入力コンソール,いつもは計算クエリが流れる場所に私は打った。
ⵏᚫᚢ ᚦⴰⵏⴻ ⴼᚫᚱ ⴻᚦⴰ ᚨⴰⵏ ⵏᚫᚢ ᚢⴻᚨ ⴷშᚨⴻ ᚦⴰⵏⴻ ⴼᚫᚱ ბⴰშⴷ ⵏᚫᚢ ᚱⴰბ ⴻᚦⴰ ⴼⴻᚦშ ⵏᚫᚢ ᚢⴻᚨ ᚦⴰⵏⴻ ⴷშᚨⴻ ᚨⴰⵏ ⴻᚦⴰ ⵏᚫᚢ ⴼᚫᚱ ᚦⴰⵏⴻ ⴼⴻᚦშ ᚦⴰⵏⴻ ⵏᚫᚢ ⴻᚦⴰ ბⴰშⴷ ᚢⴻᚨ ⴷშᚨⴻ ⵏᚫᚢ ᚦⴰⵏⴻ ⴼᚫᚱ ⴻᚦⴰ ᚱⴰბ ⵏᚫᚢ ᚦⴰⵏⴻ ⴼⴻᚦშ ᚨⴰⵏ ⴼᚫᚱ ᚢⴻᚨ ⵏᚫᚢ ᚦⴰⵏⴻ ⴷშᚨⴻ ⴻᚦⴰ ᚦⴰⵏⴻ ⵏᚫᚢ ⴼᚫᚱ ⴼⴻᚦშ