如何為機器學習進行資料標籤、版本控制和管理

Tolokadeveloper 發表於 2022-11-24
Machine Learning

一個豐富食物資料集的案例研究

介紹

幾個月前,託洛卡和ClearML公司一起建立了此聯合專案。 我們的目標是向其他機器學習的從業者展示從收集資料到將資料輸入機器學習模型之前,如何對其進行版本化和管理。

我們相信,遵循這些最佳實踐將幫助其他人構建更好、更強大的人工智慧解決方案。 如果您也對此好奇,請檢視我們共同建立的專案。

專案:食品資料集

我們能否豐富現有資料集並讓演算法學會識別新特徵?

我們在Kaggle上找到了以下資料集,並很快確定它非常適合我們的專案。 該資料集由使用MyFoodRepo收集的數千張不同型別的影像組成,並已在Creative Commons CC-BY-4.0 許可下發布。您可以在官方食品識別基準論文中檢視有關此資料的更多詳細資訊。

 

  如何為機器學習進行資料標籤、版本控制和管理

食品資料集預覽 — 作者的照片

我們注意到,食物可以分為兩大類:固體和飲料。

如何為機器學習進行資料標籤、版本控制和管理

食物型別示例:出售和液體 — 作者的照片

 

此外,我們注意到有些食物……比另一種更可口。

如何為機器學習進行資料標籤、版本控制和管理

食物型別的例子——作者的照片

 

那麼我們能否用這些額外的資訊來豐富這個資料集,然後制定一個能夠識別新特徵的演算法呢?

答案是肯定的,我們使用託洛卡和ClearML公司做到了。

 

——

 

如何註釋資料?

對於這一步,我們使用了託洛卡眾包平臺。 它是一種工具,您可以在其中建立註釋專案,然後將其分發給世界各地的遠端註釋者。

專案的第一步是建立介面和詳細說明。在這種情況下,我們想提出兩個問題:

  • 客觀問題:關於食物的型別,無論是固體還是液體?
  • 主觀問題:關於一個人是否覺得食物開胃?

我們使用瞭如下所示的介面:

如何為機器學習進行資料標籤、版本控制和管理介面 — 作者攝

 

此外,在說明中,我們已經明確說明了什麼是固體和液體食物,給出了例子,並提供了邊緣案例。

一旦指令和介面準備就緒,我們就必須為我們的專案邀請執行者。 託洛卡註釋器遍佈世界各地,因此我們必須仔細選擇能夠參與我們專案的人員。

 

如何為機器學習進行資料標籤、版本控制和管理

作者的照片

 

因為我們給出的說明是用英語寫的,所以我們決定只邀請說英語的人,並透過考試來測試他們對它們的理解程度。考試包括10個任務,我們在這些任務上測試了關於食物型別的第一個問題的答案。 我們有5種固體、4種液體和1個應標記為其他的邊緣案例。 我們要求考試成績達到100%才能進入註釋專案。

下圖顯示了參加考試的人給出的答案分佈。

 

如何為機器學習進行資料標籤、版本控制和管理

作者的照片

 

如果您仔細檢視最後一個條目,您會注意到它的正確響應百分比相對較低,僅為 49%,而其餘部分則高於90%。這是我們用來捕捉不注意閱讀說明的執行者

的邊緣案例。 最後一張圖片由各種型別的食物組成,包括液體和固體,因此它應該被標記為“其他”。

 

如何為機器學習進行資料標籤、版本控制和管理

作者的照片

 

幸運的是,我們過濾掉了回答錯誤的人。

我們為控制註釋質量而實施的下一個措施是:

  • 快速響應規則
  • 重疊
  • 和控制任務

當使用者對給定任務的響應過快時,使用快速響應規則。這意味著他甚至沒有時間正確地檢視和檢查任務,而且他不太可能得到正確的回應。

另一方面,重疊讓我們對響應更有信心,因為每個任務都分配給幾個註釋者,並且他們的工作可以聚合。在這種情況下,我們使用了三個重疊。

我們還在正常任務之間分配了控制任務。這意味著對於給註釋者的每九個任務,將有一個控制任務檢查他給出的響應是否正確。如果註釋者對控制任務給出了不正確的響應,他就會被從專案中刪除。

