LY Corporation Tech Blog

支持 LY Corporation 和 LY Corporation Group (LINE Plus, LINE Taiwan and LINE Vietnam) 服務,宣傳技術和開發文化。

From Classroom to Data Team: My Journey @ LINE

嗨大家,我是 Nina ,現在就讀於台灣大學電機研究所碩二,並在 LINE TECHFRESH 擔任 Data team 的 intern 。

什麼是Data Team?

今天我想跟大家分享一下,什麼是 Data Team ,以及我身為實習生在這裡做了些什麼事情。

我們先從什麼是 Data 開始討論。這張表是 Google 熱門搜尋自 2004 年以來的趨勢變化圖,四個顏色分別代表四個不同的關鍵字, Data Science, Machine Learning, Big Data 和 Data Analysis 。從 2004 年開始, Big Data 這個關鍵字越來越熱門。這是因為各大公司開始可以累積客戶的資料,隨著cloud serves的興起,這些公司關注的焦點逐漸從累積客戶資料變成是如何從這些資料中找出有用的資訊。這也是機器學習(Machine Learning)開始發展的時期,機器學習幫助我們從大量的資料中找出有用的資訊,如特定模式或潛在的趨勢。因此公司們開始需要更多的專業人才,發展出越來越多不同的詞彙,如"Data Science"、"Analysis"。在這樣的發展之下,公司們會需要更專業的人才,於是我們看到越來越多的職稱出現,例如現在會聽到的 Data Scientist, Machine learning engineer。

但是,一個 Machine Learning 專案並不能只靠一個 Machine Learning Engineer 職位來完成,讓我們從Data Team的組成來了解整個 Machine Learning 專案是如何進行的。

Data Team的組成

那麼一個 Data Team 團隊會是怎麼組成的?大家又扮演什麼樣的角色?

首先,先來說說 Data Team 的主要任務是什麼?在 LINE,我們 Data Team 主要的職責是利用 Machine learning 相關的技術來輔助各種 LINE family Service,包括 LINE Today、Shopping、Music、VOOM 以及廣告等等。其中會用到的技術有非常多種,跨足 NLP、CV、Recommendation 等各式各樣不同的領域,包含從基礎的資料科學和機器學習理論應用,到機器學習平台的開發。Data Dev 團隊致力將資料科學和機器學習的力量,應用到各種實際的場景和服務中。為了實現這些目標,我們的 Data 團隊中需要具備不同的技能和專業知識來協調運作。

接著我們來看看 Data team 是怎麼組成的,在 Data team 中,主要有四種角色,資料科學家(DS)、資料工程師(DE)、機器學習工程師(MLE)和資料分析師(DA)(在 LINE 與其他大公司中,團隊的配置並不一定會完全符合這個模式,這只是一個基本的例子。實際上,可能還會增加 Product Manager 等其他職務。)那這些角色分別在做什麼?參與哪個環節?他們彼此之間是如何分工合作?各自又需要具備什麼能力?讓我們再深入透過下面的介紹來了解。

ML服務的流程

我們先用在學校中常見的情況來說明,假設我們修了一堂課,其中一個作業會經過下面這五個階段:

  1. 理解問題:讀懂作業說明,了解明確的目標以及需要繳交的結果。通常在學校的作業中,我們通常會直接得到一個已經清理過的資料集,或是已經按照某種格式搜集好的資料。
  2. 資料分析:進行一些基本的資料分析,例如計算一些統計量,或者繪製圖表來理解資料的分布和趨勢。
  3. 模型建立:選擇一種或多種模型來對資料進行建模。我們通常會直接使用在課堂上學過的模型,並按照已知的步驟來訓練模型。
  4. 模型表現的評估:一旦我們建立了模型,我們就需要評估模型的性能。這可能包括計算一些評估指標,例如準確率(accuracy)、精確度(precision)、召回率(recall)等等。
  5. 報告撰寫:最後,我們需要將我們的過程和結果整理成報告來繳交出去。

然而,這個與實際的 Data team 的工作流程相比是相對簡單的。在實際的工作中,我們需要處理更多的問題,包括資料的收集和清理,特徵的選擇和提取,模型的優化和部署,以及模型的監控和調整。這些都需要資料團隊中的不同角色共同協作才能完成。

Data團隊中各種角色的技能

現在,讓我們來看看這張圖,它代表了Data團隊中可能需要的各種技能。

  1. 資料工程師(DE):主要負責資料管道(Data Pipelines)、資料庫(Databases)以及資料工具(Data Tools)。這些技能讓他們能夠有效地處理和管理大量的資料,並且能夠開發和維護用於處理資料的工具和系統。此外,資料工程師也需要具備一些部署技能,以確保資料和模型能夠順利地整合到生產環境中。
  2. 資料分析師(DA):他們的主要技能包括故事講述(Storytelling)、資料視覺化(Data Visualization)、業務分析(Business Insights)以及度量和報告(Metrics & Reporting)。這些技能讓他們能夠從資料中提取出有價值的資訊,並且能夠以易於理解的方式呈現這些結果。
  3. 資料科學家(DS):主要技能包括做實驗(Experimentation)、推論結果(Inference)以及統計和機器學習建立模型(Stats & ML Modeling)。這些技能讓他們能夠設計和執行實驗,以便從資料中學習和建立預測模型。
  4. 機器學習工程師(MLE):他們的技能主要集中在機器學習運營(ML Ops)和模型部署(Model Deployment),還要具備一定的統計和機器學習模型(Stats & ML Modeling)的技能。不過,這些角色的技能都是有重疊的,只是每個人在不同方面有更專業的知識,每個人有各自擅長的東西,也了解別人在做什麼,這樣才能創造出完美的合作。

