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技术,欢迎关注我哦!

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

相关文章
|
4月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
4月前
|
机器学习/深度学习 人工智能 人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
437 121
|
4月前
|
人工智能 人机交互 知识图谱
当AI学会“融会贯通”:多模态大模型如何重塑未来
当AI学会“融会贯通”:多模态大模型如何重塑未来
349 114
|
4月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
420 120
|
4月前
|
人工智能 安全 搜索推荐
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
331 117
|
4月前
|
人工智能 机器人 人机交互
当AI学会“看、听、懂”:多模态技术的现在与未来
当AI学会“看、听、懂”:多模态技术的现在与未来
347 117
|
4月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
1768 16
构建AI智能体:一、初识AI大模型与API调用
|
4月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
796 23
|
4月前
|
人工智能 Cloud Native 关系型数据库
云栖重磅|瑶池数据库:从云原生数据底座向“AI就绪”的多模态数据底座演进
瑶池数据库:从云原生数据底座向“AI就绪”的多模态数据底座演进

热门文章

最新文章