深圳疫情防控形勢(shì)seo技術(shù)培訓(xùn)寧波
作者:褚杏娟
上圖來源于基于函數(shù)計(jì)算部署 SD實(shí)現(xiàn)光影效果
前言:
Serverless 在中國發(fā)展這些年,經(jīng)歷了高潮、低谷、現(xiàn)在重新回到大眾視野。很多企業(yè)都非常感興趣,部分企業(yè)開始大規(guī)模應(yīng)用;也有一些企業(yè)對(duì)在生產(chǎn)環(huán)境真正落地躍躍欲試。
同時(shí),在當(dāng)下 AIGC 技術(shù)浪潮中,Serverless 如何與 AIGC 更好結(jié)合發(fā)揮更大的價(jià)值?
帶著這些問題,InfoQ 記者對(duì)話阿里云智能 Serverless 研發(fā)負(fù)責(zé)人楊皓然、高德服務(wù)端負(fù)責(zé)人孫蔚,一起探討 Serverless 和 AIGC 結(jié)合可以激發(fā)哪些想象力?
Serverless 新進(jìn)展
問題1:從去年強(qiáng)調(diào) Serverless 化至今,在這半年的時(shí)間里,阿里云在 Serverless 技術(shù)方面取得了哪些進(jìn)展?
楊皓然: 2022 年,阿里云在 Serverless 方面提出了非常明確的觀點(diǎn),認(rèn)為 Serverless 是云計(jì)算的下一個(gè)階段,阿里云致力于讓整個(gè)產(chǎn)品體系 Serverless 化。主要在以下幾個(gè)方向上持續(xù)發(fā)展:
第一個(gè)方向是產(chǎn)品體系的 Serverless 化。 2022 年,數(shù)據(jù)庫已經(jīng)全面采用了 Serverless 的形式,而今年更多的中間件服務(wù)也逐步 Serverless 化,包括傳統(tǒng)的微服務(wù)注冊(cè)中心和網(wǎng)關(guān)等,同時(shí)消息中間件也會(huì)提供 Serverless 的產(chǎn)品形態(tài)。
第二個(gè)方向是通過 Serverless 讓云服務(wù)能夠更細(xì)膩地集成,最終目標(biāo)是讓這些服務(wù)成為開發(fā)者構(gòu)建應(yīng)用的原子化、可組合組件,使開發(fā)者能夠使用即開即用的組件來快速構(gòu)建應(yīng)用。
第三個(gè)方向是繼續(xù)深耕 Serverless 計(jì)算平臺(tái)本身的技術(shù)能力。 這包括進(jìn)一步提升函數(shù)計(jì)算、Serverless 應(yīng)用引擎 SAE 的彈性速度,以及 GPU 的 Serverless 化進(jìn)展等。在容器的 Serverless 形態(tài)方面,阿里云推出了全新升級(jí)的容器服務(wù) Serverless 版,為開發(fā)者提供更豐富的選擇,從容器到應(yīng)用將得到全棧支持。
孫蔚: 從具體應(yīng)用 Serverless 的角度,我來補(bǔ)充下關(guān)注到的三個(gè)進(jìn)展。
第一方面,Serverless 的產(chǎn)品越來 越穩(wěn)定,而且支持以單元化的方式部署。 同時(shí),其可觀測(cè)性和性能等方面做得也非常好,觀測(cè)指標(biāo)豐富,可以直觀看出問題本質(zhì);性能方面,延時(shí)很低,對(duì)服務(wù)本身沒有影響,冷啟動(dòng)時(shí)間也在不斷優(yōu)化。根據(jù)我們的實(shí)測(cè),業(yè)務(wù)切換到 Serverless 確實(shí)會(huì)增加 TP99 RT(Response Time)時(shí)間,大約延遲 2 毫秒左右,穩(wěn)定性方面表現(xiàn)非常好。從交易切換到 Serverless 上的實(shí)踐結(jié)論得出,交易架構(gòu) Serverless 化是可行的。
第二方面,Serverless 生態(tài)工具、產(chǎn)品非常豐富, 如:支持工具流、集成工具等。開發(fā)者真正要做的是組裝式研發(fā):代碼和配置分離,選擇適用的工具流,采用 BFF(Backend For Frontend)模式,結(jié)合自己的 FaaS(Function as a Service)框架去開發(fā),這能夠極大地提升工作效率,降低開發(fā)成本。
第三方面,目前有很多產(chǎn)品支持 Serverless。 其中對(duì)高德吸引較大的是數(shù)據(jù)庫類 Serverless 產(chǎn)品。如果數(shù)據(jù)庫的全部功能都已經(jīng)實(shí)現(xiàn)了 Serverless,那么我們就可以實(shí)現(xiàn)從前端到后端再到數(shù)據(jù)庫的全面 Serverless 化,從而極大地降低成本,真正做到零運(yùn)維、按需付費(fèi)。
問題2:實(shí)踐中,還有哪些技術(shù)難點(diǎn)仍在攻堅(jiān)中?
孫蔚: Serverless 的開發(fā)存在許多技術(shù)難點(diǎn),而每家公司在這方面的探索都各不相同。每個(gè)公司都有自己的框架,需要將其與現(xiàn)有架構(gòu)相結(jié)合并進(jìn)行調(diào)用。這個(gè)過程中,確保自己的架構(gòu)能夠真正與 Serverless 產(chǎn)品緊密結(jié)合、提升效率的同時(shí)還要保證穩(wěn)定性,可能需要在運(yùn)行時(shí) Runtime 上或原有架構(gòu)上做一些改動(dòng)。
楊皓然: 我從平臺(tái)角度再補(bǔ)充下。剛才提到的冷啟動(dòng)或者延時(shí)方面,確實(shí)對(duì) Serverless 來說是一個(gè)比較大的挑戰(zhàn)。Serverless 的資源使用是動(dòng)態(tài)的,這給性能和延時(shí)穩(wěn)定性帶來了挑戰(zhàn)。解決這個(gè)問題也是今年阿里云要攻克的技術(shù)難點(diǎn)之一,即提供非常穩(wěn)定的 TP99 延時(shí)。 這需要對(duì)整個(gè)端對(duì)端鏈路的優(yōu)化,甚至軟硬結(jié)合的優(yōu)化,以盡可能地縮減整個(gè)鏈路的延時(shí)。另外,還需要深度優(yōu)化和整合整個(gè)系統(tǒng),包括操作系統(tǒng)和安全容器,以盡可能地讓實(shí)例應(yīng)用、實(shí)例函數(shù)的執(zhí)行以及算力保持穩(wěn)定。另外在 GPU 上面,新的 GPU 虛擬化技術(shù)和彈性技術(shù)也有很多技術(shù)需要攻關(guān)。
問題3: 在應(yīng)用方面,企業(yè)通常會(huì)遇到什么樣的問題?**
孫蔚: 每個(gè)企業(yè)在 Serverless 上的決策不同,面臨的問題也不同。我分享下高德開始接入的難題,就是解決“一套代碼解決多地運(yùn)行的問題”。核心來講就是 2 個(gè)詞:“提效、降本”。所以,高德在最開始就做了腳手架,后續(xù)也會(huì)對(duì)其開源。該腳手架的核心目標(biāo)是解決直接使用 Serverless 成本高的問題,讓業(yè)務(wù)只關(guān)心業(yè)務(wù)本身,無需管理底層運(yùn)行機(jī)制。借助這個(gè)腳手架,應(yīng)用可以更高效地開發(fā),同時(shí)在在函數(shù)里面也可以調(diào)用多個(gè)中間件或聚合服務(wù)。腳手架實(shí)現(xiàn) MQ、事件、編排等功能,目前也在支持“多云底座”。
楊皓然: 高德能夠一開始就在 Serverless 領(lǐng)域里投入并取得比較好的效果,我觀察有以下幾個(gè)原因:
首先它本身在整個(gè)服務(wù)端的架構(gòu)設(shè)計(jì),包括語言選擇等有長時(shí)間的積累。比如他們整個(gè)技術(shù)棧是用 Go,這跟 Serverless 的理念非常合拍;其次他們做了大量針對(duì)業(yè)務(wù)場(chǎng)景的定制化腳手架,促進(jìn) Serverless 研發(fā)提效。我們今天看到的一些 Serverless 落地,更多地是在 Golang、 Node.js、Python 等非常適配云原生理念的語言上,能夠獲得更多的好處。
阿里內(nèi)部研發(fā)配套的框架能力相對(duì)完整, 我們主要工作方向就是為公有云的客戶把配套的研發(fā)提效能力釋放出來,讓公有云客戶充分利用好云的能力。并且是以開源的方式,包括跟高德一起開放 runtime Golang 相關(guān)的工具。我們會(huì)以更開放的方式去打造針對(duì) Serverless 的研發(fā)效能服務(wù)。大家會(huì)在今年看到我們的一些結(jié)果,并且以開源開放的模式來運(yùn)營。
問題4:這些功能是不是 Knative 也可以實(shí)現(xiàn)?這樣其實(shí)背后也是想了解下廠商的產(chǎn)品和開源產(chǎn)品有什么區(qū)別?
楊皓然: 可以實(shí)現(xiàn)的。但本質(zhì)上說,當(dāng)討論 Serverless 平臺(tái)時(shí),開發(fā)者主要關(guān)注投入產(chǎn)出比。舉個(gè)例子,用戶有多種選擇,一種是基于 Knative+Java 體系,使用 Spring Boot、Spring Cloud 框架,并在 ECS 上運(yùn)行。在微服務(wù)場(chǎng)景下,這種生態(tài)環(huán)境非常完整,但資源使用缺乏彈性,與云相比降低成本難度較大。為了解決這個(gè)問題,可以采用容器化加上 HPA 模式的彈性伸縮。
整個(gè) Serverless 平臺(tái)可以大致分為兩個(gè)層次。第一個(gè)層次是計(jì)算層, 旨在實(shí)現(xiàn)實(shí)例的快速彈性伸縮,甚至支持 0~N 的彈性伸縮。在彈性伸縮的情況下,要保持 P99 延時(shí)的穩(wěn)定性,但這會(huì)帶來系統(tǒng)性挑戰(zhàn)。目前在開源體系中尚未有對(duì)應(yīng)的產(chǎn)品能夠解決這些挑戰(zhàn),但云平臺(tái)或云服務(wù)可以更好地解決,因?yàn)樗鼈兛梢赃M(jìn)行軟硬體系整合并投入更多資源進(jìn)行優(yōu)化。這樣的投入成本需要由較大的平臺(tái)來分?jǐn)?#xff0c;才能使整體投資回報(bào)率較為合算。
第二個(gè)層次是應(yīng)用層, 即與應(yīng)用的管理和研發(fā)效能服務(wù)配套的研發(fā)效能服務(wù)。這包括整合云服務(wù)和開源軟件,為開發(fā)者提供問題診斷測(cè)試、開發(fā)測(cè)試、問題診斷以及自動(dòng)化部署等全流程服務(wù)。這方面的優(yōu)化也需要投入大量精力進(jìn)行打磨。
在我看來,大家都有能力做好這些,關(guān)鍵在于解決問題是業(yè)務(wù)導(dǎo)向還是技術(shù)導(dǎo)向或平臺(tái)導(dǎo)向。如果以業(yè)務(wù)導(dǎo)向?yàn)槟繕?biāo),就需要考慮行動(dòng)的成本效益。我個(gè)人非??春?Serverless,如果能夠?qū)⒀邪l(fā)提效和降本的價(jià)值更好的傳達(dá)給企業(yè)和開發(fā)者,它必定會(huì)變得非常流行,因?yàn)檫@符合業(yè)務(wù)導(dǎo)向公司的本質(zhì)需求。
問題5:在國內(nèi) Serverless 落地處在哪一個(gè)階段?
楊皓然: 根據(jù)我的觀察,很多頭部公司面臨著高速變化和高速增長的業(yè)務(wù)需求。為了能夠快速支撐這些業(yè)務(wù)訴求,這些公司開始考慮采用 Serverless 架構(gòu)。然而,要讓 Serverless 架構(gòu)得以實(shí)際應(yīng)用,就需要相應(yīng)的配套研發(fā)效能服務(wù)以及平臺(tái)本身的性能和穩(wěn)定性能力。這是 Serverless 落地的主要挑戰(zhàn)點(diǎn)。
另一個(gè)問題是關(guān)于 Serverless 如何落地,我認(rèn)為需要根據(jù)具體情況來考慮。對(duì)于類似 SAE(Serverless 應(yīng)用引擎,一款極簡易用的應(yīng)用托管產(chǎn)品)的產(chǎn)品,這類產(chǎn)品最主要的優(yōu)勢(shì)在于其彈性和差異化能力,如果能夠做好對(duì)存量應(yīng)用的兼容,那么用戶在選型時(shí)就不會(huì)遇到特別大的阻力。例如,它在降本提效方面給用戶帶來更多優(yōu)勢(shì)?如果能夠明確表現(xiàn)出這一點(diǎn),那么許多公司都會(huì)對(duì)這類產(chǎn)品產(chǎn)生興趣和需求。
目前,國內(nèi)的頭部公司實(shí)際上已經(jīng)在非常核心的鏈路上使用了 Serverless。然而,現(xiàn)在最主要的問題是如何將這些能力以開源開放的方式在公有云上釋放出來,使其成為一個(gè)普惠的能力,進(jìn)而讓更多公司受益于 Serverless 所帶來的成果。
孫蔚: 我補(bǔ)充兩個(gè)建議。對(duì)于前端業(yè)務(wù),理論上一般是用 Node.js 來進(jìn)行多端適配,解決前端研發(fā)提效的問題,即客戶的研發(fā)和產(chǎn)品開發(fā),再加上測(cè)試,就可以搞定端到端服務(wù)。
對(duì)于后端業(yè)務(wù),相對(duì)來說使用 Go 語言會(huì)比較好。相同環(huán)境和功能下,Java 的包會(huì)比較大,鏡像也比較大,啟動(dòng)時(shí)間比較長,而 Go 語言可以做到快速拉起,天生適合后端業(yè)務(wù)。當(dāng)然也可以考慮使用 Rust 語言,但 Rust 的門檻比較高,且對(duì)于前端來說,通常會(huì)使用 Node.js 作為 FaaS 的函數(shù)語言,后端則可以選擇 Go 語言。如果涉及到較多算法,可以考慮使用 Python 等。C++也可以是一個(gè)選擇,但主要問題仍然是成本較高,模板的成本也較高。不管如何,核心還是要讓開發(fā)變得更簡單。
以高德為例,前端主要使用 Node.js,后端在導(dǎo)航層面使用 C++,在功能層面使用 Go,而算法層面則部分使用 Python。這樣多種語言結(jié)合起來使用,能夠更好地滿足業(yè)務(wù)需求。
AIGC 帶來了哪些變化
問題6: AIGC 給我們兩位老師的日常工作帶來了哪些變化?高德和阿里云有做過哪些初步的嘗試嗎?
楊皓然: 我認(rèn)為 AIGC 對(duì)我們的工作有著巨大的影響,或者說在未來會(huì)有巨大的影響。作為一個(gè)主要從事服務(wù)方面工作的人,我們要解決云原生應(yīng)用的彈性、容錯(cuò)性和開發(fā)便捷性等問題。在 AIGC 的框架下,我相信未來 AI 能力將以 API 的形式釋放,并與業(yè)務(wù)緊密結(jié)合。 這需要我們將多變的業(yè)務(wù)與 AI 的能力有效結(jié)合起來,這也是我們一直關(guān)注的 Serverless 領(lǐng)域的一個(gè)重點(diǎn)。
另一方面,AI 不斷加強(qiáng)的一個(gè)體現(xiàn)就是代碼生成能力,我們要思考未來的應(yīng)用架構(gòu)如何更適配 AIGC 的能力和特點(diǎn)。比如,如果你有一個(gè)全功能的單體架構(gòu)應(yīng)用,那你是否能夠在這個(gè)單體架構(gòu)上借助 AIGC 的能力來增量開發(fā)功能?是否存在其他更好的架構(gòu)能夠充分利用 AIGC 的代碼生成能力,從而加速整個(gè)代碼開發(fā)和測(cè)試效率?
在未來,我認(rèn)為開發(fā)者或架構(gòu)師需要具備一個(gè)非常重要的能力,就是思考如何設(shè)計(jì)一個(gè)應(yīng)用架構(gòu),使其與 AI 的能力適配,并能夠更好地使用 AI 的能力。無論是從快速功能迭代、架構(gòu)彈性、穩(wěn)定性,還是從成本等角度考慮,這都是一個(gè)非常有意思且值得我們長期思考的問題。
孫蔚: 我關(guān)注的主要有兩個(gè)方面。
從業(yè)務(wù)和商業(yè)產(chǎn)品的角度來看,每家公司都有自己的專業(yè)領(lǐng)域知識(shí)。比如在營銷領(lǐng)域,你可能擁有很強(qiáng)的專業(yè)能力,并且所在公司也是一家營銷公司,你可能會(huì)思考如何將 AIGC 應(yīng)用到營銷領(lǐng)域中。當(dāng)然你可能會(huì)面臨一些挑戰(zhàn),例如如何利用開源工具構(gòu)建大型模型應(yīng)用、如何使用深度學(xué)習(xí)方法和多個(gè)圖像來訓(xùn)練模型、如何構(gòu)建向量數(shù)據(jù)庫,以及如何在業(yè)務(wù)場(chǎng)景下進(jìn)行調(diào)度和聚合等。這些涉及將序列化架構(gòu)的理念與 AIGC 基于 API 的服務(wù)架構(gòu)相結(jié)合,從而構(gòu)建整體應(yīng)用并向他人提供服務(wù)或 API。用戶可以根據(jù)業(yè)務(wù)領(lǐng)域的知識(shí)和積累,充分利用 AIGC 來優(yōu)化業(yè)務(wù)領(lǐng)域的產(chǎn)品設(shè)計(jì)。
綜上所述,我認(rèn)為有三個(gè)關(guān)鍵要素 : 首先是自身擁有非常專業(yè)的業(yè)務(wù)領(lǐng)域知識(shí),如:向量數(shù)據(jù)庫、Serverless 架構(gòu)等方面;其次是具備大模型的技術(shù)能力,可能需要算法方面的知識(shí);最后是 Serverless 架構(gòu)的銷售理念。將這三者結(jié)合起來,就可以打包輸出做商業(yè)變現(xiàn)。
Serverless+AIGC=?
問題7:業(yè)界有一種說法,Serverless 是 AIGC 的下一塊拼圖,為什么會(huì)這樣說?在兩位看來,與 AIGC 結(jié)合將會(huì)帶來哪些全新的想象?
孫蔚: AIGC 確實(shí)給各行業(yè)帶來了很多想象的空間,涵蓋了圖像處理、視頻剪輯、文字生成、廣告素材、Logo 設(shè)計(jì)、智能客服以及語音合成等方面。然而,目前存在的一個(gè)主要問題是,大多數(shù)廠商提供的大模型對(duì)外都是量化調(diào)用的,需要通過 API 接口調(diào)用,因廠商算力問題調(diào)用一次時(shí)間很長,還會(huì)受到調(diào)用次數(shù)限制。因此,我們目前仍處于探索階段。
但是,假設(shè)所有的大模型(無論是 GPT 系列還是其他開源模型)作為產(chǎn)品來進(jìn)行銷售和計(jì)費(fèi),可以按需付費(fèi),同時(shí)最大化解決算力問題。此外,還涉及到運(yùn)行隔離和大數(shù)據(jù)安全等問題。從這個(gè)角度來看,Serverless 可以被視為解決 AIGC 商業(yè)化問題的下一個(gè)拼圖。
我個(gè)人的判斷是,AIGC 存在這些問題最終都會(huì)得到被解決,許多與 AIGC 相關(guān)的產(chǎn)品就會(huì)去解決算力和調(diào)度等問題,推動(dòng) AIGC 相關(guān)產(chǎn)品的發(fā)展。如果這些產(chǎn)品能夠結(jié)合起來,對(duì)整個(gè)系統(tǒng)從工程到終端服務(wù)、數(shù)據(jù)庫、底層中間件以及 AI 和算力等層面進(jìn)行一體化的調(diào)用,那么整個(gè)系列將全部完整。
楊皓然: AI 與應(yīng)用架構(gòu)和服務(wù)集成的適配是一個(gè)重要問題。針對(duì) AIGC 應(yīng)用,可以從幾個(gè)方面進(jìn)行考慮。
首先,軟件架構(gòu)應(yīng)該適應(yīng) AI 的能力。 以前的"All in One"單體架構(gòu)可以充分利用 AIGC 的潛力,然而基于 AI 的應(yīng)用通常需要更松散耦合的微服務(wù)架構(gòu),以便實(shí)現(xiàn)每個(gè)功能或微服務(wù)的單一目標(biāo)和明確的輸入輸出。這種架構(gòu)可以提高代碼生成的精確度和效率,但也帶來了管理和調(diào)試挑戰(zhàn),這些其實(shí)正好就是 Serverless 架構(gòu)要解決的問題,我覺得這是他們很好的結(jié)合點(diǎn)。
其次,AIGC 在應(yīng)用的全流程中都發(fā)揮重要作用。 在開發(fā)階段,我們可以利用 AIGC 的代碼生成能力和輔助工具(如 GitHub Copilot)加快迭代速度。在部署階段,可以使用基礎(chǔ)設(shè)施即代碼(IaC)等自動(dòng)化工具快速部署不同的云服務(wù)或資源,滿足應(yīng)用的依賴關(guān)。此外,通過類似聲明式語言或 YAML 的定義,底層的 IaC 服務(wù)也可以自動(dòng)化地執(zhí)行這些能力,而不是手動(dòng)在控制臺(tái)上進(jìn)行操作。
那么,Serverless 怎么幫助 AIGC 更好地落地?我們可以從以下幾個(gè)方面展開。
首先,在業(yè)務(wù)邏輯與 AI 能力的結(jié)合方面,AI 應(yīng)用可以分為兩方面。 一方面,只有將 AI 的能力與業(yè)務(wù)邏輯結(jié)合,才能實(shí)現(xiàn)真正的業(yè)務(wù)價(jià)值。另一方面,AI 模型的能力通常是通過 API 暴露出來的,類似在線應(yīng)用將業(yè)務(wù)邏輯與 AI 的 API 能力組合起來后可以快速構(gòu)建應(yīng)用。這種情況下,建議采用類似微服務(wù)架構(gòu)的松耦合架構(gòu)和組裝式開發(fā)理念。
此外,AI 模型的托管和服務(wù)化也是重要的考慮因素。 將 AI 模型的能力轉(zhuǎn)化為 API 服務(wù)、提供灰度發(fā)布和回滾等功能,可以更高效地利用資源并降低復(fù)雜性。這種模式能夠讓更多的模型能力通過 API 方式提供。我相信 Serverless 能讓這個(gè)復(fù)雜度變得更低。有助于讓更多的模型能力通過 API 方式發(fā)揮出來。
最后,AIGC 中的模型迭代和版本化也很重要。 特別是對(duì)于大型公司來說,可能需要圍繞大型模型構(gòu)建數(shù)據(jù)庫和知識(shí)庫等周邊資源,并進(jìn)行數(shù)據(jù)清洗、提煉和模型微調(diào),最終將它們轉(zhuǎn)化為新的模型。這種以版本化方式進(jìn)行迭代并部署發(fā)布方式的實(shí)現(xiàn),需要大量的軟件工程能力。在這方面,開源軟件和云服務(wù)提供商都在努力增加自身能力,以便更好地整合 AIGC 的復(fù)雜流程和軟件棧、降低復(fù)雜度。這種集成對(duì)于 AIGC 來說是非常有價(jià)值的,也是 Serverless 能夠?yàn)?AIGC 提供價(jià)值的一個(gè)重要方面。
問題8:Serverless 是用于部署 AIGC 相關(guān)模型的嗎?
孫蔚: 有兩個(gè)角度可以考慮。首先,你可以將 AIGC 與 Serverless 結(jié)合。Serverless 可以解決前期服務(wù)的按需定制、計(jì)算資源保護(hù)等問題。在消耗大量計(jì)算資源、同時(shí)運(yùn)行多個(gè)計(jì)算任務(wù)導(dǎo)致內(nèi)存溢出等情況下,你可以在 Serverless 上進(jìn)行部署,并采取適當(dāng)?shù)恼{(diào)度。
另一方面,如果要解決相關(guān)模型的問題,需要考慮模型的數(shù)量以及在何處部署模型。在部署模型時(shí)可以使用 Serverless,這意味著當(dāng)你搭建自己的算法平臺(tái)時(shí),可以自行設(shè)計(jì)算法平臺(tái)。當(dāng)要部署多個(gè)模型或者拆分模型等時(shí),可以結(jié)合 Serverless 來提高性能并改善效能。無論是進(jìn)行訓(xùn)練還是自動(dòng)化都可用 Serverless。
總結(jié)來說,Serverless 可以用于外部,也可以應(yīng)用于內(nèi)部。 在外部使用時(shí),它更像是一個(gè)黑盒,你可以通過公開的信息進(jìn)行解釋。而在內(nèi)部使用時(shí),它主要用于提高算法模型的部署、自動(dòng)迭代訓(xùn)練,包括數(shù)據(jù)清洗等方面。內(nèi)部還是外部使用取決于個(gè)人選擇,因?yàn)?Serverless 本身是一種架構(gòu)理念,并沒有限定的使用范圍。
楊皓然: 從架構(gòu)理念的角度來看,我們可以更具體地討論 Serverless 平臺(tái)和計(jì)算服務(wù)是否適合托管模型。我認(rèn)為這取決于具體情況。通常情況下,Serverless 計(jì)算服務(wù)適合托管一部分模型,即那些能夠充分發(fā)揮服務(wù)彈性的模型。
然而,對(duì)于通義千問、ChatGPT 或開源版本等較大的模型來說,它們對(duì)計(jì)算資源的需求非常高。在這種情況下,我認(rèn)為這類模型可能不太適合在 Serverless 平臺(tái)上托管。是否托管最終還是取決于平臺(tái)本身的計(jì)算能力取向與限制。
問題9:AIGC 應(yīng)用有哪些特點(diǎn)?Serverless 如何幫助幫助開發(fā)者進(jìn)行 AIGC 應(yīng)用開發(fā)和部署?此外,Serverless+AIGC 還有哪些成熟的案例或者應(yīng)用場(chǎng)景?
楊皓然: 我覺得,AIGC 應(yīng)用與常見的在線應(yīng)用有許多相似之處。在許多情況下,它們?nèi)匀粫?huì)組合底層模型的 API 能力,以實(shí)現(xiàn)業(yè)務(wù)邏輯。然而,對(duì)于一類特殊的 AIGC 應(yīng)用,更適合采用異步自驅(qū)動(dòng)的架構(gòu),例如聊天機(jī)器人或者像 LangChain 這樣專門的開發(fā)框架。在 LangChain 框架中定義了許多類似代理(agent)的概念,這些代理與底層模型的 API 進(jìn)行交互,像一個(gè)大腦,但需要執(zhí)行許多實(shí)際操作。
這些實(shí)際操作是真正與實(shí)際業(yè)務(wù)需求和場(chǎng)景結(jié)合、解決實(shí)際問題的。 而這些操作實(shí)際上是具體的功能,是無狀態(tài)的,能完成簡單的操作,但非常靈活。在這種模式下,將它們部署在類似函數(shù)服務(wù)上是非常契合的。
因此,根據(jù)我們之前的觀察,AIGC 應(yīng)用的特點(diǎn)與 Serverless 架構(gòu)理念非常適配。Serverless 提供了一些開發(fā)工具,讓客戶將模型轉(zhuǎn)化為服務(wù)的能力更加簡單。通過 Serverless 平臺(tái),用戶可能不需要太多的開發(fā)背景,只需了解其中的一些細(xì)節(jié)就可以快速設(shè)置并使用。
我之前與一位客戶進(jìn)行過交流。他是一位設(shè)計(jì)師,有一定的代碼開發(fā)背景,但并不深入。他在 Serverless 平臺(tái)上能夠快速設(shè)置 Stable Diffusion 等開源模型,并最終實(shí)現(xiàn)業(yè)務(wù)效果。這是 Serverless 與 AIGC 應(yīng)用結(jié)合的實(shí)際案例。
我相信在未來,隨著以 LangChain 為代表的 AI 應(yīng)用框架的成熟,我們將看到許多類似的應(yīng)用將在 Serverless 平臺(tái)上運(yùn)行,這是最短的路徑。
孫蔚: AIGC 應(yīng)用的本質(zhì)是提高效率。無論是制作廣告素材、內(nèi)容、視頻或 Logo 等,AIGC 應(yīng)用都是利用現(xiàn)有工具提高效率來替代傳統(tǒng)的人力成本。此外,AIGC 應(yīng)用還可以用于數(shù)據(jù)處理,包括數(shù)據(jù)標(biāo)注和數(shù)據(jù)清洗等領(lǐng)域。使用 AIGC 可以實(shí)現(xiàn)提效的核心目標(biāo),一方面是智能提效,另一方面是功能提效。
然而,在部署 AIGC 時(shí),是否真正使用 Serverless 平臺(tái)主要取決于預(yù)測(cè)的場(chǎng)景,以及是基于開源還是自行開發(fā)的模型。對(duì)于基于開源的情況,需要考慮應(yīng)用中的挑戰(zhàn)點(diǎn);而對(duì)于自行開發(fā)的模型,需要根據(jù)消耗情況來使用 Serverless 進(jìn)行優(yōu)化和保護(hù)。
具體使用 Serverless 平臺(tái)部署 AIGC 應(yīng)用時(shí),還需綜合考慮使用場(chǎng)景和相關(guān)挑戰(zhàn),并根據(jù)預(yù)測(cè)場(chǎng)景進(jìn)行優(yōu)化。對(duì)于基于開源或自行開發(fā)的模型,可以通過 Serverless 平臺(tái)來優(yōu)化算力消耗,尤其是在模型加載和 AI 計(jì)算環(huán)節(jié)中消耗較大的情況,可以考慮使用 Serverless 架構(gòu)進(jìn)行重寫。同時(shí),引入其他向量并在訓(xùn)練值上構(gòu)建領(lǐng)域性的向量數(shù)據(jù)庫,也有助于進(jìn)一步優(yōu)化 AIGC 應(yīng)用。
通過將架構(gòu)拆分并使用 Serverless 平臺(tái)進(jìn)行開發(fā)和部署的優(yōu)化,用戶可以根據(jù)業(yè)務(wù)需求在內(nèi)核層面進(jìn)行適當(dāng)?shù)母倪M(jìn)。建議在使用 Serverless 打包時(shí),不僅將其視為黑盒進(jìn)行發(fā)布和部署,而是根據(jù)業(yè)務(wù)層面或內(nèi)核層面的需求進(jìn)行調(diào)整。
需要指出的是,目前尚沒有大規(guī)模應(yīng)用于線上的 AIGC 案例。 這些都還在探索階段。提出的這些想法是我們正在探索的一個(gè)方向,供大家參考。
問題10:在 AI 浪潮下,基礎(chǔ)云服務(wù)或者說 Serverless 服務(wù)怎么體現(xiàn)為其帶來的價(jià)值?
楊皓然: AIGC 應(yīng)用需要將 AI 能力與實(shí)際業(yè)務(wù)邏輯結(jié)合起來,基礎(chǔ)的云服務(wù)如數(shù)據(jù)庫、對(duì)象存儲(chǔ)和消息隊(duì)列等仍然是必需的,并且與底層的 AI 能力進(jìn)行交互通常需要使用 API。如果這些組合天然形成了一個(gè)業(yè)務(wù)邏輯與 AI 能力的整體,那么與云服務(wù)整體架構(gòu)緊密集成后,開發(fā)者能夠快速組合這些功能來構(gòu)建應(yīng)用,這是非常匹配的。
隨著云服務(wù)基礎(chǔ)架構(gòu)的 Serverless 化以及云產(chǎn)品整體架構(gòu)的緊密集成,這對(duì) AI 應(yīng)用的發(fā)展具有巨大的加速作用。AI 應(yīng)用可能并不僅限于傳統(tǒng)的在線應(yīng)用形式,還可以采用事件驅(qū)動(dòng)的架構(gòu)或像 LangChain 這樣的快速開發(fā)框架,實(shí)現(xiàn)交互式的 AI 能力應(yīng)用。
從邏輯上看,AIGC 應(yīng)用可以分為兩個(gè)部分:決策邏輯和執(zhí)行動(dòng)作。 決策邏輯涉及根據(jù)輸入進(jìn)行決策的 AI 能力,而執(zhí)行動(dòng)作涉及與第三方 API 的交互等碎片化的代碼、強(qiáng)調(diào)輕量和可靠地執(zhí)行。這種執(zhí)行功能非常適合在 Serverless 計(jì)算服務(wù)上運(yùn)行。
此外,剛剛還提到了如何根據(jù)業(yè)務(wù)場(chǎng)景對(duì) AI 模型進(jìn)行 Fine-tuning,甚至構(gòu)建專屬于企業(yè)的大型模型。這是一個(gè)復(fù)雜的流程,需要深入的技術(shù)棧和軟件棧。在這方面,需要集成許多開源軟件和云產(chǎn)品,使客戶能夠更快地設(shè)置整個(gè)流水線。問題診斷等能力也非常重要。因此,Serverless 服務(wù)的目標(biāo)是使云的整體產(chǎn)品體系相互集成和可組合。
通過工作流等工具,可以快速編排流水線,將大數(shù)據(jù)服務(wù)或 AI 服務(wù)等已有的服務(wù)通過事件驅(qū)動(dòng)的方式與用戶自己的業(yè)務(wù)邏輯和數(shù)據(jù)處理流程相結(jié)合。這樣,客戶可以根據(jù)自身企業(yè)的情況建立適配的學(xué)習(xí)流水線,這些能力將極大地幫助客戶。
問題11:阿里云的 Serverless 產(chǎn)品線有因?yàn)?AIGC 做一些相應(yīng)的調(diào)整嗎?
楊皓然: 在過去幾年的規(guī)劃和發(fā)展中,我們平臺(tái)注重適配各種功能,包括與流行的開源 AI 框架匹配。在整個(gè)平臺(tái)的發(fā)展方向上,我們注重與 AI 的發(fā)展相契合。從整個(gè)布局來看,我們?cè)趲啄昵熬烷_始布局 GPU 和 Serverless 等能力,并發(fā)布了相應(yīng)的產(chǎn)品,并持續(xù)進(jìn)行迭代和改進(jìn)。
孫蔚: 在我看來,Serverless 本質(zhì)上是一種架構(gòu)理念。在當(dāng)前的技術(shù)浪潮中,我認(rèn)為它有兩個(gè)重要的價(jià)值。
首先,AI 的痛點(diǎn)有很多,比如算力等問題,通過結(jié)合服務(wù)化的架構(gòu)理念,可以將 AI 產(chǎn)品進(jìn)行服務(wù)化,這確實(shí)能夠解決目前中心化的問題,并實(shí)現(xiàn)更多的 AI 產(chǎn)品商業(yè)化。
其次,如果 AI 支持商業(yè)化、整個(gè)業(yè)務(wù)也支持商業(yè)化,那么通過業(yè)務(wù)邏輯與 AIGC API 的結(jié)合上,再加上對(duì)整個(gè)算法的商業(yè)化支持,就能夠?qū)崿F(xiàn)從前到后的全方位支持,例如可以實(shí)現(xiàn)按需彈性擴(kuò)展、事件驅(qū)動(dòng)、流程編排等各種功能,這才是真正的實(shí)現(xiàn)。
舉例來說,對(duì)于一個(gè)創(chuàng)業(yè)公司來說,如果他們只懂前端、Python、PHP 或 Node.js,他們也可以使用 AIGC,還可以進(jìn)行工程開發(fā)、提供服務(wù)、設(shè)計(jì)界面等各種工作,幾乎可以做任何事情。實(shí)際上,Serverless 屏蔽了所有底層實(shí)現(xiàn)的細(xì)節(jié),從工程到算法到數(shù)據(jù)到服務(wù),極大地釋放了效率。 這樣,有人專注于底層開發(fā),其他人專注于工程開發(fā),我認(rèn)為這才是未來的終局。
問題12:底層技術(shù)演進(jìn)對(duì)大模型等最新 AI 趨勢(shì)會(huì)帶來哪些影響?
孫蔚: 根據(jù)我的觀察,主要有兩個(gè)方面的發(fā)展。
首先,我想先談?wù)勊懔Φ钠栈莼?/strong> 在未來兩到三年,算力將變得越來越普及。目前算力確實(shí)是一個(gè)問題。隨著技術(shù)的發(fā)展,算力將能夠真正解決大規(guī)模商業(yè) AI 的問題,并廣泛應(yīng)用于各行各業(yè),迎來一個(gè)普惠的時(shí)代。
其次,我想談?wù)劶夹g(shù)工程的發(fā)展, 這包括云原生應(yīng)用、服務(wù)化以及前面提到的云原生數(shù)據(jù)庫等。這些底層技術(shù)的發(fā)展將促進(jìn) AI 技術(shù)領(lǐng)域的進(jìn)步。從前到后,無論是算法的內(nèi)核、模型加載還是訓(xùn)練部分,它們都將采用公正的理念,即算法的融合,來推動(dòng)整個(gè) AIGC 或 AI 的功能化,使其更多地商用化。換言之,通過算力、AI、工程、業(yè)務(wù)、前端等的普及化,使研發(fā)變得更加簡單。
楊皓然: 我認(rèn)為底層技術(shù)的演進(jìn)對(duì)于大模型等最新 AI 趨勢(shì)會(huì)產(chǎn)生以下影響。
首先,涉及到大模型的生成和訓(xùn)練,與服務(wù)化、虛擬化關(guān)系不大。這些大模型的訓(xùn)練通常需要高性能計(jì)算集群,類似于高性能計(jì)算(HPC)的模式,對(duì)于網(wǎng)絡(luò)帶寬和計(jì)算效能的要求非常高。然而,一旦這些模型訓(xùn)練完成,如何通過 API 等方式發(fā)揮其能力,或者讓客戶能夠快速開發(fā)基于這些大型模型的 AI 應(yīng)用并實(shí)現(xiàn)業(yè)務(wù)價(jià)值,則與 Serverless 或云原生等相關(guān)技術(shù)密切相關(guān)。這與我們之前反復(fù)提到的內(nèi)容相關(guān),我就不再贅述了。
這里的重點(diǎn)在于,底層技術(shù)的演進(jìn)不僅涉及到大型模型的生成和訓(xùn)練,還包括如何將其能力通過服務(wù)化和云原生等技術(shù)應(yīng)用于實(shí)際業(yè)務(wù)中,以實(shí)現(xiàn)快速開發(fā)和兌現(xiàn)價(jià)值的目標(biāo)。
問題13:未來 3~5 年,高德對(duì)于 Serverless 還會(huì)有哪些技術(shù)改革和深入探索的地方??阿里云面對(duì) AIGC 的快速發(fā)展將如何布局?
楊皓然: 我理解阿里云的 AIGC 布局非常重要,因?yàn)?AI 和大型模型的能力對(duì)阿里云來說是核心戰(zhàn)略。 這涵蓋了從大型模型訓(xùn)練到以大型模型為核心構(gòu)建應(yīng)用的能力,都是阿里云非常重要的任務(wù)。我并不是該領(lǐng)域的專家,因此不會(huì)展開討論大型模型的訓(xùn)練,但我認(rèn)為阿里云將通過將 Serverless 與 AIGC 能力結(jié)合,實(shí)現(xiàn)圍繞大型模型能力快速構(gòu)建應(yīng)用的目標(biāo),這與我的工作相關(guān)。
在這種結(jié)合方式方面,我提到了幾個(gè)方向。首先,我們將推動(dòng)應(yīng)用開發(fā)架構(gòu)與 AI 能力的適配。 我們倡導(dǎo)打造一系列產(chǎn)品和研發(fā)效能工具,支持松耦合、精簡的代碼和應(yīng)用架構(gòu),使這些應(yīng)用能夠與 AIGC 能力完美適配。
其次,我們的研發(fā)效能工具將與 AIGC 能力結(jié)合, 使客戶更容易生成精準(zhǔn)的代碼,包括工作流程定義和云資源的基礎(chǔ)設(shè)施及代碼(IaC)定義,從而讓客戶能夠更快速地在整個(gè)應(yīng)用生命周期中享受 AIGC 帶來的效率提升。
第三,我們會(huì)在 Serverless GPU 方面持續(xù)投入研發(fā)。 然而,我們的目標(biāo)并不是托管大模型,而是讓更精簡的模型能夠適配 Serverless 平臺(tái)的特點(diǎn),并在該平臺(tái)上運(yùn)行。本質(zhì)目標(biāo)仍然是幫助用戶解決高成本的問題。
孫蔚: 高德目前主要在下面三個(gè)方面進(jìn)行探索。
第一,是高德的 Serverless 主要在事件驅(qū)動(dòng)、工作流方面進(jìn)行改進(jìn)和深入探索,實(shí)現(xiàn) Serverless 的極致彈性和無限擴(kuò)展,目的是降低成本和提高效率。 工作流方面,高德的目標(biāo)是實(shí)現(xiàn)代碼和配置的分離,并結(jié)合自己開發(fā)的業(yè)務(wù)流程引擎,使提升效率加倍。
這不僅僅是簡單的低代碼,還涉及流程編排和與業(yè)務(wù)的結(jié)合,與高德的特點(diǎn)密切相關(guān)。高德的特點(diǎn)在于擁有大量的流量,同時(shí)可以提供打車和加油等不同的交易服務(wù),這是一個(gè)跨多個(gè)應(yīng)用的領(lǐng)域。
第二,高德將繼續(xù)與行業(yè)結(jié)合, 在數(shù)據(jù)庫相關(guān)的 Serverless 產(chǎn)品以及向量數(shù)據(jù)庫等方面繼續(xù)探索。這些產(chǎn)品都具有一個(gè)特點(diǎn),即存算分離。通過存算分離可以充分利用 Serverless 來降低研發(fā)成本、極大地提升效率。
不過,可能需要根據(jù)開源工具進(jìn)行定制和 Serverless 攻關(guān)的處理。Serverless 不僅指使用各種云端工具,還與系列產(chǎn)品進(jìn)行探索結(jié)合,定制各種應(yīng)用和功能。關(guān)鍵目標(biāo)是極致地提升研發(fā)效率,降低成本,實(shí)現(xiàn)業(yè)務(wù)收益,實(shí)現(xiàn)商業(yè)目標(biāo)。
第三,我們將盡量屏蔽多種語言的差異,使知識(shí)具備多語言特性。 此外還有底層解耦,包括未來的云漂移,核心在于解除廠商鎖定。高德將努力參與開源,共建更好的運(yùn)行環(huán)境、回饋生態(tài)系統(tǒng),使大家能更好地接入這些技術(shù)。