成熟機器學習系統持續改進面臨的問題 - danshiebler

banq發表於2021-11-10

任何在大公司建立機器學習模型的人都會認識到。對成熟的機器學習系統進行可衡量的改進是極其困難的:
機器學習系統極其複雜,並且具有破壞軟體元件之間抽象的令人沮喪的能力。這對 ML 成功必不可少的迭代開發型別提出了廣泛的挑戰。
 
大多數軟體系統會仔細控制哪些層需要相互通訊以及需要沿每個層邊界公開哪些資料。對於一個新的機器學習系統來說,需要打破現有的抽象並連線被設計為獨立的層是很常見的。
例如:
  • 新的特徵標準化策略可能需要將原始資料暴露給旨在使用處理過的資料的系統部分。
  • 將前饋神經網路遷移到圖神經網路可能需要在推理時訪問節點鄰居的特徵。
  • 調整模型以使用另一個模型的預測作為特徵可能需要將模型配置為按順序執行而不是並行執行。

  
我們有標籤的樣本分佈與我們必須執行推理的樣本分佈相同是非常罕見的。例如:
  • 點選率 (CTR) 預測模型不會收到使用者未看到的樣本標籤。
  • 大多數內容稽核系統只收到關於一個很小的、通常不具有代表性的資料子集的反饋。
  • 大多數感測器分析演算法都建立在具有不切實際的低噪聲水平的標記資料集之上。

 
在許多情況下,我們的模型接收到的標記資料取決於它生成的預測。這種情況的一些經典示例包括:
  • 大多數推薦系統不會收到有關使用者未看到的任何樣本的使用者反饋。
  • 有效檢測和懲罰使用者某些行為的系統可能會導致使用者修改他們的行為以避免懲罰。
  • 如果內容稽核系統是根據使用者報告進行訓練的,那麼隨著使用者報告率的降低,系統覆蓋率的增加可能會導致模型訓練資料的減少。

 
在生產機器學習系統中,看似獨立的元件通常表現出隱藏的緊密耦合。這會使實驗具有挑戰性。更改一個系統而不更改另一個系統會導致效能下降,同時更改兩個系統通常容易出錯且需要大量協調。一些例子包括:
  • 一旦開發了特徵管道並可供模型使用,對該管道的任何更改(甚至糾正錯誤!)都有可能損害使用該特徵的模型的效能。這迫使 ML 工程師對所有功能更改進行版本控制,從而導致功能管道極快地變成笨拙的怪物。
  • 在大規模推薦系統中,輕型機器學習模型或基於啟發式的候選生成系統通常會選擇重型機器學習模型從中選擇的候選集。對候選生成系統的任何更改都會影響饋送到重模型的樣本分佈,這可能會影響該模型的效能。
  • 某些模型(例如語義模型或​​物件檢測模型)生成其他模型用作特徵的訊號是很常見的。在這種情況下,對上游模型的任何更改或改進都可能損害消耗其預測的下游模型的效能。




 

相關文章