Aria-UI:港大联合 Rhymes AI 开源面向 GUI 智能交互的多模态模型,整合动作历史信息实现更加准确的定位

简介: Aria-UI 是香港大学与 Rhymes AI 联合开发的多模态模型,专为 GUI 智能交互设计,支持高分辨率图像处理,适用于自动化测试、用户交互辅助等场景。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 功能:Aria-UI 支持 GUI 元素定位、多模态输入处理、高分辨率图像处理等功能。
  2. 技术:基于纯视觉方法和多模态 MoE 模型,Aria-UI 能够处理多样化指令和动态上下文。
  3. 应用:适用于自动化测试、用户交互辅助、智能客服等多个场景。

正文(附运行示例)

Aria-UI 是什么

Aria-UI

Aria-UI 是香港大学与 Rhymes AI 联合推出的多模态模型,专为图形用户界面(GUI)定位任务设计。它采用纯视觉方法,不依赖于 HTML 或 AXTree 等辅助输入,通过大规模、多样化的数据合成流程,生成高质量的元素描述和指令样本,适应不同环境下的多样化指令。

Aria-UI 创新性地整合了动态动作历史信息,使用文本或文本-图像交错格式增强模型在多步任务场景中的定位能力。在包括离线和在线代理任务的广泛基准测试中,Aria-UI 均取得优异的性能,展现出强大的零样本泛化能力和跨平台适用性,成为通用 GUI 定位任务的有力解决方案。

Aria-UI 的主要功能

  • GUI 元素定位:将语言指令准确地映射到 GUI 中的目标元素,实现元素的精确定位,为后续的交互操作提供基础。
  • 多模态输入处理:处理包括 GUI 图像、文本指令、动作历史等多种模态的输入信息,充分理解和利用多模态数据中的丰富信息。
  • 多样化指令适应:基于大规模、多样化的数据合成流程生成的多样化指令样本,有效适应不同环境下的各种指令表达方式。
  • 动态上下文理解:整合动态动作历史信息,用文本或文本-图像交错格式,在多步任务场景中理解当前的动态上下文,为准确的元素定位提供重要参考。
  • 高分辨率图像处理:支持高达 3920×2940 的图像分辨率,将图像分割成小块处理,显著扩展可处理的图像尺寸范围。

Aria-UI 的技术原理

  • 纯视觉方法:采用纯视觉方法,直接从 GUI 图像中提取视觉特征,用视觉信息理解和定位目标元素。
  • 多模态 MoE 模型:基于 Aria 多模态 MoE(Mixture of Experts)模型构建,具有 3.9B 激活参数,擅长处理多模态数据。
  • 数据合成与训练:基于两阶段的数据合成流程,从 Common Crawl 和公开数据中生成高质量的元素描述和多样化指令样本,覆盖 Web、桌面和移动三大 GUI 环境,为模型训练提供大量、多样化的训练数据,增强模型对不同指令和元素的识别能力。
  • 上下文感知数据扩展:用公开的代理轨迹数据模拟具有上下文的定位任务,构建文本动作历史和文本-图像交错历史两种上下文设置,基于数据合成流程为轨迹数据中的所有定位步骤生成详细的逐步指令,让模型在动态环境中更好地理解和执行任务。
  • 超分辨率支持:将图像分割成小块并进行处理,支持高达 3920×2940 的图像分辨率,保持图像的细节和准确性。

如何运行 Aria-UI

1. 安装依赖

首先,安装所需的依赖包:

pip install transformers==4.45.0 accelerate==0.34.1 sentencepiece==0.2.0 torchvision requests torch Pillow
pip install flash-attn --no-build-isolation
# 为了更好的推理性能,可以安装 grouped-gemm,安装可能需要 3-5 分钟
pip install grouped_gemm==0.1.6

2. 使用 vllm 进行推理(推荐)

确保安装了最新版本的 vLLM,以便支持 Aria-UI:

pip install https://vllm-wheels.s3.us-west-2.amazonaws.com/nightly/vllm-1.0.0.dev-cp38-abi3-manylinux1_x86_64.whl

以下是一个使用 Aria-UI 和 vllm 的代码示例:

from PIL import Image, ImageDraw
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
import ast

model_path = "Aria-UI/Aria-UI-base"