作為此註釋的結果,我們使用三個獨特的註釋器對 980 張圖片進行了註釋。收集結果大約需要 30 分鐘,花費6.54 美元。我們也有總共 105 人參與了這個專案。

 

 

如何為機器學習進行資料標籤、版本控制和管理

作者的照片

 

現在可以將結果傳遞給 ClearML 工具,這些工具將用於版本化和分析收集的資料。 如果您的專案需要其他型別的註釋,您可以在此處瀏覽不同的註釋演示。

 

資料管理

—— 

 

現在我們實際上已經建立了一個框架來獲取和註釋資料,我們可以直接使用它,或者更好的是,對它進行版本化,這樣我們就可以記住誰做了什麼以及什麼時候做的 :)

ClearML是一個開源MLOps 平臺,它提供了一個名為 ClearML Data 的資料管理工具,它與平臺的其餘部分無縫整合。

建立帶註釋的資料集後,我們只需將其註冊到ClearML中。

如何為機器學習進行資料標籤、版本控制和管理

作者的照片

 

在 ClearML 中註冊資料後,使用者就可以建立和檢視資料沿襲流程、新增資料預覽、後設資料甚至是標籤分佈等圖表! 這意味著所有資訊都封裝在一個實體中。

在我們的例子中,我們可以將資料集註釋成本儲存為後設資料。 我們還可以儲存其他註釋引數,例如指令、語言引數或其他任何東西! 並將其附加到資料集,以便我們稍後參考。

 

如何為機器學習進行資料標籤、版本控制和管理

作者的照片

 

如何為機器學習進行資料標籤、版本控制和管理

 作者的照片

 

現在跟蹤的資料是什麼?

 

好的,現在資料已被跟蹤和管理,但接下來您可能會問。

好吧,將其連線到 ClearML 實驗管理解決方案的強大功能來了!

只需一行程式碼,使用者就可以將資料集傳送到他們的目標機器,完全抽象出資料的實際儲存位置(在專用的ClearML 伺服器上,或者只是儲存在您最喜歡的雲提供商的儲存上)

 

如何為機器學習進行資料標籤、版本控制和管理

 作者的照片

 

ClearML Data 從儲存的任何地方為您獲取資料,並將其快取起來,因此連續執行不需要重新下載資料! 

連線到 ClearML 的實驗管理解決方案允許使用者享受它提供的所有功能,例如實驗比較,我們可以比較 2 個實驗,其中唯一的區別是註釋的成本,並實際瞭解為註釋支付更多費用對我們的模型有何影響!

 

如何為機器學習進行資料標籤、版本控制和管理

 作者的照片

 

而且由於我們將成本儲存為後設資料,如果我們使用託洛卡的 SDK 自動化註釋任務,我們實際上可以結合託洛卡和 ClearML 自動對註釋成本執行超引數最佳化,並計算出我們應該在註釋上真正投資多少!

 

——

使用超資料集提升您的資料管理水平

 

需要充分利用您的資料集管理工具嗎? 檢視超資料集! 

超資料集本質上將註釋和後設資料儲存在資料庫中,因此可以在訓練\測試時對其進行查詢!

使用者可以將資料查詢(稱為 DataViews)連線到實驗和版本! 使用 Datviews 可讓您在需要時輕鬆獲取資料集的特定子集(甚至多個資料集),這為資料管理提供了另一個級別的粒度。

如何為機器學習進行資料標籤、版本控制和管理

作者的照片

 

如果您需要更好的資料統計資料、更好地控制網路所饋送的資料以及處理資料的子集並希望避免資料重複(這既需要儲存又需要管理),DataViews 和 Hyper-Dataset 非常有用。

 

——

概括

 

在本文中,您學習瞭如何使用託洛卡和 ClearML 工具在食品資料集示例上構建您的 ML 資料工作流。如果您想檢視本部落格中列出的步驟所需的所有程式碼,請檢視我們準備的 colab筆記本

此外,我們以網路研討會的形式展示了我們的實驗結果,併為您儲存了錄音(託洛卡部分ClearML 部分)。

您覺得本指南對管理您自己的機器學習專案的資料有用嗎?如果您有任何反饋或想詢問有關此專案的問題,請在下方發表評論。