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

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: 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技术,欢迎关注我哦!

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

相关文章
|
7天前
|
人工智能 搜索推荐 Docker
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
DeepSeek R1 + LobeChat + Ollama:快速本地部署模型,创建个性化 AI 助手
2696 112
手把手教你使用 Ollama 和 LobeChat 快速本地部署 DeepSeek R1 模型,创建个性化 AI 助手
|
2天前
|
人工智能 Linux iOS开发
exo:22.1K Star!一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型
exo 是一款由 exo labs 维护的开源项目,能够让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群,支持多种大模型和分布式推理。
165 100
|
8天前
|
人工智能 物联网 开发者
Oumi:开源的AI模型一站式开发平台,涵盖训练、评估和部署模型的综合性平台
Oumi 是一个完全开源的 AI 平台,支持从 1000 万到 4050 亿参数的模型训练,涵盖文本和多模态模型,提供零样板代码开发体验。
166 43
Oumi:开源的AI模型一站式开发平台,涵盖训练、评估和部署模型的综合性平台
|
7天前
|
机器学习/深度学习 人工智能 计算机视觉
MILS:无需对LLM进行额外训练就能处理多模态任务,Meta AI提出零样本生成多模态描述方法
MILS 是 Meta AI 推出的零样本生成高质量多模态描述方法,支持图像、视频和音频的描述生成,无需额外训练。
91 34
MILS:无需对LLM进行额外训练就能处理多模态任务,Meta AI提出零样本生成多模态描述方法
|
3天前
|
机器学习/深度学习 人工智能 编解码
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
Lumina-Image 2.0 是上海 AI Lab 开源的高效统一图像生成模型,参数量为26亿,基于扩散模型和Transformer架构,支持多种推理求解器,能生成高质量、多风格的图像。
73 17
Lumina-Image 2.0:上海 AI Lab 开源的统一图像生成模型,支持生成多分辨率、多风格的图像
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
YuE:开源AI音乐生成模型,能够将歌词转化为完整的歌曲,支持多种语言和多种音乐风格
YuE 是香港科技大学和 M-A-P 联合开发的开源 AI 音乐生成模型,能够将歌词转化为完整的歌曲,支持多种音乐风格和多语言。
142 23
YuE:开源AI音乐生成模型,能够将歌词转化为完整的歌曲,支持多种语言和多种音乐风格
|
10天前
|
机器学习/深度学习 人工智能 API
Aligner:自动修正AI的生成结果,北大推出残差修正模型对齐技术
介绍北大团队提出的 Aligner 模型对齐技术,通过学习对齐答案与未对齐答案之间的修正残差,提升大语言模型的性能。
70 28
|
2天前
|
人工智能 Java 语音技术
【最佳实践系列】零基础上手百炼语音AI模型
阿里云百炼语音AI服务提供了丰富的功能,包括语音识别、语音合成、实时翻译等。通过`alibabacloud-bailian-speech-demo`项目,可以一键调用这些服务,体验语音及大模型的魅力,降低接入门槛。该项目支持Python和Java,涵盖从简单的一句话合成到复杂的同声传译等多个示例,助力开发者快速上手并进行二次开发。
|
24天前
|
人工智能 算法 前端开发
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
OmAgent 是 Om AI 与浙江大学联合开源的多模态语言代理框架,支持多设备连接、高效模型集成,助力开发者快速构建复杂的多模态代理应用。
182 72
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
|
10天前
|
人工智能 自然语言处理 搜索推荐
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人
78 23
【上篇】-分两篇步骤介绍-如何用topview生成和自定义数字人-关于AI的使用和应用-如何生成数字人-优雅草卓伊凡-如何生成AI数字人

热门文章

最新文章