美團到店平臺技術部/質量工程部與復旦大學周揚帆教授團隊開展了科研合作,基於業務實際場景,自主研發了多模態UI交互意圖識別模型以及配套的UI交互框架。本文從大前端質量保障領域的痛點出發,介紹了UI交互意圖識別的方法設計與實現。基於UI交互意圖編寫的測試用例在實際業務中展現出了可以跨端、跨App的泛化能力,希望可以爲從事相關工作的同學帶來一些啓發或幫助。
1. 背景
近年來,隨着美團多種業務線的擴充和迭代,UI測試的任務愈發繁重。針對UI測試中人工成本過高的問題,美團到店測試團隊開發了視覺自動化工具以進行UI界面的靜態迴歸檢查。然而,對於UI交互功能邏輯的檢驗仍強依賴於腳本測試,其無法滿足對於進一步效率、覆蓋面提升的強烈需求。主要難點體現在兩方面:
- 前端技術棧多樣,不同頁面的實現方式各異,這導致不同頁面中功能相似的UI模塊的組件樹差異很多,基於規則的測試腳本也就很難具備泛化能力,生產、維護的成本非常高。
- UI樣式繁多,同樣的功能模塊可能在視覺上有很大差異,這爲基於CV方法實現自動化驅動帶來了困難。
考慮上述兩個難點,美團到店平臺技術部/質量工程部與復旦大學計算機科學技術學院周揚帆教授團隊展開了“基於UI交互理解的智能化異常檢測方法”的科研合作,利用多模態模型對用戶可見文本、視覺圖像內容和UI組件樹中的屬性進行融合,實現了對於UI交互意圖 [1] 的準確識別。該工作對於大前端UI的質量保障等多個領域都具有可借鑑的意義,介紹該工作的學術論文 [2] 已經被 ESEC/FSE 2023 (軟件領域CCF A類推薦會議)接收,並將於12月6日在其工業屆軌(Industry track)公開發布、推介。
2. UI交互介紹
2.1 UI模塊與交互意圖
移動應用由“頁面”組成,不同頁面中的不同“模塊”爲用戶提供着不同的功能。用戶在瀏覽頁面時,根據以往使用經驗以及當前頁面中的圖像、文字、頁面結構等信息,可快速理解頁面當中不同【模塊】所想要提供的【功能】,以及通過該功能用戶能夠達到的【目的】。這些被用戶認爲能夠提供特定功能並達到預期目的的頁面模塊,我們將其命名爲一個【交互意圖簇】。
以下圖中的頁面爲例,不同模塊通常對應不同的交互意圖類型劃分。比如商品詳情區域,我們可以得知此模塊主要是向我們展示當前商品最主要的信息,起展示作用;而顧客信息區域,需要用戶進行點擊或輸入個人信息,用以補全整個訂單所需要的信息;同時頁面當中也會存在各類功能按鈕,通過按鈕的 位置 、文本信息、圖標等信息,用戶也可以大致推斷出操作後會得到怎樣的結果。由此,我們可以將UI交互意圖定義爲「用戶通過當前UI展示推斷出來的不同模塊的概念及交互功能」。
2.2 當下痛點與啓示
對於複雜的UI交互場景,如提交訂單頁,測試人員需要對不同模塊制定較複雜的測試流程、測試規則,同時編寫及維護複雜的自動化測試邏輯。以美團內的App測試場景爲例,許多不同的頁面有着相似的功能模塊,這些功能模塊儘管表象不同,但對於一般用戶來說,交互意圖明確且相似,沒有理解困難。如:
2.3 研究目標
本課題期望結合多種機器學習方法,通過機器獲取與人工認知一致的“交互意圖”,從而利用該信息模擬測試人員對客戶端產品進行“理解-操作-檢查”的測試驗證流程。如人工操作一般,我們希望該能力能夠以一個與一般用戶類似的邏輯來操作、檢查相似的功能,同時兼容不同的技術棧、App、業務領域,無需特定適配。就像一個用戶在美團上能夠訂酒店,在沒有使用過的點評或者美團小程序上也同樣能完成預訂酒店的流程。
從能力目標視角來看,UI交互意圖識別的定位是完成一般用戶的交互概念到頁面實體的映射。由人直接進該映射的準確率最高、泛化性最好,典型的場景就是手工測試,即人觀測頁面後操作、檢查。人能在不同的設計、程序實現形式下實現下找到目標操作實體(例如各種各樣的提交按鈕、商品卡片)。當前的自動化腳本測試提高了效率,但由於映射的泛化性較差,往往需爲每個頁面做單獨的適配。
此外,業內嘗試了諸如CV頁面目標檢測等方法,但在魯棒性、泛化性、使用成本等方面上仍不太令人滿意。本研究旨在利用深度學習和多模態信息,通過少量標註數據,儘可能提升交互意圖識別的映射能力,使其接近人的識別、認知水平。
2.4 效果預期
本研究提供一種UI交互意圖理解的通用能力,能夠在測試核心流程“理解-操作-檢查”各個環節應用。
- 識別頁面模塊交互意圖:通過頁面UI交互意圖識別來模擬測試人員的認知
- 測試行爲的注入:利用UI交互意圖識別結果信息,將操作邏輯程序化
- 測試結果檢查:利用UI交互意圖識別結果信息進行頁面狀態通用化校驗
3. 架構設計
3.1 技術思路
考慮到UI交互意圖理解是一種頁面理解的通用能力,需要結合業務場景產生實際效果,我們決定首先將其應用於智能化UI交互,探索交互意圖理解的能力範疇以及落地效果驗證。後續會將該能力擴展到智能化測試邏輯檢查、智能化遍歷測試、測試知識標準化管理以及推薦等其它大前端測試領域應用。
爲了驗證技術方向的可行性,本課題先限定在某個垂直業務領域(訂單/表單)進行探索,確認實際使用效果,再將方法推廣泛化到其他領域。
具體來說,本項目的技術方案分爲兩個部分:
- UI交互意圖理解:基於深度學習方法對交易流程中表單/訂單場景進行目標UI交互意圖簇識別劃分。
- 智能化測試用例驅動:定義測試用例目標,基於表單/訂單等場景中的UI交互意圖簇編寫交互邏輯,在跨App、跨技術棧、跨業務的場景下嘗試複用執行。
3.2 當前進展與效果Demo
本項目目前已經實現了一套通用UI交互意圖理解方法,利用UI交互意圖在一些場景下編寫的智能化測試用例可以在不同UI頁面、不同技術棧,甚至不同App之間複用。下面是一個使用UI交互意圖編寫的“下單首個商品”測試用例的交互意圖和其泛化能力的效果展示:
交互流程:識別第一個商品、點擊購買進入提交訂單頁、填寫顧客信息、提交訂單。
App效果展示:
3.3 實現難點
如何讓機器學習到一般用戶的認知概念,自動分析獲取到預先定義的UI交互意圖是本課題中最大的難點。
4 實現方式探索
針對上述難點,本課題從真實的業務需求出發,首先梳理了需要識別的交互意圖類別。隨後,對交互意圖類別進行了分析,先後進行了多種方法的嘗試,通過定量實驗對不同設計進行了效果比對,最終選取了先分類,再聚類的落地方案:先以渲染樹元素爲最小單位進行交互意圖類型的分類,然後在不同的交互意圖維度進行元素聚類,生成對應的交互意圖簇。
4.1 交互意圖識別需求
深入挖掘業務需求後,我們發現:UI交互意圖並不是一維的,在不同場景、不同需求下會有不同的分類標準。具體來說,如果關注所屬業務類別,可以將交互意圖簇分爲:商品信息、評價和發票等;當關注用戶的操作方式時,又需要將可交互的組件分爲:點擊、鍵入、長按三類。例如,對於“點擊進入第一個商品詳情頁”這樣一個交互意圖:模型需要從業務層找到“商品信息”,在商品信息簇中找到操作層的可“點擊”的UI組件(“商品信息”和“點擊”的交集),然後執行點擊操作。
此外,由於本工作的初步實驗場景爲具有大量計算邏輯和信息輸入的表單頁,因此我們又增加了計算層和表單層兩個特有的維度。例如,對於“購買最便宜的商品”這樣的交互意圖,其細分爲“找出最便宜的商品”和“訂單填寫”兩個串行子意圖。具體來說,模型需要首先在商品列表頁找出業務層“商品信息”和計算層“金額統計信息”的交集並排序,隨後點擊最便宜的商品進入提交訂單頁。在提交訂單頁中,模型需要在業務層的“顧客信息”和表單層的“信息輸入”中找出共有的元素,並根據這些元素生成對應的文本輸入信息,從而完成“訂單填寫”的子意圖。
由此,我們利用上述四個維度將新的分類標準確定爲16個不互斥的類別。
維度 | 類別 |
---|---|
1. 業務層 | 顧客信息、商品信息、優惠、評價、備註、發票、提交按鈕 |
2. 表單層 | 功能按鈕、信息輸入、標題、說明 |
3. 計算層 | 數量、金額統計信息 |
4. 操作層 | 點擊、鍵入、長按 |
四個維度的預期分類結果分別如下圖所示:
4.2 模型的輸入
爲了實現UI交互意圖理解這個目標,我們推測,與一般用戶的理解方式類似,基於多種信息的綜合考慮能夠提升整體效果,因此選擇了三種模態的頁面信息:圖像信息(來源於頁面截圖)、渲染樹信息和文本信息。
例如,針對元素 【“普通支付”按鈕】,可獲得的關鍵信息有以下三種:
4.3 雙階段UI交互意圖理解
分析輸入數據可知:三種信息輸入中只有“渲染樹”帶有明確的邊界,但其與“交互意圖”概念在粒度上有顯著差異。因此,本研究考慮採用先分類,再聚類的思路:先以渲染樹元素爲最小單位進行交互意圖類型的分類,然後在不同的交互意圖維度進行元素聚類,生成對應的交互意圖簇。
具體來說:
- 在分類時,利用自注意力機制進行特徵提取,實現在判斷當前元素類別時會參考其它元素信息的目標。
- 在元素聚類的過程中,利用有監督的聚類方法將分類後的渲染樹元素在不同交互意圖維度進行聚合,得到簇劃分結果。
4.3.1 UI組件分類模型
由於渲染樹反映的是最細粒度的UI組件,因此對渲染樹中組件進行分類的最大難點是信息缺失:訂單頁中的數字有可能是金額、商品數量、顧客人數,此類情況僅依據當前渲染樹節點無法區分。因此,本研究借鑑了NLP領域的經驗,利用自注意力機制進行特徵提取,實現在判斷當前元素類別時會參考其它元素的信息的目標。
分類模型結構如下圖所示,我們利用Vision Transformer預訓練模型提取圖像特徵,使用中文bert預訓練模型提取文本特徵,同時把渲染樹元素屬性進行特徵提取後輸入模型,綜合判斷元素類別:
爲了探究三種關鍵信息(渲染樹、視覺圖像信息、用戶可見文本)的有效性以及三者之間的關係(是否相互補充),我們將不同關鍵信息作爲模型的輸入類型進行了消融實驗,訓練了7種不同的自注意力分類模型。此外,考慮到在UI領域很多實踐使用CV目標檢測能力實現類似工作,爲了對比此類目標檢測模型和自注意力模型在當前問題上的效果差異,本研究以YOLOv7模型爲代表,定量評估了其在UI組件分類上的效果。
實驗時,本研究從美團App上的四種業務線(酒店、KTV、密室、門票)中隨機截取了158個提交訂單頁面,進行人工標註後,將其中的123個頁面作爲訓練集,其餘爲測試集。在測試集上,各個維度的F1 Score [3] 如下:
模型 | 平均F1 Score | 顧客信息 | 商品信息 | 優惠 | 提交 | 信息輸入 | 數量 | 金額統計 |
---|---|---|---|---|---|---|---|---|
YOLOv7 | 0.551 | 0.477 | 0.329 | 0.570 | 0.614 | 0.526 | 0.853 | 0.547 |
僅渲染樹 | 0.779 | 0.816 | 0.794 | 0.700 | 0.863 | 0.784 | 0.785 | 0.686 |
僅圖像 | 0.720 | 0.729 | 0.738 | 0.649 | 0.900 | 0.696 | 0.681 | 0.646 |
僅文本 | 0.780 | 0.905 | 0.798 | 0.733 | 0.734 | 0.789 | 0.737 | 0.823 |
圖像+渲染樹 | 0.813 | 0.833 | 0.783 | 0.740 | 0.926 | 0.795 | 0.839 | 0.754 |
文本+渲染樹 | 0.837 | 0.920 | 0.813 | 0.758 | 0.865 | 0.797 | 0.922 | 0.815 |
圖像+文本 | 0.830 | 0.916 | 0.788 | 0.788 | 0.924 | 0.776 | 0.826 | 0.829 |
多模態 | 0.861 | 0.894 | 0.823 | 0.742 | 0.996 | 0.803 | 0.869 | 0.850 |
從上表可以看出,多模態自注意力深度學習的 UI 交互意圖理解方案在相同數據集下具有最好的表現。分析原因主要有兩個:首先,隨着模態的增多模型的效果會變好,可見三種模態的信息互爲補充,讓模型能夠通過多個維度更準確的進行擬合;此外,自注意力機制的引入使得節點的分類能夠考慮到其周圍的相關信息,提升了特徵提取的效果,讓UI組件分類更準確。因此,我們的後續研究基於此多模態自注意力模型展開。
該多模態模型的UI組件的多維度分類結果示例如下:
4.3.2 交互意圖簇生成:UI組件聚類
當前多模態多分類模型針對的識別對象是一個個渲染樹節點。一般來說多個渲染樹節點才能組合成一個完整的交互意圖簇,所以我們考慮將屬於同一個意圖的節點聚類在一起,這樣就能夠給下游任務提供更多可用信息。
我們首先嚐試了基於規則的無監督聚類方式:將一個表單頁上被分類模型判爲同類型的連續節點聚爲一個交互意圖簇。但由於其在處理連續但獨立的同類交互意圖簇時效果很差,並不適用於當下複雜場景。
深入分析可知,聚類任務有兩個難點:
- 情形1:如果渲染樹節點不連續但是屬於同一個簇,仍希望對其成功聚類。
- 情形2:連續的渲染樹節點可能被分類模型判定爲同一個交互意圖類別,但希望對齊一般用戶的理解將其聚類爲多個獨立交互意圖簇。(如:連續的幾個表單填寫框我們希望能夠將其分割開,如下圖中出現的三個連續的【信息輸入】交互意圖簇)。
在聚類的實現方式上,我們考察了多種常用聚類手段:
- 最簡單的規則聚類(連續同標籤的渲染樹節點爲同簇)並不能處理前述連續多個同類簇情形。
- 以k-means [4] 爲代表的無監督聚類方法在本研究所涉及的多維度聚類問題上也表現不佳,我們對其超參數進行了廣範嘗試也無法得到理想的聚類效果。
經過廣泛嘗試,我們最終選取了一種有監督聚類方案:每個節點依次與其它節點計算是否屬於同一個簇,將被判斷屬於同一個簇的聚合起來。通過分類模型判斷是否屬於同一個簇,而模型的ground truth(真值)是我們人工標註出的每個類別頁面中的所有渲染樹元素簇。聚類模型結構與訓練流程如下:
我們採用與分類模型相同的頁面標註數據生成訓練集和測試集。訓練時,我們首先爲每個UI界面上生成所有可能的兩兩組合,其中在任意類別屬於同一簇的組合是模型輸入正例,其餘爲反例。預測時,我們將分類模型的結果送入聚類模型,由聚類模型輸出最終的交互意圖簇。
在UI組件聚類的評測指標上,我們採用標準聚類量化評估參數蘭德係數 [5] 衡量聚類模型的效果。William M. Rand 通過將聚類問題轉換爲任意兩個元素的組合(N(N-1) 個)是否在同一簇的決策問題,由此定義了在聚類問題上的混淆矩陣(TP,TN,FP,FN)。因此本研究用Precision來衡量聚類結果的準確性,用Recall表示聚類結果的全面性,而兩者的F1 Score就是蘭德係數。
由於本研究採用的是多層次平行聚類算法,所以蘭德係數的數值整體偏低(如下表所示)。但從聚類效果圖(圖13)可知當前有監督聚類模型對交互簇有良好的聚類效果。
顧客信息 | 商品信息 | 優惠 | 備註 | 提交 | 功能按鈕 | 信息輸入 | 標題 | 說明 | 數量 | 金額統計 | |
---|---|---|---|---|---|---|---|---|---|---|---|
Precision | 1.000 | 0.964 | 0.954 | 1.000 | 1.000 | 1.000 | 0.997 | 1.000 | 0.924 | 1.000 | 0.866 |
Recall | 0.871 | 0.965 | 0.402 | 1.000 | 0.711 | 0.873 | 0.517 | 0.983 | 0.624 | 0.734 | 0.296 |
F1 | 0.931 | 0.964 | 0.565 | 1.000 | 0.831 | 0.932 | 0.681 | 0.991 | 0.745 | 0.846 | 0.441 |
4.4 實驗結論
綜上,我們得到了以下結論:
本研究提出的基於多模態自注意力深度學習的UI交互意圖理解方案在準確性、泛化性上具有一定優勢,且其對數據標註和訓練輕量化的需求貼合業界的真實測試場景。
5 實際落地探索
基於UI交互意圖理解的智能化測試用例驅動
UI交互意圖識別模型在訂單頁領域已經具備了一定的交互意圖簇識別能力,我們期望利用UI交互意圖識別模型進行智能化測試用例驅動:在交互意圖層面進行大前端測試用例的編寫,希望測試用例在不需要任何適配的情況下實現跨端、跨App、跨技術棧的執行。 我們在美團App的酒店詳情頁場景的安卓端利用交互意圖簇識別能力完成以下測試用例的驅動編寫:
- 下單首個產品
- 下單最便宜的產品
下面是測試用例僞代碼以及部分輸入集合定義:
圖中顯示了選擇 “首個酒店” 與 “最便宜酒店” 的僞代碼流程。
- 首先在酒店詳情頁,我們會在 BuyFirstItem 與 BuyCheapestItem 這兩個函數中實現主要邏輯 。其中在 BuyFirstItem 會尋找到首個被模型識別爲 “商品信息” 的交互意圖,並從中找到在這個交互意圖中的“購買按鈕”意圖,進行點擊後跳轉到填單頁。在 BuyCheapestItem 中我們會獲取頁面上所有的 “商品信息” 的交互意圖,並從每個商品信息意圖中識別“價格信息” 交互意圖,得到每個商品的價格進行比較,找到最便宜的商品後點擊其“購買按鈕”意圖進入填單頁。
- 進入填單頁後,通過模型識別“信息填寫” 交互意圖。如圖中所示,首先識別到兩個“信息填寫” 意圖,通過其提示文字 【住客姓名、聯繫手機 】匹配輸入集合中的 姓名、電話,從而選擇出信息填寫到對應的輸入框中。在此之後,利用模型識別頁面中的“提交訂單”交互意圖,點擊進行訂單提交從而完成整個下單流程。
此外,我們在訓練集以外的五種App上定量研究了智能化測試用例的可用性和泛化性。100個不同的頁面中,基於UI交互意圖理解的智能化測試用例在89個頁面正確執行通過。該實驗證明:基於UI交互意圖理解的智能化測試用例具備良好的魯棒性和泛化性。
目前,我們正在推進UI交互意圖在實際自動化測試用例編寫中的落地工作,即用UI交互意圖代替基於規則的測試驅動腳本。由於業內的測試場景往往涉及不同技術棧、不同業務之間的大量相似的頁面,這種泛化能力強的測試用例可以在相似頁面複用,因此可以減少開發成本。此外,與現有的基於規則的測試腳本不同,該方法對UI頁面的小規模變化不敏感,不會出現需要頻繁維護Selector [6] 的情況,可一定程度上減少自動化Case維護所耗費的精力。
未來,我們將通過收集更爲廣泛的UI數據來訓練一個通用的UI交互意圖理解模型以覆蓋常見頁面中的UI交互意圖識別,業務質量保障人員可以直接利用這種通用的識別能力開發泛化性、魯棒性更好的智能化測試用例。對於那些暫時處於模型能力範圍之外的頁面或者新上線的業務,我們將提供模型的微調接口,經少量的標註數據微調即可使其在相關頁面展現出識別效果。
6 總結
本文介紹了利用頁面多模態信息在UI測試領域的探索與實踐經驗。針對意圖信息識別問題,我們利用圖像+文本+渲染布局屬性信息探索出了一種交互意圖簇識別模型,驗證了基於自注意力的多模態方向可行性。此模型可以識別出渲染樹元素多維度的意圖屬性信息,同時利用聚類算法將節點聚成交互意圖簇,可以爲後續的任務提供結構化決策信息。在標註數據較少的情況下仍體現了較好的準確率以及泛化能力。後續計劃通過擴大數據集、加強預訓練等方式繼續提升模型識別的精度。
回顧整個UI交互意圖理解探索歷程,先後經歷了“無監督/無類別的區域劃分”,“有監督針對UI節點分類”, “分類後聚類”, “利用識別結果進行測試用例編寫、執行”四個階段。目前在UI交互意圖提取上我們已探索出了較爲合適的方案,正進行實際業務落地,讓UI交互意圖識別能力融入當前大前端測試能力,在智能測試用例驅動、智能檢查等方向上取得實際應用收益。
7 展望
下面是幾個基於UI交互意圖理解能力開展的業務落地工作。
1. 智能探索性測試
當前App功能複雜,有大量可以操作的組件,無意識的探索效率太低,期望利用意圖識別結果,對當前測試場景的一些通用可操作組件執行有意義操作的自動化測試,並進行邏輯問題校驗。
2. 跨分辨率UI Diff及歸因
不同分辨率/設備下佈局存在差異,像素級比對無法識別不同分辨率下的UI Diff。使用交互意圖簇Diff 可以大大削弱像素位置的差異造成的干擾,支持跨分辨率的比較,凸顯Diff所需要關注的文本/圖像變化,並可利用意圖信息對結果進行結構化歸因。
3. 節點匹配選擇
利用意圖識別預訓練模型,支持節點匹配任務,實現泛化性較強的跨分辨率、跨技術棧、跨App的節點查找能力,與現有的基於XPath、Selector等的線性條件節點選擇模式形成互補。
在中長期來看,我們期望將UI交互意圖識別作爲大前端結構化信息提取的通用能力,在不同的業務領域進行如智能測試bot、終端測試標準化知識組織與覆蓋率評估、智能輔助測試用例編寫與生成等方向上持續探索、落地。
附錄
大模型時代下UI交互意圖理解能力的意義
目前業界內大模型主要存在兩種類型:大語言模型 [7] (LLM:僅支持文本模態輸入輸出)以及多模態大語言模型 [8] (MLLM:可以同時處理多種模態信息)。目前大語言模型具備比較良好的通用化邏輯理解能力,而多模態大語言模型能夠同時基於文本、圖像等模態信息完成理解、判斷,但整體的邏輯能力水平相比大語言模型有一定差距,在一些多模態任務上判斷、分析的精度尚不夠令人滿意。
基於這兩種大模型,在實際任務解決上有兩種相對應的主要模式:【LLM as Controller】 與 【MLLM cognize Everything】,UI交互意圖理解作爲一種垂直領域能力,在兩種模式中都具有相應的應用潛力。
LLM as Controller
該模式的核心思路是將垂直能力作爲工具,LLM作爲總控,利用其邏輯推理能力,通過自然語言理解目標,然後進行決策,編排、調用工具,完成任務。這種範式下的典型實例有HuggingGPT [9] 等。在這種範式下,LLM能夠與垂直能力優勢互補,更好的完成多領域任務。
以HuggingGPT項目爲例,其主要思想是將LLM作爲總控,將HuggingFace平臺上衆多的垂直能力模型作爲工具集,用戶可提出需求,LLM根據需求調用垂直能力。最後LLM根據垂直能力返回的結果生成滿足用戶需求的多模態內容。
可以看到在這個模式下,與其它的垂直工具能力類似,UI交互意圖理解能力可以作爲工具能力供LLM調用,更好的完成UI交互相關的任務。
MLLM Cognize Everything
多模態大語言模型出現了之後,讓我們看到了多模態任務通用化解決方案的曙光。具體到UI交互意圖識別任務中,我們嘗試使用多種MLLM直接進行UI交互意圖識別,總體來看MLLM已經具備不錯的識別能力,但是在具體的座標、內容分析方面上仍有偏差。 UI交互意圖識別模型可以通過以下兩種方式幫助MLLM在意圖識別任務上進行性能提升:
- 將UI交互意圖識別模型作爲頁面多模態信息Encoder,通過微調的方式提升意圖識別任務中的準確率。
這裏以MiniGPT爲例,介紹Encoder模式。
由上圖可知,多模態大語言模型中一般由每個模態對應的模塊來進行模態信息處理,如上圖中VIT [10] &Q-Former [11] 爲圖像模態處理部分,Vicuna [12] 是一種開源的LLM。UI交互意圖理解模型可以替換圖中VIT&Q-Former的位置,作爲交互意圖信息的處理預訓練Encoder與LLM結合進行多模態整合訓練,產出頁面分析來輔助多模態大語言模型在大前端質量保障中的應用。
- 將UI交互意圖識別模型做爲信息提取工具,將識別出的結構化信息加入Prompt中,幫助MLLM更精確的進行意圖識別。
總體而言,UI交互意圖識別是一種簡單輕量但效果不錯的垂直領域能力,只需簡單少量的訓練數據,即可實現在諸如跨App、跨技術棧、跨業務等複雜場景下準確識別多種交互意圖的能力。大模型領域日新月異,我們也將持續探索UI交互意圖識別能力與該領域技術的結合方式,發揮其最佳效果。
本文作者
詩雨,張雨,永祥等,均來自美團到店事業羣/平臺技術部/質量工程部。
參考文獻
- [1] UI交互意圖:用戶通過當前UI展示推斷出來的不同模塊的概念及交互功能。
- [2] 學術產出:Appaction: Automatic GUI Interaction for Mobile Apps via Holistic Widget Perception
- [3] F1 Score:精確率(Precision)和召回率(Recall)的調和平均值。
- [4] k-means:一種最初來自信號處理的矢量量化方法,旨在通過最小化簇內方差將 n 個觀測值劃分爲 k 個簇.
- [5] 蘭德係數:Rand W M. Objective criteria for the evaluation of clustering methods[J]. Journal of the American Statistical association, 1971, 66(336): 846-850.
- [6] Selector:此處指在基於規則的測試腳本中選取/定位UI組件的工具。
- [7] 大語言模型(LLM):依據維基百科的定義,大語言模型是一種能夠理解和生成自然語言的人工神經網絡,它們利用了海量的文本數據和複雜的神經網絡結構,可以通過預測下一個單詞或使用提示工程來完成各種語言任務,但也可能存在不準確性和偏見。從定義中可知,狹義的大語言模型的輸入和輸出僅支持文本模態的信息。ChatGPT-3.5、Meta的LLaMa,以及BLOOM、Anthropic的Claude等都屬於該類型。
- [8] 多模態大語言模型(MLLM):多模態大語言模型(英語:multimodal large language model,MLLM)是一種能夠處理多種類型的數據,如文本、圖像、音頻、視頻等,以實現通用的語言理解和生成的人工智能模型。MLLM利用了海量的多模態數據和複雜的神經網絡結構,可以在不同的模態之間進行轉換、融合和推理,以完成各種語言任務,如文本分類、問答、對話、圖像描述、視頻摘要等。從定義可知,多模態大語言模型可輸入或輸出多種模態的信息。GPT-4V、LLaVA、Minigpt-4等屬於該類型。
- [9] HuggingGPT:microsoft/JARVIS: JARVIS, a system to connect LLMs with ML community. Paper: https://arxiv.org/pdf/2303.17580.pdf (github.com)
- [10] VIT(Vision Transformer):VIT是一種基於Transformer的模型,最初提出用於圖像分類任務。與傳統的卷積神經網絡(CNN)不同,VIT將圖像看作是一個序列(或一組圖像塊),並使用Transformer的注意力機制來學習圖像的全局特徵表示。VIT將輸入圖像劃分爲一系列的圖像塊(patches),然後將這些圖像塊轉換爲向量形式,並將其輸入Transformer編碼器中。通過自注意力機制和多層感知機,VIT能夠學習到圖像的全局特徵表示,然後通過一個分類頭進行分類。
- [11] Q-Former(Quasi-Recurrent Transformer):Q-Former是一種融合了CNN和Transformer的模型,用於處理序列建模任務,例如語言建模和機器翻譯。Q-Former將CNN模塊和Transformer模塊結合在一起,以在序列中捕捉局部特徵和全局依賴關係。在Q-Former中,CNN模塊用於提取輸入序列的局部特徵表示,然後Transformer模塊用於學習全局依賴關係和序列建模。相比於傳統的Transformer模型,Q-Former在一些序列任務中可以獲得更好的性能,並且具有更高的計算效率。
- [12] Vicuna:lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and FastChat-T5. (github.com),具體的多模態訓練流程可以參考該項目論文。
閱讀更多
| 在美團公衆號菜單欄對話框回覆【2022年貨】、【2021年貨】、【2020年貨】、【2019年貨】、【2018年貨】、【2017年貨】等關鍵詞,可查看美團技術團隊歷年技術文章合集。