這一章我們介紹能自主瀏覽操作網頁的WebAgent們和相關的評估資料集,包含初級任務MiniWoB++,高階任務MIND2WEB,可互動任務WEBARENA,多模態WebVoyager,多輪對話WebLINX,和複雜任務AutoWebGLM。
MiniWoB++資料集
- Reinforcement Learning on Web Interfaces using Workflow-Guided Exploration
- https://miniwob.farama.org/
這兩年webagent的論文裡幾乎都能看到這個評測集的影子,但這篇論文其實是2018年就發表了。所以這裡我們只介紹下資料集的資訊~
MiniWoB++是基於gymnasium的模擬web環境,它在OpenAI的MiniWoB資料集上補充了更多複雜互動,可變頁面等網頁互動行為,最終得到的100個網頁互動的評測集。一些元件的Demo示例如下
MiniWoB++資料集的侷限性
- 非實際web頁面而而是模擬web頁面
- 頁面被極大程度簡化成了單獨的互動元件,複雜程度低
- 指令是低階指令,直接描述如何和網頁互動,例如下圖的指令"選擇下拉選單中的United Arab Emirates並點選提交"。而高階任務指令應該是"選擇United Arab Emirates"
MIND2WEB
- MIND2WEB: Towards a Generalist Agent for the Web
- https://osu-nlp-group.github.io/Mind2Web/
資料集
MIND2WEB資料集在MiniWoB++資料集上做了以下幾點改良
- 真實網頁而非模擬元件,如下是美聯航的首頁
- 高階任務指令而非低階指令:例如"Search for all alternative concerts taking place in New York"
- 網頁資料全面:包含了HTML程式碼,DOM檔案和HAR日誌,snapshot截圖和TRACE
- 多領域任務:5大類31個小類,總共137個網站,並基於種子人工構造了2350個指令樣本,5大類分別包括旅遊,資訊,娛樂,購物,通用服務類
讓我們來具體看一個樣本,任務指令=Check for pickup restaurant available in Boston, NY on March 18, 5pm with just one guest,Label是完成該指令的行為序列,每一步行為由(Target Element, Operation)構成,這裡支援三種最常用的OPCLICK, TYPE,SELECT,行為序列如下
MIND2WEB採用了4個評估指標
- Element Accuracy:評估操作元素例如Botton的正確率
- Operation F1:評估對元素的操作準召,這裡是token-level的F1計算因為有鍵入資料等操作
- Step Success Rate: 單步操作正確需要Element和Operation同時正確
- Task Success Rate:任務正確需要每一步都正確
Mind2WEB資料集主要侷限性是只有資料採集時的網頁靜態頁面HTML,沒有後續行為的動態互動資料
MindAct
MINDAct框架因為是單一文字模態,因此使用HTML程式碼和DOM檔案來作為網頁的觀測資料,框架比較簡單由兩個部分組成:元素排序生成候選,基於候選的多項選擇生成行為
- Candidate Ranking
候選生成部分是一個二分類的打分模型。輸入是任務指令+歷點史Action+DOM元素,輸出是每個DOM元素的候選機率。這裡DOM元素的文字表徵除了元素本身的資訊,還從DOM檔案樹裡面獲取了parent和child節點的資訊,拼接作為每個節元素的表徵。如下
這裡論文是透過隨機負樣本取樣,訓練了DeBERTa模型作為排序模型,測試集Top50召回在85%+。
- Action Prediction
基於上面元素排序返回的Top-K候選Element,會先對整個HTML進行裁剪,只保留候選元素前後的HTML文件。這樣可以有效降低大模型的輸入長度和複雜度,但對上面排序模型的召回要求較高。
之後會基於Top-K 候選,裁剪HTML,和歷史的Action,選擇下一步的的Action和Value。於是基於複雜HTML直接生成Action和Value的複雜任務,被簡化成了多項選擇的QA任務。這裡論文是微調了Flan-T5來完成多項選擇任務,也同時對比了直接使用GPT3.5和GPT4。
WEBARENA資料集
- WEBARENA: A REALISTIC WEB ENVIRONMENT FOR BUILDING AUTONOMOUS AGENS
- https://webarena.dev/
針對Mind2WEB只和靜態網站狀態互動的問題,WEBARENA透過構建模擬網站,構建了真實,動態,並且可復現的網路環境來和智慧體進行互動。論文選擇了電商,論壇,github,CMS等四類網站型別,並使用網站真實資料來構建模擬環境。
並且對比Mind2WEB的3種常見互動,支援更多的互動操作,並且因為是動態頁面因此支援多tab切換的操作,支援的opeeration型別如下
資料集構成
- High Level 任務指令:包含資料查詢,網站導航,內容建立等3個主要任務意圖
- 812個測試樣本:人工+chatgpt構建,從241個任務模板中建立出來,模板例如"create a {{site1}} account identical to my {{site2}} one"
- 網頁資料:HTML + DOM + screenshot + Accessibility Tree(DOM的有效子集)
評估指標上相比Mind2WEB,WEBARENA同樣使用task success rate作為評估指標,把token-level的F1計算進行了最佳化,加入了operation是否正確的檢測方案。核心就是部分操作需要鍵入內容,而這部分內容不能直接和標註做精準匹配,因此WEBARENA分成了需要精準匹配的答案(exact match),只要包括核心資訊即可(must include)和基於大模型做語義相似判斷的(fuzzy match)這三類評估型別,對不同的樣本進行評估。
WebVoyager
- WebVoyager: Building an End-to-end Web Agent with Large Multimodal Models
- https://github.com/MinorJerry/WebVoyager?tab=readme-ov-file
資料集
同樣是動態網頁互動,WebVoyager沒有采用模擬網頁資料,而是使用Selenium直接操控web瀏覽器行為和真實網頁進行互動。於是同時滿足了動態互動和真實網路環境的要求。
論文選取了15個有代表性的網站:Allrecipes, Amazon, Apple,ArXiv, BBC News, Booking, Cambridge Dictionary,Coursera, ESPN, GitHub, Google Flights,Google Map, Google Search, Huggingface, and Wolfram Alpha。
指令樣本是基於Mind2Web的資料集作為種子,然後基於GPT4使用Self-Instruct來生成新的任務指令,最後使用人工校驗和篩選。最終得到了每個網站40+的指令,總共643個評估任務。
評估指標和webARENA保持一致,都是採用任務成功率作為評估指標。
Agent
這裡簡單說下agent實現,WebVoyager和前面資料集的主要差異是加入了多模態模型GPT4—V的嘗試。不再使用accessibility Tree的文字輸入,而是直接和網頁的snapshot進行互動。
這裡論文采用了set-of-Mark Prompting的技術,來解決GPT4-V模型visual grounding的問題(模型對圖片中細粒度物體的區分度有限,當輸出是圖片中區域性物體例如按鈕時準確率不高的問題)。SOM是先用SAM等分割模型對圖片進行分割,這裡主要是識別出圖片上可互動的按鈕和區域,使用bounding box進行圈選,並使用序號對區域進行標記。透過標記來幫助GPT4-V更精準的識別可互動區域。
這裡論文使用了GPT-4V-ACT,JS DOM auto-labeler來識別網頁中的所有可互動元素並進行標記,來作為GPT4-V的輸入,如下
然後基於上面的標記圖片輸入,和以下ReACT的prompt指令,讓GPT4V生成每一步的互動操作。基於模型推理結果會直接操作網頁,並獲取新的網頁snapshot作為下一步的輸入。
WebLINX
- WebLINX: Real-World Website Navigation with Multi-Turn Dialogue
- https://github.com/McGill-NLP/WebLINX
對比前面的MIND2WEB,WebArena和webVoyager,webLLINX加入了和使用者的多輪對話互動,也就是從自主智慧體向可互動智慧體的轉變。雖然放棄了自主,但有了人類的監督,可能可以達到更高的任務完成度。
WebLINX的資料集,包括8大類,50個小類總共155個真實網頁,總共構建了2337個指令樣本。 因為是對話式互動,所以指令型別會和以上的幾個資料集存在明顯的差異,不再是任務型指令而是步驟操作型的指令,如下圖
agent部分論文更多是對比了文字模態vs多模態,微調vsprompt的效果,實現細節不太多這裡就不細說了
AutoWebGLM
- AutoWebGLM: Bootstrap And Reinforce A Large Language Model-basedWeb Navigating Agent
- https://github.com/THUDM/AutoWebGLM
AutoWebGLM是智譜最近才釋出的webagent論文,包括比較全面的微調資料集構建和微調方案,併發布了新的評測集。論文提出AutowebGLM的資料集有三個主要優點
- 更高質量的web互動訓練資料:人標很難構架大規模訓練資料,這裡使用模型標註並透過技巧提高模型標註準確率
- 統一10類互動行為:其實和WEBARENA基本一致
- HTML簡化裁剪方案:構建可互動元素樹
資料集
AutoWebGLM的微調資料集包含由易到難的三種任務:web recognition,single-step task,multi-step task。這裡也是純HTML文字模態的資料集。除了以下全新的三類樣本,論文還合併了MiniWoB++和Mind2Web的訓練集。
web Recognition
網頁識別樣本構建,是直接從HTML中提取可互動元素,然後基於元素構建簡化的HTML輸入。然後Input是網頁元素功能的相關提問,輸出是GPT的回答,例如"Search Bar是用來幹什麼的",模型回答“它是用來幫助使用者搜尋產品的”。這部分樣本用來幫助模型理解HTML。
Single-step task(Simple)
簡單任務是單步操作的網頁互動。這裡論文的構建比較巧妙,考慮到之前的論文已經論證了即便是GPT4在webagent這個任務上的執行準確率也有限,那直接使用GPT4來構建樣本肯定是不可行的。因此論文采用了反向標註,既基於HTML中抽取出的可互動元素例如“scroll_page('down')”,讓GPT4來方向生成對應的意圖和使用者指令,例如我需要向下滑網頁瀏覽更多。 這樣可以得到準確率更高的樣本,模型生成意圖和指令的prompt如下
Multi-Step task(Complex)
複雜任務涉及和網頁的多步互動。這裡論文使用了Evol-Instruct來構建複雜任務指令(不熟悉的同學看這裡解密Prompt系列17.LLM對齊方案再升級), 每個網頁模型生成50個指令,再人工篩選20個。
考慮模型生成準確率不高,這裡得多步互動,論文使用人工執行,並用瀏覽器外掛捕捉使用者互動行為的方案。這裡為了在行為鏈路之外,同時獲得模型COT思考鏈路,用來提高後面的模型訓練效果。論文使用以下prompt,讓大模型基於人工完整的行為鏈路,生成每一步的執行意圖。
最終的AutoWebBench評測集只使用了多步任務的子集,也就是複雜指令來評測模型效果。
微調
基於以上的訓練資料,論文采用了多階段訓練微調ChatGLM3
- SFT:第一步是指令微調,使用以上訓練集,採用Curriculum Leanring的訓練策略,既模仿人類學習,由易到難的訓練樣本進行逐步訓練。先使用網頁識別和單步任務訓練,再使用多步任務資料訓練。
- RL:第二步是強化學習,用來降低SFT部分模型學習的過度模仿和幻覺。這裡論文采用了Self-Sampling來構建DPO需要的正負樣本對,既使用正確答案作為正樣本,使用模型預測錯誤的作為負樣本,使用DPO和SFT的混合loss進行進一步的訓練。
- RFT: 第三步是基於MiniWoB++和WebARENA虛擬環境,使用以上訓練好的DPO模型構建了額外的訓練樣本。這裡採用拒絕取樣,既使用模型嘗試N次,選取成功(規則標註或環境自帶識別)的執行路徑作為訓練樣本進行訓練。相當於是把Rejection-Sampling的效果再訓練進模型中。
效果上在AutoWebBench上,微調後的6B模型可以顯著超過GPT4,和更大的LLAMA2基座模型,擁有更高的任務單步執行成功率。
同時論文做了消融實驗來驗證以上多階段微調和三種訓練樣本的效果。實驗顯示,由易到難的訓練資料對模型有較大提升,RFT在進一步訓練的miniWob++和WebArena上有顯著提升,但RL-DPO的效果不太明顯。
想看更全的大模型相關論文梳理·微調及預訓練資料和框架·AIGC應用,移步Github >> DecryPrompt