Megrez-3B-Omni:无问芯穹开源最强端侧全模态模型,支持理解图像、音频和文本三种模态数据

171 阅读4分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

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


🚀 快速阅读

  1. 全模态处理:支持图像、音频和文本三种模态数据的处理和理解。
  2. 高精度与速度:在多个测试集上超越34B模型,推理速度领先同精度模型300%。
  3. 多模态交互:支持语音与文本输入的自由切换,提供直观自然的交互体验。

正文(附运行示例)

Megrez-3B-Omni 是什么

公众号: 蚝油菜花 - Infini-Megrez

Megrez-3B-Omni 是无问芯穹推出的全球首个端侧全模态理解开源模型,能够处理图像、音频和文本三种模态数据。该模型在多个主流测试集上展现出超越34B模型的性能,推理速度领先同精度模型达300%。Megrez-3B-Omni 支持中文和英文语音输入,能够处理复杂的多轮对话,响应图片或文字的语音提问,实现模态间的自由切换,提供直观自然的交互体验。

Megrez-3B-Omni 通过软硬件协同优化策略,最大化利用硬件性能,提升推理速度,同时支持智能 WebSearch 功能,能够根据上下文智能判断是否需要进行网页搜索,提供更准确的回答。

Megrez-3B-Omni 的主要功能

  • 全模态理解:能处理和理解图像、音频和文本三种模态的数据。
  • 图像理解:在多个主流测试集上精度高,进行场景理解、OCR等任务,识别图像中的场景内容和提取文本信息。
  • 文本理解:在多个权威测试集上取得端上模型最优精度,处理文本信息,包括语言理解和生成。
  • 音频理解:支持中文和英文的语音输入,处理复杂的多轮对话场景,支持对输入图片或文字的语音提问。
  • 多模态交互:用户用语音指令与模型进行自然交互,实现语音与文本输入的自由切换。
  • 推理效率:用软硬件协同优化策略,实现硬件性能的最大化利用,推理速度领先同精度模型300%。
  • WebSearch功能:智能判断何时需要调用外部工具进行网页搜索,辅助回答用户的问题。

Megrez-3B-Omni 的技术原理

  • 模型压缩:基于模型压缩技术,将大型模型的能力压缩到更小的模型中,适应端侧设备的计算和存储限制。
  • 软硬件协同优化:基于深入理解硬件特性,优化模型参数与主流硬件的适配,实现硬件性能的最大化。
  • 多模态融合:集成不同模态的数据处理能力,实现跨模态的信息融合和理解。
  • 端侧推理加速:针对端侧设备优化推理算法,减少计算资源消耗,提升模型的推理速度。
  • 智能WebSearch调用:模型根据上下文智能判断是否需要进行网页搜索,提供更准确的回答。

如何运行 Megrez-3B-Omni

本地部署

环境安装和 vLLM 推理代码等部署问题请参考 Infini-Megrez-Omni

以下是一个使用 transformers 进行推理的例子,通过在 content 字段中分别传入 text、image 和 audio,可以图文/图音等多种模态和模型进行交互。

import torch
from transformers import AutoModelForCausalLM

path = "{{PATH_TO_PRETRAINED_MODEL}}"  # Change this to the path of the model.

model = (
    AutoModelForCausalLM.from_pretrained(
        path,
        trust_remote_code=True,
        torch_dtype=torch.bfloat16,
        attn_implementation="flash_attention_2",
    )
    .eval()
    .cuda()
)

# Chat with text and image
messages = [
    {
        "role": "user",
        "content": {
            "text": "Please describe the content of the image.",
            "image": "./data/sample_image.jpg",
        },
    },
]

# Chat with audio and image
messages = [
    {
        "role": "user",
        "content": {
            "image": "./data/sample_image.jpg",
            "audio": "./data/sample_audio.m4a",
        },
    },
]

MAX_NEW_TOKENS = 100
response = model.chat(
    messages,
    sampling=False,
    max_new_tokens=MAX_NEW_TOKENS,
    temperature=0,
)
print(response)

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

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