數位無限用Kubernetes打造AI計算管理平台AI-Stack

AI-Stack機器學習平台

2019年10月人工智慧學校針對台灣產業AI化的現況做調查,有效問卷數1095份,由來自於516家不同企業的校友們所填答。在問到其公司推動人工智慧應用上,最大的挑戰是什麼?約有六成五認為「資料不足或資料品質不佳」為最大挑戰,第二名則有3個選項幾乎為平手,都有5成的認同度,分別為「領導階層認知不足」、「資訊基礎建設不足」與「人才招募困難」。在實際的AI專案工作情境中,上述挑戰是非常顯而易見的。現在,要進行需要大量運算的AI開發工作,大部分都需要GPU的支持才能夠加快速度與成效。然而,目前對產業而言,在使用GPU時,若沒有管理軟體的協助,其實不僅投入成本高、非常昂貴,且往往事倍功半。

數位無限公司發現,AI工程師在使用GPU伺服器進行AI運算時,經常性的會發生GPU資源無法隔離、資源互相占用、資源額度不足,以及資源使用效率低落或難以管理等問題。對剛開始做AI專案的工程師而言,還需另外學習docker操作指令以及自行管理軟硬體環境的情況,倘若底層架構權限暴露在外,當有一個人下錯指令,就會導致全機無法使用。現行的GPU伺服器在沒有管理平台支援的情況下,無身分認證的機制,所以若有濫用占用的情形是無法追查的,只能等待資源被釋放。而在開發過程中,AI工程師通常是各做各的AI應用框架,所以每個人都要重複下載安裝,其實無形中浪費了很多時間以及資源。

在一般情況下,AI專家並不熟悉GPU虛擬化技術、儲存裝置、網路系統等架構層相關配置,這些資源都是由IT部門在管理的,但對這些IT人員來說,他們的痛點也很多。一來,使用者需求繁複,使得管理雜亂無章,很多時候,需求又急又趕,時常打亂工作排程。而當主管關切資源使用狀況時,由於沒有管理軟體可以監控GPU伺服器的使用情形,因此彙整資料很不容易,對資源掌握度差,是誰在用、用多久、剩餘資源等資訊皆不透明。若要協助AI工程師完成他們所需要的環境,還需具備docker與kubernetes架構經驗,這又是傳統IT人員所沒有的技能,因此,多數企業導入AI困難重重。

為了加速AI落地,減輕使用者進入門檻與降低管理者負擔,數位無限整合Kubernetes容器化技術基於自主研發專利Skyport技術開發了AI計算管理平台「AI-Stack」,可將單一GPU伺服器或伺服器叢集轉變為可控可管、可共享、可橫向擴容的機器學習運算環境資源池,為GPU運算資源帶來彈性、高效協作,與運作成本效益提升。

Kubernetes是Google開源的容器集群管理系統,也就是基於容器技術的一個PaaS平臺。2014年,Google首次對外宣布Kubernetes,隨後於2015年7月21日釋出Kubernetes v1.0,就在第一版釋出後,Google與Linux基金會合作成立了Cloud Native Computing Foundation(CNCF)開源社群,並將Kubernetes作為種子技術捐贈給CNCF。不僅如此,Google每年都投入大量工程師全職開發Kubernetes,因此Kubernetes目前有一統容器集群管理技術平臺的趨勢。Kubernetes亦被廣泛使用於諸多雲端產品中,例如Red Hat的OpenShift、CoreOS的Tectonic、IBM的IBM私有雲產品、精靈雲的EcOS以及VMware的PKS等。

AI-Stack產品中除整合Kubernetes(以下稱K8s)容器集群管理與部署機制外,更借重K8s的進階功能,提供AI使用者下列管理與實務的深化操作:

  1. 異質GPU管理
    AI-Stack可同時納管不同型號的GPU節點,例如同時管理AI教學常用的Nvidia P40卡片與深度學習專用的Nvidia V100卡片,使用者依不同需求在AI-Stack上選擇所需規格後,由K8s將不同需求的AI任務部署至對應的GPU節點上進行使用,便可同時滿足初階與進階AI人員使用情境。此外,也可依AI使用需求增加來擴充新的同質或異質GPU節點。
  2. 資源隊列
    當GPU資源不足時,K8s可將任務安排至隊列中等待建立,使用者便無須守在電腦前面等待或搶用資源,系統將自動於有GPU資源時依序執行。
  3. 指派優先任務
    >此功能係提高GPU資源調度效率,當所有GPU資源均滿載使用時,若有臨時性任務或是大型GPU運算需求須插隊使用時,K8s可將任務指派至特定節點,此插隊任務便具有該節點之最優先使用權,當節點上的GPU資源釋放後,插隊任務將成為第一順位建立之任務。
  4. 維護下線
    GPU節點要進行下線時,可由K8s停止部署新的GPU容器任務至該節點,故當節點上既有的容器與任務都陸續結束後,該GPU節點即可順利下線,不須為了維修而清除節點上正在運行的容器與任務而影響使用。
  5. 執行任務
    使用者可於AI-Stack輸入程式指令,例如執行NFS上的shell script進行AI模型訓練,K8s會自動建立容器並幫使用者執行
  6. IP白名單
    透過K8s為容器連線設定IP白名單,使用者便可針對各別容器設定連入IP白名單,僅有允許的IP可連入容器進行操作,提升連線與使用上的安全性避免資料外洩風險。
  7. NFS掛載
    透由K8s掛載Volume機制,AI-Stack可外接NFS server,方便使用者匯入與掛載AI訓練資料。並於頁面顯示掛載 NFS 伺服器的資訊及對應的容器內路徑,使用者可透過此位址存取檔案。
  8. 自動收回GPU資源
    AI-Stack透過K8s釋放與回收資源功能,提供平台管理者可於規定的使用時數完畢、特殊指定結束日期或是GPU使用率過低等情況,強制將GPU資源進行自動化回收機制,將收回的GPU資源讓給其他使用者進行運算,提高整體GPU資源的使用率與公平性。

而AI-Stack內含的多人共享GPU、自定義鏡像、身分登入驗證、多租戶架構、資源額度管理、定時排程、審核申請機制、儲值與錢包等功能,再搭配上述K8s的深化功能加乘效應,使數位無限的AI-Stack機器學習管理平台,將GPU資源叢集的供給方與AI開發需求方完美結合,賦予GPU管理最佳化資源分配效益。

AI-Stack已成功導入多所大專院校,包含成功大學、台北科技大學、義守大學、雲林科技大學、政治大學等,同時也有政府單位、公用事業、半導體廠商使用於智慧教育、智慧製造等情境。今年,亦將陸續有金融業及醫療業用戶採用,協助強化AI開發流程。未來,AI-Stack除了能夠管理地端GPU資源,還可協助客戶在有高算力需求時,提供基於「本地+公有」混合雲環境部署。

Infinities
Infinities

數位無限軟體(InfinitiesSoft)專注於為企業解決虛擬化、容器化、微服務、邊緣運算、混合雲管理、異質IT環境與人工智慧帶來的挑戰,整合異質雲管與熱門的開源AI深度學習架構和開發工具環境,提供一站購足的AI機器學習雲平台方案AI-Stack。

相關文章
相關關鍵字