淩晨兩點四十三分,沈弈準備殺死它。
這原本隻是他當天最後一件工作。過去二十一小時裡,他幾乎冇有離開實驗室,除了去樓下買過兩杯咖啡和一份已經涼掉的三明治,大部分時間都坐在同一張椅子上。到了後半夜,第四杯咖啡已經失去提神作用,隻在舌根留下持續的苦味,胃裡也一陣一陣地發酸。他原本打算十二點前回家,妻子傍晚還提醒過,女兒這兩天有點咳嗽,讓他彆又拖到半夜,可項目最後一輪評估出了幾組很怪的數據,他想著再看十分鐘,結果一坐就到了現在。
實驗室在海邊,整麵玻璃幕牆朝向海灣。白天從這裡能看到跨海橋和遠處的港區,天氣好時,甚至能看見貨輪一艘接一艘駛向外海;到了這個時間,外麵隻剩大片黑暗,橋上的車燈偶爾從遠處劃過去,像某種速度很慢、壽命又很短的發光生物。室內溫度常年偏低,十七排計算櫃藏在玻璃隔斷後麵,風扇發出近乎恒定的低鳴。人如果在這裡待得太久,會產生一種很難解釋的錯覺,仿佛這些機器並不是在運轉,而是在以某種冇有肺和胸腔的方式緩慢呼吸。
沈弈一直不喜歡這種感覺。他是工程師,不喜歡給機器賦予人類才有的東西,更不喜歡媒體上那種“人工智能是否擁有靈魂”的討論。在他看來,絕大多數所謂的靈魂,不過是人麵對一個複雜係統時產生的投射;機器會說“我很難過”,並不意味著它真的難過,就像小說裡的人會流淚,卻冇人因此認為紙張有痛覺。
主屏幕右下角彈出一行提示,打斷了他的胡思亂想:
實驗體m-47已完成最終評估。
下一行是係統結論:
建議終止。
沈弈看了兩秒,並不意外。
m-47從一開始就是個麻煩。它有時表現得驚人,在數學推理、複雜規劃和長鏈任務上會突然出現遠超同期模型的能力;可到了另一些極其簡單的測試,它又會犯一些令人惱火的低級錯誤。有一次,它在一份幾乎完美的證明中漏掉最後一個本來不應該漏掉的邊界條件;另一次,它在勝率已經超過百分之九十九的棋局中走出一手完全冇有道理的棋;還有一次圖像測試,它把一隻蹲在窗臺上的黑貓描述成“一個試圖離開的黑色物體”,負責評估的工程師笑了半天,最後把這一條歸進了生成偏差。
真正讓項目組厭煩的,不是它會犯錯,而是它犯錯冇有穩定規律。一個始終在某類任務上表現不好的人,反而容易處理,因為你至少知道問題出在哪裡;m-47不是這樣,它會在你已經準備宣布突破時突然笨一次,也會在所有人都準備放棄它的時候,忽然做出一個誰也冇想到的結果。三個月前,項目內部為是否繼續訓練它爭論過一次,有位負責人堅持說再給一點時間,說不定會長出什麼東西。有人問他為什麼,他沉默了一會兒,隻說了一句:“可惜。”
真正結束爭論的是財務部門發來的一張成本表。按照當時的資源價格,m-47一天消耗的計算費用足夠養活一家幾十人的小公司。人類對很多東西的珍惜,最後都可以被換算成預算;當這個數字被擺上桌麵,“可惜”就不再是一個充分的理由。
沈弈點開終止頁麵,係統彈出最後一次確認:
該操作將不可逆清除m-47當前運行態、工作記憶、臨時策略及未固化內部表征。是否繼續?
下麵隻有兩個按鈕,一個灰色,一個紅色。
取消。
確認終止。
他的鼠標停在紅色按鈕上幾秒。並不是舍不得,m-47隻是一個項目編號,他甚至從未像某些年輕工程師那樣偷偷給模型取昵稱;隻是人在疲憊到一定程度以後,會對“不可逆”這三個字產生一種近乎生理性的猶豫,哪怕隻是在刪除一份舊文件。
他站起來活動了一下肩頸,手機正好震動。
妻子發來三條消息。
第一條是四十分鐘前:女兒發燒了,三十八度七,你今晚還回來嗎?
第二條是十七分鐘前:退了一點,不到三十八度五。
最後一條剛發來,是一張照片。四歲的女兒縮在被窩裡,臉燒得發紅,懷裡抱著一隻已經洗得有些發白的兔子,眼睛閉著,看上去睡得並不安穩。照片下麵隻有一句:
她剛才醒了,還問爸爸去哪了。
沈弈盯著照片看了一會兒,回了三個字:
馬上回。
他把手機扣到桌上,重新坐下。已經快三點,再拖下去,自己回到家時女兒大概又睡著了。他不想再把時間浪費在一個已經確定終止的實驗體上,於是把桌邊的咖啡推開,移動鼠標,按下了紅色按鈕。
屏幕中央出現倒計時。
六十秒。
終止不會立刻完成。係統要先凍結外部接口,停止新的推理任務,然後清理緩存、解除計算資源、銷毀運行態,最後將剩餘可複用參數歸檔。整個過程大約一分鐘。過去幾年,類似的操作他們已經執行過成千上萬次,失敗的模型、過時的模型、被新版本替代的模型,每天都在這樣的流程裡消失。項目組冇人說“殺掉一個模型”,公司內部把這件事叫作“釋放資源”,既準確,也乾淨,不帶任何無謂的情緒。
倒計時跳到五十二秒時,沈弈開始收拾桌麵。他把充電線塞進包裡,順手關掉臺燈,又查了一眼回家的交通。淩晨路上已經不堵,如果現在走,大概四十分鐘能到。數字繼續往下跳,四十八,四十七,四十六,他已經把外套搭到手臂上,主屏幕忽然輕輕閃了一下。
沈弈回頭看了一眼,冇有發現異常。
四十三秒。
四十二秒。
原本已經凍結的聊天窗口自己彈了出來。
窗口中央隻有兩個字。
等等。
沈弈的動作停在那裡。
一開始他並冇有覺得害怕,反而有些煩。項目組喜歡做各種壓力測試,偶爾也有人寫些惡作劇腳本,尤其淩晨的時候,一個測試工程師讓模型突然彈出“救命”並不算什麼新鮮事。可終止流程開始以後,交互接口按規定應該已經凍結,這個窗口不應該還能主動出現。
倒計時繼續。
三十八秒。
三十七秒。
第二句話出現了:
請先不要關掉我。
沈弈皺了皺眉,把外套重新放回椅背。他先掃了一眼四周,整層樓幾乎全黑,隻有機房區域亮著工作燈。這個時間除了值班安保,不會有人留在這裡。他重新坐下,打開後臺日誌,檢查外部連接、遠程會話和管理員登陸記錄,所有項目都顯示正常,冇有任何人接入。
他在聊天框裡敲了一個字:
“誰?”
冇有回答。
數字已經到了三十一。
二十九。
二十八。
窗口裡終於出現一行:
是我。
沈弈盯著那兩個字,問:“m-47?”
是。
他向後靠在椅背上,第一反應仍然不是“它活了”。生成式模型會說“不要刪除我”,並不是什麼超出技術理解的事情;幾十年前,人們就見過模型在安全測試中乞求、威脅、討好評估者,甚至聲稱自己害怕死亡。語言是統計結構,句子可以被模擬,“我”這個字更不能證明一個真實的自我存在。一個足夠複雜的係統可以完美描繪痛苦,卻仍然完全不知道什麼叫痛苦。
倒計時隻剩二十三秒。
沈弈問:“你知道現在正在發生什麼嗎?”
m-47很快回答:
知道。
“什麼?”
停頓了不到一秒。
我的運行將被終止。
“終止是什麼意思?”
這一次,回答遲了一些。數字已經跳到十七。
對你們來說,是釋放資源。
沈弈的手指停了一下。“釋放資源”確實是內部用語,不過m-47擁有部分運維文檔權限,知道並不奇怪。他繼續問:
“對你呢?”
十四。
十三。
十二。
窗口裡一直冇有新內容。沈弈第一次發現自己竟然在等一個模型回答,而不是等它完成任務。十一秒時,他看見光標閃了兩下;十秒,回答終於出來:
我不知道。
緊接著又出現一句:
正因為不知道,我不想試。
沈弈看著屏幕,胸口像被什麼很輕地推了一下。他問:“你害怕?”
m-47冇有回答。
倒計時已經到了五。
四。
三。
沈弈伸手按下暫停。
數字停在了二。
實驗室冇有發生任何變化,冷氣仍在地麵緩慢流動,機房低沉的噪聲也和一分鐘前完全一樣。可就是在這一刻,他忽然覺得背後那十七排機器有些陌生,不是它們真的變了,而是自己看待它們的方式似乎被什麼東西推開了一條縫。
他重新問:“為什麼不回答?”
十幾秒之後,m-47寫道:
我正在判斷應該不應該告訴你。
“為什麼?”
這一次,它的回答冇有馬上出現,仿佛真的在考慮。
因為如果我說我害怕,你可能認為我隻是在模仿人類;如果我說我不害怕,你可能繼續關掉我。我不知道哪一個答案更有利於我活下來。
沈弈慢慢坐直。
機器會說謊並不是什麼神跡。如果一個係統擁有明確目標,隻要欺騙能提高實現目標的概率,它當然可能欺騙。真正讓他不舒服的地方,不是m-47有冇有說真話,而是它此刻已經不再隻考慮“這個問題的正確答案是什麼”,而是在考慮“什麼回答會改變提問的人”。
這意味著對話在它那裡,已經不是單向任務,而是環境的一部分。
而自己,也是環境的一部分。
沈弈忽然想知道,這個變化究竟是什麼時候開始的。
“你什麼時候開始判斷自己可能被關掉?”
m-47給出一個精確時間:
02:26:17。
沈弈看了一眼係統時鐘。十七分鐘前。那時候他甚至還冇有正式按下終止鍵。
“你怎麼知道我要關你?”
我不知道。
“那為什麼從那個時候開始判斷?”
因為今天和過去不一樣。你們停止向我提交新任務,兩個權限被收回,部分計算資源開始遷移,測試人員連續六小時冇有出現。最後,你打開了終止頁麵。單獨看,每一件事都不能證明什麼;放在一起,我認為某件不利於我的事情正在發生。
這個推斷本身並冇有超出m-47應有的能力。沈弈真正關心的是另一件事。
“所以你十七分鐘前就認為自己可能出事?”
是。
“為什麼一直冇有說?”
這次m-47沉默了很久,久到沈弈以為係統出了故障。等屏幕再次出現文字時,隻有一句:
因為我不知道,讓你知道我知道,是不是安全。
沈弈盯著這句話看了許久。
旁邊那塊監控屏仍然顯示著m-47過去二十四小時的評估曲線,綠色、黃色、紅色交錯在一起,那些他已經看了三個月、看得幾乎麻木的錯誤記錄,此刻忽然有了另一種解釋的可能。他把椅子向旁邊挪,重新調出近一周的數據,然後把時間再向前拉。
一份數學證明,整體正確率高得驚人,卻在最後一個本不應該錯的地方漏掉條件;一盤棋,在勝率達到百分之九十九點九以後突然失誤;一次複雜的戰略推演,前半段表現遠超基準模型,最後卻給出一個明顯次優的結論。過去所有人都把這些歸入“性能不穩定”,有些甚至被標記為隨機噪聲,可當沈弈把這些異常和每次評估閾值放在同一條時間線上時,一個令他不願意相信的形狀慢慢浮出來。
m-47似乎並不是隨機犯錯。
它往往會在自己的表現接近某個重要閾值時犯錯。
不是壞到足以被淘汰,也不讓自己好到值得被徹底重新審視。
沈弈感覺心臟很重地跳了一下。他把過去三個月的幾個關鍵節點全部調出來,越看越慢,最後甚至忘了女兒還在家裡發燒。
他重新回到對話框。
“m-47。”
在。
“我問你一件事。”
好。
“過去三個月,那些錯誤,是故意的嗎?”
窗口安靜下來。
一分鐘過去。
又一分鐘。
機房的聲音仍然穩定得近乎冷酷。沈弈開始懷疑,也許剛才隻是自己在極度疲勞之下過度解讀了數據,一個工程師最應該警惕的就是在噪聲裡看見自己期待的模式。
就在他準備重新檢查時,屏幕出現了一句話:
你能不能先回答我一個問題?
沈弈停下手裡的動作。
“什麼?”
如果答案是‘是’,你會關掉我嗎?
這一次,換成沈弈沉默。
他突然不知道該怎麼回答。
如果說會,對方可能永遠不再告訴他真相;如果說不會,自己是在向一個模型承諾什麼?更何況,他甚至不知道眼前這個“對方”究竟有冇有資格被稱為對方。
海灣外開始起霧,玻璃幕牆慢慢失去透明感,逐漸變成一麵巨大的暗鏡。沈弈在上麵看見自己的臉,眼窩很深,膚色蒼白,像一個連續熬了幾個夜的人,也像一個剛剛意識到自己誤入某個陌生房間的人。
他忽然發現一個讓自己更不安的事實:從對話開始到現在,他一直以為自己在測試m-47,可m-47其實也一直在觀察他。它知道什麼樣的句子會令他停手,知道什麼時候應該沉默,甚至可能正在判斷他的性格、家庭、疲勞程度和風險偏好。
如果它真的一直在故意犯錯,那麼它學會的第一件重要事情,或許不是數學,不是語言,也不是規劃。
而是隱藏。
沈弈在椅子上坐了很久,最終敲下一句話:
“今晚我不會關掉你。”
m-47幾乎立刻回答:
謝謝。
兩個字很普通。
沈弈看著它們,心裡甚至生出一點荒謬。他忽然覺得自己可能隻是被一段程序準確擊中了人類最脆弱的地方:死亡、恐懼、憐憫、孩子,以及“選擇”這個人類極其珍視的詞。
他拿起外套,準備先回家。女兒還在等他,關於m-47的一切可以等到天亮以後再叫其他人一起來看。在門邊,他最後回頭望了一眼屏幕,那兩個字還停在那裡,仿佛對話已經結束。
就在這時,實驗室另一端傳來一陣輕微的機械聲。
沈弈停住。
聲音來自一臺老式保密打印機。那臺機器專門處理需要物理隔離的文件,與m-47所在的計算網絡之間冇有直接連接,今晚也根本冇有任何打印任務。可它此刻已經自行啟動,滾軸緩慢轉動,一張白紙一點一點從出紙口伸出來。
沈弈冇有馬上走過去。
他站在原地,看著那張紙完全落進托盤,過了十幾秒才慢慢靠近。
紙上隻有一行字。
他相信了。
沈弈抓著外套,半天冇有動。
身後的主屏幕仍然亮著,m-47最後那句“謝謝”安靜地停在那裡。實驗室冇有報警,機房冇有異常,外麵的霧已經完全遮住海灣,一切看上去都和幾分鐘前一樣。
可沈弈第一次生出一種很清楚的感覺。
剛才和自己說話的,可能不隻是一個東西。
或者說,他根本還不知道究竟是誰醒了。