美團開放AI代碼工具,零代碼實現全棧能力,項目負責人揭秘架構細節
一句話,呈所想。
誰都沒有想到,如此實用的 AI 代碼生成工具,竟是出自美團。
上周,有媒體曝出了美團的 AI 零代碼工具 NoCode,這是一款無需編程背景和經驗,僅通過自然語言和對話形式即可快速生成應用的工具。
顧名思義,NoCode 可幫助很多人以「零代碼」的方式創建個人提效工具、產品原型、可交互頁面等。它不僅能生成代碼,還可以進行實時預覽,局部修改并一鍵部署,大幅降低了開發的門檻,可以幫助更多人釋放創意。
而且,NoCode 是完全免費的,用美團 App 或微信掃碼就能登錄。
- 產品鏈接:https://nocode.cn/
NoCode 是美團開放 AI 生態的最新實踐,旨在通過免費開放自身積累的 AI 技術能力,助力中小商戶實現 IT 化與數字化升級,同時讓更多用戶體驗 AI 技術帶來的效率提升與創新樂趣。在公司內部,人們已經利用它構建出了從網站頁面到效率工具、數據分析再到簡單游戲等大量不同種類的應用。
雖然目前還未正式發布,不過我們已經在社交網絡上看到了一些使用 NoCode 構建產品的案例。
比如使用 NoCode 生成的五子棋游戲,落子時有視覺反饋效果,可以進行人機對戰:
項目鏈接:https://nocode.host/6281d/wqtkm8blcfm3ovhk
一個熱點美食追蹤的網站,詳細區分了品類、門店詳情等頁面,包含門店覆蓋熱力圖:
項目鏈接:https://nocode.host/3a6ad/m3dbk1k0j4ksr99s
商家數字運營系統,包含運營數據、訂單管理、庫存和分析等多個項目:
項目鏈接:https://nocode.host/6281d/1o5c1i2i9bdacm06
也有越來越多的人分享了自己的使用心得。簡單說來,NoCode 具備以下一些特點:
- 自然語言編程:使用自然語言描述想法,NoCode 就能自動解讀并轉化為完整功能,無需編程經驗即可生成可用能力。在用戶輸入指令后,NoCode 會對指令進行拓展、優化,還可以進行一鍵優化。
- 實時預覽效果:NoCode 能根據對話內容即時渲染、呈現結果,可實時查看每次對話后的實際效果。
- 局部定位修改:使用 Visual Edit 功能,可針對定位內容進行局部修改及完善;同時支持版本間對比、回退,保障每一步都「有跡可循」。
- 一鍵部署分享:應用構建完成后,代碼將自動上傳到倉庫,即可立即部署并與其他人分享,點擊即可直接訪問鏈接查看作品,同時后方會展示復制按鈕,用戶也可以選擇一鍵復制鏈接后,分享給其他人查看。
NoCode 由美團研發質量與效率團隊研發,該團隊屬于美團基礎研發平臺。趕在 NoCode 正式上線之前,美團基礎研發平臺工程效率負責人、美團技術委員會委員程大同,與美團基礎研發平臺智能開發工具負責人俞超接受了我們的采訪。他們就 NoCode 的產品形態,技術架構和應用能力對我們進行了詳細介紹。
在 NoCode 的開發者們看來,這款工具就像是一個全棧工程師,它可以在不同的工作流程中提升生產力。從技術架構上看,NoCode 的背后是多個 AI 模型,又針對多項業務進行了專門的訓練與調優。在美團內部的應用中,NoCode 已經展現出了極強的實用性。或許用不了多久,我們的編程范式就會因為這些 AI 工具而迎來翻天覆地的變革。
這是我們第一次能夠了解美團這一神秘產品的技術細節,讓我們看看他們是怎么說的。
部分文字進行了不改變原意的改寫。
有關新工具的發布
1、請簡要介紹一下美團即將發布的 AI 零代碼工具 NoCode。
程大同:某種程度上,你可以把 NoCode 理解成為一個全棧的 AI 工程師,它擁有完整的環境,一個能夠直接運行程序的沙箱。
即使你沒有技術背景,也能生成小工具、網頁前端、產品原型、小程序、小游戲等等。你只需要把需求提給 AI,它就能幫你 work,不需要麻煩開發團隊,也不需要考慮安裝和部署。在美團內部,很多完全沒有編程經驗的同學經過與 AI 的多輪對話構建起了具有實際生產力的應用,它們雖然沒有專業開發者構建的那樣復雜,但已經是完全能用的。
我認為它意味著創造力:你在自己的專業領域里有了 idea,NoCode 就可能提供幫助,不過得有一些耐心。在美團內部,一些用 NoCode 做出的優秀實踐案例會與 AI 進行超過一百輪的對話。
2、我們知道,長期以來美團一直在零售場景中探索新技術的應用,本次提出的產品則面向代碼開發,可以說是開拓到了一個新的方向。開放 NoCode 是出于怎樣的考量?
程大同:我們認為目前已經到了這個階段。我們的產品在內部使用效果很好,但大家的想象力其實也有窮盡的時候。如果把 NoCode 開放到更廣闊的場景下,讓更多人來使用,可能會帶來更多的可能性,不僅對于我們,對于整個行業也能產生價值。
一直以來美團聚焦的方向是零售加科技,除了自動配送車、無人機等相對硬核的技術以外,其實在 AI 模型等軟核技術上我們的迭代也很快。
相比市面上一些 AI 代碼生成工具,我覺得我們開放出來是為了讓大家能夠參與 AI 這件事。我們會在零售加科技的方向上持續投入,而且有一些還不錯的進展。
3、NoCode 的能力如何?是否有代碼基準評測上的成績可以分享?
程大同:我們沒有對外去打榜。在內部測試時可以看到 code agent 在 SWE-Bench(注:基于 GitHub 的大模型能力評估數據集)上跑分是比較高的,Verified 項目上行業 SOTA 水平在微調后分數在 65% 左右,我們在沒有微調的情況下分數能達到 50% 以上,差不多在 Top5 的水平。
我們更加關注的是實際的生成效果。在內部實踐中可以看到,NoCode 的使用率很高,非技術人員用戶是技術人員數量的三倍。
在 AI 代碼生成這件事情上,我們有很多的實戰經驗。相比創業公司,我們已經擁有了相當數量的「客戶」—— 美團的一線 BD 和銷售,甚至一些 B 端商戶,他們都已經用得很嫻熟了。另外,我們在智能體上的經驗和積累也推動了技術棧的構建。
我們希望 AI 技術的應用能夠更加平民化,從需求、debug 到環境部署更加自動化,可以實現應用構建的從零到一。
NoCode、Dev Mode 背后的技術
4、請簡要介紹一下 NoCode 的大致框架。支撐 NoCode 的基礎大模型是怎樣的?
俞超:NoCode 是一個大模型智能體產品,圍繞基礎設施、runtime sandbox 和大模型構建,多個 AI 模型進行協作。
高清圖片鏈接:https://nocode.host/6281d/lp1779rwn2cpl5lms
大體來說,NoCode 整體架構分為三層,分別為基礎設施和模型層、runtime sandbox 和 baas 層、Agent 應用層。基礎設施層面,包括 K8S 大規模集群調度算力,分布式文件系統提供代碼存儲能力,Ingress 網關實現網站路由,部署系統提供部署能力,圖片檢索服務適配網頁圖片等。再往上是 runtime sandbox 層,基于特定技術框架(如 react、云 IDE)構建鏡像,通過池化技術加速冷啟,熱更新實現頁面實時渲染。最后是 Agent 應用架構,一個大尺寸主推理模型,外加一些垂直場景的小模型,構建包括 plan、context 管理、code 場景下的 tool set 在內的 code agent。
切換到 Dev Mode 之后,用戶視圖轉變為完整的 Agentic IDE — CatPaw,適用于專業用戶進行更精細化控制。CatPaw 于 2022 年 11 月啟動,當時名字叫做 MCopilot,后來我們認為 Copilot 這個詞不太好,改名 CatPaw,目前在美團內部研發的滲透率超過 90%,這部分技術架構,細節更為復雜,后續有機會單獨分享。
高清圖片鏈接:https://nocode.host/6281d/snpwps0uq1nje77bg
5、在這其中,美團的工程團隊實現了哪些創新,其核心技術在于哪些方面(如模型訓練和調優、數據集等)?
俞超:我們專門構建了一個 7B 參數的 apply 專用模型,用來解決大尺寸模型生成慢的問題。這個專用模型基于美團自研代碼基座,通過美團內部真實代碼數據及部分合成數據進行訓練,它的任務是根據源文件 + 修改方案進行全量代碼生成。我們離線評估它的生成指標后在線上進行 A/B 實驗,衡量整個產品最終的端到端運行效果,不斷進行優化迭代,目前已經迭代了十幾個版本。
Apply 專用模型,我們有一個專門的優化團隊,不斷優化算法和工程,可以在不損失精度的情況下實現每秒 2000 token 的推理,而且使用的還不是業界最先進的 GPU 卡,如果用大尺寸模型去輸出代碼的話,生成速度可能只能達到每秒幾十 token。
實際上,除了 Apply 模型之外,我們還自行訓練了很多小模型,比如最早期的代碼補全模型,Embedding 模型,Rerank 模型等,它們在架構中發揮的效果就是在不降低指標的前提下提升推理速度,可以做到又快又好。相對而言,使用大尺寸模型就顯得有些浪費 token。
對于模型迭代來說,數據的質量和實驗迭代的速度至關重要。我們基于美團內部數據以及合成數據構建訓練集和評測集,并加入人工校對審核。為了提升垂直場景的效果,我們進行了很多離線評測和線上 A/B 實驗。我們不僅對小模型進行垂直評測,也對整個產品端到端的鏈路進行評測。我們的目標并不是 Benchmark 打榜,而是針對美團生態的開發者、非開發者需求,持續進行微調。
6、選擇對外界進行開放,就意味著可能的大規模應用。在產品體驗上,美團對 NoCode 實現了哪些優化?
俞超:極致的技術優化帶來極致的產品體驗。比如說代碼實時渲染,它的背后其實需要調用服務器的算力。最好的情況就是像本地開發一樣,改完代碼立馬就可以看到輸出效果,然后我就可以進行快速迭代。
在對話過程中,每一個 NoCode 作品背后都有一個 runtime sandbox ,提前安裝好環境、依賴、ide 等,能夠快速的去幫你去把代碼實時更新到容器里面,熱更新后快速看到效果。
當然,這也會帶來另一個問題,容器資源的開銷是很大的。我們專門設計了回收容器的機制,結合無狀態設計及容器池化,讓你在下次打開容器時可以實現秒級啟動。
為了對抗大模型輸出的不穩定性,我們還設計了 Visual Edit。你可以在網頁上選中部分區域進行局部修改,比如改個文字,改個背景圖,不需要依賴大模型就可以改,既快又準。
每一次對話后,我們都會默認生成一個帶有頁面截圖的版本,通過瀏覽帶圖的歷史,你可以很容易回顧每次改動,從而方便切換版本或者一鍵回退。
如果你使用過 NoCode,你應該會注意到,NoCode 生成的網頁中的圖片,是非常符合生成網頁上下文這個場景的的,這里其實涉及到圖片搜索,我們也有團隊專項優化這個服務。具體來說,我們會結合網頁的上下文,通過關鍵字、語義化去進行圖片檢索后放置到網頁中,合適的圖片對于網頁整體的美感非常重要。
最后,為了適配更專業用戶的訴求,解決非專業用戶和專業用戶間的協同,我們設計了 Dev Mode。Dev Mode 幾乎是把美團內部更專業版本的 AI Native IDE 搬到瀏覽器,以實現更加精細化的控制。當非專業用戶使用 NoCode 經過一些迭代之后,如果發現改不動了,可以直接 share 鏈接給到專業用戶,他切換到 Dev Mode 進行快速迭代,非專業用戶刷新就能看到實時效果,實現協同創作。
這里只是舉了幾個例子,我們還有很多優化在路上,也歡迎大家在社區( feedback.nocode.cn)中給我們多多提意見。
7、如何讓 AI 更準確地遵循人類給出的指令,寫出好用的代碼,美團的工程師們在構建 NoCode 的過程中克服了哪些挑戰?
俞超:遵循指令的能力主要考驗模型推理能力,另外也需要提供足夠多無歧義的上下文給到模型,在 NoCode 這個場景,還需要選擇模型輸出效果最佳的前端技術框架。對于每個模型我們都會花費大量時間調整 system prompt,如模型是否足夠主動,使用的代碼規范,工具的描述是否精準,格式是否最優等。我們后續還會支持用戶自定義的一些 system prompt,你可以制定一些以符合你的個人習慣。前端技術框架層面,我們選擇了 react+tailwind+shadcn+vite 的組合。此外,模型輸出的代碼有時會發生編譯不通過的情況,我們也會把編譯器的報錯自動給到模型進行修復,直到能成功渲染為止,這里的修復策略我們也會有團隊專項優化迭代。
8、人們在真實生產環境中構建項目時,通常會需要大模型工具保持連貫性,擁有長期記憶能力,NoCode 是否擁有這樣的機制,它是如何做到的?
俞超:如果代碼文件不多,你可以直接把所有代碼塞到一個窗口中,超過模型的上下文窗口之后,我們一方面會通過 RAG 來實現知識增強,另一方面也會給模型提供一些工具來進行代碼檢索。針對 RAG 場景我們專門訓練了 search 系列模型。比如 embedding 模型如何向量化數據集,rerank 模型進行重排等等。這個里面的每項任務、每一個細節都進行了專門的訓練和評估,在單點上做到極致,然后再把它串聯起來,組合實驗。隨著模型的推理能力增強,將更多的 tool 直接訓到模型中之后,模型可以基于當前的上下文動態 plan 后續的 action,比如通過關鍵字來檢索代碼倉庫,或者列出某個目錄的目錄樹結構,從而增強后續的推理。
AI 讓人人都能寫好應用
9、我們知道,使用 AI 代碼工具經常需要多次生成、調整才能輸出實用代碼。對于非專業人員來說,我們如何知道 AI 生成的代碼是否管用?NoCode 是如何幫助人們對代碼進行迭代優化的?
俞超:你需要進行不斷的迭代,先把你腦子里的想法輸入進去,看看它會出來什么樣的結果。我們很多內部員工在剛開始使用 NoCode 時在經驗上會稍顯不足,生成出來的結果完全不符合預期。但是他們慢慢的在對話過程中,逐漸摸索出 AI 的脾氣到底是什么樣子的。在我看來每一個模型都有他自己的脾氣,就是「模性」。在用的過程中你會發現什么樣的指令,對它來說這個最穩定、最容易遵循的。逐漸形成自己的方法經驗。
這個學習的速度應該是非常快的,因為不需要你去學很多枯燥的代碼,了解其中的語法結構和規則。只需要改進你的描述,然后調整模型輸出的結果。
在使用 NoCode 的過程中,當你發現模型輸出不符合預期,在頁面右側的可視化版本歷史中,點下鼠標就能輕松實現回退,回退后可以補充更多的信息或者換一種描述,讓 NoCode 幫你生成新版本。
我們也會放出一些實踐案例,完整地呈現每個作品的對話過程,此外還會有社區方便大家分享經驗。我相信這樣一款產品,它的學習門檻相比傳統代碼要低很多,可能你一天時間就能夠摸索出來高效實現的方法。
10、使用 NoCode 寫應用,工作流程會發生怎樣的變化?
程大同:主要看使用者的角色。
對于產品經理來說,我以前提一個需求,可能需要找一個研發做出 demo,然后再過設計,做好之后再 review,可能一兩周就過去了。現在我用 AI 工具就可以直接做出原型,開發如果覺得 OK 的話,可以在原型上直接修改,進行更深層的開發。如果動手能力強的話甚至可以自己使用 AI 工具來進一步修改。
很多我們一線的業務人員,面對一些緊急的小項目都可以這樣快速構建,實現業務的閉環。
第三類是全棧能力的補全。假如我是寫后端的,需要自己寫一個前端,就可以用 NoCode 來幫忙。我作為一個開發工程師,它拓展了我的技術棧。
還有就是數據分析人員,他們以前需要大量使用 Excel,還需要懂 VB 編程。現在通過自然語言直接進行分析,如何填寫數據,如何生成圖表,都可以用 AI 來幫忙。
可以說每個人都在發生變化,整個鏈條里面工作流程、協作模式。我們做過一些調研,不論是否懂編程,工作方式都能發生變化。
11、在美團內部,人們應用 NoCode 已經帶來了哪些效率提升?是否有一些更具體的例子。
程大同:在美團,有很多對接出海業務的員工會使用 NoCode 構建學習外語的軟件,他們會按照個人學習習慣和需要來設計產品,引入第三方工具,或是協同學習,還有人會用 NoCode 來寫抽獎程序。
我們的 HR 團隊、行政團隊也發生了變化。比如像 HR 團隊去年過年需要發的紅包,就是有些同學拿 NoCode 做的,經過研發的一些輔助,他們讓公司的 10 萬人拿到了紅包。他們完成這項任務只用了一到兩個工作日。
在數據團隊中,以前進行數據分析需要依賴專業的軟件,其中有很多工具套到底層的大數據倉庫。但這樣的工具是通用化的,對于定制化需求,你就需要向專用軟件的團隊提需求。現在人們不需要提需求了,只需要用 NoCode 做一個端上的數據分析工具,基本只需要三四十輪的對話,一個早上的時間。
有結構化的數據,有 NoCode,就能很快把我的需求實現出來。
12、美團目前每天提交的代碼有百分之多少是由 AI 代碼生成工具構建的,使用自然語言創建出可用于生產的應用,可以把開發時間縮短多久?
程大同:在今年第一季度財報上有提到,美團使用 AI 生成代碼占比達到了 27%。目前這個數字還在提升,目前每周使用我們內部的 AI 工具,生成代碼增量占倉庫增量的 50%。第一季度的統計數據還沒有加入 NoCode。
我們認為(使用 AI 開發工具)在內部能帶來 30-50% 的提效。
項目背景、未來展望
13、NoCode 這個項目是從何而來的?能否簡要介紹一下它背后的歷程和研發團隊。
程大同:我們團隊做 AI Coding 的 code agent 的時間有兩年半,但是 NoCode 項目的啟動到今天其實只經歷了 6 個月。它是從 2024 年 10 月開始的,最開始是公司內部的一個黑客松項目,只有三個同學,現在核心技術人員也不到十個人。
在去年 11 月,項目開始后一個多月,我們突然發現這個項目能火,于是去快速地 ramp up 這個項目。
當然這里面肯定是有相互的依賴和認知迭代。能快速的做出這個東西,我覺得跟我們前面的積累有非常深的關系。
在 AI 產品的持續研發過程中,我們發現必須得有快速的迭代,你晚一分鐘都不行。另外在這種新方向的嘗試上,新的 AI 產品上得注意細節,特別是鉆研垂類。
我們做了模型基座不能做的事情,其中的很多細節是我們打磨的,比如部署時云盤的鏈接,模型知識中調用工具依賴版本的問題,所有這些都是鏈路上的優化。
俞超:NoCode 在內部至少每周會發布一個新版本,多的時候每周兩個版本。在把內部版本轉換成可以對外的版本后,我們也會繼續保持這樣節奏迭代。
14、另一方面,對使用 AI 的人來說,使用大模型是對已有專業知識的放大,未來人與 AI 合作開發的新形式,對人提出了哪些新要求?
程大同:有很多需要改變的地方。我認為大家都需要持續學習,對于參與者來說,你得看 paper,了解從后端到前端的算法、工程問題,你要去用很多產品。
對于 AI 產品的使用者來說,上手去做很重要。你需要輸入第一個 query,保持耐心。現在還不是 AGI 的時代,但越來越多的事情已經可以由 Agent 自動化來幫你完成了。你要學會在這個 human-in-the-loop(人在回路)的環境中快速交付結果,而不僅僅是提效。
如果你擁有更多專業編程知識的話,還可以去嘗試更加專業的開發工具。
我認為 AI 編程未來會變成「車與司機」的關系 —— 三十年前大家認為司機是個職業,但是現在基本上大家都能開車,未來自動駕駛出現,甚至都不需要開車了,編程這種技能會變得非常具有普適性。
15、下一步會是什么?能否透露一下 NoCode 未來的發展方向,美團是否會推出更多的生產力應用?
程大同:對于 NoCode 來講,我們會在近期持續提升穩定性與體驗,對模型進行持續的優化。更長期的看,發展方向可能會在于打通非專業到專業的 AI 開發自動化。我們希望能夠提出一個比較好的開發環境,在 IDE 領域進行探索。
我們可能在 6 月發布開發工具「Dev Mode」,實現更專業的 IDE,構建全量的代碼、編譯能力。
美團演示了正在開發的 Dev Mode 模式,向更專業需求提供了更加復雜的能力。
我們不知道 NoCode 會在市面上創造出怎樣的影響,但我覺得能有多少影響,就創造多少影響。能夠以務實的態度做好產品,聚焦效果,聚焦產品能力,我們的目標就是這樣。