第一話 初日から、喧嘩
【登場人物紹介】
◾️琴野ソノコ(38)
Pythonの先輩
社内システムの運用を長年支えてきた実務家。派手な技術より、止まらないシステムを評価する。「動くコードと、会社で使えるコードは違うのよ」が口癖。
◾️森野ジュンコ(23)
Mojoの新人
MITで飛び級を重ね、博士号を取得。高速計算と最適化に強い。理論には自信があるが、大企業のシステム運用は未知の世界。「遅いものを工夫して速くするより、最初から速く作ればいいんです」
——————————————————————
【補足】
Mojoは、Pythonより高速な処理を狙えるプログラミング言語です。
特に、AIや機械学習のように大量の計算を行う処理で注目されています。
ただし、少しだけ技術的な補足があります。
Python:書きやすく、AI開発のライブラリが豊富。NumPyやPyTorchなどは、計算の重い部分をC/C++などで実行するため、Pythonだから計算そのものが遅いとは限りません。
Mojo:静的型付けや低レベルの制御を活用し、高性能なコードを目指せます。Pythonに近い書き心地を保ちつつ、性能が必要な部分を最適化できるのが狙いです。
実際の速度:処理内容、実装、使用するライブラリ、CPU・GPUによって変わります。あらゆるプログラムでMojoがPythonより速い、とまでは言えません。
コードの実行が速いことと、攻撃を自動化する仕組み全体が速いことは、別問題です。
・AIが脆弱性の探索
・コード生成
・実行結果の分析
修正を連続して行うなら、処理速度に加えて、その一連の作業をどこまで自動化できるかが大きな意味を持ちます。
ブランディング・東京株式会社、午前九時十二分
1.初日から、喧嘩
ブランディング・東京株式会社は、広告代理店である。
流行をつくり、企業の名前を売り、まだ誰も欲しがっていない商品を、明日には欲しくさせる。
その会社の情報システム部には、ひとつの伝統があった。
新入社員は、まず琴野ソノコに挨拶する。
琴野ソノコ、三十八歳。
社内システムの面倒を見ること十数年。Pythonを自在に操り、広告配信データの集計から顧客管理システムの保守まで、頼まれれば大抵のことは片づける。
本人は自分のことを「Python使い」と呼んでいた。
周囲は、本人のいないところで「情報システム部の女王」と呼んでいた。
その日、午前九時十二分。
情報システム部の入口に、ひとりの若い女性が立った。
「森野ジュンコです。本日からお世話になります」
二十三歳。
マサチューセッツ工科大学、飛び級で博士号取得。
採用面接の履歴書を見たソノコは、最初、冗談かと思った。
「博士号って、何の分野?」
「計算機科学です。AIの推論処理とコンパイラ最適化が専門です」
「へえ」
ソノコは、キーボードを叩きながら答えた。
「じゃあ、Pythonは?」
ジュンコは、少しだけ首を傾げた。
「使えますよ。便利ですから」
「便利?」
ソノコの指が止まった。
「便利って、どういう意味?」
「開発速度が速いという意味です。実行速度まで速いとは限りませんから」
部屋の空気が、ほんの少し冷えた。
ソノコは椅子を回し、ジュンコを見た。
「なるほど。で、あなたは何を使うの?」
「Mojoです」
「モジョ?」
「Mojo。Pythonに近い書き方ができて、性能が必要な部分を低レベルまで最適化できます」
「それで?」
「処理が速くなります」
「何の処理が?」
ジュンコは黙った。
ソノコは笑った。
「いい? 森野さん。情報システム部で大事なのは、ベンチマークの数字じゃないの。毎朝、営業がログインできること。広告の入稿が止まらないこと。請求データが壊れないこと。深夜に障害が起きたとき、翌朝までに復旧できること」
「承知しています」
「本当に?」
「はい。だからこそ、遅い処理を速くしたいんです」
ソノコは腕を組んだ。
「遅い処理が、どこにあるか調べた?」
「まだ初日ですから」
「じゃあ、何を根拠にMojoが必要だと言ってるの?」
ジュンコは初めて、少しだけ笑った。
「何を根拠にPythonで十分だと言っているんですか?」
沈黙。
隣の席でコーヒーを飲んでいた男性社員が、そっとカップを置いた。
ソノコはゆっくり立ち上がった。
「森野さん」
「はい」
「あなた、うちのシステムを見たの?」
「いいえ」
「見てもいないのに、速くしたい?」
「はい」
「へえ」
ソノコは自分のモニターを指さした。
「じゃあ、見せてあげる。うちの広告配信データ、昨日だけで数千万件。毎朝の集計に時間がかかってるのは事実。でもね、遅い原因がPythonだとは限らない」
「データベースのクエリかもしれませんし、ネットワークかもしれません。ストレージのI/Oかもしれませんね」
「あら。そこは分かってるんだ」
「博士号を持っていますので」
「博士号は、障害対応の経験年数じゃないわよ」
「年齢は、最適化の正しさを保証しません」
今度こそ、男性社員がコーヒーをむせた。
ソノコは笑わなかった。
ジュンコも笑わなかった。
二人の視線が、真正面からぶつかった。
そのときだった。
情報システム部の内線電話が鳴った。
営業部からだった。
『琴野さん、大変です! 今朝の広告配信レポート、数字が合いません! クライアントに送るまで、あと二十分しかありません!』
ソノコは受話器を置いた。
「森野さん」
「はい」
「あなた、速いんでしょう?」
「何がですか?」
「仕事よ」
ソノコは自分の椅子を引いた。
「こっちはPythonで調べる。あなたは好きな言語で調べなさい。ただし、本番環境は触らない。読み取り専用の複製データを使うこと。変更を加える前には、必ず私に説明する」
ジュンコは頷いた。
「分かりました」
「二十分後、原因を説明して。速くする方法じゃない。なぜ数字が合わないのか、よ」
「承知しました」
ジュンコは席に着き、ノートパソコンを開いた。
ソノコは自分の端末に向き直る。
二人のキーボードが、ほとんど同時に鳴り始めた。
PythonとMojo。
年齢差、十五歳。
経験と学歴。
保守と最適化。
どちらも、自分の仕事に誇りを持っていた。
そして午前九時十七分。
ジュンコの画面に、ひとつの異常な記録が現れた。
昨日の午前二時十三分。
広告配信データの集計ジョブが、通常とは異なる権限で実行されていた。
その直後、集計対象のレコード数が、わずかに変わっている。
ジュンコはソノコを呼ぼうとして、手を止めた。
これは、処理速度の問題ではない。
彼女は画面を保存し、記録の時刻を確認した。
午前二時十三分。
その時間、広告配信システムは、定期メンテナンス中だったはずだ。
ジュンコは、初めて表情を変えた。
「琴野先輩」
「何?」
「これ、見てください」
ソノコは画面をのぞき込んだ。
数秒間、何も言わなかった。
それから、静かに尋ねた。
「森野さん。これ、あなたが見つけたの?」
「はい」
「私も、同じところを調べていたわ」
ソノコは自分の画面を見せた。
そこには、同じ時刻のログが表示されていた。
ただし、ソノコの画面には、もうひとつの情報があった。
午前二時十四分。
そのジョブを実行したアカウントは、すでに無効化されていた。
ソノコはジュンコを見た。
「ねえ、森野さん」
「はい」
「あなた、Mojoで何かを速くする前に、ひとつ覚えておいて」
「何ですか?」
「速く動くプログラムが、正しい仕事をしているとは限らないの」
ジュンコは、しばらく画面を見つめていた。
それから答えた。
「琴野先輩」
「何?」
「私、今、初めてこの会社に来てよかったと思いました」
「どうして?」
「面白い障害が、ありそうなので」
ソノコは深いため息をついた。
「……あらやだ。面倒なのが来ちゃったわね」
そのとき、営業部から二度目の電話が鳴った。
クライアントへの報告まで、残り十三分。
そして、二人はまだ知らなかった。
昨日の午前二時十三分に始まった異常が、単なる集計ミスではないことを。




