?

基于傳統機房構建AI 實驗平臺的實踐研究

2023-11-13 05:57陳春林曹旭斌
實驗科學與技術 2023年4期
關鍵詞:虛擬化容器調度

陳春林,曹旭斌

(1.西南財經大學 經濟管理實驗教學中心,成都 611130;2.西南財經大學 信息化與大數據管理中心,成都 611130)

1 數據科學和人工智能的教學趨勢和需求

兼具技術屬性和社會屬性并高度融合的人工智能技術,因其對整個社會經濟生活模式產生的重大需求變革,不僅在計算機科學與技術相關專業提出了新的學科建設方向,在各學科專業也都提出了“人工智能+X”的學科要求[1]。以筆者所在高校設置專業為例,開設了人工智能的機器學習類(含深度學習、強化學習)等必修課程的專業占全校2021 級本科專業總數近三分之一。

在人工智能滲透到各類學科教育的過程中,實踐必然成為教學中重要的一環。其教學要求理論與實踐并需且緊密結合:理論層次上,從交叉學科領域的基礎理論前沿研究中形成的邏輯和解決模式提出了解決某類問題的優化方法模型,選擇采用算法的類型、算法中超參數的調教設定等需要理論教學帶來認知;實踐層次上,則是將所涉及和選定的算法應用到實際問題的過程,實操、驗證和探索各類理論算法中條件限定、準確度以及性能要求。

融合學科的人工智能領域的教學依賴專業且易用的編程環境、高效且穩定的計算資源、安全且便捷的數據資源和可靠且靈活的教學模式。傳統計算機房能夠基于預裝好的操作系統和硬件提供有效但相對固化的實驗教學環境,以筆者所在學校為例,學校提供了50 臺配置有NVIDIA GPU的計算機在實驗室滿足日常教學課程。但傳統的計算機房的開放局限于教學課程安排和場地日常工作開放時間,而現場的開放也同時面臨著座位數量、課程間隔時間、班級隔離、設備維護等需求和影響,傳統計算機房很難做到全天候、無需教師看管的開放模式,實驗室的使用效率潛力依然有提升空間。

為構建滿足新時代背景下泛在學習的教育服務供給能力,本文將介紹一種有效的方法,在不改變原有計算機實驗室的使用模式和教學體驗的基礎上,進行基礎設施改造,將傳統機房的計算能力虛擬化,建立有效調度計算能力并即開即用的計算環境,通過Web 提供泛在人工智能實驗教學平臺服務,使教學雙方能夠使用移動終端。在改造后的實驗室中,無論是平板還是筆記本還是PC 甚至手機的瀏覽器均可利用平臺配備完善的環境進行相關算法的開發研究和應用實踐。

2 人工智能實驗教學平臺的架構設計

通過分析數據科學和人工智能的教學需求,根據現有硬件資源條件,需要實現對于基礎設施的計算能力、存儲能力的虛擬化調度改造,同時也需實現實驗教學環境的虛擬化,即提供可基于Web 訪問的實驗教學環境和管理平臺。

2.1 基礎設施服務

基礎設施服務能力包含計算和存儲服務的能力,同時還包括調度管理等服務的能力。

2.1.1 計算能力的調度

為實現虛擬化調度分布在實驗室50 臺終端的CPU、GPU 和內存的計算能力,我們采用容器虛擬化模式。計算機的虛擬化有全虛擬化、半虛擬化和容器虛擬化等技術,其中全虛擬化和半虛擬化以VMware vSphere、Microsoft Hyper-V 和Xen為代表,但其虛擬化界面和應用程序界面隔離并獨占使用,容器虛擬化適用于相同操作系統內核的應用程序部署。Docker 作為一種容器技術,性能損失小,用于創建、運行和管理容器。Kubernetes(簡稱K8s)是一個容器編排平臺,負責管理和調度容器化應用程序。這兩者相互配合,可以實現高度自動化、可擴展和易于維護的基礎設施服務。通過在傳統實驗室內終端上的Linux 系統建立容器服務,將容器服務集中以K8s 進行編排服務[2],因Docker 容器通過使用cgroups 技術大大降低了控制系統資源的粒度,從而大幅度地提高了對系統資源的利用率[3],其計算性能損耗可忽略不計[4],但同時又能夠滿足終端在日常教學實驗課程中的正常使用。容器以內核級的虛擬化實現了相比在終端上建立虛擬機來獲取GPU 的計算能力有著更高的性能和效率。為使容器能夠將獨享的GPU 分割為多個(在本實踐中為兩個)vGPU 以提供更多的GPU 實例[5],本文綜合對比了目前多種方案(如表1所示),選擇以TKE 方案為基礎進行鏡像生成和K8s 編排集成,實現了將原有50 張顯存為8 G 的GPU 卡分割為100 張顯存單位為最小的4 GB vGPU,使使用者數量擴展了一倍。

