第二十三章 覃斗芒果一毛一斤(五)
二橫巷辦事處內,丁小麼一臉迷茫地倚著內開的鐵門,黃龍把不知從哪裡弄來的保溫壺提上桌,倒出一杯熱水,遞到坐在椅子上發抖的陳相手裡。
陳相沒有接,只翻手腕瞟了一眼手錶,凌晨1點50了。他想繼續勸說,可被老黃截住話頭。
「陳波,你這會兒本應該在西二路派出所的大鐵門裡呆著,但我先把你帶到這裡了。你剛搬來的時候是我登記的,你家瑾玥辦准生證也是我給開的證明,如果你念我是個還不錯的老伯,念你媳婦大著肚子,就把你要害人的原因講一講,然後從這裡出發自己走去派出所。」
陳相對眼前這位鬢角發白但還算精壯的老伯沒有印象,但很顯然對方熟悉陳波,於是他把路上沒來得及說的既定話術重新搬出,一臉期望地望著對方。
黃龍不為所動,語氣愈發嚴厲,「陳波,你太過分了。我給你減罪的機會你卻還想著戲弄我。我們給氣象台打電話確認過,今晚有颱風登陸不假,但未接到洪水相關通知。
防台通知已經逐級下達了,我們接到的任務是,收容流浪漢,勸返無故外出的居民。還有你,已經和你直屬領導確認,你正在停職中,假借單位名義所發布的天氣信息均為不實。」
「我哪個領導這麼說的?」陳相不甘心地問。
「你們台長,張援朝。」
陳相的心徹底冷下來,他沒有回應黃龍,只是低下頭,長久注視錶盤上忙碌轉動的指針。他被放棄了,被張援朝徹底放棄了。在得知自己的反常行為後,張援朝絲毫沒有從中感受到孤注一擲的決心,更沒打算去深究,而是以最果斷的方式斬斷兩人之間的關係,毫不拖泥帶水,像用抹了油的薄刀去切毛豆腐,生怕沾上一絲一縷。
拋卻與自己心愿相悖的一部分,張援朝的舉措也不是不能完全理解。氣象局這種具有公益性質的組織,就像一塊觀賞用的機械手錶,產生的使用價值微乎其微,唯一的使命就是雷打不動地安穩走針。只要遵循程序正義,讓齒輪、壓片和彈簧各司其職,發條也上得剛剛好,錶針就會順利走下去;只要錶針永恆安穩地走,即便有時走得過快過慢,擰發條的人也無需為此負責。
張援朝就是擰發條的人,今天,他發現手錶的擒縱調速器總是向指針傳遞不穩定能量導致指針震顫,於是當機立斷把它換掉了,即便他已覺察到它這樣做可能讓時間指示得更加準確。程序正義就是一切。
社會機器依靠秩序運行,但現在,機械發條馬上就要因為恪守秩序而冒犯到有機生命。陳相承認自己失職了,像一個壞零件那樣,但他認為自己沒做錯。如果有一輛失速的油罐列車馬上就要衝過山坡闖進沉睡的村莊,他願意成為牽引車頭掛鉤崩解時,飛落到鐵軌上粉身碎骨的那顆螺絲釘。
時間指向凌晨1點59分,陳相把視線從錶盤上抽離。他看向黃龍,臉上滿是篤定,「2點整的時候,海水上岸,我們這裡會停電。五,四,三,二,一。」
話音落下,頭頂上暖烘烘的燈泡熄滅了,連同窗外的路燈餘輝一起。陳相從桌上摸回手電打開,映出兩張驚訝的臉。
幾秒鐘後,丁小麼率先把下巴合上,驚呼:「老黃!他說對了!從颱風登陸到停電全都對了,一秒不差!他沒撒謊,我們該信他!」
「洪水具體幾點來?」丁小麼湊到陳相跟前,瞪眼問,得到答覆後,又湊到黃龍跟前,「老黃,沒有幾分鐘了!我們得趕緊,去喊人,能救一個算一個!」
丁小麼說著,拿起喇叭按開開關,伸手拉門就要走,可被老黃攔住。
黃龍一把奪過喇叭關掉,也奪過丁小麼的手電筒,死死攥著,舉到陳相臉前。
「你說洪水幾點來?」黃龍語氣兇狠,臉上有掩飾不住的緊張和焦急。
「2點10分,水量很大又急,這附近的房子會垮塌,想躲開必須上山。」
黃龍沒說自己信,也沒說自己不信,只對丁小麼問,「麼仔,在那之前你跑得到山上嗎?」
丁小麼點頭,伸手去拽老黃的胳膊,「能!我腿腳好得很,不光能,我還能帶著你一起!」
黃龍甩開丁小麼的手,「我不跟你一起!」
丁小麼不知所措,「那你要去哪兒?去喊人嗎?」
「我哪裡也不去,就守在這裡,代你值班,然後把這謊報險情的罪犯送到所里去。」黃龍重新坐回椅子上,背對門,坐得很安穩。
丁小麼目視老黃的背影,百思不得其解。老黃讓他上山,說明老黃信陳波的話。可老黃自己不走,也不招呼其他鄰里走,究竟是什麼意思?
黃龍見丁小麼沒動靜,扭頭看了看,又站起身來,按著丁小麼的脖子往門外推,「不論你服不服我,我都是你師傅,是你上級!你要是不想捲鋪蓋回家種地,就老老實實上山,路上別作妖!」
「滾!」黃龍照丁小麼屁股上狠踢一腳,把門關嚴鎖死,透過窗子確認丁小麼打著手電跑遠後,才重新坐到陳相對面。
手電筒倒在桌上,暖光橫射在兩人之間,被水霧暈開,誰也看不清誰的臉。
「對不住了孩子,我不能讓你走。」黃龍拉開抽屜,從中掏出一個泛黑點的芒果,啃掉皮,細細嗦著,「今天如果真的有洪水,黃泉之下我給你當牛做馬。」
「你還是不相信我?」
「我信。」黃龍答得很乾脆。
「你信我怎麼還……」
黃龍似是看透了陳相的疑惑,截住話頭,徑直說:「麼仔的爹媽去得早,我讓他上山,是因為我把自己當作他親爹。
發洪水他能活命,我含笑九泉;沒發洪水他路上平安,今晚他犯的錯我替他抗;沒發洪水他路上出事,他老家的弟妹我養著。
我孩子的命,我敢擔著,但巷子裡其他的老老小小,我擔不起。」
「至於你我。」黃龍把吃乾淨的芒果核隨手一扔,將兩腳從不知何時漫進屋的水中提起,放到椅子腳間的橫槓上,「不管你是何方神聖,不管今天這水究竟能不能把房子衝倒,你都有罪。
我抓你,我沒做錯,我對得起街坊四鄰和我這一身皮。我信你,所以才沒把已經上山的人給勸回來,才把麼仔給逼走。
我就是一個給火車頭燒過鍋爐的,你說車要壓死人讓停車,我可以念你的情少鏟幾鏟子煤,但不能去搶司機的剎車杆,那是自不量力,是逾矩。」
水漫到小腿肚的位置,冰冷得像要凍住一切,連同陳相跌至谷底的心一起。最後一刻,陳相仍有不甘地發問:「你不會後悔嗎?」
風已不像先前的那樣大,尖銳而悽厲的雨打聲被能讓五臟六腑隨之振動的巨大轟鳴所取代,把陳相的喃喃之問變得模糊不清。但黃龍似是聽清了,他望著濺滿泥污的窗,喉頭動了動,擠出一句乾澀喑啞的絕音:
「會。但那是我的命。」
水下,玻璃碎片和磚木殘渣一齊往陳相身上撞,讓他除了疼痛以外什麼都感受不到。他本有機會攀扶殘垣或者藉助浮木讓窒息來得遲一些,但卻沒有那樣做,只是任由水流包裹著在各種尖利的人造直角中橫衝直撞,像一條自斷腹鰭的魚。
這樣的無力感,他沒少體會過。一直以來,他都覺得自己像一條長鰭馬口魚,每每試圖立在海面上,都會立刻被重力和水流拽回陰暗海底。在這個註定溺亡的夜晚,他終於有機會意識到,那些無可抵禦的牽制,來源遠不止家庭。
2016年,陳相在湛江市氣象台工作的第一年。
「劉老師,好。」
早上7點半,陳相站在空蕩蕩的值班室門口,沖迎面走來的人,生疏而尷尬地打了聲招呼。這是他在這裡上班的第一天,誰都不認識,只在無聊間熟記了走廊展板上所有人的姓名和職務。
眼前這位大腹便便的中年人,名叫劉永樂,是氣象預警中心的一位普通科員。初來乍到,不熟悉規矩,見人一律叫老師,不管對方是不是德能配位,聽了之後總不能不開心。更何況他是新人,不高興也不能把他怎麼樣。
劉永樂露出一副嫌惡的表情,好似渾身不自在,連不羈的鴨子步都邁得僵硬了,「別這麼生分,你跟其他人一樣,叫我劉胖。」
「劉胖。」陳相用力收住自己不可置信的表情,艱難地複述了一遍。
「唉。」劉永樂立刻回應,臉上露出笑,捂著隨步伐起伏彈跳的肚子打出一個長長的飽嗝,「走,我帶你熟悉熟悉你的好差事。」
陳相被帶到一台電腦前,坐下,劉永樂在他身後操縱滑鼠為他演示。
眼前是一台十分古老的電腦,方方正正的TFT屏幕只有19寸,不論是氧化發黃的塑料殼還是機箱上積滿灰塵的出風口,都在大聲都在訴說它的古老。更重要是,在Windows 10早已面世的時代,這台電腦上還在運行Windows xp,是一個名副其實的古董。
劉永樂雙擊桌面上一個毫不起眼的圖標,調出一個界面粗糙的軟體,隨便點擊一下界面左列以時間命名的文件名後,一副水文地圖跳出。
劉永樂指著雷州半島沿岸附近的紅色圓點問陳相,「數數這些點一共有幾個。」
「31。」陳相機械地答,絲毫猜不到下一步的內容。
「很好。」劉永樂語氣輕飄飄的,像在糊弄小孩子。接著,他把滑鼠指針移到界面右下角的文本框中,輸入一個字符T,然後按下回車。
「看懂了吧?紅點代表浮標站有回傳數據,數出來紅點有31,就打一個T;比31少,就打一個F。」
「然後呢?」陳相對向劉永樂滿意的目光問。
「然後?然後就是每隔3小時核對一次,每天8次。上長白班管早9點到晚6點的,上夜班管晚9點到早6點的。」劉永樂抬眉答。
「就這?」陳相感到不可思議。
「就這。」劉永樂攤手,「剩下的時間裡,有人找你跑腿你就去,沒人搭理你你就愛幹嘛幹嘛。」
陳相保持驚異的神情,目光沒有從劉永樂臉上移開,「這也太無聊了吧?」
「無聊?」劉永樂也吃驚,露出費解的神情,「別身在福中不知福,你這個活計要是分給我,我做夢都要笑醒。」
劉永樂離開後,陳相面對古董電腦愣了好久。當初應聘這份工作的時候,又是筆試,2小時答50道專業題,演草紙都不夠用;又是面試,就著幾頁自我介紹把所有候選人都問得說不上話來;又是政審,要找十幾個人為自己說好話並被查祖上三代。
費了九牛二虎之力pk掉競爭對手來到這裡,只為做一個兩位數的目視計數,並輕點一下鍵盤上的T。這還真是應了那句誇張話:面試造航母,工作擰螺絲。
快到8點時,逐漸嘈雜起來的走廊和隔壁會商室里刺耳的音響聲打斷了陳相的感慨。他望著那些夾著筆記本來去匆匆的身影,逐漸冷靜下來。之所以會產生被大材小用的不甘之感,完全因為他還是一名清澈愚蠢的大學牲。實習期的工資是死的,如果喝著茶唱著歌和腳不沾地掙得一樣多,那他肯定選擇前者。
於是,接下來的日子裡,陳相過得十分悠閒。每天窩在那台古董前,一邊享受劉胖賞給他的夏桑菊,一邊看他心心念念的編程書。從古老的C,到經典的C++,再到剛剛興起潛力無限的Python都有所涉獵。
不光啃書,還樂於實踐。他寫了一個幾百行的簡易程序,把他唯一掛念的擰螺絲的活計交給機器來完成。自那以後,他連紅點都不用數了,成為全辦公室最瀟灑的人,別人忙碌他吃雪糕,別人熬夜他睡覺。
10月,一場強冷空氣為汛期畫上句號。早上,在休息室里安睡了一夜的陳相伸著懶腰走進值班室,遇到等在他工位前,面色凝重的劉胖。
「你昨晚上哪裡去了?他們說一整晚都沒看見你。」劉胖問。
「睡覺啊,還能到哪裡去。」陳相走到桌前,端起茶缸把隔夜水一飲而盡,心說那幫大忙人終於注意到他這個小透明了。
劉胖的臉色更難看了,「你睡一整夜?數據沒核對?」
「核對了啊,睡覺又不耽誤核對。」陳相得意地欣賞劉胖的焦慮和不解,把他自動化擰螺絲的程序調出來給劉胖演示了一番。
「經過2個月的測試,準確率100%,0延遲,0故障。我覺得之後可以把這好東西推廣一下,解放雙手。」
陳相說完,靜靜等待劉胖的驚喜和表揚。只用不到一個月的時間,就能解放至少兩個勞動力,把自由的靈魂從無意義的重複勞動中釋放出來。這在那些擁抱技術注重效率的科技公司內稀鬆平常,但在眼下這個落後而僵化的單位里,堪稱壯舉。
可他沒等到劉胖把蘋果肌堆到臉頰外的笑,等來的是狂風驟雨般的怒斥。
「誰讓你在內網機上安裝外來軟體的?」劉胖大吼一聲,怨氣十足。
「不是外來的,我在本地寫本地編譯的。」陳相很懵,本能地為自己辯解。
「本地的也不行!萬一它數漏了打錯字了,誰負責?那是在給歸檔數據打質控標識,你錯打一個F就要廢一組數據,再莫名奇妙打出別的字母來,負責建站的能提著刀來砍你,台長都得挨批。」
「不會錯的,我向你保證,我的程序不會錯。」
「程序不會錯?之所以有人做這個工作,就是因為發現程序會錯。測站自動觀測自動發報自動歸檔是一條流水線,你是這條線上的質檢員!
再先進的流水線都免不了一個關鍵時刻能救命的質檢員。用程序檢測程序,你這是在光明正大的偷懶,是玩忽職守!」
劉胖子吼完,端起剛續完熱水的茶缸,一飲而盡,被燙得直吸氣。末了,他收起平日裡吊兒郎當的姿態,一臉嚴肅瞪著陳相說:「念你是新人,才給你分配一個簡單到不能再簡單的活兒,好讓你平穩度過實習期。你要是連這都干不好,肯定是要滾蛋的,你爸也保不了你。」
深秋的大清早,略有溫度的陽光碟機散晨霧,把空氣變得乾燥和清澈,清澈到連溫熱茶缸散發出的熱氣都能擁有一席陰影。劉胖子踢踏著一年四季都焊在腳上的人字拖,大踏步走出門,頓厚的背影遮擋住一切生動的影像。
當那束暖光恢復如常時,在一天中最美好的下班時刻,陳相只感受到無可疏解的煩悶。他在迫不得已的命運里掙扎著,抓住一點一滴的機會,試圖把自己從能一眼望到頭的枯燥生活中拯救出來,也順便拯救一下別人。但如此樂觀和積極的態度卻只換來一頂玩忽職守的帽子。
他承認,他是偷懶了。可偷懶雖是人類的本性,也是科學進步的動力。冰冷海面上漂浮的橙色浮標,小小的卻能坐擁十幾種傳感器,能在幾十分鐘內把辛苦測量的數據傳到永遠溫暖的辦公室里,靠得可不是什麼勤奮和克盡厥職,而是十八世紀起數次工業革命結出的碩果。
機器的廣泛使用,自動化的普及,讓人從繁重和單調的低端工作中解脫出來,從而專注於更高層次和更有創意的活動,這是歷史的車輪,誰也阻擋不了。21世紀,計算機算力開始統治一切,下一次工業革命的主角,必然屬於智能和信息化。
用一小段程序,解放兩個枯槁的靈魂,這是順應時代,是在擁抱美好的未來,本應是值得鼓勵的。更何況,在格外純淨的背景上識別規則圖形並計數,本就是一個成熟到不能再成熟的算法。在這種簡單任務上擔心程序出錯,就像是擔心一個健康成年人喝水時把自己嗆死。
那一天,陳相立在樓梯間附近的轉角處,推開窗子,就著稀淡的陽光吹了很久冷風。離開時,他向後勤辦公室借來一個為列印紙防潮的大塑膠袋,頂著各色目光,把堆在工位上的磚頭書和各式雜物全部裝走,連同插線板上從未被拔下過的手機充電器一起。他沒打算再回來。
風風火火趕上班車,對著薄雲後太陽的模糊輪廓暢快喘息,他的心情格外輕鬆。花費九牛二虎之力才得到的工作,完全不適合自己,這並不是什麼喜事。但值得慶幸的是,他發現得格外及時。在實習期的第三個月離開,並不需要支付嚇人的違約金,頂多就是在檔案里被記一筆。
對於這唯一的代價,他毫不在意。因為他確信,他的下一份工作完全用不到那個草率濃縮人一生的紙袋,也不允許自己就那樣被隨意定義。畢竟,身處一個土地里能長出金子的時代,就算註定只能做一個擰螺絲的無名小卒,也要去擰破碎機和振動篩上的,因為那裡離黃金更近。
回到二橫巷的家中,他沒有像往日那樣舒舒服服洗澡睡回籠覺,而是細細瀏覽算法工程師的招聘需求,從名聲大振的大廠,到剛剛天使輪的小公司,一個都不放過。這種心懷憧憬的感覺很好,像是一位一直為既定線稿上色的畫家,第一次有機會勾勒自己心中的圖像,不論成品是美還是丑,都值得期待。
他就這樣沉浸在其中,直到太陽西斜,屋子裡重新泛起冰凍玻璃渣般讓人不忍呼吸的濕冷潮氣。把他從斑斕幻想中徹底抽離的是一條來自趙棟樑的簡訊:
新房已交易好,你被列為共同還款人,一年存繳期過後開始還款。知悉。
畫家的筆沒拿穩,掉在地上了。他本能地認為這是趙棟樑接到小報告後阻止他的手段,但第二天趙棟樑當他的面用一串嶄新的鑰匙打開了新房的門。10樓,南北通透,夕陽打在身上很暖和,空氣乾燥清澈,讓人忍不住多吸幾口。
於是第三日,一個該值長白班的日子,他重新回到那台19寸TFT顯示器前,把引以為傲的腳本和可執行程序全部刪乾淨,仔細數出紅點有31個,在鍵盤上按下T。之後,頂著各色目光,把各式雜物從塑膠袋裡掏出來,充電器插回插線板。
他不覺得這麼做是一種無奈妥協,因為那些磚頭書也被重新擺回桌上,擺在更顯眼的地方上。
18世紀後,各行各業都充斥著蒸汽機的身影。他相信21世紀也會出現類似的光景,智能和信息化的車輪終將碾過一切,不可能允許一個人數一輩子紅點。而率先擁抱未來的他,也許過得不會太糟糕。
他言中了。半年後,全國範圍內的自動觀測網正式投入使用。從基準站到基本站,再到常規站,全部置換為自動觀測,時間解析度統一為5分鐘,自動歸檔,內網共享。為了配合併網,雷州半島附近的浮標站也都統一更換了傳感器,分時間辨率提高到20分鐘,數據實時上傳,無需人工干預。
自那之後,山頭上那個早已晉升為基本站的觀測場徹底冷清下來,再也沒有人每隔3個小時就提著本子對著刷白漆的各式儀器寫寫畫畫,或迎著刺目的日光抬頭看雲。雲量、雲類和雲底高度等最依賴人眼估測的觀測項目也被完全取代,雲高儀和攝像頭能夠記錄一切。同樣的,31個小紅點再也沒有出現在陳相的電腦屏幕上。
在時代的裹挾下,陳相輕易結束了能榨乾靈魂的機器人生活,但又迎來了另外一種類似的。
擁有30年經驗的資深預報員羅誠漢老了,熬不成夜了,頭腦不靈光了,會商時嘴皮子不利索了,徹底干不動了。在退休前的養老時光里,他需要完成最後一項任務:培養一位接班人。於是,一份最新鮮的血液,筆試面試雙料第一,看起來專業基礎很紮實的陳相自然成為不二人選。
一開始,陳相是高興的,每天坐在花花綠綠的天氣圖前被人往腦子裡灌知識,必然不可能無聊,可時間久了才發現,這著實是另外一種苦差事。
在學生時代里,他把天氣學分析這門課翹掉了一大半,考試靠強記,面試靠運氣。毫不誇張地說,他對那門學問的真實認知,僅限於槽前好天氣槽後壞天氣,其餘的都是雲裡霧裡,聽見就想睡覺。
更重要的是,他絲毫提不起惡補此門學問的興趣,因為羅誠漢教給他的東西完全是經驗之談,和書本上嚴謹推導的公式沒有一點關係。
更何況,那位可愛老人的經驗,看似驚艷,實則落後。根據500hPa上的東西推測地面上會是什麼樣,又或者根據探空曲線推測幾小時後下不下雨,這在以前是絕活,但放在被數值模式統治的今天,就像五金店裡無人問津的白熾燈泡,只在懷舊的時候用。初始場一設置,模式一轉,什麼時候颳風下雨下冰雹,模式全都告訴你。
當然,模式有時候不如人准。但模式不准就要想辦法提高初始場精度,或者改進參數,而不是擺出一幅蔑視的樣子,蔑視剛滿周歲的孩子路走不利索。
計算機可以在更高的維度中對物理世界模擬和演算,這賜予人站在時間軸上洞悉未來的機會,為何還要讓自己本就有限的智慧困據在平均重量1.4公斤的三維空間裡。
準確來說連三維都沒有。顯示在電腦屏幕上的圖片只有二維,想看某個場量的全貌需要自己在頭腦中拼湊,而要理解它的生命周期更是不可能的。描述天氣的方程組沒有解析解,無法被抽象成為人能理解的東西。
所以,對於羅城漢的諄諄教導,陳相表面嗯嗯啊啊聽得認真,但從不往心裡記。一有機會,他便要湊到日常維護數值模式的林芳跟前,虛心請教並且主動打雜。雖然他的人生路已被確定,但至少還有選擇車道的權利。在平坦的林蔭小道和剛搭好路基的高速路之間,他選擇後者。
人的每一件發明都是對自身智慧的延展,和蒸汽機車比馬力比輸了,應該高興而不是羞愧。每當陳相答不出羅誠漢出的考題時,後者總把白了半截的眉毛耷拉著,擺出一副朽木不可雕的惋惜樣子。但陳相清楚,對方才是真正需要被憐憫的人。因為隨著計算機算力的提高,30年來辛苦積累的經驗定將變得毫無用處。
他再一次言中了。一年多後,在計算晶片和高性能計算集群井噴式發展的2018年,陳相憑藉與硬體發展齊頭並進的數值模式,屢次在預報競賽上打敗羅誠漢。步履蹣跚的老叟吃過的鹽比三歲小孩吃過的飯還要多,但卻完敗。
陳相為台里寫了一個小型系統,每日定時接收各類觀測數據,自動同化,自動運行模式,自動繪圖生成產品,全程無人值守。如果這套產品的效果夠好,那麼台里所有預報員的工作都將變得格外輕鬆。他們不再需要每天盯屏幕盯得眼珠子快要掉出來,只需要在會商之前瀏覽一遍模式預報結果即可。
但這條路並不如他想像的順利。由於觀測數據空間解析度稀疏,並且總有儀器狀態波動導致的奇異值,數據同化的效果總是不盡人意。大氣模型是一個混沌系統,對初始場十分敏感,一個細微異常的局地觀測誤差會在同化過程中擴散給周邊地區,並在幾萬步的計算後極限放大,把預報結果影響得面目全非。
一隻蝴蝶在巴西輕拍翅膀,可以導致一個月後德克薩斯州的一場龍捲風,這是學者們對混沌系統蝴蝶效應的比喻。同樣的,如果這隻蝴蝶在拍翅膀前被人捏住,便可以阻止龍捲風的發生,這毫不誇張。對於數值模式來說,初始場就是這隻蝴蝶。
在計算機算法造就的綺麗之景里暢遊2年後,他終於迷了路。和無限美好的未來之間僅間隔一條不寬不窄的溝渠,但卻沒有人能為他修一座橋,他只能靠自己。
於是,新一期科研基金申請立項之時,他提交了修橋方案。過去的10年裡,前人已嘗試所有可能的修橋方法,卻無一成功。好在,最近兩年裡,有一種新的方法正在嶄露頭角:機器學習。
機器學習的理論十分簡單:搜集真實世界中的數據,餵給計算機,計算機憑藉預先設定的算法自行消化,建立數據之間的映射,吐出令人滿意的結果。這也算是一個數值模型,但驅動它的不是物理定律,而是單純的數據。它就像一個有魔法的黑匣子,人並不能理解它是怎樣工作的,但它總能將心愿化為現實。
更激動人心的是,這些黑匣子早在上世紀80年代就被設計出來並彰顯出巨大的潛力,只是限於計算機算力的匱乏,沒有被廣泛應用,近10年來硬體發展才賜予它們新的生命。理論充分,經過歷史檢驗,有創新性,潛力無限,陳相相信評委們能夠看到這種方法的價值。
然而,事實讓他失望了。立項名單公布,並沒有他。這次的立項競爭並不激烈,連一些縣區局裡書寫格外敷衍毫無創新性的基金本子都中了,唯獨沒有他的。
滿心的不甘與疑惑無法消化,陳相第一次私下裡和趙棟樑產生專業上的交流。那個時候趙棟樑已是正研高工,論文發了不少,也是評委的一員。
陳相清楚兩人互相心懷芥蒂,但不覺得趙棟樑會心眼小到阻礙自己兒子的前程,即便是連姓氏都不同的非親生兒子。畢竟,基金立項便會有經費支持科學研究,科研搞好才能多發論文,論文多了才好評職稱漲工資。張瑾玥的醫藥費開銷不少,他們倆還還著房貸,平日裡省吃儉用。
當陳相雙手遞過自己的基金本子時,趙棟樑顯得十分意外。他眉頭舒展開一瞬,但又迅速皺回去,沒有伸手接那沓釘得整整齊齊的紙。
「你的本子我評了,我給你打了C。」趙棟樑捏著眉心說。
趙棟樑的直截了當出乎陳相意料,更意料不到的是這一點都上不了台面的評分。本子的評級分為ABC,打C表示,要麼書寫敷衍有態度問題,要麼評委質疑選題立意的科學性。陳相寫得格外認真,這個C的緣由肯定是後者:趙棟樑覺得他的技術路線不具備可行性。
「為什麼?機器學習在工業界已經遍地開花了,在創傷檢測、醫療影像還有物體識別上都用得特別好,人臉識別的準確率近乎百分之百。你覺得我這方法哪裡有問題?」
陳相徑直問出自己的疑惑。實際上,他設計的方案在屬於在工業界都綻放異彩的那一類,他要用生成式模型,把算法之力開發到極限,像給模糊照片提升解析度那樣提升觀測場的空間解析度,並把零星異常值取代,給數值模式一個絲滑而乾淨的初始場。
這是一種性價比很高的方式,不需要花上千萬費用將方圓幾百公里內測站加密到每隔10公里一台,只需要花費十幾萬增上幾台測站提供數據標籤,再買上幾張性能好點的計算卡來建模,就能達到同樣的效果。立意、可行性、創新性都有,無懈可擊。
「哪裡有問題你自己不清楚嗎?你所謂的機器學習模型,絲毫沒有物理意義,無法令人信服。」趙棟樑切回一成不變的冷臉,語氣里飽含不耐煩。
「是,我承認那是一個黑箱,人無法理解它的運作方式。可是這本來就是由數據驅動的模型,物理意義不是必須的。人都不一定能區分雙胞胎,但模型卻可以。只要結果好,過程不是最重要的吧?」
「不一樣。模型認錯貓臉狗臉人臉並不會導致人死傷,但模型預報錯天氣會。如果你的產品里只有預報結果而沒有預報過程是不會被認可的。
這有什麼難理解的嗎?漁民敢因為你說天氣好就把船開到遠海里,是因為你能對著天氣圖分析得頭頭是道;你敢讓你媽躺手術台上被醫生開膛破肚,是因為醫生能講清楚心臟里的血要怎樣泵到肺里才能讓人正常喘氣。
我現在掐指一算告訴你後天早上6點55分下暴雨你會信嗎?」
陳相沒有點頭也沒有搖頭,他猜不透趙棟樑葫蘆里賣的是什麼藥。
「你看,你也猶豫了。你猶豫是因為你知道我多少幹過幾年預報,那如果我到古玩街上拉一個算命先生過來給你同樣的結論,你還敢信嗎?」
「我知道你想說公信力需要有專業和經驗背書。擬人化的講,我的模型也可以從我提供給它的海量數據里提取經驗,並且不比人遜色。」
趙棟樑把頭別到一邊去,不再看陳相的臉,「這件事情沒什麼好說的,打C的不止我一個人。你的這個想法沒希望的,趕緊止損,另選一個腳踏實地的課題。」
末了,趙棟樑還補充上一句,「你不喜歡天氣分析只喜歡用數值模式,只要你能報准,我沒意見。但你記住,會商的時候還是要講清楚過程,不要只把模式結果丟上來,讓我們對著一兩張圖大眼瞪小眼。你那樣,跟算命先生沒區別。」
一場並不愉快的對話就此結束,一同結束的是在溝渠上造橋的衝勁。自那之後,陳相併不再憧憬成為站在學科浪尖的上的弄潮兒,企圖以一己之力建造一條無人敢踏足的橋。橋再結實,對岸再美,可沒人願意走過去,也沒什麼用。
他並不是一腔熱血盲目自大的人,早已深諳能夠引領時代的機遇可遇不可求。只是沒想到,在他所在的行業里,那是一個註定無法實現的夙願。
「叮鈴鈴鈴鈴……」
熟悉的鈴聲再一次響起,一聲接一聲,安安穩穩,規規矩矩。
他終於意識到,自己只是機械錶里的一個齒輪,無法逆轉指針,無法逆轉時間,更無法超越時代,超越人的慣常認知。連轉得快與慢,都只取決於擰發條的人。
陳相沒有接,只翻手腕瞟了一眼手錶,凌晨1點50了。他想繼續勸說,可被老黃截住話頭。
「陳波,你這會兒本應該在西二路派出所的大鐵門裡呆著,但我先把你帶到這裡了。你剛搬來的時候是我登記的,你家瑾玥辦准生證也是我給開的證明,如果你念我是個還不錯的老伯,念你媳婦大著肚子,就把你要害人的原因講一講,然後從這裡出發自己走去派出所。」
陳相對眼前這位鬢角發白但還算精壯的老伯沒有印象,但很顯然對方熟悉陳波,於是他把路上沒來得及說的既定話術重新搬出,一臉期望地望著對方。
黃龍不為所動,語氣愈發嚴厲,「陳波,你太過分了。我給你減罪的機會你卻還想著戲弄我。我們給氣象台打電話確認過,今晚有颱風登陸不假,但未接到洪水相關通知。
防台通知已經逐級下達了,我們接到的任務是,收容流浪漢,勸返無故外出的居民。還有你,已經和你直屬領導確認,你正在停職中,假借單位名義所發布的天氣信息均為不實。」
「我哪個領導這麼說的?」陳相不甘心地問。
「你們台長,張援朝。」
陳相的心徹底冷下來,他沒有回應黃龍,只是低下頭,長久注視錶盤上忙碌轉動的指針。他被放棄了,被張援朝徹底放棄了。在得知自己的反常行為後,張援朝絲毫沒有從中感受到孤注一擲的決心,更沒打算去深究,而是以最果斷的方式斬斷兩人之間的關係,毫不拖泥帶水,像用抹了油的薄刀去切毛豆腐,生怕沾上一絲一縷。
拋卻與自己心愿相悖的一部分,張援朝的舉措也不是不能完全理解。氣象局這種具有公益性質的組織,就像一塊觀賞用的機械手錶,產生的使用價值微乎其微,唯一的使命就是雷打不動地安穩走針。只要遵循程序正義,讓齒輪、壓片和彈簧各司其職,發條也上得剛剛好,錶針就會順利走下去;只要錶針永恆安穩地走,即便有時走得過快過慢,擰發條的人也無需為此負責。
張援朝就是擰發條的人,今天,他發現手錶的擒縱調速器總是向指針傳遞不穩定能量導致指針震顫,於是當機立斷把它換掉了,即便他已覺察到它這樣做可能讓時間指示得更加準確。程序正義就是一切。
社會機器依靠秩序運行,但現在,機械發條馬上就要因為恪守秩序而冒犯到有機生命。陳相承認自己失職了,像一個壞零件那樣,但他認為自己沒做錯。如果有一輛失速的油罐列車馬上就要衝過山坡闖進沉睡的村莊,他願意成為牽引車頭掛鉤崩解時,飛落到鐵軌上粉身碎骨的那顆螺絲釘。
時間指向凌晨1點59分,陳相把視線從錶盤上抽離。他看向黃龍,臉上滿是篤定,「2點整的時候,海水上岸,我們這裡會停電。五,四,三,二,一。」
話音落下,頭頂上暖烘烘的燈泡熄滅了,連同窗外的路燈餘輝一起。陳相從桌上摸回手電打開,映出兩張驚訝的臉。
幾秒鐘後,丁小麼率先把下巴合上,驚呼:「老黃!他說對了!從颱風登陸到停電全都對了,一秒不差!他沒撒謊,我們該信他!」
「洪水具體幾點來?」丁小麼湊到陳相跟前,瞪眼問,得到答覆後,又湊到黃龍跟前,「老黃,沒有幾分鐘了!我們得趕緊,去喊人,能救一個算一個!」
丁小麼說著,拿起喇叭按開開關,伸手拉門就要走,可被老黃攔住。
黃龍一把奪過喇叭關掉,也奪過丁小麼的手電筒,死死攥著,舉到陳相臉前。
「你說洪水幾點來?」黃龍語氣兇狠,臉上有掩飾不住的緊張和焦急。
「2點10分,水量很大又急,這附近的房子會垮塌,想躲開必須上山。」
黃龍沒說自己信,也沒說自己不信,只對丁小麼問,「麼仔,在那之前你跑得到山上嗎?」
丁小麼點頭,伸手去拽老黃的胳膊,「能!我腿腳好得很,不光能,我還能帶著你一起!」
黃龍甩開丁小麼的手,「我不跟你一起!」
丁小麼不知所措,「那你要去哪兒?去喊人嗎?」
「我哪裡也不去,就守在這裡,代你值班,然後把這謊報險情的罪犯送到所里去。」黃龍重新坐回椅子上,背對門,坐得很安穩。
丁小麼目視老黃的背影,百思不得其解。老黃讓他上山,說明老黃信陳波的話。可老黃自己不走,也不招呼其他鄰里走,究竟是什麼意思?
黃龍見丁小麼沒動靜,扭頭看了看,又站起身來,按著丁小麼的脖子往門外推,「不論你服不服我,我都是你師傅,是你上級!你要是不想捲鋪蓋回家種地,就老老實實上山,路上別作妖!」
「滾!」黃龍照丁小麼屁股上狠踢一腳,把門關嚴鎖死,透過窗子確認丁小麼打著手電跑遠後,才重新坐到陳相對面。
手電筒倒在桌上,暖光橫射在兩人之間,被水霧暈開,誰也看不清誰的臉。
「對不住了孩子,我不能讓你走。」黃龍拉開抽屜,從中掏出一個泛黑點的芒果,啃掉皮,細細嗦著,「今天如果真的有洪水,黃泉之下我給你當牛做馬。」
「你還是不相信我?」
「我信。」黃龍答得很乾脆。
「你信我怎麼還……」
黃龍似是看透了陳相的疑惑,截住話頭,徑直說:「麼仔的爹媽去得早,我讓他上山,是因為我把自己當作他親爹。
發洪水他能活命,我含笑九泉;沒發洪水他路上平安,今晚他犯的錯我替他抗;沒發洪水他路上出事,他老家的弟妹我養著。
我孩子的命,我敢擔著,但巷子裡其他的老老小小,我擔不起。」
「至於你我。」黃龍把吃乾淨的芒果核隨手一扔,將兩腳從不知何時漫進屋的水中提起,放到椅子腳間的橫槓上,「不管你是何方神聖,不管今天這水究竟能不能把房子衝倒,你都有罪。
我抓你,我沒做錯,我對得起街坊四鄰和我這一身皮。我信你,所以才沒把已經上山的人給勸回來,才把麼仔給逼走。
我就是一個給火車頭燒過鍋爐的,你說車要壓死人讓停車,我可以念你的情少鏟幾鏟子煤,但不能去搶司機的剎車杆,那是自不量力,是逾矩。」
水漫到小腿肚的位置,冰冷得像要凍住一切,連同陳相跌至谷底的心一起。最後一刻,陳相仍有不甘地發問:「你不會後悔嗎?」
風已不像先前的那樣大,尖銳而悽厲的雨打聲被能讓五臟六腑隨之振動的巨大轟鳴所取代,把陳相的喃喃之問變得模糊不清。但黃龍似是聽清了,他望著濺滿泥污的窗,喉頭動了動,擠出一句乾澀喑啞的絕音:
「會。但那是我的命。」
水下,玻璃碎片和磚木殘渣一齊往陳相身上撞,讓他除了疼痛以外什麼都感受不到。他本有機會攀扶殘垣或者藉助浮木讓窒息來得遲一些,但卻沒有那樣做,只是任由水流包裹著在各種尖利的人造直角中橫衝直撞,像一條自斷腹鰭的魚。
這樣的無力感,他沒少體會過。一直以來,他都覺得自己像一條長鰭馬口魚,每每試圖立在海面上,都會立刻被重力和水流拽回陰暗海底。在這個註定溺亡的夜晚,他終於有機會意識到,那些無可抵禦的牽制,來源遠不止家庭。
2016年,陳相在湛江市氣象台工作的第一年。
「劉老師,好。」
早上7點半,陳相站在空蕩蕩的值班室門口,沖迎面走來的人,生疏而尷尬地打了聲招呼。這是他在這裡上班的第一天,誰都不認識,只在無聊間熟記了走廊展板上所有人的姓名和職務。
眼前這位大腹便便的中年人,名叫劉永樂,是氣象預警中心的一位普通科員。初來乍到,不熟悉規矩,見人一律叫老師,不管對方是不是德能配位,聽了之後總不能不開心。更何況他是新人,不高興也不能把他怎麼樣。
劉永樂露出一副嫌惡的表情,好似渾身不自在,連不羈的鴨子步都邁得僵硬了,「別這麼生分,你跟其他人一樣,叫我劉胖。」
「劉胖。」陳相用力收住自己不可置信的表情,艱難地複述了一遍。
「唉。」劉永樂立刻回應,臉上露出笑,捂著隨步伐起伏彈跳的肚子打出一個長長的飽嗝,「走,我帶你熟悉熟悉你的好差事。」
陳相被帶到一台電腦前,坐下,劉永樂在他身後操縱滑鼠為他演示。
眼前是一台十分古老的電腦,方方正正的TFT屏幕只有19寸,不論是氧化發黃的塑料殼還是機箱上積滿灰塵的出風口,都在大聲都在訴說它的古老。更重要是,在Windows 10早已面世的時代,這台電腦上還在運行Windows xp,是一個名副其實的古董。
劉永樂雙擊桌面上一個毫不起眼的圖標,調出一個界面粗糙的軟體,隨便點擊一下界面左列以時間命名的文件名後,一副水文地圖跳出。
劉永樂指著雷州半島沿岸附近的紅色圓點問陳相,「數數這些點一共有幾個。」
「31。」陳相機械地答,絲毫猜不到下一步的內容。
「很好。」劉永樂語氣輕飄飄的,像在糊弄小孩子。接著,他把滑鼠指針移到界面右下角的文本框中,輸入一個字符T,然後按下回車。
「看懂了吧?紅點代表浮標站有回傳數據,數出來紅點有31,就打一個T;比31少,就打一個F。」
「然後呢?」陳相對向劉永樂滿意的目光問。
「然後?然後就是每隔3小時核對一次,每天8次。上長白班管早9點到晚6點的,上夜班管晚9點到早6點的。」劉永樂抬眉答。
「就這?」陳相感到不可思議。
「就這。」劉永樂攤手,「剩下的時間裡,有人找你跑腿你就去,沒人搭理你你就愛幹嘛幹嘛。」
陳相保持驚異的神情,目光沒有從劉永樂臉上移開,「這也太無聊了吧?」
「無聊?」劉永樂也吃驚,露出費解的神情,「別身在福中不知福,你這個活計要是分給我,我做夢都要笑醒。」
劉永樂離開後,陳相面對古董電腦愣了好久。當初應聘這份工作的時候,又是筆試,2小時答50道專業題,演草紙都不夠用;又是面試,就著幾頁自我介紹把所有候選人都問得說不上話來;又是政審,要找十幾個人為自己說好話並被查祖上三代。
費了九牛二虎之力pk掉競爭對手來到這裡,只為做一個兩位數的目視計數,並輕點一下鍵盤上的T。這還真是應了那句誇張話:面試造航母,工作擰螺絲。
快到8點時,逐漸嘈雜起來的走廊和隔壁會商室里刺耳的音響聲打斷了陳相的感慨。他望著那些夾著筆記本來去匆匆的身影,逐漸冷靜下來。之所以會產生被大材小用的不甘之感,完全因為他還是一名清澈愚蠢的大學牲。實習期的工資是死的,如果喝著茶唱著歌和腳不沾地掙得一樣多,那他肯定選擇前者。
於是,接下來的日子裡,陳相過得十分悠閒。每天窩在那台古董前,一邊享受劉胖賞給他的夏桑菊,一邊看他心心念念的編程書。從古老的C,到經典的C++,再到剛剛興起潛力無限的Python都有所涉獵。
不光啃書,還樂於實踐。他寫了一個幾百行的簡易程序,把他唯一掛念的擰螺絲的活計交給機器來完成。自那以後,他連紅點都不用數了,成為全辦公室最瀟灑的人,別人忙碌他吃雪糕,別人熬夜他睡覺。
10月,一場強冷空氣為汛期畫上句號。早上,在休息室里安睡了一夜的陳相伸著懶腰走進值班室,遇到等在他工位前,面色凝重的劉胖。
「你昨晚上哪裡去了?他們說一整晚都沒看見你。」劉胖問。
「睡覺啊,還能到哪裡去。」陳相走到桌前,端起茶缸把隔夜水一飲而盡,心說那幫大忙人終於注意到他這個小透明了。
劉胖的臉色更難看了,「你睡一整夜?數據沒核對?」
「核對了啊,睡覺又不耽誤核對。」陳相得意地欣賞劉胖的焦慮和不解,把他自動化擰螺絲的程序調出來給劉胖演示了一番。
「經過2個月的測試,準確率100%,0延遲,0故障。我覺得之後可以把這好東西推廣一下,解放雙手。」
陳相說完,靜靜等待劉胖的驚喜和表揚。只用不到一個月的時間,就能解放至少兩個勞動力,把自由的靈魂從無意義的重複勞動中釋放出來。這在那些擁抱技術注重效率的科技公司內稀鬆平常,但在眼下這個落後而僵化的單位里,堪稱壯舉。
可他沒等到劉胖把蘋果肌堆到臉頰外的笑,等來的是狂風驟雨般的怒斥。
「誰讓你在內網機上安裝外來軟體的?」劉胖大吼一聲,怨氣十足。
「不是外來的,我在本地寫本地編譯的。」陳相很懵,本能地為自己辯解。
「本地的也不行!萬一它數漏了打錯字了,誰負責?那是在給歸檔數據打質控標識,你錯打一個F就要廢一組數據,再莫名奇妙打出別的字母來,負責建站的能提著刀來砍你,台長都得挨批。」
「不會錯的,我向你保證,我的程序不會錯。」
「程序不會錯?之所以有人做這個工作,就是因為發現程序會錯。測站自動觀測自動發報自動歸檔是一條流水線,你是這條線上的質檢員!
再先進的流水線都免不了一個關鍵時刻能救命的質檢員。用程序檢測程序,你這是在光明正大的偷懶,是玩忽職守!」
劉胖子吼完,端起剛續完熱水的茶缸,一飲而盡,被燙得直吸氣。末了,他收起平日裡吊兒郎當的姿態,一臉嚴肅瞪著陳相說:「念你是新人,才給你分配一個簡單到不能再簡單的活兒,好讓你平穩度過實習期。你要是連這都干不好,肯定是要滾蛋的,你爸也保不了你。」
深秋的大清早,略有溫度的陽光碟機散晨霧,把空氣變得乾燥和清澈,清澈到連溫熱茶缸散發出的熱氣都能擁有一席陰影。劉胖子踢踏著一年四季都焊在腳上的人字拖,大踏步走出門,頓厚的背影遮擋住一切生動的影像。
當那束暖光恢復如常時,在一天中最美好的下班時刻,陳相只感受到無可疏解的煩悶。他在迫不得已的命運里掙扎著,抓住一點一滴的機會,試圖把自己從能一眼望到頭的枯燥生活中拯救出來,也順便拯救一下別人。但如此樂觀和積極的態度卻只換來一頂玩忽職守的帽子。
他承認,他是偷懶了。可偷懶雖是人類的本性,也是科學進步的動力。冰冷海面上漂浮的橙色浮標,小小的卻能坐擁十幾種傳感器,能在幾十分鐘內把辛苦測量的數據傳到永遠溫暖的辦公室里,靠得可不是什麼勤奮和克盡厥職,而是十八世紀起數次工業革命結出的碩果。
機器的廣泛使用,自動化的普及,讓人從繁重和單調的低端工作中解脫出來,從而專注於更高層次和更有創意的活動,這是歷史的車輪,誰也阻擋不了。21世紀,計算機算力開始統治一切,下一次工業革命的主角,必然屬於智能和信息化。
用一小段程序,解放兩個枯槁的靈魂,這是順應時代,是在擁抱美好的未來,本應是值得鼓勵的。更何況,在格外純淨的背景上識別規則圖形並計數,本就是一個成熟到不能再成熟的算法。在這種簡單任務上擔心程序出錯,就像是擔心一個健康成年人喝水時把自己嗆死。
那一天,陳相立在樓梯間附近的轉角處,推開窗子,就著稀淡的陽光吹了很久冷風。離開時,他向後勤辦公室借來一個為列印紙防潮的大塑膠袋,頂著各色目光,把堆在工位上的磚頭書和各式雜物全部裝走,連同插線板上從未被拔下過的手機充電器一起。他沒打算再回來。
風風火火趕上班車,對著薄雲後太陽的模糊輪廓暢快喘息,他的心情格外輕鬆。花費九牛二虎之力才得到的工作,完全不適合自己,這並不是什麼喜事。但值得慶幸的是,他發現得格外及時。在實習期的第三個月離開,並不需要支付嚇人的違約金,頂多就是在檔案里被記一筆。
對於這唯一的代價,他毫不在意。因為他確信,他的下一份工作完全用不到那個草率濃縮人一生的紙袋,也不允許自己就那樣被隨意定義。畢竟,身處一個土地里能長出金子的時代,就算註定只能做一個擰螺絲的無名小卒,也要去擰破碎機和振動篩上的,因為那裡離黃金更近。
回到二橫巷的家中,他沒有像往日那樣舒舒服服洗澡睡回籠覺,而是細細瀏覽算法工程師的招聘需求,從名聲大振的大廠,到剛剛天使輪的小公司,一個都不放過。這種心懷憧憬的感覺很好,像是一位一直為既定線稿上色的畫家,第一次有機會勾勒自己心中的圖像,不論成品是美還是丑,都值得期待。
他就這樣沉浸在其中,直到太陽西斜,屋子裡重新泛起冰凍玻璃渣般讓人不忍呼吸的濕冷潮氣。把他從斑斕幻想中徹底抽離的是一條來自趙棟樑的簡訊:
新房已交易好,你被列為共同還款人,一年存繳期過後開始還款。知悉。
畫家的筆沒拿穩,掉在地上了。他本能地認為這是趙棟樑接到小報告後阻止他的手段,但第二天趙棟樑當他的面用一串嶄新的鑰匙打開了新房的門。10樓,南北通透,夕陽打在身上很暖和,空氣乾燥清澈,讓人忍不住多吸幾口。
於是第三日,一個該值長白班的日子,他重新回到那台19寸TFT顯示器前,把引以為傲的腳本和可執行程序全部刪乾淨,仔細數出紅點有31個,在鍵盤上按下T。之後,頂著各色目光,把各式雜物從塑膠袋裡掏出來,充電器插回插線板。
他不覺得這麼做是一種無奈妥協,因為那些磚頭書也被重新擺回桌上,擺在更顯眼的地方上。
18世紀後,各行各業都充斥著蒸汽機的身影。他相信21世紀也會出現類似的光景,智能和信息化的車輪終將碾過一切,不可能允許一個人數一輩子紅點。而率先擁抱未來的他,也許過得不會太糟糕。
他言中了。半年後,全國範圍內的自動觀測網正式投入使用。從基準站到基本站,再到常規站,全部置換為自動觀測,時間解析度統一為5分鐘,自動歸檔,內網共享。為了配合併網,雷州半島附近的浮標站也都統一更換了傳感器,分時間辨率提高到20分鐘,數據實時上傳,無需人工干預。
自那之後,山頭上那個早已晉升為基本站的觀測場徹底冷清下來,再也沒有人每隔3個小時就提著本子對著刷白漆的各式儀器寫寫畫畫,或迎著刺目的日光抬頭看雲。雲量、雲類和雲底高度等最依賴人眼估測的觀測項目也被完全取代,雲高儀和攝像頭能夠記錄一切。同樣的,31個小紅點再也沒有出現在陳相的電腦屏幕上。
在時代的裹挾下,陳相輕易結束了能榨乾靈魂的機器人生活,但又迎來了另外一種類似的。
擁有30年經驗的資深預報員羅誠漢老了,熬不成夜了,頭腦不靈光了,會商時嘴皮子不利索了,徹底干不動了。在退休前的養老時光里,他需要完成最後一項任務:培養一位接班人。於是,一份最新鮮的血液,筆試面試雙料第一,看起來專業基礎很紮實的陳相自然成為不二人選。
一開始,陳相是高興的,每天坐在花花綠綠的天氣圖前被人往腦子裡灌知識,必然不可能無聊,可時間久了才發現,這著實是另外一種苦差事。
在學生時代里,他把天氣學分析這門課翹掉了一大半,考試靠強記,面試靠運氣。毫不誇張地說,他對那門學問的真實認知,僅限於槽前好天氣槽後壞天氣,其餘的都是雲裡霧裡,聽見就想睡覺。
更重要的是,他絲毫提不起惡補此門學問的興趣,因為羅誠漢教給他的東西完全是經驗之談,和書本上嚴謹推導的公式沒有一點關係。
更何況,那位可愛老人的經驗,看似驚艷,實則落後。根據500hPa上的東西推測地面上會是什麼樣,又或者根據探空曲線推測幾小時後下不下雨,這在以前是絕活,但放在被數值模式統治的今天,就像五金店裡無人問津的白熾燈泡,只在懷舊的時候用。初始場一設置,模式一轉,什麼時候颳風下雨下冰雹,模式全都告訴你。
當然,模式有時候不如人准。但模式不准就要想辦法提高初始場精度,或者改進參數,而不是擺出一幅蔑視的樣子,蔑視剛滿周歲的孩子路走不利索。
計算機可以在更高的維度中對物理世界模擬和演算,這賜予人站在時間軸上洞悉未來的機會,為何還要讓自己本就有限的智慧困據在平均重量1.4公斤的三維空間裡。
準確來說連三維都沒有。顯示在電腦屏幕上的圖片只有二維,想看某個場量的全貌需要自己在頭腦中拼湊,而要理解它的生命周期更是不可能的。描述天氣的方程組沒有解析解,無法被抽象成為人能理解的東西。
所以,對於羅城漢的諄諄教導,陳相表面嗯嗯啊啊聽得認真,但從不往心裡記。一有機會,他便要湊到日常維護數值模式的林芳跟前,虛心請教並且主動打雜。雖然他的人生路已被確定,但至少還有選擇車道的權利。在平坦的林蔭小道和剛搭好路基的高速路之間,他選擇後者。
人的每一件發明都是對自身智慧的延展,和蒸汽機車比馬力比輸了,應該高興而不是羞愧。每當陳相答不出羅誠漢出的考題時,後者總把白了半截的眉毛耷拉著,擺出一副朽木不可雕的惋惜樣子。但陳相清楚,對方才是真正需要被憐憫的人。因為隨著計算機算力的提高,30年來辛苦積累的經驗定將變得毫無用處。
他再一次言中了。一年多後,在計算晶片和高性能計算集群井噴式發展的2018年,陳相憑藉與硬體發展齊頭並進的數值模式,屢次在預報競賽上打敗羅誠漢。步履蹣跚的老叟吃過的鹽比三歲小孩吃過的飯還要多,但卻完敗。
陳相為台里寫了一個小型系統,每日定時接收各類觀測數據,自動同化,自動運行模式,自動繪圖生成產品,全程無人值守。如果這套產品的效果夠好,那麼台里所有預報員的工作都將變得格外輕鬆。他們不再需要每天盯屏幕盯得眼珠子快要掉出來,只需要在會商之前瀏覽一遍模式預報結果即可。
但這條路並不如他想像的順利。由於觀測數據空間解析度稀疏,並且總有儀器狀態波動導致的奇異值,數據同化的效果總是不盡人意。大氣模型是一個混沌系統,對初始場十分敏感,一個細微異常的局地觀測誤差會在同化過程中擴散給周邊地區,並在幾萬步的計算後極限放大,把預報結果影響得面目全非。
一隻蝴蝶在巴西輕拍翅膀,可以導致一個月後德克薩斯州的一場龍捲風,這是學者們對混沌系統蝴蝶效應的比喻。同樣的,如果這隻蝴蝶在拍翅膀前被人捏住,便可以阻止龍捲風的發生,這毫不誇張。對於數值模式來說,初始場就是這隻蝴蝶。
在計算機算法造就的綺麗之景里暢遊2年後,他終於迷了路。和無限美好的未來之間僅間隔一條不寬不窄的溝渠,但卻沒有人能為他修一座橋,他只能靠自己。
於是,新一期科研基金申請立項之時,他提交了修橋方案。過去的10年裡,前人已嘗試所有可能的修橋方法,卻無一成功。好在,最近兩年裡,有一種新的方法正在嶄露頭角:機器學習。
機器學習的理論十分簡單:搜集真實世界中的數據,餵給計算機,計算機憑藉預先設定的算法自行消化,建立數據之間的映射,吐出令人滿意的結果。這也算是一個數值模型,但驅動它的不是物理定律,而是單純的數據。它就像一個有魔法的黑匣子,人並不能理解它是怎樣工作的,但它總能將心愿化為現實。
更激動人心的是,這些黑匣子早在上世紀80年代就被設計出來並彰顯出巨大的潛力,只是限於計算機算力的匱乏,沒有被廣泛應用,近10年來硬體發展才賜予它們新的生命。理論充分,經過歷史檢驗,有創新性,潛力無限,陳相相信評委們能夠看到這種方法的價值。
然而,事實讓他失望了。立項名單公布,並沒有他。這次的立項競爭並不激烈,連一些縣區局裡書寫格外敷衍毫無創新性的基金本子都中了,唯獨沒有他的。
滿心的不甘與疑惑無法消化,陳相第一次私下裡和趙棟樑產生專業上的交流。那個時候趙棟樑已是正研高工,論文發了不少,也是評委的一員。
陳相清楚兩人互相心懷芥蒂,但不覺得趙棟樑會心眼小到阻礙自己兒子的前程,即便是連姓氏都不同的非親生兒子。畢竟,基金立項便會有經費支持科學研究,科研搞好才能多發論文,論文多了才好評職稱漲工資。張瑾玥的醫藥費開銷不少,他們倆還還著房貸,平日裡省吃儉用。
當陳相雙手遞過自己的基金本子時,趙棟樑顯得十分意外。他眉頭舒展開一瞬,但又迅速皺回去,沒有伸手接那沓釘得整整齊齊的紙。
「你的本子我評了,我給你打了C。」趙棟樑捏著眉心說。
趙棟樑的直截了當出乎陳相意料,更意料不到的是這一點都上不了台面的評分。本子的評級分為ABC,打C表示,要麼書寫敷衍有態度問題,要麼評委質疑選題立意的科學性。陳相寫得格外認真,這個C的緣由肯定是後者:趙棟樑覺得他的技術路線不具備可行性。
「為什麼?機器學習在工業界已經遍地開花了,在創傷檢測、醫療影像還有物體識別上都用得特別好,人臉識別的準確率近乎百分之百。你覺得我這方法哪裡有問題?」
陳相徑直問出自己的疑惑。實際上,他設計的方案在屬於在工業界都綻放異彩的那一類,他要用生成式模型,把算法之力開發到極限,像給模糊照片提升解析度那樣提升觀測場的空間解析度,並把零星異常值取代,給數值模式一個絲滑而乾淨的初始場。
這是一種性價比很高的方式,不需要花上千萬費用將方圓幾百公里內測站加密到每隔10公里一台,只需要花費十幾萬增上幾台測站提供數據標籤,再買上幾張性能好點的計算卡來建模,就能達到同樣的效果。立意、可行性、創新性都有,無懈可擊。
「哪裡有問題你自己不清楚嗎?你所謂的機器學習模型,絲毫沒有物理意義,無法令人信服。」趙棟樑切回一成不變的冷臉,語氣里飽含不耐煩。
「是,我承認那是一個黑箱,人無法理解它的運作方式。可是這本來就是由數據驅動的模型,物理意義不是必須的。人都不一定能區分雙胞胎,但模型卻可以。只要結果好,過程不是最重要的吧?」
「不一樣。模型認錯貓臉狗臉人臉並不會導致人死傷,但模型預報錯天氣會。如果你的產品里只有預報結果而沒有預報過程是不會被認可的。
這有什麼難理解的嗎?漁民敢因為你說天氣好就把船開到遠海里,是因為你能對著天氣圖分析得頭頭是道;你敢讓你媽躺手術台上被醫生開膛破肚,是因為醫生能講清楚心臟里的血要怎樣泵到肺里才能讓人正常喘氣。
我現在掐指一算告訴你後天早上6點55分下暴雨你會信嗎?」
陳相沒有點頭也沒有搖頭,他猜不透趙棟樑葫蘆里賣的是什麼藥。
「你看,你也猶豫了。你猶豫是因為你知道我多少幹過幾年預報,那如果我到古玩街上拉一個算命先生過來給你同樣的結論,你還敢信嗎?」
「我知道你想說公信力需要有專業和經驗背書。擬人化的講,我的模型也可以從我提供給它的海量數據里提取經驗,並且不比人遜色。」
趙棟樑把頭別到一邊去,不再看陳相的臉,「這件事情沒什麼好說的,打C的不止我一個人。你的這個想法沒希望的,趕緊止損,另選一個腳踏實地的課題。」
末了,趙棟樑還補充上一句,「你不喜歡天氣分析只喜歡用數值模式,只要你能報准,我沒意見。但你記住,會商的時候還是要講清楚過程,不要只把模式結果丟上來,讓我們對著一兩張圖大眼瞪小眼。你那樣,跟算命先生沒區別。」
一場並不愉快的對話就此結束,一同結束的是在溝渠上造橋的衝勁。自那之後,陳相併不再憧憬成為站在學科浪尖的上的弄潮兒,企圖以一己之力建造一條無人敢踏足的橋。橋再結實,對岸再美,可沒人願意走過去,也沒什麼用。
他並不是一腔熱血盲目自大的人,早已深諳能夠引領時代的機遇可遇不可求。只是沒想到,在他所在的行業里,那是一個註定無法實現的夙願。
「叮鈴鈴鈴鈴……」
熟悉的鈴聲再一次響起,一聲接一聲,安安穩穩,規規矩矩。
他終於意識到,自己只是機械錶里的一個齒輪,無法逆轉指針,無法逆轉時間,更無法超越時代,超越人的慣常認知。連轉得快與慢,都只取決於擰發條的人。