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