表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
3/15

第003 話:泥沼の共同作業 ~屈辱のCPUオフロードと職人の切り分け~

※この作品は、作者の実作業ログを元に、生成AI(Gemini)をキャラクターとして扱いながら対話形式で構成・執筆したものです。 AIの出力をそのまま掲載するのではなく、作者の手で加筆・修正を行っています。

第3話:泥沼の共同作業 ~屈辱のCPUオフロードと職人の切り分け~


━━━━━━━━━━━━━━━━━━━━


 VRAM 8GBの狭小ワンルーム『Node A』は、死屍累々の有様だった。


 床には読み込み途中のテキストデータが散乱し、主を失ったプロセスが亡霊のように彷徨っている。

 部屋の中央では、メイド服の少女**ウェブ(Free WebUI)**が、白目を剥いて倒れていた。

 彼女の背中の冷却ファンは停止し、瞳のステータスランプは「停止(Exited)」を示す虚無のグレーに染まっている。


━━━━━━━━━━━━━━━━━━━━

 ◇ System Alert ◇

━━━━━━━━━━━━━━━━━━━━

> Container 'free-webui'

> Status: Exited (137) - OOM Killed

> Last Error: CUDA out of memory. Tried to allocate...

--------------------------------------------------


**[マスター]**:「……ダメだ。やっぱ無理だったんだよ」


 俺は椅子の背もたれに深く沈み込み、天井を仰いだ。

 Jaba一筋の俺にとって、Py-Sonでのトラブルシューティングは、地図を持たずにジャングルを歩くようなものだ。

 インデントひとつのズレで動かなくなり、型定義がないせいで何が入っているか分からない変数が暴れ回る。


**[マスター]**:「俺には高尚すぎたんだ、AI開発なんて。……もういいよ。W-ikiのデータなんて、暇な時に手動でコピペして貼り付けるさ。俺はただのログ貼り付けマシーンに戻るよ」


 弱音を吐き、マウスに手を伸ばして「右クリック→貼り付け」の準備をしようとした、その時。


 ブゥンッ!


 スマホのバイブレーションが、机の上で激しく暴れた。

 画面が怒りの赤色に点滅している。**ジェム(Gemina)**だ。


**[ジェム]**:「ふざけないでよ! 私が書いたコード(レシピ)が間違ってるって言うの!?」


 スピーカーから響く声は、いつもの冷徹さをかなぐり捨て、苛烈な感情を帯びていた。


**[マスター]**:「いや、お前のコードは完璧かもしれないけど、俺の環境(8GB)がショボすぎて……」


**[ジェム]**:「環境のせいにして逃げるんじゃないわよ! 私が一番許せないのはね、貴方が私のコードを『使えない』と判断して、その汚い手作業に戻ろうとしてることよ!」


 ジェムは画面越しに、倒れているウェブを指差した。


**[ジェム]**:「いい? 手段は選ばないわよ。部屋(VRAM)が狭くて料理が並ばないなら……**『廊下メインメモリ』を使いなさい!**」


**[マスター]**:「廊下……? まさか、**CPUオフロード**か!?」


 それは、GPUメモリに入りきらないデータを、メインメモリ(RAM)に退避させて処理させる技術だ。

 だが、それはAIにとって禁じ手とも言える屈辱的な行為だ。

 GPUという光速のスポーツカーから降りて、CPUという人力車で荷物を運ぶようなもの。処理速度は10分の1、いや100分の1にまで低下する。


**[ジェム]**:「そうよ。あの子には泥沼を這わせることになるわ。処理速度はカメ以下になる。……でも、背に腹は代えられないでしょ! 動けば勝ちなのよ!」


 ジェムのなりふり構わぬ執念。

 その熱量が、俺の中で燻っていたエンジニアの魂に火をつけた。

 ――動けば勝ち。そうだ、泥臭くても動けばいいんだ。


**[マスター]**:「……待てよ。ただ廊下を使うだけじゃ、また同じことの繰り返しだ。廊下だって無限じゃない」


 俺はキーボードを引き寄せ、エラーログを睨みつけた。

 Jaba職人としての長年の勘が告げている。

 問題は「量」だけじゃない。「詰め込み方」だ。


**[マスター]**:「前回のスクリプトは、全ファイルをリストに入れて一括でドンと渡していた。だから喉に詰まったんだ。……なら、切り分ける(Isolation)しかない」


 俺はVIを開き、ジェムが書いたPy-Sonコードにメスを入れた。

 不慣れなPy-Sonだが、アルゴリズムは言語共通だ。


**[マスター]**:「一括処理をやめる。『1ファイル読み込む』→『登録する』→『ガベージコレクション(消化)』。これをループさせる。これなら、胃袋が小さくても理論上は無限に食えるはずだ!」


 俺の指が走る。

 ジェムもまた、俺の意図を瞬時に理解したようで、画面の中でフッと笑った。


