幾個在實驗室的師兄都點開鏈接,打算觀摩一下周昀的獨門秘籍。
就連剛剛趴下的邱彥都重新坐直了身子。
幾人了看了一會兒,都不由發出感嘆。
“我愿稱之為——研究生新手入門寶典!”
“確實,我們那時候要有這東西,得少走多少彎路,不說別的,就這裝環境,那時候就卡了我一兩個月,
學怎么用github又是一兩周,學會怎么找文獻又是一兩周,各種雜七雜八的東西學下來,半個學期就過去了,
而且這玩意兒又沒有系統性的教程,都是自己一點點上網找的,不過你們這倒是好了,有周昀這東西,能省下不少時間。”
“對你們有幫助就行,如果別人有需要的話直接給就好了,只是別讓人拿著我的東西去收費就好,看完覺得有幫助給我點個Star唄。”
“點了,要我說,你這玩意兒遲早得火!”
“那借你吉言了。”
短暫的吵鬧過后,實驗室又恢復了平靜。
周昀看著屏幕上的實驗記錄,第一次感覺有些棘手。
能夠支撐模型運行的核心代碼他上周就寫完了,然后設置了幾組實驗,跑了六天,今天剛好出結果。
只是這結果,有些不盡如人意。
在選擇股票相同的情況下,甚至還沒有之前那個只能接受數值和文本數據的閹割版模型效果好。
這就是AI領域的問題之一,模型完全是黑盒的,你永遠不知道你的數據在模型里是怎么變化傳輸的,可能某一行代碼出了問題,就會導致各種奇奇怪怪的問題。
不過還好,周昀在寫代碼的時候加入了大量的調試代碼,因為每跑一次實驗需要的時間太長了,
甚至這次他并沒有用到所有的數據,只用了其中的一部分,跑一組實驗就得一周,這還是64張H100的顯卡集群的情況下,
如果用上全部的數據的話,雖然時間上不會是簡單的倍乘關系,但至少也得兩周。
但這也就是第一次訓練時候需要大量數據才要這么久,等第一次訓練好了,后續的再有新的數據,就不需要從頭訓練,只需要利用新的數據微調就行。
現在他就在看輸出日志,觀察到底是在哪一個環節出了問題,為了衡量模型的效果好壞,
他在數據預處理,數據融合,模型訓練,結果輸出這幾個方面設計了幾個指標。
經過觀察,他大概確認了最為可能的一個原因。
數據融合異常。
因為模型接受的數據是多種模態的,所以在預處理之后還有一個數據融合階段。
根據實驗日志來看,問題就出現在了這一階段。
原本的數據融合算法在只有兩種模態數據的時候,效果很好,但是當數據的模態數量逐漸上升,
一些原本沒有發現的bug逐漸顯現出來,這也是導致最終效果不如原來模型的最為重要的原因。
當然,也可能是因為過擬合,數據泄露,這種普遍性的問題,只不過僅根據這次的輸出日志來看,可能性不大。
“嗯......特征維度貢獻方差過大?”劃動滾輪的手指停下,周昀敏銳地看到了一條異常的輸出。
說人話就是,模型在融合信息的時候沒有一個輕重緩急,對所有模態的數據都一視同仁,平等對待了所有輸入。
這在模態少的時候可能適用,因為數據輸入之前,在無形之中其實是多了一個人工篩選的步驟。
比如你要預測股票的漲跌,相比于各種專家的視頻分析,你可能會更加相信各種金融指標,所以你就會下意識地選擇各種數字指標輸入模型,而不是專家的視頻分析。
這就隱含地為數據賦予了權重,雖然代碼里沒有,但它確實是真實存在的。
不過人工篩選終究是有一些小問題的,在金融這個反人類的領域,光憑經驗很多時候容易做出錯誤的判斷。
“也就是說,在數據融合的時候,缺少了一個‘智能篩選’的步驟,讓模型知道,哪些數據重要,哪些數據不重要。”
“數據篩選.......”周昀手指輕輕敲打著桌面,思考著解決辦法。
如果只是單純的邏輯判斷,肯定不行,這樣太死板,還不如人來篩選。
置信度?
周昀想了一下,也覺得不行。
置信度其實就是模型對自己輸出結果的把握大小,例如一個分類任務,最終模型的輸出會在Softmax函數的作用下,變成一連串的概率,
比如分類到A的概率為80%,B任務的概率為10%以此類推。
那么置信度就是采用概率大于一定數值的結果。
這東西聽上去玄乎,實際上也是一種比較死板的邏輯判斷。
除了這兩種,篩選數據的方法其實還有很多,不過周昀都不滿意,因為這些方法從他們的底層邏輯來看,都沒有達到他想要看到的“智能”。
突然,周昀手指一頓。
如果從另一方面來看,數據篩選,還可以看作是一種數據蒸餾。
數據蒸餾其實很好理解,蒸餾大家都知道,那么數據蒸餾就是通過某種手段將數據集提純的方法。
恰好,周昀發在NeurIPS上的AgileEdge這篇論文里就有一種數據蒸餾的方法,因為想要縮小模型,就等于縮小參數量,兩者之間其實有著異曲同工之妙。
直接拿過來用肯定不行,不過周昀感覺只要稍作修改,應該能達到他想要的效果,因為當初設計這種數據蒸餾方法的時候,就已經著眼于“智能”二字。
找到之前的論文代碼,周昀直接將那段封裝好的數據蒸餾方法copy過來,然后再根據現有的模型進行修改。
因為代碼量不大,他就沒有用AI,而且AI也未必能準確理解他要怎么改,不如自己動手。
直到晚上快到六點,他才靠著椅子,伸了個懶腰。
終于改完了。
劃動著鼠標滾輪,看著已經成功運行的代碼,他心里涌現出一股巨大的滿足感。
這就是科研的爽感來源,當你解決了一個難題之后所帶來的快感,是其他任何事情都不能帶給你的。
等了一會兒,直到確認第一個epoch順利開始后,周昀斷開了與服務器的連接。
他在服務器上設置了幾組實驗,這次跑完估計得要兩周,不過他也可以趁著這段時間放松一下。
如果順利的話,之前那件事情,也差不多該迎來一個結局了。