第34章 數據融合異常

投票推薦 加入書籤 小說報錯

  幾個在實驗室的師兄都點開連結,打算觀摩一下周昀的獨門秘籍。

  就連剛剛趴下的邱彥都重新坐直了身子。

  幾人了看了一會兒,都不由發出感嘆。

  「我願稱之為——研究生新手入門寶典!」

  「確實,我們那時候要有這東西,得少走多少彎路,不說別的,就這裝環境,那時候就卡了我一兩個月,

  學怎麼用github又是一兩周,學會怎麼找文獻又是一兩周,各種雜七雜八的東西學下來,半個學期就過去了,

  而且這玩意兒又沒有系統性的教程,都是自己一點點上網找的,不過你們這倒是好了,有周昀這東西,能省下不少時間。」

  「對你們有幫助就行,如果別人有需要的話直接給就好了,只是別讓人拿著我的東西去收費就好,看完覺得有幫助給我點個Star唄。」

  「點了,要我說,你這玩意兒遲早得火!」

  「那借你吉言了。」

  短暫的吵鬧過後,實驗室又恢復了平靜。

  周昀看著屏幕上的實驗記錄,第一次感覺有些棘手。

  能夠支撐模型運行的核心代碼他上周就寫完了,然後設置了幾組實驗,跑了六天,今天剛好出結果。

  只是這結果,有些不盡如人意。

  在選擇股票相同的情況下,甚至還沒有之前那個只能接受數值和文本數據的閹割版模型效果好。

  這就是AI領域的問題之一,模型完全是黑盒的,你永遠不知道你的數據在模型里是怎麼變化傳輸的,可能某一行代碼出了問題,就會導致各種奇奇怪怪的問題。

  不過還好,周昀在寫代碼的時候加入了大量的調試代碼,因為每跑一次實驗需要的時間太長了,

  甚至這次他並沒有用到所有的數據,只用了其中的一部分,跑一組實驗就得一周,這還是64張H100的顯卡集群的情況下,

  如果用上全部的數據的話,雖然時間上不會是簡單的倍乘關係,但至少也得兩周。

  但這也就是第一次訓練時候需要大量數據才要這麼久,等第一次訓練好了,後續的再有新的數據,就不需要從頭訓練,只需要利用新的數據微調就行。

  現在他就在看輸出日誌,觀察到底是在哪一個環節出了問題,為了衡量模型的效果好壞,

  他在數據預處理,數據融合,模型訓練,結果輸出這幾個方面設計了幾個指標。

  經過觀察,他大概確認了最為可能的一個原因。

  數據融合異常。

  因為模型接受的數據是多種模態的,所以在預處理之後還有一個數據融合階段。

  根據實驗日誌來看,問題就出現在了這一階段。

  原本的數據融合算法在只有兩種模態數據的時候,效果很好,但是當數據的模態數量逐漸上升,

  一些原本沒有發現的bug逐漸顯現出來,這也是導致最終效果不如原來模型的最為重要的原因。

  當然,也可能是因為過擬合,數據泄露,這種普遍性的問題,只不過僅根據這次的輸出日誌來看,可能性不大。

  「嗯......特徵維度貢獻方差過大?」划動滾輪的手指停下,周昀敏銳地看到了一條異常的輸出。

  說人話就是,模型在融合信息的時候沒有一個輕重緩急,對所有模態的數據都一視同仁,平等對待了所有輸入。

  這在模態少的時候可能適用,因為數據輸入之前,在無形之中其實是多了一個人工篩選的步驟。

  比如你要預測股票的漲跌,相比於各種專家的視頻分析,你可能會更加相信各種金融指標,所以你就會下意識地選擇各種數字指標輸入模型,而不是專家的視頻分析。

  這就隱含地為數據賦予了權重,雖然代碼里沒有,但它確實是真實存在的。

  不過人工篩選終究是有一些小問題的,在金融這個反人類的領域,光憑經驗很多時候容易做出錯誤的判斷。

  「也就是說,在數據融合的時候,缺少了一個『智能篩選』的步驟,讓模型知道,哪些數據重要,哪些數據不重要。」

  「數據篩選.......」周昀手指輕輕敲打著桌面,思考著解決辦法。

  如果只是單純的邏輯判斷,肯定不行,這樣太死板,還不如人來篩選。


  置信度?

  周昀想了一下,也覺得不行。

  置信度其實就是模型對自己輸出結果的把握大小,例如一個分類任務,最終模型的輸出會在Softmax函數的作用下,變成一連串的概率,

  比如分類到A的概率為80%,B任務的概率為10%以此類推。

  那麼置信度就是採用概率大於一定數值的結果。

  這東西聽上去玄乎,實際上也是一種比較死板的邏輯判斷。

  除了這兩種,篩選數據的方法其實還有很多,不過周昀都不滿意,因為這些方法從他們的底層邏輯來看,都沒有達到他想要看到的「智能」。

  突然,周昀手指一頓。

  如果從另一方面來看,數據篩選,還可以看作是一種數據蒸餾。

  數據蒸餾其實很好理解,蒸餾大家都知道,那麼數據蒸餾就是通過某種手段將數據集提純的方法。

  恰好,周昀發在NeurIPS上的AgileEdge這篇論文裡就有一種數據蒸餾的方法,因為想要縮小模型,就等於縮小參數量,兩者之間其實有著異曲同工之妙。

  直接拿過來用肯定不行,不過周昀感覺只要稍作修改,應該能達到他想要的效果,因為當初設計這種數據蒸餾方法的時候,就已經著眼於「智能」二字。

  找到之前的論文代碼,周昀直接將那段封裝好的數據蒸餾方法copy過來,然後再根據現有的模型進行修改。

  因為代碼量不大,他就沒有用AI,而且AI也未必能準確理解他要怎麼改,不如自己動手。

  直到晚上快到六點,他才靠著椅子,伸了個懶腰。

  終於改完了。

  划動著滑鼠滾輪,看著已經成功運行的代碼,他心裡湧現出一股巨大的滿足感。

  這就是科研的爽感來源,當你解決了一個難題之後所帶來的快感,是其他任何事情都不能帶給你的。

  等了一會兒,直到確認第一個epoch順利開始後,周昀斷開了與伺服器的連接。

  他在伺服器上設置了幾組實驗,這次跑完估計得要兩周,不過他也可以趁著這段時間放鬆一下。

  如果順利的話,之前那件事情,也差不多該迎來一個結局了。

章節目錄