本文來自格隆匯專欄:半導體行業觀察;作者:李飛
最近,以ChatGPT為首的生成類模型已經成為了人工智能的新熱點,硅谷的微軟、谷歌等都紛紛大舉投資此類技術(微軟100億美元入股ChatGPT背後的OpenAI,谷歌也於近日發佈了自研的BARD模型),而在中國以百度等為代表的互聯網科技公司也紛紛表示正在研發此類技術並且將於近期上線。
以ChatGPT為代表的生成類模型有一個共同的特點,就是使用了海量數據做預訓練,並且往往會搭配一個較為強大的語言模型。語言模型主要的功能是從海量的現有語料庫中進行學習,在經過學習之後可以理解用户的語言指令,或者更進一步根據用户的指令去生成相關的文字輸出。
生成類模型大致可以分成兩大類,一類是語言類生成模型,另一類是圖像類生成模型。語言類生成模型以ChatGPT為代表,如前所述其語言模型不僅可以學習理解用户指令的意義(例如,“寫一首詩,李白風格的”),而且在經過海量數據訓練之後,還能夠根據用户的指令生成相關的文字(在上例中就是寫一首李白風格的詩)。這意味着ChatGPT需要有一個足夠大的語言模型(Large Language Model,LLM)來理解用户的語言,並且能有高質量的語言輸出——例如該模型必須能理解如何生成詩歌,如何生成李白風格的詩歌等等。這也意味着語言類生成式人工智能中的大語言模型需要非常多的參數,才能完成這類複雜的學習並且記住如此多的信息。以ChatGPT為例,其參數量高達1750億(使用標準浮點數的話會佔用700GB的存儲空間),其語言模型之“大”可見一斑。
ChatGPT生成回答的一個例子,支持中文
另一類生成類模型是以擴散模型(Diffusion)為代表的圖像類生成模型,典型的模型包括來自OpenAI的Dalle,谷歌的ImaGen,以及目前最熱門的來自Runway AI的Stable Diffusion。這類圖像類生成模型同樣會使用一個語言模型來理解用户的語言指令,之後根據這個指令來生成高質量的圖像。與語言類生成模型不同的是,這裏使用到的語言模型主要用語理解用户輸入,而無需生成語言輸出,因此參數量可以小不少(在幾億數量級),而圖像的擴散模型的參數量相對而言也不大,總體而言參數量大約在幾十億數量級,但是其計算量並不小,因為生成的圖像或者視頻的分辨率可以很高。
生成類模型通過海量數據訓練,可以產生前所未有的高質量輸出,目前已經有了不少明確的應用市場,包括搜索、對話機器人、圖像生成和編輯等等,未來可望會得到更多的應用,這也對於相關的芯片提出了需求。
如前所述,以ChatGPT為代表生成類模型需要在海量的訓練數據中進行學習,才能實現高質量的生成輸出。為了支持高效率訓練和推理,生成類模型對於相關芯片也有自己的需求。
首先就是對於分佈式計算的需求。ChatGPT這類語言類生成模型的參數量高達千億,幾乎不可能使用單機訓練和推理,而必須大量使用分佈式計算。在進行分佈式計算時,對於機器之間的數據互聯帶寬,以及計算芯片對於這類分佈式計算(例如RDMA)就有了很大的需求,因為很多時候任務的瓶頸可能並不在計算,而是在數據互聯上面,尤其是在此類大規模分佈式計算中,芯片對於分佈式計算的高效率支持更加成為了關鍵。
其次是內存容量和帶寬。雖然對於語言類生成模型分佈式訓練和推理不可避免,但是每個芯片的本地內存和帶寬也將很大程度上決定單個芯片的執行效率(因為每個芯片的內存都被使用到了極限)。對於圖像類生成模型來説,可以把模型(20GB左右)都放在芯片的內存中,但是隨着未來圖像生成類模型的進一步演進,它對於內存的需求可能也會進一步提升。在這個角度來看,以HBM為代表的超高帶寬內存技術將會成為相關加速芯片的必然選擇,同時生成類模型也會加速HBM內存進一步增大容量和增大帶寬。除了HBM之外,CXL等新的存儲技術加上軟件的優化也有將在這類應用中增加本地存儲的容量和性能,估計會從生成類模型的崛起中獲得更多的工業界採用。
最後是計算,無論是語言類還是圖像類生成類模型的計算需求都很大,而圖像類生成模型隨着生成分辨率越來越高以及走向視頻應用,對於算力的需求可能會大大提升——目前的主流圖像生成模型的計算量在20 TFlops左右,而隨着走向高分辨率和圖像,100-1000 TFLOPS的算力需求很有可能會是標準。
綜上所述,我們認為生成類模型對於芯片的需求包括了分佈式計算,存儲以及計算,可謂是涉及了芯片設計的方方面面,而更重要的是如何把這些需求都以合理的方法結合到一起來確保某一個單獨的方面不會成為瓶頸,這也將會成為一個芯片設計系統工程的問題。
生成式模型對於芯片有了新的需求,對於GPU(以Nvidia和AMD為代表)和新AI芯片(以Habana,GraphCore為代表),誰更有機會能抓住這個新的需求和市場?
首先,從語言類生成模型來看,由於參數量巨大,需要很好的分佈式計算支持,因此目前在這類生態上已經有完整佈局的GPU廠商更有優勢。這是一個系統工程問題,需要完整的軟件和硬件解決方案,而在這個方面,Nvidia已經結合其GPU推出了Triton解決方案。Triton支持分佈式訓練和分佈式推理,可以把一個模型分成多個部分到不同的GPU上去處理,從而解決參數量過大一個GPU的主存無法容納的問題。未來無論是直接使用Triton,還是在Triton的基礎上做進一步開發,都是擁有完整生態的GPU更加方便一點。從計算上來看,由於語言類生成模型的主要計算就是矩陣計算,而矩陣計算本身就是GPU的強項,因此從這一點來看新的AI芯片相比GPU的優勢並不明顯。
從圖像類生成模型來看,這類模型的參數量雖然也很大但是比語言類生成模型要小一到兩個數量級,此外其計算中還是會大量用到卷積計算,因此在推理應用中,如果能做非常好的優化的話,AI芯片可能有一定機會。這裏的優化包括大量的片上存儲來容納參數和中間計算結果,對於卷積以及矩陣運算的高效支持等。
總體來説,目前這一代AI芯片在設計的時候主要針對的是更小的模型(參數量在億級別,計算量在1TOPS級別),而生成模型的需求相對而言還是比原來的設計目標要大不少。GPU在設計時以效率為代價換取了更高的靈活度,而AI芯片設計則是反其道而行之,追求目標應用的效率,因此我們認為在未來一兩年內,GPU仍將會在此類生成式模型加速中獨佔鰲頭,但是隨着生成式模型設計更加穩定,AI芯片設計有時間能追趕上生成式模型的迭代後,AI芯片有機會從效率的角度在生成式模型領域超越GPU。