機(jī)器之心報(bào)道
編輯:+0
Cursor Tab 是 Cursor 的核心功能之一,它通過分析開發(fā)者的編碼行為,智能預(yù)測(cè)并推薦后續(xù)代碼,開發(fā)者僅需按下 Tab 鍵即可采納。
然而,它也面臨著一個(gè) AI 普遍存在的難題:「過度熱情」。有時(shí),它提出的建議不僅毫無用處,甚至?xí)驍嚅_發(fā)者的思路。
問題的關(guān)鍵,不只是讓 AI 寫出更優(yōu)秀的代碼,更是要教會(huì)它「察言觀色」:在最恰當(dāng)?shù)臅r(shí)機(jī)提供幫助,在其他時(shí)候則保持安靜。
基于此,Cursor 采用在線強(qiáng)化學(xué)習(xí)技術(shù)訓(xùn)練出一個(gè)全新的 Tab 模型。該模型將每一次用戶交互(接受/拒絕建議)都視為一個(gè)強(qiáng)化信號(hào),直接用于模型的在線優(yōu)化。在每天超過 4 億次請(qǐng)求的巨大流量驅(qū)動(dòng)下,模型得以進(jìn)行高頻度的、基于真實(shí)世界反饋的持續(xù)學(xué)習(xí)。
Cursor 已將這個(gè)新的 Tab 模型設(shè)為默認(rèn)版本。與舊模型相比,新模型提供的建議數(shù)量減少了 21%,但所提供建議的接受率卻提升了 28%。此舉旨在提升用戶的編碼體驗(yàn),Cursor 也計(jì)劃在未來繼續(xù)深化這些方法的研究。
Cursor 的策略獨(dú)特且高效:它每天多次向用戶部署新模型(每隔 1.5-2 小時(shí)),利用實(shí)時(shí)數(shù)據(jù)進(jìn)行快速訓(xùn)練和優(yōu)化。
這與主流做法形成了鮮明對(duì)比。多數(shù)廠商仍在靜態(tài)數(shù)據(jù)集上進(jìn)行長周期訓(xùn)練,依賴人工標(biāo)注,數(shù)月才發(fā)布一次新模型。Cursor 的模式則建立了一個(gè)超高頻的實(shí)時(shí)反饋循環(huán),是對(duì)傳統(tǒng)模型開發(fā)流程的徹底顛覆。
這似乎又一次向我們證明了,誰掌握了數(shù)據(jù)入口,誰就掌握了 AI 進(jìn)化的主動(dòng)權(quán)。
該功能在 AI 社區(qū)也得到了非常積極的反饋,有用戶表示這是 Cursor 當(dāng)前「護(hù)城河」,并愿意為 Cursor Tab 單獨(dú)付費(fèi)。
還有開發(fā)者認(rèn)為,它能大幅提升了生產(chǎn)力,不像 agent 那樣只有噱頭,而是「比其他任何功能都更能改善工作流程」。
另外,一條被「強(qiáng)化學(xué)習(xí)之父」Richard Sutton 轉(zhuǎn)發(fā)的評(píng)論表示,Cursor 的這個(gè)做法意義重大,它首次大規(guī)模證明了「實(shí)時(shí)在線學(xué)習(xí)」的巨大威力,并且指明了 AI 未來的一個(gè)重要發(fā)展方向,盡管目前還不夠完美。
Cursor 通過一篇博客介紹了他們?nèi)绾卫眠@些數(shù)據(jù),通過在線強(qiáng)化學(xué)習(xí)技術(shù)來優(yōu)化其 Tab 模型。
- 博客地址:https://cursor.com/cn/blog/tab-rl
「干擾性建議」的挑戰(zhàn)
要實(shí)現(xiàn)高接受率,不僅需要提升模型本身的智能水平,更關(guān)鍵的是要判斷何時(shí)應(yīng)提供建議,何時(shí)應(yīng)保持靜默。在某些場(chǎng)景下,上下文信息不足以準(zhǔn)確判斷用戶的意圖。即便模型具備完美的知識(shí)和推理能力,也無法預(yù)知用戶的確切操作。在這些情況下,不提供任何建議是更優(yōu)的選擇。
為提升建議的接受率,一種直接的思路是訓(xùn)練一個(gè)獨(dú)立的分類模型來預(yù)測(cè)建議是否會(huì)被采納。據(jù) Parth Thakkar 在 2022 年披露,GitHub Copilot 便采用了此種策略。它通過一個(gè)邏輯回歸模型計(jì)算「上下文過濾分?jǐn)?shù)」,該模型接收 11 個(gè)特征作為輸入,涵蓋了編程語言、前次建議的采納情況、光標(biāo)前的字符序列等。盡管該模型的確切預(yù)測(cè)目標(biāo)未知,但外界普遍猜測(cè)其旨在預(yù)測(cè)建議被用戶接受的概率。當(dāng)該分?jǐn)?shù)低于 15% 時(shí),系統(tǒng)便會(huì)跳過此次建議。
該方案雖然可行,但 Cursor 的團(tuán)隊(duì)希望尋求一種更通用的機(jī)制,以便能復(fù)用 Tab 模型自身學(xué)到的強(qiáng)大代碼表征能力。他們希望從根源上讓 Tab 模型避免生成質(zhì)量不高的建議,而非僅僅在事后進(jìn)行過濾。因此,他們最終選擇了策略梯度方法。
策略梯度方法
策略梯度是一種通用的優(yōu)化框架,其目標(biāo)是調(diào)整「策略」(在此即 Tab 模型),以最大化「獎(jiǎng)勵(lì)」(Reward)。獎(jiǎng)勵(lì)是一個(gè)被賦予策略所執(zhí)行的每一個(gè)動(dòng)作的數(shù)值。通過策略梯度算法,可以持續(xù)更新策略,使其在未來能夠獲得更高的平均獎(jiǎng)勵(lì)。
該類算法的核心思想是:允許策略進(jìn)行探索性的隨機(jī)嘗試,觀察不同行為所帶來的獎(jiǎng)勵(lì)高低,然后對(duì)獲得高獎(jiǎng)勵(lì)的行為進(jìn)行正向強(qiáng)化,對(duì)導(dǎo)致低獎(jiǎng)勵(lì)的行為進(jìn)行負(fù)向強(qiáng)化。
為了運(yùn)用策略梯度方法優(yōu)化 Tab,團(tuán)隊(duì)定義了一個(gè)精巧的獎(jiǎng)勵(lì)函數(shù):鼓勵(lì)被采納的建議,同時(shí)懲罰那些被展示但未被采納的建議。
例如,假設(shè)目標(biāo)是當(dāng)建議的接受率不低于 25% 時(shí)才進(jìn)行展示。那么,可以為被采納的建議設(shè)定 0.75 的獎(jiǎng)勵(lì),為被拒絕的建議設(shè)定 -0.25 的獎(jiǎng)勵(lì),而未展示建議的情況獎(jiǎng)勵(lì)為 0。如果一個(gè)建議的真實(shí)接受概率為 p,那么展示該建議的期望獎(jiǎng)勵(lì)就是。該值僅在 p>0.25 時(shí)為正。因此,一個(gè)旨在最大化獎(jiǎng)勵(lì)的策略,將學(xué)會(huì)在其預(yù)估接受率超過 25% 時(shí)才給出建議。
在實(shí)際應(yīng)用中,Cursor 使用的獎(jiǎng)勵(lì)函數(shù)更為復(fù)雜,還考慮了建議的長度、代碼跳轉(zhuǎn)以及展示更多建議的可能性等因素。但其核心理念是一致的:并非直接對(duì)接受率進(jìn)行建模,而是學(xué)習(xí)一個(gè)能夠達(dá)成特定接受率目標(biāo)的策略。
可以推斷,模型在其內(nèi)部表征中自發(fā)學(xué)習(xí)到了對(duì)接受概率的評(píng)估(或至少是評(píng)估其是否超過 25%),而這個(gè)過程完全交由優(yōu)化器自行探索。
同策略(On-Policy)數(shù)據(jù)的重要性
然而,該方法有一個(gè)關(guān)鍵前提:用于計(jì)算梯度的動(dòng)作樣本,必須來自于當(dāng)前正在優(yōu)化的策略。一旦策略被更新,舊的數(shù)據(jù)便不再是「同策略(On-Policy)」數(shù)據(jù)。
為了獲取最新的有效樣本,就必須將新模型部署給用戶并收集其行為數(shù)據(jù)。這意味著需要一套高效的基礎(chǔ)設(shè)施,以快速部署新的模型檢查點(diǎn),并縮短從用戶產(chǎn)生數(shù)據(jù)到數(shù)據(jù)進(jìn)入下一輪訓(xùn)練流程的時(shí)間。
目前,Cursor 推出一個(gè)檢查點(diǎn)并收集所需數(shù)據(jù)需要 1.5 到 2 小時(shí)。盡管這在人工智能行業(yè)已屬高效,但仍有進(jìn)一步優(yōu)化的空間。
Cursor 這次更新讓你心動(dòng)了嗎?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.