機器學習管道

在實際工作環境機器學習中,目標不是建構和部署單一模型。目標是建構自動化管道,以便長期開發、測試及部署模型。原因何在?隨著世界不斷變化,資料轉移的趨勢會導致實際工作環境中的模型過時。模型通常需要以最新資料重新訓練,才能長期提供高品質的預測結果。換句話說,您會想用新模型取代過時的模型。

如果沒有管道,更換過時模型就會容易出錯。舉例來說,當模型開始提供品質不佳的預測時,他們需要手動收集及處理新資料、訓練新模型、驗證模型品質,最後部署該模型。機器學習管道將許多重複的程序自動化,讓模型的管理與維護更有效率,更可靠。

建構管道

機器學習管道歸納了建構及部署模型至明確定義工作的步驟。管道有以下兩種功能之一:傳送預測或更新模型。

提供預測

供應管道提供預測。這種模式會將您的模型公開 供使用者存取。例如,當使用者想要進行預測時 (明天的天氣如何,、前往機場需要幾分鐘的時間),或是推薦影片清單;服務管道會接收和處理使用者資料、進行預測,然後將資料傳送給使用者。

更新模型

模型在進入實際工作環境後,通常會立即過時。基本上,就是利用舊資訊進行預測。他們的訓練資料集擷取了一天前的世界狀態,在某些情況下,甚至可能只有一小時。不可避免地已經改變:使用者觀看了更多影片,且需要一份新的推薦內容清單;雨導致流量變慢,且使用者需要更新抵達時間的預估時間;這是一個很流行的趨勢,導致零售商要求某些商品的最新庫存預測。

一般而言,在實際工作環境的模型過時之前,團隊都能充分訓練新的模型。 在某些情況下,團隊會在持續的訓練和部署週期中訓練及部署新的模型。理想的情況下,在實際工作環境模型過時前訓練新模型應該就很順利。

下列管道會搭配運作來訓練新模型:

  • 資料管道:資料管道會處理使用者資料 以建立訓練和測試資料集
  • 訓練管線:訓練管線會使用資料管道中的 新的訓練資料集來訓練模型
  • 驗證管道:驗證管道會使用資料管道產生的測試資料集,將經過訓練的模型與實際工作環境模型進行比較,以驗證經過訓練的模型。

圖 4 說明瞭每個機器學習管道的輸入和輸出內容。

機器學習管線

顯示輸入內容和輸出內容的機器學習管道。供應管道會接收使用者輸入內容並進行預測。資料管道會處理應用程式資料記錄來建立訓練和測試資料集,訓練和驗證管道用來訓練及驗證新模型

圖 4 機器學習管線可將許多模型的開發及維護程序自動化每個管道都會顯示其輸入和輸出內容。

大致來說,以下是管道在實際工作環境中持續更新模型的方式:

  1. 首先,模型進入實際工作環境,且供應管道開始傳送預測。

  2. 資料管道會立即開始收集資料,以產生新的訓練和測試資料集。

  3. 依據時間表或觸發條件,訓練和驗證管道會使用資料管道產生的資料集訓練和驗證新模型。

  4. 當驗證管道確認新模型不低於實際工作環境模型時,就會部署新模型。

  5. 這個過程會不斷重複。

模型過時程度和訓練頻率

幾乎所有模型都過時。部分模型的過時速度比其他模型快。舉例來說,建議衣服的模型通常會過時,因為消費者的偏好對經常變動的喜好顯而易見。另一方面,用來識別花卉的模型永遠不會過時。花朵辨識的特性能保持穩定

大多數模型在進入實際工作環境後,就會立即開始過時。 建議您建立能反映資料的性質的訓練頻率。如果資料是動態的,請經常訓練。如果模型的動態程度較低,您可能 就不需要進行這類訓練

預先訓練模型,以免過時。早期訓練會提供緩衝區來解決潛在問題,例如資料或訓練管線失敗或模型品質不佳時。

建議的最佳做法是每天訓練及部署新的模型。就像有每日建構和發布程序的一般軟體專案一樣,訓練和驗證的機器學習管道通常每天執行時的效果最好。

提供管道

供應管道透過線上或離線的方式產生及提供預測。

  • 線上預測線上預測是即時進行,通常藉由傳送要求至線上伺服器並傳回預測結果。舉例來說,當使用者想要進行預測時,系統會將使用者資料傳送至模型,然後模型會傳回預測結果。例如,Gmail 會使用線上預測功能即時分類收到的郵件。

  • 離線預測:離線預測則已經過預先運算和快取。為提供預測,應用程式會在資料庫中尋找快取預測結果並傳回。例如,訂閱式服務可能會預測訂閱者的流失率。此模型會預測每個訂閱者流失的可能性,並快取該模型。當應用程式需要預測功能 (例如獎勵可能流失的使用者) 時,只會查詢預先運算的預測結果。

