Line將資料工程團隊分為4大角色、將ML工作流程分為6大環節,更定義出各自階段的關鍵開發任務,讓不同開發角色能根據自己的專業技能,在不同階段任務中協作開發AI。(圖片來源/Line臺灣)

近年來,Line積極轉型為一家AI企業,從自然語言處理、語音辨識、電腦視覺、OCR、臉部識別、影音處理、資料分析到語音合成,各種AI技術都要涉獵。打開Line應用程式,無論瀏覽Line Today、Line TV、Line Music或是Line購物的頁面,各種內容的個人化推薦,甚至是聊天訊息的事實查核機制,背後都是靠ML模型來支持運作。

隨著Line運用AI更深、更廣,更加依賴AI來提供各項服務,Line也摸索出一套更快落地AI的方法,循序漸進的實踐MLOps,從剛開始逐一導入輔助開發的工具,到進一步整合多項工具打造了ML平臺,Line一步步重構過去的AI開發流程,就是要讓Line集團的所有AI團隊成員,透過一套更緊密分工協作的開發流程,加速AI規模化落地。

Line如何設計ML平臺加強人員分工協作?

一開始實踐MLOps時,Line韓國總部發起了一個名為Jutopia的ML平臺開發專案,催生了Line當前AI開發的關鍵基礎架構──ML Universe(簡稱MLU)。Line臺灣AI團隊也跨國參與了這個專案,Line臺灣資料工程部資深經理蔡景祥直言,這套系統性AI開發與維運方法就是MLOps。

Line中國的一位負責Jutopia專案的團隊成員Changqin He,在去年底的Line開發者大會上首度公開了這項專案。他一開始就先提問:「資料科學家要透過什麼方式,向企業說明數據分析的結果?資料工程師要如何確保程式的可靠性,維持每小時運行不中斷?ML工程師又該如何保留ML開發過程的迭代,讓其他專案重複使用?」

Line中國負責Jutopia專案的團隊成員Changqin He表示,Line發起一項ML協作平臺專案命名為Jutopia,目標要建立起一套標準化的ML開發工作流,透過系統性的AI協同開發方法,讓AI各階段的開發更順暢。(圖片來源/Youtube)

這三個問題,正是Netflix在思考未來的資料分析工具應具備哪些功能時,預設涵蓋的三個面向,Netflix更以Jupyter Notebook,作為最可能實現上述三個場景的開發工具,決定在企業內深度導入使用。

Changqin He則是引用了這三個問題,點出AI協作的重要性,同樣以Jupyter Notebook為核心發起一項ML協作平臺專案,更取其字首命名為Jutopia,目標要建立起一套標準化的ML開發工作流,透過系統性的AI協同開發方法,拉近開發團隊成員間的距離,讓AI各階段的開發更順暢。

比如說,Line的資料科學家過去在實作一個ML專案時,需要花費許多時間在工程端的程式開發上,身為過來人的蔡景祥形容,開發AI得從頭到尾「手刻」一個ML開發流程,比如設定資料或模型的匯入匯出位置、系統間的串接,甚至是將模型打包成服務、部署上線等工作,全部都要包辦。雖然也能將這些工作交由工程端人員執行,但兩個角色之間也需要頻繁溝通,才能確保開發流程不出錯。

為了克服這個挑戰,Line打造了一個ML平臺(後來稱為MLU)。這個平臺最核心的功能,就將工程師各自打造的ML開發流程,轉變為更容易重複使用的標準化流程,讓工程師實作不同ML專案時,不用再花時間重新打造輪子。甚至,直接透過MLU平臺的編輯器功能,就能快速設定不同專案各自需要的ML流程配置,再由系統自動執行指令,來完成開發環境的配置。

不只如此,MLU平臺還整合了多項開發工具,讓使用者能在平臺上直接呼叫開發工具來使用,而不用擔心個別軟體的開發環境設定,透過各種開發工具在不同環節的應用,不僅能進一步提升AI開發效率,也能同時作為溝通憑藉,讓不同角色成員能更容易介入協作。

「我們希望讓寫模型的人專心寫模型,應用開發的人專心開發應用,不用再費心處理繁瑣的系統串接與維護工作。」蔡景祥表示,讓每個角色都能專注於自己的專業技能,來更有效率地進行AI開發,就是MLU平臺建立的初衷。

Line如何角色分工參與AI關鍵任務開發?

「在AI開發流程中,沒有人可以從頭到尾做完所有事情。」蔡景祥坦言,隨著AI團隊逐漸擴大,會逐漸分化出不同的開發角色,這些角色可能包括了負責特徵處理的資料工程師、負責模型開發的ML工程師、部署模型的IT維運人員,甚至不只是開發與維運端的人員,連商業面的資料分析師或產品經理,都需要在不同的開發階段,運用各自的專業來優化AI。

像是在Line資料工程團隊中,也分化出多元的角色來共同開發AI,分別是資料工程師、ML工程師、ML服務工程師,以及資料分析師4大角色。

若以打造遊樂園來比喻,蔡景祥指出,資料工程師的任務,就是打造遊樂園的基礎建設,透過建立起一個穩固的資料收集設施,來根據需求蒐集資料,需擅長如大數據架構、SQL、ETL、訊息佇列(Message queuing)等技術。

ML工程師,則像是遊樂園的設計師,負責選出適當的資料集與演算法,來建立起合適的ML模型,需具備的技能包括機器學習、深度學習、電腦視覺、NLP等。

ML服務工程師,則像是遊樂園基礎建設的實際施工與維護者,主要負責建立並維運一個ML平臺,需熟悉的技術包括系統基礎建設設計、DevOps。

資料分析師,則需比工程師具備更多的商業思維,要能夠利用統計的方法,來分析模型上線後的實際成效,類似於在遊樂園中觀察哪些設施需要改善的角色,因此需具備商業知識、熟悉統計及資料視覺化等技能。

除了分化出4大不同專業的AI開發角色,Line也將ML工作流程分為6大環節,分別是準備資料、探索資料、開發模型、訓練模型、測試模型與部署上線,蔡景祥也以Line臺灣實作AI的經驗,來說明不同角色如何在各個開發環節中進行協作。

首先,在準備資料的階段,由於領域知識扮演了重要角色,在資料標註的過程中,需要產品端、資料分析與資料工程專家相互協作,來篩選出有效的資料提供後續使用。

接著,進入探索資料階段,則會交由ML工程師,根據資料特性來發掘資料潛在的價值,並透過特徵工程萃取所需的資料特徵。

有了資料,就能進入模型開發的階段,此時,會需透過ML工程師、資料工程師及資料分析師的協作,選擇適當的演算法來開發模型,在這個階段中,演算法的挑選與模型的版本控制,成為協作過程中的重要的課題。

而後進入模型訓練的階段,則會交由ML工程師,負責進行超參數的調整與硬體運算資源的調度。

模型訓練完成後,將進入測試模型的環節,同樣交由ML工程師負責,來驗證模型是否確實有效、是否達到預期的效益。

若沒問題,就會進入最後的部署上線階段,需要ML工程師、ML服務工程師共同協作,來確保模型在實驗環境與線上環境中的表現並不會產生太大偏差,也不會隨著時間衰退,實際部署後也要能應付大流量的預測需求,才能有效擴大提供服務。

「MLOps是一個在ML全生命周期中,涉及到的所有人員共同協作的方法。」蔡景祥表示,該如何讓不同角色在ML開發各階段相互協作,就是Line的AI團隊,想用MLOps做到的事。

完整系列報導在這裡


熱門新聞

Advertisement