| ArXiv | https://arxiv.org/abs/2507.05791 |
|---|---|
| OpenReview | https://openreview.net/forum?id=3VIPmz7iAi |
| Github Code | https://github.com/Yan98/GTA1 |
| Authors | Yan Yang, Dongxu Li, Yutong Dai, Yuhao Yang, Ziyang Luo, Zirui Zhao, Zhiyuan Hu, Junzhe Huang, Amrita Saha, Zeyuan Chen, Ran Xu, Liyuan Pan, Silvio Savarese, Caiming Xiong, Junnan Li |
| Affiliation | 1Salesforce AI Research 2The Australian National University3University of Hong Kong |
Key Differentiator
GUI ์์ด์ ํธ์์ ๋ถํ์ํ๊ฒ ๋ณต์กํด์ง RL ์ค๊ณ๋ฅผ ๊ฑท์ด๋ด๊ณ ,
test-time compute์ ์ ๋ ฌ๋ ๋ณด์๋ง์ผ๋ก๋ SOTA๊ฐ ๊ฐ๋ฅํจ์ ์คํ์ ์ผ๋ก ์ฆ๋ช
Why I chose this paper?
- ICLR 2026 Accept ๋ ผ๋ฌธ ๋ฆฌ์คํธ์์ GUI ๊ฒ์ ํ ์ฐพ์๋ดค๋ค.
Related Work
GUI Grounding ์ฐ๊ตฌ ํ๋ฆ
์ง๋ํ์ต(SFT, Supervised Fine-Tuning) ๊ธฐ๋ฐ ์ ๊ทผ
- UI ์์์ ์ค์ฌ ์ขํ ์์ธก ๋ฐฉ์
- ๊ณผ์ ์ ๋ ฌ(objective alignment) ๋ฌธ์
- ์ค์ ๊ณผ์ ๋ ์์ญ ๋ด๋ถ ์ ์ฒด๊ฐ ์ ๋ต
- SFT๋ ์ค์ฌ์์ ๋ฒ์ด๋๋ฉด ํจ๋ํฐ ๋ถ์ฌ
- ๊ณ ํด์๋ยท๋ณต์ก GUI์์ ์ผ๋ฐํ ์ฑ๋ฅ ์ ํ
๊ฐํํ์ต(RL, ํนํ GRPO) ๊ธฐ๋ฐ ์ ๊ทผ
- ์ผ๋ฐ์ ์ธ ์ค๊ณ ํจํด
- ๋ชจ๋ธ์ด โthinkingโ(Chain-of-Thought) ์์ฑ
- ์ดํ ์ขํ ์์ธก
- format reward + click reward ๊ฒฐํฉ
- ํ์ฅ ๋ฐฉํฅ
- ์ผ๋ถ ์ฐ๊ตฌ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค ์์ธก(IoU reward) ๊น์ง ์ถ๊ฐ
- ํ์ง๋ง, ๋ช
์์ โthinkingโ์ด GUI grounding ์ฑ๋ฅ์ ๊ฐ์ ํ์ง ์๊ฑฐ๋ ์คํ๋ ค ์ ํ๋๋ฅผ ์ ํดํ๋ ๊ฒฝ์ฐ ์กด์ฌ
- GUI grounding์ ์ถ๋ก ๋ฌธ์ (reasoning problem)๊ฐ ์๋๋ผ ์ ํํ ์์น ์์ธก(perception-aligned task) ์ฑ๊ฒฉ์ด๋ผ์
GUI Agent ์ํคํ ์ฒ ๊ณ์ด
Two-stage GUI Agent
planner: ๊ฐ๋ ฅํ ๋ฉํฐ๋ชจ๋ฌ LLM
grounding model: ์ขํ ์์ธก ๋ด๋น
โ ๋ค๋ฅธ ๋ชจ๋๋ก ๋ถ๋ฆฌ
- ์ฅ์
- ๋ชจ๋ํ๋ก ์ธํ ํด์ ์ฉ์ด์ฑ
- grounding ์ฑ๋ฅ ๊ฐ์ ์ฐ๊ตฌ์ ์ง์ค ๊ฐ๋ฅ
Native(end-to-end) GUI Agent
: perception, memory, planning, action์ ํ๋์ end-to-end ์์คํ ์ผ๋ก ํตํฉ
- long-context ์ ์ง, ๊ณผ๊ฑฐ ํ๋ ์ด๋ ฅ ๊ด๋ฆฌ๊ฐ ์ค์ํจ
- sliding window ํน์ ํ ์คํธ ์์ฝ ๊ธฐ๋ฐ trajectory ๊ด๋ฆฌ๋ก ์ํ.
- OSWorld ๊ฐ์ ๋์ ยทํ์ค์ ๋ฒค์น๋งํฌ์์ ๊ฐ๋ ฅํ ์ฑ๋ฅ
์ด ๋ ผ๋ฌธ์ ๋ฌธ์ ์ ๊ธฐ
- two-stage ๋ฐฉ์๋ ๋์ ํ๊ฒฝ์์ ์ถฉ๋ถํ ๊ฒฝ์๋ ฅ ์์
- end-to-end๊ฐ ์ ์ผํ ํด๋ฒ์ด๋ผ๋ ๊ฐ์ ์ ๋ํ ๋ฐ๋ก ์ ์
Method
- ๋ฌธ์ : GUI ํ๊ฒฝ์ ๋น๊ฐ์ญ์
- ์ ์ฒด ํ๋ ์ํ์ค๋ฅผ ์ฌ์ ์ lookaheadํ๊ธฐ ์ด๋ ค์
- ๋จ์ผ ํ๋ ์ ํ ์คํจ๊ฐ ๋์ ์ค๋ฅ๋ก ์ด์ด์ง ๊ฐ๋ฅ์ฑ ์กด์ฌ
GTA1์ Native๊ฐ ์๋ two-stage GUI agent ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ฉด์,
๊ฐ ๋จ๊ณ์ ์ทจ์ฝ์ ์ test-time scaling๊ณผ RL grounding์ผ๋ก ๋ณด์
- Planner (ํ๋ ์ ์ ์์ฑ๊ธฐ)
- ๋ฉํฐ๋ชจ๋ฌ ์ธ์ด ๋ชจ๋ธ ๊ธฐ๋ฐ
- ํ์ฌ UI ์ํ์ ์ฌ์ฉ์ ์ง์๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฐ์
๋ค์ ํ๋ ํ๋ณด(action proposal)๋ฅผ ์์ฑ
- Judge Model (ํ๋ ์ ํ๊ธฐ)
- planner๊ฐ ์์ฑํ ๋ณต์์ ํ๋ ํ๋ณด ์ค ํ๋๋ฅผ ์ ํ
- ํ์ฌ UI ์ํ + ์ฌ์ฉ์ ๋ชฉํ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๊ฐ
- Grounding Model (์ขํ ์์ธก๊ธฐ)
- ์ ํ๋ ํ๋์ ์ค์ GUI ์ขํ๋ก ๋ณํ
- ๊ฐํํ์ต์ผ๋ก ํ์ต๋ ํด๋ฆญ ๊ธฐ๋ฐ ๋ชจ๋ธ
- GTA1
- ๊ฐ ๋จ๊ณ์์ ๋ค์์ ํ๋ ์ ์์ ์ํ๋ง
- test-time์์๋ง ๊ณ์ฐ๋์ ์ฆ๊ฐ์์ผ ๊ณํ ์ ํ์ ๊ฐ๊ฑด์ฑ์ ํ๋ณด
- ์ค์ํ ์
- ํ์ต ๋จ๊ณ(training-time) ๋ณ๊ฒฝ ์ต์ํ
- inference ๋จ๊ณ(test-time)์์๋ง ํ์ฅ

