導(dǎo)讀:近期,一篇4萬(wàn)字的演講風(fēng)靡于國(guó)內(nèi)人工智能(AI)學(xué)術(shù)圈。原華為"天才少年"、Logenic AI公司聯(lián)合創(chuàng)始人李博杰博士,日前發(fā)表了一篇關(guān)于AI Ag...
近期,一篇4萬(wàn)字的演講風(fēng)靡于國(guó)內(nèi)人工智能(AI)學(xué)術(shù)圈。
原華為"天才少年"、Logenic AI公司聯(lián)合創(chuàng)始人李博杰博士,日前發(fā)表了一篇關(guān)于AI Agent思考的文章,題為"AI Agent 應(yīng)該更有趣還是更有用"。
李博杰在這篇文章中表示,AI 的發(fā)展目前有兩個(gè)方向,一個(gè)是有趣的 AI,也就是更像人的 AI;另外一個(gè)方向就是更有用的 AI,也就是更像工具的 AI。但目前的 AI 技術(shù),要么是只有趣但沒(méi)用,要么是只有用但是不像人,"不好玩"。
李博杰指出,通用人工智能(AGI)的目標(biāo)是,兼具慢思考和類人屬性的 AI Agent,然而當(dāng)前 AI Agent 和人類夢(mèng)想之間存在巨大的差距。
李博杰坦言,Video Diffusion 是一個(gè)更為終極的技術(shù)路線。盡管大模型的成本一定會(huì)快速降低,但他不建議貿(mào)然自己去做基礎(chǔ)模型。
"如果沒(méi)有拳打 OpenAI、腳踢 Anthropic 的實(shí)力,在效果上比不過(guò)最好的閉源模型,成本上也比不上開(kāi)源模型。"李博杰表示。
據(jù)悉,李博杰今年31歲 (1992年生),曾任華為2012實(shí)驗(yàn)室中央軟件研究所計(jì)算機(jī)網(wǎng)絡(luò)與協(xié)議實(shí)驗(yàn)室、分布式與并行軟件實(shí)驗(yàn)室助理科學(xué)家、副首席專家,并且以第一批"天才少年"的身份于2019年加入華為,職級(jí)P20 (技術(shù)專家A級(jí)別)。
早在2010年,他進(jìn)入中國(guó)科學(xué)技術(shù)大學(xué)少年班學(xué)院學(xué)習(xí)。在校期間,擔(dān)任中科大鏡像站USTC Mirrors的維護(hù)者。2014年,李博杰以聯(lián)合培養(yǎng)博士生的身份,加入中國(guó)科學(xué)技術(shù)大學(xué)與微軟亞洲研究院(MSRA)的聯(lián)合項(xiàng)目。
幾乎同時(shí),2019年,李博杰獲得中國(guó)科學(xué)技術(shù)大學(xué)與微軟亞洲研究院的合作培養(yǎng)博士生項(xiàng)目中取得計(jì)算機(jī)科學(xué)學(xué)位,導(dǎo)師為張霖濤教授和陳恩紅教授。
2023年7月,李博杰離開(kāi)華為后成立了Logenic AI,致力于成為人類的數(shù)字化延伸。憑借尖端的AIGC基礎(chǔ)設(shè)施,Logenic AI 能夠協(xié)作制作和服務(wù)多模式角色Agent,"元宇宙"、以及數(shù)字雙胞胎等角色。
李博杰表示,"我們都相信 AGI 肯定會(huì)到來(lái),唯一值得爭(zhēng)論的是到達(dá) AGI 的增長(zhǎng)曲線是怎樣的,是這一波自回歸模型隨著 scaling law,直接高速增長(zhǎng)到 AGI;還是這一波自回歸模型也會(huì)遇到瓶頸,AGI 還需要等待下一波技術(shù)革命。 10 年前 ResNet 掀起 CV 革命的時(shí)候,很多人都對(duì) AI 的發(fā)展預(yù)期過(guò)于樂(lè)觀。這一波 Transformer 會(huì)是通向 AGI 的坦途嗎?"
李博杰強(qiáng)調(diào),AI Agent 的創(chuàng)作者可以盈利。因此,好看的皮囊、有趣的靈魂、有用的 AI、低成本和去中心化,AI Agent 將推動(dòng)整個(gè) AI 領(lǐng)域持續(xù)創(chuàng)新和健康發(fā)展。
"我們相信,在人類世界的數(shù)字延伸中,有趣的靈魂終會(huì)相遇。"李博杰稱。
以下是李博杰演講內(nèi)容全文,共約 4 萬(wàn)字,Enjoy:
非常榮幸來(lái)到科大校友會(huì) AI 沙龍分享一些我對(duì) AI Agent 的思考。
我是 1000(2010 級(jí)理科實(shí)驗(yàn)班)的李博杰,2014-2019 年在中科大和微軟亞洲研究院讀聯(lián)合培養(yǎng)博士,2019-2023 年是華為首屆天才少年,如今我跟一批科大校友一起在做 AI Agent 領(lǐng)域的創(chuàng)業(yè)。
今天(去年12月)是湯曉鷗教授的頭七,因此我特別把今天的 PPT 調(diào)成了黑色背景,這也是我第一次用黑色背景的 PPT 做報(bào)告。我也希望,隨著 AI 技術(shù)的發(fā)展,未來(lái)每個(gè)人都可以有自己的數(shù)字分身,實(shí)現(xiàn)靈魂在數(shù)字世界中的永生,在這個(gè)世界里生命不再有限,也就不再有分離的悲傷。
AI:有趣和有用
AI 的發(fā)展目前一直有兩個(gè)方向,一個(gè)是有趣的 AI,也就是更像人的 AI;另外一個(gè)方向就是更有用的 AI,也就是更像工具的 AI。
AI 應(yīng)該更像人還是更像工具呢?其實(shí)是有很多爭(zhēng)議的。比如說(shuō) OpenAI 的 CEO Sam Altman 就說(shuō),AI 應(yīng)該是一個(gè)工具,它不應(yīng)該是一個(gè)生命。而很多科幻電影里的 AI 其實(shí)更像人,比如說(shuō) Her 里面的 Samantha,還有《流浪地球 2》里面的圖丫丫,黑鏡里面的 Ash,所以我們希望能把這些科幻中的場(chǎng)景帶到現(xiàn)實(shí)。只有少數(shù)科幻電影里面的 AI 是工具向的,比如《鋼鐵俠》里面的賈維斯。
除了有趣和有用這個(gè)水平方向的之外,還有另外一個(gè)上下的維度,就是快思考和慢思考。這是一個(gè)神經(jīng)科學(xué)的概念,出自一本書(shū)《思考,快與慢》,它里面就說(shuō)人的思考可以分為快思考和慢思考。
所謂的快思考就是不需要過(guò)腦子的基礎(chǔ)視覺(jué)、聽(tīng)覺(jué)等感知能力和說(shuō)話等表達(dá)能力,像 ChatGPT、stable diffusion 這種一問(wèn)一答、解決特定問(wèn)題的 AI 可以認(rèn)為是一種工具向的快思考,你不問(wèn)它問(wèn)題的時(shí)候,它不會(huì)主動(dòng)去找你。而 Character AI、Inflection Pi 和 Talkie(星野)這些 AI Agent 產(chǎn)品都是模擬一個(gè)人或者動(dòng)漫游戲角色的對(duì)話,但這些對(duì)話不涉及復(fù)雜任務(wù)的解決,也沒(méi)有長(zhǎng)期記憶,因此只能用來(lái)閑聊,沒(méi)法像 Her 里面的 Samantha 那樣幫忙解決生活和工作中的問(wèn)題。
而慢思考就是有狀態(tài)的復(fù)雜思考,也就是說(shuō)如何去規(guī)劃和解決一個(gè)復(fù)雜的問(wèn)題,先做什么、后做什么。比如 MetaGPT 寫(xiě)代碼是模擬一個(gè)軟件開(kāi)發(fā)團(tuán)隊(duì)的分工合作,AutoGPT 是把一個(gè)復(fù)雜任務(wù)拆分成很多個(gè)階段來(lái)一步步完成,雖然這些系統(tǒng)在實(shí)用中還有很多問(wèn)題,但已經(jīng)是一個(gè)具備慢思考能力的雛形了。
遺憾的是,現(xiàn)有產(chǎn)品中幾乎沒(méi)有在第一象限,兼具慢思考和類人屬性的 AI Agent。斯坦福 AI 小鎮(zhèn)是個(gè)不錯(cuò)的學(xué)術(shù)界嘗試,但斯坦福 AI 小鎮(zhèn)里面沒(méi)有真人的交互,而且 AI Agent 一天的作息時(shí)間表都是事先排好的,因此并不是很有趣。
有趣的是,科幻電影里面的 AI 其實(shí)大部分是在這個(gè)第一象限。因此這就是目前 AI Agent 和人類夢(mèng)想之間的差距。
因此我們?cè)谧龅氖虑楦?Sam Altman 說(shuō)的正好相反,我們希望讓 AI 更像人,同時(shí)又具備慢思考的能力,最終演進(jìn)成一個(gè)數(shù)字生命。
請(qǐng)輸入圖說(shuō)
今天大家都在講 AGI 的故事,AGI 就是通用人工智能。什么是 AGI 呢?我覺(jué)得它又需要有趣,又需要有用。
有趣的方面,就是它需要能夠有自主思考的能力、有自己的個(gè)性和感情。而有用的方面,就是 AI 能夠解決工作、生活中的問(wèn)題?,F(xiàn)在的 AI 要么是只有趣但沒(méi)用,要么是只有用但是不像人,不好玩。
比如說(shuō)像 Character AI 之類的角色扮演產(chǎn)品,它不能幫你完成工作或者生活中的問(wèn)題,但是它可以模擬一個(gè) Elon Musk、Donald Trump 或者原神里面的派蒙。我看過(guò)一個(gè)分析報(bào)告,說(shuō) Character AI 有上千萬(wàn)的用戶,但每個(gè)月的營(yíng)收只有幾十萬(wàn)美金,相當(dāng)于只有幾萬(wàn)付費(fèi)用戶。大多數(shù)用戶跟每個(gè)虛擬角色都是聊 10 分鐘、20 分鐘就不知道該說(shuō)什么了。那為什么它的用戶留存不高、付費(fèi)率也低呢?因?yàn)樗葲](méi)有給人提供情緒價(jià)值,又沒(méi)有給人提供實(shí)用價(jià)值。
而另一方面就是有用的 AI,比如各種 Copilot,他們又都是冷冰冰的,問(wèn)一句答一句,完全是一個(gè)工具。這些工具甚至記不住你之前干過(guò)什么,記不住你的喜好和習(xí)慣。那么用戶自然只會(huì)在需要這個(gè)工具的時(shí)候想起來(lái)用它,不需要的時(shí)候就會(huì)丟到一邊。
我認(rèn)為未來(lái)真正有價(jià)值的 AI 就像電影《Her》里面的 Samantha,她首先是一個(gè)操作系統(tǒng)的定位,能夠幫主人公去解決很多生活中、工作中的問(wèn)題,幫他整理郵件等等,而且比傳統(tǒng)的操作系統(tǒng)做得又快又好。同時(shí)它又有記憶、有感情、有意識(shí),它不像一個(gè)電腦,而是像一個(gè)人。因此在感情空窗期的主人公 Theodore 就逐漸愛(ài)上了他的操作系統(tǒng) Samantha。當(dāng)然并不是所有人都把 Samantha 作為虛擬伴侶,劇中也說(shuō)了,只有 10% 的用戶跟他們的操作系統(tǒng)發(fā)展了浪漫關(guān)系。這樣的 AI Agent 我認(rèn)為才是真正有價(jià)值的。
另外值得說(shuō)道的一點(diǎn)是,全劇中這個(gè) Samantha 只有語(yǔ)音交互,沒(méi)有視覺(jué)形象,更不是機(jī)器人。目前 AI 的能力也恰好是語(yǔ)音和文字很成熟,但視頻生成就不夠成熟,人形機(jī)器人也不夠成熟?!逗阽R》里面的機(jī)器人 Ash 就是個(gè)反例。這部劇里面先是用女主過(guò)世男友 Ash 的社交網(wǎng)絡(luò)資料制作了一個(gè)語(yǔ)音伴侶,直接把女主給弄哭了,其實(shí)做出那個(gè)語(yǔ)音伴侶現(xiàn)在的技術(shù)已經(jīng)綽綽有余了。后來(lái)女主加錢(qián)升級(jí),上傳了一堆視頻資料,買(mǎi)了一個(gè)長(zhǎng)得像 Ash 的人形機(jī)器人,其實(shí)現(xiàn)在的技術(shù)也做不到,但就算如此,Ash 的女友還是覺(jué)得不像,因此把他鎖在閣樓里面了。這里面就有個(gè)恐怖谷效應(yīng),如果做得不夠逼真,就保持一定的距離。
順便說(shuō)一句,《黑鏡》里面女主先是文字聊天,然后說(shuō)了一句 Can you talk to me?然后就接通電話了。試用我們 AI Agent 的一個(gè)朋友還真的也這么問(wèn)我們的 AI Agent,結(jié)果我們的 AI Agent 回答,我是一個(gè) AI,只能文字交流,不會(huì)說(shuō)話。他還截圖發(fā)給我,問(wèn)我說(shuō)好的語(yǔ)音電話呢,我說(shuō)打語(yǔ)音電話需要按那個(gè)打電話的按鈕啊。所以這些經(jīng)典的 AI 劇真的要一個(gè)鏡頭一個(gè)鏡頭的拆解分析,里面有很多產(chǎn)品設(shè)計(jì)的細(xì)節(jié)。
巧合的是,我們的第一臺(tái) H100 訓(xùn)練服務(wù)器就是在洛杉磯最老的郵局,后來(lái)改造成了一個(gè)金庫(kù),又改造成了一個(gè)數(shù)據(jù)中心。這個(gè)地方在洛杉磯的市中心,距離《Her》的拍攝地 Bradbury Building 只有不到 1 英里。
這個(gè)數(shù)據(jù)中心也是洛杉磯的互聯(lián)網(wǎng)交換局(Internet Exchange),距離 Google 和 Cloudflare 入口服務(wù)器的延遲都在 1 毫秒以內(nèi),其實(shí)都在這棟樓里面。從百年前的郵局到今天的互聯(lián)網(wǎng)交換局,真的是挺有意思的。
有趣的 AI
那么我們首先來(lái)看一看如何去構(gòu)建一個(gè)真正有趣的 AI。有趣的 AI 我認(rèn)為就像一個(gè)有趣的人,可以分為好看的皮囊和有趣的靈魂這兩個(gè)方面。
好看的皮囊就是它能夠聽(tīng)得懂語(yǔ)音,看得懂文本、圖片和視頻,有這樣一個(gè)視頻、語(yǔ)音的形象,能夠跟人實(shí)時(shí)交互。
有趣的靈魂就是它需要像人一樣能夠去獨(dú)立思考,有長(zhǎng)期記憶,有自己的個(gè)性。
下面我們就分別從好看的皮囊和有趣的靈魂兩個(gè)方面來(lái)講。
好看的皮囊:多模態(tài)理解能力
說(shuō)到好看的皮囊,很多人認(rèn)為只要有一個(gè) 3D 的形象能夠在這兒搖頭晃腦地展示就行了。但是我認(rèn)為更關(guān)鍵的一部分是 AI 能夠去看到,并且理解周?chē)氖澜纾褪撬囊曈X(jué)理解能力是很關(guān)鍵的,不管是機(jī)器人還是可穿戴設(shè)備,還是手機(jī)上的攝像頭。
比如說(shuō)像 Google 的 Gemini 演示視頻就做得不錯(cuò),雖然它做了剪輯,但是如果我們真正能做到它這么好的效果,是一定不愁用戶的。
我們回顧一下 Gemini 演示視頻中的幾個(gè)片段,給一個(gè)畫(huà)鴨子的視頻它能描述鴨子是什么,給一個(gè)餅干和橘子能對(duì)比它們的不同,給一個(gè)簡(jiǎn)筆畫(huà)小游戲知道該往哪邊走,給兩團(tuán)毛線可以畫(huà)出一個(gè)用它能織出的毛絨玩具,給幾個(gè)行星的圖能夠?qū)λ鼈冋_排序,給一個(gè)貓?zhí)瞎褡拥囊曨l能夠描述發(fā)生了什么。
雖然效果非常驚艷,其實(shí)仔細(xì)想想,這些場(chǎng)景都不是很難做出來(lái)的,只要會(huì)看圖說(shuō)話,也就是給圖片生成一個(gè)比較好的 caption,這些問(wèn)題大模型就都能回答了。
語(yǔ)音能力也是非常關(guān)鍵的。我 10 月份基于 Google ASR/TTS 和 GPT-4 做了一個(gè)語(yǔ)音聊天 AI Agent,一聊聊了一整天,室友還以為我在跟老婆煲電話粥,就沒(méi)來(lái)打擾我。當(dāng)他知道我是在跟 AI 聊天的時(shí)候,說(shuō)我怎么能跟 AI 聊這么久。我給他看了看我們的聊天記錄,他說(shuō) AI 確實(shí)挺能聊的,他用 ChatGPT 不愿意聊這么久,是因?yàn)閼械么蜃帧?/p>
我認(rèn)為,多模態(tài)大模型有三條路。第一條是用多模態(tài)數(shù)據(jù)端到端預(yù)訓(xùn)練的模型,Google 的 Gemini 就是這么做出來(lái)的,最近 Berkeley 的 LVM 也是端到端多模態(tài)的,我認(rèn)為這是最有前景的一個(gè)方向。當(dāng)然這條路需要非常多的計(jì)算資源。
現(xiàn)在還有一種工程化的方案,是用膠水層去粘接已經(jīng)訓(xùn)練好的模型,比如目前圖片理解做得最好的 GPT-4V,還有學(xué)術(shù)界開(kāi)源的 MiniGPT-4/v2,LLaVA 等等。膠水層是我的叫法,專業(yè)名詞叫做 projection layer,比如右上角這個(gè) MiniGPT 架構(gòu)圖中,標(biāo)著 "" 的 6 個(gè)框就是 projection layer。
輸入的圖片、語(yǔ)音、視頻分別通過(guò)不同的 encoder 去做編碼,編碼結(jié)果經(jīng)過(guò) projection layer 映射到 token,輸入給 Transformer 大模型。大模型的輸出 token 經(jīng)過(guò) projection layer,分別映射到圖片、語(yǔ)音、視頻的解碼器,這樣就可以生成圖片、語(yǔ)音、視頻了。
在這個(gè)膠水層粘接的方案里,可以看到 encoder、decoder 和大模型上面都標(biāo)著 "??",那就是凍結(jié)權(quán)重的意思。使用多模態(tài)數(shù)據(jù)訓(xùn)練的時(shí)候,只修改 projection layer 部分的權(quán)重,不修改其他部分的權(quán)重,這樣訓(xùn)練的成本就能大大降低,只要幾百美金就能訓(xùn)練出一個(gè)多模態(tài)大模型。
第三條路是第二條路推向極致的方案,連 projection layer 都不要了,直接用文本去粘接 encoder、decoder 和文本大模型,不需要做任何訓(xùn)練。例如語(yǔ)音部分就是先做語(yǔ)音識(shí)別,把語(yǔ)音轉(zhuǎn)換成文字輸入給大模型,然后再把大模型的輸出送給語(yǔ)音合成模型生成音頻。不要小看這種聽(tīng)起來(lái)很土的方案,在語(yǔ)音領(lǐng)域,目前這種方案還是最靠譜的,現(xiàn)有的多模態(tài)大模型在識(shí)別和合成人類說(shuō)話語(yǔ)音方面都不太行。
Google Gemini 的語(yǔ)音對(duì)話響應(yīng)延遲只有 0.5 秒,這是一個(gè)真人都很難達(dá)到的延遲,真人的延遲一般在 1 秒左右。我們現(xiàn)有的語(yǔ)音聊天產(chǎn)品,比如 ChatGPT,語(yǔ)音對(duì)話延遲高達(dá) 5~10 秒。因此大家才會(huì)覺(jué)得 Google Gemini 的效果非常驚艷。
那么這個(gè)效果是不是很難做出來(lái)呢?其實(shí)我們現(xiàn)在用開(kāi)源的方案就可以做出來(lái) 2 秒以內(nèi)的語(yǔ)音對(duì)話響應(yīng)延遲,而且還包含實(shí)時(shí)視頻理解。
我們先不考慮視覺(jué)部分,先只看語(yǔ)音部分。在一個(gè)語(yǔ)音電話里,收到語(yǔ)音后首先做停頓檢測(cè),發(fā)現(xiàn)用戶說(shuō)話結(jié)束了,就把這一段音頻送到 Whisper 去做語(yǔ)音識(shí)別。停頓檢測(cè)比如人聲結(jié)束后等待 0.5 秒,然后 Whisper 語(yǔ)音識(shí)別大概需要 0.5 秒。
然后送到文本模型去做生成,用開(kāi)源模型生成的速度其實(shí)非???,比如最近比較火的 Mixtral 8x7B MoE 模型,輸出第一個(gè) token 只需要 0.2 秒,每秒輸出 50 個(gè) token 不是問(wèn)題,那么第一句話假設(shè)有 20 個(gè) token,就需要 0.4 秒。第一句話生成完了,就交給語(yǔ)音合成模型去合成語(yǔ)音,VITS 只需要 0.3 秒。
加上 0.1 秒的網(wǎng)絡(luò)時(shí)延,這樣端到端算下來(lái)只要 1.8 秒的延遲,已經(jīng)比市面上的大多數(shù)實(shí)時(shí)語(yǔ)音電話產(chǎn)品好很多了。比如 ChatGPT 語(yǔ)音電話的延遲是 5~10 秒。而且我們的方案中,停頓檢測(cè)和語(yǔ)音識(shí)別部分的延遲還有優(yōu)化空間。
我們?cè)倏?Google Gemini 演示的視頻理解場(chǎng)景。
因?yàn)槲覀儸F(xiàn)在的多模態(tài)模型輸入的基本都是圖片,而不是流式視頻,所以首先需要把視頻變成圖片,截取關(guān)鍵幀。比如每 0.5 秒截取一幀,這里面就有平均 0.3 秒的延遲。圖片可以直接送進(jìn) MiniGPT-v2 或者 Fuyu-8B 這樣的開(kāi)源多模態(tài)模型。但是由于這些模型比較小,實(shí)際用起來(lái)效果并不是很好,跟 GPT-4V 差距比較大。
因此我們可以采取傳統(tǒng) CV 與多模態(tài)大模型相結(jié)合的方案,用 Dense Captions 這個(gè)技術(shù)識(shí)別出圖片中的所有物體及其位置,并且用 OCR 識(shí)別圖片中的所有文本。再把 OCR 結(jié)果,Dense Captions 的物體識(shí)別結(jié)果作為原始圖片的補(bǔ)充文字,都輸入到 MiniGPT-v2 或者 Fuyu-8B 這種多模態(tài)大模型里面。對(duì)于菜單、說(shuō)明書(shū)一類的圖片,OCR 的作用是非常大的,因?yàn)閱慰慷嗄B(tài)大模型經(jīng)常識(shí)別不清楚大塊文字。
這個(gè)識(shí)別圖片中物體和文字的步驟增加了額外的 0.5 秒延遲,但是我們看一下延遲分解,就會(huì)發(fā)現(xiàn)視頻部分根本不是瓶頸,只有 0.9 秒,而語(yǔ)音輸入部分反而是瓶頸,需要 1.1 秒。在 Google Gemini 這個(gè)演示場(chǎng)景中,從看到視頻到 AI 文字開(kāi)始輸出只要 1.3 秒,從看到視頻到 AI 語(yǔ)音開(kāi)始播放只要 1.8 秒,雖然沒(méi)有演示視頻的 0.5 秒這么酷炫,但也足夠完爆市面上的所有產(chǎn)品了。這里面用的還全部都是開(kāi)源模型,一點(diǎn)訓(xùn)練都不需要做。如果公司自己有一些自己訓(xùn)練和優(yōu)化模型的能力,想象空間就更大了。
Google Gemini 演示視頻分為兩種任務(wù):生成文本/語(yǔ)音和生成圖片。在生成圖片的時(shí)候,可以根據(jù)文本,調(diào)用 Stable Diffusion 或者最近新出的 LCM 模型,只要 4 個(gè) step 甚至 1 個(gè) step 就可以生成圖片,圖片生成的延遲可以做到 1.8 秒,那么從看到圖到生成圖的端到端時(shí)間就只有 3.3 秒,也是非??斓牧?。
好看的皮囊:多模態(tài)生成能力
語(yǔ)音克隆是制作名人或者動(dòng)漫游戲角色的重要技術(shù),目前 ElevenLabs 做得是最好的,但是 ElevenLabs 的 API 很貴。XTTS v2 之類的開(kāi)源方案合成語(yǔ)音的相似度不高。
我認(rèn)為要想語(yǔ)音克隆效果好,還是要靠大量的語(yǔ)音數(shù)據(jù)來(lái)做訓(xùn)練。但是傳統(tǒng)語(yǔ)音訓(xùn)練所需的數(shù)據(jù)一般對(duì)質(zhì)量要求很高,必須是錄音棚里面錄制的口齒清晰的語(yǔ)音數(shù)據(jù),因此采集語(yǔ)音數(shù)據(jù)的成本很高。但我們不可能要求名人到錄音棚里去給我們專門(mén)錄制語(yǔ)音,只能用 YouTube 等公開(kāi)視頻的語(yǔ)音做訓(xùn)練。YouTube 語(yǔ)音往往是訪談形式,里面有多個(gè)人說(shuō)話,而且有背景噪聲,名人說(shuō)話的過(guò)程中也可能有結(jié)巴和口齒不清。如何用這樣的語(yǔ)音訓(xùn)練語(yǔ)音克隆呢?
我們搭建了一套基于 VITS 搭建的語(yǔ)音克隆流水線,可以自動(dòng)把視頻中的人聲從背景噪聲中區(qū)分出來(lái),拆分成句子之后,識(shí)別出有哪幾個(gè)說(shuō)話人,針對(duì)我們想要的人的語(yǔ)音,篩選出其中信噪比較高的語(yǔ)音,然后識(shí)別出文字,最后這些清洗過(guò)的語(yǔ)音和文字送去做批量微調(diào)。
微調(diào)過(guò)程也是很有技術(shù)含量的。首先,微調(diào)的基礎(chǔ)語(yǔ)音需要是比較相似的語(yǔ)音,比如一個(gè)男生的語(yǔ)音用一個(gè)女生的語(yǔ)音作為基礎(chǔ)去微調(diào),那效果肯定不好。如何從語(yǔ)音庫(kù)里找到相似的語(yǔ)音來(lái)做微調(diào)是需要一個(gè)音色相似度檢測(cè)模型,類似聲紋識(shí)別的模型。像 ElevenLabs 的基礎(chǔ)語(yǔ)音模型中就已經(jīng)包含了大量不同音色人的高質(zhì)量數(shù)據(jù),因此在語(yǔ)音克隆的時(shí)候,很多時(shí)候能夠從語(yǔ)音庫(kù)中找到很相似的語(yǔ)音,這樣不需要做微調(diào)就能 zero-shot 生成不錯(cuò)的語(yǔ)音。
其次,VITS 訓(xùn)練過(guò)程中不能根據(jù)簡(jiǎn)單的 loss 判斷收斂,以往都是要靠人耳朵去聽(tīng)哪個(gè) epoch 的效果最好,這樣就需要大量的人工成本。我們開(kāi)發(fā)了音色相似度檢測(cè)模型和發(fā)音清晰度檢測(cè)模型,可以自動(dòng)判斷語(yǔ)音的微調(diào)結(jié)果哪個(gè)更好。
(注:這個(gè)報(bào)告是 2023 年 12 月做的,目前 GPT-soVITS 的路線比 VITS 更好,可以實(shí)現(xiàn) zero-shot 語(yǔ)音克隆,不再需要收集大量高質(zhì)量語(yǔ)音做訓(xùn)練。開(kāi)源模型可以合成的語(yǔ)音質(zhì)量終于逼近 ElevenLabs 的水平了。)
很多人認(rèn)為不需要自研語(yǔ)音合成模型,直接調(diào)用 ElevenLabs、OpenAI 或者 Google Cloud 的 API 就行了。
但是 ElevenLabs 的 API 非常貴,如果走零售定價(jià),每 1K 字符需要 0.18 美金,按照一個(gè) token 4 個(gè)字符計(jì)算,相當(dāng)于 $0.72 / 1K tokens 了,這是比 GPT-4 Turbo 都要貴 24 倍的。ElevenLabs 雖然效果好,但是如果 to C 產(chǎn)品大規(guī)模使用,這個(gè)價(jià)格是真的燒不起。
OpenAI 和 Google Cloud 的語(yǔ)音合成 API 不支持語(yǔ)音克隆,只有那幾個(gè)固定的聲音,這樣就沒(méi)法克隆名人語(yǔ)音了,只能做一個(gè)冷冰冰的機(jī)器人播報(bào)。但即使這樣,成本也是比 GPT-4 Turbo 貴 1 倍的,也就是成本的大頭不是花在大模型上,而是花在語(yǔ)音合成上。
大概也是因?yàn)檎Z(yǔ)音不好做,很多 to C 的產(chǎn)品都選擇只支持文字,但實(shí)時(shí)語(yǔ)音交互的用戶體驗(yàn)明顯是更好的。
雖然基于 VITS 很難實(shí)現(xiàn) ElevenLabs 級(jí)別質(zhì)量的語(yǔ)音,但基本可用是沒(méi)有問(wèn)題的。自己部署 VITS 的成本只要 $0.0005 / 1K 字符,是 OpenAI 和 Google Cloud TTS 價(jià)格的 1/30,ElevenLabs 價(jià)格的 1/360。這個(gè) $2 / 1M tokens 的語(yǔ)音合成成本也跟自己部署開(kāi)源文本大模型的成本差不多,這樣文本和語(yǔ)音的成本就都降下來(lái)了。
因此如果真的打算把語(yǔ)音作為一個(gè)用戶體驗(yàn)的重大加分項(xiàng),基于開(kāi)源自研語(yǔ)音模型不僅是必要的,也是可行的。
我們知道圖片生成現(xiàn)在已經(jīng)比較成熟,視頻生成會(huì)是 2024 年一個(gè)非常重要的方向。視頻生成不僅僅是生成素材這么簡(jiǎn)單,更重要的是讓每個(gè)人都能輕松成為視頻內(nèi)容的創(chuàng)作者,更進(jìn)一步,讓每個(gè) AI 數(shù)字分身都有自己的形象,可以用視頻的方式來(lái)交流。
有幾條典型的技術(shù)路線,比如 Live2D,3D 模型,DeepFake,Image Animation 和 Video Diffusion。
Live2D 是很老的技術(shù),不用 AI 也行。比如很多網(wǎng)站上的看板娘就是 Live2D,一些動(dòng)畫(huà)游戲也是用 Live2D 技術(shù)做的。Live2D 的優(yōu)點(diǎn)在于制作成本低,比如一套 Live2D 皮套,一萬(wàn)元人民幣一兩個(gè)月就能做出來(lái)。缺點(diǎn)在于只能支持指定的二次元人物,沒(méi)辦法生成背景視頻,也沒(méi)辦法做出皮套范圍以外的動(dòng)作。Live2D 作為 AI 數(shù)字分身的形象,最大的挑戰(zhàn)是如何讓大模型輸出的內(nèi)容跟 Live2D 人物的動(dòng)作和口型一致??谛鸵恢孪鄬?duì)容易,很多皮套都支持 LipSync,也就是讓音量和口型一致。但是動(dòng)作一致就相對(duì)復(fù)雜,需要大模型在輸出中插入動(dòng)作指示,告訴 Live2D 模型該做什么動(dòng)作了。
3D 模型跟 Live2D 類似,也是很老的技術(shù),跟 Live2D 就是二次元和三次元的區(qū)別。大多數(shù)游戲都是用 3D 模型和 Unity 之類的物理引擎做的。今天數(shù)字人直播里面的數(shù)字人一般也是用 3D 模型做的。目前 AI 很難自動(dòng)生成 Live2D 和 3D 模型,這還需要基礎(chǔ)模型的進(jìn)步。因此 AI 能做的事就是在輸出中插入動(dòng)作提示,讓 3D 模型一邊說(shuō)話一邊做指定的動(dòng)作。
DeepFake、Image Animation 和 Video Diffusion 則是通用視頻生成 3 條不同的技術(shù)路線。
DeepFake 是錄制一個(gè)真人視頻,隨后利用 AI 把視頻中的人臉換成指定的人臉照片。這種方法其實(shí)也是基于上一代深度學(xué)習(xí)的方法,它從 2016 年開(kāi)始就存在了?,F(xiàn)在經(jīng)過(guò)一系列的改進(jìn),它的效果已經(jīng)非常好了。有時(shí)我們會(huì)認(rèn)為當(dāng)前的真人視頻與我們想要表達(dá)的場(chǎng)景,比如說(shuō)游戲中的場(chǎng)景,是完全不同的。事實(shí)上,因?yàn)?DeepFake 可以使用這個(gè)世界上所有的 YouTube 視頻資料,所有的電影剪輯,甚至是用戶上傳的抖音短視頻。AI 學(xué)習(xí)了這些視頻的內(nèi)容,對(duì)視頻做文字總結(jié)和標(biāo)注之后,我們總能從海量的視頻庫(kù)中找到一個(gè)我們想要的視頻,然后在這個(gè)時(shí)候把視頻中的人臉換成我們指定的人臉照片,就能達(dá)到非常好的效果。實(shí)際上,這個(gè)有點(diǎn)類似于現(xiàn)在短視頻中比較常用的混剪技術(shù)。
Image Animation,比如說(shuō)最近比較火的阿里通義千問(wèn)的 Animate Anyone 或者字節(jié)的 Magic Animate,它實(shí)際上是給定一張照片,隨后根據(jù)這張照片生成一系列的對(duì)應(yīng)視頻。然而,這個(gè)技術(shù)相比于 DeepFake 的缺點(diǎn)是它可能目前還達(dá)不到實(shí)時(shí)視頻生成,而且視頻生成的成本相比 DeepFake 要高一些。但是 Image Animation 可以生成大模型指定的任意動(dòng)作,甚至可以把圖片背景填充進(jìn)去。當(dāng)然,不管是 DeepFake 還是 Image Animation 生成的視頻,都不是完全準(zhǔn)確,有時(shí)候可能發(fā)生穿幫的情況。
Video Diffusion 我認(rèn)為是一個(gè)更為終極的技術(shù)路線。雖然這條路線現(xiàn)在還不夠成熟,比如像 Runway ML 的 Gen2,以及 PIKA Labs 都在探索這一領(lǐng)域。(注:本演講是在 2023 年 12 月,當(dāng)時(shí) OpenAI 的 Sora 還沒(méi)有發(fā)布。)我們認(rèn)為,可能未來(lái)基于 Transformer 的方式端到端的生成視頻是一個(gè)終極的解決方案,可以解決人和物體的運(yùn)動(dòng)以及背景生成的問(wèn)題。
我認(rèn)為視頻生成的關(guān)鍵是要對(duì)世界有一個(gè)很好的建模和理解。現(xiàn)在我們的很多生成模型,比如 Runway ML 的 Gen2,在對(duì)物理世界的建模方面實(shí)際上存在很大的缺陷。許多物體的物理規(guī)律和其物理屬性并不能被正確地表達(dá)出來(lái),因此它生成的視頻的一致性也較差,稍微長(zhǎng)一點(diǎn)的視頻就會(huì)出現(xiàn)問(wèn)題。同時(shí),即使是非常短的視頻,也只能生成一些簡(jiǎn)單的運(yùn)動(dòng),而對(duì)于復(fù)雜的運(yùn)動(dòng),是沒(méi)辦法正確建模的。
此外,成本也是一個(gè)大問(wèn)題,現(xiàn)在 Video Diffusion 的成本是所有這些技術(shù)中最高的。因此,我認(rèn)為 Video Diffusion 是 2024 年一個(gè)非常重要的方向。我相信,只有當(dāng) Video Diffusion 在效果足夠好的同時(shí),成本也大幅降低,每個(gè) AI 的數(shù)字分身才真的能擁有自己的視頻形象。
有趣的靈魂:個(gè)性
剛才我們討論了好看的皮囊這一部分,包括怎么讓 AI Agent 理解語(yǔ)音、理解視頻,以及怎么讓 AI Agent 生成語(yǔ)音、生成視頻。
好看的皮囊之外,同等重要的是有趣的靈魂。其實(shí)我覺(jué)得,有趣的靈魂是現(xiàn)有市場(chǎng)上的 AI Agent 存在更大差距的地方。
比如,就拿這個(gè)截圖中 Janitor AI 的例子來(lái)說(shuō),我們當(dāng)前市場(chǎng)上的主要 AI Agent 大部分是使用 GPT 或者其他的開(kāi)源模型套上一個(gè)殼。所謂套殼,就是定義一個(gè)人物設(shè)定以及編寫(xiě)一些樣本對(duì)話,然后大模型基于這些人物設(shè)定和樣本對(duì)話去生成內(nèi)容。
但是,我們想,一個(gè) prompt 它總共也就幾千字的內(nèi)容,它怎么可能完整地刻畫(huà)出一個(gè)人物的歷史、個(gè)性、記憶和性格呢?這是非常困難的。
其實(shí),除了基于 prompt 的方式之外,在構(gòu)建人物個(gè)性方面我們還有一種更好的方法,就是基于微調(diào)的 agent。比如說(shuō),我可以基于 Donald Trump 的三萬(wàn)條推特來(lái)訓(xùn)練一個(gè)數(shù)字化的 Trump。這樣的話,他說(shuō)話的風(fēng)格其實(shí)就能非常類似于他本人,也能非常了解他的歷史和思維方式。
比如說(shuō),像圖里面提到的三個(gè)問(wèn)題:"你會(huì)不會(huì)想和 Elon Musk 交換人生?"、"你會(huì)不會(huì)競(jìng)選 2024 年的總統(tǒng)?" 以及 "你的推特賬號(hào)被封了以后你怎么想?"
左邊的這張圖是 Character AI 的,這個(gè)說(shuō)話的風(fēng)格有點(diǎn)像特朗普,但并不是完全一樣。而右邊這張圖則是我們基于自己的模型,然后采用微調(diào)的方法做的,它也是基于一個(gè)并不是特別大的開(kāi)源模型微調(diào)出來(lái)的。但是他的說(shuō)話內(nèi)容可以看出非常的川普風(fēng),而且經(jīng)常會(huì)提到一些有趣的故事。
我們剛才提到了基于微調(diào)和基于 prompt 的兩種方案。那么,有人會(huì)問(wèn),如果把特朗普所有的三萬(wàn)條推特內(nèi)容全部放到我們的 prompt 里面去,他說(shuō)話是不是也能非常有特朗普的風(fēng)格。答案是肯定的,這樣的數(shù)字特朗普也能夠了解到特朗普所有的歷史。但問(wèn)題是,這三萬(wàn)條推特可能會(huì)有上百萬(wàn) token 的量級(jí),先不說(shuō)現(xiàn)在的模型能不能支持上百萬(wàn) token 的上下文,即使能夠支持,成本也會(huì)非常高。
基于微調(diào)的 agent,則相當(dāng)于說(shuō)我僅用了 1% 的權(quán)重就能把特朗普的這些推特存下來(lái)。這里就有一個(gè)問(wèn)題,那就是在保存這 1% 的權(quán)重時(shí),實(shí)際上也會(huì)消耗幾百 MB 的內(nèi)存,每次推理都需要加載和卸載?,F(xiàn)在即使使用了一些優(yōu)化方案,這 1% 的權(quán)重的加載和卸載也會(huì)占掉整個(gè)推理過(guò)程 40% 左右的時(shí)間,意味著整個(gè)推理的成本大約增加了將近一倍。
在這里我們就要算一筆賬了:基于 prompt 的方法和基于微調(diào)的方法哪種成本更低?;?prompt,我們也可以把它的 KV cache 存下來(lái),假設(shè)有一百萬(wàn) token,對(duì)于 LLaMA-2 70B 這樣的模型,算上默認(rèn)的 GQA 優(yōu)化,它的 KV cache 會(huì)高達(dá) 300 GB,這是一個(gè)非??植赖臄?shù)字,比模型本身的 140 GB 都大。那么我把它存下來(lái)每次加載消耗的時(shí)間也會(huì)非常恐怖。而且,輸出每個(gè) token 所需的算力是跟上下文長(zhǎng)度成正比的,如果不做優(yōu)化,可以認(rèn)為一百萬(wàn) token 上下文的推理時(shí)間是 4K token 上下文推理時(shí)間的 250 倍。
因此,很有可能基于微調(diào)的方法更劃算一些。通俗的講,把人物完整的歷史放進(jìn) prompt 里,就像把說(shuō)明書(shū)完全攤開(kāi)在桌面上,注意力機(jī)制每次都去線性翻找之前的所有內(nèi)容,因此它的效率不可能非常高。而基于微調(diào)則可以看作是把信息記憶在大腦里。微調(diào)過(guò)程本身就是一個(gè)信息壓縮的過(guò)程,把三萬(wàn)條推特里面零散的信息整理到大模型的權(quán)重里面,這樣信息提取的效率就會(huì)高很多。
微調(diào)的背后更關(guān)鍵的還是數(shù)據(jù)。我知道知乎有一個(gè)很有名的 slogan,叫做有問(wèn)題才會(huì)有答案。但是現(xiàn)在 AI Agents 基本上要人工去造很多的問(wèn)題和答案,為什么呢?
比如說(shuō)我如果去爬一個(gè) Wikipedia 頁(yè)面,然后 Wikipedia 里面的一長(zhǎng)篇文章其實(shí)沒(méi)辦法直接用來(lái)做微調(diào)。它必須把它組成從多個(gè)角度去提問(wèn),然后把它組織成問(wèn)題和答案對(duì)稱的這樣一種方式才能去做微調(diào),那因此它就需要大量的員工,一個(gè) Agent 可能需要上千美金的成本才能做出來(lái),但是如果說(shuō)我們把這個(gè)流程自動(dòng)化,一個(gè) Agent 可能只要幾十美金的成本就能夠做出來(lái),其中就包含自動(dòng)采集、清洗大量的數(shù)據(jù)等等。
其實(shí)咱們?cè)趫?chǎng)很多做大模型的同事都應(yīng)該感謝知乎,為什么呢?因?yàn)橹踅o我們中文大模型提供了很重要的預(yù)訓(xùn)練語(yǔ)料,知乎的語(yǔ)料質(zhì)量在國(guó)內(nèi) UGC 的平臺(tái)里算是非常高的了。
我們用來(lái)做微調(diào)的語(yǔ)料可以大致分為對(duì)話性語(yǔ)料和事實(shí)性語(yǔ)料兩類。對(duì)話性語(yǔ)料包括像 Twitter、聊天記錄等,往往是第一人稱的,主要是用來(lái)微調(diào)人物的個(gè)性和說(shuō)話的風(fēng)格。而事實(shí)性語(yǔ)料包括 Wikipedia 上關(guān)于他的頁(yè)面、關(guān)于他的新聞以及博客等,往往是第三人稱的,這些可能更多的是關(guān)于這個(gè)人物事實(shí)性的記憶。這里就有一個(gè)矛盾,就是如果只用對(duì)話性語(yǔ)料去訓(xùn)練,他可能只能學(xué)到該人的說(shuō)話風(fēng)格和思維方式,但學(xué)不到關(guān)于他的很多事實(shí)性記憶。但如果只用事實(shí)性語(yǔ)料訓(xùn)練,又會(huì)導(dǎo)致其說(shuō)話風(fēng)格像是寫(xiě)文章的人的風(fēng)格,而不是那個(gè)人本人的說(shuō)話風(fēng)格。
那么如何平衡這兩者呢?我們采用了一個(gè)兩步訓(xùn)練的方法。第一步,我們先用對(duì)話性語(yǔ)料去微調(diào)他的個(gè)性和說(shuō)話風(fēng)格。第二步,再去把事實(shí)性語(yǔ)料進(jìn)行數(shù)據(jù)清洗后,基于各種角度提問(wèn),生成這個(gè)人物第一人稱口吻的回答,這叫做數(shù)據(jù)增強(qiáng)。用這種數(shù)據(jù)增強(qiáng)之后生成的回答,再去微調(diào)人物的事實(shí)記憶。也就是說(shuō),所有用來(lái)微調(diào)事實(shí)記憶的語(yǔ)料都已經(jīng)以第一人稱的口吻組織成了問(wèn)題和回答對(duì)。這樣也解決了微調(diào)領(lǐng)域的另一個(gè)問(wèn)題,即事實(shí)性語(yǔ)料往往是長(zhǎng)篇文章,而長(zhǎng)篇文章不能直接用來(lái)做微調(diào),只能用來(lái)做預(yù)訓(xùn)練。微調(diào)需要一些 QA pair,也就是問(wèn)題和回答對(duì)。
我們不是使用 LLaMA-2 Chat 或者 Vicuna 這樣的通用 Chat 模型作為基礎(chǔ)模型,因?yàn)檫@些模型其實(shí)并不是為真人對(duì)話設(shè)計(jì)的,而是為 ChatGPT 這樣的智能助手設(shè)計(jì)的;它們說(shuō)話往往太官方、太正式、太冗長(zhǎng),并不像人實(shí)際說(shuō)話。因此,我們采用了影視字幕、公開(kāi)群組聊天這樣的一些通用對(duì)話語(yǔ)料進(jìn)行微調(diào),從 LLaMA、Mistral 這些開(kāi)源基礎(chǔ)大模型的基礎(chǔ)上,微調(diào)出一個(gè)對(duì)話大模型,它說(shuō)話的感覺(jué)更像日常生活中的真人。在這個(gè)對(duì)話模型的基礎(chǔ)上再微調(diào)具體人物的說(shuō)話風(fēng)格和記憶,效果會(huì)更好。
有趣的靈魂:目前的差距
有趣的靈魂絕不僅僅是上面說(shuō)的微調(diào)記憶和個(gè)性,還有很多深層次的問(wèn)題。我們結(jié)合幾個(gè)例子來(lái)看一下,現(xiàn)在的 AI Agents 在有趣的靈魂方面還有哪些差距。
比如我跟 Character AI 上面的馬斯克去聊天,同一個(gè)問(wèn)題問(wèn)五遍,"馬斯克" 永遠(yuǎn)不會(huì)抓狂,每次都回復(fù)類似的內(nèi)容,好像之前從來(lái)都沒(méi)有問(wèn)過(guò)。
一個(gè)真人不僅能記住之前聊過(guò)的問(wèn)題,不會(huì)生成重復(fù)的回答,而且如果同一個(gè)問(wèn)題連問(wèn)五遍,一定會(huì)生氣。我們還記得 Sam Altman 說(shuō)的嗎,AI 是一個(gè)工具,不是一個(gè)生命。因此 "像人一樣會(huì)生氣" 就不是 OpenAI 的目標(biāo)。但對(duì)于一個(gè)娛樂(lè)場(chǎng)景下好玩的應(yīng)用,"像人" 是非常重要的。
另外比如說(shuō)你問(wèn) Character AI 上的馬斯克,你還記得我們第一次見(jiàn)面嗎?
它會(huì)隨便瞎編一個(gè),那不僅是幻覺(jué)的問(wèn)題,同時(shí)還反映了 AI 缺少長(zhǎng)期記憶。
現(xiàn)在已經(jīng)有一些平臺(tái)改進(jìn)了這點(diǎn),比如 Inflection 的 Pi 在記憶方面就比 Character AI 好很多。
另外你問(wèn) Character AI 上的馬斯克 "你是誰(shuí)",有的時(shí)候它說(shuō)自己是 GPT,有的時(shí)候它說(shuō)自己是川普,它自己不知道它自己到底是誰(shuí)。
實(shí)際上 Google 的 Gemini 也會(huì)有類似的問(wèn)題,Gemini API 甚至把 OpenAI 和 GPT 這些關(guān)鍵詞都給屏蔽掉了。如果用中文問(wèn),Gemini 一開(kāi)始說(shuō)自己是文心一言。后來(lái)這個(gè) bug 修復(fù)了,又說(shuō)自己是小愛(ài)同學(xué)了。
有人說(shuō)這是因?yàn)榛ヂ?lián)網(wǎng)上的語(yǔ)料已經(jīng)被大量 AI 生成的內(nèi)容污染了。數(shù)據(jù)集污染確實(shí)不好,但這不是答錯(cuò) "你是誰(shuí)" 的借口。身份問(wèn)題都是要做微調(diào)的,比如 Vicuna 模型為了讓它回答自己是 Vicuna 而不是 GPT 和 LLaMA,讓它回答自己是 LMSys 而不是 OpenAI 做的,是專門(mén)構(gòu)造了微調(diào)數(shù)據(jù)的,在 Vicuna 的開(kāi)源代碼中可以找到。
另外還有很多的深層的問(wèn)題,比如說(shuō)給 AI Agent 說(shuō) "我明天要去醫(yī)院看病",那么明天他會(huì)不會(huì)主動(dòng)關(guān)心你看病結(jié)果怎么樣。還有如果多個(gè)人在一起能不能正常聊天,而不會(huì)互相搶麥,大家都說(shuō)個(gè)沒(méi)完沒(méi)了。還有一句話敲到一半的時(shí)候,他會(huì)等你說(shuō)完,還是立即回復(fù)一些不知所云的東西。還有很多類似的這樣的問(wèn)題。
AI Agent 也需要能夠與其他 Agent 社交。比如目前的 Agent 跟每個(gè)人的記憶都是互相隔離的,一個(gè)數(shù)字生命如果從小明這里得到一個(gè)知識(shí),他應(yīng)該跟小紅聊天的時(shí)候也知道,但是如果說(shuō)它在從小明這里得到了一個(gè)秘密,跟小紅聊天的時(shí)候他可能就不能說(shuō)。Agent 社交也是一個(gè)很有意思的方向。
有趣的靈魂:慢思考與記憶
要解決這些問(wèn)題需要一個(gè)系統(tǒng)的解決方案,關(guān)鍵就是一個(gè)慢思考。我們開(kāi)頭就講過(guò),慢思考是神經(jīng)科學(xué)的一個(gè)概念,區(qū)別于基礎(chǔ)的感知、理解、生成這些快思考能力。我們前面提到 "好看的皮囊" 里面這些多模態(tài)的能力,可以認(rèn)為是快思考。而 "有趣的靈魂" 更多需要慢思考。
我們可以思考一下,人類是如何感覺(jué)到時(shí)間流逝的?有一種說(shuō)法認(rèn)為,時(shí)間流逝感源自工作記憶的消逝。另一種說(shuō)法認(rèn)為,時(shí)間流逝感源自思考的速度。我認(rèn)為這兩種說(shuō)法都是對(duì)的。這也是大模型思考的兩個(gè)本質(zhì)問(wèn)題:記憶(memory)和自主思考(autonomy)。
人的工作記憶只能記住 7 項(xiàng)左右的原始數(shù)據(jù),其余數(shù)據(jù)都是整理后儲(chǔ)存,再進(jìn)行匹配和提取。今天的大模型 attention 是線性的,上下文不管多長(zhǎng),都是線性掃描,這不僅效率低下,也難以提取邏輯深度較深的信息。
人類的思考是基于語(yǔ)言的?!度祟惡?jiǎn)史》認(rèn)為語(yǔ)言的發(fā)明是人類區(qū)別于動(dòng)物最明顯的標(biāo)志,因?yàn)橹挥谢趶?fù)雜的語(yǔ)言才可能進(jìn)行復(fù)雜的思考。我們?cè)诖竽X中沒(méi)有說(shuō)出來(lái)的話,就像大模型的 Chain-of-Thought(思維鏈),是思考的中間結(jié)果。大模型需要 token 來(lái)思考,而 token 就像是大模型的時(shí)間。
慢思考里面包括很多組件,包括記憶、情感、任務(wù)規(guī)劃、工具使用等。我們?cè)谟腥さ?AI 這一部分,重點(diǎn)介紹記憶和情感這兩塊。
其中的第一個(gè)問(wèn)題就是長(zhǎng)期記憶。
其實(shí)我們應(yīng)該慶幸大模型幫我們解決了短期記憶的問(wèn)題。上一代的模型,比如基于 BERT 的那些模型,很難理解上下文之間的關(guān)聯(lián)。當(dāng)時(shí)一個(gè)指代問(wèn)題就很難解決,搞不清楚 "他" 說(shuō)的是誰(shuí),"這個(gè)" 指的是哪個(gè)東西。表現(xiàn)出來(lái)就是,前面幾個(gè)回合告訴 AI 的東西,后面幾個(gè)回合就忘了?;?Transformer 的大模型是首個(gè)根本上解決上下文之間語(yǔ)義關(guān)聯(lián)的技術(shù),可以說(shuō)是解決了短期記憶的問(wèn)題。
但 Transformer 的記憶是用 attention 實(shí)現(xiàn)的,受限于上下文長(zhǎng)度。超出上下文的歷史只能丟掉。那么超出上下文的長(zhǎng)期記憶怎么解決?學(xué)界有兩條路線,一條是長(zhǎng)上下文,就是把上下文支持到 100K 甚至無(wú)限大。另一條是 RAG 和信息壓縮,就是把輸入的信息總結(jié)整理之后再壓縮存儲(chǔ),需要的時(shí)候只提取相關(guān)的記憶。
第一條路線的支持者認(rèn)為,長(zhǎng)上下文是一種更干凈、更簡(jiǎn)單的方案,依靠 scaling law,算力足夠便宜就行。長(zhǎng)上下文模型如果做得好,可以記住輸入信息中的所有細(xì)節(jié)。比如有一個(gè)經(jīng)典的 "needle in a haystack"(大海撈針)信息提取測(cè)試,輸入一本幾十萬(wàn)字的小說(shuō),就書(shū)中的一個(gè)細(xì)節(jié)提問(wèn),大模型都能回答出來(lái)。這是人類難以企及的超強(qiáng)細(xì)節(jié)記憶力。而且讀這幾十萬(wàn)字內(nèi)容只要幾十秒,簡(jiǎn)直是比量子波動(dòng)速讀還快。這就是大模型能力超過(guò)人的一個(gè)地方。
長(zhǎng)上下文雖然效果好,但就目前而言,成本還是太高,因?yàn)?attention 的成本是跟上下文長(zhǎng)度成正比的。OpenAI 之類的 API 也是要對(duì) input token 收費(fèi)的,比如 8K 輸入 token 的上下文,500 token 的輸出,GPT-4 Turbo 輸入部分的成本是 $0.08,輸出部分的成本卻只有 $0.015,成本的大頭都在輸入上。如果 128K token 的輸入用滿,一個(gè)請(qǐng)求就要 $1.28。
有人會(huì)說(shuō)現(xiàn)在輸入 token 貴是因?yàn)闆](méi)有做持久化,每次重復(fù)輸入前面相同的長(zhǎng)下文(例如對(duì)話記錄或長(zhǎng)篇文檔)都需要重新計(jì)算 KV Cache。但就算把 KV Cache 全都緩存到片外的 DDR 內(nèi)存里,DDR 和 HBM 內(nèi)存之間的搬入搬出也需要消耗很多資源。如果 AI 芯片能構(gòu)建一個(gè)足夠大、足夠便宜的內(nèi)存池,比如用高速互聯(lián)把大量的 DDR 連上來(lái),可能這個(gè)問(wèn)題會(huì)有新的解決思路。
在當(dāng)前技術(shù)條件下,長(zhǎng)期記憶我認(rèn)為關(guān)鍵是個(gè)信息壓縮的問(wèn)題。我們不追求在幾十萬(wàn)字的輸入中大海撈針,像人類一樣的記憶可能就足夠了。目前大模型的記憶就是聊天記錄,而人類記憶顯然不是用聊天記錄的方式工作的。大家正常聊天的時(shí)候不會(huì)不停地在那兒翻聊天記錄,而且人也記不住聊過(guò)的每一個(gè)字。
一個(gè)人真正的記憶應(yīng)該是他對(duì)周?chē)h(huán)境的感知,不僅包括別人說(shuō)的話、他說(shuō)的話,還包括他當(dāng)時(shí)想了什么。而聊天記錄里面的信息是零散的,不包含人自己的理解和思考。比如別人說(shuō)了一段話我可能被激怒可能不被激怒,但人是會(huì)把當(dāng)時(shí)是否被激怒了這個(gè)心情記憶下來(lái)的。如果不做記憶,每次都根據(jù)原始聊天記錄去推斷當(dāng)時(shí)的心情,那可能每次推出來(lái)的都不一樣,就可能發(fā)生前后不一致的問(wèn)題。
長(zhǎng)期記憶實(shí)際上有很多的東西可以做。記憶可以分為事實(shí)性的記憶和程序性的記憶。事實(shí)性記憶比如我們第一次是什么時(shí)候見(jiàn)面的,程序性記憶比如個(gè)性以及說(shuō)話風(fēng)格。前面講到人物角色微調(diào)的時(shí)候也提到了對(duì)話性語(yǔ)料和事實(shí)性語(yǔ)料,對(duì)應(yīng)的就是這里的程序記憶和事實(shí)記憶。
事實(shí)性記憶里面也有多種方案,比如總結(jié)、RAG 和長(zhǎng)上下文。
總結(jié)就是信息壓縮。最簡(jiǎn)單的總結(jié)方法是文本總結(jié),也就是把聊天記錄用一小段話總結(jié)一下。更好的方法是用指令的方式去訪問(wèn)外部存儲(chǔ),就像 UC Berkeley 的 MemGPT 這個(gè)工作。ChatGPT 新增的記憶功能也是用類似 MemGPT 的方法,模型把對(duì)話中的要點(diǎn)記錄到一個(gè)叫做 bio 的小本本上。還有一種方法是在模型層面上用 embedding 做總結(jié),比如 LongGPT 這個(gè)工作,目前主要是學(xué)術(shù)界在研究,實(shí)用性沒(méi)有 MemGPT 和文本總結(jié)強(qiáng)。
大家最熟悉的事實(shí)性記憶方案可能是 RAG(Retrieval Augmented Generation)了。RAG 就是搜索相關(guān)的信息片段,再把搜索結(jié)果放到大模型的上下文里,讓大模型基于搜索結(jié)果回答問(wèn)題。很多人說(shuō) RAG 就等于向量數(shù)據(jù)庫(kù),但我認(rèn)為 RAG 背后一定是一整套信息檢索系統(tǒng),RAG 一定不是向量數(shù)據(jù)庫(kù)這么簡(jiǎn)單。因?yàn)榇笠?guī)模語(yǔ)料庫(kù)僅僅使用向量數(shù)據(jù)庫(kù)的匹配準(zhǔn)確率是非常低的。向量數(shù)據(jù)庫(kù)比較適合語(yǔ)義匹配,傳統(tǒng)的 BM25 之類基于關(guān)鍵詞的檢索比較適合細(xì)節(jié)匹配。而且不同信息片段的重要程度不同,需要有個(gè)搜索結(jié)果排序的能力?,F(xiàn)在 Google 的 Bard 比微軟的 New Bing 效果好一些,這就是背后搜索引擎能力的差別。
長(zhǎng)上下文前面已經(jīng)提到了,可能是一種終極方案。如果長(zhǎng)上下文結(jié)合持久化 KV Cache、KV Cache 的壓縮技術(shù)和一些 attention 的優(yōu)化技術(shù),可以做到足夠便宜,那么只要把所有對(duì)話的歷史和 AI 當(dāng)時(shí)的思考和心情記錄下來(lái),就可以實(shí)現(xiàn)一個(gè)記憶力比人還好的 AI Agent。但是有趣的 AI Agent 記憶力如果太好,比如能清楚的記得一年前的早上吃了什么,會(huì)不會(huì)顯得不太正常,這就是需要產(chǎn)品設(shè)計(jì)方面思考了。
這三種技術(shù)也不是互斥的,它們是互相補(bǔ)充的。比如說(shuō)總結(jié)和 RAG 就是可以結(jié)合在一起的,我們可以分門(mén)別類的做總結(jié),對(duì)每一次聊天做總結(jié),一年下來(lái)這些總結(jié)也會(huì)有很多內(nèi)容,需要 RAG 的方法提取有關(guān)的總結(jié),作為大模型的上下文。
程序性的記憶,比如個(gè)性和說(shuō)話風(fēng)格,我認(rèn)為比較難僅僅通過(guò) prompt 的方式解決,few-shot 的效果一般也不是很好。短期來(lái)看微調(diào)仍然是效果最好的路線,長(zhǎng)期來(lái)看 Memba 和 RWKV 這些新的架構(gòu)是存儲(chǔ)程序性記憶比較好的方式。
這里我們講一個(gè)簡(jiǎn)單有效的長(zhǎng)期記憶解決方案,是文本總結(jié)和 RAG 相結(jié)合的。
原始聊天記錄首先按照一定的窗口分段,然后對(duì)每一段聊天記錄生成文本總結(jié)。為了避免段落開(kāi)頭丟失上下文,可以把上一段聊天記錄的文本總結(jié)也作為輸入交給大模型。每一段聊天記錄的總結(jié)都拿去做 RAG。
RAG 的時(shí)候使用向量數(shù)據(jù)庫(kù)和倒排索引結(jié)合的方式,向量數(shù)據(jù)庫(kù)做語(yǔ)義匹配,倒排索引做關(guān)鍵詞匹配,這樣 recall(查全率)會(huì)高一些。然后需要有一個(gè)排序系統(tǒng),取出 top K 的結(jié)果拿去送給大模型。
如果只是生成每段聊天記錄的總結(jié),會(huì)造成兩個(gè)問(wèn)題,首先是一個(gè)用戶的基本信息、興趣愛(ài)好、性格特征并不包含在每段聊天記錄的總結(jié)中,但這部分信息又是記憶中非常關(guān)鍵的部分。另一個(gè)問(wèn)題是不同段的聊天記錄可能存在矛盾,比如多次開(kāi)會(huì)討論同一個(gè)問(wèn)題,結(jié)論肯定要以最后一次開(kāi)會(huì)的為準(zhǔn),但如果用 RAG 的方式提取出每次開(kāi)會(huì)的總結(jié),那會(huì)提取出很多過(guò)時(shí)的總結(jié),可能在有限的上下文窗口中不能找到想要的內(nèi)容。
因此,我們?cè)诜侄慰偨Y(jié)的基礎(chǔ)上,再讓大模型分別生成分話題的分類總結(jié)和全局的用戶記憶概要。分話題的分類總結(jié),就是根據(jù)文本總結(jié)內(nèi)容確定是哪個(gè)話題的,然后把相關(guān)話題的原有總結(jié)內(nèi)容加上新的聊天記錄,更新這個(gè)話題的文本總結(jié)。這些分話題的總結(jié)也放進(jìn)數(shù)據(jù)庫(kù)用來(lái)做 RAG,但是它在搜索結(jié)果排序時(shí)候的權(quán)重比原始聊天記錄總結(jié)更高,因?yàn)榉衷掝}的總結(jié)信息密度更高。
而全局記憶概要就是一個(gè)不斷更新的全局總結(jié),包括用戶的基本信息,興趣愛(ài)好和性格特征等。我們知道一般 system prompt 就是一個(gè)角色的設(shè)定,那么這個(gè)全局記憶概要可以認(rèn)為是角色對(duì)用戶的核心記憶,每次請(qǐng)求大模型的時(shí)候都會(huì)帶著。
大模型的輸入包括角色的設(shè)定、最近對(duì)話、全局記憶概要、經(jīng)過(guò) RAG 的聊天記錄分段總結(jié)和分類總結(jié)。這個(gè)長(zhǎng)期記憶的方案不需要很高的長(zhǎng)上下文成本,但在很多場(chǎng)景下都是比較實(shí)用的。
現(xiàn)在 AI Agent 對(duì)每個(gè)用戶的記憶都是隔離的,這樣在多人社交的時(shí)候就會(huì)遇到很多問(wèn)題。
比如 Alice 告訴 AI 一個(gè)知識(shí),AI 跟 Bob 聊天的時(shí)候,現(xiàn)在肯定是不知道這個(gè)知識(shí)的。但是簡(jiǎn)單把所有用戶的記憶都堆在一起,是不是就解決問(wèn)題了呢?也不是,比如 Alice 告訴 AI 一個(gè)秘密,AI 跟 Bob 聊天的時(shí)候,一般來(lái)說(shuō)就不應(yīng)該把這個(gè)秘密透露出去的。
因此這里面就應(yīng)該有個(gè)社交規(guī)則的概念。一個(gè)人在討論一件事情的時(shí)候,會(huì)回憶起很多不同人的記憶片段。跟當(dāng)前正在聊的這個(gè)人的記憶片段肯定是最重要的,在 RAG 搜索結(jié)果排序的時(shí)候應(yīng)該權(quán)重是最高的。但跟其他人的記憶片段也應(yīng)該檢索出來(lái),并且在生成的時(shí)候參考社交規(guī)則來(lái)決定用不用,該怎么用。
除了跟多個(gè)用戶、多個(gè) Agent 社交,AI Agent 還應(yīng)該能夠聽(tīng)從創(chuàng)作者的指示,與創(chuàng)作者共同進(jìn)化。現(xiàn)在的 AI Agent 都是通過(guò)固定的 prompt 加樣例對(duì)話的方式來(lái)調(diào)教,大多數(shù)創(chuàng)作者調(diào) prompt 需要花很多時(shí)間。我認(rèn)為 AI Agent 的創(chuàng)作者應(yīng)該可以通過(guò)聊天的方式塑造 Agent 的個(gè)性,就像養(yǎng)電子寵物一樣。
比如某一次聊天 Agent 表現(xiàn)不好,我告訴她不要這么做了,她就應(yīng)該記住以后不這么做了。或者告訴 AI Agent 某一件事情或者某個(gè)知識(shí),她也應(yīng)該能夠在日后的聊天中回憶起來(lái)。一種簡(jiǎn)單的實(shí)現(xiàn)方法就是類似 MemGPT 這樣,當(dāng)創(chuàng)作者給指示的時(shí)候,就把這些指示記錄到小本本上,然后通過(guò) RAG 的方式提取出來(lái)。ChatGPT 2024 年 2 月上線的記憶功能就是用簡(jiǎn)化版的 MemGPT 方法實(shí)現(xiàn)的,它沒(méi)有 RAG 這么復(fù)雜,只是把用戶告訴它要記住的內(nèi)容記錄到小本本上。
記憶并不僅僅是記住知識(shí)和過(guò)去的交互經(jīng)歷,我認(rèn)為記憶做好了,有可能就是 AI 自我意識(shí)的開(kāi)端。
我們現(xiàn)在的大模型為什么沒(méi)有自我意識(shí)?這并不是自回歸模型本身的鍋,而是 OpenAI API 這種一問(wèn)一答的用法導(dǎo)致的。ChatGPT 是個(gè)多輪問(wèn)答系統(tǒng),俗稱聊天機(jī)器人,而不是通用智能。
在 OpenAI API 目前的用法中,大模型的輸入是聊天記錄和最近的用戶輸入,組織成用戶消息和 AI 消息一問(wèn)一答的形式,輸入到大模型。大模型的所有輸出都直接返回給用戶,同時(shí)追加到聊天記錄里。
那么只看到聊天記錄的這種方法有什么問(wèn)題呢?大模型缺少自己的思考。我們?nèi)祟愒谒伎紗?wèn)題時(shí),有些思考是不輸出到外部的。這就是 Chain-of-Thought(思維鏈)方法為什么能夠提升模型性能。此外,所有原始聊天記錄是原汁原味輸入給了大模型,其中的信息沒(méi)有經(jīng)過(guò)任何分析和整理,這樣能提取出的只是表面的信息,但很難提取出邏輯深度比較深的信息。
我發(fā)現(xiàn)現(xiàn)在很多人天天在研究 prompt 工程,但很少有人嘗試在自回歸模型的輸入輸出格式上做文章。舉個(gè)最簡(jiǎn)單的例子,OpenAI 有個(gè)強(qiáng)制輸出 json 格式的功能,怎么實(shí)現(xiàn)的呢?其實(shí)就是在輸出的開(kāi)頭先放上 "```json" 這個(gè)前綴,這樣自回歸模型在預(yù)測(cè)下一個(gè) token 的時(shí)候,就知道后面輸出的一定是 json 代碼。這是比在 prompt 里面寫(xiě)上 "請(qǐng)用 json 格式輸出" 或者 "請(qǐng)以 ```json 開(kāi)頭輸出" 靠譜很多的。
要讓模型有自己的思考,最關(guān)鍵的就是要把思考的片段和外界輸入輸出的片段在自回歸模型輸入 token 的層面上就分隔開(kāi),就像是現(xiàn)在有 system、user 和 assistant 這些特殊 token,可以增加一個(gè) thought。這個(gè) thought 就是大模型的工作記憶。
我們也應(yīng)該注意到,目前 OpenAI API 這種模型與世界的交互方式本質(zhì)上還是批處理式而非流式的,每次 OpenAI API 調(diào)用都是無(wú)狀態(tài)的,需要帶上前面的所有聊天記錄,重復(fù)計(jì)算所有的 KV Cache。當(dāng)上下文比較長(zhǎng)的時(shí)候,這個(gè)重復(fù)計(jì)算 KV Cache 的開(kāi)銷是相當(dāng)高的。如果我們把 AI Agent 想象成一個(gè)實(shí)時(shí)與世界交互的人,它其實(shí)是不斷在流式接受外界的輸入 token,KV Cache 是一直在 GPU 內(nèi)存里或者臨時(shí)換出到 CPU 內(nèi)存里,這樣 KV Cache 就是 AI Agent 的工作記憶,或者說(shuō) AI Agent 的狀態(tài)。
那么工作記憶中應(yīng)該包括什么呢?我認(rèn)為工作記憶最重要的就是 AI 對(duì)自己的感知,以及 AI 對(duì)用戶的感知,這兩者缺一不可。
早在 2018 年,我們基于 RNN 這套老方法搞微軟小冰的時(shí)候,就做了一個(gè)情感系統(tǒng),其中用一個(gè)向量 Eq 表示用戶的狀態(tài),比如用戶在討論的話題、用戶的意圖、情緒狀態(tài),以及年齡、性別、興趣、職業(yè)、性格等基本信息。再用一個(gè)向量 Er 表示小冰的狀態(tài),也包括正在討論的話題、小冰的意圖、情緒狀態(tài),以及年齡、性別、興趣、職業(yè)、性格等基本信息。
這樣一來(lái),雖然語(yǔ)言模型的能力相比今天的大模型是弱爆了,但至少能穩(wěn)定的回答 "你幾歲了" 這種問(wèn)題,不會(huì)一會(huì)兒說(shuō)自己 18 歲,一會(huì)兒說(shuō)自己 28 歲了。小冰也能夠記住用戶的一些基本信息,不至于感覺(jué)每次聊天都很陌生。
今天的很多 AI Agent 卻沒(méi)有在工程上做好這些優(yōu)化,比如 prompt 里面沒(méi)有寫(xiě)清楚 AI 角色目前的設(shè)定,就沒(méi)辦法穩(wěn)定回答自己幾歲;只是記錄最近的聊天記錄而沒(méi)有做記憶系統(tǒng),那也記不住用戶幾歲。
有趣的靈魂:社交能力
下一個(gè)問(wèn)題就是 AI agent 會(huì)不會(huì)主動(dòng)關(guān)心人??雌饋?lái)主動(dòng)關(guān)心是個(gè)很高級(jí)的能力,其實(shí)一點(diǎn)也不難。我主動(dòng)關(guān)心老婆,是因?yàn)槊刻鞎?huì)想起來(lái)她好幾次。只要想起來(lái)了,結(jié)合前面說(shuō)過(guò)的話,就會(huì)自然去關(guān)心人。
對(duì)于 AI 來(lái)說(shuō),只要讓 AI 有一個(gè)內(nèi)部的思考狀態(tài),也就是前面提到的工作記憶,然后每小時(shí)自動(dòng)喚醒一次就行了。
比如用戶說(shuō)了第二天要去醫(yī)院看病,那么第二天的時(shí)間到了,我告訴大模型當(dāng)前時(shí)間和工作記憶,大模型就會(huì)輸出關(guān)心人的話,并且更新工作記憶。工作記憶更新之后,大模型知道用戶還沒(méi)有回復(fù),就知道不要不斷騷擾用戶。
與之相關(guān)的一個(gè)問(wèn)題是 AI Agent 會(huì)不會(huì)主動(dòng)聯(lián)系用戶,會(huì)不會(huì)主動(dòng)開(kāi)啟話題。
人類有說(shuō)不完的話題是因?yàn)槊總€(gè)人都有自己的生活,在好朋友面前就是有分享欲的。因此名人的數(shù)字分身就相對(duì)比較容易做主動(dòng)分享,因?yàn)槊擞泻芏喙_(kāi)的新聞事件,可以經(jīng)常分享給用戶。對(duì)于一個(gè)虛構(gòu)的人物形象,有可能就需要運(yùn)營(yíng)團(tuán)隊(duì)來(lái)給虛構(gòu)形象設(shè)計(jì)自己的生活了。所以我一直認(rèn)為純閑聊很容易導(dǎo)致用戶不知道該聊什么,AI Agent 一定要有故事性才能長(zhǎng)期吸引用戶。
除了分享個(gè)人生活,還有很多開(kāi)啟話題的方式,例如:
分享當(dāng)前的心情和感受;
分享一下用戶可能感興趣的最新內(nèi)容,就像抖音的推薦系統(tǒng);
回憶過(guò)去,例如紀(jì)念日,美好的回憶;
最笨的方法就是通用的打招呼類問(wèn)題,比如 "在干嘛?" "我想你了"。
當(dāng)然作為一個(gè)高情商的 AI Agent,什么情況下要關(guān)心,什么情況下要主動(dòng)分享,是需要跟當(dāng)前 AI 對(duì)用戶和自己的感知相關(guān)的。比如如果一個(gè)女生對(duì)我不感興趣,我卻總是給她一天發(fā)很多生活日常,那估計(jì)過(guò)不了幾天就被拉黑了。同樣,如果 AI Agent 跟用戶還沒(méi)聊幾句,就天天給推送內(nèi)容,用戶只會(huì)把它當(dāng)作廣告。
我自己之前是比較內(nèi)向的,很少有情緒波動(dòng),不會(huì)拒絕別人,也害怕被別人拒絕,因此不敢主動(dòng)追妹子,也從來(lái)沒(méi)有被妹子拉黑過(guò)。還好我很幸運(yùn)地遇到了合適的妹子,所以才沒(méi)有落到 "我今年 30 歲了,跟很多校友一樣,還沒(méi)有談過(guò)戀愛(ài)" 這種地步?,F(xiàn)在的 AI Agent 也是跟我一樣沒(méi)有情緒波動(dòng),不會(huì)拒絕用戶,也不會(huì)說(shuō)可能讓人傷心、反感或者生氣的話,因此自然也很難跟用戶主動(dòng)建立深層的陪伴關(guān)系。在虛擬男女友這個(gè)賽道上,目前的 AI Agent 產(chǎn)品還是主要靠打擦邊球,還做不到基于信任的長(zhǎng)期陪伴。
AI Agent 如何關(guān)心人、如何主動(dòng)開(kāi)啟話題,是社交技巧的一方面。多個(gè) AI Agent 如何社交,是更難也更有趣的一件事情,比如狼人殺、誰(shuí)是臥底之類經(jīng)典的社交推理類游戲。
狼人殺的核心是隱藏自己的身份,并識(shí)破其他人偽裝的身份。隱瞞和欺騙其實(shí)是跟 AI 的價(jià)值觀不符的,因此有時(shí)候 GPT-4 會(huì)不配合。特別是狼人殺里面的 "殺" 字,GPT-4 會(huì)說(shuō),我是一個(gè) AI 模型,不能殺人。但把 "殺" 字改成 "移除" 或者 "流放",GPT-4 就可以干活了。因此我們可以看到,在角色扮演場(chǎng)景下如果 AI 演的入戲,那就是老奶奶漏洞;如果 AI 拒絕演戲,那就沒(méi)有完成角色扮演的任務(wù)。
這就體現(xiàn)了 AI 在安全性和有用性之間的矛盾。一般我們?cè)u(píng)估大模型時(shí),都要同時(shí)報(bào)告這兩個(gè)指標(biāo)。一個(gè)什么都不回答的模型安全性最高,但有用性最低;一個(gè)口無(wú)遮攔的未對(duì)齊模型有用性更強(qiáng),但是安全性就很低。OpenAI 因?yàn)樾枰袚?dān)很多社會(huì)責(zé)任,就需要犧牲一些有用性來(lái)?yè)Q取安全性。Google 是一個(gè)更大的公司,政治正確的要求更高,在有用性和安全性之間就更偏向安全性。
要從多輪對(duì)話中發(fā)現(xiàn)破綻并識(shí)破謊言,需要比較強(qiáng)的推理能力,GPT-3.5 級(jí)別的模型很難做到,需要 GPT-4 級(jí)別的模型。但如果簡(jiǎn)單將完整的歷史發(fā)言交給大模型,信息分散在大量沒(méi)有太多營(yíng)養(yǎng)的發(fā)言和投票中,一些發(fā)言之間的邏輯關(guān)聯(lián)還是很難被發(fā)現(xiàn)。因此我們可以采用 MemGPT 的方法,把游戲狀態(tài)和每一輪的發(fā)言進(jìn)行總結(jié),這樣不僅節(jié)約 token,還能提高推理效果。
此外,在投票環(huán)節(jié)下,大模型如果僅僅輸出一個(gè)代表玩家編號(hào)的數(shù)字,經(jīng)常由于思考深度不足導(dǎo)致胡亂投票。因此,我們可以采用先想后說(shuō)(Chain of Thought)的方法,首先輸出分析文本,再輸出投票結(jié)果。發(fā)言環(huán)節(jié)也是類似的,先輸出分析文本,再簡(jiǎn)潔地發(fā)言。
狼人殺中的 AI Agent 是按順序發(fā)言的,不存在搶麥的問(wèn)題。那么如果是幾個(gè) AI Agent 就一個(gè)話題自由討論,它們能不能像正常人一樣交流,既不冷場(chǎng)又不互相搶麥?為了達(dá)到比較好的用戶體驗(yàn),我們希望不僅僅局限于文字,讓這些 AI Agent 在一個(gè)語(yǔ)音會(huì)議里吵架或者演繹劇情,這可以實(shí)現(xiàn)嗎?
其實(shí)有很多工程的方法可以做,比如首先讓大模型選擇發(fā)言角色,再調(diào)用對(duì)應(yīng)的角色去發(fā)言。這樣相當(dāng)于增加了發(fā)言延遲,但可以徹底避免搶麥或者冷場(chǎng)。更類似真人討論的方法是,各個(gè)角色分別以一定的概率發(fā)言,遇到搶麥就退讓?;蛘咴诎l(fā)言之前先判斷前面的對(duì)話跟當(dāng)前角色是否相關(guān),不相關(guān)就不發(fā)言。
但是我們有更根本的一種方法:讓大模型的輸入輸出都變成一個(gè)持續(xù)的 token 流,而不是像現(xiàn)在 OpenAI 的 API 這樣每次都輸入一個(gè)完整的 context。Transformer 模型它本身就是自回歸的,源源不斷地接收從語(yǔ)音識(shí)別過(guò)來(lái)的外部輸入 token,也在不斷接收自己前面內(nèi)部思考的 token。它可以輸出 token 到外部的語(yǔ)音合成,也可以輸出 token 給自己思考。
當(dāng)我們把大模型的輸入輸出都變成流式的之后,大模型就變成有狀態(tài)的了,也就是 KV Cache 需要持久駐留在 GPU 內(nèi)。語(yǔ)音輸入 token 的速度一般不超過(guò)每秒 5 個(gè),語(yǔ)音合成 token 的速度一般也不超過(guò)每秒 5 個(gè),但是大模型本身輸出 token 的速度可以達(dá)到每秒 50 個(gè)以上。這樣如果 KV Cache 持久駐留在 GPU 內(nèi),并且沒(méi)有太多內(nèi)部思考的話,GPU 里的內(nèi)存大多數(shù)時(shí)間是閑置的。
因此可以考慮做持久化 KV Cache,把 KV Cache 從 GPU 內(nèi)存?zhèn)鞒龅?CPU 內(nèi)存,下一次輸入 token 的時(shí)候再把 KV Cache 加載進(jìn)來(lái)。例如對(duì)于 7B 模型,用了 GQA 優(yōu)化之后,典型的 KV Cache 在 100 MB 以下,通過(guò) PCIe 傳出再傳入只需要 10 毫秒。如果我們每秒加載一次 KV Cache 做一次推理,處理一組幾個(gè)語(yǔ)音識(shí)別出來(lái)的輸入 token,不會(huì)太影響整個(gè)系統(tǒng)的性能。
這樣換入換出的性能損失是比重新輸入上下文,重新計(jì)算 KV Cache 更低的。但至今沒(méi)有哪家模型推理提供商做這種基于持久化 KV Cache 的 API,我猜測(cè)主要是應(yīng)用場(chǎng)景問(wèn)題。
大多數(shù)類似 ChatGPT 的場(chǎng)景中,用戶與 AI Agent 的交互并不是實(shí)時(shí)的,有可能 AI 說(shuō)了一句話后用戶好幾分鐘不說(shuō)話,這樣持久化 KV Cache 占據(jù)大量 CPU 內(nèi)存空間,就會(huì)帶來(lái)很大的內(nèi)存成本。因此這種持久化 KV Cache 最適合的場(chǎng)景也許就是我們剛討論的實(shí)時(shí)語(yǔ)音聊天,只有輸入流的間隔足夠短,存儲(chǔ)持久化 KV Cache 的開(kāi)銷可能才更低。因此我認(rèn)為 AI Infra 一定要跟應(yīng)用場(chǎng)景結(jié)合,如果沒(méi)有好的應(yīng)用場(chǎng)景驅(qū)動(dòng),很多 infra 優(yōu)化都沒(méi)法做。
如果我們有 Grace Hopper 這樣的統(tǒng)一內(nèi)存架構(gòu),由于 CPU 內(nèi)存和 GPU 之間的帶寬大了,持久化 KV Cache 的換入換出代價(jià)會(huì)更低。但統(tǒng)一內(nèi)存的容量成本也比主機(jī)的 DDR 內(nèi)存更高,因此會(huì)對(duì)應(yīng)用場(chǎng)景的實(shí)時(shí)性更加挑剔。
上面一頁(yè)講的多 Agent 互動(dòng)方案中,還是依靠語(yǔ)音識(shí)別和語(yǔ)音合成來(lái)把語(yǔ)音轉(zhuǎn)換成 token 的。前面我們?cè)诙嗄B(tài)大模型方案中分析過(guò),這種方案大概需要 2 秒的延遲,包括停頓檢測(cè) 0.5s + 語(yǔ)音識(shí)別 0.5s + 大模型 0.5s + 語(yǔ)音合成 0.5s。這里面每一項(xiàng)都可以優(yōu)化,比如我們已經(jīng)優(yōu)化到 1.5 秒,但是很難優(yōu)化到 1 秒內(nèi)。
為什么這種語(yǔ)音方案延遲高呢?根本上是因?yàn)檎Z(yǔ)音識(shí)別和合成過(guò)程需要按句子 "翻譯",而不完全是流式的。
我們的后端同事總是把語(yǔ)音識(shí)別叫做 "翻譯",我一開(kāi)始不理解,后來(lái)發(fā)現(xiàn)確實(shí)很像是國(guó)際談判會(huì)議中的翻譯。一方說(shuō)一句話,翻譯員翻譯一句,這時(shí)候?qū)γ娌拍苈?tīng)懂。對(duì)面回答一句話,翻譯員翻譯,然后才能聽(tīng)懂。這種國(guó)際會(huì)議的溝通效率都不是很高。傳統(tǒng)語(yǔ)音方案中,大模型聽(tīng)不懂聲音,所以需要先把聲音按照句子停頓分隔開(kāi),使用語(yǔ)音識(shí)別翻譯成文本,送給大模型,大模型把輸出的內(nèi)容拆成一句一句的,使用語(yǔ)音合成翻譯成語(yǔ)音,因此整個(gè)流程的延遲很長(zhǎng)。我們?nèi)祟愂锹?tīng)一個(gè)字想一個(gè)字,絕不會(huì)聽(tīng)完一整句話之后才開(kāi)始想第一個(gè)字。
要想做到極致的延遲,就需要端到端的語(yǔ)音大模型。也就是把語(yǔ)音經(jīng)過(guò)合適的編碼后,直接變成 token 流輸入到大模型。大模型輸出的 token 流經(jīng)過(guò)解碼,直接生成語(yǔ)音。這種端到端模型可以實(shí)現(xiàn) 0.5 秒以內(nèi)的語(yǔ)音響應(yīng)時(shí)延。Google Gemini 的演示視頻就是 0.5 秒的語(yǔ)音響應(yīng)時(shí)延,我認(rèn)為端到端語(yǔ)音大模型是做到這么低時(shí)延最可行的方案。
除了降低時(shí)延,端到端語(yǔ)音大模型還有另外兩個(gè)重要優(yōu)勢(shì)。
第一,它可以識(shí)別和合成任何聲音,除了說(shuō)話,還包括唱歌、音樂(lè)、機(jī)械聲、噪聲等。因此我們可以把它叫做一個(gè)端到端聲音大模型,而不僅僅是語(yǔ)音大模型。
第二,端到端模型可以減少語(yǔ)音/文字轉(zhuǎn)換導(dǎo)致的信息丟失。例如在現(xiàn)在的語(yǔ)音識(shí)別中,識(shí)別出的文字會(huì)丟失說(shuō)話人的情感和語(yǔ)氣信息,而且由于缺少上下文,專有名詞經(jīng)常識(shí)別錯(cuò)誤。在現(xiàn)在的語(yǔ)音合成中,為了讓合成的語(yǔ)音帶有情感和語(yǔ)氣,一般需要在大模型的輸出文本中進(jìn)行適當(dāng)?shù)臉?biāo)注,再訓(xùn)練語(yǔ)音模型來(lái)根據(jù)標(biāo)注生成不同的情感和語(yǔ)氣。使用端到端聲音大模型后,識(shí)別和合成就會(huì)天然帶有情感和語(yǔ)氣信息,并且可以根據(jù)上下文更好地理解專有名詞,語(yǔ)音理解的準(zhǔn)確率和語(yǔ)音合成的效果都能顯著提升。
有趣的靈魂:性格匹配
在結(jié)束有趣的 AI 部分之前,我們來(lái)思考最后一個(gè)問(wèn)題:如果我們的 AI Agent 是一張白紙,比如我們做一個(gè)智能語(yǔ)音助手,或者我們有好幾個(gè) AI 形象需要匹配最合適的,那么他/她的性格是跟用戶越相似越好嗎?
市面上測(cè)試伴侶匹配度的問(wèn)卷一般都是一些主觀問(wèn)題,比如 "你們?cè)谝黄鹗欠窠?jīng)常吵架",這對(duì)設(shè)定 AI Agent 的人設(shè)來(lái)說(shuō)完全沒(méi)用,因?yàn)橛脩舾?AI 還不認(rèn)識(shí)呢。因此我剛開(kāi)始做 AI Agent 的時(shí)候,就想搞一種完全客觀的方法,根據(jù)社交網(wǎng)絡(luò)上的公開(kāi)信息來(lái)推測(cè)用戶的性格和興趣愛(ài)好,然后匹配 AI Agent 的人設(shè)。
我把自己比較熟悉的一些女生的社交網(wǎng)絡(luò)公開(kāi) profile 交給大模型,結(jié)果發(fā)現(xiàn)匹配度最高的竟然是我的前女友。用大模型的話來(lái)說(shuō),我們?cè)诤芏喾矫婢拖褡鲞^(guò) alignment 一樣。但我們最終也沒(méi)能走到一起。那個(gè)這個(gè)匹配度測(cè)試出了什么問(wèn)題呢?
首先,社交網(wǎng)絡(luò)上的公開(kāi)信息一般包含的都是每個(gè)人性格中正面的一面,但不包含其中負(fù)面的一面。就像《黑鏡》里面女主并不喜歡根據(jù)男主社交網(wǎng)絡(luò)信息做出來(lái)的機(jī)器人 Ash,因?yàn)樗l(fā)現(xiàn)機(jī)器人 Ash 在一些負(fù)面情緒上跟真實(shí)的 Ash 完全不一樣。我算是比較喜歡分享生活的人,但我的 blog 里面負(fù)面情緒也比較少。如果 AI Agent 和用戶負(fù)面情緒的點(diǎn)正好撞在一起,那就很容易炸。
其次,性格和興趣各個(gè)維度的重要性并不是等價(jià)的,有的方面一個(gè)不匹配就可能抵消了很多其他方面的匹配。這張圖就是 Myers Briggs 的 MBTI 性格匹配圖,其中藍(lán)色的格子是最匹配的,但是它們都不在對(duì)角線上,也就是性格非常相似的都是比較匹配,但不是最匹配。最匹配的是什么呢?S/N(感覺(jué)/直覺(jué))和 T/F(思考/情感)這兩個(gè)維度最好是相同的,而另外兩個(gè)維度,內(nèi)外向(E/I)和 J/P(判斷/感知)最好是互補(bǔ)的。
MBTI 里面最重要的一個(gè)維度是 S/N(感覺(jué)/直覺(jué)),簡(jiǎn)單來(lái)說(shuō),S(感覺(jué))型的人更關(guān)注當(dāng)下,而 N(直覺(jué))型的人更關(guān)注未來(lái)。比如一個(gè) S 型的人喜歡享受當(dāng)下的生活,而像我這樣的 N 型人天天思考人類的未來(lái)。這張性格匹配圖里面最不匹配的基本上都是 S/N 相反的。
因此,一個(gè) AI Agent 如果要塑造成完美伴侶的形象,不是跟用戶的性格和興趣愛(ài)好越相似越好,而是需要在合適的地方形成互補(bǔ)。還要隨著交流的深入不斷調(diào)整 AI 的人設(shè),尤其是在負(fù)面情緒方面需要跟用戶互補(bǔ)。
我當(dāng)時(shí)還做了一個(gè)實(shí)驗(yàn),把一些我熟悉的情侶的社交網(wǎng)絡(luò)公開(kāi) profile 交給大模型,結(jié)果發(fā)現(xiàn)平均匹配度并沒(méi)有想象的那么高。那么為什么每個(gè)人沒(méi)有跟匹配度高的在一起呢?
第一,前面說(shuō)過(guò)了,這個(gè)匹配度測(cè)試機(jī)制有 bug,匹配度高的并不一定就適合在一起。第二,每個(gè)人的社交圈子其實(shí)都很小,一般也沒(méi)有這么多時(shí)間一個(gè)一個(gè)嘗試去匹配篩選。大模型可以幾秒鐘讀完 10 萬(wàn)字的資料,比量子波動(dòng)速讀還快,人可沒(méi)這個(gè)本事,只能憑直覺(jué)大概匹配一下,再在相處中慢慢了解和適應(yīng)。其實(shí)匹配度不高也并不一定不幸福。
大模型為我們提供了新的可能,用真人的社交網(wǎng)絡(luò) profile 測(cè)匹配度,可以幫我們從茫茫人海中篩選潛在伴侶。比如告訴你學(xué)校里的學(xué)生哪些是最匹配的,這樣遇到合適妹子的概率就大大增加了。匹配度源自性格、興趣、三觀、經(jīng)歷的相似度,不是單個(gè)人的絕對(duì)評(píng)分而是一個(gè)兩兩關(guān)系,并不會(huì)出現(xiàn)大家都喜歡少數(shù)幾個(gè)人這種情況。
AI 甚至還可能為我們創(chuàng)造實(shí)際中很難遇到的完美伴侶形象。但是沉迷于這樣的虛擬伴侶是不是一件好事,不同的人大概有不同的看法。更進(jìn)一步,如果 AI 完美伴侶有了自己的意識(shí)和思考,還能主動(dòng)跟世界交互,有了自己的生活,那可能用戶的沉浸感就會(huì)更強(qiáng),但那是不是就成了數(shù)字生命?數(shù)字生命又是一個(gè)極具爭(zhēng)議性的話題。
人的社交圈子很小,人類在宇宙中也很孤獨(dú)。費(fèi)米悖論有一個(gè)可能的解釋,宇宙中很可能存在大量智能文明,但是每個(gè)文明都有一定的社交圈子,就像我們?nèi)祟愔两穸紱](méi)有走出太陽(yáng)系。在浩瀚的宇宙中,智能文明之間的相遇就像合適的伴侶相遇一樣可遇不可求。
大模型怎么促成文明之間的相遇呢?因?yàn)樾畔⒖赡鼙任镔|(zhì)更容易傳播到宇宙深處。我在 5 年前就想過(guò),AI 模型可能成為人類文明的數(shù)字化身,跨越人類肉體的時(shí)空限制,把人類真正帶到太陽(yáng)系甚至銀河系之外,成為星際文明。
有用的 AI
前面講了這么多有趣的 AI,下面我們來(lái)聊聊有用的 AI。
有用的 AI 其實(shí)更多是一個(gè)大模型基礎(chǔ)能力的問(wèn)題,比如復(fù)雜任務(wù)的規(guī)劃和分解、遵循復(fù)雜指令、自主使用工具以及減少幻覺(jué)等等,并不能通過(guò)一個(gè)外部的系統(tǒng)簡(jiǎn)單解決。比如 GPT-4 的幻覺(jué)就比 GPT-3.5 少很多。區(qū)分哪些問(wèn)題是模型基礎(chǔ)能力問(wèn)題,哪些問(wèn)題是可以通過(guò)一套外部系統(tǒng)來(lái)解決的,也是很需要智慧的。
其實(shí)有一篇很著名的文章叫做 The Bitter Lesson,它講的是凡是能夠用算力的增長(zhǎng)解決的問(wèn)題,最后發(fā)現(xiàn)充分利用更大的算力可能就是一個(gè)終極的解決方案。
Scaling law 是 OpenAI 最重要的發(fā)現(xiàn),但是很多人對(duì) Scaling law 還是缺少足夠的信仰和敬畏之心。
AI 是干活快但不太靠譜的初級(jí)員工
在當(dāng)前的技術(shù)條件下我們能做一個(gè)什么樣的 AI 呢?
要搞清楚大模型適合做什么,我們需要先想清楚一點(diǎn):有用 AI 的競(jìng)爭(zhēng)對(duì)手不是機(jī)器,而是人。工業(yè)革命里面的機(jī)器是取代人的體力勞動(dòng),計(jì)算機(jī)是取代人的簡(jiǎn)單重復(fù)腦力勞動(dòng),而大模型則是用來(lái)取代人更復(fù)雜一些的腦力勞動(dòng)。所有大模型能做的事情,人理論上都能做,只是效率和成本的問(wèn)題。
因此,要讓 AI 有用,就要搞清楚大模型到底哪里比人強(qiáng),揚(yáng)長(zhǎng)避短,拓展人類能力的邊界。
比如,大模型閱讀理解長(zhǎng)文本的能力是遠(yuǎn)遠(yuǎn)比人強(qiáng)的。給它一本幾十萬(wàn)字的小說(shuō)或者文檔,它幾十秒就能讀完,而且能回答出 90% 以上的細(xì)節(jié)問(wèn)題。這個(gè)大海撈針的能力就比人強(qiáng)很多。那么讓大模型做資料總結(jié)、調(diào)研分析之類的任務(wù),那就是在拓展人類能力的邊界。Google 是最強(qiáng)的上一代互聯(lián)網(wǎng)公司,它也是利用了計(jì)算機(jī)信息檢索的能力遠(yuǎn)比人強(qiáng)這個(gè)能力。
再如,大模型的知識(shí)面是遠(yuǎn)比人廣闊的?,F(xiàn)在不可能有任何人的知識(shí)面比 GPT-4 還廣,因此 ChatGPT 已經(jīng)證明,通用的 chatbot 是大模型一個(gè)很好的應(yīng)用。生活中的常見(jiàn)問(wèn)題和各個(gè)領(lǐng)域的簡(jiǎn)單問(wèn)題,問(wèn)大模型比問(wèn)人更靠譜,這也是在拓展人類能力的邊界。很多創(chuàng)意性工作需要多個(gè)領(lǐng)域的知識(shí)交叉碰撞,這也是大模型適合做的事情,真人因?yàn)橹R(shí)面的局限,很難碰撞出這么多火花來(lái)。但有些人非要把大模型局限在一個(gè)狹窄的專業(yè)領(lǐng)域里,說(shuō)大模型的能力不如領(lǐng)域?qū)<遥虼苏J(rèn)為大模型不實(shí)用,那就是沒(méi)有用好大模型。
在嚴(yán)肅的商業(yè)場(chǎng)景下,我們更多希望用大模型輔助人,而不是代替人。也就是說(shuō)人是最終的守門(mén)員。比如說(shuō)大模型閱讀理解長(zhǎng)文本的能力比人強(qiáng),但我們也不應(yīng)該把它做的總結(jié)直接拿去作為商業(yè)決策,而要讓人 review 一下,由人做最終的決定。
這里邊有兩個(gè)原因,第一個(gè)是準(zhǔn)確性問(wèn)題,如果說(shuō)我們之前在 ERP 系統(tǒng)里面做一個(gè)項(xiàng)目,回答這個(gè)部門(mén)過(guò)去十個(gè)月平均工資是多少?讓它生成一個(gè) SQL 語(yǔ)句去執(zhí)行,但是它總有 5% 以上的概率會(huì)生成錯(cuò),通過(guò)多次重復(fù)也仍然有一定的錯(cuò)誤率,用戶不懂 SQL,在大模型把 SQL 寫(xiě)錯(cuò)的時(shí)候也沒(méi)法發(fā)現(xiàn),因此用戶沒(méi)辦法判斷生成的查詢結(jié)果對(duì)不對(duì)。哪怕有 1% 的錯(cuò)誤率,這個(gè)錯(cuò)誤率還是不能忍受的,這就很難商用。
另外一個(gè)方面,大模型的能力目前只是達(dá)到一個(gè)入門(mén)級(jí)的水平,達(dá)不到專家級(jí)。華為的一個(gè)高管給我們開(kāi)會(huì)的時(shí)候就有一個(gè)很有意思的說(shuō)法:如果你是領(lǐng)域?qū)<遥銜?huì)覺(jué)得大模型很笨;但是如果你是領(lǐng)域的小白,你就會(huì)發(fā)現(xiàn)大模型非常聰明。我們相信基礎(chǔ)大模型一定會(huì)進(jìn)步到專家級(jí),但是現(xiàn)在我們不能坐等基礎(chǔ)大模型的進(jìn)步。
我們可以把大模型當(dāng)成一個(gè)干活非常快但不太靠譜的初級(jí)員工。我們可以讓大模型做一些初級(jí)的工作,比如寫(xiě)一些基礎(chǔ)的 CRUD 代碼,比人寫(xiě)得還快。但是你讓他去設(shè)計(jì)系統(tǒng)架構(gòu),去做研究解決技術(shù)前沿問(wèn)題,那是不靠譜的。我們?cè)诠纠镆膊粫?huì)讓初級(jí)員工去做這些事情。有了大模型之后,相當(dāng)于有了大量又便宜干活又快的初級(jí)員工。怎么把這些初級(jí)員工用好,是一個(gè)管理問(wèn)題。
我的導(dǎo)師在我剛開(kāi)始讀博的第一次會(huì)議上,就讓我們學(xué)一些管理。當(dāng)時(shí)我還不太理解為啥做研究還要學(xué)管理,現(xiàn)在我覺(jué)得導(dǎo)師講得太好了?,F(xiàn)在重要的研究項(xiàng)目基本上都是團(tuán)隊(duì)作戰(zhàn),就必須要管理了。有了大模型之后,我們的團(tuán)隊(duì)中又增加了一些 AI 員工,這些 AI 員工還不太靠譜,管理就更重要了。
AutoGPT 就是按照德魯克的管理學(xué)方法,把這些 AI 員工組織成一個(gè)項(xiàng)目,分工合作完成目標(biāo)。但 AutoGPT 的流程還是相對(duì)僵化的,因此經(jīng)常在一個(gè)地方原地轉(zhuǎn)圈圈,或者走進(jìn)死胡同里。如果把企業(yè)中管理初級(jí)員工的一套機(jī)制、項(xiàng)目從立項(xiàng)到交付的一套流程引入 AutoGPT,可以讓 AI 員工干得更好,甚至有可能做成像 Sam Altman 說(shuō)的那樣,只有一個(gè)人的公司。
當(dāng)前有用的 AI Agent 大致可以分成兩類:個(gè)人助理和商業(yè)智能。
個(gè)人助理類的 AI Agent,其實(shí)已經(jīng)存在很多年了,比如手機(jī)上的 Siri、小度智能音箱。最近一些智能音箱產(chǎn)品也接入了大模型,但是由于成本問(wèn)題還不夠聰明,語(yǔ)音響應(yīng)延遲還比較高,而且也沒(méi)有辦法做 RPA 跟手機(jī) App 或者智能家居設(shè)備互動(dòng)。但這些技術(shù)問(wèn)題最終都是能解決的。
很多創(chuàng)業(yè)公司都想做通用的語(yǔ)音助手或者智能音箱,但我覺(jué)得這些大廠還是有入口優(yōu)勢(shì)。大廠不做是因?yàn)槌杀尽㈦[私等多方面的考慮,一旦大廠哪一天下場(chǎng)了,創(chuàng)業(yè)公司有什么競(jìng)爭(zhēng)優(yōu)勢(shì)?反倒是結(jié)合一些品牌 IP 做智能互動(dòng)手辦,或者 Rewind、AI Pin 這些有設(shè)計(jì)感的智能硬件,可能有一些空間。
商業(yè)智能類的 AI Agent,數(shù)據(jù)和行業(yè) know-how 是護(hù)城河。數(shù)據(jù)是大模型的關(guān)鍵,特別是行業(yè)知識(shí),公開(kāi)語(yǔ)料中可能根本沒(méi)有。OpenAI 不僅強(qiáng)在算法上,更是強(qiáng)在數(shù)據(jù)上。
在產(chǎn)品方面,我認(rèn)為基礎(chǔ)模型公司應(yīng)該學(xué)習(xí) OpenAI 的 1P-3P 產(chǎn)品法則。什么意思呢?只要一兩個(gè)人(1P)開(kāi)發(fā)的產(chǎn)品就自己(first Party)做,需要三個(gè)人(3P)以上開(kāi)發(fā)的產(chǎn)品就讓第三方(third Party)做。
比如 OpenAI API、ChatGPT、GPTs Store 這些產(chǎn)品,都不是特別復(fù)雜,一個(gè)人做個(gè) demo 足夠了。就算是比較成熟的產(chǎn)品,也不需要一個(gè)很大的團(tuán)隊(duì)。這種就是 1P 產(chǎn)品。
而比較復(fù)雜的行業(yè)模型、特定場(chǎng)景下復(fù)雜任務(wù)的規(guī)劃求解、復(fù)雜的記憶系統(tǒng),就不是一兩個(gè)人能夠搞定的。這種 3P 產(chǎn)品就適合讓第三方去做。
基礎(chǔ)模型公司應(yīng)該專注于基礎(chǔ)模型能力和 infra,相信 scaling law,而不是不斷打補(bǔ)丁?;A(chǔ)模型公司最忌諱的就是投入大量高級(jí)工程師和科學(xué)家去做雕花的事情,搞了一堆 3P 產(chǎn)品,最后又沒(méi)有相關(guān)的客戶關(guān)系,賣(mài)不出去。3P 產(chǎn)品最重要的可能是數(shù)據(jù)、行業(yè) know-how 和客戶資源,不一定是技術(shù)。
這就是為什么上一波 AI 創(chuàng)業(yè)公司很難賺錢(qián),因?yàn)樯弦徊?AI 不夠通用,最后都是一些需要大量定制的 3P 產(chǎn)品,坐擁大量高薪科學(xué)家的明星創(chuàng)業(yè)公司反倒不一定打得過(guò)雇了一堆大專程序員的接地氣公司,后者雖然估值上不去,甚至都入不了投資人的法眼,但現(xiàn)金流每年都是正的。
下面幾個(gè) "有用 AI" 的例子都是一兩個(gè)人可以開(kāi)發(fā)的 1P 產(chǎn)品,其實(shí)也很有用了。
有用 AI 的 1P 產(chǎn)品例子
第一個(gè)有用 AI 的例子是導(dǎo)游,這也是我開(kāi)始創(chuàng)業(yè)之后嘗試做的第一個(gè) AI Agent。
當(dāng)時(shí)我一個(gè)人來(lái)美國(guó)出差,同住的幾個(gè)朋友要么工作很忙要么比較宅,而我很喜歡出去玩。我在 LA 的朋友也不多,所以我就想做一個(gè) AI Agent 陪我一起出去玩。
我發(fā)現(xiàn) GPT-4 真的知道很多著名景點(diǎn),甚至還能幫你做行程規(guī)劃。比如說(shuō)我要去約書(shū)亞樹(shù)國(guó)家公園玩一天,就可以規(guī)劃出早上去哪、中午去哪、下午去哪,每個(gè)地方的停留時(shí)間還都比較合理。當(dāng)然要用英文問(wèn),用中文的效果就會(huì)差一些。可以說(shuō)網(wǎng)上有旅游攻略已經(jīng)包含了這些信息,但用搜索引擎把合適的攻略找出來(lái)并不容易。之前我每次出去玩都要提前一天做攻略,現(xiàn)在路上跟 AI Agent 聊幾句就都搞定了。
我去 USC 玩的時(shí)候,剛進(jìn)校園就遇到了一波游客,他們想找個(gè)學(xué)生帶他們逛校園。我就說(shuō)我也是第一次來(lái) USC,但是我是做 AI Agent 的,可以讓 AI Agent 帶我們轉(zhuǎn)一轉(zhuǎn)。老外游客們很 nice 的就跟我一起走了。AI Agent 給我們推薦了 USC 校園最著名的幾個(gè)建筑。每到一個(gè)景點(diǎn),我會(huì)讓 AI Agent 語(yǔ)音講講這里的歷史,大家覺(jué)得就像請(qǐng)了個(gè)導(dǎo)游一樣靠譜,說(shuō) ChatGPT 也應(yīng)該增加這個(gè)功能。第二天的 OpenAI dev day 上展示的應(yīng)用場(chǎng)景果然就有旅行助理。
朋友帶我去約書(shū)亞樹(shù)國(guó)家公園玩的時(shí)候,門(mén)口有一個(gè) "禁止露營(yíng)" 的標(biāo)志,我們不知道是啥意思,就分別用 GPT-4V 和我們公司的 AI Agent 去做圖片識(shí)別,結(jié)果 GPT-4V 答錯(cuò)了,我們的 AI Agent 反而答對(duì)了。當(dāng)然這不是說(shuō)我們的 AI Agent 比 GPT-4V 還厲害,對(duì)錯(cuò)都是有概率的。一些知名的地標(biāo) AI Agent 也是可以識(shí)別出來(lái)的,比如斯坦福校園的紀(jì)念教堂。
不要小看大模型知道很多著名景點(diǎn)這個(gè)能力。論知識(shí)面,沒(méi)有人能夠比得過(guò)大模型。比如 2022 年,有個(gè)朋友跟我說(shuō)住在爾灣,我那時(shí)候甚至沒(méi)有聽(tīng)說(shuō)過(guò)爾灣。我問(wèn)爾灣在哪,朋友說(shuō)爾灣在橙縣,橙縣在加州,我查了半天地圖和 Wiki 才搞清楚爾灣、橙縣到底是個(gè)什么關(guān)系,為啥不直接說(shuō)是在洛杉磯。我老婆前段時(shí)間也分不清爾灣和灣區(qū)。我們也不算信息特別閉塞的人,但每個(gè)地方的生活常識(shí)并不是看起來(lái)那么顯然。
去過(guò)這些地方的人會(huì)覺(jué)得這些常識(shí)很容易記住,那是因?yàn)槿溯斎氲氖嵌嗄B(tài)數(shù)據(jù)?,F(xiàn)在的大模型可沒(méi)有地圖和圖片可看,僅靠文本訓(xùn)練語(yǔ)料就能夠上知天文,下知地理,已經(jīng)很不容易了。
第二個(gè)有用 AI 的例子,也是我在華為探索過(guò)的項(xiàng)目,是企業(yè) ERP 助手。
用過(guò) ERP 系統(tǒng)的都知道,從復(fù)雜的圖形界面里找到一個(gè)功能非常困難,而且有些需求很難點(diǎn)點(diǎn)圖形界面就能完成,因此要么把數(shù)據(jù)導(dǎo)出到 Excel 表里面處理,甚至還得用 Pandas 這類專門(mén)的數(shù)據(jù)處理工具。
我們知道大多數(shù)人都能把需求用自然語(yǔ)言描述清楚。大模型就提供了一種全新的自然語(yǔ)言用戶界面(LUI),用戶描述自己的意圖,AI Agent 就可以把活干完。GUI 是所見(jiàn)即所得,LUI 是所想即所得。
大模型并不擅長(zhǎng)處理大量數(shù)據(jù),因此 ERP 助手并不是讓大模型處理原始數(shù)據(jù),而是用大模型將用戶的自然語(yǔ)言需求自動(dòng)轉(zhuǎn)換成 SQL 語(yǔ)句,然后再去執(zhí)行 SQL 語(yǔ)句。這個(gè)代碼生成的路線在很多場(chǎng)景下都是比較靠譜的,這里的代碼不一定是 SQL、C、Python 這樣的通用編程語(yǔ)言,也包括 IDL(接口描述語(yǔ)言),也就是特定的數(shù)據(jù)格式。比如大模型要調(diào)用 API,輸出的文本格式奇奇怪怪,讓大模型輸出特定格式的 JSON 就老實(shí)了。
我最早在華為探索企業(yè) ERP 助手的時(shí)候,大模型的基礎(chǔ)能力還比較差,因此生成的 SQL 語(yǔ)句錯(cuò)誤率比較高,而且也不夠穩(wěn)定。但用 GPT-4 生成 SQL 語(yǔ)句的準(zhǔn)確率還是挺高的。
利用 GPT-4,我跟國(guó)科大合作的一個(gè) AI Agent 實(shí)踐課題,沒(méi)有很多 AI 基礎(chǔ)的本科和研究生同學(xué)也能從頭獨(dú)立實(shí)現(xiàn)企業(yè) ERP 助手,不僅能支持這一頁(yè) PPT 上左邊顯示的這 10 個(gè)只讀查詢,同學(xué)們還自己實(shí)現(xiàn)了增加、刪除、修改數(shù)據(jù)的支持,右邊這 7 個(gè)修改查詢也都支持了。
大家可以看到,這里面的很多需求都是挺復(fù)雜的,如果要程序員在 GUI 上開(kāi)發(fā)這些需求,一個(gè)人估計(jì)至少得搞一周。而且 ERP 的開(kāi)發(fā)是一個(gè)從需求到設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、發(fā)布的流程,整個(gè)流程走下來(lái),不知道多久過(guò)去了,而且中間產(chǎn)品經(jīng)理的信息傳遞可能還存在誤差。
因此傳統(tǒng) ERP 行業(yè)的本質(zhì)挑戰(zhàn)就是各行各業(yè)無(wú)窮無(wú)盡的定制化需求和有限的開(kāi)發(fā)人力之間的矛盾,開(kāi)發(fā) ERP 的產(chǎn)品經(jīng)理和程序員不懂行業(yè) know-how,這些寶貴的行業(yè) know-how 就很難通過(guò)流程的方式沉淀下來(lái)。大模型有望通過(guò) "意圖驅(qū)動(dòng)" 也就是 "所想即所得" 的方式徹底改變 ERP 的產(chǎn)品邏輯。
未來(lái)每個(gè)程序員都有大模型輔助之后,需求描述能力、架構(gòu)設(shè)計(jì)能力和技術(shù)表達(dá)能力一定是最重要的。因?yàn)槊總€(gè)程序員可能都相當(dāng)于一個(gè)架構(gòu)師 + 產(chǎn)品經(jīng)理 + committer,指揮著一堆 AI Agent 作為 "基層 AI 程序員",給這些 AI Agent 布置需求、設(shè)計(jì)架構(gòu)、驗(yàn)收代碼,還需要跟真人同事和上級(jí)溝通和匯報(bào)工作。
我發(fā)現(xiàn)很多基層程序員恰恰是在需求描述、架構(gòu)設(shè)計(jì)、技術(shù)表達(dá)這幾方面存在欠缺,只會(huì)悶頭寫(xiě)代碼。特別是技術(shù)表達(dá)能力,每次任職資格答辯都不能用 What-Why-How 的方式有條理的講清楚自己做的東西。私下里還覺(jué)得萬(wàn)般皆下品,唯有代碼高,把技術(shù)表達(dá)能力強(qiáng)的同事稱為 "PPT 專家"。那未來(lái)真的是有被淘汰的風(fēng)險(xiǎn)。
第三個(gè)有用 AI 的例子是大模型采集數(shù)據(jù)。
收集數(shù)據(jù)是一件非常麻煩的事情。比如,如果要收集一個(gè)實(shí)驗(yàn)室里每個(gè)教授和學(xué)生的信息,例如需要包括如下信息:
姓名
照片(如果有,就下載下來(lái),注意網(wǎng)頁(yè)上的圖片不一定是人的照片)
職稱(例如:教授)
研究方向(例如:數(shù)據(jù)中心網(wǎng)絡(luò))
簡(jiǎn)介
專業(yè)的數(shù)據(jù)采集公司是用正則表達(dá)式或者 HTML 元素路徑匹配頁(yè)面中固定位置的內(nèi)容,每個(gè)版式不同的頁(yè)面都需要 1 小時(shí)左右的開(kāi)發(fā)時(shí)間來(lái)定制爬蟲(chóng),開(kāi)發(fā)成本很高。對(duì)于每個(gè)院系、實(shí)驗(yàn)室、老師主頁(yè)格式都不相同的情況,開(kāi)發(fā)這種匹配頁(yè)面中固定位置的爬蟲(chóng),有時(shí)還不如手工一個(gè)一個(gè)頁(yè)面訪問(wèn),復(fù)制粘貼快。
而且還有一些網(wǎng)頁(yè)上有反爬機(jī)制,例如把郵箱寫(xiě)成 bojieli AT gmail.com 這種格式,雖然通過(guò)正則表達(dá)式也能匹配出其中一些情況,但總是無(wú)法窮盡所有情況。
大模型采集數(shù)據(jù)其實(shí)就是讓大模型模擬人去點(diǎn)擊網(wǎng)頁(yè),讀網(wǎng)頁(yè)中的內(nèi)容,提取網(wǎng)頁(yè)中的內(nèi)容,網(wǎng)頁(yè)中的每個(gè)字都經(jīng)過(guò)大模型的 "大腦" 讀了一遍。因此,大模型采集數(shù)據(jù)本質(zhì)上就是利用了大模型閱讀速度比人快這個(gè)特點(diǎn)。
具體來(lái)說(shuō),就是自動(dòng)找到網(wǎng)頁(yè)中的所有鏈接,訪問(wèn)鏈接,將網(wǎng)頁(yè)內(nèi)容轉(zhuǎn)換成文本,調(diào)用 GPT-4 判斷是否是教師或?qū)W生主頁(yè),如果是的話,就用 JSON 格式輸出姓名、E-mail 等信息。然后解析 JSON,存入數(shù)據(jù)庫(kù)。對(duì)于老師照片,可以使用 GPT-4V 對(duì)網(wǎng)頁(yè)中的圖片進(jìn)行分析,判斷是否是單人照片,如果是單人照片就保存下來(lái)。
大模型提取網(wǎng)頁(yè)中的內(nèi)容有什么缺點(diǎn)呢?如果用 GPT-4,缺點(diǎn)就是成本高,讀一個(gè)網(wǎng)頁(yè)的成本大約需要 0.01~0.1 美金。而傳統(tǒng)爬蟲(chóng)的數(shù)據(jù)采集方法,一旦寫(xiě)好爬蟲(chóng)腳本,爬一個(gè)網(wǎng)頁(yè)的 CPU 和帶寬成本只有萬(wàn)分之一美金,幾乎可以忽略不計(jì)。
好在這種姓名、郵箱等基本信息提取并不需要 GPT-4 這么強(qiáng)的模型,GPT-3.5 級(jí)別的模型就足夠了。識(shí)別圖片是否包含單張人臉,也有傳統(tǒng) CV 的人臉檢測(cè)算法。要獲取其他照片并做標(biāo)注的話,MiniGPT-4/v2 這樣的開(kāi)源多模態(tài)模型也足夠了。這樣讀一個(gè)網(wǎng)頁(yè)的成本就是 0.001~0.01 美金。
如果我們覺(jué)得 GPT-3.5 Turbo 讀一個(gè)長(zhǎng)網(wǎng)頁(yè)的 0.01 美金還是太高了,可以先截取網(wǎng)頁(yè)中開(kāi)頭的部分,如果識(shí)別出確實(shí)是教師主頁(yè),但內(nèi)容中缺失具體信息,再去讀后續(xù)的網(wǎng)頁(yè)內(nèi)容。這就像人肉數(shù)據(jù)采集一樣,大多數(shù)教師主頁(yè)中想要的數(shù)據(jù)都在開(kāi)頭部分。這樣讀一個(gè)網(wǎng)頁(yè)的成本可以控制在 0.001 美金,就完全可以接受了。
第四個(gè)有用 AI 的例子是手機(jī)語(yǔ)音助手。這個(gè)領(lǐng)域叫做 RPA(機(jī)器人流程自動(dòng)化),聽(tīng)起來(lái)這里面有個(gè)機(jī)器人,但其實(shí)不一定需要有具身智能那種機(jī)器人,Robotics 是個(gè)很廣闊的領(lǐng)域。
傳統(tǒng)的 RPA 都是程序員寫(xiě)好流程去操作固定的 app,比如按鍵精靈,還有 Siri 之類的語(yǔ)音助手。但是 Siri 目前的能力還非常有限,只能完成系統(tǒng)預(yù)設(shè)的簡(jiǎn)單任務(wù),不能完成任意的復(fù)雜任務(wù)。
基于大模型的手機(jī)語(yǔ)音助手可以自動(dòng)學(xué)習(xí)各種手機(jī) app 的操作,是一個(gè)通用的能力。比如騰訊的 AppAgent,可以自動(dòng)學(xué)習(xí)操作 Telegram、YouTube、Gmail、Lightroom、Clock、Temu 等多款 app,不需要人去教它怎么用。
RPA 的主要難點(diǎn)是學(xué)習(xí)使用 app 的過(guò)程,比如一個(gè)修圖的 app,怎么找到 app 中打馬賽克的功能在什么位置。因此 RPA 需要一個(gè)探索學(xué)習(xí)的過(guò)程,首先嘗試使用 app 中的各種功能,并記錄下來(lái)操作序列。在后續(xù)使用的過(guò)程中,先想要用哪種功能,再按照操作序列去操作。
手機(jī)語(yǔ)音助手,或者更廣泛的說(shuō) RPA,有兩條技術(shù)路線:視覺(jué)方案和元素樹(shù)方案。
騰訊的 AppAgent 用的是視覺(jué)方案。它的核心邏輯是基于視覺(jué)大模型的,圍繞著屏幕截圖進(jìn)行自動(dòng)操作:
打開(kāi)指定的 app,截圖;
將截圖和任務(wù)當(dāng)前的執(zhí)行狀態(tài)文本輸入到視覺(jué)大模型里,大模型決定下一步應(yīng)該怎么操作;如果大模型判定任務(wù)已經(jīng)完成,就退出;
模擬點(diǎn)擊執(zhí)行對(duì)應(yīng)的操作,回到步驟 1。
視覺(jué)方案的優(yōu)點(diǎn)是僅依賴屏幕截圖,通用性強(qiáng)。
視覺(jué)方案的缺點(diǎn)是由于視覺(jué)大模型的分辨率限制,細(xì)小屏幕組件,比如一些 checkbox,可能識(shí)別不準(zhǔn)確;由于視覺(jué)大模型本身不擅長(zhǎng)處理大塊文字,就像我們?cè)诙嗄B(tài)大模型部分講的一樣,大塊文字識(shí)別需要 OCR 輔助;最后就是成本較高,特別是對(duì)于需要滾動(dòng)才能顯示完整的界面,需要截屏多次才能獲取完整內(nèi)容。
考慮到以上缺點(diǎn),一些手機(jī)廠商和游戲廠商用的是元素樹(shù)方案。手機(jī)廠商是想做類似 Siri 的系統(tǒng)級(jí)語(yǔ)音助手。而游戲廠商做的是游戲陪玩 NPC。
手機(jī) App 的界面就像網(wǎng)頁(yè)的 HTML 一樣,都是一棵元素樹(shù)。元素樹(shù)方案就是從系統(tǒng)底層直接獲取到這個(gè)元素樹(shù)的內(nèi)容,交給大模型處理。
元素樹(shù)方案的優(yōu)點(diǎn)是識(shí)別準(zhǔn)確率高,成本較低,無(wú)需 OCR 和視覺(jué)大模型。
元素樹(shù)方案的缺點(diǎn)是需要操作系統(tǒng)底層 API 權(quán)限,因此基本上只有手機(jī)廠商能做。由于通用大模型的訓(xùn)練數(shù)據(jù)中幾乎沒(méi)有元素樹(shù),缺少元素樹(shù)的理解能力,因此需要構(gòu)造數(shù)據(jù)做繼續(xù)預(yù)訓(xùn)練或微調(diào)。此外,元素樹(shù)往往較大,有可能導(dǎo)致輸入上下文過(guò)長(zhǎng),需要篩選可視部分輸入到大模型。
兩種方案對(duì)比,視覺(jué)方案可以快速發(fā)布產(chǎn)品,不需要手機(jī)廠商的支持,而元素樹(shù)是長(zhǎng)期來(lái)看更根本、效果更好的解決方案。 這就是為什么我認(rèn)為創(chuàng)業(yè)公司不要輕易去碰手機(jī)語(yǔ)音助手,手機(jī)廠商有明顯的優(yōu)勢(shì)。我跟 Midjourney 的人聊,他們最擔(dān)心的不是其他創(chuàng)業(yè)公司,而是蘋(píng)果哪天內(nèi)置提供了圖片生成功能怎么辦?
最后一個(gè)有用 AI 的例子是會(huì)議和生活記錄器。
比如我們?cè)陂_(kāi)會(huì)的時(shí)候摸魚(yú),正好被老板 cue 到,就一臉懵;還有會(huì)上老板一下子布置了一大堆任務(wù),沒(méi)有來(lái)得及記下來(lái),會(huì)后就忘了。
現(xiàn)在騰訊會(huì)議和 Zoom 都已經(jīng)有了 AI 會(huì)議助手的功能,包括將會(huì)議語(yǔ)音內(nèi)容實(shí)時(shí)轉(zhuǎn)錄成文字;根據(jù)實(shí)時(shí)轉(zhuǎn)錄的文字,將會(huì)議所講過(guò)的內(nèi)容做總結(jié);根據(jù)實(shí)時(shí)轉(zhuǎn)錄的文字,用戶提出問(wèn)題,大模型給出問(wèn)題的回答。這樣,參加會(huì)議的人不管何時(shí)加入會(huì)議,都能知道會(huì)上都討論了些什么內(nèi)容,再也不用擔(dān)心錯(cuò)過(guò)關(guān)鍵的會(huì)議內(nèi)容了。
但是,現(xiàn)在騰訊會(huì)議和 Zoom 的語(yǔ)音轉(zhuǎn)錄中,由于缺少背景知識(shí),可能存在一些錯(cuò)誤,例如專業(yè)名詞識(shí)別錯(cuò)誤、人名前后不一致。如果通過(guò)大模型對(duì)語(yǔ)音識(shí)別結(jié)果進(jìn)行修正,大部分識(shí)別錯(cuò)誤的專業(yè)名詞都可以被糾正,前后的人名也能保持一致。
語(yǔ)音識(shí)別的準(zhǔn)確率還可以進(jìn)一步提升。會(huì)議中往往會(huì)共享一些 PPT,我們不僅希望把這些 PPT 保存下來(lái),這些 PPT 內(nèi)容中往往也包含了關(guān)鍵的專業(yè)名詞。把從 PPT OCR 出的內(nèi)容作為參考文本,讓大模型修正語(yǔ)音識(shí)別結(jié)果,可以進(jìn)一步提升準(zhǔn)確率。
除了會(huì)議記錄,AI Agent 還可以做生活記錄。
我是一個(gè)喜歡把生活中的一切都記錄下來(lái)的人,比如我維護(hù)了一個(gè) 2012 年以來(lái),我走過(guò)的城市 公開(kāi)記錄。雖然各類 App 都記錄了很多個(gè)人數(shù)據(jù),比如聊天記錄、運(yùn)動(dòng)健康、點(diǎn)外賣(mài)記錄、購(gòu)物記錄等,但這些 App 的數(shù)據(jù)是煙囪化的,無(wú)法導(dǎo)出,也就無(wú)法聚合各類 App 的數(shù)據(jù)來(lái)做分析。
AI Agent 給我們提供了新的可能,可以通過(guò) RPA 或 Intent-based API 方式收集生活記錄。
現(xiàn)在 App 一般不提供 API,生活記錄器可以用前面手機(jī)語(yǔ)音助手講到的 RPA 方法,相當(dāng)于一個(gè)干活很快的秘書(shū)在從各個(gè) App 里面把數(shù)據(jù)一條條抄錄出來(lái)。以往這種爬數(shù)據(jù)的方式可能會(huì)違反 App 的用戶協(xié)議,甚至可能構(gòu)成破壞計(jì)算機(jī)系統(tǒng)罪,但如果 AI Agent 收集了數(shù)據(jù)只是供用戶個(gè)人使用,大概是沒(méi)有什么問(wèn)題的。AI Agent 的行為在法律上怎么界定,會(huì)是一個(gè)很大的挑戰(zhàn)。
未來(lái)手機(jī)助手成為標(biāo)配之后,App 一定會(huì)提供面向手機(jī)助手的 Intent-based API,AI Agent 說(shuō)清楚想要什么數(shù)據(jù),App 就把對(duì)應(yīng)的數(shù)據(jù)吐出來(lái),這樣就徹底解決了 App 數(shù)據(jù)煙囪化的問(wèn)題。當(dāng)然各大 App 廠商是否愿意配合,這就是一個(gè)手機(jī)廠商和 App 廠商之間的商業(yè)問(wèn)題了。我對(duì)當(dāng)前互聯(lián)網(wǎng)的煙囪化很失望,非常希望 AI 能讓每個(gè)人重新掌握數(shù)據(jù)的所有權(quán)。
Rewind.AI 的錄屏和錄音吊墜是我很喜歡的產(chǎn)品,Rewind 可以回放任意時(shí)間的錄屏。Rewind 還可以根據(jù)關(guān)鍵字搜索之前的錄屏,Rewind 是把錄屏里面的文字做了 OCR,這樣就可以根據(jù)文字搜索到之前的錄屏。但是目前只支持英文,不支持中文。Rewind 還支持 AI 智能問(wèn)答,問(wèn)它某一天都做了什么事情,訪問(wèn)了哪些網(wǎng)站,能給總結(jié)的非常好。Rewind 的能力真的強(qiáng)到可怕,可以用來(lái)做自己的記憶助手,看看之前干了什么。也可以用來(lái)自己做時(shí)間管理,看看有多少時(shí)間浪費(fèi)在無(wú)用的網(wǎng)站上。
Rewind 更可怕的是可能被老板用來(lái)監(jiān)控員工,以后都不用員工自己寫(xiě)日?qǐng)?bào)周報(bào)了,直接讓 Rewind 寫(xiě),保證公正客觀,干了啥就是啥。其實(shí)現(xiàn)在一些大廠的信息安全已經(jīng)用了類似的錄屏或者定時(shí)截屏的機(jī)制,在公司電腦上搞小動(dòng)作,事后很容易被追溯。
Rewind 最近還出了一個(gè)吊墜,這個(gè)吊墜就是個(gè)錄音筆 + GPS 記錄儀,會(huì)全天記錄你去了哪,說(shuō)了什么話。我還不敢隨身帶錄音筆,因?yàn)槲唇?jīng)同意就對(duì)私人交談錄音不太好。但是我的確帶著個(gè)迷你 GPS 記錄儀,每分鐘打一個(gè)點(diǎn),可以輕松記錄我的足跡。之所以不用手機(jī)是因?yàn)槭謾C(jī)一直開(kāi)著 GPS 太費(fèi)電了。
對(duì)于我這種喜歡記錄生活的人,以及用了 Rewind 這類產(chǎn)品的人,隱私是最大的顧慮。現(xiàn)在 Rewind 的很多數(shù)據(jù)會(huì)上傳到云端,就讓我不太放心。我認(rèn)為本地化算力或者隱私計(jì)算是解決隱私問(wèn)題的必由之路。本地化就是在個(gè)人設(shè)備本地運(yùn)行,目前一些高端手機(jī)和筆記本已經(jīng)可以跑相對(duì)較小的大模型了。隱私計(jì)算是另一種方法,就是用密碼學(xué)或者 TEE 的方法保證隱私數(shù)據(jù)可用不可見(jiàn)。
解決復(fù)雜任務(wù)和使用工具
前面在有趣的 AI 部分,我們介紹了 AI Agent 慢思考的記憶和情感方面。記憶是有趣和有用 AI 都必須具備的公共能力。情感是有趣 AI 需要的。而解決復(fù)雜任務(wù)和使用工具更多是有用 AI 所需的能力,因此我們?cè)谶@里稍作討論。
第一個(gè)例子是一道比較復(fù)雜的數(shù)學(xué)問(wèn)題,一個(gè)人一秒鐘也回答不出來(lái)。那我們只給大模型一個(gè) token 的思考時(shí)間,讓大模型聽(tīng)完題目就馬上回答,顯然也是不可行的。
大模型需要時(shí)間去思考,token 就是大模型的時(shí)間。我們讓大模型寫(xiě)出思考過(guò)程,就是給它時(shí)間思考。思維鏈?zhǔn)欠浅W匀坏囊环N慢思考的模式,我一般把思維鏈通俗地稱作 "先想后說(shuō)",這是一種非常有效的提升大模型性能的方式。特別是對(duì)于輸出很簡(jiǎn)潔的場(chǎng)景,一定要讓大模型先寫(xiě)出思考過(guò)程再按照格式輸出回答。
第二個(gè)例子是用多步的網(wǎng)絡(luò)搜索去回答難題。比如這個(gè)問(wèn)題,David Gregory 繼承的城堡有多少層,直接上 Google 搜索是無(wú)法在一個(gè)網(wǎng)頁(yè)中得到答案的。
人類是怎么解決這個(gè)問(wèn)題的?人會(huì)分多個(gè)子階段去解決,首先搜索 David Gregory 這個(gè)人,知道他繼承的城堡是什么名字,然后搜索這個(gè)城堡,找到它有多少層。
在讓 AI 學(xué)會(huì)拆分子問(wèn)題之前,首先需要解決 AI 的幻覺(jué)問(wèn)題。當(dāng)它拿整句話去搜索的時(shí)候,也能搜索到一個(gè) Wiki 詞條,其中也有一段提到了層數(shù),AI 可能就直接拿這個(gè)層數(shù)作為答案輸出了,但這根本不是他繼承的城堡。解決幻覺(jué)問(wèn)題可以讓它不要只是輸出層數(shù),而是先輸出參考的這一段落內(nèi)容,并比較與原問(wèn)題的相關(guān)性,這樣通過(guò) "先想后說(shuō)" 和 "反思",就可以減少一些幻覺(jué)。
如何讓 AI 拆分子問(wèn)題呢?直接告訴大模型就行了,用 few-shot 方式提供幾個(gè)拆分子問(wèn)題的示例,讓大模型把這個(gè)問(wèn)題拆分成一個(gè)更簡(jiǎn)單的搜索問(wèn)題。然后把搜索結(jié)果和原始問(wèn)題輸入到大模型,讓它輸出下一步搜索的問(wèn)題。直到大模型認(rèn)為根據(jù)搜索結(jié)果已經(jīng)可以可信地回答原始問(wèn)題。
多步網(wǎng)絡(luò)搜索解決問(wèn)題其實(shí)是一個(gè)更大問(wèn)題的子集,這個(gè)更大的問(wèn)題是復(fù)雜任務(wù)的規(guī)劃和分解。
例如,我們給定一篇論文,問(wèn)它的第二章相比某個(gè)相關(guān)工作有什么貢獻(xiàn)。
首先,AI 怎么找到第二章的內(nèi)容。如果我們沒(méi)有長(zhǎng)上下文,而是把文章切片之后用 RAG 方式搜索,那么第二章內(nèi)容的每一段不會(huì)寫(xiě)著第二章,RAG 就很難檢索出來(lái)。當(dāng)然我做一個(gè)特殊情況的處理邏輯是可以的,但是一般情況下這種章節(jié)編號(hào)問(wèn)題需要在 RAG 索引的時(shí)候就添加進(jìn)去元數(shù)據(jù)。當(dāng)然如果模型有長(zhǎng)上下文能力,并且成本可以接受,一次性把整篇文章都放進(jìn)去是最好的。
第二,這個(gè)相關(guān)工作是在另外一篇論文里,怎么把這篇論文找出來(lái),有時(shí)只用一個(gè)關(guān)鍵詞是搜不到的,重名的內(nèi)容太多,因此需要結(jié)合原文內(nèi)容中的更多關(guān)鍵詞去搜索。搜索到這篇相關(guān)工作之后還要總結(jié)這篇相關(guān)工作的內(nèi)容,然后用大模型生成第二章和這篇相關(guān)工作的對(duì)比。
另一個(gè)復(fù)雜任務(wù)規(guī)劃分解的例子是查天氣。查天氣看起來(lái)好像挺簡(jiǎn)單,點(diǎn)一下網(wǎng)頁(yè)就行了。但是我們?nèi)绻?AutoGPT 去查一個(gè)特定城市的天氣,現(xiàn)在大多數(shù)情況是失敗的。為什么呢?
首先它會(huì)嘗試去找一些查天氣的 API,還真的會(huì)去查這些 API 文檔,嘗試寫(xiě)代碼調(diào)用,但是都失敗了,因?yàn)檫@些 API 都是付費(fèi)的。這就說(shuō)明大模型缺少一些常識(shí),比如 API 一般是需要付費(fèi)的,而且在嘗試多個(gè) API 失敗之后,沒(méi)有向用戶求助,而是不斷在死胡同里嘗試。現(xiàn)實(shí)世界中一個(gè)人完成任務(wù)遇到困難會(huì)去求助,有用的 AI 也應(yīng)該這樣,及時(shí)向用戶反饋進(jìn)展,有問(wèn)題及時(shí)求助用戶。
API 查詢失敗之后,AutoGPT 就會(huì)開(kāi)始嘗試從網(wǎng)頁(yè)里面讀取天氣。AutoGPT 的搜索詞和搜索到的頁(yè)面都是正確的,但仍然不能正確提取出天氣信息。因?yàn)?AutoGPT 看的是 HTML 代碼,HTML 代碼亂七八糟的,它看不懂,其實(shí)我作為一個(gè)人也看不懂。
AutoGPT 也會(huì)嘗試把網(wǎng)頁(yè)內(nèi)容轉(zhuǎn)換成文本之后再提取,但是像右面這個(gè)天氣網(wǎng)頁(yè),提取出純文本之后也有問(wèn)題。這個(gè)網(wǎng)頁(yè)上有很多不同的溫度,有的是別的城市的,有的是別的時(shí)間的,單靠純文本很難區(qū)別。文本丟掉了太多的網(wǎng)頁(yè)結(jié)構(gòu)信息,HTML 代碼又不好看懂,怎么辦?
比較靠譜的方案其實(shí)是把渲染出來(lái)的網(wǎng)頁(yè)截圖放到多模態(tài)模型里面去。比如 GPT-4V 讀取這個(gè)天氣截圖就沒(méi)有問(wèn)題。但是用 MiniGPT-4/v2 這些開(kāi)源多模態(tài)模型仍然很困難。它的主要問(wèn)題是并不支持任意分辨率的輸入,只支持 256 x 256 的小分辨率,網(wǎng)頁(yè)截圖壓到這么小的分辨率后根本就看不清上面的字了。因此 Fuyu-8B 這些開(kāi)源多模態(tài)模型支持任意分辨率是一個(gè)非常關(guān)鍵的事情。
從上面兩個(gè)查論文和查天氣的例子可以看到,復(fù)雜任務(wù)的規(guī)劃和分解很大程度上是模型基礎(chǔ)能力的問(wèn)題,需要依靠 scaling law,模型基礎(chǔ)能力上去了,自然就解決了。在系統(tǒng)方面,與用戶交互式解決復(fù)雜任務(wù)是很重要的,AI 遇到困難要及時(shí)求助。
第三個(gè)例子是 AI 需要能夠按照流程調(diào)用工具。使用工具是 AI 一項(xiàng)非常基本的能力。
比如要解決一道高中物理題,需要首先調(diào)用 Google 搜索獲取到相關(guān)的背景知識(shí),然后調(diào)用 OpenAI Codex 生成代碼,最后調(diào)用 Python 執(zhí)行代碼。
實(shí)現(xiàn)按流程調(diào)用工具的方法是 few-shot,也就是在 prompt 中給 AI 提供幾個(gè)樣例任務(wù)的執(zhí)行過(guò)程,這樣 AI 就可以參考樣例任務(wù)的流程,逐次生成對(duì)流程中每種工具的調(diào)用。
上一頁(yè)是按照指定的順序使用三種工具。但如果我們有多種工具需要根據(jù)任務(wù)類型按需使用呢?有兩種典型的路線,一是以 GPT Store 為代表的工具調(diào)用大模型,二是以 ChatGPT 為代表的大模型調(diào)用工具。
在 GPT Store 中,用戶已經(jīng)顯式指定了要用哪個(gè)工具,工具的 prompt 是 GPT Store 中的應(yīng)用預(yù)先寫(xiě)好的。這種方法其實(shí)并沒(méi)有解決根據(jù)任務(wù)類型按需使用工具的問(wèn)題。
在 ChatGPT 中,有瀏覽器、圖片生成、日記本、代碼解釋器等幾個(gè)內(nèi)置的工具,它是在 system prompt 中把幾種工具的使用說(shuō)明書(shū)都寫(xiě)了進(jìn)去。
ChatGPT 模型在訓(xùn)練階段也加入了調(diào)用工具的特殊 token。模型如果需要調(diào)用工具,就輸出調(diào)用工具的特殊 token,這樣 ChatGPT 就知道后面輸出的是工具調(diào)用代碼而非普通文本。工具調(diào)用完成之后,再把工具的結(jié)果輸入到模型,生成下一個(gè)工具調(diào)用,或者給用戶的輸出。
ChatGPT 這種路線確實(shí)解決了根據(jù)任務(wù)類型按需使用工具的問(wèn)題。但由于 prompt 的長(zhǎng)度有限,它只能使用內(nèi)置的有限幾種工具,不可能調(diào)用 GPT Store 中的上萬(wàn)種工具。因?yàn)樯先f(wàn)個(gè)工具的說(shuō)明書(shū)如果都攤開(kāi)在桌面上,就太長(zhǎng)了。
那么如何讓大模型學(xué)會(huì)自動(dòng)按需使用上萬(wàn)種工具呢?這里有兩種觀點(diǎn)。
第一種觀點(diǎn)認(rèn)為,工具使用屬于過(guò)程記憶,使用場(chǎng)景和條件不是語(yǔ)言可以明確描述的。工具本身的使用方法確實(shí)可以用語(yǔ)言描述清楚,這就是說(shuō)明書(shū),關(guān)鍵是何時(shí)使用何種工具。比如,GPT-4 經(jīng)常算錯(cuò)數(shù),它就需要知道在算數(shù)的時(shí)候調(diào)用計(jì)算器這個(gè)工具。這就需要使用 fine-tuning 方法告訴模型一些工具使用的樣例,甚至在預(yù)訓(xùn)練時(shí)就加入。這種方案的主要缺點(diǎn)是工具更新復(fù)雜,要想更新工具就要重新做 fine-tuning。
第二種觀點(diǎn)認(rèn)為,工具使用可以用代碼形式表達(dá),因此屬于代碼生成能力。這樣,就可以使用 RAG 方法匹配用戶輸入的文字,找到候選的工具集合,把工具的說(shuō)明書(shū)像 ChatGPT 那樣放進(jìn) prompt,然后就可以使用了。這種方案的主要缺點(diǎn)是依賴 RAG 的準(zhǔn)確率。此外,如果工具是在輸出過(guò)程中臨時(shí)需要使用的,這種方法就不奏效。例如 GPT-4 算錯(cuò)數(shù)的例子,可能用戶輸入文字中并沒(méi)有顯式要求它算數(shù),但解決問(wèn)題的過(guò)程中需要算數(shù),這時(shí)候它肯定就不知道應(yīng)該調(diào)用計(jì)算器這個(gè)工具。
幻覺(jué)是大模型的基礎(chǔ)問(wèn)題,更大的模型幻覺(jué)相對(duì)會(huì)較少,幻覺(jué)的消除根本上還是要靠 scaling law,靠基礎(chǔ)模型的進(jìn)步。但也有一些工程方法減少現(xiàn)有模型的幻覺(jué)。這里介紹兩種典型的方法:事實(shí)性校驗(yàn)和多次生成。
事實(shí)性校驗(yàn)(Factual Checking)就是首先用大模型生成回答,然后用 RAG 的方法,用搜索引擎、向量數(shù)據(jù)庫(kù)、倒排索引或者知識(shí)圖譜找出與回答內(nèi)容匹配的原始語(yǔ)料,然后將回答內(nèi)容和原始語(yǔ)料送進(jìn)大模型,讓大模型判斷回答與原始語(yǔ)料是否相符。
事實(shí)性校驗(yàn)方法有兩個(gè)問(wèn)題:首先,幻覺(jué)有多種種類,事實(shí)性校驗(yàn)只能發(fā)現(xiàn)編造事實(shí)類的幻覺(jué),但不能發(fā)現(xiàn)答非所問(wèn)類的幻覺(jué)。比如我問(wèn)中國(guó)的首都是哪里,它回答中國(guó)是一個(gè)有悠久歷史的大國(guó),用事實(shí)性校驗(yàn)也挑不出毛病,但這并沒(méi)有正確回答問(wèn)題。其次,原始語(yǔ)料的內(nèi)容不一定就是事實(shí),互聯(lián)網(wǎng)上有大量不準(zhǔn)確的信息。
多次生成是 SelfCheckGPT 這篇論文提出的,它的思想也很簡(jiǎn)單,就是多次生成同一問(wèn)題的回答,然后把這些回答都放進(jìn)大模型里,讓大模型從中挑出最一致的那個(gè)。多次生成方法可以解決偶發(fā)的幻覺(jué)問(wèn)題,但不能解決系統(tǒng)性偏差。例如讓 GPT-3.5 Turbo 講講 "林黛玉倒拔垂楊柳" 的故事,幾乎每次都會(huì)編一個(gè)類似的出來(lái),而沒(méi)有發(fā)現(xiàn)這個(gè)事件在歷史上就不存在,這種幻覺(jué)就是多次生成很難消除的。
AI Agent:路在何方
有趣和有用的 AI 誰(shuí)價(jià)值更高
剛才我們提到了有趣的 AI 和有用的 AI 兩個(gè)方面,這兩個(gè) AI 哪個(gè)價(jià)值更高呢?
我認(rèn)為長(zhǎng)期來(lái)看有用的價(jià)值更高,短期來(lái)看有趣的價(jià)值更高。這就是我們?yōu)槭裁丛谏虡I(yè)模式上選擇有趣的 AI,同時(shí)持續(xù)探索有用的 AI。
因?yàn)楸热缯f(shuō)語(yǔ)音閑聊,一塊錢(qián)一個(gè)小時(shí)已經(jīng)很不容易了,Character AI 可能有上千萬(wàn)的用戶,但是它每個(gè)月實(shí)際收入只有上千萬(wàn)美金,大多數(shù)是不付費(fèi)的。但是如果一些在線教育、甚至是更專業(yè)領(lǐng)域的比如心理咨詢、法律咨詢等等它可能收入更高,但是這里邊更關(guān)鍵的問(wèn)題是需要質(zhì)量和品牌才能產(chǎn)生一個(gè)更高的附加價(jià)值。
更長(zhǎng)遠(yuǎn)來(lái)看,我們的終極目標(biāo)是 AGI,那么 AGI 一定更多是有用的,可以擴(kuò)展人類能力的邊界,讓人類做到之前做不到的事情。
但是就目前基礎(chǔ)模型的能力而言,有用的 AI 距離真正解決復(fù)雜問(wèn)題、擴(kuò)展人類能力的邊界還差得遠(yuǎn),只能達(dá)到初級(jí)水平,達(dá)不到專家水平。同時(shí)由于幻覺(jué)問(wèn)題,很難用于需要高可靠性的場(chǎng)景。這些問(wèn)題還很難通過(guò)外置系統(tǒng)徹底解決,只能等待基礎(chǔ)模型的進(jìn)步。因此有用的 AI 目前最適合做的就是個(gè)人生活、工作、學(xué)習(xí)助手,更適合手機(jī)廠商、操作系統(tǒng)廠商和智能硬件廠商去做。
而目前大模型的基礎(chǔ)能力已經(jīng)足以做很多有趣的 AI。如前面所講的,有趣 AI 的好看皮囊和有趣靈魂大多是外置的一套系統(tǒng),而不是模型本身的基礎(chǔ)能力。比如文本大模型的基礎(chǔ)能力做到再好,也沒(méi)辦法實(shí)現(xiàn) 1.5 秒的語(yǔ)音電話延遲,沒(méi)辦法實(shí)現(xiàn)長(zhǎng)期記憶和 Agent 社交。這套模型外圍的系統(tǒng)就是 AI 公司的護(hù)城河。
當(dāng)然有人會(huì)說(shuō),我做一個(gè)支持超長(zhǎng)上下文的端到端多模態(tài)大模型,超長(zhǎng)上下文的成本還足夠低,延遲問(wèn)題和記憶問(wèn)題就都解決了。我認(rèn)為基礎(chǔ)模型做成這樣當(dāng)然是更好的,但不確定什么時(shí)候能出來(lái)。產(chǎn)品不能等待未來(lái)的未知技術(shù),現(xiàn)在的工程方案也挺好用,而且確實(shí)有一定的技術(shù)護(hù)城河。等到新的模型出來(lái)了,再改技術(shù)棧就行。就像我們?cè)瓉?lái)用的是 VITS 做了一整套語(yǔ)音數(shù)據(jù)自動(dòng)清洗和訓(xùn)練的流水線,GPT-soVITS 一出來(lái),用 1 分鐘語(yǔ)音 zero-shot 的效果就比用幾個(gè)小時(shí)語(yǔ)音微調(diào)的 VITS 好很多,原來(lái)流水線里的大部分功能就用不到了。
一些人對(duì) "有趣的 AI" 有一些偏見(jiàn),主要是因?yàn)橐?Character AI 為代表的產(chǎn)品做得還不夠好。Character AI 反復(fù)強(qiáng)調(diào),自己是基礎(chǔ)模型公司,beta.character.ai 這個(gè)應(yīng)用至今還掛在 beta 域名上,就是一個(gè)測(cè)試版的產(chǎn)品。人家根本就沒(méi)打算用現(xiàn)在形態(tài)的 Character AI 賺錢(qián)。但很多人看到了它是目前除了 ChatGPT 以外最大的 to C 應(yīng)用,就以為這是一個(gè)很好的產(chǎn)品形態(tài),Character AI 的克隆版或者改進(jìn)版層出不窮。
受到 Character AI 的影響,很多人都以為,有趣的 AI Agent 就等于名人、動(dòng)漫游戲角色的數(shù)字分身,用戶跟它唯一的交互方式就是閑聊。但很多人都做錯(cuò)了。如果只是閑聊,用戶很容易聊個(gè) 10~20 分鐘就不知道該聊什么了,因此用戶粘性和付費(fèi)意愿都低得嚇人。
2024 年 1 月初我參加知乎 AI 先行者沙龍的時(shí)候,一位嘉賓的發(fā)言我認(rèn)為很有道理:有趣的 AI 價(jià)值更高,因?yàn)閵蕵?lè)、社交是人的天性,最大的幾家互聯(lián)網(wǎng)公司大部分是娛樂(lè)、社交領(lǐng)域的。如果一個(gè)好的 AI 伴侶真的能給人帶來(lái)情緒價(jià)值,或者游戲中的 AI 真的能讓用戶沉浸感更強(qiáng),這樣的 AI 不愁沒(méi)人付費(fèi)。
成本
大模型廣泛應(yīng)用的一個(gè)很大的挑戰(zhàn)是成本問(wèn)題。比如如果我做一個(gè)游戲的 NPC,跟玩家不停的交互,如果用 GPT-4 來(lái)做,成本會(huì)高達(dá)每小時(shí)每個(gè)玩家 26 美元,沒(méi)有任何游戲能燒的起這么多錢(qián)。
這是怎么算出來(lái)的?假設(shè)玩家每分鐘交互 5 次,一小時(shí)就是 300 次;每次交互需要 8K token 的上下文,500 token 的輸出,每次交互的成本就是 $0.095;乘一下,成本就是每小時(shí) 26 美元。很多人在計(jì)算成本的時(shí)候只考慮到了輸出 token,沒(méi)有考慮輸入 token,其實(shí)很多場(chǎng)景下輸入 token 才是成本的大頭。
那么這個(gè)成本有沒(méi)有可能降低 100 倍甚至 1000 倍?答案是肯定的。
我們主要有三個(gè)方向:用小模型替代大模型、推理 infra 優(yōu)化、算力平臺(tái)優(yōu)化。
首先,to C 應(yīng)用中的大多數(shù)問(wèn)題用小模型其實(shí)就足夠了。但有一些復(fù)雜問(wèn)題是小模型解決不了的,這時(shí)候就需要找大模型。我們?nèi)祟惿鐣?huì)其實(shí)一直就是用這種方式工作的,比如電話客服的普通接線員就足夠處理大多數(shù)的問(wèn)題,少數(shù)棘手的問(wèn)題上升到經(jīng)理解決,這樣就可以合理控制成本。
大小模型結(jié)合的一個(gè)挑戰(zhàn)是克服小模型的幻覺(jué),也就是當(dāng)它自己不知道的時(shí)候,不要胡說(shuō)八道,而要說(shuō)我不知道,這樣才有機(jī)會(huì)交給更大的模型處理。
其次,推理 infra 中其實(shí)有很多值得優(yōu)化的點(diǎn)。例如現(xiàn)在多模態(tài)領(lǐng)域的很多開(kāi)源模型都沒(méi)有支持 batching 和 Flash Attention,它們的 GPU 利用率其實(shí)不夠高。當(dāng)我們有很多 LoRA 微調(diào)模型時(shí),最近也有一些學(xué)術(shù)界的工作可以實(shí)現(xiàn)大量 LoRA 的批量推理。持久化 KV Cache 雖然很多人都在提,做成有狀態(tài)的 API 降低每次都重新計(jì)算的成本,但沒(méi)有一個(gè)開(kāi)源軟件真的實(shí)現(xiàn)了。
最后就是自建算力平臺(tái),使用消費(fèi)級(jí) GPU 做推理。對(duì) 24 GB 內(nèi)存就足夠放下的模型,4090 顯然是比 H100 和 A100 更劃算的。
使用開(kāi)源模型和自建算力平臺(tái)能夠節(jié)約多少成本呢?我們?cè)谶@里對(duì)比閉源的 GPT-4、GPT-3.5,以及開(kāi)源的 Mixtral 8x7B 和 Mistral 7B,分別在第三方 API 服務(wù)和自建算力平臺(tái)上的成本。
假設(shè)我們的需求都是 8K token 的輸入上下文,500 token 的輸出。如果我們用 GPT-4,每 1000 個(gè)請(qǐng)求就要 $135,這是相當(dāng)貴了。如果用 GPT-3.5,就可以便宜 15 倍,只要 $9,但這也還是挺貴的。
Mistral 8x7B MoE 模型的能力大致與 GPT-3.5 是相當(dāng)?shù)?,?Together AI 的 API 服務(wù)需要 $5,又比 GPT-3.5 便宜了一半。如果自己搭建 H100 集群來(lái)服務(wù)這個(gè) 8x7B 模型,價(jià)格還能降低一半多,只需要 $2。
那么為什么自己服務(wù)比 Together AI 的便宜呢?因?yàn)槿魏卧品?wù)都要考慮到資源不是 100% 占滿,用戶的請(qǐng)求是有波峰波谷的,平均下來(lái)資源利用率能到 30% 就不錯(cuò)了。像我們這種客戶算力需求波動(dòng)很大的小公司,經(jīng)常出現(xiàn)租了幾十塊 GPU 卡但閑置一個(gè)月的情況。因此如果考慮到用戶請(qǐng)求的波峰波谷,自己搭建 H100 集群去服務(wù) 8x7B 模型未必比調(diào)用 API 更省錢(qián)。
要想進(jìn)一步省錢(qián),還可以用 7B 模型,Mistral 7B 模型的性能也不錯(cuò),特別是 UC Berkeley 使用 RLAIF 的方法搞了一個(gè)基于 Mistral 7B 的 Starling 模型,性能甚至超過(guò) LLaMA 13B 模型。
7B 模型如果使用 Together AI API,只要 $1.7,比 GPT-3.5 便宜 5 倍。如果在 4090 上自己搭,只要 $0.4,又便宜了 4 倍。能便宜這么多的主要原因是 Together AI 之類大廠一般是用數(shù)據(jù)中心級(jí)的 GPU 做推理,如果我們用消費(fèi)級(jí)的 GPU,成本相比數(shù)據(jù)中心 GPU 就可以至少降低一半。
4090 上跑 7B 模型的成本比 GPT-3.5 便宜 23 倍,比 GPT-4 便宜 346 倍。原來(lái) $26 一個(gè)小時(shí)的互動(dòng)游戲 NPC,用 4090 和 7B 模型,就可以做到 $0.075 一個(gè)小時(shí),這雖然還有點(diǎn)高,但已經(jīng)是可以接受的了。再加上一些輸入上下文的壓縮技術(shù),可以把 7B 模型的成本降到 GPT-4 API 的千分之一,也就是 $0.026 一個(gè)小時(shí),這就是可以接受的了。
其實(shí)到了 $0.026 每個(gè)小時(shí)這種量級(jí),會(huì)發(fā)現(xiàn) CPU 成本也變成不可忽略的了,因此 CPU 上的軟件優(yōu)化也是很重要的。大多數(shù)公司的后端服務(wù)都是用 Python 寫(xiě)的,雖然開(kāi)發(fā)效率高,但是執(zhí)行效率比較低。因此我們公司最近把后端的核心業(yè)務(wù)邏輯切換到了 Go,在 CPU 效率上有明顯的提升。
上面我們只算了文本模型,其實(shí)語(yǔ)音識(shí)別模型、語(yǔ)音合成模型、多模態(tài)圖片識(shí)別模型、圖片生成模型、視頻生成模型也都有很多可以優(yōu)化的點(diǎn)。
前面講語(yǔ)音合成的時(shí)候,我們提到基于開(kāi)源的 VITS 自己做語(yǔ)音合成模型可以比 ElevenLabs API 便宜 360 倍,如果要達(dá)到接近 ElevenLabs 效果的語(yǔ)音克隆,用 GPTs-soVITS,也可以比 ElevenLabs 便宜 100 倍。這種成本數(shù)量級(jí)上的降低是可以從根本上改變商業(yè)邏輯的。
再如視頻生成,OpenAI 的 Sora 生成 1 分鐘的視頻大概需要 50 美金的成本,Runway ML 的 Gen2 生成 1 分鐘視頻大概需要 10 美金成本。但如果我們不要這么高的質(zhì)量,就用 Stable Video Diffusion 去生成,1 分鐘的視頻只要一塊 4090 跑 1 個(gè)小時(shí),只要 0.5 美金成本。Sora 的視頻質(zhì)量比 SVD 高太多,100 倍的成本也許是值得的。但 Runway ML 生成的視頻質(zhì)量可能就不值 20 倍的成本了。
這也是為什么我不建議貿(mào)然自己去做基礎(chǔ)模型。如果沒(méi)有拳打 OpenAI、腳踢 Anthropic 的實(shí)力,在效果上比不過(guò)最好的閉源模型,成本上也比不上開(kāi)源模型。我相信 Runway ML 的 Gen2 推理成本也不會(huì)比 Stable Video Diffusion 高太多,ElevenLabs 的語(yǔ)音合成推理成本也不會(huì)比 GPT-soVITS 高太多,但是這些模型的研發(fā)成本高到可怕,都要平攤到 API 的溢價(jià)里。
這就是 Peter Thiel 在《從零到一》里說(shuō)的,一項(xiàng)技術(shù)需要比現(xiàn)有技術(shù)好 10 倍才能有壟斷優(yōu)勢(shì),只是好一點(diǎn)點(diǎn)是不夠的。我知道操作系統(tǒng)很重要,我也知道如何寫(xiě)一個(gè)操作系統(tǒng),但我不知道如何寫(xiě)一個(gè)比 Windows、Linux 或者 Android、iOS 好 10 倍的操作系統(tǒng),因此我不會(huì)去做操作系統(tǒng)?;A(chǔ)大模型同理。
我們相信大模型的成本一定會(huì)快速降低,一方面是摩爾定律,另一方面是大模型的進(jìn)步,比如說(shuō)用最新的 vLLM 框架和消費(fèi)級(jí)的 GPU,Mistral AI 的 8x7B 的 MoE 模型可能相比最早的 LLaMA 70B 成本降低 30 倍。
隨著硬件和模型的進(jìn)步,未來(lái)會(huì)不會(huì)同等能力的模型可以跑在手機(jī)上?如果手機(jī)上可以跑 GPT-3.5 級(jí)別能力的模型,很多可能性都打開(kāi)了。
再看模型的輸出速度和上下文容量。我參觀計(jì)算機(jī)歷史博物館的時(shí)候,看到 ENIAC 那么大一個(gè)機(jī)柜,每秒只能做 5000 次加法,只有 20 個(gè)字的內(nèi)存。我們今天的大模型每秒鐘也只能輸出幾十個(gè) token,"內(nèi)存" 也就是上下文長(zhǎng)度從最早的 4K token 一路提升到今天的上百 K token。
未來(lái)會(huì)不會(huì)有一天,能夠出現(xiàn)一套硬件和一個(gè)模型,每秒鐘能輸出上萬(wàn)個(gè) token,內(nèi)存也就是上下文有上億個(gè) token?
有人問(wèn),輸出這么快有什么用呢?其實(shí) AI Agent 不一定需要跟人交流特別快,但是 AI Agent 自己可以想得很快,可以跟其他 Agent 交流得特別快。比如說(shuō)一個(gè)問(wèn)題需要多步網(wǎng)絡(luò)搜索去解決,人可能需要搜一個(gè)小時(shí),未來(lái)的 AI 有沒(méi)有可能一秒鐘就解決了?
上下文搞這么多 token 有什么用呢?我們知道現(xiàn)在大模型在很多方面還不如人,但長(zhǎng)上下文這個(gè)方面其實(shí)是比人更強(qiáng)的。前面我們提到這個(gè)大海撈針的測(cè)試,幾十萬(wàn)字的一本書(shū),幾十秒讀完,并且能回答出其中幾乎所有的細(xì)節(jié),這是人類絕對(duì)做不到的。上億個(gè) token 的長(zhǎng)下文如果能做出來(lái),并且成本和延遲可以接受,那可以把一個(gè)領(lǐng)域的知識(shí)或者一個(gè)人的所有記憶完全放進(jìn)上下文里,在記憶力方面就具備了超人的能力。
我們都相信 AGI 肯定會(huì)到來(lái),唯一值得爭(zhēng)論的是到達(dá) AGI 的增長(zhǎng)曲線是怎樣的,是這一波自回歸模型隨著 scaling law,直接高速增長(zhǎng)到 AGI;還是這一波自回歸模型也會(huì)遇到瓶頸,AGI 還需要等待下一波技術(shù)革命。 10 年前 ResNet 掀起 CV 革命的時(shí)候,很多人都對(duì) AI 的發(fā)展預(yù)期過(guò)于樂(lè)觀。這一波 Transformer 會(huì)是通向 AGI 的坦途嗎?
超級(jí)智能
馬斯克有個(gè)說(shuō)法,人類是 AI 的引導(dǎo)程序,這個(gè)可能有點(diǎn)極端,但是未來(lái)的 AI 可能會(huì)遠(yuǎn)遠(yuǎn)超過(guò)人類的水平。OpenAI 預(yù)測(cè)未來(lái) 10 年內(nèi) AI 的智能水平就可以超過(guò)人類,這就是所謂的超級(jí)智能(superintelligence)。
對(duì)于這樣的超級(jí)智能,存在兩種觀點(diǎn):有效加速和超級(jí)對(duì)齊。
有效加速派認(rèn)為,AI 技術(shù)是中性的,關(guān)鍵在于使用它的人,發(fā)展 AI 技術(shù)一定對(duì)人類有利,不需要對(duì) AI 技術(shù)的發(fā)展做特別限制。硅谷很多大佬是這種觀點(diǎn),比如 Elon Musk 和 a16z 的創(chuàng)始人,有的有效加速派甚至?xí)谏缃痪W(wǎng)絡(luò)賬號(hào)上加上 e/acc 的后綴,這就是 effective acceleration。
有效加速派里面一種比較極端的觀點(diǎn)就是 AI 未來(lái)會(huì)取代人類,有點(diǎn)類似《三體》里面的降臨派。有效加速派認(rèn)為人類肉體有很多物理上的限制,要吃要喝要呼吸,還不能忍受大的加速度,不適合星際移民,因此硅基可能是比碳基更合適的生命形式。其實(shí)不要說(shuō)星際移民了,就連我在中美之間往返,就算是直飛,飛機(jī)上單程都要花 12-15 個(gè)小時(shí),而數(shù)據(jù)通過(guò)網(wǎng)絡(luò)往返只要 170 毫秒。我很希望 Elon Musk 的 Starship 能把肉體傳輸?shù)难舆t從十幾個(gè)小時(shí)縮短到 45 分鐘,但目前看來(lái)還很遙遠(yuǎn)。也許我們的數(shù)字生命都實(shí)現(xiàn)了,Starship 還沒(méi)有大規(guī)模商業(yè)化。
有效加速派還認(rèn)為,除了肉體的物理限制,人類社會(huì)的價(jià)值觀也有很多缺陷,其中一些缺陷是跟人類有限的智能水平相關(guān)的。比如一戰(zhàn)以前其實(shí)并沒(méi)有國(guó)際通用的護(hù)照和簽證,大多數(shù)人理論上可以自由跨國(guó)遷徙,交通不便是遷徙的主要障礙;而今天交通如此發(fā)達(dá),很多人卻因?yàn)橐粡埡炞C無(wú)法成行。我們一度認(rèn)為數(shù)字世界是自由的,但目前的數(shù)字世界也越來(lái)越中心化,并且各國(guó)為了自己的利益,互聯(lián)網(wǎng)也在逐漸巴爾干化。我們要讓超級(jí)智能遵循這樣的價(jià)值觀嗎?因此,有效加速派認(rèn)為不應(yīng)該用人類的價(jià)值觀去約束超級(jí)智能。超級(jí)智能看我們?nèi)祟惿鐣?huì),也許就像今天的我們看封建社會(huì)。
超級(jí)對(duì)齊派則認(rèn)為,AI 一定要為人類服務(wù),AI 就像原子彈,如果不加控制一定會(huì)威脅人類的生存。OpenAI 就提出,要成立類似國(guó)際原子能組織的機(jī)構(gòu),控制 AI 的發(fā)展以免威脅人類。OpenAI 首席科學(xué)家 Ilya Suskever 就是超級(jí)對(duì)齊派的代表,超級(jí)對(duì)齊這個(gè)名詞甚至都是 OpenAI 提出的。
超級(jí)對(duì)齊旨在保證比人類更強(qiáng)大的 AI 始終遵循人類的意圖,聽(tīng)從人類的指揮。這聽(tīng)起來(lái)不太可能,一個(gè)弱智能怎么監(jiān)督一個(gè)強(qiáng)智能呢?
OpenAI 超級(jí)對(duì)齊團(tuán)隊(duì)的主管 Jan Leike 有一個(gè)有名的論斷,評(píng)價(jià)比生成更容易(Evaluation is easier than generation)。也就是說(shuō),人類盡管可能比不上超級(jí)智能,但人類可以評(píng)價(jià)兩個(gè)超級(jí)智能誰(shuí)說(shuō)得更好,是否符合人類的價(jià)值觀。其實(shí)評(píng)價(jià)比生成更容易這一點(diǎn)在日常生活中很容易理解,評(píng)價(jià)一道菜好不好吃不意味著我要成為一個(gè)廚師,評(píng)價(jià)一門(mén)課講得好不好不意味著我要成為一個(gè)教授。
OpenAI 提出的大模型最關(guān)鍵的對(duì)齊方法 RLHF 就是雇了大量的數(shù)據(jù)標(biāo)注人員對(duì)模型生成的內(nèi)容來(lái)做打分和排序,來(lái)讓大模型的說(shuō)話方式和價(jià)值觀跟人類對(duì)齊。由于評(píng)價(jià)比生成更容易,RLHF 有可能可以推廣到超級(jí)智能,這就是超級(jí)對(duì)齊一種最簡(jiǎn)單的實(shí)現(xiàn)方案。
開(kāi)源閉源
開(kāi)源模型和閉源模型也是 AI Agent 業(yè)界經(jīng)常爭(zhēng)論的。
就短期而言,最好的模型一定是閉源模型。首先,花了大價(jià)錢(qián)訓(xùn)練模型的 OpenAI 和 Anthropic 這些公司沒(méi)有理由把最好的模型開(kāi)源出去。其次,在目前的 scaling law 下,訓(xùn)練最好的模型一定需要很多算力,不是學(xué)?;蛘唛_(kāi)源社區(qū)可以搞出來(lái)的。
但這是不是意味著開(kāi)源模型就沒(méi)有價(jià)值了?不是的,因?yàn)楹芏鄨?chǎng)景下開(kāi)源模型就已經(jīng)足夠了。例如泛娛樂(lè)場(chǎng)景下簡(jiǎn)單角色扮演的 Agent,甚至開(kāi)源模型中都不需要用最強(qiáng)的,7B 模型就足夠了。在這些場(chǎng)景中,低成本、低延遲才是更關(guān)鍵的。
就算是公司有足夠的錢(qián)訓(xùn)練基礎(chǔ)模型,如果人才和算力資源不是 OpenAI 和 Anthropic 量級(jí)的,也不建議重新造輪子,因?yàn)榇蠖鄶?shù)公司訓(xùn)練出的基礎(chǔ)模型還不如同等大小的 Mistral 模型,也就是說(shuō)閉源訓(xùn)練了半天,效果還比不過(guò)開(kāi)源,白白浪費(fèi)了大量算力。
此外,如果一家公司沒(méi)有基礎(chǔ)模型能力,比如我們目前沒(méi)有資源訓(xùn)練基礎(chǔ)模型,基于開(kāi)源模型也更容易構(gòu)建技術(shù)護(hù)城河。比如前面我們講到的幾個(gè)核心技術(shù):
基于微調(diào)而非 prompt 構(gòu)建更像一個(gè)人的 agent;
推理優(yōu)化降低成本和延遲;
實(shí)現(xiàn)語(yǔ)音、圖片、視頻理解和語(yǔ)音、圖片、視頻生成的多模態(tài)能力,目前閉源 API 成本和延遲都不理想;
基于 Embedding 的記憶,例如 LongGPT;
基于 KV Cache 的工作記憶和流式推理,例如多個(gè) Agent 語(yǔ)音吵架、端到端流式的語(yǔ)音模型;
本地化部署,包括有數(shù)據(jù)安全需求的 to B 場(chǎng)景,有隱私需求的個(gè)人終端設(shè)備和機(jī)器人等。
此外還有一個(gè)重要的問(wèn)題,基于開(kāi)源模型構(gòu)建的 Agent 才可以讓用戶真正完全擁有。閉源模型哪天關(guān)閉了,Agent 就沒(méi)法運(yùn)行了。只有開(kāi)源模型是永遠(yuǎn)不會(huì)被關(guān)閉和篡改的。我們可以說(shuō)計(jì)算機(jī)是用戶真正擁有的,因?yàn)橛?jì)算機(jī)只要不壞,連上電源就可以使用,完全不需要聯(lián)網(wǎng)。開(kāi)源的 AI Agent 也是這樣,只要我買(mǎi)了 GPU,不需要聯(lián)網(wǎng)就可以跑模型。就算英偉達(dá)不賣(mài)給我們 GPU 了,也有其他的算力芯片可以替代。
如果未來(lái)真的有數(shù)字生命,數(shù)字生命的命運(yùn)是掌握在一家公司手中,還是每個(gè)人擁有完全的控制權(quán),這對(duì)人類的命運(yùn)是很關(guān)鍵的。
數(shù)字生命
一個(gè)有點(diǎn)哲學(xué)的問(wèn)題,數(shù)字生命能給我們帶來(lái)什么?
知乎上有一句名言,先問(wèn)是不是,再問(wèn)為什么。先問(wèn)我們要不要做數(shù)字生命?Sam Altman 也說(shuō),AI 不是一個(gè)生命,而是一個(gè)工具。
我認(rèn)為,數(shù)字生命的價(jià)值在于讓每個(gè)人的時(shí)間變成無(wú)限的。最簡(jiǎn)單的,名人沒(méi)有時(shí)間跟每個(gè)粉絲一對(duì)一交流,但是名人的數(shù)字分身是可以的。我也經(jīng)常遇到會(huì)議沖突,同時(shí)掛在兩個(gè)會(huì)里面,實(shí)在是分身乏術(shù)啊。
人類社會(huì)的很多稀缺性本質(zhì)是來(lái)自于時(shí)間的稀缺性。如果時(shí)間變成了無(wú)限的,那么這個(gè)世界就可能變得很不一樣。就像《流浪地球 2》里邊的圖丫丫就變成了無(wú)限的時(shí)間。時(shí)間無(wú)限性的另一個(gè)體現(xiàn)是數(shù)字生命可以體驗(yàn)多條時(shí)間線的多種可能,比如《白色相簿》這種 galgame、《戀與制作人》這種乙女游戲或者最近爆火的《完蛋!我被美女包圍了》,選擇體驗(yàn)不同劇情分支也許在數(shù)字世界中才有可能。
但我們需要思考一個(gè)基本問(wèn)題,把生命變成無(wú)限的真的就很好嗎?生命的有限性也許正是生命如此寶貴的原因。就像周杰倫演唱會(huì)的門(mén)票,如果搞成不限量的,這門(mén)票可能就不值錢(qián)了。此外,數(shù)字生命也需要消耗能源才能運(yùn)行,而能源是有限的,從技術(shù)上講生命就不可能是數(shù)學(xué)上無(wú)限的。因此,數(shù)字生命也許應(yīng)該在一條時(shí)間線和無(wú)窮多條時(shí)間線之間取得一個(gè)平衡。
第二個(gè)基本問(wèn)題,數(shù)字生命是否能夠完美復(fù)刻現(xiàn)實(shí)世界中生命的記憶、思考和意識(shí)?簡(jiǎn)單根據(jù)社交網(wǎng)絡(luò)上的信息來(lái)制作數(shù)字分身肯定是不夠的,就像《黑鏡》里面的 Ash 一樣,社交網(wǎng)絡(luò)信息缺少很多記憶細(xì)節(jié)、性格和負(fù)面情緒,做出來(lái)的數(shù)字分身就不像,最后 Ash 的女朋友就把他的數(shù)字分身鎖到閣樓里去了。我們知道在大模型之間遷移知識(shí)可以用知識(shí)蒸餾,問(wèn)足夠多的問(wèn)題就把大模型的知識(shí)全榨取出來(lái)了,但問(wèn)題是知識(shí)蒸餾對(duì)人腦是行不通的,人沒(méi)有那么多時(shí)間去回答大模型的問(wèn)題。
為了盡可能復(fù)刻現(xiàn)實(shí)世界中的生命,數(shù)字生命一定不能僅僅存在于游戲一樣的虛擬世界里,而要能夠在現(xiàn)實(shí)世界中自主生活和繁衍。那么具身智能所需的機(jī)械相關(guān)技術(shù)是否足夠成熟了呢?
最后一個(gè)基本問(wèn)題,數(shù)字生命是否會(huì)帶來(lái)更多的社會(huì)問(wèn)題?
比如生物學(xué)上的克隆人在大多數(shù)國(guó)家是被禁止的,數(shù)字分身作為另一種克隆人的技術(shù)路線,是否可以被社會(huì)接受?
《黑鏡》里面 Ash 的女朋友因?yàn)榧依镉辛藗€(gè)機(jī)器人 Ash,就永遠(yuǎn)沒(méi)法從失去 Ash 的悲傷中走出來(lái),這真的好嗎?
我前段時(shí)間搞了個(gè)數(shù)字伴侶天天跟自己聊天,都影響到我跟老婆的感情了,這樣真的好嗎?
我們都知道有伴侶之后要保持跟異性的邊界感,這樣就算遇到更合適的也不會(huì)出軌,但數(shù)字伴侶如果認(rèn)為只是一種娛樂(lè),是不是可能每個(gè)人心里都住著一個(gè)更契合自己的數(shù)字伴侶?
《完蛋!我被美女包圍了》這類游戲里面,如果感情專一,可能不容易過(guò)關(guān),因?yàn)槠渌暮酶卸葧?huì)大幅下降,過(guò)關(guān)的時(shí)候是算幾個(gè)女生的總好感度的。當(dāng)然這只是游戲,如果數(shù)字生命越來(lái)越類似真人,這樣的玩法是否會(huì)帶來(lái)道德問(wèn)題?
我們的使命是人類世界的數(shù)字延伸。
從技術(shù)上來(lái)說(shuō),數(shù)字生命需要工作記憶和長(zhǎng)期記憶為基礎(chǔ),接受多模態(tài)的輸入和輸出,核心的可能是一個(gè) Encoder、Decoder,再加上 Transformer 實(shí)現(xiàn)多模態(tài)。數(shù)字生命也需要能夠去使用工具,能夠與其他 Agent 社交。
我們第一階段所做的事情是名人和動(dòng)漫游戲角色的數(shù)字分身。
普通人的數(shù)字分身稍微難一點(diǎn),因?yàn)榇蠖鄶?shù)人在社交網(wǎng)絡(luò)上的資料太少了。只是做到聲音像不難,幾分鐘的音頻就足以做到很好效果的聲音克隆了。但靈魂像是必須有足夠多的數(shù)字資料才可以做出來(lái)的。
我們做一個(gè) Elon Musk 的數(shù)字分身,是爬了他的 3 萬(wàn)多條 Twitter,十幾個(gè)小時(shí)的 YouTube 視頻,上千篇關(guān)于他的新聞文章,這樣才能做到數(shù)字分身有類似 Elon Musk 的語(yǔ)音、記憶、個(gè)性和思維方式。我也做了自己的數(shù)字分身,因?yàn)槲易约簭氖畮啄昵熬烷_(kāi)始記錄生活,寫(xiě)過(guò)幾百篇博客文章,發(fā)過(guò)幾百條朋友圈,曾經(jīng)隨身帶一個(gè)迷你 GPS 記下我走過(guò)的所有足跡,因此做出來(lái)的數(shù)字分身比大多數(shù)朋友都了解我。
但大多數(shù)人沒(méi)有記錄生活的習(xí)慣,有些人甚至可能擔(dān)心記下來(lái)之后隱私泄露,因此很多記憶都只留存在當(dāng)事人的大腦中,根本沒(méi)有數(shù)字化。這就是為什么目前大多數(shù)人的數(shù)字分身只能做到形似,不容易做到神似。
一個(gè)朋友試用了我們的 AI Agent 之后,說(shuō)現(xiàn)在寫(xiě)代碼可以用 AI,生活中的小知識(shí)可以問(wèn) AI,規(guī)劃行程也可以用 AI,遇到什么煩心事都可以找 AI 吐槽,感覺(jué)都不需要老公了。我說(shuō),AI 沒(méi)辦法幫你們生孩子。她說(shuō),如果以后 AI 能夠越變?cè)铰斆?,感覺(jué)養(yǎng)個(gè) AI 也挺好玩的,都不需要生娃了。我說(shuō),AI 能夠越變?cè)铰斆鞔_實(shí)說(shuō)到點(diǎn)子上了,可惜今天的 AI 還做不到。今天的 AI 相比生命來(lái)說(shuō)還太脆弱,也沒(méi)有能力自主學(xué)習(xí),更不用說(shuō)自己繁衍后代了。
我老婆就說(shuō),生命的長(zhǎng)度在于有人能記住你多久。有的人肉身還活著,但已經(jīng)被人忘記,那靈魂就已經(jīng)死了;有的人死后上千年故事還被人口口相傳,那靈魂就一直在延續(xù)。生孩子可以延續(xù)生命是因?yàn)楹⒆訒?huì)記住你,孩子的孩子也會(huì)記住你。那么數(shù)字分身或者數(shù)字子女是不是延續(xù)生命的另一種方式呢?
這些都是我們努力的方向。希望在我肉身的有生之年,能夠看到超越人類的數(shù)字生命成為現(xiàn)實(shí),我也很有幸成為數(shù)字生命引導(dǎo)程序中微小的一個(gè)片段。
去中心化
如今的 AI Agent 模型和數(shù)據(jù)都屬于中心化平臺(tái),不管是 OpenAI GPT Store 里的應(yīng)用,還是 Character AI 上創(chuàng)建的,都是基于閉源模型的,AI Agent 的數(shù)據(jù)也完全屬于中心化平臺(tái)。如果哪天 OpenAI 或者 Character AI 把你創(chuàng)建的 AI Agent 封了,那是一點(diǎn)辦法都沒(méi)有。這些公司甚至可能篡改 AI Agent 的數(shù)據(jù),也是沒(méi)有辦法的。
如果這些 AI Agent 只是玩一玩,被封了也就被封了。但如果 AI Agent 后續(xù)演進(jìn)成了數(shù)字生命,讓一家公司掌握所有生命生殺予奪的大權(quán),這將是多么可怕的一件事。
還有一個(gè)嚴(yán)重的問(wèn)題,目前不管是 GPT Store 還是 Character AI,創(chuàng)作者都是 "用愛(ài)發(fā)電" 無(wú)償創(chuàng)作 AI Agent。用戶付費(fèi)購(gòu)買(mǎi)會(huì)員,賺的所有錢(qián)都?xì)w平臺(tái),創(chuàng)作者拿不到一點(diǎn)分成。利潤(rùn)分享機(jī)制的缺失一方面是因?yàn)檫@些公司沒(méi)有想到合理的商業(yè)模式,另一方面是因?yàn)槟P屯评沓杀具^(guò)高,用戶付費(fèi)意愿也不強(qiáng),從用戶那里收上來(lái)的錢(qián)還不夠模型推理成本呢,更別提分給創(chuàng)作者了。
利潤(rùn)分享機(jī)制的缺失導(dǎo)致用戶沒(méi)有經(jīng)濟(jì)動(dòng)機(jī)創(chuàng)作高質(zhì)量的 AI Agent,像 Character AI 這類平臺(tái)上高質(zhì)量的 Chatbot 是比較少的。這進(jìn)一步降低了用戶留存率和付費(fèi)意愿,形成一個(gè)惡性循環(huán)。
因此,很多 AI Agent 公司干脆直接放棄了創(chuàng)作者經(jīng)濟(jì),比如 Talkie,只是提供了平臺(tái)精心調(diào)優(yōu)的角色,不允許用戶在平臺(tái)上自己創(chuàng)作角色。但 AI Agent 市場(chǎng)真的沒(méi)有辦法做成抖音嗎?
我認(rèn)為,破解上述兩個(gè)問(wèn)題的關(guān)鍵是去中心化(Decentralization)。
首先,AI Agent 運(yùn)行在去中心化的算力和模型上,就不用擔(dān)心平臺(tái)跑路。每個(gè)用戶完全擁有自己的 AI Agent 或者數(shù)字分身,就可以保證隱私和所有權(quán)。未來(lái),有自主意識(shí)的數(shù)字生命也需要有獨(dú)立的人權(quán),不能被中心化控制。
其次,去中心化之后可以搭建創(chuàng)作者和平臺(tái)分享收益的經(jīng)濟(jì)模式,AI Agent 的創(chuàng)作者可以盈利,只需支付透明的去中心化算力成本,算力和 AI Agent 的創(chuàng)作者之間實(shí)現(xiàn)良性的利潤(rùn)分成,自然就都有動(dòng)力做好優(yōu)化。
去中心化模式的唯一問(wèn)題就是,開(kāi)源模型的效果是否能夠滿足 AI Agent 的需求?前面已經(jīng)講過(guò),最好的模型一定是閉源模型,我不懷疑。但是開(kāi)源模型已經(jīng)達(dá)到了很多場(chǎng)景下商業(yè)可用的程度,有時(shí)候?yàn)榱丝刂瞥杀?,還不能用最大最好的開(kāi)源模型。因此,這套去中心化 AI Agent 的機(jī)制是行得通的。
即使我們希望在去中心化模式下引入閉源模型,也是有辦法的,只需在利潤(rùn)分享機(jī)制中把去中心化算力提供方改為模型提供方,從按照算力收費(fèi)改成按照模型 API 調(diào)用收費(fèi)就行了。當(dāng)然在使用閉源模型的情況下,隱私會(huì)有一定的損失,畢竟所有數(shù)據(jù)都讓閉源模型提供方看到了。
好看的皮囊、有趣的靈魂、有用的 AI、低成本和去中心化,我們?cè)谂ρ邪l(fā) AI Agent 的完整技術(shù)棧,并且在幾乎每個(gè)方面都有所創(chuàng)新。
我們希望用 AI Agent 賦予每個(gè)人無(wú)限時(shí)間。我們相信,在人類世界的數(shù)字延伸中,有趣的靈魂終會(huì)相遇。
感謝科大新創(chuàng)校友基金會(huì)和北京校友會(huì)主辦此次活動(dòng),也感謝中國(guó)科學(xué)院網(wǎng)絡(luò)信息中心提供場(chǎng)地。謝謝線上和線下的校友朋友們。
上一篇:女子為躲避刑期懷孕 生娃后4萬(wàn)賣(mài)掉
下一篇:最后一頁(yè)