韓至淵看着一臉疲憊的林允寧,笑着對宋胤乾說道:
“老宋,咱們就別在這兒杵着了,讓年輕人自己聊。高翔啊,”
他話鋒轉向高翔,“我這寶貝學生今天可是連軸轉,你要是再把他榨乾了,我可不答應。先帶他去喫頓好的,把人餵飽了再說事。”
臨走前,潘建林院士特意走到林允寧面前,沒有說話,只是認真地看了他一眼,然後輕輕點了點頭,眼神中是無需言說的欣賞和勉勵。
走廊裏的人羣漸漸散去,只剩下林允寧高翔。
這時,劉偉帶着小王,走過來對林允寧說道:
“小林同學,每次跟拍你,都像是坐過山車似的,太震撼了!我回去一定好好剪,樣片出來了第一時間給你過目。”
他看了一眼天色,順勢發出邀請,“要不今晚我請個便飯,也算給你慶功,然後順路把你送回春江?”
“謝謝劉導,不過我這邊還有點事沒處理完。”
林允寧婉拒了,“正好明天週五,我打算在金陵留兩天,週日晚上再回去。
“行,那你先忙,我們不打擾了。”
劉偉點點頭,非常識趣地帶着攝製組離開了。
“高師兄,是什麼問題?”
送走了劉偉,林允寧衝着高翔點了點頭。
高翔推了推金絲眼鏡,尷尬一笑,指了指腕上的手錶:
“快六點了,正好飯點。林同學,要不......咱們去食堂邊喫邊聊?我請客。
晚飯高峯的尾聲,兩人在食堂角落找了個位置坐下。
周圍是鋼製湯勺碰撞餐盤的叮噹聲,和學生們談笑的嗡嗡聲,混雜着食物的熱氣,撲面而來。
餐桌上。
林允寧面前是一碗熱氣騰騰的鴨血粉絲湯,高翔則是一份土豆燒雞塊蓋飯。
桌角還放着幾瓶娃哈哈純淨水和紙包裝的統一冰紅茶。
高翔扒拉兩口飯,便將餐盤往前一推,勺子在不鏽鋼盤子上劃出一道刺耳的聲音。
“林師弟,”他刻意把‘師弟’兩個字的發音放慢,身體往椅背上一靠,擺出了一副前輩的姿態,“我也不跟你繞圈子了。我這項目,是高合金的X射線衍射譜(XRD),幾十個峯重疊得一塌糊塗,跟亂麻似的。”
他喝了一口水,繼續道,“實驗參數多,初始值又敏感。用傳統方法硬擬合,折騰半天倒也能弄出一條不錯的曲線,但我心裏一點底都沒有。
“我最怕的,其實不是擬合不出,是擬合得太好,導致過擬合,最後弄巧成拙了。”
林允寧沒急着說話,他用勺子舀起一勺粉絲,吹了吹氣,不緊不慢地送進嘴裏,然後抽出一張餐巾紙,在桌上攤平。
他拿起桌上那支被高翔用來記錄的簽字筆,筆尖在餐巾紙上輕輕一點。
“高師兄,先別談擬合,咱們先把流程理順。”
林允寧的聲音不大,卻讓高翔不由自主地停止了抱怨,將注意力完全集中過來。
他看着林允寧用餐勺的句柄當尺,迅速畫出一個四宮格。
“第一步,數據校驗。”
他在左上角的格子裏寫下這四個字,“基線漂移、探測器上的死像素、孤立的噪點,這些都得先清理乾淨,不能讓垃圾數據污染模型。”
“第二步,先驗模板。”
他的筆尖移到右上角,“峯位只能在物理上合理的‘窗口’裏移動。窗口怎麼定?你得用標準樣品,比如高純硅粉,先標定出儀器的響應函數,把它寫死在先驗裏,給每個峯的位置設定一個合理的‘窗口'。”
“第三步,後驗採樣。”
林允寧的筆尖移到第三個格子,“別想你那個‘最優曲線。我們用MCMC去跑,給每個峯的強度、寬度,都生成一個概率分佈,也就是可信區間。我們不認單條最優解。”
“最後一步,可視化判據。”他在最後一個格子裏畫了個小眼睛的圖標,“輸出結果的時候,殘差圖和峯分解圖必須一起給。殘差裏有結構,就說明模型錯了。”
他放下簽字筆,做了個總結:
“咱們先保證結果是正確的,再談它好不好看。”
高翔咀嚼的動作慢了下來。
看着餐巾紙上那個簡陋卻邏輯嚴密的四宮格,他的思路也清晰了不少。
但他雙眉依舊緊鎖,提出了質疑:
“理論說得很好,但這是紙上談兵。我們那臺老儀器的分辨率不夠,峯的展寬太大,很多亞穩相的峯根本分不開,你怎麼識別。”
“分不開,就承認分不開。”
林允寧的回答乾脆利落。
他指着餐巾紙上的第三格,“去卷積在這種情況下意義不大,你也別想了。
“既然分不開,就在先驗裏明確告訴算法,這幾個峯是一個‘複合峯’然後給出這個‘複合峯’整體參數的置信度。
“你最終要的,是基於現有數據做出最可靠的決策,而不是憑空變出不存在的信息。
高翔握着勺子的手放下了。
他身體微微前傾,向着對面這個比自己小了近十歲的高中生虛心請教道:
“那......我是不是還能加入‘多起點隨機化’的策略,防止算法卡在局部最優解裏出不來?”
“可以啊。”
林允寧點頭,又補充了一句,“再配一個fail-fast(快速失敗)指標。當擬合的殘差連續幾次迭代都不下降,就直接判定失敗,終止計算。別把算力浪費在死衚衕裏。”
“Fail-fast?”
高翔的身體不自覺地前傾,想起了自己過去幾周浪費在無效計算上的幾十個機時,內心第一次湧起一種荒謬感:
我一個博士生,在工程思維上,竟然被一個高中生給上了一課?
但他仍有疑慮,隨即拋出了更尖銳的挑戰:
“還有幾個問題。我們的樣品是薄膜,存在很強的'擇優取向,衍射峯的強度跟標準粉末樣品差得很遠。
“而且,光源的Ka2輻射去不乾淨,總會在主峯旁邊留下一個小尾巴。你這套方法,會不會把這些髒東西’誤判成一個新的物相?”
林允寧聞言,非但沒有感到冒犯,反而笑了。
“高師兄,你這幾個問題,其實都是在問如何處理模型與現實不符的地方。
“先說擇優取向的問題。我們暫時放棄擬合絕對強度,算法的核心目標,是去匹配峯的相對位置和相對強度比。只要這兩樣對得上,就能做物相鑑定。”
“然後,是Ka2的小尾巴。要麼在實驗端就用單色器把它濾掉,要麼就在先驗模型裏,把主峯和這個小尾巴寫成一對連帶變量,它們的相對位置和強度比是固定的。這樣算法就不會把它當成一個獨立的峯。”
“最後,也是最重要的一點。”
林允寧的筆尖在紙上重重一點,“當算法無法做出高置信度的判斷時,它會輸出‘不確定”。
“我寧可讓程序在報告裏標紅一片‘無法判定區間,也絕不能給出一個高風險的錯誤答案。”
高翔“噢??”地拉長了聲音,隨即忍不住笑了起來:
“你這思路......真是夠老實的。不過,我喜歡。總比自己騙自己強。”
“老實點好,不然你至少多花兩個月時間返工。”
林允寧依舊在仔仔細細地喝着粉絲湯,“行了,問題解決了,週末我抽空把這套四件套”的邏輯,改成Aether的一個模塊。你把你們一組最典型的原始數據和一份硅粉的內參標定數據發給我。”
他將那張寫滿字的餐巾紙對摺了一下,那套“四步法”瞬間變成了一張可以揣進口袋的“操作卡片”,隨手推到高翔面前,一副準備收工的樣子。
高翔看着那張餐巾紙,又看了看林允寧那副懶洋洋的神情,沉默了許久,忽然壓低聲音問道:
“其實.......我手上還有一個擱置了半年的活兒。是非平衡磁控濺射做的多組分金屬薄膜,我想找到一種方法,只用少量的XRD數據和幾個簡單的電學指標,就能快速判斷樣品‘是不是落在了我們想要的目標相區”。
“這事......有解嗎?
“其實我已經制備好了薄膜,實驗也做了一些,但我理論上不會建模,這事就一直卡着。”
林允寧正準備夾起一塊鴨血的筷子,在半空中停住了。
他那雙總是帶着幾分懶散的桃花眼,瞬間亮了起來。
“這個問題......纔有點兒意思,”
他放下筷子,重複了一遍,“用少量數據去預測相區邊界......”
緊跟着拿起一張新的餐巾紙,筆尖懸在上方,沒有立刻下筆,在腦中快速構建模型。
幾秒後,他的眼睛亮了:“我大概有個思路,一個三層架構的方案,可以試試。”
“第一層,小相圖生成器。”
他在頂層畫下一個方框:
“把已知的文獻數據和計算熱力學(CALPHAD)的相圖邊界,作爲模型的硬性先驗約束。”
“第二層,主動學習模塊。”
他在中間層畫下一個決策菱形,“讓Aether根據現有數據計算出的不確定度,告訴你下一批樣品應該合成哪個配方,才能最高效地鎖定相邊界。”
“第三層,三色燈判別器。”
他在底層畫下三個圓圈,分別寫上紅黃綠三色,“輸入你的數據,它直接給你亮燈:綠色,代表高可信度在目標相區;黃色,在邊界附近,需要警惕;紅色,已經偏離目標,實驗參數需要調整。”
高翔聽得眼睛都直了:
“這……………這能實現?樣本量太少了,我怕過擬合。”
“很有機會。”
林允寧沒提【模擬科研】給出的結果,提前列出瞭解決方案,“正則化和數據增廣防止過擬合;K折交叉驗證寫進最終的報告模板;最關鍵的,任何一個判斷,都必須配上置信度,低於90%一概不予採納。”
他看着一臉震驚的高翔,做出了最終的合作提議:
“高師兄,我來寫第一版的判別器和可視化模塊;你負責整理文獻,並列出一個最小化的‘實驗驗證集’。這個月底,你把第一批樣品跑出來,咱們對照‘三色燈”,檢查一下邊界的預測準不準。”
高翔徹底愣住了。
他看着餐巾紙背面那張充滿了未來感的架構圖,又看了看林允寧那張平靜的臉,還是難以想象自己的卡了大半年的課題,被這個還穿着校服的高中生,在頃刻間徹底重構了。
沉默了半晌,高翔才長出一口氣,站起身,鄭重地伸出手:
“別’師兄'了,叫我高翔就行了。剛纔是我眼拙了。這個課題,咱們一起幹!”
林允寧打了個哈欠,也站起身,握住了他的手:
“行,你先準備實驗材料,我這一段有點忙,等國家集訓隊開營了,時間就比較充裕了。”
“啊?”
高翔一愣,“國家集訓隊開營,不是更忙嗎?”
林允寧笑了笑,解釋道:
“集訓隊就在金大,而且包喫包住,不用金陵春江來回跑,每天除了上課就是睡覺,大把的時間閒着,當然充裕。”
“可集訓隊那種地方,競爭壓力得多大?你還有心思搞別的?”
高翔還是無法理解。
林允寧也懶得解釋,就在他正準備再確認幾個實驗細節時,兜裏那臺老舊的諾基亞手機卻不合時宜地震動起來,發出刺耳的和絃鈴聲。
屏幕上,“夏天”兩個字格外顯眼。
林允寧按下接聽鍵。
電話那頭,傳來了無比熟悉的聲音。
“林檸檬,我在首都機場,準備上飛機了………………”