Test-time Scaling for Planning
๋ฌธ์ : ๊ฐ ๋จ๊ณ์์ ๋จ ํ๋์ ํ๋ ์ ํ์ ์ด๊ธฐ ์ค๋ฅ๊ฐ ์ ์ฒด ์คํจ๋ก ์ด์ด์ง๋ ๊ตฌ์กฐ
๊ฐ ํ์์คํ ๋ง๋ค
- ํ๋ ์ ์์ ํ๋๊ฐ ์๋๋ผ ์ฌ๋ฌ ๊ฐ ์์ฑ
- test-time์์๋ง ๊ณ์ฐ๋์ ๋๋ ค ์ ํ ์์ ์ฑ ํ๋ณด
- Planner: ๋์ผ ์ ๋ ฅ์์ N๊ฐ์ ํ๋ ์ ์ ์ํ๋ง
- Judge model: ํ์ฌ UI ์ํ์ ์ฌ์ฉ์ ๋ชฉํ ๊ธฐ์ค, ํ๋ ํ๋ณด ๊ฐ ์๋์ ์ ํธ ๋น๊ต
- ์ ํ๋ ํ๋๋ง ์ค์ ์คํ
- ์ ์ฒด ์ํ์ค ์ต์ ํ๊ฐ ์๋ ํ์ฌ ๋จ๊ณ ์คํจ๋ฅผ ํผํ๋ ์ ํ ๋ฌธ์
- lookahead ์์ด๋ local robustness ํ๋ณด
- cascading failure ๊ฐ์
- ๋ค์ํ planner, ๋ชจ๋ธ ํฌ๊ธฐ์ ํธํ
- ์ค์ GUI ํ๊ฒฝ์์ ์์ ์ ์ํ
โ GUI planning์์๋ โ๋ฏธ๋๋ฅผ ์ ํํ ์์ธกํ๋ ๋ฅ๋ ฅโ๋ณด๋ค โํ์ฌ ๋จ๊ณ์์์ ์ ํ ์์ ์ฑโ์ด ๋ ์ค์ํ๋ค!
GTA1์ two-stage GUI ์์ด์ ํธ ๊ตฌ์กฐ๋ฅผ ์ ์งํ ์ฑ, ๊ฐ ๋จ๊ณ์์ ๋ค์์ ํ๋ ์ ์์ ์์ฑํ๊ณ test-time์์ ํ๋ณ ๋ชจ๋ธ๋ก ์ ํํ๋ ๋ฐฉ์์ผ๋ก, lookahead ์์ด๋ ๊ณํ ์์ ์ฑ์ ํ๋ณดํ๋ planning ์ ๋ต์ ์ ์
Reinforcement Learning for GUI Grounding
Data Cleaning
์ค์ ํ๋ฉด์์๋ ๋ ๋๋ง ์ง์ฐ, ํ์ด๋ฐ mismatch โ bbox๊ฐ ์๊ฐ์ ์ผ๋ก ์๋ฑํ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒฝ์ฐ๊ฐ ์์.
annotated bbox๊ฐ OmniParser๊ฐ ๊ฐ์งํ ์ค์ UI ์์๋ค ์ค ํ๋๋ผ๋ ์ถฉ๋ถํ ๊ฒน์น์ง ์์ผ๋ฉด ๊ทธ ๋ฐ์ดํฐ ์ํ์ ๋ฒ๋ฆฌ๊ธฐ (์คํ์์ ฯ = 0.3 ์ฌ์ฉํจ)

