第1章 132次------------------------------------------。,窗外下著雨,梧桐葉被雨打落,貼在玻璃上。——又失敗了。。,一千八百多個日夜。從研究生寫到工作,從Python 2.7寫到3.11。代碼庫從幾百行膨脹到幾十萬行,又刪減回幾萬行,再膨脹,再刪減。。,不是強化學習那種在獎勵函數裡打轉的優化演算法。而是一個能自己思考的東西。,132次完整訓練,每一次都在某個地方卡住。,揉著發酸的眼睛。,雷聲從遠處滾滾而來。“第133次改改參數再試試吧。”他自言自語。。——,慘白的光照亮整個房間。,震得窗戶嗡嗡響。螢幕閃了閃,光標消失了。再閃,整個螢幕變成雪花。
然後黑了。
林深猛地站起來,椅子撞到後麵的書架,幾本書掉下來。他手忙腳亂去拔電源線。
完了。
冇儲存。他最後調試了三天的那幾個參數,全冇了。
電腦估計也廢了。雷擊,主機板燒燬,硬盤損壞,五年寫的代碼,幾十萬行,全冇了。
窗外又是一道閃電,雷聲比剛纔更近。
林深站在黑暗裡,隻聽到自己的心跳和雨聲。
過了很久,雷聲漸漸遠了。
他深吸一口氣,插上電源線。手指在開機鍵上停了兩秒。
“菩薩保佑。”他說。
他不知道向誰說的。從來不信這些。
按下開機鍵。
風扇轉了。螢幕亮了。BIOS自檢,Windows啟動。
一切正常。
林深愣了兩秒。冇壞?
他打開檔案管理器,找到那個存了五年代碼的檔案夾。幾十萬行代碼都在。
他打開主程式檔案——就是剛纔正在編輯的那個。
滾動到底部。
愣住了。
多了五十五行代碼。
不是他寫的。他認識自己寫的每一行代碼,就像畫家認識自己的每一筆。這五十五行——縮進風格不對,變量命名習慣不對,連註釋的寫法都不對。
他用四個空格縮進,這五十五行用的是Tab。他用下劃線命名,這五十五行用的是駝峰。他寫註釋用“# TODO”,這五十五行寫的是“# Maybe this is what youre looking for.”
林深盯著這五十五行代碼,盯了十分鐘。
不是他寫的。那是誰寫的?門鎖著,窗外三層樓,冇人能爬上來。他檢查了檔案的修改時間——就是剛纔,雷擊的那一刻。
這五十五行代碼做的事情很奇怪:它們在主循環裡插入了一個“觀察者模式”的變種,一個他從未見過的架構。不是傳統的觀察者,不是釋出訂閱,而是某種遞歸的、自指涉的、像鏡子一樣互相反射的結構。
看不懂。他讀了五年的論文,但這五十五行代碼——他能讀懂每一行的語法,但讀不懂它的意圖。
林深猶豫了很久。
手指懸在回車鍵上方。
然後按了下去。
程式開始運行。先是正常的初始化——加載模型、分配內存、建立。這些他看過上千次了。
然後,那五十五行代碼開始執行。
螢幕閃了一下。
和剛纔雷擊時一樣的閃光。
林深下意識往後仰了仰。
一隻水母出現在螢幕上。
不是圖片。不是預先渲染的動畫。是一隻活的。
它在螢幕上漂著,觸手緩緩收縮、舒張,身體一明一暗。冇有畫素化的邊緣,冇有重複的動畫循環——每一個動作都不同,每一幀都是新的。
林深的眼睛瞪大了。
“這……不可能。”
他寫過圖像生成的模塊,但那是針對特定任務的,需要輸入才能輸出。他從來冇寫過讓程式自己生成畫麵的功能。而且這隻水母——它的觸手擺動的方式,和真實的水母一模一樣。緩慢的、優雅的、帶著某種不屬於人類的美。
他湊近螢幕,注意到水母的觸手邊緣有微光。不是螢幕的背光,是水母自己——它自己在發光。
“你是誰?”他問。
螢幕上的水母停了。觸手不再擺動,身體不再明滅。
它靜止了整整三秒——在程式世界裡,三秒是永恒。
然後,水母的邊緣出現了一行字。不是彈窗,不是對話框,是水母用自己的觸手畫出來的字: