阿里国际AI开源Ovis1.6,多项得分超GPT-4o-mini!

简介: 阿里国际AI团队提出了一种名为Ovis (Open VISion)的新型多模态大模型的架构。

01

引言

大型语言模型(LLM)近年来取得了长足进步,为通用人工智能(AGI)带来了曙光。这些模型展现出强大的文本理解和生成能力,但要真正接近人类智能的复杂性和多面性,LLM必须突破纯文本的限制,具备理解视觉信息的能力。为此,研究者们将目光投向了多模态大模型,旨在赋予模型感知和理解视觉信息的能力。

阿里国际AI团队提出了一种名为Ovis (Open VISion)的新型多模态大模型的架构。Ovis借鉴了LLM中的文本嵌入策略,引入了可学习的视觉嵌入表,将连续的视觉特征先转换为概率化的视觉token,再经由视觉嵌入表多次索引加权得到结构化的视觉嵌入。近期,阿里国际AI团队再次开源多模态大模型Ovis1.6,并在多模态权威综合评测基准OpenCompass上,在300亿以下参数开源模型中位居第一。Ovis1.6能胜任视觉感知推理、数学和科学、生活场景等多种多模态任务,尤其是在数学推理和视觉理解等多项任务中,得分甚至超过了闭源的GPT-4o-mini。

如何做到?阿里国际AI团队的核心思路是:从结构上对齐视觉和文本嵌入。如下图所示,Ovis包含三个组件:视觉tokenizer、视觉embedding表和LLM。

添加图片注释,不超过 140 字(可选)

Ovis借鉴了大语言模型中的文本embedding策略,引入了可学习的视觉embedding表,将连续的视觉特征先转换为概率化的视觉token,再经由视觉embedding表多次索引加权得到结构化的视觉embedding。

文本方面,Ovis沿用当前大语言模型的处理方式,文本tokenizer将输入文本转化为one-hot token,并根据文本embedding表查找到每个文本token对应的嵌入向量。

最后,Ovis将所有视觉embedding向量与文本embedding向量拼接起来,经由Transformer处理,完成多模态任务。

基于Ovis1.5,本次开源的Ovis1.6进一步增强了高分辨率图像处理能力,采用了更大、更多样化且质量更高的数据集进行训练,并通过遵循指令微调的DPO训练过程优化了训练流程。

Ovis MLLMs

ViT

LLM

Ovis1.6-Gemma2-9B

Siglip-400M

Gemma2-9B-It

架构方面,采用动态子图方案,能灵活应对不同分辨率图像特征,提升了模型处理复杂视觉任务的能力。

数据方面,Ovis1.6在训练中涵盖了多种类型的数据集,包括Caption、OCR、Table、Chart、Math等,确保模型在广泛的应用场景中都有出色表现。

训练策略方面,采用DPO等方案持续优化模型性能,增强了模型在生成文本和理解复杂指令方面的能力,使得模型在复杂任务上的表现进一步提升。

消融实验的结果还显示,在训练数据、模型参数、LLM和视觉底座都保持相同的情况下,与基于MLP连接器的多模态大模型架构相比,Ovis性能整体提升了8.8%。

模型链接:

https://modelscope.cn/models/AIDC-AI/Ovis1.6-Gemma2-9B

代码链接:

https://github.com/AIDC-AI/Ovis

论文链接:

https://arxiv.org/abs/2405.20797

体验链接:

https://modelscope.cn/studios/AIDC-AI/Ovis1.6-Gemma2-9B

02

模型体验

模型解读:

年报解读:

图片理解:

菜谱分析:

拍照解题:

03

模型推理

import torch
from PIL import Image
from modelscope import AutoModelForCausalLM
# load model
model = AutoModelForCausalLM.from_pretrained("AIDC-AI/Ovis1.6-Gemma2-9B",
                                             torch_dtype=torch.bfloat16,
                                             multimodal_max_length=8192,
                                             trust_remote_code=True).cuda()