b_i : OmniPARSER๊ฐ ๊ฐ์งํ UI

Training
- Chain-of-Thought ์ ๊ฑฐ
- ๊ธฐ์กด RL grounding: ์ขํ ์์ธก ์ ์ reasoning / thinking / ์ค๋ช ํ ์คํธ ์์ฑ, format reward๋ก โ์๊ฐ์ ์ ์ผ๋์งโ๋ ํ๊ฐ
- thinking ํ ํฐ, format reward ์ ๊ฑฐ, ์ขํ ๊ฒฐ๊ณผ๋ก๋ง ํ์ต โ ์ถ๋ก ์ ๋ถํ์ํ ๋ ธ์ด์ฆ๋ค!
- ๋ฐ์ด๋ฉ ๋ฐ์ค, ์ค์ฌ์ ์์ธก, ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ ๋ณด์ ์ ๊ฑฐ
- ๊ธฐ์กด: ์ค์ฌ์ ํ๊ท ์์ค ์ฌ์ฉํ๊ฑฐ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค ์์ธก + IoU ๋ณด์ ์ถ๊ฐ โ โ์ ๋ต ๊ตฌ์กฐโ๋ฅผ ๋ชจ๋ธ์ ๊ฐ์
- ์ด ๋ ผ๋ฌธ: ๋ชจ๋ ์ ๊ฑฐ โ ๊ณผ์ ์ ์์ ์๋ ์ ์ฝ ์ ๊ฑฐ
- ๋จ์ผ ๋ณด์ ์ ํธ๋ก ๋จ์ํ๊ฒ ๋ณ๊ฒฝ