表1 vGPU 分割方案對比

2.1.2 存儲能力的調度

在存儲服務方面,為減少新的投入,采用現有的集中式存儲陣列。由于現有集中式存儲陣列采用SAN 存儲,而K8s 采用文件存儲,采用已經連接到SAN 存儲的存儲池中新建虛擬機,把集中式存儲陣列LUN 掛載給該主機,通過該主機將整個平臺所需至少4 T 容量的存儲需求以卷(volume)的形式作為K8s 的存儲層抽象。存儲服務提供3 個使用方向:K8s 中主節點運行所需的存儲;人工智能實驗教學平臺的使用者在利用平臺進行數據標注、數據和算法訓練時所需的數據存儲;保存平臺和使用者所需的Docker 鏡像的倉庫存儲。當存儲需求增加已有存儲無法滿足時,可通過擴展SAN 存儲的分配容量進行卷擴容,滿足新增需求。

為了便于平臺使用者能夠脫離平臺在本地系統中也能獲取數據,將容器所掛載的數據存儲與容器解耦部署,通過Docker 容器的定義聲明,將存儲資源掛載到容器中,并實現數據的讀寫和持久化。在掛載容器卷的同時,使用NFS[6]的模式將數據存儲開放給使用者,使用者僅需通過設定的賬號密碼即可獲取數據或共享數據給平臺其他用戶。由此,使用者在啟動容器服務時,可隨時進行數據的上傳、下載和共享。

2.1.3 資源服務能力的調度

在設計整體結構時,考慮到位于傳統實驗室的終端的開關機較為頻繁,環境并不滿足長時間開啟服務的條件。為解決實現K8s 的主機集群服務長期穩定,通過數據中心現有Vmare vsphere 資源池建立虛擬機提供K8s 的主服務節點,將傳統實驗室內的50 臺工作站終端作為計算節點加入。數據中心和傳統實驗室通過光纖實現千兆鏈接,并劃分為同一虛擬vlan。

資源服務能力的調度包含計算資源調度和物理資源調度兩部分。計算資源的調度以K8s 調度分布在實驗室的計算節點,通過容器實現算力資源輕量級虛擬化,快速完成計算所需資源的封裝與隔離;K8s 完成對容器集群的編排、調度、容器生命周期管理等。結合教學和科研需求,可以將分布在50 臺計算節點終端的計算資源根據需求進行CPU、內存和vGPU 的模式預置提供可選項,如“實驗教學A-1CPU 2 G 內存 4 G 顯存”和“實驗教學B-2CPU 8 G 內存 8 G 顯存”等,幫助使用者在應用分布式訓練時可以實現多節點多卡、單節點單多卡訓練[7]。物理資源調度根據日常教學計劃預先確認實驗室在日間的使用空閑時間,結合非授課時間和晚間及節假日,將實驗室可用于遠程教學、學生自主實驗和教師科研實驗可使用的時間段進行公告,提前根據需求利用傳統實驗室已有的教室管理系統進行遠程開關機和系統的切換,滿足物理資源的調度需求。

2.2 實驗教學環境的微服務化