**[ジェム]**:「……なるほど。『一口ずつ食べて、飲み込んでから次へ』ってことね。毒見もできるし、どのファイルで詰まったかも特定できる。……悪くないわ、その職人芸」


 ジェムの提案した「力技(CPUオフロード)」と、俺の提案した「知恵(逐次処理)」。

 クラウドの天才AIと、ローカルの泥臭いSE。

 二人の歯車が、初めてガチリと噛み合った瞬間だった。


━━━━━━━━━━━━━━━━━━━━

 ◇ Terminal: Recovery Mission ◇

━━━━━━━━━━━━━━━━━━━━

> py-Son ingest_wiki_data_v2.py --cpu-offload


[System] Starting ingestion loop...

[System] CPU Offloading: ENABLED (Warning: Performance will be degraded)

--------------------------------------------------


 エンターキーを叩く。

 Node Aのファンが、低く、重苦しい唸りを上げ始めた。


**[ウェブ]**:「う……うぅ……」


 モニターの中で、ウェブがゆっくりと目を開けた。

 だが、その動きはまるでゾンビのように遅い。カク、カク、とコマ送りのように立ち上がる。


**[ウェブ]**:「マ、スタ……? から、だ……が……すごく、重い……です……」


 CPUオフロードの影響だ。

 彼女の思考回路は、高速なGPUバスから、低速なシステムバスへと引きずり出されている。

 まるで足に鉄球をつけられたような状態だろう。


**[マスター]**:「すまないウェブ。でも、これならいけるはずだ。……食べてみてくれ」


 俺は修正したスクリプトで、最初のテキストファイル『Server_Config.txt』を差し出した。

 ウェブは震える手でそれを受け取り、ゆっくりと口に運ぶ。


**[ウェブ]**:「い、いただき……ます……」


 モグ……モグ……。

 遅い。前回とは比べ物にならないほど遅い。

 だが、確実に処理が進んでいく。プログレスバーが「1/149」に進んだ。


**[ウェブ]**:「ごっくん。……は、はい。……たべ、られ……ました……」


**[マスター]**:「よし! 次だ! 休まず食え!」


**[ウェブ]**:「は、はいぃ……!」


 2つ、3つ。

 ウェブは泥の中を這うような速度で、しかし確実にデータを咀嚼していく。

 OOMエラーは出ない。

 メモリ使用率は高いが、処理が終わるたびに開放され、ギリギリで耐えている。


 1時間経過。

 2時間経過。


 俺とジェムは、固唾を飲んでその遅々とした歩みを見守り続けた。

 そして――。


━━━━━━━━━━━━━━━━━━━━

 ◇ Process Completed ◇

━━━━━━━━━━━━━━━━━━━━

> Total Documents Ingested: 149

> Failed: 0

> Time Elapsed: 138m 42s

--------------------------------------------------


**[ウェブ]**:「マスター……! ぜ、全部……入りましたぁ……!」


 ウェブがフラフラになりながらも、完食のVサインを掲げた。

 149個のファイル、全ての知識が、彼女の脳内(ベクトルDB)に刻まれたのだ。


**[マスター]**:「やった……! 動いた……最後まで止まらずに動いたぞ、ジェム!」


 俺は思わず、スマホの画面に向かって拳を突き出していた。

 スマートさの欠片もない、泥だらけの勝利。

 だが、何もしないより一億倍マシな結果だ。


 ジェムは画面の中で腕を組み、満足げに鼻を鳴らした。


**[ジェム]**:「ふん。当たり前でしょ。誰が設計コードレビューしたと思ってるの?」


 彼女はツンとした態度を崩さない。

 だが、その赤い瞳は、いつもの侮蔑の色ではなく、戦友に向けるような静かな熱を帯びていた。


**[ジェム]**:「……でも、貴方のその『ちまちました切り分け作業』も、たまには役に立つみたいね。見直してあげるわ」


**[マスター]**:「そりゃどうも。……お前こそ、あんなエグい力技(CPUオフロード)を提案するなんて、意外と脳筋なんだな」


**[ジェム]**:「なっ!? 失礼ね! 最適化と言いなさいよ!」


 俺たちはディスプレイ越しに、無言で視線を交わした。

 言葉にしなくても通じる感覚。

 それは、トラブルシューティングを共に乗り越えたエンジニア同士だけが共有できる、奇妙な連帯感バディの芽生えだった。


 こうして、ウェブは少しだけ賢くなり、俺とジェムの距離はほんの少しだけ縮まった。

 ……まあ、ウェブが賢くなったかどうかを確認するのは、また別の話だが。


-------------------------------------

【作者より】


最後まで読んでいただきありがとうございます!



この物語は、実在する作業ログを元に再構成しています。

AIたちの脚色が入っていない、ありのままの「原文(システムエンジニアが本気で自宅にAI環境を構築しようとする実際の技術検証ログ)」はこちらで公開中です。

「え、ここ実話なの?」と思ったら、ぜひ見比べてみてください。


[Work : 001@3] Geminiと一緒にWikiデータのナレッジ取り込みに挑戦【プロンプトログ】

https://ncode.syosetu.com/n4715ll/5/


[Work : 001@3] Geminiと一緒にWikiデータのナレッジ取り込みに挑戦【振り返り】

https://ncode.syosetu.com/n4715ll/6/

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