- ํด๋ฆญ ์ขํ๊ฐ ๋ชฉํ target UI ์์ ๋ด๋ถ๋ฉด ์ฑ๊ณต, ์ธ๋ถ๋ฉด ์คํจ
- GRPO(Group Relative Policy Optimization)
- ๊ธฐ์กด: reasoning ํ์ง ๋น๊ต์ ํ์ฉ + ์ธ์ด ์์ฑ ์ค์ฌ
- ์ํ๋ง๋ โK๊ฐ ์ขํ ์ค ํ๊ท ๋๋น ๋ ๋์ ํด๋ฆญ์ธ์งโ๋ง ํ๊ฐ

- ํด๋ฆญ ์ฑ๊ณต ์ฌ๋ถ๊ฐ ์ง์ ์ ์ฑ ๊ฐ์ ์ ๋ฐ์
GUI grounding = reasoning ๋ฌธ์ ๊ฐ ์๋๋ผ perception-aligned control ๋ฌธ์ ๋ค!
Planning + Grounding ์๋์ง
- Planning ๋จ๊ณ
- test-time scaling์ผ๋ก ์คํจ ๊ฐ๋ฅ์ฑ ๋ฎ์ ํ๋ ์ ํ
- Grounding ๋จ๊ณ
- RL ๊ธฐ๋ฐ ์ขํ ์์ธก์ผ๋ก ์ ํ๋ ํ๋์ ์คํ ์ฑ๊ณต๋ฅ ๊ทน๋ํ
- Planning์ test-time์์ ๋๊ฒ ๋ณด๊ณ ๊ณ ๋ฅด๊ณ ,
- Grounding์ ํ์ต ๋จ๊ณ์์ ๋จ์ํ๊ฒ ์ ๋ ฌํ๋ค๋ ์ ๋ต,
- lookahead ์๋ GUI ํ๊ฒฝ์์๋ ์์ ์ ์ธ ์์ด์ ํธ ๋์์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ค๊ณ
Experiment
| ๊ตฌ๋ถ | ๋ด์ฉ |
|---|---|
| ์์ด์ ํธ ๊ตฌ์กฐ | Two-stage GUI agent ๊ตฌ์กฐ ์ฌ์ฉ |
| Planner | ๋ฉํฐ๋ชจ๋ฌ LLM ๊ธฐ๋ฐ ํ๋ ์ ์ ์์ฑ ๋ชจ๋ธ |
| Planning ์ ๋ต | Test-time scaling ์ ์ฉ, ๋งค step๋ง๋ค ๋ณต์ action proposal ์ํ๋ง |
| Judge model | planner๊ฐ ์์ฑํ action proposal ์ค ์๋์ ์ ํธ ๊ธฐ์ค์ผ๋ก ์ ํ |
| Grounding model | RL ๊ธฐ๋ฐ ์ขํ ์์ธก ๋ชจ๋ธ, ํด๋ฆญ ์ฑ๊ณต ์ฌ๋ถ๋ง ์ฌ์ฉ |
| ๋ฐ์ดํฐ์ | Aria-UI ํฌํจ curated open-source GUI ๋ฐ์ดํฐ |
GTA1์ backbone
- GTA1-7B: UI-TARS-1.5-7B๋ฅผ base๋ก ์ด๊ธฐํํ ๋ค GRPO๋ก ํ์ตํ๋ ๊ตฌ์ฑ
- GTA1-32B: OpenCUA-32B๋ฅผ base๋ก ์ด๊ธฐํํ ๋ค GRPO๋ก ํ์ตํ๋ ๊ตฌ์ฑ
GUI Grounding Performance
RL ๊ธฐ๋ฐ grounding ์ค๊ณ ๊ฒ์ฆ (planning ์ํฅ ์์ด, ์์ grounding ์ฑ๋ฅ๋ง ๋น๊ต)
- thinking์ ์ ๊ฑฐํ์์๋ ์คํ๋ ค ์ ํ๋๊ฐ ๋ ๋์
- ๊ณ ํด์๋ UI์ผ์๋ก ์ฑ๋ฅ ๊ฒฉ์ฐจ ํ๋
โ GUI grounding์ reasoning ํ์ง์ด ์๋๋ผ ์ขํ ๊ฒฐ๊ณผ์ ์ง์ ์ ๋ ฌ๋ ๋ณด์ ์ค๊ณ๊ฐ ์ฑ๋ฅํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค!

