AI時(shí)代的技術(shù)棧,你了解幾分?
如今絕對(duì)已經(jīng)進(jìn)入到了AI時(shí)代了,或者更準(zhǔn)確說應(yīng)該是新AI時(shí)代,和上輪AI時(shí)代最大的不同的體現(xiàn)是從更多偏規(guī)則式的AI,進(jìn)入到基于模型訓(xùn)練讓AI自己總結(jié)提煉規(guī)則,從而真正智能化的新的AI時(shí)代,這個(gè)最好的體現(xiàn)其實(shí)是Tesla的自動(dòng)駕駛(不是告訴AI規(guī)則,而是由AI來學(xué)習(xí)大量真實(shí)的視頻,自己提煉出開車的規(guī)則),每當(dāng)進(jìn)入新的技術(shù)時(shí)代,那必然是要先掌握要把這個(gè)新的技術(shù)用起來,技術(shù)棧怎么搭起來的問題,這篇文章就來講講AI時(shí)代的技術(shù)棧。
在講AI時(shí)代的技術(shù)棧之前,先來回顧下當(dāng)前的兩個(gè)主要場(chǎng)景的技術(shù)棧,一個(gè)是在線型業(yè)務(wù)的技術(shù)棧,另一個(gè)是大數(shù)據(jù)場(chǎng)景的技術(shù)棧。
在線型業(yè)務(wù)的技術(shù)棧
在線型業(yè)務(wù)的技術(shù)棧通常是下面這樣的結(jié)構(gòu):
圖片
首先當(dāng)然是硬件,在線業(yè)務(wù)型的場(chǎng)景下,計(jì)算資源基本是CPU為主;存儲(chǔ)資源則各種類型都有,主要是IO吞吐、時(shí)延、安全性等各種考慮;網(wǎng)絡(luò)資源公網(wǎng)、內(nèi)網(wǎng)類型,時(shí)延、吞吐考慮等。
在硬件之上,基本都會(huì)使用類似K8S,或商用VMWare之類,來更方便的使用硬件資源,這層軟件的核心一方面是抽象硬件資源,方便上層根據(jù)需求來使用硬件資源,以及同時(shí)根據(jù)需求來匹配找到合適的資源,例如最簡單的排他規(guī)則等等;另一方面則是充分的提升硬件資源的使用率,例如虛擬化技術(shù)、容器化技術(shù)的引入等。
再往上,通常就是根據(jù)業(yè)務(wù)系統(tǒng)的架構(gòu)、建設(shè)需求做的各種中間件的選型,這些中間件最重要的是為了降低業(yè)務(wù)系統(tǒng)的門檻,把一些通用的技術(shù)問題解決掉,例如數(shù)據(jù)庫解決OLTP類型的數(shù)據(jù)讀寫、Dubbo之類的服務(wù)框架解決跨系統(tǒng)間的同步通信、RocketMQ之類的消息中間件解決跨系統(tǒng)間的異步通信等。
在這些中間件之上,通常就是業(yè)務(wù)系統(tǒng)本身了,這個(gè)就完全要根據(jù)業(yè)務(wù)需求來做相應(yīng)的架構(gòu)設(shè)計(jì),并且通常都會(huì)需要跟隨業(yè)務(wù)的發(fā)展來不斷的迭代架構(gòu)(中臺(tái)其實(shí)也是一種架構(gòu)選擇,或者說其實(shí)是一種組織方式選擇,就不專門去寫了),例如常見的演進(jìn):從單體 --> 分布式 --> 異地多活,能看出的基本就是越來越復(fù)雜化,所以架構(gòu)師們?cè)谶@個(gè)地方其實(shí)要做好權(quán)衡,這是架構(gòu)師最難的地方,之前我在阿里的老同事,擔(dān)任過好幾家公司的CTO,現(xiàn)在在韓國電商Coupang任職副總裁的郭東白,寫了一本《架構(gòu)思維:從程序員到CTO》的書,值得看看,會(huì)很有幫助,我自己覺得作為程序員,無論未來想在技術(shù)領(lǐng)域深耕,還是想往管理方向走,架構(gòu)思維都是必須掌握的。
大數(shù)據(jù)場(chǎng)景的技術(shù)棧
大數(shù)據(jù)場(chǎng)景的技術(shù)棧通常是下面這樣的結(jié)構(gòu):
圖片
資源這種就不再重復(fù),和在線型類似,但也不同就是,所以到今天為止,仍然是以Yarn為主。
在計(jì)算引擎和相應(yīng)的數(shù)據(jù)庫側(cè),主要是取決于離線還是實(shí)時(shí),這個(gè)分別有不同的場(chǎng)景的訴求。
在那之上,大數(shù)據(jù)的場(chǎng)景比較特殊的一個(gè)地方是通常需要面向數(shù)據(jù)分析師等角色使用,這個(gè)需要一個(gè)工作平臺(tái),像阿里云的dataworks之類的。
再往上通常就是實(shí)際的基于各種數(shù)據(jù)場(chǎng)景實(shí)現(xiàn)的業(yè)務(wù),這層通常就會(huì)和在線業(yè)務(wù)的技術(shù)?;疽粯?。
AI時(shí)代的技術(shù)棧
看上面在線業(yè)務(wù)、大數(shù)據(jù)的技術(shù)棧,可以看到會(huì)有一些相同的地方,也會(huì)有很多不同的地方,這個(gè)就是之所以會(huì)誕生這么多技術(shù)類公司的原因,基本上不太可能一家通吃,因?yàn)槠鋵?shí)在不同的場(chǎng)景還是會(huì)有很大的差異性,而很難有公司有所有類型的人才積累,以及公司的戰(zhàn)略選擇上也會(huì)比較復(fù)雜,當(dāng)然,也是因?yàn)樵诓煌募夹g(shù)時(shí)代、場(chǎng)景,產(chǎn)生了不同的技術(shù)棧的訴求,才使得有了更多創(chuàng)新、創(chuàng)業(yè)的機(jī)會(huì),AI時(shí)代呢,尤其是現(xiàn)在的新的AI時(shí)代,計(jì)算資源從CPU走向了GPU,這個(gè)就產(chǎn)生了更多的新的機(jī)會(huì),AI時(shí)代,萬象更新,技術(shù)棧其實(shí)也同樣如此。
圖片
AI時(shí)代最大的變化當(dāng)然是計(jì)算資源從CPU走向了GPU為主,而就此英偉達(dá)也就一路飆升了,畢竟GPU的量的訴求是可以非常確定性的比CPU更大。
而在GPU資源之上,怎么管理好GPU卡,去調(diào)度好GPU的池子,做好GPU的虛擬化等,提升整個(gè)GPU池的效率,我們公司的Sky AIComputing就是來解決這個(gè)問題的,甚至我們還能利用多云的資源(等云資源在GPU的供應(yīng)進(jìn)入正常的狀況后這個(gè)會(huì)更有優(yōu)勢(shì))來更好的滿足AI不同的訴求,例如速度的訴求、成本的訴求。
在資源之上,也看到了在AI時(shí)代里,計(jì)算引擎、數(shù)據(jù)庫這些也都相應(yīng)的產(chǎn)生了變化,Ray、Milvus是現(xiàn)在這個(gè)場(chǎng)景里非常顯著的技術(shù)棧產(chǎn)品。
再往上,當(dāng)然就是至關(guān)重要的大模型,以及各種垂直行業(yè)的小模型,通用的大模型我覺得基本就是面向C端的,垂直行業(yè)的小模型是面向B端的。
類似大數(shù)據(jù)是非常依賴數(shù)據(jù)分析師的,AI非常依賴算法工程師,一個(gè)給算法工程師易用的工作平臺(tái)是很重要的,這個(gè)是MLOps這層要解決的核心問題。
再往上則是各種AI應(yīng)用,這個(gè)就基本再次回到在線業(yè)務(wù)的技術(shù)棧,當(dāng)然不太相同的是這些AI應(yīng)用可能更多的就是直接依賴下面模型的推理就可以了,其他的會(huì)簡單很多,但在C端場(chǎng)景該解決的用戶量的伸縮問題、穩(wěn)定性問題等,還是不變的。
可以看到的是,AI時(shí)代由于還在爆發(fā)的早期階段,技術(shù)棧的成熟度相比在線業(yè)務(wù)、大數(shù)據(jù)還是有明顯的差距的,但同時(shí)也是機(jī)會(huì),以及有各種的可能性。
最后,很想問個(gè)問題:
現(xiàn)在大家在實(shí)際的業(yè)務(wù)中準(zhǔn)備用AI來改造的主要是什么樣的場(chǎng)景呢?例如智能客服的升級(jí)、電商場(chǎng)景中商品圖片、文案、視頻等的智能化生產(chǎn)等?