圍繞機器學習和深度學習的教學科研需求特色,從數據處理、算法開發、訓練、模型泛化的實驗流程出發,抽象出人工智能學習的實驗教學平臺的模式。結合機器學習業務特點,封裝優化后的機器/深度學習框架和分布式訓練框架,如TensorFlow、PyTorch[8]、MXnet,和分布式機器學習框架Horovod 等到容器中。透過Jupyter 服務使上述的實驗流程通過Web 模式提供[9],針對一些常用的數據處理分析軟件,如MATLAB,進行容器化改造,通過VNC 界面提供[10]。同時,在集群管理的優勢下,可以通過網絡地址轉換(NAT)[11]的方式,將集群內的容器服務能力映射出,以保持平臺系統的開放性,支持SSH 和Tensorboard[12]。

在用戶授權上,使用校內現有身份認證系統進行用戶甄別準入,并在平臺系統內,根據學生和教師身份給予相應的資源使用權限。

3 人工智能實驗教學平臺的優勢

1)提升資源利用率?;诂F有傳統實驗室的計算終端改造,機器一體兩用,日常供正常教學實驗,空閑時間快速切換系統啟動容器服務,在10 分鐘內即可組建成人工智能實驗教學平臺提供算力支撐;同時通過按需分配、多任務隔離并行等功能,進一步提升資源利用率。

2)實現教學和科研效率提升。通過平臺實現秒級的預置環境創建,同時提供數據準備、算法模型構建、訓練調優、模型管理和部署應用等功能,實現機器學習生命周期流程管理。

3)工具服務化,形成全面的機器學習技術工具鏈服務于人工智能教學全生命周期。集成常用軟件如MATLAB 并能實現即開即用、按需使用的服務模式。通過K8s 的網絡發現服務開放并預留了標準API 擴展[13]接口,從而提升平臺的可用性。平臺集成TensorFlow、PyTorch、MXnet 等多個主流機器學習框架,也集成了Harbor 等容器倉庫框架,能夠在后期進行容器鏡像擴展。

4 結束語

本平臺的設計與實踐,是推進實驗教學智能發展的有益嘗試,在推動實驗教學變革,構建新技術賦能的教學環境,探索基于人工智能的新教學模式,重構教學流程方面做出了積極的探索。在重構教學流程的過程中,我們不僅致力于改進既有教學模式,同時也在尋求如何優化運行機制和服務模式。通過優化運行機制和服務模式,實現教學資源的按需定制,從而提升教學治理水平。此外,通過推動在線學習,發展以學習者為中心的學習平臺,提供按需定制的學習資源,創新服務供給模式,實現實驗教學的智能化。

在今后的平臺建設中,還有以下需要改進和考慮的內容。

1)進一步提升實驗教學的智能化。舉例來講,在當前使用Jupyter 服務實現人工智能全流程開發實驗教學的模式中,可以嵌入Jupyter 的相關教學管理插件,如Auto Grade 等,進一步提升實驗教學的智能化水平。

2)擴大平臺的教學適用性?;谌萜骰盏奶匦?,將多種類的實驗教學軟件進行容器化改造和測試,在資源存量允許的情況下,實現實驗教學軟件在本平臺上的Web 化訪問,提升實驗教學軟硬件的使用效率,方便廣大師生在教學科研中使用。

3)開源軟件的應用需要更多的投入。本人工智能實驗教學平臺從集群編排使用的K8s 軟件、計算終端使用的linux 操作系統、容器鏡像服務harbor 以及計算框架horovod、GPU 虛擬化分割vGPU 的TKE 方案、教學框架Jupyter 等,均為開源社區所提供,需更加重視安全性和日志代碼審查,及時更新漏洞,加強人員投入并反哺社區形成良性循環。

猜你喜歡
虛擬化容器調度
Different Containers不同的容器
《調度集中系統(CTC)/列車調度指揮系統(TDCS)維護手冊》正式出版
難以置信的事情
一種基于負載均衡的Kubernetes調度改進算法
虛擬機實時遷移調度算法
基于OpenStack虛擬化網絡管理平臺的設計與實現
對基于Docker的虛擬化技術的幾點探討
虛擬化技術在計算機技術創造中的應用
存儲虛擬化還有優勢嗎?
取米
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合