機器學習工程和MLOps的典範轉移

vgod's blog
Feb 26, 2023

--

我在五年前開始幫我們公司搭建一個機器學習平台,幫助ML工程師快速開發和部署模型。這整套流程「搜集資料 -> 特徵工程 -> 訓練模型 -> 最佳化參數 -> 部署模型」和相關的基礎建設被稱為MLOps,基本上矽谷每個有用到ML的中大型公司都有團隊在開發和維護這類的系統和工具。

雖然我自己平日工作不開發ML模型,但為了開發好用的工具和平台給ML工程師用,我一直很關注他們的需求和日常開發流程。從去年(2022)開始,我發現整個ML開發流程默默地開始進行「典範轉移」。傳統的開發流程逐漸變得不再適用於新的AI時代。

這個改變來自於科技巨頭們和Hugging Face (ML界的Github)上公開的「預訓練模型 」(pre-trained models)。這些模型是用大量公開資料訓練出來的模型,可以很好地處理各種基礎任務,像是語音辨識、翻譯、自然語言、視覺辨識等。像GPT-3這樣的大型語言模型 (LLM),一個就可以做到以往需要十幾個專用模型才能做的事。有了這些已經訓練好的模型,要開發ML應用,ML工程師可以直接跳過MLOps前面所有步驟,直接進入最後一步的「部署模型」。如果用外部API,甚至連部署和ML工程師都省了,找個後端工程師接上API就可以運作了。

在這個新世界,蒐集公司獨有的數據和訓練專用模型的重要性大大降低了。整個ML生命週期的重心從「訓練」轉往「推論」(inference)端。以往MLOps的系統有很大部份著重在大數據系統、自動化的流程和數據管線、訓練和最佳化模型的基礎建設,但現在回頭看這些系統的必要性已經開始動搖了。

有些企業還是會有客製化的需求,可能是內部獨有的資料想要讓模型學,或是要讓模型的輸出更符合自己想要的使用情境。但即使有這樣的需求,在新時代也不見得需要再從頭開始訓練模型了。像OpenAI提供了可以「微調」(fine tune) GPT-3的API。只要用這個微調API把企業自己的訓練資料餵進去,OpenAI就會幫你在GPT-3的基礎上再微調出一個量身定做的獨家GPT-3,可以回答企業想要的專屬問題。這樣的微調所需要的訓練資料不用很多,通常幾千筆就夠了,所以企業以前那些為了ML搞的大數據平台也可以丟了。

這個典範轉移已經快速的在發生,雖然AI應用會越來越多,但很多ML工程師開始不訓練模型了。MLOps也可能會慢慢消失,或是退化到只關注模型部署和上線後的系統。

這意味著,「機器學習工程」這件事的意義也會跟著發生改變。最直接的問題就是,「未來企業真的會需要更多的ML工程師嗎?」

我覺得未來AI/ML工程師需求會往兩極化發展。能開發新的ML演算法、大型基礎模型、還有相關基礎設施的人需求會增加,但只有大型科技公司或是專門做基礎模型的公司才會需要這些人。模型越大需要做的工程就越多,像GPT-3這種規模的模型早已不是一台電腦一個工程師花幾個小時就能訓練出來的。背後需要龐大的基礎設施,數百顆GPU花上數個月分散式訓練一個超大模型。訓練一次的費用是以百萬美金起跳。MLOps在這種公司會變成量身打造的大型系統,最佳化每一個環節,增進開發效率,盡可能降低開發成本。但對於一般的中小型公司而言,想要開發AI應用,從頭訓練自己的大型模型並沒有意義,不但花錢花時間而且得到的模型也不會比較好,不如專注於整理好自己的私有資料集後再去微調現有的模型。

另一方面,做應用的「AI工程師」會增加,但他們的工作跟傳統ML開發流程不會有太大關係。像GPT-3和Stable Diffusion這類的模型會變成新世界的「基礎模型」(foundation model),大量公司可以用「自然語言」跟模型溝通,在上面搭建各種應用。只要善用我另一篇文章說的「語境學習」能力,很多任務都可以靠給出特定的「提示」(prompt) 來解決。

即使想要用企業的內部資料,也只要把資料轉換和切割成能放進提示裡的大小,然後在提示裡叫LLM去「讀」這些資料再輸出想要的結果就可以了。Bing和ChatGPT的整合基本上就是這樣做的。先用傳統搜尋去找出N篇相關文章,然後丟進ChatGPT裡讓它讀,它就能以這些文章做為語境來回答問題。也因此,微軟並不需要每天把網路上所有的新文章都找出來不斷重新訓練ChatGPT。

這樣的「提示工程師」 (prompt engineer) 需要的技能是,知道怎麼下準確的提示 、把模糊的任務或需求拆解成LLM可以理解和逐步完成的指令。他們不需要訓練模型,甚至不需要懂程式語言,只要會用精準的人類語言跟模型溝通就行了。

當然,傳統ML不會那麼快就完全消失。還是有很多特定的問題(像是搜尋結果排序、推薦系統、數值預測)暫時還沒辦法用基礎模型來解決。但這兩年基礎模型的發展一日千里,其他類問題的通用基礎模型很可能也會在幾年內出現。況且,如果未來自然語言或對話式介面變成主流,誰還需要看一長串的搜尋結果或是像Netflix那樣的推薦清單呢?

--

--