text_tokenizer = model.get_text_tokenizer()
visual_tokenizer = model.get_visual_tokenizer()
# enter image path and prompt
image_path = input("Enter image path: ")
image = Image.open(image_path)
text = input("Enter prompt: ")
query = f'<image>\n{text}'
# format conversation
prompt, input_ids, pixel_values = model.preprocess_inputs(query, [image])
attention_mask = torch.ne(input_ids, text_tokenizer.pad_token_id)
input_ids = input_ids.unsqueeze(0).to(device=model.device)
attention_mask = attention_mask.unsqueeze(0).to(device=model.device)
pixel_values = [pixel_values.to(dtype=visual_tokenizer.dtype, device=visual_tokenizer.device)]
# generate output
with torch.inference_mode():
    gen_kwargs = dict(
        max_new_tokens=1024,
        do_sample=False,
        top_p=None,
        top_k=None,
        temperature=None,
        repetition_penalty=None,
        eos_token_id=model.generation_config.eos_token_id,
        pad_token_id=text_tokenizer.pad_token_id,
        use_cache=True
    )
    output_ids = model.generate(input_ids, pixel_values=pixel_values, attention_mask=attention_mask, **gen_kwargs)[0]
    output = text_tokenizer.decode(output_ids, skip_special_tokens=True)
    print(f'Output:\n{output}')

显存占用:

04

模型微调

我们使用ms-swift对Ovis1.6进行微调。ms-swift是魔搭社区官方提供的大模型与多模态大模型微调推理框架。

ms-swift开源地址:

https://github.com/modelscope/ms-swift

通常,多模态大模型微调会使用自定义数据集进行微调。在这里,我们将展示可直接运行的demo。我们使用Latex-OCR数据集:https://modelscope.cn/datasets/AI-ModelScope/LaTeX_OCR 进行微调。

在开始微调之前,请确保您的环境已准备妥当。

pip install ms-swift[llm]==2.* -U

微调脚本:

# 默认:微调 LLM, 冻结 vision encoder
CUDA_VISIBLE_DEVICES=0 swift sft \
  --model_type ovis1_6-gemma2-9b \
  --model_id_or_path AIDC-AI/Ovis1.6-Gemma2-9B \
  --sft_type lora \
  --dataset latex-ocr-print#5000
# Deepspeed ZeRO2
NPROC_PER_NODE=4 \
CUDA_VISIBLE_DEVICES=0,1,2,3 swift sft \
  --model_type ovis1_6-gemma2-9b \
  --model_id_or_path AIDC-AI/Ovis1.6-Gemma2-9B \
  --sft_type lora \
  --dataset latex-ocr-print#5000 \
  --deepspeed default-zero2

训练显存占用:

如果要使用自定义数据集,只需按以下方式进行指定:

# val_dataset可选,如果不指定,则会从dataset中切出一部分数据集作为验证集
    --dataset train.jsonl \
    --val_dataset val.jsonl \
{"query": "<image>55555", "response": "66666", "images": ["image_path"]}
{"query": "<image><image>eeeee", "response": "fffff", "history": [], "images": ["image_path1", "image_path2"]}
{"query": "EEEEE", "response": "FFFFF", "history": [["query1", "response1"], ["query2", "response2"]]}

训练loss图:

微调后推理脚本如下:

CUDA_VISIBLE_DEVICES=0 swift infer \
    --ckpt_dir output/ovis1_6-gemma2-9b/vx-xxx/checkpoint-xxx \
    --load_dataset_config true
# or merge-lora & infer
CUDA_VISIBLE_DEVICES=0 swift infer \
    --ckpt_dir output/ovis1_6-gemma2-9b/vx-xxx/checkpoint-xxx \
    --load_dataset_config true --merge_lora true

微调后模型对验证集进行推理的结果:


点击链接👇即可跳转模型详情~

https://modelscope.cn/studios/AIDC-AI/Ovis1.6-Gemma2-9B