什麼是ML Ops

接下來,我想再跟大家介紹一下,什麼是 ML Ops。大家可能都聽過 DevOps,那麼 ML Ops 又是什麼呢?ML Ops 其實就是Machine Learning + DevOps 的結合。DevOps(Development 和 Operations 的混成詞)是一種重視「軟體開發人員(Dev)」和「IT運維技術人員(Ops)」之間溝通合作的文化、運動或慣例。透過自動化「軟體交付」和「架構變更」的流程,使得構建、測試、發布軟體能夠更加地快捷、頻繁和可靠。

ML Ops 的主要目的就是如何用自動化的方式來整個 Machine learning service 的流程,讓這三件事情(model development, model testing, model deployment)的生命週期(lifecycle)合在一起。在這裡,ML engineer 扮演著關鍵的角色,在這三個部分都缺一不可。現在隨著機器學習的發展,這個需求越來越發展越來越蓬勃發展。職位需求呢也越來越多,那我覺得可以在這邊了解聽過什麼是 Machine learning engineer 跟 MLOps 是什麼是很不錯的事。

我的實習經驗

接下來讓我分享我身為實習生在 LINE 中的工作經驗。在這裡可以接觸到各式各樣的任務,而這裡的工作環境非常自由。只需告訴主管想要參與的部分,他們都很樂意為你安排適合的任務。我自己就做過像是爬蟲和資料分析等任務,但這並不像在學校裡做的那樣。因為在公司,你需要與整個團隊一起運作,每個人可以接觸的資料和存取的權限都不同。你可能需要透過前期的資料整理,將需要的資料爬取出來或是下指令,將資料整理並存放在特定的地方,供需要的人取用。

我在公司的主要的時間,是做類似於資料分析和機器學習的工作。例如我們可能今天想要做一個自動貼標籤的系統,我們就會去尋找適合的模型來幫助我們完成這個任務。我們可能會去查閱相關的論文,看看其中是否有可以應用在我們的應用程式上的想法。在這過程中,你會遇到很多問題,例如你可能讀到的論文並不是針對貼標籤的問題,而是一個分類問題,這時你就需要思考如何將其轉換成貼標籤的問題。

除此之外,你還需要試著將這些模型實作出來,這是一個很辛苦,有時候甚至會讓你覺得痛苦的過程。還需要思考要用什麼 Metric 來評估我們的模型,這些都需要你持續不斷地去討論,並在取得共識後去實作。這是一個挑戰,但同時也帶很大的成就感,當發現自己的努力真的派上用場的時候,也會覺得非常開心。

在這裡,我們也會學到關於機器學習或是資料相關的專業知識,例如會了解到各種訓練模型是什麼,以及在這個領域中現在最新的方法是什麼。還會接觸到各種不同的領域,例如自然語言處理、電腦視覺或是一些聲音和訊號等等。

我們也會接觸到很多工具,這是在學校比較碰不到的。這些工具可以幫助我們更方便地進行開發或資料準備,以及與其他人合作和部署我們的服務等等。你會有機會瞭解到這些工具是如何在實際的公司環境中運用的,這是一個非常寶貴的學習機會。

除了專業知識和工具的學習,公司也會鼓勵大家參加許多其他方面的訓練,例如我們會舉辦工作坊、讀書會,一起研討一本書,並提供線上課程。此外,我們也會有實習生和同事間的交流活動。例如,我們曾舉辦過一個工作坊,讓我們向公司中的非資料相關人員介紹AI的知識。另外,我們也有實習生的畢業分享會,大家會分享這一年來的學習和收穫。這些都是非常好的學習機會。

結論

在工作之餘我們也享有一些小確幸。例如辦公空間非常舒適漂亮!有時候想不到idea,就可以散散心來放鬆。在飲食福利方面,LINE很照顧員工,每個月會提供零食和外送點數,讓人吃飽飽。而在技術方面,除了自己的工作內容,也常常有工作分享會、開發者聚會,讓我們可以與其他領域的人才交流。我們還有一些生活上的活動,例如走路大賽、認識新同事的活動,甚至是家庭日。這些活動都讓我們在繁忙的工作中獲得許多樂趣,非常推薦大家來這邊實習!

以上就是我在 TECHFRESH 的經驗,希望透過我的分享,能讓大家對於 Data Team 和實習有更深入的理解,並對於未來的規劃有所參考與啟發。若有什麼疑問或指正,都歡迎提出來討論~謝謝!