WebVoyager:用多模態模型構建端對端網頁代理

2024年2月6日 22点热度 0人点赞

來自浙江大學、騰訊 AI 實驗室和西湖大學的新論文:《WebVoyager: Building an End-to-End Web Agent with Large Multimodal Models》

這篇論文詳細的講解了如何借助 GPT-4V 這樣的多模態模型,與開放網絡中的網站交互,完成用戶的各項指令。

如果你有做過類似的事情的話,會發現其實還是很有挑戰的,因為讓 AI 遵循指令操作網頁,特定的網站相對容易,因為網頁元素和路徑比較固定,但是開放環境的話,每個網站都不一樣,交互方式也千差萬別,再加上浮動廣告、彈出窗口和網頁內容實時更新等等。

具體在實現層面,要先理解當前網頁的內容,然後根據用戶指令,在網頁上選擇正確的操作,根據操作的結果再繼續下一步操作,直到完成任務。

舉例來說,我們要去蘋果官網查詢,附近的哪個蘋果店能買到特定型號的 iPad 保護殼(Smart Folio)。如果是人操作的話,要打開官網,找到配件頁面,搜索關鍵字,找到配件查看詳情,從詳情頁選擇彈出位置搜索界面,輸入郵編,找到最近的蘋果店。但這系列操作對於 AI 來說還是很有挑戰的。

那麼 WebVoyager 是怎麼來做的呢?

一、AI 如何瀏覽操作網頁?

首先,WebVoyager 不是用的普通瀏覽器,而是基於 Selenium,這是一個自動化網頁測試工具,可以方便的截圖,可以自動化操作網頁瀏覽器。

但是要讓 GPT-4V 能識別和操作網頁元素,還需要對網頁上的可以操作的元素進行標記,WebVoyager 開發了一個叫 GPT-4-ACT4 的 JavaScript 工具,它能夠根據網頁元素的類型自動識別交互元素,並在這些元素上覆蓋帶有數字標記的黑色邊框。

此外,GPT-4-ACT4 還能向智能體提供了一些輔助文本,如交互元素內的文字內容、元素類型以及 aria-label 屬性中可能的註釋文本,以簡化觀察過程。

如果你有些自動化測試代碼的經驗的話,可以知道我們可以用 JavaScript 或者 Python 腳本靈活的操作網頁做任意操作,但是對於 AI 來說,如果讓它直接寫代碼可能會出錯率比較高,所以 WebVoyager 將常用的網頁操作進行了歸類,提供了有限的幾種操作,例如:點擊、輸入、滾動、等待、返回上一頁等等。

這樣 AI 就不需要寫代碼,而是直接基於這幾種操作給出清晰的指令,根據 AI 的指令,WebVoyager 將指令翻譯成操作 Selenium 的代碼操作網頁。

這些為後面 GPT-4V 識別和提供後續指令提供了基礎,否則 GPT-4V 無法清晰的描述出下一步要采取的操作。

二、如何讓 AI 清晰的給出網頁操作的指令?

然後就是 Prompt,Prompt 就是和 AI 交互的指令。要讓 GPT-4V 幫助我們完成任務,光有截圖還不夠,還需要讓 AI 能根據截圖和任務,清晰的說明下一步如何操作,才能去相應的網站,借助外部工具進行交互。

WebVoyager 采用的是 ReAct 的 Prompt 框架,讓 AI 能夠根據目標任務和當前狀態,推理出下一步的行動,每一步都采用:思考(Thought)、行動(Action)和觀察(Observe)的結構,思考推理出行動,行動完成後觀察行動後的結果,根據觀察的結果進一步思考,思考推理出下一步的行動,這樣一步步,直到完成任務。

舉例來說要查詢附近哪個蘋果店可以買到特定型號的 iPad 保護殼,基於 ReAct 的框架是這樣做的:

思考 1:我要找哪個蘋果店可以買到特定型號的 iPad 保護殼,我需要打開蘋果官網

行動 1:打開蘋果官網

觀察 1:蘋果官網已經打開,上面有 Mac、iPhone、iPad、配件……導航

思考 2:iPad 保護殼屬於配件,我已經打開配件頁面

行動 2:點擊打開配件頁面

觀察 2:配件頁面打開,有導航,有推薦配件,有搜索框……

思考 3:我應該使用搜索框輸入 Smart Folio 搜索

行動 3:在搜索框中輸入 Smart Folio,點擊搜索按鈕

觀察 3:列出了所有 Smart Folio 相關產品,第一項是 Smart Folio for iPad Pro 11,第二項是 Smart Folio for iPad……

思考 4:第一個搜索結果就是我想要的,我需要點擊進入詳情頁面

行動 4:打開第一個 Smart Folio 詳情頁

觀察 4:標題…介紹…圖片…蘋果商店……

思考 5:點擊蘋果商店鏈接查看有哪些商店

行動 5:點擊蘋果商店鏈接

觀察 5:彈出對話框,有蘋果商店列表 1,2,3,4…,有位置搜索框

思考 6:這些蘋果商店離我太遠,需要按照我的郵編尋找最近的

行動 6:輸入郵編到位置輸入框,搜索

觀察 6:列出了新的蘋果商店列表 1,2,3,4…

思考 7:第一個蘋果商店就是離我最近的蘋果店,任務完成

三、效果如何?

根據論文上的結果顯示,WebVoyager 在任務成功率上達到了 55.7%。這個結果顯然還達不到替代人類操作的效果,但是作為現階段來說,已經算是個不錯的成績。未來隨著 AI 能力的增強,成功率應該可以做到更高。

目前 WebVoyager 任務失敗的原因主要有:

1. 導航失敗

a) 如果智能體的搜索查詢不夠精確和明確,它會被海量無關搜索結果淹沒。在這種情況下,智能體可能傾向於瀏覽這些不相關的結果,而不是糾正之前的錯誤;b) 當隻有屏幕的一小部分可滾動時,智能體可能找不到正確的滾動區域,反復進行無效的滾動操作;c) 有時在網頁中部,智能體難以決定是向上滾動還是向下滾動。

2. 視覺識別不足

a) 智能體無法正確理解一些不常見的模式,比如誤將代表發音的字符或數學公式理解錯了;b) 智能體沒有識別出兩次觀察之間的微妙差異,誤以為操作失敗了;c) 由於元素之間位置接近,智能體有時會選錯了操作對象。比如,它可能會將相鄰的元素混淆,或者把日歷上的數字誤認為是數值標簽。有時,文本信息對於區分密集的網頁元素至關重要。

3. 幻覺

理解和遵循復雜的提示對智能體來說是一個重大挑戰。此外,長時間的操作路徑可能導致上下文過於冗長,從而妨礙了有效的指令執行。

總的來說,WebVoyager 是一個很不錯的嘗試,期待未來 AI 能真正的幫助我們操作網頁,解放雙手。