def main():
    llm = LLM(
        model=model_path,
        tokenizer_mode="slow",
        dtype="bfloat16",
        trust_remote_code=True,
    )
    tokenizer = AutoTokenizer.from_pretrained(
        model_path, trust_remote_code=True, use_fast=False
    )
    instruction = "Try Aria."
    messages = [
        {
   
            "role": "user",
            "content": [
                {
   "type": "image"},
                {
   
                    "type": "text",
                    "text": "Given a GUI image, what are the relative (0-1000) pixel point coordinates for the element corresponding to the following instruction or description: " + instruction,
                }
            ],
        }
    ]
    message = tokenizer.apply_chat_template(messages, add_generation_prompt=True)
    outputs = llm.generate(
        {
   
            "prompt_token_ids": message,
            "multi_modal_data": {
   
                "image": [
                    Image.open("examples/aria.png"),
                ],
                "max_image_size": 980,  # [Optional] The max image patch size, default `980`
                "split_image": True,  # [Optional] whether to split the images, default `True`
            },
        },
        sampling_params=SamplingParams(max_tokens=50, top_k=1, stop=["<|im_end|>"]),
    )
    for o in outputs:
        generated_tokens = o.outputs[0].token_ids
        response = tokenizer.decode(generated_tokens, skip_special_tokens=True)
        print(response)
        coords = ast.literal_eval(response.replace("<|im_end|>", "").replace("```", "").replace(" ", "").strip())
        return coords

if __name__ == "__main__":
    main()

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
10月前
|
缓存 物联网 PyTorch
使用TensorRT LLM构建和运行Qwen模型
本文档介绍如何在单GPU和单节点多GPU上使用TensorRT LLM构建和运行Qwen模型,涵盖模型转换、引擎构建、量化推理及LoRA微调等操作,并提供详细的代码示例与支持矩阵。
2684 2
|
10月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
1344 120
|
10月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
10月前
|
存储 机器学习/深度学习 人工智能
54_模型优化:大模型的压缩与量化
随着大型语言模型(LLM)的快速发展,模型规模呈指数级增长,从最初的数亿参数到如今的数千亿甚至万亿参数。这种规模扩张带来了惊人的能源消耗和训练成本,同时也给部署和推理带来了巨大挑战。2025年,大模型的"瘦身"已成为行业发展的必然趋势。本文将深入剖析大模型压缩与量化的核心技术、最新进展及工程实践,探讨如何通过创新技术让大模型在保持高性能的同时实现轻量化部署,为企业和开发者提供全面的技术指导。
982 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
38_多模态模型:CLIP的视觉-语言对齐_深度解析
想象一下,当你看到一张小狗在草地上奔跑的图片时,你的大脑立刻就能将视觉信息与"小狗"、"草地"、"奔跑"等概念联系起来。这种跨模态的理解能力对于人类来说似乎是理所当然的,但对于人工智能系统而言,实现这种能力却经历了长期的技术挑战。多模态学习的出现,标志着AI从单一模态处理向更接近人类认知方式的综合信息处理迈出了关键一步。
1493 0
|
11月前
|
缓存 自然语言处理 JavaScript
抓紧上车,别再错过啦, Github 开源后台管理平台,Naive UI !!!
naive-ui-pro 是基于 Vue3 + Vite + TypeScript 的免费开源中后台模板,主打“路由插件化架构”,将权限、页签、缓存等功能拆解为可插拔模块,像搭积木一样灵活组装。内置 14+ 插件、Pro Naive UI 组件库与丰富示例,支持移动端适配、多主题、国际化,MIT 许可,开箱即用,助力高效开发。
1362 4
|
11月前
|
自然语言处理 机器人 图形学
腾讯混元图像3.0正式开源发布!80B,首个工业级原生多模态生图模型
腾讯混元图像3.0,真的来了——开源,免费开放使用。 正式介绍一下:混元图像3.0(HunyuanImage 3.0),是首个工业级原生多模态生图模型,参数规模80B,也是目前测评效果最好、参数量最大的开源生图模型,效果可对…
2141 2
腾讯混元图像3.0正式开源发布!80B,首个工业级原生多模态生图模型
|
11月前
|
分布式计算 测试技术 Spark
科大讯飞开源星火化学大模型、文生音效模型
近期,科大讯飞在魔搭社区(ModelScope)和Gitcode上开源两款模型:讯飞星火化学大模型Spark Chemistry-X1-13B、讯飞文生音频模型AudioFly,助力前沿化学技术研究,以及声音生成技术和应用的探索。
855 2

热门文章

最新文章