圖 5 顯示線上和離線預測的產生及交付方式。

線上和離線預測

預測可以即時傳送,或批次快取並快取,以便查詢。

圖 5:線上預測會即時提供預測。離線預測會在提供時快取及查詢。

預測後續處理

一般而言,預測結果會在傳送之前經過處理。舉例來說,預測結果可能會進行後續處理,移除惡意或偏誤的內容。分類結果可能會使用微調順序來重新排序結果,而不會顯示模型的原始輸出內容。例如,為了增強更有公信力的內容、呈現多元結果、降低特定結果的排名 (例如誘餌式點擊),或基於法律因素移除結果。

圖 6 顯示提供管道以及進行預測作業所涉及的一般工作。

後續處理預測

供應管道通常會進行後續處理預測。

圖 6:提供管道說明與提供預測相關的一般工作。

請注意,特徵工程步驟通常是在模型中建構,而非獨立的獨立程序。供應管道中的資料處理程式碼,通常與資料管道用於建立訓練和測試資料集的資料處理程式碼幾乎完全相同。

資產和中繼資料儲存空間

供應管道應整合存放區來記錄模型預測結果,並在可能的情況下使用真值。

記錄模型預測功能可讓您監控模型的品質。藉由匯總預測,您可以監控模型的一般品質,並判斷模型是否開始失去品質。一般來說,在實際工作環境模型的預測中,平均值應與訓練資料集的標籤相同。詳情請參閱預測偏誤一文。

擷取真值

在某些情況下,只有稍後才會提供真值。舉例來說,如果天氣應用程式預測未來六週的天氣,則

請盡可能讓使用者在應用程式中加入意見回饋機制,藉此回報真相。Gmail 會在使用者將郵件從收件匣移至垃圾郵件資料夾時,隱含擷取使用者的意見回饋。不過,只有在使用者正確分類郵件時,這種作法才有效。當使用者在收件匣中留下垃圾郵件 (因為他們知道這是垃圾郵件,卻從未開啟),訓練資料就會變得不準確。而系統會將這類郵件標示為「非垃圾郵件」,換句話說,「一律嘗試尋找擷取及記錄實際資料的方法」,但請留意意見回饋機制中可能存在的缺點。

圖 7 顯示已向使用者傳遞並記錄至存放區的預測結果。

記錄預測

供應管道應記錄預測結果,以監控模型過時程度。

圖 7. 記錄預測結果來監控模型品質。

資料管道

資料管道會根據應用程式資料產生訓練和測試資料集。訓練和驗證管道接著使用資料集訓練及驗證新的模型。

資料管道會建立訓練和測試資料集,其中的功能和標籤與最初用來訓練模型的特徵和標籤相同,但會有較新的資訊。舉例來說,地圖應用程式會根據數百萬名使用者最近的交通時間,以及其他相關資料 (例如天氣),產生訓練和測試資料集。

影片推薦應用程式會產生訓練和測試資料集,其中包括使用者在建議清單中點選的影片 (以及未點選的影片) 以及其他相關資料,例如觀看記錄。

圖 8 說明使用應用程式資料產生訓練和測試資料集的資料管道。

資料管道

資料管道會產生訓練和測試資料集。

圖 8. 資料管道會處理應用程式資料,為訓練和驗證管道建立資料集。

資料收集和處理

資料管道中收集和處理資料的工作,可能與「實驗階段」不同 (也就是您判斷解決方案是否可行):

  • 資料收集:在實驗期間,通常需要存取已儲存的資料來收集資料。至於資料管道,則可能需要探索及取得核准以存取串流記錄檔資料。

    如果您需要人工加上標籤的資料 (例如醫療圖片),也需要收集和更新資料的程序。如果您需要為資料加上標籤,請參閱 CrowdCompute 頁面。

  • 資料處理:在實驗期間,適當的功能來自擷取、彙整和取樣實驗資料集。對於資料管道,產生相同特徵可能需要完全不同的程序。不過,請務必對特徵和標籤套用相同的數學運算,以複製實驗階段中的資料轉換作業。

資產和中繼資料儲存空間

