陳帆把U盤(pán)從胸前口袋抽出來(lái),指尖還殘留著機(jī)房金屬機(jī)柜的涼意。張遠(yuǎn)靠在門(mén)框上,嘴里嚼著半塊餅干,含糊地說(shuō):“王教授那邊真能行?那機(jī)器咱們碰都沒(méi)碰過(guò)。”
“不是去借光。”陳帆盯著掌心的U盤(pán),“是讓他看看,我們不是在拿計(jì)算器造火箭。”
半小時(shí)前,他們剛結(jié)束對(duì)長(zhǎng)虹頂背離事件的復(fù)盤(pán)。系統(tǒng)成功預(yù)警,成員規(guī)避了大跌,但跑完一次完整回測(cè)用了將近三小時(shí)。陳帆盯著進(jìn)度條卡在98%的畫(huà)面,忽然起身拔下硬盤(pán)——舊服務(wù)器撐不住越來(lái)越復(fù)雜的模型,再不升級(jí),連基本的批量掃描都會(huì)拖成負(fù)擔(dān)。
他連夜整理了兩份材料:一份是系統(tǒng)架構(gòu)圖,用Visio畫(huà)出了數(shù)據(jù)流從采集到輸出的全路徑;另一份是頂背離模塊的技術(shù)文檔,附帶七次歷史案例的匹配結(jié)果和誤差分析。紙頁(yè)邊角被反復(fù)翻折,筆跡補(bǔ)滿(mǎn)了空白處。
第二天一早,他拎著筆記本穿過(guò)校園,直奔計(jì)算機(jī)系辦公樓。走廊安靜,只有遠(yuǎn)處實(shí)驗(yàn)室傳來(lái)低頻嗡鳴。他在三樓盡頭敲響了王教授辦公室的門(mén)。
“進(jìn)來(lái)。”
王教授坐在辦公桌后,眼鏡滑到鼻梁中段,正低頭批改論文。他抬頭看了眼門(mén)口,目光落在陳帆手里的設(shè)備上:“你就是昨天編程賽那個(gè)用Access的?”
“是我。”陳帆把筆記本放在桌上,打開(kāi)屏幕,“今天來(lái),是想申請(qǐng)使用SGI工作站的臨時(shí)權(quán)限。”
王教授沒(méi)接話,只是抬了抬眉。
“我們做的是金融數(shù)據(jù)分析系統(tǒng)。”陳帆點(diǎn)開(kāi)架構(gòu)圖,“目前運(yùn)行環(huán)境是普通PC集群,處理百萬(wàn)級(jí)行情數(shù)據(jù)需要三小時(shí)以上。而同樣的任務(wù),在SGI上理論上可以壓縮到十分鐘內(nèi)完成。”
“理論?”王教授手指輕敲桌面,“很多學(xué)生都跟我說(shuō)過(guò)‘理論上’。可IRIX系統(tǒng)不是Windows,文件系統(tǒng)、編譯器、進(jìn)程調(diào)度都不一樣。你們團(tuán)隊(duì)有交叉編譯經(jīng)驗(yàn)?”
“我昨晚查了技術(shù)手冊(cè)。”陳帆調(diào)出代碼片段,“已經(jīng)做了初步適配準(zhǔn)備。只需要一個(gè)測(cè)試窗口,我可以現(xiàn)場(chǎng)演示任務(wù)遷移和執(zhí)行效率對(duì)比。”
王教授沉默幾秒,終于開(kāi)口:“那你現(xiàn)在就試。但我不會(huì)為一場(chǎng)表演開(kāi)放設(shè)備。”
陳帆點(diǎn)頭,連接實(shí)驗(yàn)室內(nèi)部網(wǎng)絡(luò),調(diào)取一組包含十年A股日線數(shù)據(jù)的歷史包,共一百二十萬(wàn)條記錄。他啟動(dòng)本地腳本,進(jìn)度條緩緩爬升。
一分半鐘過(guò)去,處理進(jìn)度停留在6%。
“照這個(gè)速度,全部跑完要兩個(gè)多小時(shí)。”他說(shuō),“但如果能在SGI上運(yùn)行,我保證,清洗加特征提取,不超過(guò)四十分鐘。”
王教授盯著屏幕上的緩慢更新,終于拿起電話撥通實(shí)驗(yàn)室值班員。
五分鐘后,兩人站在機(jī)房門(mén)口。銀灰色機(jī)柜整齊排列,中央一臺(tái)SGI Origin 2000閃爍著狀態(tài)燈。管理員插入密鑰,解鎖操作終端。
陳帆坐進(jìn)主控席,導(dǎo)入修改后的代碼庫(kù)。他快速調(diào)整路徑引用,將數(shù)據(jù)源指向本地緩存,重新編譯核心模塊。整個(gè)過(guò)程沒(méi)有停頓,鍵盤(pán)敲擊聲穩(wěn)定而清晰。
“你經(jīng)常接觸這類(lèi)系統(tǒng)?”王教授問(wèn)。
“讀過(guò)文檔,模擬過(guò)流程。”陳帆沒(méi)回頭,“真正上手,這是第一次。”
程序編譯通過(guò),他按下回車(chē)。
進(jìn)度條瞬間躍動(dòng)。原本需要三小時(shí)的任務(wù),37分鐘后顯示完成。內(nèi)存占用曲線平穩(wěn),日志無(wú)報(bào)錯(cuò)。
王教授湊近看輸出結(jié)果:字段規(guī)整,時(shí)間戳連續(xù),特征值計(jì)算準(zhǔn)確。
“確實(shí)……快了不少。”他語(yǔ)氣松動(dòng),“但這只能說(shuō)明硬件強(qiáng),不能證明你們懂怎么用。”
“這不是終點(diǎn)。”陳帆打開(kāi)新窗口,“我們現(xiàn)在就開(kāi)始下一個(gè)任務(wù)——72小時(shí)股價(jià)走勢(shì)預(yù)測(cè)模型。”
他選定深發(fā)展、四川長(zhǎng)虹、上海石化等五只樣本股,導(dǎo)入近三年分鐘級(jí)數(shù)據(jù),設(shè)定模型參數(shù),啟動(dòng)持續(xù)運(yùn)算。任務(wù)提交后,屏幕跳出預(yù)計(jì)耗時(shí):8小時(shí)17分鐘。
“以前在自己機(jī)器上,這種規(guī)模的訓(xùn)練根本沒(méi)法跑。”他說(shuō),“要么降維,要么砍數(shù)據(jù),最后出來(lái)的結(jié)果全是妥協(xié)。現(xiàn)在,我們可以讓模型真正看清規(guī)律。”
王教授看著不斷刷新的日志流,良久才說(shuō):“兩周。給你兩周時(shí)間,每周最多六十小時(shí)使用額度。如果期間出現(xiàn)濫用、誤操作或資源浪費(fèi),權(quán)限立即收回。”
“明白。”陳帆點(diǎn)頭,“我們會(huì)按時(shí)提交運(yùn)行報(bào)告。”
“還有。”王教授轉(zhuǎn)身前頓了頓,“別以為換了臺(tái)機(jī)器就能翻天。算力只是工具,能不能挖出東西,還得看人。”
門(mén)關(guān)上前,他的聲音飄了進(jìn)來(lái):“今晚別走太晚,這樓十點(diǎn)鎖門(mén)。”
陳帆坐回終端前,屏幕上,預(yù)測(cè)模型正逐批加載數(shù)據(jù)。第一輪迭代已完成初始化,進(jìn)入梯度下降階段。他調(diào)出資源監(jiān)控面板,CPU利用率穩(wěn)定在89%,內(nèi)存余量充足。
張遠(yuǎn)這時(shí)推門(mén)進(jìn)來(lái),手里提著兩個(gè)飯盒:“成了?”
“權(quán)限拿到了。”陳帆接過(guò)飯盒,沒(méi)打開(kāi),“模型已經(jīng)開(kāi)始跑,第一批結(jié)果大概明早出來(lái)。”
“我就知道你能搞定。”張遠(yuǎn)咧嘴一笑,把飯盒擱在桌角,“剛才路過(guò)社團(tuán)活動(dòng)室,有人問(wèn)起長(zhǎng)虹的事,說(shuō)你們是不是提前知道了內(nèi)幕消息。”
“讓他們猜去。”陳帆盯著屏幕,“只要數(shù)據(jù)對(duì),模型穩(wěn),我們不需要內(nèi)幕。”
張遠(yuǎn)點(diǎn)點(diǎn)頭,拉開(kāi)椅子坐下:“那接下來(lái)干嘛?等結(jié)果?”
“不。”陳帆打開(kāi)編輯器,“趁著機(jī)器在跑,我把波動(dòng)率聚類(lèi)模塊重寫(xiě)一遍。原來(lái)的設(shè)計(jì)太依賴(lài)單因子,現(xiàn)在有了算力,可以加多維度協(xié)方差矩陣。”
他開(kāi)始敲代碼,指尖在鍵盤(pán)上快速移動(dòng)。張遠(yuǎn)沒(méi)再說(shuō)話,默默打開(kāi)自己的筆記本,開(kāi)始整理今天的日志記錄。
窗外天色漸暗,走廊燈光自動(dòng)亮起。機(jī)房?jī)?nèi),只有終端風(fēng)扇輕微轉(zhuǎn)動(dòng),屏幕上的數(shù)字不斷跳變。
第一組預(yù)測(cè)值出來(lái)了。
深發(fā)展A股,未來(lái)72小時(shí)走勢(shì)預(yù)測(cè)曲線與實(shí)際行情對(duì)比,匹配度達(dá)到81%。誤差主要集中在第二十四小時(shí)附近的突發(fā)成交量擾動(dòng),其余時(shí)段趨勢(shì)判斷全部正確。
陳帆停下敲擊的手指,盯著對(duì)比圖看了幾秒。
“怎么樣?”張遠(yuǎn)湊過(guò)來(lái)。
“還能更好。”陳帆保存當(dāng)前版本,新建項(xiàng)目文件夾,“把成交量突增識(shí)別加進(jìn)去,作為動(dòng)態(tài)修正因子。”
他重新加載數(shù)據(jù)集,調(diào)整模型結(jié)構(gòu),加入非線性權(quán)重調(diào)節(jié)層。編譯完成后,提交新一輪訓(xùn)練任務(wù)。
倒計(jì)時(shí)重啟:8小時(shí)9分鐘。
陳帆靠在椅背上,眼睛仍盯著屏幕。第一條綠色進(jìn)度條已經(jīng)開(kāi)始推進(jìn),比上一輪更流暢。
張遠(yuǎn)打了個(gè)哈欠,忽然問(wèn):“你說(shuō)王教授會(huì)不會(huì)真讓我們長(zhǎng)期用下去?”
陳帆沒(méi)回答。
他伸手摸了摸U盤(pán),確認(rèn)它還在口袋里。