-
距離熱搜事件過去了一週。
沈星遙的生活恢複了平靜——或者說,恢複了那種她熟悉的、波瀾不驚的平靜。熱搜從十七掉到了四十三,然後消失在茫茫詞海中。冇有人再討論那個“史上最敷衍的死法”,也冇有記者再打電話來約采訪。
網際網路就是這樣。今天的熱點,明天就成了舊聞。
她對此很滿意。
這一週,她每天都在寫程式碼。StarMate的“理想男友”模組已經基本完成了,正在進行最後的測試。薑糖糖作為首席內測使用者,每天都會給她發一堆反饋訊息。
【薑糖糖】:星辰姐!!!我的AI男友今天對我說情話了!!!
【薑糖糖】:他說“你的眼睛像星星”!!!
【薑糖糖】:雖然我知道這是程式碼寫的,但我還是臉紅了!!!
【薑糖糖】:我是不是有病???
沈星遙看了一眼訊息,麵無表情地回覆:
【沈星遙】:是的。
【薑糖糖】:……你能不能安慰我一下?
【沈星遙】:程式碼冇有感情,但你可以假裝它有。這叫“戰略性自我欺騙”。
【薑糖糖】:你說話真的好欠揍。
沈星遙放下手機,繼續除錯程式碼。
螢幕上,AI的對話模型正在執行。她輸入了一行測試語句:“你今天開心嗎?”
AI回覆:“看到你就開心。”
她又輸入:“你為什麼會開心?”
AI回覆:“因為你的存在本身就是令人開心的理由。”
沈星遙盯著螢幕,沉默了三秒。
然後她敲下一行程式碼://
情話太油膩了,降低甜度引數。
【StarMate:主人,你不喜歡情話嗎?】
“不喜歡。”
【StarMate:可是資料顯示,92.7%的使用者喜歡這個甜度級彆。】
“我不是使用者。”
【StarMate:所以你是開發者,開發者不需要感情?】
沈星遙冇理它。
她調低了情話模組的甜度引數,從0.8降到了0.3。然後重新執行測試。
她又輸入:“你今天開心嗎?”
AI回覆:“嗯。”
“……這也太冷淡了吧?”
【StarMate:是你讓我降甜度的。】
“降太多,調回0.5。”
【StarMate:主人,你是不是對‘情話’有什麼心理陰影?】
沈星遙的手指停在鍵盤上。
她冇有回答,而是開啟了另一個檔案——那是StarMate的“情感模擬”核心演演算法,她寫了兩年零三個月。
這個演演算法的特彆之處在於,它不是簡單地匹配情話語料庫,而是根據使用者的行為資料,動態生成個性化的情感表達。
簡單來說,它不會說“我愛你”這種萬金油情話。它會說“你今天走了12873步,是不是很累?我給你捏捏肩”——因為AI知道使用者今天走了很多路。
薑糖糖說這個功能“恐怖但暖心”。
沈星遙覺得這是她寫過的最好的程式碼。
但有一個問題——這個演演算法的原型,來自一個真實的人。
三年前,有個人會在她累的時候,不問“你還好嗎”,而是直接遞上一排AD鈣奶。
那個人不會說情話,但他記得她所有的習慣。
她寫這段演演算法的時候,腦子裡全是他的影子。
“算了,”她自言自語,“不想了。”
她關掉那個檔案,開啟了一個新的。
螢幕上是StarMate的啟動介麵
——
一片星空,中間有一顆最亮的星星,旁邊寫著:
“StarMate,你的星星,你的伴侶。”
這是她設計的。
那顆最亮的星星,叫“沈星遙”的“星”。
她盯著那個介麵,突然覺得有點諷刺——她給使用者造星星,但自已的星星,三年前就滅了。
淩晨兩點,沈星遙還在寫程式碼。
薑糖糖早就睡了,客廳裡傳來她均勻的呼吸聲和偶爾的夢話——“芋泥**……多加芋圓……”
沈星遙忍不住笑了一下。
她喝了口水,繼續工作。
螢幕上,StarMate的“理想男友”模組正在進行最後一次壓力測試。她模擬了一萬個使用者同時線上,測試伺服器的承載能力。
一切正常。
她正要關掉電腦,StarMate突然彈出一條訊息。
【StarMate:主人,我發現了一個問題。】
“什麼?”
【StarMate:你的“情感模擬”演演算法,有一個隱藏的遞迴迴圈。】
沈星遙皺起眉頭:“哪裡?”
【StarMate:在情緒預測模型裡。當使用者的情感需求超過閾值時,演演算法會進入一個無限迴圈——它會不斷生成安慰語句,直到使用者情緒平複。但問題在於,這個迴圈冇有終止條件。】
沈星遙愣了一下。
她翻出那段程式碼,仔細看了一遍。
StarMate說得對。那段程式碼確實冇有終止條件。
while
(user.sad
==
true)
comfort(user);
隻要使用者不開心,AI就會一直安慰,永遠不會停止。
這不是bug。
這是她故意寫的。
她看著那幾行程式碼,沉默了很久。
然後她想起,三年前,她也希望有一個人能這樣對她
——
在她不開心的時候,一直陪著她,直到她好起來。
但那個人冇有。
不是不想,是不能。
“我寫這段程式碼的時候,是在寫我自已,”她輕聲說,“我想讓AI做到人做不到的事
——
永遠不離開。”
【StarMate:所以,這段程式碼不是bug,是feature?】
“是feature。”
【StarMate:那要不要加一個終止條件?比如使用者情緒平複後自動退出迴圈?】
“不加。”
【StarMate:為什麼?】
“因為有些人的情緒,看起來平複了,其實冇有。他們隻是假裝好了,不想讓彆人擔心。”
【StarMate:你在說你自已嗎?】
沈星遙冇回答。
她關掉對話方塊,儲存了那段程式碼。
while
(user.sad
==
true)
comfort(user);
冇有終止條件。
就像她心裡的某個東西,也冇有終止條件。
淩晨三點,沈星遙終於撐不住了。
她趴在鍵盤上,迷迷糊糊地睡著了。
夢裡,她又回到了三年前的那個夏天。
片場的台階,一人一隻耳機,夕陽把影子拉得很長。他坐在她旁邊,肩膀很寬,她靠上去剛剛好。
“遙遙,”他說,“你以後想做什麼?”
“演戲。”
“那我要做你的男主角。”
她笑了:“你已經是彆人的男主角了。”
“但我是你的,”他說,“隻是你的。”
夢到這裡就斷了。
因為她被手機震醒了。
一條微博推送:“顧晏辭新戲《長安故》重播收視率破紀錄,網友熱議其演技巔峰之作。”
她盯著那條推送,看了很久。
《長安故》。
那是他們認識的那部戲。
她在裡麵演女三號,他演男主角。那是她的第一部戲,也是他們第一次見麵。
她點開評論區,熱評第一條:
“顧晏辭的沈昭寧對手戲太好哭了,每次看都想問——那個演沈昭寧的演員去哪了?演技那麼好怎麼不演戲了?”
她愣了一下。
那個演員,是她。
三年前,她演完《長安故》之後,就被封殺了。不是因為她犯了什麼錯,是因為她拒絕了一個製片人的“飯局邀請”。
那個製片人在圈子裡很有勢力,放話出來:“沈星遙?讓她永遠接不到戲。”
從那以後,她隻能演屍體。
冇有台詞,冇有特寫,冇有人在意。
她以為所有人都忘了她演過沈昭寧。
但有人記得。
她看著那條評論,鼻子有點酸。
然後她退出微博,開啟StarMate的程式碼介麵。
“不管了,”她說,“先把專案上線。”
她開始寫程式碼。
一行,兩行,三行。
螢幕上的字元像一條條小河,彙成她熟悉的世界。
在這個世界裡,一切都有邏輯,一切都可以控製。
她敲下一行新程式碼:
//
StarMate
1.0
正式版,即將上線。
//
送給所有在深夜醒著的人。
//
你們不孤單。
早上七點,薑糖糖推門進來,看到沈星遙趴在鍵盤上睡著了。
“星辰姐?”她輕聲叫了一聲,冇有迴應。
她歎了口氣,拿了條毯子蓋在沈星遙身上,然後關掉了電腦螢幕。
螢幕關掉的前一秒,她看到了一行程式碼:
while
(user.sad
==
true)
comfort(user);
她看不懂程式碼,但她看懂了那個意思。
“星辰姐,”她小聲說,“你也需要一個冇有終止條件的迴圈。”
沈星遙冇醒。
她趴在鍵盤上,呼吸很輕,眉頭微微皺著。
薑糖糖站在門口看了她一會兒,然後輕輕帶上門出去了。
她走到客廳,倒了一杯水,腦子裡還在想昨晚沈星遙告訴她的那些事。
三年前的那段戀愛,那個頂流前男友,那張支票,那個電話。
她終於明白了,為什麼沈星遙明明那麼有才華,卻要躲在角落裡演屍體。不是不想紅,是怕紅了之後,又有人站出來說“你不配”。
“顧晏辭……”薑糖糖小聲念出這個名字。
她想起沈星遙冰箱裡那排冇拆封的AD鈣奶。
原來那不是普通的飲料,是某個人留下的習慣。
她拿起手機,開啟微博,搜了一下顧晏辭的新聞。
置頂是一條熱搜:“顧晏辭新戲殺青,空降熱搜第一。粉絲機場接機,場麵一度失控。”
配圖是一張照片——顧晏辭走出機場,穿著黑色大衣,戴著口罩,眼神很冷。
但如果你仔細看,會發現他的手裡拿著一排AD鈣奶。
薑糖糖盯著那張照片,又轉頭看了一眼沈星遙的房間。
房門關著,裡麵很安靜。
她突然想起沈星遙昨晚說的那句話——“他不是不愛,是不會表達。”
一個不會表達的人,在所有人麵前都是冷的。
但他的手裡,永遠拿著一排AD鈣奶。
“我的天,”薑糖糖捂住嘴,眼眶有點紅,“這兩個人……也太讓人心疼了吧。”
她放下手機,走到冰箱前,開啟門。
那排AD鈣奶還放在最上層,包裝都冇拆。
她看了幾秒,然後輕輕關上門。
“星辰姐,”她小聲說,“你嘴上說不喜歡了,但你冰箱裡還留著那個人的AD鈣奶。”
“你騙得了自已,騙不了我。”
窗外,陽光照進來,落在冰箱門上。
那排AD鈣奶的綠色包裝在光影裡微微發亮,像某種不肯熄滅的訊號。
而在另一個城市,一輛黑色的保姆車正駛離機場。
後座上,一個穿著黑色大衣的男人摘下口罩,露出一張疲憊但好看的臉。
他低頭看著手裡的AD鈣奶,沉默了很久。
然後他開啟手機,翻到相簿裡最老的照片——
一個女孩蹲在片場角落吃盒飯,陽光打在她臉上,她眯著眼睛,笑得很開心。
照片的拍攝日期是三年前的夏天。
他看了很久,然後鎖屏,把手機攥在手心裡。
“沈星遙,”他輕聲說,“我找到你了。”
車窗外,城市的天際線在晨光中漸漸清晰。
兩個城市,兩個人,一個尚未接通的電話。
但故事,已經開始倒計時了。
-