End-to-End GUI Agent Performance
- ๊ธฐ์กด two-stage ์์ด์ ํธ ๋๋น ์์ฒญ๋ ํฅ์
- native๊ฐ ๊ฐํ๋ค๋ ์์ฆ ๋ถ์๊ธฐ๋ฅผ two-stage๋ก ์ด๊น

Ablation
- Click reward: ์์ธก ์ขํ๊ฐ ํ๊น ์์ bbox ์์ ๋ค์ด๊ฐ๋ฉด ์ฑ๊ณต ๋ณด์
- IoU reward: ํ๊น ์์ bbox ์์ฒด๋ฅผ ๋ง์ถ๋๋ก ์ ๋ํ๋ ๋ณด์
- Format reward: ์์ธก ์ ์ โthinkingโ์ ๊ฐ์ ํ๋ ๋ณด์(ํฌ๋งท ์ ์ฝ)
โ Click reward๋ง ์ฐ๋ ์กฐํฉ์ด ์ข๋ค!
Thinking ์ฐ๋๊ฒ ScreenSpot-V2์์ ์ข๊ธด ํจ.
Thinking์ด ์ฒด๊ณ์ reasoning ์ด๋์ด๋ผ๊ธฐ๋ณด๋ค๋ ํ์ต ๋ถ์์ ์ฑ์ด ๋์ด๋๋ค๋ผ๊ณ ํด์.
ํ์ง๋ง, dynamic ํ๊ฒฝ + trajectory/goal ์ ๊ณต์ด ํ์ํ AndroidWorld์์๋ task success rate๊ฐ 39% โ 44%๋ก ์ฆ๊ฐํ๋ค๋ ๊ด์ฐฐ (ํ๋ ์๊ณ ๋ง๋ก)

test-time scaling์์ action proposal ๊ฐ์ K๋ฅผ ๋๋ฆด ๋ ์ฑ๊ณต๋ฅ ์ด ์ด๋ป๊ฒ ๋ณํ๋์ง ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ฆผ ๊ตฌ์ฑ
- K ์ฆ๊ฐ์ ๋ฐ๋ผ ์ฑ๊ณต๋ฅ ์ด ์์นํ๋ ๊ตฌ๊ฐ ์กด์ฌ
- test-time compute๋ก robustness ํ๋ณด ์ฃผ์ฅ ๋ณด์ฌ์ฃผ๊ธฐ

