無常按:
超 4000 字人工提煉,實(shí)在沒時(shí)間可以先讀核心觀點(diǎn),但仍然非常推薦閱讀全文。
因?yàn)槟阋龅膁ecision其實(shí)很多是open-ended的。比如說今天晚上做什么,action space是open-ended的,并沒有一個(gè)類似游戲里的上下左右這樣的鍵盤去給你指引。你可以買張機(jī)票去另一個(gè)城市,或者看個(gè)電視,有無數(shù)種選擇。所以Language更接近這個(gè)事情的本質(zhì)(姚順雨)
注:本期錄制時(shí)間為2024年5月。但認(rèn)知擴(kuò)散的速度并沒有太快,業(yè)界的很多認(rèn)知,到半年后的今天,似乎都遠(yuǎn)沒趕上前沿研究半年前的認(rèn)知。
00:00:45 - 00:02:07
今年除了OpenAI的Solar驚起千層浪以外,同樣引起AI從業(yè)者尤其工程師極大關(guān)注的,想必就是僅通過一段演示視頻就連續(xù)獲得兩輪融資,估值在半年內(nèi)躥升到20億美元的Cognition Labs的AI agent Devin。作為宣稱的世界上第一位AI軟件工程師,它將如何重塑軟件開發(fā)甚至工程師這個(gè)職業(yè)?Devin是否能代表agent應(yīng)用開發(fā)的方向?以及看到目前agent產(chǎn)品還有多少提升空間?
這一期我們邀請(qǐng)到三位在各自領(lǐng)域都極具代表性的嘉賓,有來自去年剛晉升獨(dú)角獸的軟件開發(fā)云平臺(tái)Rapid的AI agent工程師,首個(gè)基于GitHub的代碼能力評(píng)估數(shù)據(jù)集SWE-bench以及首個(gè)開源AI software agent項(xiàng)目Three Agent的作者,還有剛官宣估值達(dá)到10億美元的企業(yè)級(jí)AI編程輔助公司Ogman的AI研究員。
在兩個(gè)多小時(shí)的對(duì)話里,我們從工程師個(gè)體、企業(yè)級(jí)需求以及學(xué)界研究等不同角度,深入探討了最近出現(xiàn)的編程輔助產(chǎn)品、試圖替代工程師的agent、基礎(chǔ)大模型的邊界,以及生成式AI對(duì)個(gè)人職業(yè)和社會(huì)的深遠(yuǎn)影響。本期內(nèi)容遠(yuǎn)遠(yuǎn)超出了對(duì)技術(shù)和產(chǎn)品的探討,希望能對(duì)正在收聽的你們有所啟發(fā)。enjoy。
00:02:07 - 00:03:30
Monica:
大家好,歡迎來到Onboard,我是Monica。
高寧:
我是高寧。
Monica:
今天我們很難得在硅谷錄制這期線下的Onboard。這期節(jié)目的話題,我覺得集合了AI界最近最熱的幾個(gè)方向。一開始我們計(jì)劃討論AI for coding這個(gè)話題。在幾個(gè)月前,大家關(guān)注更多是像Microsoft的Copilot這種auto complete的形態(tài)。但是關(guān)注這個(gè)領(lǐng)域的朋友應(yīng)該也注意到,前幾周Cognition Labs發(fā)布了一個(gè)叫Devin的coding agent,我覺得這一下子讓大家對(duì)LLM或AI如何改變整個(gè)軟件開發(fā)模式有了新的想象空間。
高寧:
每個(gè)階段都非常有代表性的產(chǎn)品和技術(shù)。
Monica:
對(duì),所以我們今天請(qǐng)到了在這個(gè)領(lǐng)域非常有發(fā)言權(quán)的幾位嘉賓。剛才我們也喝了點(diǎn)小酒,氣氛已經(jīng)到位了。
00:03:31 - 00:06:07
高寧:
請(qǐng)三位嘉賓做個(gè)簡(jiǎn)單的自我介紹,同時(shí)分享一下今年發(fā)現(xiàn)的最有意思的產(chǎn)品。我們從順雨開始吧。
姚順雨:
大家好,我叫姚順雨,是Princeton第五年的PhD,馬上畢業(yè)了,現(xiàn)在在舊金山的Sierra實(shí)習(xí)。說到有意思的產(chǎn)品,我想推薦Sierra,這是AI領(lǐng)域真正能落地的產(chǎn)品之一,主要做customer service business agent。我們已經(jīng)有很多客戶了,最讓人興奮的是它真的work,而且能夠完全替代某些角色。
Monica:
Sierra確實(shí)是去年最受關(guān)注的典型大佬創(chuàng)業(yè)公司,是原來Salesforce的CEO創(chuàng)立的,主要為企業(yè)提供customer service chatbot服務(wù)。
高寧:
那除了Sierra之外,你今年發(fā)現(xiàn)最有意思的AI產(chǎn)品是什么?
姚順雨:
我經(jīng)常使用Perplexity,主要用它代替Google搜索一些知識(shí)性的內(nèi)容。
Monica:
不只是在國(guó)內(nèi),就算在國(guó)外,在AI圈子之外的人對(duì)Perplexity都不太熟悉。我現(xiàn)在除了查找具體網(wǎng)站這類事實(shí)信息用Google外,只要是帶問號(hào)的搜索都會(huì)用Perplexity。
李珎:
我現(xiàn)在使用Perplexity的比例已經(jīng)達(dá)到30%了。
Monica:
順雨,你能介紹一下是如何進(jìn)入AI研究領(lǐng)域的嗎?
姚順雨:
我本科時(shí)就開始做科研,最初是做computer vision,后來覺得想要研究language,就轉(zhuǎn)向了這個(gè)方向。
Monica:
順雨很謙虛,他在agent相關(guān)的工作在整個(gè)領(lǐng)域都有很強(qiáng)的標(biāo)志性意義,一會(huì)兒我們會(huì)請(qǐng)他詳細(xì)介紹。
00:06:07 - 00:06:44
趙宇哲:
大家好,我叫趙宇哲,我現(xiàn)在在一家做full stack AI for code的AI創(chuàng)業(yè)公司工作。之前我在Google Research的Google Brain團(tuán)隊(duì),主要做language research的工作。
Monica:
對(duì),這家公司也是某大佬創(chuàng)業(yè)的,我們今天集齊了各個(gè)大佬創(chuàng)業(yè)公司。這家公司是某特別愛孵化的大佬基金孵化的一個(gè)公司。
00:06:45 - 00:09:56
高寧:
能說說你是怎么進(jìn)入AI這個(gè)領(lǐng)域的嗎?
趙宇哲:
我進(jìn)入這個(gè)領(lǐng)域運(yùn)氣特別好。我PhD期間做的是比較理論的研究,當(dāng)時(shí)覺得這些理論研究缺乏實(shí)際意義和解釋性。畢業(yè)時(shí)我在vision和language兩個(gè)方向之間選擇,因?yàn)樵赑hD期間做過一些vision的小項(xiàng)目,但最終選擇了language方向,因?yàn)閘anguage與intelligence更接近,而vision更偏向perception(感知)。
五年前我加入了Google,正好是發(fā)明BERT的團(tuán)隊(duì)。經(jīng)歷了BERT前后NLP研究的翻天覆地變化,這對(duì)我來說是非常好的學(xué)習(xí)機(jī)會(huì)。最初我做了很多BERT的pre-training相關(guān)工作,后來參與了LaMDA項(xiàng)目。LaMDA是生成式AI的開山鼻祖,在此之前沒人認(rèn)為生成式語(yǔ)言模型可以用來做chatbot。之后我們做了第一批instruction tuning的工作,發(fā)表了相關(guān)論文。
我個(gè)人比較感興趣的研究方向是retrieval,我認(rèn)為retrieval對(duì)language model來說是一個(gè)很重要的capability,這也是我現(xiàn)在在新公司正在做的事情。除此之外,我也參與了一些產(chǎn)品落地的工作。
說到AI產(chǎn)品,我覺得視頻生成很有意思,雖然我主要是看demo。日常使用最多的還是GPT,特別是用GPT-4來處理一些圖像相關(guān)的任務(wù)。
00:09:57 - 00:10:23
高寧:
好的,李珎。
Monica:
大家好。
李珎:
大家好,我叫李珎,目前在一家B輪創(chuàng)業(yè)公司工作。我們的產(chǎn)品不僅僅是一個(gè)IDE,它最初是從一個(gè)multiplayer online IDE開始的,現(xiàn)在已經(jīng)有兩千多萬(wàn)用戶。
00:10:23 - 00:11:33
大部分人其實(shí)是在學(xué)習(xí)編程,或者說不太會(huì)寫代碼的,這些人需要一些沒那么專業(yè)的programmer的幫助。我們的vision是'Next billion software creator'。
趙宇哲:
這個(gè)世界上會(huì)寫程序的人只有三四千萬(wàn),是人類人口的極小部分。
李珎:
對(duì),我們經(jīng)常聽到'我有一個(gè)idea,但是缺一個(gè)程序員'。
趙宇哲:
有idea的人是很多的。
李珎:
但是我們的vision其實(shí)就是想讓所有人都成為software creator,你有一個(gè)idea就可以create software。這個(gè)vision在七年前就有了,所以第一步是做一個(gè)云IDE,讓大家可以在手機(jī)上、在任何地方寫代碼,然后有一些輔助配置環(huán)境的工具。現(xiàn)在加入了更多AI的部分,這讓我們離實(shí)現(xiàn)這個(gè)vision會(huì)更近很多。
00:11:33 - 00:12:58
這是我們公司,我是六個(gè)月前來到這里的。我在北航本科畢業(yè)后直接去了Google,在那里工作了五年。
趙宇哲:
在Google主要是做推薦系統(tǒng)?
李珎:
對(duì),做Google News,我們叫Discover,其實(shí)也是news。那時(shí)候我一直在做AI,特別是推薦系統(tǒng),這是上一波AI最賺錢的場(chǎng)景和產(chǎn)品。做了五年后,我覺得基本已經(jīng)卷到頭了,因?yàn)榇蠹叶荚谕霞痈鞣N各樣的奇技淫巧。有很多feature engineering,然后在模型里面加一些奇怪的結(jié)構(gòu),比如attention、transformer這些。這些方式it worth,但已經(jīng)有種卷到頭的感覺了。真正能帶來正向revenue的突破不多,所以我后來就出來了,去TikTok做了一年推薦,想看看他們?cè)诟墒裁础?/span>
00:12:58 - 00:15:42
Monica:
你不是已經(jīng)覺得卷到頭了嗎?怎么又去了一個(gè)更卷的地方?
李珎:
我當(dāng)時(shí)覺得Google的工作方式可能不太適合我,想看看中國(guó)公司是怎么樣的,因?yàn)槲蚁雱?chuàng)業(yè)。創(chuàng)業(yè)就會(huì)面臨一個(gè)問題:是在美國(guó)創(chuàng)業(yè)還是在中國(guó)創(chuàng)業(yè)?所以我想給自己一年時(shí)間去回答這個(gè)問題,就去了TikTok。待了一年拿到綠卡后我就出來創(chuàng)業(yè)了,因?yàn)槲矣X得自己做才能真正學(xué)到東西。
我做了一個(gè)Biotech領(lǐng)域的Copilot,就是給biotech的人做copilot。從前年到去年九月份,那時(shí)ChatGPT還沒出來。我們當(dāng)時(shí)有個(gè)very big ambition,想做GPT的App Store。后來我發(fā)現(xiàn)AI在coding領(lǐng)域能產(chǎn)生更大的價(jià)值,就開始尋找這個(gè)方向的機(jī)會(huì)。
Monica:
所以你當(dāng)時(shí)去的這家公司已經(jīng)做了好幾年了,是在一個(gè)什么階段?
李珎:
他們已經(jīng)做了六七年,有很好的產(chǎn)品市場(chǎng)契合度,有大量用戶非常喜歡這個(gè)產(chǎn)品,但需要開始盈利了。我加入的時(shí)候正好是公司開始引入AI的早期階段,他們剛從Google Research挖來了我的老板,他之前在做PaLM和其他coding model。公司剛開始加入ghost writer等AI相關(guān)feature,是很早期的階段,然后后面又做了一系列的提升。
00:15:44 - 00:16:59
高寧:
你今年發(fā)現(xiàn)的最有意思的AI產(chǎn)品是哪個(gè)?
李珎:
因?yàn)槲蚁胍狤mpower更多人去build software,有一個(gè)產(chǎn)品特別有意思。是一家叫Buildspace的公司,是a16z投資的。它更像是一個(gè)學(xué)校,主要是幫助更多人學(xué)習(xí)怎么做產(chǎn)品。他們今年做了一個(gè)新產(chǎn)品,是一個(gè)chatbot。你可以跟它說你的idea,它要么幫你生成代碼,要么幫你對(duì)接到能幫到你的人。比如說,如果你是YouTuber,你跟它說我想要給我的視頻生成更好的封面,它就會(huì)幫你找到大概十個(gè)正在做YouTube視頻封面生成的公司或者個(gè)人。
00:16:59 - 00:17:45
這個(gè)產(chǎn)品本質(zhì)上是在把人和人connect起來,這是一件很好的事情,是幫助你去完成目標(biāo)。你并不需要自己會(huì)做所有的事情,只要有人能幫你完成就可以。他之前是做crypto的,現(xiàn)在在Web3上。
觀眾:
本質(zhì)上這是一個(gè)非常有意思的公司。
李珎:
我非常喜歡這個(gè)founder,他是一個(gè)特別優(yōu)秀的創(chuàng)業(yè)者。他很喜歡sharing他的knowledge。我在他那里學(xué)到的創(chuàng)業(yè)知識(shí),可能比我自己做創(chuàng)業(yè)六個(gè)月學(xué)到的還多,而在他那里只花了幾個(gè)星期的時(shí)間。
00:17:46 - 00:20:24
Monica:
我覺得這個(gè)挺有意思的,讓我想到HeyGen。他們之前分享過早期的一個(gè)growth hack。這是一家華人創(chuàng)業(yè)公司,前段時(shí)間拿到了Benchmark的4000萬(wàn)美金投資。他們是幫你自動(dòng)生成類似真人的avatar。最早他們把服務(wù)放到Fiverr這個(gè)freelancer平臺(tái)上,那里真人視頻服務(wù)通常要收費(fèi)幾十到一百美金一小時(shí)。他們就把AI生成的視頻標(biāo)價(jià)很低,好像就五美金左右。這個(gè)價(jià)格差太大了,一下子就打開市場(chǎng)了。我覺得以后有了這些AI技術(shù)和產(chǎn)品,真的可以幫你端到端完成工作,到時(shí)候在這些網(wǎng)站上,你可能都分不清哪些是AI、哪些是真人做的了。
李珎:
我是通過Buildspace認(rèn)識(shí)到這些的。Buildspace的slogan是six weeks to work on your dream。它會(huì)定期組織batch活動(dòng),六周時(shí)間讓你去實(shí)現(xiàn)自己的夢(mèng)想。你可以做software、APP,甚至像我當(dāng)時(shí)那樣畫漫畫,也可以寫歌。他們不教你怎么寫代碼,而是教你怎么讓別人關(guān)注你的產(chǎn)品,怎么去launch。我參加過兩次,后來通過Buildspace的founder Farza和Anthropic CEO的fire side chat認(rèn)識(shí)了Anthropic,這就是我現(xiàn)在在這里的原因。
00:20:24 - 00:20:41
趙宇哲:
非常酷的。
Monica:
對(duì),很棒。剛才李珎講到了Replit,這家成立五六年的公司現(xiàn)在融資已經(jīng)超過了兩億美金。
高寧:
是個(gè)獨(dú)角獸了。
00:20:41 - 00:21:37
Monica:
對(duì),朱老師說得對(duì)。在這波AI浪潮中,Replit在美國(guó)一直處于聚光燈之下。我覺得他們算是前行者,從兩三年前就開始加入很多AI功能,迭代也非常快。我專門去看了Replit的博客,他們分享了很多關(guān)于AI的思考。去年年中他們就發(fā)表了一篇博客,講AI will redefine every single app feature。他們發(fā)布的這些AI功能讓我們發(fā)現(xiàn),AI在IDE開發(fā)工具里的應(yīng)用遠(yuǎn)不止Copilot那樣的功能。李珎,你能給大家介紹一下Replit的AI產(chǎn)品都有哪些?它背后的主線邏輯是怎樣的?
00:21:38 - 00:22:02
趙宇哲:
我們的主線邏輯很簡(jiǎn)單,我們想做兩件事。
李珎:
第一件事是Next billion software creator,讓更多的人可以去create software。第二個(gè)是from idea to software,就是把你的想法轉(zhuǎn)變成一個(gè)能夠幫你profit的軟件。
00:22:02 - 00:22:32
我們所有的產(chǎn)品都是圍繞著這個(gè)平臺(tái),這是一個(gè)云端的代碼平臺(tái),它支持multiplayer功能。
趙宇哲:
用戶可以在云端編寫代碼。
李珎:
這個(gè)multiplayer功能實(shí)際上給我們帶來了很多用戶,特別是教育領(lǐng)域的用戶。比如老師可以實(shí)時(shí)看到學(xué)生在寫什么代碼,在整個(gè)debug過程中,每一個(gè)步驟都能在multiplayer環(huán)境下被看到。
00:22:32 - 00:23:56
觀眾:
是code completion,就是我們當(dāng)時(shí)的ghost writer。
李珎:
在你寫代碼的時(shí)候,它會(huì)出現(xiàn)一堆ghost writer,也就是ghost text。你可以接受它給你的補(bǔ)全建議,這個(gè)其實(shí)跟GitHub Copilot和大量的補(bǔ)全產(chǎn)品非常像。這是一個(gè)很直觀的能夠幫助程序員寫代碼的產(chǎn)品,也是現(xiàn)在大家覺得最有用的產(chǎn)品之一。
同時(shí)我們會(huì)有一個(gè)AI chat,這是個(gè)很常見的產(chǎn)品。在我們的IDE里,左邊是代碼,右邊就是chat。你可以用它做很多事情,比如幫你生成代碼,然后直接一鍵貼到IDE里面。或者當(dāng)某個(gè)地方有紅線提示LSP錯(cuò)誤或語(yǔ)法錯(cuò)誤時(shí),上面會(huì)有debug按鈕,點(diǎn)擊后它會(huì)在chat里顯示錯(cuò)誤原因,并告訴你如何修復(fù)。
00:23:56 - 00:25:34
我們的Software開發(fā)流程是這樣的:從寫代碼開始,然后debug運(yùn)行,我們最大的優(yōu)勢(shì)是把所有環(huán)境都放在了云端。
趙宇哲:
云端確實(shí)解決了很多問題。
李珎:
是的,程序員都知道配環(huán)境很麻煩。Replit通過云端環(huán)境和standardize的setup腳本解決了這個(gè)問題,這樣就不存在本地Python dependencies這樣的問題了。到最后一步deployment時(shí),你完成軟件后希望它成為一個(gè)真的網(wǎng)站供人訪問。我們其實(shí)做了一件事,就是把整個(gè)軟件開發(fā)周期里面要做的事情都集成在了一個(gè)平臺(tái)里面,是一個(gè)all in one的platform。
現(xiàn)在市場(chǎng)上有很多公司分別在做code completion、deployment等單項(xiàng)功能。把這些整合在一起有好有壞:壞處是我們一個(gè)公司要做好幾家公司的事情,好處是可以把整體體驗(yàn)優(yōu)化得非常好。
00:25:34 - 00:26:44
我們發(fā)布了很多功能,包括ghost writer和chat。今年初我們做了一個(gè)很大的改動(dòng)就是AI for All。之前AI功能只對(duì)付費(fèi)用戶開放,現(xiàn)在我們把這個(gè)功能開放給了所有人。你現(xiàn)在上Replit,不需要有賬號(hào)就可以使用code completion和AI chat。這對(duì)我們來說其實(shí)是在花錢的事情,因?yàn)槲覀円Ц哆@些token給免費(fèi)用戶。
高寧:
用戶現(xiàn)在不需要注冊(cè)就可以體驗(yàn)這些AI功能了嗎?
李珎:
對(duì),不需要注冊(cè)就可以用。這是我們的vision,因?yàn)槲覀兿胍尭嗳四軌蛴肁I去create software。這也是我加入后做的比較大的第一批工作之一。
00:26:46 - 00:28:57
這其實(shí)也引出了我們自己的一些工作。我們訓(xùn)練了自己的code completion模型,包括上個(gè)月發(fā)布的code pair模型,因?yàn)槲覀円С指嗳耸褂肁I。我們有幾百萬(wàn)用戶需要服務(wù),這對(duì)模型和后端系統(tǒng)提出了很多特殊要求。
高寧:
我理解就是需要一個(gè)更小的模型,用更低成本的方式來服務(wù)更大規(guī)模的用戶,對(duì)嗎?
李珎:
對(duì),有兩個(gè)出發(fā)點(diǎn)。第一個(gè)就像你說的,模型必須要小,因?yàn)檫@樣才快,而且要便宜。第二個(gè)原因是我們要利用自己的數(shù)據(jù)來提升模型性能。
Monica:
我看到最近發(fā)布的1.5版本code模型是3B參數(shù)量。
李珎:
對(duì),我們現(xiàn)在有3B參數(shù)量的code completion模型,已經(jīng)放在Hugging Face上可以下載。另外,我們最近還發(fā)布了一個(gè)code repair模型,它不是做補(bǔ)全,而是幫你修復(fù)代碼錯(cuò)誤的。這個(gè)模型既可以讓agent用來修復(fù)代碼中的bug,用戶也可以直接獲得修復(fù)建議。相比調(diào)用更大的模型,我們用更小更快的方式來提供建議,這樣就能更頻繁地服務(wù)用戶。
00:28:57 - 00:30:43
高寧:
現(xiàn)在我們看到專門針對(duì)coding的模型非常多,非常卷。不管是大模型公司還是像magic這樣的startup,包括云廠商都在開發(fā)自己的coding model。我想請(qǐng)教大家,我們是否真的需要一個(gè)專門的coding model?它的能力是否真的可能超越現(xiàn)在的通用基礎(chǔ)模型?
Monica:
這涉及兩個(gè)問題:一是專門的coding模型在效果上能否超越最好的通用基礎(chǔ)模型,二是我們現(xiàn)在有這么多專門的coding model,是純粹出于效率的考量,還是有其他因素在里面?
李珎:
從Replit的角度來說,我們的目標(biāo)是要Power next billion Creator。雖然我們只訓(xùn)練了3B的模型,但評(píng)估顯示其性能比Code Llama 7B更好。因?yàn)槲覀兊挠脩糁饕?/span>citizen developer,所以我們更關(guān)注效率和成本。我們的主要考量是如何降低為用戶提供免費(fèi)服務(wù)的成本,同時(shí)充分利用我們自己的數(shù)據(jù)。
00:30:43 - 00:31:01
Monica:
關(guān)于podcast討論的這個(gè)話題,如果大家使用公開抓取的coding數(shù)據(jù),大概率這些數(shù)據(jù)的質(zhì)量不如企業(yè)內(nèi)部的代碼那么高,因?yàn)楹芏嚅_源代碼可能存在garbage in, garbage out的問題。
00:31:01 - 00:31:46
趙宇哲:
我覺得這個(gè)問題很好,我們的promise是我們絕對(duì)不會(huì)在意這一點(diǎn)。這就是做enterprise業(yè)務(wù)的特點(diǎn)。我可以看到做enterprise和非enterprise業(yè)務(wù)有很大的區(qū)別。
比如說data engine這個(gè)領(lǐng)域,為什么要用Snowflake而不用Azure或者GCP的服務(wù)?有一部分原因是trust。如果你是面向企業(yè)的企業(yè),對(duì)這個(gè)特別在意。當(dāng)然也不是所有企業(yè)都這樣,特別小的企業(yè)可能無所謂,但是到了一定規(guī)模,大家對(duì)這個(gè)問題特別清楚,會(huì)對(duì)security有顧慮,這讓體驗(yàn)很不一樣。
00:31:46 - 00:34:04
Monica:
我在想,在這個(gè)領(lǐng)域是否不存在所謂的數(shù)據(jù)飛輪效應(yīng)?因?yàn)榭蛻魯?shù)據(jù)都無法使用,各個(gè)model的數(shù)據(jù)似乎都沒有什么優(yōu)勢(shì)。
趙宇哲:
我并不完全同意。公司可以獲取一些帶license的數(shù)據(jù),而且GitHub本身的數(shù)據(jù)已經(jīng)很豐富。目前標(biāo)準(zhǔn)做法是收集GitHub的各種版本進(jìn)行deduplicate。但這里有個(gè)關(guān)鍵問題是license,在GitHub上clone代碼并不意味著license允許你用于訓(xùn)練。如果要認(rèn)真做enterprise服務(wù),這存在legal風(fēng)險(xiǎn)。比如Microsoft為了獲得trust,會(huì)向GitHub用戶承諾處理所有l(wèi)egal問題。
Monica:
那這樣的話,如果GitHub也嚴(yán)格遵守license,是不是意味著他們?cè)跀?shù)據(jù)上也不會(huì)比別人有優(yōu)勢(shì)?
趙宇哲:
是的。而且Copilot現(xiàn)在是用OpenAI的API,他們之間的關(guān)系并不透明。不過,GitHub確實(shí)提供了enterprise服務(wù),如果企業(yè)需要fine tuning,他們可以提供fine tuning服務(wù)和私有化部署。
Monica:
所以最終企業(yè)的需求是希望model只benefit自己的數(shù)據(jù)?
趙宇哲:
對(duì),這會(huì)是一個(gè)重要的service方向。
00:34:04 - 00:35:29
Monica:
我對(duì)這個(gè)領(lǐng)域還不是很了解,想請(qǐng)教一下,如果拿最強(qiáng)大的通用基礎(chǔ)模型,比如GPT-4這樣的模型,與專業(yè)的coding模型相比,它們的編程能力是怎樣的關(guān)系呢?
趙宇哲:
這是個(gè)很好的問題。當(dāng)初不只有專門做coding的模型,還有專門做數(shù)學(xué)證明的模型。這種專門化模型出現(xiàn)有幾個(gè)原因:
一方面是學(xué)術(shù)界的research需求,因?yàn)榇a這個(gè)language不是natural language,作為natural language研究的人原本不研究code。但當(dāng)T5這些模型出現(xiàn)后,學(xué)術(shù)界就開始專門研究如何用這些模型去做code task,包括數(shù)學(xué)和邏輯證明的模型。
另一個(gè)重要原因是cost考慮,因?yàn)殡m然code跟natural language有關(guān)系,但關(guān)聯(lián)度并不那么高。如果只是想訓(xùn)練一個(gè)專注于code的模型,可能專門訓(xùn)練會(huì)更好。比如國(guó)內(nèi)的DeepSeek就是一個(gè)非常優(yōu)秀的代碼模型。
Monica:
而且DeepSeek還是開源的。
00:35:30 - 00:36:50
趙宇哲:
還是開源的。然后在代碼訓(xùn)練上,有一個(gè)很有意思的預(yù)訓(xùn)練方法叫filling the middle。它不是傳統(tǒng)的從上到下、從左到右的訓(xùn)練方式,而是專注于上下文中間的內(nèi)容。這個(gè)任務(wù)特別適合做代碼補(bǔ)全。OpenAI的論文也提到了這一點(diǎn),說明這種filling the middle的訓(xùn)練方式是很重要的。
DeepSeek就采用了這種方法,而且他們還在代碼訓(xùn)練上做了一些創(chuàng)新,比如repo level的預(yù)訓(xùn)練。你想啊,對(duì)于普通文本來說,不同文本之間是隨機(jī)組合的,因?yàn)樗鼈儽緛砭蜎]什么關(guān)系。但是對(duì)代碼來說就不一樣了,因?yàn)樵谕粋€(gè)代碼庫(kù)里,不同的文件之間是有關(guān)聯(lián)的。DeepSeek就利用這種文件之間的關(guān)系來構(gòu)造訓(xùn)練數(shù)據(jù),這樣就能得到很好的長(zhǎng)文本訓(xùn)練數(shù)據(jù)。
00:36:51 - 00:37:10
姚順雨:
我們需要對(duì)這些內(nèi)容進(jìn)行排序嗎?
趙宇哲:
對(duì),這是在做錯(cuò)誤處理。在code上實(shí)現(xiàn)是很容易的。我覺得在natural language中雖然不是不可以,你可以用search來排序文本,但code就容易得多,因?yàn)閏ode的結(jié)構(gòu)比較清晰。
李珎:
結(jié)構(gòu)比較清晰。
趙宇哲:
對(duì),正是因?yàn)榻Y(jié)構(gòu)比較清晰,所以在code上可以更容易地實(shí)現(xiàn)這些功能。
00:37:10 - 00:37:36
姚順雨:
是不是tokenization也不太一樣?
趙宇哲:
理論上可以用相同的tokenization,但實(shí)際上確實(shí)會(huì)不一樣。即使用相同的訓(xùn)練策略,distribution也會(huì)不一樣。不過之前的表現(xiàn)確實(shí)很好。
GPT-4的代碼能力非常強(qiáng)。對(duì)于general model來說,你需要專門分配很大的預(yù)算來訓(xùn)練代碼能力,因?yàn)榇a相關(guān)的能力需要很大的模型capacity。
00:37:36 - 00:38:33
最近發(fā)布的Llama 3在代碼方面表現(xiàn)很強(qiáng)。從能力上來說,專門的code model不一定比general model強(qiáng),但它的模型體積一定更小。
Monica:
現(xiàn)在這些model的coding能力相比是怎么樣的?
趙宇哲:
DeepSeek很強(qiáng),然后Llama和GPT都很厲害。但這要看具體task,GPT不是專門做代碼補(bǔ)全的模型。專門的代碼補(bǔ)全模型在這方面確實(shí)厲害。但在human evaluation時(shí),有一個(gè)特別的task,就是decode任務(wù)。
高寧:
刷題的那個(gè)。
趙宇哲:
對(duì),就是很簡(jiǎn)單的standalone任務(wù),給你一個(gè)單獨(dú)的任務(wù),要求實(shí)現(xiàn)某個(gè)算法,GPT-4在這方面表現(xiàn)很強(qiáng)。
00:38:33 - 00:40:00
Monica:
去年年初我們和Google PaLM的作者之一討論時(shí)就提到,大家發(fā)現(xiàn)加入coding數(shù)據(jù)的重要性已經(jīng)成為業(yè)界共識(shí)。如果那些做Foundation model的公司目標(biāo)是AGI,他們肯定會(huì)花大價(jià)錢,盡可能獲取所有能拿到的最高質(zhì)量coding數(shù)據(jù)。
趙宇哲:
完全同意這個(gè)AGI的觀點(diǎn)。有人認(rèn)為如果是一個(gè)很強(qiáng)的程序員能寫代碼就是AGI的體現(xiàn),因?yàn)閮?yōu)秀的程序員可以實(shí)現(xiàn)很多功能。這就是Magic Dev Def公司的主張,這是很有邏輯的。這也解釋了為什么大家都關(guān)心MMLU能力,還有人專門訓(xùn)練模型做奧數(shù),因?yàn)檫@些都與reasoning能力關(guān)系最緊密。
李珎:
如果我們認(rèn)為當(dāng)前的瓶頸是reasoning能力,那就應(yīng)該給模型提供更多的reasoning數(shù)據(jù)。而現(xiàn)在大家能想到的最強(qiáng)的reasoning數(shù)據(jù)就是代碼。
00:40:00 - 00:40:56
高寧:
我知道有一家startup,他們專門為L(zhǎng)LM公司提供訓(xùn)練用的代碼數(shù)據(jù)。這些LLM公司會(huì)提出具體需求,然后這家startup負(fù)責(zé)招聘專業(yè)程序員來編寫高質(zhì)量的代碼數(shù)據(jù),用于預(yù)訓(xùn)練。這個(gè)模式有點(diǎn)像Scale AI。
李珎:
他們是通過購(gòu)買這些數(shù)據(jù)來獲得收入的。
趙宇哲:
我看到很多代碼的instruction數(shù)據(jù)集。
高寧:
是的,GitHub上的代碼數(shù)據(jù)質(zhì)量只能說是中庸水平,現(xiàn)在確實(shí)需要更專業(yè)、更高質(zhì)量的代碼數(shù)據(jù)集。
Monica:
這說明我們進(jìn)入了數(shù)據(jù)升級(jí)階段,要產(chǎn)生高質(zhì)量的數(shù)據(jù),成本也在不斷提高。
00:40:56 - 00:43:29
我想了解一下,你剛才提到為了讓模型有更好的代碼補(bǔ)全能力,有很多專門的訓(xùn)練方式。這些訓(xùn)練方式能用于Foundation model的訓(xùn)練嗎?
趙宇哲:
是可以的。這種上下文預(yù)測(cè)的方式并不新,T5就是這么做的。我之前做過一個(gè)叫dialogue predicting的工作,目標(biāo)是通過已知對(duì)話的上下文來預(yù)測(cè)中間的話語(yǔ)內(nèi)容。這個(gè)task雖然有多種變體,但并不是很popular,主要是因?yàn)樾蕟栴}。在decoder-only model中,training時(shí)你只是讓它predict下一個(gè)token。這里有個(gè)概念叫cost of masking,就是在predict token時(shí)會(huì)使用當(dāng)前所有可見的token。如果做filling the middle training,dependency關(guān)系就會(huì)改變,之前的計(jì)算就不能被重用了。
姚順雨:
比如你想用第一句和第三句來預(yù)測(cè)第二句,然后又要用第二句和第四句來預(yù)測(cè)第三句,這樣很多計(jì)算就沒法reuse。
趙宇哲:
對(duì),雖然付出同樣的計(jì)算量,但效率會(huì)低很多。
Monica:
這讓我想到最近大家經(jīng)常討論的AI能否幫我們解決復(fù)雜的學(xué)術(shù)問題,比如數(shù)學(xué)定理證明。本質(zhì)上不就是已知條件和結(jié)論,需要證明中間過程嗎?這個(gè)technique能用在這方面嗎?
趙宇哲:
有這個(gè)可能性,但做reasoning時(shí)不一定要用filling the middle的方式。你可以用其他prompt方式,把結(jié)論直接放到prompt前面告訴模型這是目標(biāo)。這樣也是可以work的。
00:43:29 - 00:45:26
Monica:
姚順雨,你怎么看?就前段時(shí)間Magic Dev一上來就融了上億美金,號(hào)稱要做最最牛逼的coding模型,說這是通往AGI的捷徑。
姚順雨:
我認(rèn)為coding數(shù)據(jù)對(duì)訓(xùn)練Foundation Model非常重要,這個(gè)毫無疑問。但僅靠coding能否實(shí)現(xiàn)AGI這點(diǎn)還有待商榷。natural language和programming language是有本質(zhì)區(qū)別的。programming language更結(jié)構(gòu)化,而natural language更noisy,有更多的pragmatic結(jié)構(gòu)。對(duì)于人來說,比如要?jiǎng)?chuàng)業(yè),就需要同時(shí)掌握programming language和natural language。我覺得高質(zhì)量的coding數(shù)據(jù)eventually會(huì)很重要。
Monica:
你覺得eventually最強(qiáng)的Foundation Model的coding能力會(huì)強(qiáng)于專門的coding model嗎?
姚順雨:
我覺得是的,因?yàn)檫@不是一個(gè)fair comparison。Foundation Model規(guī)模更大,而且在其他數(shù)據(jù)上訓(xùn)練后整體推理能力會(huì)更強(qiáng)。但這要取決于具體application,比如Copilot這樣的應(yīng)用就需要小模型。
李珎:
討論最強(qiáng)模型的話,最強(qiáng)的模型一定是把所有數(shù)據(jù)都用上的。不會(huì)出現(xiàn)一個(gè)僅僅因?yàn)橛昧烁郼oding數(shù)據(jù)就能超越最強(qiáng)模型的情況。
00:45:27 - 00:46:42
Monica:
讓我們聊聊model之后的產(chǎn)品話題。o1選擇了一條比較難的路徑,就是完全構(gòu)建一個(gè)自己的IDE。我們看到很多像Copilot這樣的產(chǎn)品采用插件形式,我很好奇你們是怎么思考這個(gè)產(chǎn)品形態(tài)的,以及不同產(chǎn)品形態(tài)對(duì)AI產(chǎn)品設(shè)計(jì)會(huì)有什么影響?
李珎:
說實(shí)話,這個(gè)產(chǎn)品的邏輯我一開始也不太懂,我覺得很多人可能也看不懂。雖然表面上看起來就是一個(gè)IDE,但我們選擇這種形式是有原因的。最大的好處是可以降低用戶的上手成本,用戶不需要去操心下載VS Code、安裝Replit插件、學(xué)習(xí)如何使用Azure部署等這些復(fù)雜的步驟。我們把這些功能都以按鈕的形式整合起來,讓用戶可以一鍵設(shè)置環(huán)境。這也是我們?cè)?022年之前能夠吸引用戶的一個(gè)重要原因。
00:46:42 - 00:49:45
我在考慮加入時(shí)就在思考,如果AGI真的來臨,一個(gè)超強(qiáng)的AGI會(huì)需要什么?它可能有很強(qiáng)的大腦,但如果要替代現(xiàn)有的軟件開發(fā)過程,它需要各種工具,就像手和腳一樣。它需要一個(gè)寫代碼的地方,需要能測(cè)試、部署,然后驗(yàn)證部署結(jié)果,看到自己構(gòu)建的網(wǎng)站效果并進(jìn)行反饋循環(huán)。最后還要把產(chǎn)品上線,接入支付功能,成為一個(gè)真正可以持續(xù)迭代的產(chǎn)品。
這些工具現(xiàn)在都在本地,但最終會(huì)變成云端API供AGI使用。實(shí)際上,我們(Replit)是在打造一個(gè)給AGI寫代碼和制作產(chǎn)品的sandbox,只是現(xiàn)在的用戶還是人。即使OpenAI開發(fā)出超強(qiáng)的模型,它也需要像我們一樣構(gòu)建云平臺(tái),讓AGI能夠編寫、運(yùn)行、debug代碼,處理編譯問題和LSP,處理各種錯(cuò)誤和不同的編程語(yǔ)言。如果一個(gè)公司之前幾年的工作能被輕易取代,那這個(gè)公司就沒有什么價(jià)值。
姚順雨:
你提到未來AI可能會(huì)使用你們的工具,它是通過API接入還是使用UI界面?
李珎:
我們內(nèi)部已經(jīng)有了這些API,包括獲取30多種編程語(yǔ)言的編譯結(jié)果、LSP結(jié)果、部署運(yùn)行測(cè)試等每一個(gè)步驟。就是通過function calling,告訴AI這些工具可以用,它就能直接調(diào)用這些API。
00:49:46 - 00:51:35
Monica:
我在思考未來的開發(fā)環(huán)境選擇問題。現(xiàn)在我們需要在GitHub和Replit之間做選擇,但我認(rèn)為未來決策可能會(huì)往更高層面發(fā)展。就像訂外賣,現(xiàn)在我們要在Uber eats和其他平臺(tái)之間選擇,但未來可能我只需要表達(dá)我要訂外賣這個(gè)需求,由AI模型來決定使用哪個(gè)平臺(tái)。同樣,開發(fā)者可能只需要表達(dá)我要寫代碼,由AI來決定在哪個(gè)平臺(tái)上實(shí)現(xiàn)。
李珎:
這要看用戶類型。如果是編程小白,確實(shí)需要很high level的抽象,比如幫我做個(gè)程序,演唱會(huì)有票就給我發(fā)短信。但對(duì)于專業(yè)程序員,就像F1賽車手一樣,他們會(huì)更具體地描述需求,比如要build一個(gè)iOS app,需要接入stripe,需要這個(gè)功能那個(gè)功能。
高寧:
當(dāng)需求明確時(shí),就需要specific的model和function。RAG技術(shù)更適合小白用戶,也就是citizen developer。而宇哲他們公司做的是插件形態(tài)的產(chǎn)品,專門服務(wù)于企業(yè)里的專業(yè)程序員。這與GitHub copilot等產(chǎn)品相比有其獨(dú)特的定位。
00:51:35 - 00:54:09
產(chǎn)品的一個(gè)不一樣的地方和這里面的一些難點(diǎn)在哪里?
趙宇哲:
我們公司的value proposition是希望我們的產(chǎn)品是真正懂你的codebase的。這個(gè)設(shè)計(jì)是針對(duì)已經(jīng)有一個(gè)極大的codebase存在的場(chǎng)景。這和現(xiàn)在主流的那些benchmark很不一樣,因?yàn)槟切└袷敲嬖囶},甚至比面試題還要簡(jiǎn)單的考試題。
在現(xiàn)實(shí)工作中,無論你做什么工作,都會(huì)面對(duì)一個(gè)巨大的codebase。比如做財(cái)務(wù)的會(huì)面對(duì)整個(gè)公司的financial系統(tǒng),做程序員的會(huì)面對(duì)整個(gè)公司的代碼。有趣的是,世界上擁有最大codebase的其實(shí)不是tech公司,而是銀行。
無常按:剛好和最近的一個(gè)思考不謀而合了。不存在從零到一的創(chuàng)作,今天人類幾乎所有創(chuàng)作都是有上下文的。所以AI產(chǎn)品必須要了解用戶場(chǎng)景的上下文,必須RAG(也許還應(yīng)該有其他方式)。
我們面臨兩個(gè)主要挑戰(zhàn):
第一,產(chǎn)品必須真正懂你的整個(gè)codebase,所以retrieval特別重要,因?yàn)檫@些代碼不會(huì)出現(xiàn)在Foundation模型的訓(xùn)練數(shù)據(jù)中。
第二,產(chǎn)品feature必須能融入用戶的工作流。對(duì)于professional用戶來說,他們已經(jīng)有了自己的工作方式,這就是為什么代碼補(bǔ)全這么受歡迎,因?yàn)樗鼘?duì)工作流的改變最小,用起來也很簡(jiǎn)單。
所以對(duì)我們公司來說,最重要的就是要在一個(gè)巨大的codebase里面做一個(gè)好用的工具。
00:54:09 - 00:55:26
Monica:
我很好奇,在你們這么多AI feature中,哪個(gè)是最受歡迎的?
李珎:
最常用的顯然是code completion功能。不過最近增長(zhǎng)最快的是deployment功能,它可以幫助用戶將產(chǎn)品網(wǎng)站或項(xiàng)目正式上線。這個(gè)功能增長(zhǎng)非常快,而且能很好地monetize,因?yàn)橛脩舳荚敢鉃榇烁顿M(fèi)。我們最近在deployment上也在加入很多AI feature。總的來說,對(duì)所有編程工作而言,最常用的是code completion和聊天功能。
實(shí)際上,我們的AI功能遍布整個(gè)平臺(tái)的各個(gè)角落。這些功能背后都是同一套系統(tǒng),它們之間可以相互共享context。
00:55:26 - 00:57:09
Monica:
我很好奇,剛才宇哲提到要滿足企業(yè)級(jí)需求,能否跟大家解釋一下,如何構(gòu)建一個(gè)更懂企業(yè)自身需求的solution?是RAG吧?
趙宇哲:
對(duì),就是RAG。這是很多做企業(yè)級(jí)AI的公司都需要面對(duì)的問題。RAG有很多種實(shí)現(xiàn)方法和變化,不同的任務(wù)需要不同的方案。
RAG的核心功能是讓Foundation model能夠在私有數(shù)據(jù)的context下完成任務(wù)。在不進(jìn)行fine tuning的情況下,唯一的方法就是把相關(guān)信息放在模型的context里。對(duì)于不同的task,你需要看不同的context,這一點(diǎn)在context特別多的時(shí)候尤為重要。企業(yè)相比個(gè)人通常會(huì)有更大的context,包括自己的codebase和各種數(shù)據(jù)。因?yàn)閏ontext量太大,你沒辦法把所有內(nèi)容都放在language model的context里,所以需要使用retrieval技術(shù)來挑選相關(guān)的內(nèi)容。
00:57:09 - 00:58:39
那這邊關(guān)于retrieval的實(shí)現(xiàn),需要考慮在什么時(shí)候執(zhí)行,以及執(zhí)行的頻率。
李珎:
需要做多次執(zhí)行。
趙宇哲:
在選擇retrieval的具體實(shí)現(xiàn)時(shí),你可以使用關(guān)系型數(shù)據(jù)庫(kù),也可以選擇向量數(shù)據(jù)庫(kù),這些都是可選的方案。
Monica:
雖然大家經(jīng)常談?wù)搑etrieval這個(gè)概念,但實(shí)際上并沒有一個(gè)統(tǒng)一的最佳實(shí)踐。針對(duì)不同的場(chǎng)景,現(xiàn)在的解決方案都是不同的。
趙宇哲:
確實(shí),有些初創(chuàng)公司想要做通用解決方案。我之前做retrieval研究時(shí)也在探索這個(gè)方向,希望開發(fā)一個(gè)通用的retrieval模型。但就目前來說,在自然語(yǔ)言問答這個(gè)任務(wù)上,市面上的模型確實(shí)做得都很好,但問題是并不是所有場(chǎng)景都是問答任務(wù),所以這不是一個(gè)萬(wàn)能的解決方案。
高寧:
在你現(xiàn)在做代碼相關(guān)的企業(yè)場(chǎng)景中,特別是RAG這塊,你覺得最大的挑戰(zhàn)或者跟之前general場(chǎng)景最不一樣的地方在哪里?
趙宇哲:
從技術(shù)角度來說其實(shí)沒有特別大的挑戰(zhàn),但我覺得比較有意思的挑戰(zhàn)是evaluation。這個(gè)問題不僅存在于代碼場(chǎng)景,對(duì)所有初創(chuàng)公司來說,價(jià)值評(píng)估和技術(shù)排名都是很困難的事情。
00:58:39 - 00:59:34
這適用于所有公司。RAG更難的地方在于它本身很難被value,因?yàn)樗皇墙K端的。比如我做代碼質(zhì)量評(píng)估時(shí),直接看代碼好不好就行。但是當(dāng)涉及到應(yīng)該retrieve哪個(gè)文檔來改進(jìn)代碼時(shí),這就多了一層復(fù)雜度,所以retrieve的evaluation本身就更難做。這也是為什么學(xué)術(shù)性的evaluation很難做。
李珎:
對(duì),甚至連標(biāo)注都很難。給你一個(gè)包含一千個(gè)文件的code base和一個(gè)問題,讓你判斷哪兩個(gè)文件最相關(guān),這種標(biāo)注是很難的。這不像其他數(shù)據(jù)標(biāo)注任務(wù),普通大學(xué)生就能完成,這個(gè)真的very hard。
00:59:35 - 01:00:34
姚順雨:
對(duì),你會(huì)用streaming來實(shí)現(xiàn)這個(gè)功能。
Monica:
我最近參加了Google Cloud的活動(dòng),看到很多企業(yè)用戶都在使用RAG技術(shù)。雖然每個(gè)企業(yè)都有自己的實(shí)現(xiàn)思路,但當(dāng)討論到準(zhǔn)確率時(shí),發(fā)現(xiàn)一個(gè)問題:這些系統(tǒng)的準(zhǔn)確率大多只有70%-80%,這樣的準(zhǔn)確率在生產(chǎn)環(huán)境中是很難部署的。我很好奇,提高準(zhǔn)確率的難點(diǎn)究竟在哪里?
趙宇哲:
這個(gè)問題的關(guān)鍵是要先思考準(zhǔn)確率本身的含義,這實(shí)際上是一個(gè)evaluation的問題。
李珎:
就是top K的問題,可能是第一個(gè)結(jié)果準(zhǔn)確,也可能是前十個(gè)結(jié)果都準(zhǔn)確,這其實(shí)很像Google search的問題。
趙宇哲:
對(duì),Google search就是全世界最大的Retrieval系統(tǒng)。
無常按:Google search就是全世界最大的 Retrieval 系統(tǒng)。一個(gè)簡(jiǎn)單到容易被忽略的事實(shí)。
01:00:35 - 01:04:01
Monica:
如果企業(yè)需要達(dá)到90%、95%或99%的準(zhǔn)確率才能在生產(chǎn)環(huán)境中使用,那我們與這個(gè)目標(biāo)之間的差距在哪里?而且我們?nèi)绾稳ズ饬窟@些準(zhǔn)確率呢?
趙宇哲:
我覺得要反過來看這個(gè)問題。針對(duì)特定任務(wù),gap不一定很大。現(xiàn)在Foundation model比傳統(tǒng)NLP solution強(qiáng)的地方在于通用性,但retrieval不是一個(gè)做什么都行的通用工具。它的定義很模糊,在不同任務(wù)中表現(xiàn)差異很大。
Monica:
我最近參加了一個(gè)developer meetup,看到Voyage公司在做embedding model,這是RAG架構(gòu)中的一個(gè)重要環(huán)節(jié)。他們針對(duì)法律、代碼等不同場(chǎng)景開發(fā)專門的embedding model。
李珎:
你指望一個(gè)embedding能在大量候選項(xiàng)中找出最佳匹配是非常難的,這不僅是embedding好壞的問題,而是對(duì)它的期望過高了。比如推薦系統(tǒng),TikTok用用戶embedding去retrieve最接近的視頻embedding,這種關(guān)聯(lián)是由用戶行為驗(yàn)證的。Google的ranking也是基于用戶點(diǎn)擊形成的系統(tǒng)。但常用的RAG方式是基于文本含義構(gòu)建embedding,不是一個(gè)閉環(huán)系統(tǒng)。
無常按:在推薦系統(tǒng)里,TikTok用用戶embedding去retrieve最接近的視頻embedding,這種關(guān)聯(lián)是由用戶行為驗(yàn)證的。Google的ranking也是基于用戶點(diǎn)擊形成的系統(tǒng)——這都是閉環(huán)的。但常用的RAG方式是基于文本含義構(gòu)建embedding,不是一個(gè)閉環(huán)系統(tǒng)。
姚順雨:
這是一個(gè)training task,是在arbitrary的任務(wù)上訓(xùn)練的。
高寧:
那么在現(xiàn)在還缺乏最佳實(shí)踐的情況下,給企業(yè)客戶的產(chǎn)品是不是需要根據(jù)每個(gè)具體任務(wù)去交付,這會(huì)是一個(gè)非標(biāo)準(zhǔn)的過程?
01:04:01 - 01:05:46
趙宇哲:
代碼檢索有個(gè)很好的特點(diǎn),比如說做法律領(lǐng)域的應(yīng)用可能會(huì)有局限性,但在代碼領(lǐng)域,不同企業(yè)使用的programming language是相同的。不同的task可能需要不同的retrieval,但如果這個(gè)task做得好,即使是不同人寫的Java代碼,用不同的library和design pattern,基礎(chǔ)語(yǔ)言都是Java,所以這是可以transfer的。
Monica:
那么不通用的部分是什么呢?
趙宇哲:
不通用的是自然語(yǔ)言模型直接遷移使用的效果可能不理想。比如說做代碼檢索的retrieval用來處理其他代碼問題,效果可能好也可能不好。對(duì)于不同客戶,我們會(huì)提供相同的服務(wù),這也是很有意思的一點(diǎn)。這讓我想到enterprise AI在這一波LLM之前,投入了很大精力做AutoML,當(dāng)時(shí)的目標(biāo)就是要服務(wù)所有公司。
01:05:46 - 01:07:04
說到machine learning,最難的是training。AutoML說可以自動(dòng)幫你清理model,你只要有數(shù)據(jù)就好了。但實(shí)際發(fā)現(xiàn)這個(gè)solution并沒有那么general。
不過code本身通用性很好,雖然對(duì)不同test你可能需要專門engineer一個(gè)solution,但這個(gè)solution是可以被zero-shot的。
李珎:
因?yàn)榇a這件事兒,大家做法都一樣,都是在寫代碼。大家大概率都用相同的language,都在相似的環(huán)境下面。這和Google之前想target的場(chǎng)景很不一樣。程序員的世界相對(duì)來說是比較同質(zhì)的。
姚順雨:
對(duì),就是在互相抄,大家都在Google上retro一下。
Monica:
但是對(duì)于一些大公司來說,因?yàn)樗麄冇幸恍﹍egacy的東西,情況會(huì)不太一樣。
趙宇哲:
這就是為什么RAG的技術(shù)是一樣的,我們把不同的內(nèi)容放在context里面,就可以得到不同的結(jié)果。
01:07:04 - 01:08:47
Monica:
我們一直在討論RAG,是應(yīng)該靠更好的RAG還是更強(qiáng)的context window來解決問題?比如現(xiàn)在的Gemini有ten million的context window,可能還會(huì)更長(zhǎng),你覺得未來會(huì)怎么發(fā)展?
趙宇哲:
如果說long context會(huì)取代RAG,長(zhǎng)期maybe,但短期絕對(duì)不可能。我們測(cè)過,所有模型在處理long context時(shí)都很慢,不需要一百萬(wàn),只要十幾萬(wàn)token就需要十秒幾十秒,特別慢對(duì)吧。不過,當(dāng)我有這個(gè)model的時(shí)候,我可以把它轉(zhuǎn)成一個(gè)RAG solution。雖然沒那么容易,但是非常good。
姚順雨:
大概率只有一小部分。
趙宇哲:
對(duì),大概只有一小部分。而且如果這個(gè)model能讀一百萬(wàn)token并且很強(qiáng),那它大概率知道這一百萬(wàn)token里面哪些部分是有用的。所以這能被轉(zhuǎn)化成一個(gè)RAG solution,而且我有這個(gè)solution一定比你快。
01:08:48 - 01:09:38
李珎:
而且我覺得從長(zhǎng)期來看,有些部分是沒有辦法被代替的。
趙宇哲:
比如說,你在寫程序的時(shí)候……
李珎:
對(duì),比如說你需要參考document。以numpy為例,它有非常多版本的document,你始終需要找到正確版本的document來使用,不可能把所有numpy的document都feed進(jìn)去。這本質(zhì)上是一個(gè)混合了搜索和retrieval的問題,信息可能來自底層代碼庫(kù),也可能來自外部網(wǎng)站,但始終需要從外界獲取信息。你不可能把全世界所有的document都輸入進(jìn)去,必須有一個(gè)選擇的過程,這個(gè)選擇過程就是retrieval,就是RAG。
無常按:長(zhǎng)上下文能取代RAG嗎?短期看不可能,因?yàn)樘恕iL(zhǎng)期看呢?也很難,為什么?首先你總是需要獲取用戶更多信息的,你不可能把所有信息都輸入進(jìn)去,所以需要RAG。再說了,就算你把所有信息都作為上下文輸入進(jìn)去,那也必須有一個(gè)選項(xiàng)的過程,這個(gè)選擇過程就是Retrival,就是RAG
01:09:39 - 01:13:41
Monica:
剛才宇哲講到evaluation這個(gè)問題,這確實(shí)是我們聽到最多的難題之一。特別是在coding領(lǐng)域,這仍然是一個(gè)沒有共識(shí)的問題。正好順雨最近推出了SWE-bench,現(xiàn)在很多做coding的項(xiàng)目都在用。順雨,你能給大家介紹一下SWE-bench以及你之前在coding和agent方面的工作嗎?
姚順雨:
SWE-bench的動(dòng)機(jī)很簡(jiǎn)單,就是現(xiàn)有的coding benchmark不太行。一個(gè)好的benchmark應(yīng)該具備幾個(gè)特征:第一,要realistic practical,不能只是toy task;第二,需要challenging,不能太簡(jiǎn)單;第三,需要easy to evaluate,要有好的評(píng)估方法。
現(xiàn)在大多數(shù)NLP benchmark這三點(diǎn)都做得不夠好。比如很多都是toy task,或者是一些簡(jiǎn)單的問題。像human evaluation這種最常用的benchmark,現(xiàn)在模型已經(jīng)能達(dá)到95%以上的表現(xiàn)。對(duì)于agent task來說,evaluation特別難,比如要評(píng)估一個(gè)web agent的輸出好壞就很難判斷。
除了這些核心特征外,一個(gè)好的benchmark還需要具備一些管理特征。比如要有scalable的數(shù)據(jù)收集方法,同時(shí)要確保數(shù)據(jù)不會(huì)被訓(xùn)練集污染。我們發(fā)現(xiàn)GitHub的pull request和issue系統(tǒng)完美符合所有這些特征。
具體來說,task的input很簡(jiǎn)單,就是一個(gè)真實(shí)的GitHub issue和完整的代碼庫(kù),可能有50萬(wàn)行代碼。output就是一個(gè)能解決問題的pull request。evaluation非常簡(jiǎn)單,因?yàn)榭梢灾苯佑庙?xiàng)目里的unit test。這個(gè)任務(wù)既實(shí)用又有挑戰(zhàn)性,目前最好的RAG方案的成功率也只有40%左右。而且數(shù)據(jù)收集很穩(wěn)定,我們測(cè)試發(fā)現(xiàn)不同年份的success rate差不多,即使發(fā)生數(shù)據(jù)污染,我們隨時(shí)可以獲取最新的數(shù)據(jù)來補(bǔ)充。
01:13:41 - 01:14:25
我們當(dāng)時(shí)非常開心。然后開始去做SWE Agent想要去解決這個(gè)問題。
Monica:
讓我給大家解釋一下什么是SWE-Agent。我們剛才討論了很多關(guān)于coding的AI功能,前段時(shí)間一個(gè)叫Devin的產(chǎn)品發(fā)布了flash demo,這確實(shí)給大家打開了新的視野。它展示了agent如何解決更復(fù)雜的coding問題,而且不僅僅是幫助寫更好的代碼,還能解決全鏈路的問題。我想詳細(xì)介紹一下思維agent是什么,以及它背后的設(shè)計(jì)理念是怎樣的。
01:14:26 - 01:18:11l
姚順雨:
對(duì),Sweet Agent的想法其實(shí)很簡(jiǎn)單。在SWE-bench項(xiàng)目中,我們發(fā)現(xiàn)用sequence to sequence的方式處理這類任務(wù)是不現(xiàn)實(shí)的,因?yàn)檩斎肟赡馨瑤资f(wàn)行代碼和具體issue。即使使用RAG方案篩選出相關(guān)文件,仍然面臨很多挑戰(zhàn),因?yàn)閷?duì)人來說,軟件開發(fā)本質(zhì)上是一個(gè)fundamentally interactive(根本上互動(dòng))的過程。
Sweet Agent是SWE-bench任務(wù)上的一個(gè)baseline agent。我們采用了基本的ReAct Agent (Reasoning and Action)思路,關(guān)鍵在于action space的設(shè)計(jì)。最初我們嘗試讓agent在bash terminal中工作,可以查看文件、導(dǎo)航文件夾、編輯文件和運(yùn)行程序。但很快發(fā)現(xiàn)最大的問題是編輯操作缺乏反饋。運(yùn)行程序時(shí)能得到execution result供agent判斷,但編輯文件時(shí)沒有即時(shí)反饋,可能出現(xiàn)syntax error或authentication error卻不自知。
這促使我們提出了Agent Computer Interface(ACI)的概念。人類使用的Visual Studio Code、vim或Emacs這些都是Human Computer Interface(HCI),我們投入大量時(shí)間去打磨這些工具。但這些工具可能并不適合agent。傳統(tǒng)上都是固定environment讓agent變得更好,比如Atari游戲,而我們采用相反思路:固定一個(gè)簡(jiǎn)單的ReAct agent,專注于打磨environment。最終會(huì)有一些co-design,但核心是如何設(shè)計(jì)最適合agent的interface。
01:18:12 - 01:18:45
Monica:
我們可以向大家描述一下,這個(gè)agent能實(shí)現(xiàn)什么樣的體驗(yàn),它可以完成什么樣的任務(wù)?
姚順雨:
我們現(xiàn)在上線了一個(gè)在線demo,你可以復(fù)制任何一個(gè)GitHub issue的鏈接,然后粘貼進(jìn)去,點(diǎn)擊一個(gè)按鈕,它就會(huì)嘗試生成一個(gè)pull request來解決這個(gè)issue。
Monica:
如果大家感興趣的話,這個(gè)SWE-agent的演示視頻在YouTube和B站上都能看到。
01:18:45 - 01:19:49
我覺得大家看了之后會(huì)覺得非常impressive。剛才順雨講到SWE-bench,很多RAG-based的solution準(zhǔn)確率都在個(gè)位數(shù)。而最近Devin和sweet agent的準(zhǔn)確率都超過了10%,有一個(gè)很大的提升。這個(gè)提升主要來源是什么?是不是你們的Foundation model用的是GPT-4?
姚順雨:
對(duì),我們sweet agent用的是GPT-4。我發(fā)現(xiàn)一個(gè)比較有意思的實(shí)驗(yàn)結(jié)果,在RAG的setup下,現(xiàn)在Claude Opus已經(jīng)略微超過GPT-4一點(diǎn)點(diǎn),大約3.幾個(gè)百分點(diǎn)。
趙宇哲:
百分之24本身也是很強(qiáng)的。
姚順雨:
是的,但是在agent這個(gè)領(lǐng)域,GPT-4還是比其他model要強(qiáng)很多,比Claude和其他的都要強(qiáng)很多。這可能是因?yàn)镃laude針對(duì)長(zhǎng)文本和RAG進(jìn)行了優(yōu)化,而GPT-4則是針對(duì)agent進(jìn)行了優(yōu)化。
01:19:49 - 01:20:27
Monica:
這個(gè)three agent能在SWE-bench上比之前的RAG有這么大的提升,主要是什么原因?
姚順雨:
我覺得有好幾個(gè)原因。我覺得最根本的原因是它可以去execute代碼,你可以寫unit test然后去運(yùn)行。如果運(yùn)行失敗了,你還可以繼續(xù)嘗試修改。這個(gè)iterative的feedback loop是非常重要的。如果我只給你一次機(jī)會(huì)寫pull request就立刻提交,都沒有機(jī)會(huì)去運(yùn)行,那就很難確保代碼是正確的。但是execution是一個(gè)關(guān)鍵。
01:20:27 - 01:21:32
Monica:
這個(gè)跟前段時(shí)間大家討論的agent概念,比如AutoGPT這樣的框架是一個(gè)概念嗎?還是有什么不一樣的地方?
姚順雨:
我覺得不一樣的地方就是,AutoGPT和baby AGI這類系統(tǒng)試圖把a(bǔ)gent本身做得非常復(fù)雜,使用各種prompting方法、planning、reflection等技巧。但它們的environment其實(shí)很簡(jiǎn)單,想做一個(gè)通用的agent,但效果不是特別好。我的philosophy就是說,如果我們知道要做什么task,就可以針對(duì)性地優(yōu)化工具和environment,讓相對(duì)簡(jiǎn)單的agent提升performance。
01:21:33 - 01:24:39
高寧:
你們與Devin之間的差別和準(zhǔn)確率差異主要體現(xiàn)在哪些方面?
姚順雨:
Devin是一個(gè)產(chǎn)品,我們是研究項(xiàng)目,目標(biāo)是解決SWE-bench。Devin作為產(chǎn)品需要處理各種軟件環(huán)境下的任務(wù)。他們采用了一個(gè)非常general的環(huán)境,包括web browser、terminal、editor和整個(gè)AI框架。而我們因?yàn)?/span>專注于特定任務(wù),可以將接口優(yōu)化到最適合agent完成任務(wù)。雖然我們的API design對(duì)各種編程任務(wù)都有幫助,但我們的技術(shù)路線是優(yōu)化interface。
Monica:
對(duì)于目前10-12%的準(zhǔn)確率,你怎么看?你期望達(dá)到什么樣的目標(biāo)?
姚順雨:
我覺得現(xiàn)在大家都還是baseline水平。我有朋友的創(chuàng)業(yè)公司可能達(dá)到20%左右。我估計(jì)GPT-4應(yīng)該能達(dá)到30%,因?yàn)?/span>SWE agent只是一個(gè)簡(jiǎn)單的agent加上初步優(yōu)化的interface。Devin是在標(biāo)準(zhǔn)environment下的復(fù)雜agent。如果把interface design和agent design結(jié)合在一起,即使用GPT-4也應(yīng)該能達(dá)到更好的效果。
Monica:
Devin下面是用GPT-4嗎?
高寧:
GPT-4 Turbo發(fā)布時(shí)官方發(fā)了推文at了Devin,應(yīng)該是說明Devin提前獲得了GPT-4 Turbo的接口。
01:24:39 - 01:26:50
Monica:
根據(jù)你剛才的說法,現(xiàn)在很多人在討論agent為什么雷聲大雨點(diǎn)小,沒有很好的落地。很多人歸咎于Foundation model的reasoning能力不行,但根據(jù)SWE-bench的結(jié)果來看,在現(xiàn)有Foundation model能力下其實(shí)還有很大的提升空間。
李珎:
產(chǎn)品化和做research是完全不同的事情。雖然在研究層面看起來不錯(cuò),但要做成用戶能用的產(chǎn)品,需要更多產(chǎn)品層面的思考。
agent與其他AI產(chǎn)品有很大的區(qū)別,首先是一個(gè)iterative(迭代)的過程,用戶需要耐心等待,這種產(chǎn)品形態(tài)是前所未有的。與傳統(tǒng)軟件API相比,一個(gè)LLM相當(dāng)于以前的一個(gè)API call,而現(xiàn)在的agent更像是把這些API組合成一個(gè)end to end的軟件。但前所未有的是需要等待十分鐘才能得到反饋。
另外,agent還有一個(gè)特點(diǎn)是不穩(wěn)定,它無法達(dá)到90%甚至80%、70%的準(zhǔn)確率,更不用說傳統(tǒng)軟件追求的99.9%的穩(wěn)定性。
面對(duì)這樣一個(gè)軟件,如何讓用戶能夠良好交互并獲得價(jià)值,需要復(fù)雜的設(shè)計(jì)。
01:26:50 - 01:29:13
Monica:
前面提到,姚順雨其實(shí)一直在agent這個(gè)領(lǐng)域做了很多工作,從最早可能從React開始。每個(gè)人對(duì)agent都有不同的理解,你能跟我們介紹一下你是什么時(shí)候開始研究agent的,在這個(gè)過程中有哪些重要的研究?
姚順雨:
我覺得我比較幸運(yùn),2019年開始讀博士時(shí),我的第一個(gè)項(xiàng)目就是在text adventure game中做agent。當(dāng)時(shí)這是個(gè)很小眾的方向,因?yàn)榇蠖鄶?shù)人做agent都是做RL,基本上都是做video game或robots,很少人做基于language的environment agent。
我覺得這個(gè)方向很有意思,因?yàn)樗咏黵easoning,更接近intelligence。我認(rèn)為life is more like a text-based more than a video game,因?yàn)槟阋龅膁ecision其實(shí)很多是open-ended的。比如說今天晚上做什么,action space是open-ended的,并沒有一個(gè)上下左右這樣的鍵盤去給你指引。你可以買張機(jī)票去另一個(gè)城市,或者看個(gè)電視,有無數(shù)種選擇。
我覺得language更接近這個(gè)事情的本質(zhì)。做完text game后,我發(fā)現(xiàn)text environment和傳統(tǒng)environment的本質(zhì)區(qū)別在于它的action space是不需要預(yù)先定義的。這就需要reasoning,而reasoning本質(zhì)上是思考的一部分。為什么傳統(tǒng)的agent不如人,是因?yàn)槿擞幸粋€(gè)神奇的action叫做思考,但傳統(tǒng)agent沒有。思考這個(gè)action很神奇,因?yàn)樗?/span>沒有feedback,你腦子里想任何事情都無法獲得外部世界的反饋,所以這個(gè)事情是學(xué)不了的。
01:29:13 - 01:30:57
Large Language Model為我們提供了parsing機(jī)制,讓我們能夠?qū)easoning和thinking作為language agent的重要組成部分。通過trail soft的進(jìn)一步思考,我意識(shí)到agent本質(zhì)上包含兩個(gè)核心部分:action space和decision making。
action space就是選擇什么樣的工具來交互,如何設(shè)計(jì)interface,以及如何進(jìn)行internal reasoning。
傳統(tǒng)上,decision making主要是通過generate next token來產(chǎn)生動(dòng)作。但我認(rèn)為,decision making可以通過planning來實(shí)現(xiàn)更復(fù)雜的決策。我們不只是直接產(chǎn)生單個(gè)動(dòng)作,而是可以在腦子里面模擬多個(gè)可能的動(dòng)作并評(píng)估它們。就像下棋一樣,我可以預(yù)測(cè)如果我這樣走,對(duì)手會(huì)怎么應(yīng)對(duì)這樣的互動(dòng)過程。
基于這些思考,我們提出了新的conceptual framework:Cognitive architectures for language agents。本質(zhì)上,agent就是由action、decision和memory三個(gè)部分組成的。
無常按:
清晰到值得重復(fù)。本質(zhì)上,agent由三個(gè)部分組成:action space、decision making 和 memory。
action space 就是選擇什么樣的工具來交互,如何設(shè)計(jì)interface,以及如何進(jìn)行internal reasoning。
decision making可以通過planning來實(shí)現(xiàn)更復(fù)雜的決策。我們不只是直接產(chǎn)生單個(gè)動(dòng)作,而是可以在腦子里面模擬多個(gè)可能的動(dòng)作并評(píng)估它們。就像下棋一樣,我可以預(yù)測(cè)如果我這樣走,對(duì)手會(huì)怎么應(yīng)對(duì)這樣的互動(dòng)過程。
memory 是記憶。
01:30:59 - 01:32:43
Monica:
所以你的工作就是從思考逐漸發(fā)展到taking actions的研究。我覺得現(xiàn)在大部分的agent工作其實(shí)都是在不直接改變Foundation model的情況下,主要通過prompt方式來實(shí)現(xiàn)的。
李珎:
會(huì)這么理解?
姚順雨:
我覺得這個(gè)事情從根本上存在問題,因?yàn)樗鼪]有形成閉環(huán),是個(gè)open loop。我可以舉個(gè)例子,現(xiàn)在我們用H200就很像deep learning初期用GPU的方式。當(dāng)年GPU不是為deep learning設(shè)計(jì)的,是為游戲設(shè)計(jì)的。后來大家發(fā)現(xiàn)它可以訓(xùn)練AlexNet這些神經(jīng)網(wǎng)絡(luò)。接下來發(fā)生的事情很有意思:GPU和deep learning method形成了co-evolve關(guān)系,GPU促進(jìn)了更好的deep learning method,而transformer這樣的method又反過來影響GPU的設(shè)計(jì)變化。
language model就很像當(dāng)年的GPU,最初只是個(gè)text generator,但大家用它做各種事情時(shí)發(fā)現(xiàn)了很多令人驚訝的能力。所以我覺得下一步應(yīng)該把model和agent進(jìn)行co-design,把a(bǔ)gent的experience和數(shù)據(jù)反過來fine-tune model。
01:32:43 - 01:33:01
我們有一個(gè)工作叫fineac,就是fine-tune React。
Monica:
你們是自己先做了React,然后再做fine-tuning的研究嗎?
姚順雨:
對(duì),因?yàn)槲乙恢痹诘葎e人去做這件事,但發(fā)現(xiàn)沒有人做,所以我們就自己做了。
01:33:01 - 01:34:01
Monica:
前段時(shí)間在討論agent這個(gè)話題時(shí),有些公司比如Adapt就專門開發(fā)了針對(duì)agent的模型,我們特別重視模型的reasoning能力。我想請(qǐng)教,是否會(huì)出現(xiàn)一個(gè)專門針對(duì)agent的語(yǔ)言模型?這是否是個(gè)偽命題?
李珎:
對(duì),Adapt。
姚順雨:
我認(rèn)為agent是個(gè)非常寬泛的概念,具體取決于你想要做什么樣的agent。如果是想做general purpose的digital agent,我覺得基礎(chǔ)模型會(huì)更有優(yōu)勢(shì)。如果是做vertical domain的特定領(lǐng)域agent,那可能就不需要專門的模型。
高寧:
聽起來你覺得這應(yīng)該是個(gè)偽命題。
Monica:
對(duì),結(jié)論應(yīng)該是個(gè)偽命題。
01:34:01 - 01:35:07
李珎:
這其實(shí)是我創(chuàng)業(yè)時(shí)的出發(fā)點(diǎn),就是要有個(gè)general agent幫你處理各種事務(wù)。我們做了一個(gè)類似ztier的項(xiàng)目,讓LLM來接入各種API。我們接入了Google Calendar、Gmail、訂機(jī)票、訂外賣這些服務(wù)。
高寧:
這樣就能幫助協(xié)調(diào)整個(gè)工作流程。
李珎:
但實(shí)際上這種general agent是個(gè)偽命題,因?yàn)楹茈y真正產(chǎn)生價(jià)值。表面上看能幫你做很多事情,但首先系統(tǒng)穩(wěn)定性是個(gè)問題。其次,如果要處理真正復(fù)雜的事務(wù),僅靠API是不夠的,需要中間的agent來管理工作流程。而且你要解決的問題越寬泛,就越難讓它真正好用。
姚順雨:
對(duì),它更多需要人機(jī)交互才能真正發(fā)揮作用。
01:35:07 - 01:38:15
李珎:
對(duì),coding agent的一個(gè)很好的特點(diǎn)是它能產(chǎn)生可以自我驗(yàn)證的行動(dòng)路徑,形成一個(gè)完整的閉環(huán)。當(dāng)agent通過十步二十步的操作完成任務(wù)后,就會(huì)生成positive的訓(xùn)練數(shù)據(jù)。
姚順雨:
行動(dòng)路徑具體是怎么定義的?
李珎:
這主要是基于OT flow,即用戶的edit記錄。OT是一種用來解決多人編輯沖突的格式,比如在Google Docs多人編輯時(shí)就需要解決這種沖突。它會(huì)記錄諸如用戶在第五行第三列添加內(nèi)容這樣的具體操作。這是一個(gè)很底層的用戶操作記錄,比Google Docs的范圍更廣,還包括了運(yùn)行shell、寫代碼、debug等操作。
姚順雨:
這些數(shù)據(jù)真的非常exciting!
趙宇哲:
code也是可以爬的。
李珎:
對(duì),這些數(shù)據(jù)的獨(dú)特價(jià)值在于可驗(yàn)證性。我們能確認(rèn)項(xiàng)目是否編譯成功、通過測(cè)試。這不僅是簡(jiǎn)單的數(shù)據(jù),而是一個(gè)達(dá)到成功狀態(tài)的完整軌跡。
Monica:
這有點(diǎn)像Tesla在做的事情。
李珎:
目前我們還在探索如何最好地使用這些數(shù)據(jù),包括legal和模型訓(xùn)練方面的考慮。由于記錄了每一個(gè)操作步驟,整體數(shù)據(jù)量是非常大的。
01:38:16 - 01:40:52
Monica:
我聽說現(xiàn)在有一些agent是用GPT-4來產(chǎn)生action model?
姚順雨:
這是distillation。這個(gè)跟agent沒關(guān)系。
李珎:
我現(xiàn)在在Replit做agent,它更像是coding interpreter。我們提供預(yù)構(gòu)建的環(huán)境,沒有React Flow那些復(fù)雜的步驟,是更specific limited scope的。用戶只需提出需求,比如分析CSV文件,系統(tǒng)就能生成代碼并運(yùn)行。
我們特別關(guān)注小白用戶,因?yàn)樗麄兺耆欢幊蹋踔敛恢繮ython是什么,所以更需要agent的幫助。我們有個(gè)功能叫bug bounty,用戶可以發(fā)布懸賞來解決bug。解決者可以是人類,也可以是SWE agent。
這就是為什么我們的CEO和SpaceX的CEO關(guān)系很好,因?yàn)橛脩羧菏且惑w的。誰(shuí)解決了bug就能獲得獎(jiǎng)勵(lì)。
Monica:
順雨找到了賺錢的方式了。
高寧:
找到了應(yīng)用場(chǎng)景了。
01:40:53 - 01:42:04
Monica:
其實(shí)剛才順雨講到研究課題和產(chǎn)品之間的差異,就在這里。在產(chǎn)品中,即使我說要有human loop,但我必須考慮參與loop的用戶是什么樣的。比如像宇哲他們的客戶,默認(rèn)都有一定的coding能力;但如果面向完全的小白用戶,這時(shí)候做human loop的交互設(shè)計(jì)就會(huì)很不一樣。
姚順雨:
我覺得本質(zhì)上來說,除非是做HCI research,研究就是要minimize human factor,但是product本質(zhì)上就是all about human。
無常按:Product is all about human 好清醒的研究員!
Monica:
前兩天我跟open Devin(一個(gè)open source的Devin項(xiàng)目)的團(tuán)隊(duì)交流過,也看了他們的架構(gòu)。因?yàn)樗麄儓F(tuán)隊(duì)都還在企業(yè)里做產(chǎn)品,所以特別注重把human loop的交互融入到架構(gòu)中。這確實(shí)和research的思維方式很不一樣。
01:42:04 - 01:44:20
我們一直在討論Devin,我很好奇大家第一次看到Devin demo時(shí)的反應(yīng)是什么?什么讓你們印象最深刻?根據(jù)目前有限的公開信息,你們還想了解哪些內(nèi)容?
李珎:
我的第一反應(yīng)是有人發(fā)布了和我正在做的exactly相同的東西。因?yàn)槲覀儓F(tuán)隊(duì)正面對(duì)著百萬(wàn)級(jí)用戶量,有很多infra問題要解決,所以沒法發(fā)布demo。
不過我覺得Devin確實(shí)很impressive,特別是兩點(diǎn):第一是web browsing功能,它可以讓agent去瀏覽網(wǎng)頁(yè)獲取更多信息。對(duì)agent來說最重要的兩個(gè)能力:一是獲取信息的能力,無論是通過web還是通過RAG;二是自我validate的能力,就是execute和test。
姚順雨:
web browsing確實(shí)非常難做。
李珎:
對(duì),特別是interactive web browsing,不只是fetch一個(gè)網(wǎng)頁(yè),還要在網(wǎng)頁(yè)里進(jìn)行browsing,這點(diǎn)做得很impressive。另外,他們第一版本還不能讓用戶修改代碼,只能看著它生成。
高寧:
但中間是可以通過聊天方式去干預(yù)的吧?
李珎:
對(duì),你可以通過聊天來控制它,但沒有直接控制editor的權(quán)限。
01:44:20 - 01:46:19
這個(gè)我覺得挺surprise的。
姚順雨:
更像個(gè)demo不像個(gè)產(chǎn)品。
李珎:
我覺得可能是他們的Design decision去限制scope。但我覺得正確的形式應(yīng)該是都要具備,這對(duì)他們來說實(shí)現(xiàn)起來應(yīng)該也不難。
Monica:
你覺得還有什么想進(jìn)一步了解的嗎?
李珎:
我很好奇他們準(zhǔn)備怎么把它作為產(chǎn)品去落地,給誰(shuí)用。
姚順雨:
是to C還是to B?
李珎:
對(duì),這也是我們經(jīng)常思考的問題。這個(gè)agent看起來能做所有事情,但你做research是一回事,做公司要賣產(chǎn)品又是另一回事。最重要的是找到product-market fit。是賣給coding小白還是其他人??jī)r(jià)格定在這個(gè)區(qū)間合適嗎?這些包裝策略我都挺好奇他們?cè)趺聪氲摹?/span>
高寧:
因?yàn)槟銊偛盘岬饺绻蛔尮こ處熯^多參與編輯環(huán)節(jié),聽起來是面向沒有編程能力的人。
姚順雨:
給產(chǎn)品經(jīng)理。
李珎:
我覺得可能也是因?yàn)楸容^早期,所以先f(wàn)ocus在這個(gè)方向也make sense。
01:46:19 - 01:48:13
趙宇哲:
我最喜歡的是Danny告訴我的這些東西。我一直在關(guān)注這些工作,在離開工作之前我就很喜歡做prompting相關(guān)的工作,我們也很早就開始做這些了,效果很好。
說實(shí)話,我對(duì)agent的工作一直是失望的。比如Langchain之前火過一陣子,大家都在談?wù)揳gent可以做這做那,但后來并沒有特別顯著的進(jìn)展。雖然Devin在這方面是比較成功的,但我仍然持懷疑態(tài)度,因?yàn)閺囊婚_始我就認(rèn)為這只是個(gè)demo。后來Twitter上也有人說這確實(shí)就是個(gè)demo。
姚順雨:
他是直接發(fā)布產(chǎn)品的。
趙宇哲:
對(duì),但這本質(zhì)上不是一個(gè)軟件問題。這個(gè)demo是在告訴你這件事是可能的。關(guān)于產(chǎn)品化,我認(rèn)為如果它真的能在所有情況下都work的話,產(chǎn)品化可能也沒那么難。AI政策已經(jīng)證明了我們無法阻止這個(gè)問題的發(fā)展。這個(gè)任務(wù)實(shí)際上是automation后面一個(gè)level的任務(wù),就是從issue到PR的過程。
01:48:13 - 01:49:22
首先需要寫PR,現(xiàn)在有很多重要的tasks,比如如何做code review。這些review工作現(xiàn)在可以用model來輔助,它能夠suggest具體的code edits,這些功能已經(jīng)可以投入service了。如果能把PR這塊做好,我甚至可以去負(fù)責(zé)整個(gè)project的架構(gòu),這就是architect要做的事情。在企業(yè)環(huán)境中,當(dāng)我要build一個(gè)function時(shí),會(huì)面對(duì)大量的code base,需要開發(fā)新的feature。
姚順雨:
對(duì),這些feature可以被系統(tǒng)地decompose成一系列PR。
趙宇哲:
這確實(shí)是一個(gè)很關(guān)鍵的步驟,這也是我特別看重這個(gè)task的原因。關(guān)于agent是否是一個(gè)好的solution這個(gè)問題,我認(rèn)為從長(zhǎng)遠(yuǎn)來看它一定會(huì)很好,是個(gè)非常有價(jià)值的research topic。但對(duì)創(chuàng)業(yè)公司來說這是個(gè)很大的question mark。如果公司像早期的OpenAI那樣不以盈利和產(chǎn)品為直接目標(biāo),那么做這個(gè)方向很合適。但如果是以product為導(dǎo)向,research的risk就相當(dāng)高了。
01:49:22 - 01:51:36
姚順雨:
這個(gè)很像當(dāng)年adapt,一開始做了一個(gè)非常fancy的demo,最初是作為research lab使用,后來轉(zhuǎn)向enterprise產(chǎn)品。我覺得dev也可能會(huì)往這個(gè)方向轉(zhuǎn)。
趙宇哲:
這確實(shí)是個(gè)很risky的轉(zhuǎn)向。
Monica:
那這個(gè)問題是僅限于model層面,還是有其他research需要解決?
姚順雨:
如果只是作為research benchmark去和GPT-4比較,能做到一個(gè)decent的水平。但要做成產(chǎn)品,很多low-level tasks可能就work不了,你可能需要工具支持。
趙宇哲:
對(duì),從產(chǎn)品角度來說,假設(shè)我們現(xiàn)在有30%的成功率,提升到了50%。寫PR時(shí)50%是好的,但問題是通過unit test也不代表完全正確,unit test的coverage就是個(gè)問題。如果50%不好,誰(shuí)來改它?如果它能自己改好就不會(huì)只有50%了。那程序員可能會(huì)想,我是不是自己寫一遍更快?
姚順雨:
但你覺得unit test真的能實(shí)現(xiàn)完美的evaluation嗎?
趙宇哲:
我們內(nèi)部試過,效果沒那么好。GitHub上很多項(xiàng)目甚至都不寫unit test,質(zhì)量也參差不齊。而且通過unit test不代表代碼就對(duì)了,有時(shí)候代碼錯(cuò)一點(diǎn)點(diǎn)通不過測(cè)試,但實(shí)際代碼質(zhì)量也沒那么差。
01:51:36 - 01:52:22
你的test質(zhì)量可能沒那么好,但是PR相關(guān)的test會(huì)稍微好一點(diǎn),因?yàn)樗鼤?huì)涉及好幾個(gè)部分,而且有好幾個(gè)原有的test去cover。不過也不是所有PR的test都這么好。
姚順雨:
我們當(dāng)時(shí)做這個(gè)的時(shí)候,就選了比較高質(zhì)量的test。
趙宇哲:
對(duì),這就是很重要的部分。如果隨便選一個(gè),那validation的效果就沒那么好。我們?cè)囘^這種情況。
姚順雨:
在理想情況下,假設(shè)你有一個(gè)非常高質(zhì)量的evaluation,那即使是10%的隨機(jī)選擇其實(shí)也是可以work的,因?yàn)槟憧梢栽囈话俅危缓笾灰製nit test通過就行。
01:52:22 - 01:53:46
Monica:
如果我們給AI一個(gè)test,想看它的完成準(zhǔn)確率是多少。我們可以把范圍限定在junior engineer的任務(wù)上,畢竟你也不會(huì)給junior engineer太難的test。假設(shè)在這些junior的工作范圍內(nèi),它能達(dá)到80%、90%的完成概率。
姚順雨:
可以。
趙宇哲:
這個(gè)可以去設(shè)計(jì),但這就變成產(chǎn)品設(shè)計(jì)時(shí)要control你的user expectation。你要考慮怎么定義user,不要讓他們?yōu)E用這個(gè)功能。因?yàn)橛行㏄R大有些PR小,簡(jiǎn)單的PR讓AI做是很好的,但推產(chǎn)品時(shí)你需要把user定義得比較清楚,否則他們一開始就會(huì)覺得這個(gè)不行那個(gè)不行。
Monica:
這有點(diǎn)像我們招程序員一樣,你招不同level的人,布置任務(wù)時(shí)也會(huì)考慮。比如給宇哲布置任務(wù)和給一個(gè)剛畢業(yè)的布置任務(wù)是不一樣的。我在想,當(dāng)我們把a(bǔ)gent也當(dāng)成一個(gè)人來看的時(shí)候,我們assign task的方式是不是也應(yīng)該不一樣。
01:53:46 - 01:55:13
李珎:
對(duì),這個(gè)事情正在發(fā)生,很多小的task,比如寫unit test、進(jìn)行重構(gòu)(rename)或者debug這些工作,都是可以交給junior engineer來做的。在軟件開發(fā)的各個(gè)步驟中,已經(jīng)有很多創(chuàng)業(yè)公司在專門針對(duì)這些任務(wù)開發(fā)產(chǎn)品,比如swift dev。
我們發(fā)現(xiàn)需求定義越明確,完成的成功率就越高;需求越abstract,就越需要interactive的步驟和人工介入。所以我們對(duì)agent的思路是把它定位為協(xié)作伙伴,不是簡(jiǎn)單地交付任務(wù)給它。它會(huì)在code base和repo中與你collaborate,當(dāng)它在后臺(tái)運(yùn)行時(shí)遇到問題,會(huì)發(fā)送notification給你,讓你指導(dǎo)它如何proceed。
01:55:13 - 01:56:06
Monica:
用戶不能太小白。這就像甲方和乙方的關(guān)系,通常甲方什么都不懂,這些東西是沒辦法的。
李珎:
這是不同level的問題。這樣的用戶不會(huì)問你技術(shù)層面的問題,而是會(huì)問需求方面的問題。比如說你要做website,他會(huì)問你這個(gè)website要不要dark mode啊,你覺得這個(gè)好不好看,要不要改一改?right,這些問題對(duì)于小白來說其實(shí)是make sense的,而且他需要問這些問題,這樣才能讓最終生成的東西符合你的期待。
Monica:
那其實(shí)這個(gè)agent就遠(yuǎn)不止是一個(gè)coding的agent。
趙宇哲:
對(duì),要求比較高,需要會(huì)跟人交流。
Monica:
這就像個(gè)乙方,我覺得這個(gè)真的適合SWE-bench。
01:56:07 - 01:56:46
趙宇哲:
如果這個(gè)agent真的很優(yōu)秀,它就很適合作為contractor來幫你完成工作。
Monica:
我們前面可能需要一個(gè)agent來evaluate,判斷這個(gè)問題是否能被現(xiàn)有的agent解決。如果當(dāng)前agent無法處理,系統(tǒng)會(huì)將你分配到其他合適的agent。它甚至可以幫你自動(dòng)分配一些任務(wù)給人類操作員。
李珎:
我們可以想象這樣一個(gè)世界,你可以雇傭很多不同的agent。比如SWE-bench是一個(gè)可以雇傭的agent,Devin是另一個(gè)選擇。你可以像查看LinkedIn簡(jiǎn)歷一樣,看到他們之前完成過什么樣的任務(wù),有什么樣的工作記錄。
姚順雨:
最終還是要用賺錢多少來衡量,這是最基本的評(píng)判標(biāo)準(zhǔn)。
01:56:46 - 01:58:00
Monica:
我注意到你們最近發(fā)表了一篇關(guān)于Olympia programming的論文,似乎是針對(duì)更復(fù)雜的數(shù)學(xué)問題。我很好奇能否介紹一下這個(gè)項(xiàng)目,以及它與SWE-bench有什么關(guān)系?因?yàn)槁犉饋磉@兩個(gè)項(xiàng)目都在解決復(fù)雜的問題。
姚順雨:
這其實(shí)是coding這個(gè)問題的兩個(gè)不同frontier,是兩個(gè)完全不同方向的frontier。SWE-bench本質(zhì)上處理的內(nèi)容沒有那么復(fù)雜,它更多關(guān)注的是long context和noisy context的處理。而Olympia problem則完全相反,它的問題和代碼都很短,可能就十到二十行,但更注重grounded reasoning、creative reasoning algorithm和organic reasoning。所以一個(gè)是考驗(yàn)?zāi)銓?duì)長(zhǎng)文本和復(fù)雜context的處理能力,另一個(gè)則是考驗(yàn)?zāi)銓?duì)CHV這個(gè)grounded的理解和augment。
01:58:00 - 02:00:31
Monica:
你覺得解決數(shù)學(xué)問題和奧林匹克編程問題之間有什么關(guān)系?
姚順雨:
我覺得奧林匹克編程問題更接近于測(cè)試基礎(chǔ)模型的推理能力。比如說,有N個(gè)人站成一列,需要進(jìn)行某些操作,問有多少種可能的方案。這類問題需要你在空間中進(jìn)行想象,理解組合的意義,做world modeling和simulation。傳統(tǒng)的軟件工程更多是pattern recognition,比如搜索stack workflow和復(fù)制代碼,不太需要這種深度推理。
李珎:
軟件工程的問題只要投入足夠時(shí)間總能解決,但奧林匹克編程中有些問題即使投入再多時(shí)間也無法解決。
姚順雨:
對(duì),我在debug時(shí)常常只需要搜索已有解決方案,不需要太多推理。軟件工程主要是處理大量的知識(shí)、復(fù)雜的上下文和noisy situation。雖然世界上有數(shù)百萬(wàn)程序員,但真正擅長(zhǎng)編程競(jìng)賽的人并不多,因?yàn)槟切枰鼜?qiáng)的world modeling、simulation和organic reasoning能力。我認(rèn)為這兩種能力是通向AGI的重要維度。
02:00:31 - 02:01:48
Monica:
我其實(shí)很好奇想探討一下關(guān)于Foundation model或LM能力邊界的理解。因?yàn)閺腃hain-of-Thought的發(fā)展來看,僅僅是在prompt層面的改進(jìn)就能帶來效果上很大的區(qū)別。所以我很想知道,當(dāng)我們討論現(xiàn)在LLM能力不足時(shí),到底有多少是模型本身能力的局限,又有多少是我們還沒找到正確方式來釋放它的能力?
姚順雨:
我覺得這個(gè)問題可以從兩個(gè)部分來看:一部分是你怎么去訓(xùn)練模型,另一部分是你怎么使用它,也就是我們說的prompt。模型能力的邊界就取決于這兩點(diǎn)。比如我剛才提到GPU H800的例子,我認(rèn)為它應(yīng)該形成一個(gè)閉環(huán),就是我們使用模型的方式應(yīng)該反過來去影響我們?nèi)绾斡?xùn)練這個(gè)模型。
因?yàn)?/span>如果我們使用模型的方法跟它訓(xùn)練時(shí)的數(shù)據(jù)不一致的話,它就沒有辦法釋放它的能力。我們現(xiàn)在釋放的這些能力其實(shí)都是所謂的 emergent properties。我覺得我們現(xiàn)在使用這些方法可以給我們一些 insights。可以幫助我們 improve 這些虛擬的網(wǎng)絡(luò)。
02:02:15 - 02:04:15
Monica:
我覺得在討論LLM的limitation時(shí),大家經(jīng)常提到predict next token的方式像是一種快思考。而科學(xué)研究和更深層次的創(chuàng)造,大家認(rèn)為需要system 2 thinking這種慢思考。但我記得你的paper中提到,通過prompt就可以實(shí)現(xiàn)system 2 thinking。這是否意味著模型本身具有慢思考的能力,只是我們還不知道如何使用?如果真的具有這種慢思考能力,是否意味著它已經(jīng)可以幫助我們解決復(fù)雜的科學(xué)發(fā)現(xiàn)問題?我在想,是不是我們使用它的方式限制了我們對(duì)LLM邊界的想象?
姚順雨:
你說的應(yīng)該是Chain-of-Thought這篇paper。這篇paper的核心思想是,如果我們把next token prediction看作是一個(gè)system one的快速過程,那么對(duì)于system two這種慢思考來說,它其實(shí)是一個(gè)對(duì)system one的控制。
觀眾:
Control AGI over system one。
姚順雨:
對(duì),它是知道什么時(shí)候去stop這個(gè)flow然后switch to something else,更多是對(duì)system one的一個(gè)control。它并不是獨(dú)立于system one存在的東西。所以tree of thought的本質(zhì)是通過tree search這樣的控制機(jī)制來control system one,而不是去替代它,而是去impose control over system。
我們其實(shí)當(dāng)時(shí)試過一些更難的任務(wù),比如說去做unipl programming,或者一些我們認(rèn)為更接近AGI的任務(wù)。
觀眾:
你說的是task對(duì)吧?
姚順雨:
對(duì),但現(xiàn)在的模型還是無法完成這些任務(wù)。我覺得很大一個(gè)原因就是它的self evaluation能力還不夠強(qiáng)。比如說讓它寫三段代碼,它很難判斷哪一段代碼更好,因?yàn)檫@并不是它訓(xùn)練過程中學(xué)習(xí)的內(nèi)容。
趙宇哲:
這是經(jīng)典的reinforcement learning問題。
姚順雨:
對(duì),我們?cè)趺慈ナ褂眠@個(gè)模型其實(shí)反過來會(huì)告訴我們模型在哪些能力上有不足,我們應(yīng)該去針對(duì)性地改進(jìn)。
02:05:01 - 02:06:32
Monica:
根據(jù)我們現(xiàn)在的使用方式,你覺得接下來應(yīng)該往哪個(gè)方向去improve呢?
姚順雨:
這是一個(gè)比較抽象的問題。我們面對(duì)的是一個(gè)解空間,這條路徑可能找到解。
趙宇哲:
這本質(zhì)上是個(gè)搜索問題。現(xiàn)在我們已經(jīng)找到了一條路徑,但不能就此停止。這樣太簡(jiǎn)單了,我們需要去sample這個(gè)空間。這就是大家在做agent prompting時(shí)在做的事情。最開始Chain of Thought只走一條路就結(jié)束,后來有一篇paper叫self consistency,提出可以sample多個(gè)結(jié)果并把它們結(jié)合起來,實(shí)驗(yàn)證明效果確實(shí)更好。我們可以使用更復(fù)雜的搜索方法。
另外,第二個(gè)改進(jìn)方向是要提升sampling model本身的能力。雖然RL是個(gè)很難訓(xùn)練的方向,但language model有個(gè)很好的特點(diǎn):只要你知道哪些數(shù)據(jù)是好的,就總是可以把它反饋回去。
02:06:33 - 02:07:13
相信大家都應(yīng)該做這件事情,但這并不容易,因?yàn)樗璧膁ata并不存在。這些data需要找出來。這也是已經(jīng)在發(fā)生的事情——現(xiàn)在有很多人要么用已有的language model去filter和select預(yù)訓(xùn)練數(shù)據(jù),要么直接生成訓(xùn)練數(shù)據(jù)。
高寧:
你的意思是用language model來做這個(gè)?
趙宇哲:
對(duì),就是用它產(chǎn)生的數(shù)據(jù)、feedback,或者其他任何形式的反饋來優(yōu)化。但這個(gè)方向能走多遠(yuǎn),現(xiàn)在還不知道。
02:07:13 - 02:10:20
Monica:
關(guān)于agent,最近大家討論比較多的是multi agent。我看到replay中有一個(gè)multi player的AI chat功能,能否介紹一下這個(gè)feature?
李珎:
這其實(shí)是multi agent system的一個(gè)前置工作。我們?cè)瓉淼腁I chat只支持單人對(duì)話,而multi player chat允許多人同時(shí)share一個(gè)chat window,可以看到其他人的消息。它有點(diǎn)像email系統(tǒng),你可以看到每個(gè)人的消息streaming的過程,有不同的session。
Monica:
這是說agent可以和多個(gè)人互動(dòng)嗎?
李珎:
目前這只是一個(gè)面向多用戶的chat系統(tǒng)。但它是agent的前置工作,因?yàn)槲覀円庾R(shí)到,如果需要多個(gè)agent在后臺(tái)工作,就需要一個(gè)情報(bào)接收系統(tǒng)來監(jiān)控它們的工作狀態(tài)。比如在report里面,同時(shí)agent也在work on this report,你需要看到它們?cè)谧鍪裁础<词鼓惆压P記本電腦合上,agent仍在工作,重新打開時(shí)還能看到工作進(jìn)展。我們的chat其實(shí)就是一個(gè)UI去看agent is working。
agent需要與人進(jìn)行互動(dòng),可以通過對(duì)話或button形式。比如當(dāng)agent需要進(jìn)行deploy這樣的重要決策時(shí),就需要詢問用戶確認(rèn),因?yàn)檫@涉及費(fèi)用支出。我們需要考慮很多產(chǎn)品設(shè)計(jì)問題,比如什么時(shí)候該詢問用戶、什么時(shí)候讓agent在后臺(tái)工作。agent的state很復(fù)雜,它有很多observation,你也許不想看到那么復(fù)雜的東西,只想知道它在7x24小時(shí)地為你工作。這就是我們ft五類現(xiàn)在正在做的事情。
02:10:20 - 02:13:02
Monica:
你們?cè)趺炊xmulti agent system?為什么我們需要它?
姚順雨:
我覺得本質(zhì)上是個(gè)inference time scaling的邏輯。我們最終希望在inference時(shí)用更多compute來獲得更好效果,增加agent數(shù)量就是scaling up的一種方式。不過現(xiàn)在base agent還不夠強(qiáng),要等它達(dá)到一定水平后,multi agent的scaling才會(huì)真正發(fā)揮作用。就像團(tuán)隊(duì)協(xié)作,如果大家都很菜,人越多越亂;但如果都?jí)驈?qiáng),兩個(gè)人可能比一個(gè)人效率快兩倍,三個(gè)人可能再快1.5倍。
李珎:
multi agent其實(shí)有兩種不同定義:第一種是多個(gè)agent做同一件事,第二種是不同agent負(fù)責(zé)不同任務(wù)。比如MetaGPT這個(gè)項(xiàng)目,它模擬了一個(gè)完整的公司架構(gòu),有CEO、PM、程序員、reviewer,每個(gè)角色都有不同的prompt。在我們的設(shè)定里,用戶和agent都是第一公民,這是很重要的理念。
02:13:02 - 02:13:18
姚順雨:
這更像是一個(gè) multi prompt,并不像一個(gè) multi agent。
趙宇哲:
我想問這個(gè)問題,如果你用的都是 GPT-4 的不同 system prompt,一個(gè) prompt 對(duì)應(yīng)一個(gè) agent...那這是不是就是一個(gè)人格分裂的 agent?
02:13:18 - 02:13:39
Monica:
既然Devin已經(jīng)可以作為一個(gè)self agent完成從編碼到單元測(cè)試的整個(gè)流程,甚至能夠自己進(jìn)行代碼review,那為什么還需要不同的角色呢?
李珎:
我理解啊,我理解就是……簡(jiǎn)單的case就是不同的prompt,大家都知道給模型不同的prompt會(huì)帶來不同的表現(xiàn)。如果你告訴它你是一個(gè)software engineer,它生成的代碼就會(huì)比告訴它你是普通人要好得多。即使是同一個(gè)模型,你用不同的prompt方式,包括chain of thought等方法。
趙宇哲:
對(duì),可以用不同的方法。
李珎:
從交互的角度來看,它給你的結(jié)果質(zhì)量是完全不一樣的。即使是同一個(gè)模型,它也會(huì)被當(dāng)作不同的角色來對(duì)待。
高寧:
考慮到未來的成本和效果的性價(jià)比因素,各個(gè)小的agent背后不一定都需要用GPT-4這樣的模型,而是可以用專門的模型,比如代碼補(bǔ)全的模型、testing的模型,這樣更合理,讓它們各司其職,真正成為替代某個(gè)職能部門的agent。
李珎:
對(duì),其實(shí)大家關(guān)心的只是誰(shuí)能把這個(gè)工作做完。
02:14:51 - 02:15:08
趙宇哲:
你是全能選手對(duì)吧?
李珎:
讓Devin來幫我寫這個(gè)代碼還是說讓一個(gè)Newgrass幫我寫這個(gè)代碼,你只要能寫好,我其實(shí)不是很care。我甚至更希望一個(gè)Newgrass幫我寫代碼。
高寧:
不然還欠Devin一個(gè)人情。
02:15:09 - 02:17:24
關(guān)于multi-agent系統(tǒng)設(shè)計(jì),你覺得主要挑戰(zhàn)是在能力層面嗎?我們是否需要結(jié)合具體場(chǎng)景來考慮?
李珎:
這個(gè)問題要看你從哪個(gè)角度思考。作為更接近產(chǎn)品的人,我發(fā)現(xiàn)一個(gè)很大的問題:現(xiàn)有模型的強(qiáng)大能力并沒有真正傳遞到用戶手上。比如說GPT-4,當(dāng)我發(fā)現(xiàn)它給我的代碼質(zhì)量比我雇傭的前端工程師還要好時(shí),我就意識(shí)到AI已經(jīng)能產(chǎn)生巨大的價(jià)值,但這個(gè)價(jià)值還沒有真正普及到大多數(shù)人手中。
我建議從兩個(gè)維度來看這個(gè)問題:假設(shè)當(dāng)前AI能力是60分,但大多數(shù)用戶可能只享受到20-30分的能力,有些甚至是零分。從產(chǎn)品角度,我們的工作是讓更多人能享受到這個(gè)60分的能力;從研究角度,則是要把這個(gè)60分提升到80分甚至100分。當(dāng)上限提升后,普通用戶享受到的能力自然也會(huì)相應(yīng)提升。
姚順雨:
一個(gè)是push frontier,一個(gè)是help people實(shí)現(xiàn)價(jià)值。
趙宇哲:
這個(gè)比喻很貼切,就像造紙局和用紙局的關(guān)系。造紙的人關(guān)注如何提升能力,用紙的人關(guān)注如何讓更多人用起來。不過現(xiàn)在確實(shí)還是一個(gè)research phase,絕對(duì)是research phase。
02:17:24 - 02:19:37
Monica:
我們聊了很多技術(shù)細(xì)節(jié)和產(chǎn)品的事,現(xiàn)在可以暢想一下未來。說到這個(gè),貴司真的很會(huì)寫blog,這種水平AI可能一時(shí)半會(huì)還寫不了。
李珎:
寫paper就寫blog。
Monica:
你們的blog里提到'AI is redefining the whole software development life cycle'。但僅僅是auto complete這些功能并不算是真正的redefine。那么未來一到三年內(nèi),整個(gè)life cycle會(huì)有哪些大的變化?
李珎:
AI redefining software engineer life cycle其實(shí)很好理解。現(xiàn)在的software engineer工具和life cycle都是為人類設(shè)計(jì)的,我們都是考慮電腦前面坐著一個(gè)人需要什么樣的工具。但如果從AI角度考慮就完全不一樣了。比如git有十幾年歷史了,一直沒有什么進(jìn)化,對(duì)人來說可能make sense,但對(duì)AI來說未必。如果把AI視為第一生產(chǎn)力,我們就需要重新思考如何設(shè)計(jì)git,甚至programming language。
姚順雨:
你覺得有什么東西是需要重新設(shè)計(jì)的?
李珎:
IDE肯定需要重新設(shè)計(jì)。不過說實(shí)話,我現(xiàn)在還沒想到什么東西是fundamentally需要重新設(shè)計(jì)的。如果真的想到了,我會(huì)立即開始做這件事。
趙宇哲:
這確實(shí)是個(gè)很好但很難的問題。
02:19:37 - 02:22:43
姚順雨:
很多東西在大部分情況下可能沒有本質(zhì)區(qū)別,對(duì)Python和C來說,只要有足夠多的數(shù)據(jù)都能學(xué)會(huì)。
李珎:
但有些東西是一定不會(huì)被取代的。我覺得首先很重要的是跟現(xiàn)實(shí)世界的交互動(dòng)作。比如說,軟件公司里面很大一部分工作是AB test,這其實(shí)就是validation的部分。你的模型再?gòu)?qiáng)大,你都需要去validate你的答案是否正確。比如你現(xiàn)在有個(gè)電商網(wǎng)站,做了頁(yè)面改動(dòng),這個(gè)改動(dòng)對(duì)網(wǎng)站revenue是正向還是負(fù)向的?模型再?gòu)?qiáng)大也不知道,除非你去測(cè)試。所以這部分工作不僅不會(huì)被取代,反而需要被重新設(shè)計(jì),思考如何讓模型更好地去測(cè)試。
趙宇哲:
這個(gè)問題很好但確實(shí)很難。我比較喜歡把這個(gè)類比成自動(dòng)駕駛。有人直接做L4自動(dòng)駕駛,就會(huì)考慮要不要方向盤,沒有方向盤后車該造成什么樣。這個(gè)問題很valid,但存在風(fēng)險(xiǎn)且難以預(yù)測(cè)。另一條路徑是先把基礎(chǔ)功能實(shí)現(xiàn),從用戶那邊學(xué)習(xí),看他們使用時(shí)發(fā)生了什么變化。
對(duì)編程語(yǔ)言來說這是個(gè)很大的變化。從C、C++開始,編程語(yǔ)言一直在演進(jìn),目標(biāo)就是讓編程更容易更簡(jiǎn)單。現(xiàn)在通過AI工具可以直接得到可執(zhí)行的代碼。未來不會(huì)再有說我只是個(gè)C++程序員,不寫Python這種情況。工程師加上copilot,或者copilot本身就會(huì)成為全能的代碼編寫者。這種變化已經(jīng)在發(fā)生,影響了大家對(duì)language和syntax的態(tài)度。比如proto就在努力讓數(shù)據(jù)傳輸在所有語(yǔ)言里都能實(shí)現(xiàn),這是個(gè)很好的例子。
02:22:43 - 02:23:30
如果以后我們真的能成為language-agnostic的開發(fā)者,那是不是就能有一些library可以隨意調(diào)用各種編程語(yǔ)言的feature,然后通過自己寫的middleware來作為portal統(tǒng)一管理這些功能?
這件事對(duì)開發(fā)者來說其實(shí)很煩的。比如說我開發(fā)了一個(gè)項(xiàng)目,然后發(fā)現(xiàn)用Rust實(shí)現(xiàn)更好,需要重新寫一遍,這真的很煩。不過以后這個(gè)問題應(yīng)該會(huì)得到解決,因?yàn)榇_實(shí)有很多場(chǎng)景需要用另一種語(yǔ)言重寫項(xiàng)目,這件事情很值得去做。
姚順雨:
GPT可以做這個(gè)。
趙宇哲:
對(duì),因?yàn)檫@些事情本質(zhì)上就是translation,這個(gè)問題其實(shí)并不難解決。
02:23:30 - 02:24:09
高寧:
這個(gè)跟大語(yǔ)言模型的多語(yǔ)言能力是一個(gè)相同的道理。
趙宇哲:
對(duì),這個(gè)原理并不難,模型能做得很好。這會(huì)帶來很大的變化,具體意味著什么我現(xiàn)在還不太確定。但我有一個(gè)prediction,就是'next billion'一定會(huì)發(fā)生——它會(huì)降低編程門檻,提升整體能力水平。有人說它會(huì)replace程序員,但不會(huì)的。它會(huì)讓所有人都變成程序員,讓好的程序員變得更好。這真的很棒。
姚順雨:
我認(rèn)為如果AGI實(shí)現(xiàn),它將能夠完成任何工作,軟件開發(fā)只是其中之一。軟件開發(fā)的獨(dú)特之處在于它具有較高的feedback數(shù)據(jù),這使得AI在這個(gè)領(lǐng)域可能有更多學(xué)習(xí)機(jī)會(huì)。相比之下,像人際交往這樣需要真實(shí)互動(dòng)的任務(wù)就非常微妙,對(duì)吧?這個(gè)相對(duì)來說是一個(gè)比較不well-defined的任務(wù),這反而是AI的優(yōu)勢(shì)。
具體來說,task decision是非常重要的。比如Should your agent take care of the unit test? Should your agent take care of the code body? Just high level decomposition make sense。一方面,我們需要探索現(xiàn)有模型的邊界,研究如何讓它做得更好;另一方面,我們也需要這樣的人 to make the base model value,最重要的是two people should communicate。
02:25:45 - 02:27:27
Monica:
我看到順雨最近做了一個(gè)關(guān)于language agent的social impact研究,想請(qǐng)你談?wù)刲anguage agent對(duì)社會(huì)和工作的影響。
姚順雨:
我分享研究中的一個(gè)重要發(fā)現(xiàn)。我們構(gòu)建了一個(gè)金字塔模型來描述不同工作被替代的可能性。金字塔第一層是business tasks,第二層是collaboration和communication,最上層是design和high-level exploration。
最容易被替代的是第一層,就是那些重復(fù)性強(qiáng)且需要可靠性的business工作,比如客服、報(bào)稅或基礎(chǔ)法律服務(wù)。這類工作可以用代碼和固定流程來處理,不需要太多人際互動(dòng)。
第二層是collaboration,需要同時(shí)掌握與人和計(jì)算機(jī)打交道的能力。與計(jì)算機(jī)交互是well-defined的,但與人打交道則需要理解pragmatics,學(xué)會(huì)如何與人合作,這是非常tricky的。
最難被替代的是最上層,涉及開放性探索的工作,比如scientific discovery或theorem proving這樣需要?jiǎng)?chuàng)新思維的領(lǐng)域。
02:27:29 - 02:28:46
Monica:
既然你們提到AGI,剛才順雨那篇文章講到的social...
趙宇哲:
我有點(diǎn)surprise,這三層太過了。我是一個(gè)contrary的觀點(diǎn)。對(duì)于失業(yè)這個(gè)問題,從長(zhǎng)期來看對(duì)人類社會(huì)是好事,但對(duì)個(gè)人來說是很不好的事情。這種情況每次技術(shù)革命都會(huì)發(fā)生。就業(yè)總量我不覺得會(huì)減少或增加。當(dāng)然,如果說所有工作都被機(jī)器人替代了——最近robotics確實(shí)很火,這也是個(gè)很好的方向——那誰(shuí)知道還會(huì)有什么工作可以創(chuàng)造呢?但短期內(nèi)一定會(huì)有人失業(yè),這些人就會(huì)成為不穩(wěn)定因素。美國(guó)工業(yè)革命時(shí)期就發(fā)生過這樣的事情。這讓我覺得有點(diǎn)無語(yǔ),情況沒那么樂觀。
姚順雨:
可能還是需要三個(gè)結(jié)合起來。
02:28:46 - 02:31:04
趙宇哲:
我是從BERT開始做的。說起LaMDA的故事很有意思,我做完后超級(jí)喜歡這個(gè)項(xiàng)目。LaMDA團(tuán)隊(duì)的Daniel后來去做Character AI,因?yàn)樗莻€(gè)語(yǔ)言學(xué)習(xí)者,喜歡聊天和chatbot。Character AI不會(huì)去做AGI,因?yàn)?/span>包括Norm和Daniel,他們都不在乎刷benchmark,只想要做chatbot。Google不給他們做,他們就自己去做了。
那時(shí)候我們做research、發(fā)paper都挺好的。我當(dāng)時(shí)沒覺得Google太謹(jǐn)慎,因?yàn)樗凶约旱睦碛伞5獵hatGPT出來后整個(gè)世界就變了。我說我是受害者就是因?yàn)楝F(xiàn)在好好做research都做不了了,大家都去做product。雖然還有很多有意思的research方向,但現(xiàn)在整個(gè)research風(fēng)氣都變成只能拉著模型去做study。這更多變成了engineering相關(guān)的工作。我不是說engineering不是好的research,但在這之前確實(shí)有很多其他有意思的research方向。
這個(gè)技術(shù)不僅影響我們這些直接做research的人,還會(huì)影響很多其他工作崗位,帶來巨大的social impact。我雖然希望這個(gè)技術(shù)發(fā)展,因?yàn)樗呛芎玫膖echnology,但發(fā)生后怎么辦?這個(gè)工作變得有點(diǎn)sick,因?yàn)橥耆毁Y本追逐。我本來覺得這是個(gè)很好的工作,比如Google做東西是為了更好的產(chǎn)品,但后來發(fā)現(xiàn)不是這樣。
ChatGPT出來之后,推動(dòng)AI發(fā)展的其實(shí)不是AI界,而是整個(gè)VC和資本。資本看到了所有的機(jī)會(huì),這個(gè)勢(shì)頭已經(jīng)完全停不下來了。
無常按:被資本裹挾的研究,壓力巨大。最近Google DeepMind的一位科學(xué)家,就確實(shí)在這樣的壓力去世了,RIP。
Monica:
這就像GPU和AI的相互推進(jìn)一樣。GPU最早是游戲領(lǐng)域吸引資金,后來AI吸引了最多的投資,這又推動(dòng)了GPU的發(fā)展方向。
李珎:
因?yàn)楹竺婵赡軇?chuàng)造的價(jià)值和可以取代的價(jià)值都太大了。
Monica:
它的想象空間很大。
趙宇哲:
從Google來看,它的文化是肉眼可見的在下降,還在進(jìn)行裁員,面臨很大壓力。很多人都是從Google跑出來的。在推廣過程中,我們發(fā)現(xiàn)用戶也面臨很大壓力,所有人都覺得必須要學(xué)會(huì)使用這些AI工具。
高寧:
現(xiàn)在有自媒體在販賣焦慮,說不會(huì)用就要落伍了。
趙宇哲:
但實(shí)際上大部分人并不那么喜歡學(xué)習(xí),喜歡跟進(jìn)新東西的人是少數(shù),所以就會(huì)產(chǎn)生很多焦慮。
02:33:24 - 02:33:32
Monica:
對(duì)你剛才說的很好奇。那些你覺得本來很有意思可以繼續(xù)的研究項(xiàng)目,比如說有哪些是你希望能繼續(xù)但沒有能繼續(xù)下去的?
02:33:33 - 02:34:54
趙宇哲:
現(xiàn)在很多領(lǐng)域都在轉(zhuǎn)向,比如machine learning領(lǐng)域的一些應(yīng)用,像Siri這樣的項(xiàng)目。
姚順雨:
已經(jīng)不做了,現(xiàn)在都不再吹LLM了。
趙宇哲:
對(duì),很多statistician都不再做統(tǒng)計(jì)理論研究了。我以前做過很多machine learning theory的研究,覺得這些理論真的很漂亮很有意思。我特別喜歡graphical model,這些東西真的很酷!但是你能看到,現(xiàn)在很多researcher已經(jīng)不做這些研究了。
對(duì)研究領(lǐng)域來說,我覺得這絕對(duì)不是好事,因?yàn)檫€有很多值得繼續(xù)深入的研究沒有完成。
02:34:55 - 02:36:23
Monica:
我前段時(shí)間去了幾趟東岸。在硅谷我們經(jīng)常感覺特別被overwhelm,但東岸的環(huán)境確實(shí)更diverse。我在紐約期間跑了一圈Yale、UPenn、NYU,還有MIT、Harvard,參與了很多AI的討論。這邊可能整天都在討論AI,但東岸的AI討論總是會(huì)結(jié)合biotech、healthcare等領(lǐng)域。
前兩天在MIT,我主持了一個(gè)panel,除了真格的合伙人外,另外三位都是哈佛的professor。他們分別研究AI in Healthcare、電池材料,還有一位是研究theory的。這種多樣性讓我特別有感觸,希望能保留這些研究方向。
趙宇哲:
用AI做biotech的其實(shí)一直都有。我有個(gè)很好的朋友就是做material science的,他們?cè)谟胢odel去做predict。
Monica:
我理解你說的,有些更偏研究數(shù)學(xué)原理的美的東西可能被忽視了。
趙宇哲:
是的,machine learning的研究有些趨同,但如果你跨領(lǐng)域使用machine learning去研究其他對(duì)象,我覺得這個(gè)是很好的方向。
02:36:24 - 02:38:52
Monica:
就是做AI。
李珎:
不,是做biotech。我覺得這是一件很好的事情,因?yàn)?/span>AI正在非常大程度地加速biotech和healthcare的研究進(jìn)展。我們之前開發(fā)的產(chǎn)品,現(xiàn)在還在繼續(xù)做,就是幫助biotech這些早期公司的研究員生成代碼,幫他們生成insights來確定下一步研究方向。
這其實(shí)是很有用的。你要知道,他們的研究周期都是非常長(zhǎng)的。比如我有一個(gè)朋友,他在研究定向殺死衰老細(xì)胞,換句話說就是在研究長(zhǎng)生不老藥。他們正在用AI去predict下一步應(yīng)該用什么樣的蛋白質(zhì)結(jié)構(gòu)最可能發(fā)現(xiàn)好的藥物。
這個(gè)過程是這樣的:雖然實(shí)驗(yàn)現(xiàn)在還是要人來做,但做完實(shí)驗(yàn)后會(huì)給AI feedback,然后再去做下一步predict。這個(gè)過程is actually happening,你并不需要依賴AGI直接設(shè)計(jì)出長(zhǎng)生不老藥,但GPT-4正在切實(shí)地幫助這些biotech研究者確定他們的下一步方向。
這是AI帶來的社會(huì)影響中少數(shù)幾個(gè)比較好的事情。也許很快我們就能把人類的壽命延長(zhǎng)到120歲、150歲,甚至200歲。如果沒有AI,這個(gè)速度一定會(huì)更慢。AI可以幫助我們解決一些我們一直想解決的問題,比如癌癥等。聽起來很玄幻,但在我創(chuàng)業(yè)過程中接觸了很多藥廠和biotech公司,這就是他們每天都在思考的問題:如何讓人類活得更久。
02:38:52 - 02:41:09
高寧:
從coding到展望未來再到social impact,我們有了很好的收尾。現(xiàn)在進(jìn)入快問快答環(huán)節(jié),準(zhǔn)備了三個(gè)問題。
Monica:
大家控制在半分鐘到一分鐘回答。
高寧:
第一個(gè)問題是今年在工作或研究方向上的小目標(biāo)是什么?先請(qǐng)順雨回答。
姚順雨:
把現(xiàn)在的項(xiàng)目wrap up,然后開啟新的篇章。
李珎:
我的目標(biāo)是讓足夠多的人能在Replit上創(chuàng)造他們自己的軟件,即使不會(huì)編程也能通過它賺錢。作為創(chuàng)業(yè)者,我深知只有當(dāng)你的idea能帶來實(shí)際價(jià)值時(shí),才能感受到它的意義。你可以做一個(gè)toy項(xiàng)目,但沒人care;而大多數(shù)人都需要他們的產(chǎn)品被人care。我希望能讓足夠多的人在Replit上創(chuàng)造自己的產(chǎn)品,without knowing how to code。
趙宇哲:
我希望能保持現(xiàn)在對(duì)工作的熱情。
Monica:
現(xiàn)在驅(qū)動(dòng)你保持熱情的是什么?
趙宇哲:
我很喜歡我們的團(tuán)隊(duì)。從長(zhǎng)遠(yuǎn)來看,我希望能和團(tuán)隊(duì)一起見證technology對(duì)Embodied Intelligence的發(fā)展。這是一個(gè)可以預(yù)見的結(jié)果,特別是在self engineering方面。
02:41:09 - 02:42:33
Monica:
那我問個(gè)輕松點(diǎn)的問題,大家在研究AI和工作之余最喜歡做什么呢?
姚順雨:
我喜歡打籃球和看書。
Monica:
最近在看什么書?
姚順雨:
最近在看李飛飛的自傳。
趙宇哲:
我比較喜歡速度類運(yùn)動(dòng),特別是賽車。我也喜歡跳街舞。
Monica:
哇,我們這里有rap、街舞還有賽車,太酷了!
高寧:
那最后想請(qǐng)教大家,對(duì)未來一年和三年在AI領(lǐng)域最期待的事情是什么?
姚順雨:
我對(duì)未來一年最期待的是general purpose computer agent。
Monica:
這么激進(jìn)嗎?
趙宇哲:
我很想知道GPT-5會(huì)是什么樣子。
李珎:
這個(gè)可能不需要一年就會(huì)出現(xiàn)。
趙宇哲:
但我特別想了解它的具體能力會(huì)有多強(qiáng)。
02:42:34 - 02:43:58
高寧:
我對(duì)未來三年很期待。
趙宇哲:
我特別關(guān)注Control和純AI的發(fā)展。multimodality一定會(huì)成為強(qiáng)大趨勢(shì),我認(rèn)為它最強(qiáng)的展現(xiàn)形態(tài)之一應(yīng)該是與mission Pro結(jié)合。
姚順雨:
純AI就不是general AI。
Monica:
看來大家都在談?wù)撊昶谙薨 ?/span>
李珎:
在coding方面,我其實(shí)更關(guān)注短期發(fā)展。我很好奇在一年內(nèi)我們是否能達(dá)到一個(gè)閉環(huán),讓人們不需要編碼就能創(chuàng)造自己的軟件。當(dāng)然,這很大程度上要依賴于GPT-5的能力。另外,我覺得三年內(nèi)biotech和healthcare的進(jìn)展會(huì)很令人期待,發(fā)展速度可能會(huì)比很多人想象的快得多。
高寧:
長(zhǎng)生不老!
李珎:
對(duì),我非常希望我朋友的公司能實(shí)現(xiàn)長(zhǎng)生不老藥,這樣我也能占到光。這確實(shí)是一個(gè)巨大訴求。
趙宇哲:
這將是超越Facebook的成就。
02:43:59 - 02:46:44
Monica:
我們最后要讓大家知道,我們的AI研究者都是多才多藝的。要知道,順雨是清華說唱社的創(chuàng)始人。在AI即將顛覆音樂的時(shí)刻,要不你給來一段rap?
姚順雨:
真的退休了,不過我可以播放我之前的作品。
高寧:
好的,謝謝今天大家的時(shí)間,我們聊到了晚上差不多11點(diǎn),將近三個(gè)小時(shí)。我們也非常期待大家一年之后有機(jī)會(huì)再來跟我們一起聊一聊,看看這一年的期待有沒有實(shí)現(xiàn)。