您會需要儲存、版本管理,以及管理訓練和測試資料集的程序。受版本管控的存放區具備下列優點:

  • 可重現性:重新建立及標準化模型訓練環境,並比較不同模型的預測品質。

  • 法規遵循。遵循可稽核與資訊公開的法規遵循要求。

  • 保留。設定資料保留期間的資料保留時間。

  • 存取權管理:您可以透過精細的權限管理誰能存取資料。

  • 資料完整性:追蹤及瞭解資料集的長期變化,更輕鬆地診斷資料或模型的問題。

  • 曝光度:讓其他人更容易找到您的資料集和特徵。其他團隊則可判斷是否對他們的用途有所幫助。

記錄資料

優質的說明文件有助於其他人瞭解資料的重要資訊,例如類型、來源、大小和其他重要中繼資料。在大部分情況下,使用設計文件或 g3doc 記錄資料就已足夠。如果您計劃共用或發布資料,請使用資料資訊卡建構資訊。資料資訊卡可讓其他人更容易發掘及瞭解您的資料集。

訓練和驗證管道

訓練和驗證管道會產生新模型,用來取代實際工作環境模型,以免模型過時。不斷訓練及驗證新模型,可確保最佳模型隨時處於實際工作環境。

訓練管線會根據訓練資料集產生新模型,驗證管道則會使用測試資料集,比較新模型與實際工作環境中新模型的品質。

圖 9 說明使用訓練資料集來訓練新模型的訓練管線。

訓練管線

訓練管線會使用最新資料訓練新模型。

圖 9. 訓練管線會使用最近的訓練資料集訓練新模型。

模型訓練完畢後,驗證管道會使用測試資料集,比較實際工作環境模型與訓練後模型的品質。

一般而言,如果經過訓練的模型沒有明顯低於實際工作環境的模型,就會進入實際工作環境。如果訓練後的模型較差 監控基礎架構則應建立快訊經過訓練的模型若預測品質較差,可能表示資料或驗證管道存在潛在問題。這個方法可以確保以最新資料訓練的最佳模型,隨時處於實際工作環境。

資產和中繼資料儲存空間

模型及其中繼資料應儲存在版本化存放區中,以便整理及追蹤模型部署。模型存放區提供下列優點:

  • 追蹤與評估。追蹤實際工作環境中的模型,並瞭解模型的評估和預測品質指標。

  • 模型發布程序:輕鬆審查、核准、發布或復原模型。

  • 可重現性及偵錯。跨部署作業追蹤模型的資料集和依附元件,以重現模型結果,更有效地偵錯問題。

  • 曝光度:讓其他人可以輕鬆找到您的模型。其他團隊隨後即可判斷您的模型 (或模型的某些部分) 是否可將其用於相關用途。

圖 10 顯示了儲存在模型存放區中經過驗證的模型。

模型儲存空間

將模型儲存在版本化存放區

圖 10. 經過驗證的模型會儲存在模型存放區中,以便追蹤及偵測。

使用模型卡來記錄及分享模型的重要資訊,例如用途、架構、硬體需求、評估指標等。

建立管道的挑戰

建構管道時,您可能會遇到下列挑戰:

  • 取得所需資料。資料存取權可能必須具備 所需的理由。舉例來說,您可能需要說明資料的用途,並釐清如何解決 PII 問題。建議您準備一個概念驗證,藉此展示模型如何藉由存取特定類型的資料,改善預測結果。

  • 取得合適的功能。在某些情況下,實驗階段中使用的功能無法透過即時資料使用。因此,進行實驗時,請嘗試確認您可以在實際工作環境中取得相同的功能。

  • 瞭解資料的收集和呈現方式。瞭解資料收集方式、收集者及收集方式 (以及其他問題) 可能相當耗時費力。請務必充分瞭解資料因此,請不要使用您不太有把握的資料來訓練可能會用於實際工作環境的模型。

  • 瞭解工作成果、成本和模型品質之間的優缺點。將新功能整合到資料管道時,可能要耗費許多心力。但額外功能可能只會略微改善模型品質。在其他情況下,新增功能可能很容易。然而,取得及儲存功能的資源可能非常昂貴。

  • 取得運算。如果您需要使用 TPU 來重新訓練,可能無法取得所需的配額。此外,管理 TPU 也很複雜。舉例來說,模型或資料的某些部分可能需要將某些部分分成多個 TPU 晶片,藉此特別為 TPU 設計。

  • 尋找正確的黃金資料集。如果資料經常變更,要取得具有一致且準確標籤的黃金資料集並不容易。

可以在實驗期間找出上述問題,省下寶貴時間。舉例來說,您可能不要只為了瞭解在實際工作環境中無法用到的功能和模型,而開發出最佳功能和模型。因此,請盡早確認您的解決方案能夠在實際工作環境的限制範圍內運作。比起返回實驗階段,我們必須花時間驗證解決方案的運作情況,而非返回實驗階段,因為管道階段才發現無法解決的問題。