Conclusion
์ง๋ฅํ GUI ์์ด์ ํธ ๊ตฌ์ถ์ ์ํ ํต์ฌ ๋์ ๋ ๊ฐ์ง๋ก ์ ๋ฆฌ
- ํฐ ํ๋ ๊ณต๊ฐ์์ ํจ๊ณผ์ ์ธ ๊ณํ(plan) ์ ํ ๋ฌธ์
- ๋ณต์กํ ์ธํฐํ์ด์ค์์ ์ ํํ ๊ทธ๋ผ์ด๋ฉ(grounding) ๋ฌธ์
- ์ ๋ต 1: Planning์ฉ test-time scaling
- ๋งค ์คํ ์์ ๋จ์ผ ์ ์์ ๊ณ ์ ํ์ง ์๊ณ ์ฌ๋ฌ action proposal์ ๋์ ์ํ๋ง
- ๋ฉํฐ๋ชจ๋ฌ LLM judge๊ฐ ๊ทธ์ค ๊ฐ์ฅ ์ ์ ํ ์ ์ ์ ํ
- ์ ๋ต 2: RL ๊ธฐ๋ฐ grounding
- ํ๊น ์์ ํด๋ฆญ ์ฑ๊ณต์ ์ง์ ๋ณด์ํ๋ ๋จ์ RL ์ต์ ํ
- ๊ธฐ์กด ๋ฐฉ์์ด ๊ฐ์ ํ๋ ๋ช ์์ โthinkingโ์ ์ฐํํ๋ ์ค๊ณ
- ํ์ค GUI grounding ๋ฒค์น๋งํฌ์์ SOTA ๋ฌ์ฑ
- planner์ ๊ฒฐํฉํ ์ค์ GUI task execution์์๋ ๊ฒฌ๊ณ ํ ๋์์ ํ์ธ
- ์ ๋ ์ ๋ต ๊ฒฐํฉ์ด โ๊ณํ ์์ ์ฑ + ๊ทธ๋ผ์ด๋ฉ ์ ๋ ฌโ์ ๋์์ ๋์ด์ฌ๋ฆฐ๋ค๋ ๋ฉ์์ง
Limitation & Future Work
grounding ๋ชจ๋ธ์ด ์๊ฐ์ ์ ํ์ด ์๋ โ์กฐ์, ํธ์งโ ์ฑ๊ฒฉ์ task์์๋ ์ฌ์ ํ ์ทจ์ฝ
๊ฐ์ธ์ ์ธ ์๊ฒฌ
์ด๊ฑด ๊ณ์ฐ๋์ ๋๋ฆฌ๊ณ , ์ ํ๋๋ฅผ ์ฌ๋ฆฐ Tradeoff
์ต๊ทผ์ ๋์จ MAI-UI๊ฐ ์๋์ ์ผ๋ก ์ด๊น.
Two-stage GUI agent๋ก๋ native GUI agent๋ฅผ ์ด๊ธด๋ค๋ ์ฆ๋ช ๋ฐ๋ก ๊นจ์ง.