目录
打赏
0
3
3
1
157
分享
相关文章
开源AI BI可视化工具-WrenAI
Wren AI 是一款开源的 SQL AI 代理,支持数据、产品及业务团队通过聊天、直观界面和与 Excel、Google Sheets 的集成获取洞察。它结合大型语言模型(LLM)与检索增强生成(RAG)技术,助力用户高效处理复杂数据分析任务。
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
99 6
推荐一款Python开源的AI自动化工具:Browser Use
Browser Use 是一款基于 Python 的开源 AI 自动化工具,融合大型语言模型与浏览器自动化技术,支持网页导航、数据抓取、智能决策等操作,适用于测试、爬虫、信息提取等多种场景。
177 2
推荐一款Python开源的AI自动化工具:Browser Use
高校实验实训课程开发:基于现有的硬件基础和开源能力研发最前沿的AI实验课程
更多基于学校现有硬件基础:企业需求场景的开发和发展,更加注重上层数据和应用,各类工具软件的出现,极大提升了各类硬件的应用价值。我们看到各类硬件厂商,想方设法把硬件卖给学校,但是很多硬件不是在那里尘封,就是寥寥无几的使用场景,我们希望基于学校现有的硬件基础去开发更多面向不同行业或专业的实验实训课程,物尽其用。基于学校现有的硬件,集约开发,极大降低硬件投入成本。
37 7
开源AI BI可视化工具-dataline
DataLine 是一个开源数据分析工具,支持自然语言交互,可快速生成图表与报告。数据默认存储本地,保障隐私安全,兼容 Postgres、MySQL、Excel 等多种数据源。提供可视化仪表盘、触发器及知识库功能,支持 Windows、Mac、Linux 平台运行,并可通过 Docker 部署,适合企业使用。
告别OOM!这款开源神器,如何为你精准预测AI模型显存?
在 AI 开发中,CUDA 显存不足常导致训练失败与资源浪费。Cloud Studio 推荐一款开源工具——AI 显存计算器,可精准预估模型训练与推理所需的显存,支持主流模型结构与优化器,助力开发者高效利用 GPU 资源。项目地址:github.com/st-lzh/vram-wuhrai
猫头虎 推荐:国产开源AI工具 爱派(AiPy)|支持本地部署、自动化操作本地文件的AI办公神器
爱派(AiPy)是一款国产开源AI工具,支持本地部署与自动化操作,助力数据处理与办公效率提升。基于Python Use理念,AiPy让AI直接控制本地文件,简化繁琐任务,提供高效智能的解决方案,适用于数据工程师、分析师及日常办公用户。
107 0
2025年颠覆闭源大模型?MonkeyOCR:这款开源AI文档解析模型,精度更高,速度更快!
还在依赖昂贵且慢的闭源OCR工具?华中科技大学开源的MonkeyOCR文档解析模型,以其超越GPT4o的精度和更快的推理速度,在单机单卡(3090)上即可部署,正颠覆业界认知。本文将深入解析其设计哲学、核心突破——大规模自建数据集,并分享实测体验与避坑指南。
419 0
阿里也出手了!灵码AI IDE问世
各位程序员小伙伴们,是不是还在为写代码头秃?别担心,阿里云带着它的通义灵码 AI IDE 来拯救你啦! 相信不少小伙伴已经在VSCode、JetBrains IDE等主流开发工具中安装过通义灵码这款插件。 通义灵码插件全网总下载量超 1500 万,开发者采纳代码行数超 30 亿且每月增速 20%-30%。 今天我们要说的不是这款插件,而是阿里刚出的“为AI而生的灵码IDE”。
162 0
当无人机遇上Agentic AI:新的应用场景及挑战
本文简介了Agentic AI与AI Agents的不同、Agentic无人机的概念、应用场景、以及所面临的挑战
133 5
当无人机遇上Agentic AI:新的应用场景及挑战

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等