第 6 章
遺物
第六章:遺物
灰塵不是飄的,是堆的。
清晨五點四十分,葛衡遠獨自站在 Fab 18 的 B3 通道入口,把頭燈調到中亮。光束切進去,灰塵粒子在光柱中一動不動,像某種固態懸浮。空氣裡是他記得的那股複合味道:霉、鏽、酸。但今天多了一層底味——甜的,腐的,像有什麼有機物在某個看不見的角落緩慢分解。
他沒帶隊。只有他自己,一把手電筒,一個工具包,三個法拉第袋——拾荒標配,電子元件進 EMF 區沒有屏蔽等於白撿——一小瓶氫氧化鈣懸浮液。背包底部鋪了一層油布——用途待定,但他習慣讓每個變數都有預案。
載具停在圍牆缺口外。他在距廠區一公里處停車拆下電池,裝進法拉第袋,最後八百公尺推過來的。晶片已經降載——Layer 3 關閉,Layer 2 最低採樣。
進入通道前掃了三個方向。退路兩個。比標準少一個。今天的風險預算本來就比標準高。
他側身擠過防火門的缺口。鋼筋刮過背包——上次是刮駱厝的背包。沒有人在後面跟上來的聲音。
B3 通道結構和上次基本一致。他重新啟動腦中的依賴關係圖,逐個節點更新:承重管架還在,裂紋沒擴展。南段鋼樑脫落的位置他不需要去——今天的路線往左,往 HF 區。
往那扇門的方向。
走到分岔口。左邊:HF 區。上次他走了右邊,往設備層。這次他停在左邊通道的入口,頭燈打進去。
蜂窩狀地面。混凝土被氫氟酸侵蝕成月球表面的質感,承重力剩三成不到。每一步都是在賭地板不會穿。
酸味立刻變濃。硫化氫的臭蛋味從破裂的特氣管路滲出來,尖銳但不致命。鼻腔深處有一絲若有若無的蒜味——砷化氫殘留。那個才是要命的。
他用濕布蒙住口鼻,把氫氧化鈣懸浮液的瓶蓋旋鬆一圈——不是要用,是確保需要時能在兩秒內打開。
左手微顫了一下。他沒理它。不是 workaround 的時候。他讓顫抖留在那裡,像一個佔用率不高的背景進程。
他開始走。不是走——是算。每一步落腳前,手電筒先照亮目標區域,判斷蜂窩化的程度。沿著左側牆根——管線在上方形成遮蔽,減少了化學品的直接滴落,地面狀況稍好。牆面本身的混凝土剝落了,露出裡面的鋼筋。鋼筋沒鏽——被 HF 蝕刻後的金屬表面反而呈現一種不自然的潔淨,像手術刀。
四十公尺。五十公尺。他的世界縮成手電筒光圈的直徑:一公尺。光圈外面不存在。呼吸壓得很淺——每一次深呼吸都會吸入更多殘留氣體。
第六十三公尺處,他看見了那扇門。
比記憶中的更厚。頭燈打上去,門的表面是拉絲不鏽鋼——和周圍的混凝土牆壁完全不同材質。邊緣有一圈黑色的密封膠條,大部分還完好,只有右下角翹起一小段。門把是工業級的撥桿式,不是旋鈕。沒有電子鎖,沒有門禁讀卡機的痕跡。純機械。
門上有一塊標示牌,白底紅字,已經褪色但還能辨認:B2-SERVER / 非製程區 / 授權人員。最後一行被什麼東西刮掉了,只剩「授權」兩個字。
B2。地下二層。
阿鎮說得沒錯——設備層下面還有一層。
他把手搭上門把。金屬的冰涼透過丁腈手套傳到掌心。撥桿很沉,但沒有鏽死。他加了一點力——不是蠻力,是穩定的、均勻的持續施壓——撥桿移動了。密封膠條在門框上拖過去,發出一聲低沉的嘶嘶聲,像一個密封了十年的容器第一次呼吸。
門開了大約三十公分就停住了。地面有碎石卡住了門軌。他蹲下來,用螺絲起子把碎石撬開,門又移動了二十公分。剛好側身擠進去。
門後是一段向下的樓梯。
樓梯不長,大約兩層樓的高度。混凝土階面完好——這一段被密封門隔絕在外,沒有受到 HF 區的化學侵蝕。空氣立刻不同了:冷,乾,帶一股封閉空間獨有的陳年灰塵味。酸味和臭蛋味被門隔斷了,他把口鼻的濕布拉下來,深吸一口氣。乾淨。
腳步聲在樓梯間裡來回反射,比地面上聽起來更空、更硬。心跳每分鐘七十出頭。他把注意力拉回腳下。
樓梯底部是一條走廊,比 B3 通道窄,天花板低了半公尺,但結構完好得不像同一棟建築。牆面防塵漆年久泛黃,卻沒有裂紋。地面乾燥。管線全部走線槽,用金屬蓋板封閉——電力、網路、冷卻,三條線槽平行延伸到走廊盡頭。
網路線槽的蓋板在中段被拆開了一小段。他走近看——光纖,全部被剪斷了。斷口整齊,是人為的。有人刻意切斷了這一層的所有網路連接。
物理斷網。
走廊盡頭,防火門,沒上鎖。門後面——
伺服器室。不大,大約二十坪。四排標準 42U 機櫃,十六座,表面覆著均勻的灰塵。大部分機櫃門是開的,裡面空空蕩蕩——設備撤離在密封之前就完成了。
他沿著機櫃走了一圈。空。空。空。第三排最後一座——門是關的。
不只是關的。門上多了一層東西:鋁箔膠帶。有人用鋁箔膠帶把機櫃門的所有接縫封死了,連頂部的通風口都貼滿了。膠帶層層疊疊,有些地方貼了三四層,邊緣壓得死死的,不留縫隙。
他的手停在膠帶上。腦子裡有什麼東西在快速運算。
鋁箔膠帶。密封所有接縫和開口。金屬機櫃本體。連續導電外殼。
法拉第籠。
有人把這座機櫃改裝成了法拉第籠。
他的心跳從七十跳到了八十。他注意到了,但沒有壓它。
手指開始撕膠帶。鋁箔膠帶黏性還在,但底膠已經脆化,撕起來帶著一種乾裂的手感。他從門縫開始,一條一條地撕,銀色的膠帶碎片落在地上,在手電筒光裡閃爍。
最後一條膠帶撕掉。機櫃門的門鎖很鬆,他用拇指一推就開了。
裡面有東西。
不多。一台 2U 的伺服器——老型號,機殼是厚鋼板沖壓的那種,不是現代的薄鋁片。伺服器旁邊,用防靜電袋包著的一塊顯示卡——他從袋子外面就認出了散熱器的形狀。再往下一層隔板,一個外接硬碟,一卷網路線(沒有接上),和一本 A5 大小的筆記本。
他沒有先碰伺服器。他先碰了筆記本。
封面是黑色硬皮的,沒有標記。他翻開第一頁。有人用藍色原子筆寫了一行字:
「如果你找到這裡,你大概需要它。」
字跡工整但不刻意。他翻了幾頁——日期、溫度記錄、一些縮寫和代號。像是工程日誌。最後幾頁的筆跡明顯潦草了,像是趕時間。他沒有繼續讀——不是現在。
他把筆記本放回去,手伸向那台伺服器。機殼前面板有電源按鈕,但沒有電。他繞到機櫃後面——電源線插在一個不間斷電源上,UPS 的電池指示燈全暗。死了。正常。十年沒有充電的鉛酸電池不可能還活著。
他不需要開機。他需要的是硬碟。
螺絲起子卸下伺服器機殼側板。內部結構一目了然:主機板、CPU 散熱器、兩條記憶體、一顆 SATA 固態硬碟、電源供應器。灰塵很少——法拉第籠的密封把灰塵也擋在外面了。
他取出固態硬碟。三星,860 EVO,1TB。SATA 介面。老東西,但固態硬碟沒有機械部件,只要快閃記憶體的電荷沒衰減到閾值以下,資料就還在。他掃了一眼機櫃內壁——一小袋乾燥劑。溫濕度接近理想儲存條件。十年,在這種環境下,NAND 快閃撐得住。
硬碟被固定的方式不是標準的——螺絲孔位對不上,是用束帶綁在硬碟架上的。後裝的。有人在工廠撤離之後,把這顆硬碟裝進了這台伺服器。
然後他拆開那個防靜電袋。
NVIDIA GeForce RTX 3060。12GB GDDR6。
他的手停了。
不是微顫——是停了。完全靜止。所有正在運行的進程同時掛起。CPU 佔用率歸零。
十二 GB 顯存。本地推理。
他把顯示卡放下,重新拿起硬碟。這次他用螺絲起子小心翼翼地把硬碟外殼上的標籤角落掀起一點——標籤背面,有人用細字簽字筆寫了一行極小的字:
llama-7b-q4.gguf / llama.cpp / README
大腦冷啟動。最先回來的不是情緒,是計算。
七十億參數。Q4 量化。GGUF 格式。
四位元量化的 7B 模型,大小約三點五到四 GB。GGUF 是 llama.cpp 的原生格式,支援純 CPU 推理也支援 GPU offload。RTX 3060 的 12GB 顯存——綽綽有餘。甚至可以把整個模型載入顯存,推理速度能到每秒三十 token 以上。
一個完全本地端的大型語言模型。
不需要網路。不需要 API。不需要任何伺服器連接。不產生任何流量。不留下任何日誌。在這個所有 AI 都經過集中式算力管道、所有推理都被記錄和監控的世界裡——這東西不應該存在。
他的膝蓋碰到了地面。不是跪下——是站不住了。身體比意識先做出了反應,大腿肌肉的支撐力在某一瞬間被抽空,他單膝著地,右手扶著機櫃邊緣,左手握著那顆硬碟。
硬碟的重量不到一百克。他的手感覺它有一噸。
那個工程師——那個在所有人撤離之後、把硬碟裝進伺服器、把機櫃用鋁箔膠帶封成法拉第籠、把光纖全部剪斷、留下一本筆記的人——那個人知道自己在做什麼。他在十年前就知道了:總有一天,會有人需要一個不被看見的 AI。
他把硬碟放在膝蓋上,手掌覆上去。涼的。掌心下的快閃記憶體晶片裡,幾十億個浮點數靜靜地躺在矽基底上,每一個數字都是某個神經網路權重的四位元近似值。一個沉睡的、微型的、殘缺的智能。
七十億參數。人腦的百分之七——一個被裁剪到只剩核心模組的精簡部署。複雜推理會出錯、長文本會失焦——但它能跑。完全離線地跑。
一張卡,一顆硬碟。一個不存在於任何網路上的 AI。
他在那裡蹲了多久不確定。大腦從冷啟動進入了全速運轉——不是情緒性的興奮,是他二十年職業生涯中只出現過幾次的那種狀態:當一個系統架構師看到不可能的解決方案突然變成可能時,大腦自動開始計算所有下游影響。
在一個算力就是貨幣的世界裡,他找到了一座沒有人知道的印鈔機。
不。比印鈔機更好。印鈔機會被發現。這個不會。
他站起來。膝蓋有點僵。他開始系統性地拆卸:硬碟和顯示卡用油布裹好,塞進背包最裡層,四周用工具包的軟墊卡住;筆記本塞進胸前口袋。主機板和電源供應器他考慮了三秒——太大,這趟帶不走。主機板和電源可以替代,但這個模型和這張卡不可替代。
他最後看了一眼機櫃。那些銀色的鋁箔膠帶碎片散落在地上,像什麼東西蛻下的皮。
UPS 的電池指示燈全暗。他把機櫃門推回去。沒有鋁箔膠帶可以重新密封了——但裡面已經沒有需要保護的東西。
回程比來路快。
不是因為不危險了——HF 區的蜂窩地面不會因為他心情好就變得更結實。是因為他的路徑選擇更果斷了。來路上那些猶豫三秒的判斷點,現在只需要一秒。不是冒險——是背包裡的東西改變了風險方程式。回報項從不確定變成了確定,分母變了,整個計算的閾值跟著移動。
穿過 HF 區。六十三公尺。同樣的牆根路線,同樣的逐步計算。左手的微顫回來了,在他扶牆轉角的時候指尖刮過混凝土表面,留下一道細微的白痕。他讓它顫。
密封門他從裡面帶上了,但沒有重新密封。帶上就好。下次來的時候——會有下次——他需要能快速進入。
B3 通道。分岔口。右轉。往出口。
他擠過防火門缺口的時候,背包比上次從這裡出去的時候輕得多——沒有那面七公斤的反射鏡。但他扶住背包帶的手比那次更緊。
外面的光線讓他瞇了眼。不是晨光了——天已經亮透了,太陽在東偏南的位置,至少九點以後。他在地下待了超過三個小時。
天空西南方的雲堆成了一座顏色不對的山——底部灰黑,頂部亮白,像是被從內部點亮的。氣壓在下降,他的太陽穴微微發脹。南台灣的午後雷陣雨從來不遲到,只是有時候提早。
他推著載具跑完最後八百公尺,裝回電池。電機啟動的嗡嗡聲從來沒有這麼好聽過——不是因為聲音變了,是因為他的耳朵變了。
雨在他騎到大灣路口的時候落下來。
沒有預告。一秒前空氣只是悶熱,下一秒整個世界被水砸穿。雨滴打在安全帽上像連續的鞭響,視線在二十公尺外被雨幕切斷。
他把背包從背上移到胸前,雙手環住。油布裹著顯示卡和硬碟,三層緩衝,任何方向的衝擊都先經過它們才能碰到那幾十億個沉睡的參數。
載具在暴雨中沿中華路往南。路面的水漫到輪轂。遠處有雷聲,低沉的,像什麼巨大的結構正在地底斷裂。
二十分鐘後到家門口。全身濕透,水從褲腳匯聚到磁磚上,形成一個緩慢擴大的水漬。
胸前的背包裡,一顆不到一百克的硬碟安靜地存在著。七十億個權重、一個開源模型的完整副本、某個十年前押下賭注的工程師留給未來的遺物。
葛衡遠的左手在顫。他沒有停下來讓它抖完。他換了一隻手抱背包,用右手推開家門。
門鎖轉兩圈半。
載入留言中…