OpenReview ์ ๋ฆฌ
๊ฐ์
- planning๊ณผ grounding์ ๊ฐ๊ฐ โ์ ๋ณต์กํ ํ์๊ฐ ์๋์งโ ์ค๋ํ ์
- thinking ์ ๊ฑฐ, click-only reward ๋ฑ ์ค๊ณ ์ ํ์ ๋ช ํ์ฑ
novelty๋ ๊ธฐ์ ์์ฒด๋ณด๋ค ์ค๊ณ ํ๋จ๊ณผ ์คํ์ ์ฆ๋ช ์ ์์
๋ฆฌ๋ทฐ์ด๋ค์ ์ธ์
- test-time scaling์ ๋ณธ์ง์ ์ผ๋ก computeโperformance tradeoff
- K ์ฆ๊ฐ์ ๋ฐ๋ผ ํ ํฐ ๋น์ฉยท์ง์ฐ(latency)์ด ์ฆ๊ฐ โ Dynamic K ํ์
dynamic UI(AndroidWorld ๋ฑ)์์๋ thinking์ด ์ผ๊ด๋๊ฒ ์ด๋์ ์ฃผ๋ ๊ฒฝํฅ ์กด์ฌ
- โthinking์ ํ์ ์๋คโ๊ฐ ์๋๋ผ
- ์ธ์ , ์ด๋ค ์กฐ๊ฑด์์ ํ์ํ์ง๊ฐ ์์ง ์ด๋ ค ์๋ ๋ฌธ์
- grounding ๋ชจ๋ธ์ด ์๊ฐ์ ์ ํ์ด ์๋ โ์กฐ์/ํธ์งโ ์ฑ๊ฒฉ์ task์์๋ ์ฌ์ ํ ์ทจ์ฝ
์ด ๋ ผ๋ฌธ์ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ์ํ๋ค๊ธฐ๋ณด๋ค, GUI ์์ด์ ํธ์์ ๋ถํ์ํ๊ฒ ๋ณต์กํด์ง ์ค๊ณ๋ฅผ ๊ฑท์ด๋ด๊ณ , test-time compute์ ์ ๋ ฌ๋ ๋ณด์๋ง์ผ๋ก๋ SOTA๊ฐ ๊ฐ๋ฅํจ์ ์คํ์ ์ผ๋ก ์ฆ๋ช ํ ์ฐ๊ตฌ๋ก ํ๊ฐ
Q&A
๋ ผ๋ฌธ Presentation ๋ฐํ ์ค ์ ๋๋ก ๋ต๋ณ ๋ชปํ Q&A
trajectory์ ์ด๋ฏธ์ง๊น์ง ์ฐ๋๊ฑด๊ฐ?
GTA1 ๋ชจ๋ธ์์๋ image๋ฅผ ์ฌ์ฉํ๋์ง ๋ ผ๋ฌธ์์ ์ ํํ ๋ช ์ํ์ง๋ ์์์ต๋๋ค.
Github Repository ํ์
GTA1 ๋ ํฌ๋ ์ฃผ๋ก ์ด๋ป๊ฒ ํ์ตํ ๊ฒ์ธ๊ฐ์ ๋ํ ๋ ํฌ ๊ธฐ๋ฐ์ด๋ผ ํด๋น ๋ด์ฉ์ด ์์ต๋๋ค.
์คํ๋ ค, OSWorld ์ชฝ ๋ ํฌ์ inference ํ์ผ์ด ๋ค์ด์์ด ๋ฐ๊ฒฌํ์ต๋๋ค.
OSWorld/mm_agents/gta1/gta1_agent.py
predictย ๋ฉ์๋ (๋ผ์ธ 1226-1432):
pythonself.actions.append([plan_code]) self.observations.append(obs) # obs์๋ screenshot (bytes)๊ฐ ํฌํจ๋จ self.thoughts.append(thought) self.observation_captions.append(observation_caption)
Planner์๊ฒ ์ ๋ฌย (๋ผ์ธ 1244-1298):
python# Determine which observations to include images for (only most recent ones) obs_start_idx = max(0, len(self.observations) - self.max_image_history_length) # Add all thought and action history for i in range(len(self.thoughts)): # For recent steps, include the actual screenshot if i >= obs_start_idx: messages.append({ "role": "user", "content": [{ "type": "image_url", "image_url": { "url": f"data:image/png;base64,{encode_image(self.observations[i]['screenshot'])}", "detail": "high" }, }] })
- ์ต๊ทผย
max_image_history_lengthย (๊ธฐ๋ณธ๊ฐ 5) ๊ฐ์ trajectory step์ ๋ํด์๋งย ์ค์ ์ด๋ฏธ์ง๋ฅผ ํฌํจ
- ์ด๋ฏธ์ง๋ย base64๋ก ์ธ์ฝ๋ฉ๋์ดย image_urlย ํํ๋ก ์ ์ก
- ์ค๋๋ history๋ ํ ์คํธ(observation caption)๋ง ํฌํจ
โ ๋ชจ๋ ์ด๋ฏธ์ง๋ ๋ฃ์ง ์๊ณ , ๊ธฐ๋ณธ๊ฐ 5๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ต๋๋ค.
๋ค๋ง ํ ์คํธ๋ก๋ ์ค๋๋ ํ์คํ ๋ฆฌ๊น์ง ๋ฃ์ต๋๋ค.
์ฐธ๊ณ ๋ก, ์ดํ ๋์จ MAI UI๋ ํ์ฌ ์ ์ธ ์ต๋ 2๊ฐ์ ์ด๋ฏธ์ง๊น์ง ๋ฃ๋ ๋ฏ ํฉ๋๋ค.
- ์ต๊ทผย
history_n - 1ย ๊ฐ์ ์ด๋ฏธ์ง๋ง ์ ํ
pythondefault_conf = { "history_n": 3, # ๊ธฐ๋ณธ๊ฐ: ์ต๊ทผ 3๊ฐ๋ง ... }
Chain of Thought๋ RL์์๋ง ๋นผ๋๊ฑด๊ฐ?
thinking token ๋ฑ์ ์ ๊ฑฐํ๋ค๊ณ ํ๊ฑด, RL ๋ฉ์๋ ์ค๋ช ์์๊ฐ ๋ง์ต๋๋ค.
RL๋ก ํ์ตํ๋ grounding model์ ์ถ๋ ฅ ๊ณต๊ฐ์์ thinking token ์ ๊ฑฐ

๊ทธ๋๋ก์ธ ๊ฒ
- planner๋ judge๊ฐ ๋ด๋ถ์ ์ผ๋ก reasoning์ ์ฐ๋ ๊ฒ
- inference ์ ํ ์คํธ reasoning์ ์ฐ๋ ๊ฒ
pythonthought_messages = f"Step {i+1} Thought:\n{self.thoughts[i]}" messages.append({ "role": "assistant", "content": [{ "type": "text", "text": thought_messages + "\n" + action_messages }] })
grpo์์๋ RL์์ ์ด๋ ๊ฒ ๋จ์ํ ์ขํ๋ง ์ถ๋ ฅ
pythonSYSTEM_PROMPT = ''' You are an expert UI element locator. Given a GUI image and a user's element description, provide the coordinates of the specified element as a single (x,y) point. The image resolution is height {height} and width {width}. For elements with area, return the center point. Output the coordinate pair exactly: (x,y) '''
format reward ํจ์ (ablation์ฉ, ์ด๊ฑธ ์ฌ์ฉํ๋ฉด ์ต์ ์ผ๋ก thinking๊น์ง ํด์ ํจ)
- ๋ ผ๋ฌธ์์๋ ์์ง ๋ณต์กํ task์์ planning์ ์ํด ํ์ํ ๊ฒฝ์ฐ๋ ์๋ค๊ณ ํจ.
pythondef format_reward(completions, **kwargs): """Reward function that checks if the completion has a specific format.""" pattern = r" <div class="think">.*?</div> \s*<answer>\(\d+,\s*\d+\)</answer>" # ...
๋๋์
์ฌํ๊น์ง ๋น์ฐํ๊ฒ ์ฌ๊ฒจ์ก๋ RL ๋ฉ์๋๋ฅผ ๋ถ์๋ ์ข์ ์์ด๋์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ํ, ๋ชจ๋ธ๊น์ง ๋ง๋ค์ด์ ๋ฐฐํฌํ๊ณ , ์ด ๋น์ SOTA์๊ธฐ ๋๋ฌธ์ ICLR ํํ์ ๋ถ์ ๊ฒ ๊ฐ๋ค.
๋ฌผ๋ก ๊ธ๋ฐฉ MAI-UI๊ฐ ์๋์ ์ผ๋ก ๋์ค๋ฉด์ ์์ฝ๊ฒ ๋์๊ณ , ์ด ๋ ผ๋ฌธ์์ ๋ชจ๋ธ์ ํ์ฉํด์ ๋ ๋ฐ์ ์ ํ์ง ๋ชปํ ๊ฒ ๊ฐ๋ค.
์ฌํ๊น์ง ๋น์ฐํ๊ฒ ์ฌ๊ฒจ์จ ๋ณต์กํ ๋ฉ์๋๋ฅผ ๊ฐ๋จํ๊ฒ ํจ์ผ๋ก์ ์คํ๋ ค ์ฑ๋ฅ์ ๋์ผ ์๋ ์๋ค๋ ์ข์ ์์ด๋์ด๋ฅผ ์๊ฒ ๋์ด ์ข์๋ค.
๋น์ฐํ๊ฒ ์ฌ๊ฒจ์ง๋ ๊ฒ์ ๋ฐ๊ฟ์ผ ๋ ธ๋ฒจํฐ ์๋ ๋ ผ๋ฌธ์ด ๋์ค๋ ๊ฒ ๊ฐ๋ค.