多模态融合新纪元:Ovis2.5 本地部署教程,实现文本、图像与代码的深度协同推理

-1

一、简介

Ovis2.5 旨在实现原生分辨率的视觉感知和增强的多模态推理。它集成了一个原生分辨率的视觉变换器(NaViT),可以处理原始、可变分辨率的图像,消除了固定分辨率切片的需要,并保留了精细细节和全局布局——这对于图表和图示等视觉密集型内容至关重要。

为了加强推理能力,Ovis2.5 不仅在链式思维(CoT)上进行了训练,还加入了反思性推理,包括自我检查和修订。 这种高级功能在推理时作为可选的 思考模式 提供,使用户能够在复杂输入上以延迟换取更高的准确性。

Ovis2.5-9B 在 OpenCompass 多模态评估套件中达到了 78.3 的平均得分(在参数少于 40B 的开源 MLLM 中处于 SOTA 水平),而轻量级的 Ovis2.5-2B 则得分为 73.9,延续了“小模型,大性能”的理念,适用于资源受限的场景。

1756277782127_image.png

二、环境部署

1.基础环境

4090*2,Ubuntu:22.04,cuda12.4.1

注:处理视频或者是大尺寸图像时,需要两张显卡;

2.使用vllm 推理

创建环境:

conda create -n ovis python=3.12 -y
conda activate ovis

安装vllm:

git clone https://github.com/vllm-project/vllm.git
cd vllm
VLLM_USE_PRECOMPILED=1 pip install .

3.模型下载

从 modelscope 下载模型:

modelscope download --model AIDC-AI/Ovis2.5-9B --local_dir ./AIDC-AI/Ovis2.5-9B

通过软链接从数据社区调用模型:

ln -s /root/sj-data/LargeModel/TextGeneration/AIDC-AI/Ovis2.5-9B/ /Ovis2.5-9B

4.vLLM 推理使用

vllm serve Ovis2.5-9B/ --trust-remote-code --served-model-name Ovis2.5-9B --tensor-parallel-size 2 --max-model-len 40960 --max-num-seqs 100

5.open-webui 使用模型

安装open-webui

pip install open-webui

启动open-webui,先在其它窗口启动 vllm

export HF_ENDPOINT=https://hf-mirror.com
export ENABLE_OLLAMA_API=False
export OPENAI_API_BASE_URL=http://127.0.0.1:8000/v1
export DEFAULT_MODELS="Ovis2.5-9B"
open-webui serve

第一次登录需要注册账号,邮箱随便填。

注:如果忘记账号密码导致无法登入界面,可以删除账号信息,选择重新注册:

(1)点击文件管理,输入 /root/miniconda3/lib/python3.12/site-packages/open_webui/data 的路径并进入

(2)删除 webui.db 这个文件,然后重新启动即可

注:只能输入图片识别,不能输入视频识别;

6.自定义webui

调用vllm 启动的模型服务接口实现:

主要实现以下功能:

  • 通过openai 接口调用vllm 服务,实现图像和视频输入(以关键帧的形式);
  • 输入视频时对于关键帧的调整,默认是自动根据视频时长调整关键帧数;
  • 模型连接状态展示。

    1756277809170_image.png

三、错误及解决

1.缺少依赖 flash_attn

1756277819076_image.png

解决方法:

wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.0.post2/flash_attn-2.7.0.post2+cu12torch2.4cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
pip install flash_attn-2.7.0.post2+cu12torch2.4cxx11abiFALSE-cp310-cp310-linux_x86_64.whl

2.PyTorch 版本和 flash-attention 库兼容性问题

这个错误 AttributeError: module 'torch.library' has no attribute 'wrap_triton' 通常表明您使用的 PyTorch 版本和 flash-attention 库(特别是其 Triton 操作)之间存在 兼容性问题 。

1756277828922_image.png

解决方法:安装兼容版本,torch==2.4.0 时,安装的 flash_attn-2.7.0.post2

四、自定义webui 源码

import subprocess
# subprocess.run('pip install flash-attn==2.7.0.post2 --no-build-isolation', env={'FLASH_ATTENTION_SKIP_CUDA_BUILD': "TRUE"}, shell=True)

import spaces

import argparse
import os
import re
import logging
import tempfile
import shutil
from typing import List, Optional, Tuple, Generator
from threading import Thread
from openai import OpenAI
import requests
import time

import gradio as gr
import PIL.Image
import torch
import numpy as np
from moviepy import VideoFileClip

logging.getLogger("httpx").setLevel(logging.WARNING)
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# --- OpenAI客户端配置 ---
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"  # 修改为你的API服务器地址

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

# 这应指向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值