第 10 篇/共 12 篇
AI 怎麼幫你操作手機?
AI 看手機截圖、決定下一步點哪裡,還會替自己打信心分數,沒把握時就停下來問你。
一句話回答
讓 AI 操作手機,核心是「看截圖、想下一步、輸出一個動作」不斷重複。它把螢幕當圖片看,輸出像「點座標 (454, 87)」「輸入文字」「往下捲」這樣的指令,再交給手機執行。上交大這章更進一步:讓 AI 替每個動作打一個信心分數,分數低就主動請人類接手。
為什麼值得知道
「AI 幫你訂餐廳、回訊息」這類展示,背後就是 GUI 智能體(GUI Agent,GUI 指圖形使用者介面)。它跟聊天機器人最大的不同是會「動手」。
會動手就代表會出錯。點錯一個按鈕,可能是多付一筆錢、刪掉一張照片。所以實用的關鍵不只是「會不會做」,還有「知不知道自己什麼時候不會做」,這也是你評估這類工具時最該問的問題。
白話原理
把 GUI 智能體想成一個坐在你旁邊、只能看螢幕的新同事:
| 步驟 | 新同事會做的事 | GUI 智能體對應 |
|---|---|---|
| 1 | 聽你說要做什麼 | 讀取任務文字(例:打開音樂 App 搜尋某首歌並播放) |
| 2 | 看螢幕 | 讀入目前的截圖 |
| 3 | 回想剛剛做過什麼 | 讀入「先前動作」紀錄 |
| 4 | 決定下一步 | 輸出一個動作,例如 CLICK 某座標 |
| 5 | 評估自己有沒有把握 | 給這個動作 1–5 分 |
教程的動作分兩類:基本動作有點擊(CLICK)、輸入(TYPE)、捲動(SCROLL);自訂動作有返回(PRESS_BACK)、回主畫面(PRESS_HOME)、確認(ENTER)和「做不到」(IMPOSSIBLE)。格式固定,模型好學也好檢查。
何時該問人:OS-Kairos 的想法
本章採用的 OS-Kairos 是一篇「自適應人機互動」研究。全自動容易闖禍,每步都問人又很煩。OS-Kairos 的做法是讓模型在輸出動作時,同時輸出自己的信心分數:
- 分數高:照做,繼續下一步
- 分數低:代表這一步可能超出它的能力範圍,交給人類決定
就像新同事說「這個我不確定,你看一下?」
教程裡實際做了什麼
工具與模型:多模態模型 Qwen2-VL-7B-Instruct(看得懂圖片的 70 億參數模型)、微調框架 LLaMA-Factory、OS-Kairos 開源資料集。
資料長什麼樣子:每筆有任務、截圖路徑、步驟清單、目前第幾步、先前動作、分數、模型動作(osatlas_action)、老師動作(teacher_action)和是否成功。
步驟:
- 下載 OS-Kairos 資料集與 Qwen2-VL-7B 權重,下載 LLaMA-Factory 原始碼。
- 寫一支轉換程式,把每筆資料包成對話格式(ShareGPT 格式)。使用者訊息是一段英文指示:列出可用動作、要求打 1–5 分,再填入任務、先前動作和截圖;助手回答是「action: 動作、score: 分數」。
- 在 LLaMA-Factory 的
data/dataset_info.json註冊這份資料集。 - 修改 Qwen2-VL 的全參數微調設定檔,主要設定如下(摘自原教程,節錄):
stage: sft
finetuning_type: full
deepspeed: examples/deepspeed/ds_z3_config.json
template: qwen2_vl
learning_rate: 1.0e-5
num_train_epochs: 5.0
bf16: true
也就是監督式微調(SFT)、更新全部參數、用 DeepSpeed ZeRO-3 分散到多張卡、訓練 5 輪。
- 用
llamafactory-cli train開始訓練。 - 用
llamafactory-cli webchat開網頁介面推理:丟測試集或自己的手機截圖加同格式指示,模型回答下一步動作和信心分數。
硬體:原文寫明訓練至少要 3 張 80GB A100(範例指令用 8 張卡);推理範例用 1 張卡,顯存需求原文沒寫。
注意:教程做到「模型輸出動作與分數」為止,沒有接上真的手機自動點擊,執行端原文沒有涵蓋。
動手試試
老實說,完整照做要多張 A100,筆電和免費 Colab 做不到。實際的入門順序:
- 先讀資料:到 OS-Kairos 的 GitHub 頁面看資料格式,感受「任務→步驟→動作」怎麼拆。
- 跑轉換程式:資料前處理只是 Python 讀寫 JSON,筆電就能跑。
- 體驗多模態模型:把手機截圖丟給 Qwen2-VL,請它描述畫面、指出按鈕位置。7B 模型推理仍需要有一定顯存的 GPU,硬體不夠就改用線上服務。
- 觀察信心分數:有機會跑微調後的模型,就刻意給它沒看過的 App,看分數會不會下降。
常見誤解
- 「AI 是讀 App 程式碼來操作」:本章是看截圖、輸出座標,像人用眼睛看螢幕。
- 「GUI 智能體就是全自動」:OS-Kairos 的重點恰好相反,是知道何時該問人。
- 「信心分數高就一定對」:分數是模型自己估的,沒見過的情況仍可能高分出錯。
- 「微調 7B 模型一張顯示卡就夠」:本章採全參數微調,原文要求至少 3 張 80GB A100。
延伸閱讀
- 本章原文:https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter9
- OS-Kairos 論文:https://arxiv.org/abs/2503.16465
- OS-Kairos 資料集與程式碼:https://github.com/Wuzheng02/OS-Kairos
- Qwen2-VL-7B-Instruct 模型:https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct
- LLaMA-Factory:https://github.com/hiyouga/LLaMA-Factory/
本文整理自上海交通大學《動手學大模型》第 9 章,原教程:https://github.com/Lordog/dive-into-llms/tree/main/documents/chapter9。內容由 MK 以自己的話解說,如有錯誤歡迎留言指正。
追蹤 MK,掌握最新 AI 工具應用
每週分享 GitHub 飆星實測、AI 工具教學與提示詞,短影片版都在社群。