謝作如



摘要:數據、算法和算力組成了AI時代的三大技術基礎,而算力匱乏是當前中小學開展AI科創活動的主要困境之一。當真實問題涉及較復雜的AI算法和模型需要高算力支持時,購買算力服務是一種必然的選擇。本文以訓練一個音色轉換項目為例,介紹了購買算力服務訓練AI模型的真實經歷,以期在算力方面為中小學AI科創活動開展提出可行的解決方案。
關鍵詞:AI科創活動;算力購買
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2023)07-0091-03
背景:當算力成為AI科創活動的阻力
隨著AI學習的深入,科技制作社里有學生提出想研究音頻的音色轉換,并在GitHub上找到了一個叫做“so-vits-svc”的開源項目。這是一種讓聲音聽起來像指定人說出來的技術,原理是先把聲音轉換成聲譜圖,再通過深度神經網絡技術訓練出AI模型。利用訓練好的模型,可以制作虛擬主播、游戲音效、語音合成等。
和ChatGPT一樣,“so-vits-svc”也屬于AIGC的一種。喜歡“泡”在B站的青少年們對這種技術非常感興趣。遺憾的是,他們在研究這個項目時遇到了很多困難。雖然不斷見招拆招,一點一點解決環境搭建的問題,但最終在訓練模型時卡在了“算力”這一關。因為這個項目的訓練不支持CPU環境,沒有GPU環境就無法繼續前進。
分析:算力匱乏的解決方案
對于中小學的科創教師來說,盡最大能力滿足學生的學習需求是最核心的工作任務。考慮到算力匱乏問題具有普遍性,每一個開展AI教育的學校最終都會遇到,因此,筆者認真分析了算力匱乏的常見解決方案。
首先是配置算力設備。最常見的人工智能的算力設備是GPU(顯卡),即英偉達(NVIDIA)的顯卡。但是普通學校的辦公和機房電腦,一般都不會配置GPU,即使配置了GPU,搭建環境也不容易。
其次是購買算力服務器。有條件的學校會配置算力服務器,用于AI教學和科創。這些算力服務器會配置多款顯卡,然后通過容器(Docker)技術分配給多位用戶同時使用。但這些算力服務器分配的容器性能比較弱,配置的環境往往與與時俱進的開源項目不一致。
當算力不夠時,購買商業算力資源才是最好的解決方案,也是高校和科研機構的常見選擇。已經畢業的科技社學生在介紹他們的AI項目時,都會提到用某公司的服務器訓練。2021年我們也使用過華為ModelAtrs的算力服務。
實例:商業算力服務的使用
這一次,筆者選擇了北京超算中心,他們的算力服務分為兩種。第一種是集群資源,即云服務器。云服務器類似虛擬機,提供的是完整電腦,有系統盤、外接磁盤,可以隨時恢復系統,并且擁有外網IP。如果選擇的是Windows系統,可以直接用遠程桌面工具連接使用。Linux系統則通過SSH或者VNC服務。第二種是超算資源。類似大家共用一臺計算機,權限隔離,用SSH命令行加載虛擬環境后,通過提交作業的方式訓練模型。當然,如果對SSH不熟悉,還可以選擇使用jupyter(如圖1),在網頁中使用Python代碼訓練模型。
至于訓練環境,可以自己安裝,也可以求助工程師,給出軟件清單即可。雖然看起來用SSH很復雜,但用pip命令安裝軟件本來就是基本能力,學生都能勝任。針對復雜的環境部署,超算中心也采用了多種方案,如在創建云服務器的時候,會先告知服務器的CUDA版本。超算資源中則內置很多個CUDA版本(從9.x到11.7),用戶使用“module load”命令選擇相應的環境,也非常方便。
筆者申請了兩種服務器,分別進行了測試。相對來說云服務器最簡單,有很多種算力資源可以選擇。不同的算力資源對應不同版本的CUDA。筆者選擇了“Tesla顯卡V100-32G”(如上頁圖2),從配置環境到訓練模型花了5個小時,花費很低,而購買這一款顯卡則需要幾萬元。
在“so-vits-svc”項目的模型訓練結束后,筆者將模型轉換為ONNX格式,發現可以順利部署在本地的普通電腦里。學生們則認為應該將模型部署在行空板上做一個有趣的變聲器,于是開始了新的研究。
反思:如何讓算力的使用更加便捷
回顧這個項目的訓練過程,如果超算中心的服務器上已經部署好相應的環境,那么只需要2個小時就能完成訓練,需要的費用更少。而整個過程其實并沒有很高的技術門檻,基本借助了Anaconda的conda命令來完成。但是對中小學而言,Anaconda也好,SSH也好,都是師生們不太熟悉的技術領域。可見,要讓普通中小學生也能用購買算力的方式訓練AI模型,提供算力服務的企業還需要在以下兩個方面繼續努力。
1.技術門檻需要繼續降低
重點做好Windows系統的環境配置。例如,可以在云服務器中的桌面提供一個名為“環境配置”或者“XEdu”的快捷方式,雙擊即可進入虛擬環境。至于超算服務器也應該內置一個常用的AI環境,直接用“module load”命令載入即可使用。
2.內置中小學常見AI開發環境
在超算服務器中的“應用”列表中,筆者發現“Pytorch”“Keras”“AIphafold2”“MatLab”等環境都已經內置,但還缺少中小學最常見的XEdu或者MMEdu工具。經過與工程師溝通后,只要有足夠的用戶,他們也可以預裝好XEdu,做成一個虛擬環境(如圖3)。
當然,筆者認為中小學應倡導使用Linux機房。當編程語言從VB轉到Python之后,在Linux上學習編程的門檻沒有Windows高,何況即使在Windows下學習編程,也需要掌握conda、pip等常見命令。
小結:讓算力飛入尋常中小學校
筆者曾經在清華大學版信息科技教材的《云計算》章節寫了一段話:在云計算服務的支持下,算力將如同自來水、電力一樣成為公共資源。事實上,當前算力的使用依然存在技術門檻較高的問題。經過了解,北京超算中心的用戶基本上來自高??蒲袡C構,我們則是第一位中小學用戶,由此可見新一代人工智能在中小學教育中并沒有普遍開展。但是,如果沒有這種租借算力的經歷,學生又如何真正理解算力對人工智能的重要意義呢?
實際上,在中小學開展新一代人工智能教育,最重要的研究對象是數據,即根據要解決的問題,進行針對性的采集數據,再選擇開源的算法訓練模型,最終部署模型并設計多模態交互。新發布的《義務教育信息科技課程標準(2022年版)》和之前的《普通高中信息技術課程標準(2017年版)》都非常重視“數據”,為人工智能的學習打下了很好的基礎。因此,筆者希望提供算力服務的IT企業能看到中小學的需求,降低技術門檻,做到算力“擰開龍頭”就能用,讓算力匱乏不再成為AI科創活動普及的絆腳石。