HumanOmni:首个专注人类中心场景的多模态大模型,视觉与听觉融合的突破!

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: HumanOmni是业内首个理解以人为中心的场景,可以同时处理视觉信息、音频信息的多模态大模型。

01.模型介绍

HumanOmni是业内首个理解以人为中心的场景,可以同时处理视觉信息、音频信息的多模态大模型。

在人类中心场景中,理解和处理视觉与听觉信息至关重要。文章指出,当前方法大多关注于视觉-语言模型,但缺乏对音频输入的处理能力,导致对场景的理解不完整。

近期一些可以同时处理视频+音频的模型被提出,但是由于缺乏大规模专门的人类中心数据集以及缺乏针对人物场景的针对性网络架构,导致其对于人物中心场景的理解能力还有较大的提升空间。

论文主要创新:

  • 提出了HumanOmni,首个专注于人物中心场景理解的可以同时处理视觉+声音的多模态大语言模型。
  • 构建了包含240万个人类中心视频片段的数据集,使用多个先进的模型进行联合校验,生成超过1400万条指令,以促进对多样化人类中心场景的理解。
  • 人工对5w条视频片段进行标注,产生了超过10w条高质量指令,这些数据进一步提升了我们对于人物场景的理解能力。在情绪识别、面部描述、动作理解等多个人物相关的任务下,我们的HumanOmni均达到了sota的水平,同时我们实验验证了视觉+音频的联合输入相比单独使用视觉和单独使用音频的优势。

模型架构

  • 在视觉理解部分,利用三个不同的分支来分别处理面部相关问题、人体相关问题、环境交互相关问题。设计一个指令驱动的融合模块来利用用户的输入指令生成不同的权重,从而将这三个分支的视觉特征进行自适应融合。
  • 将视觉token、音频token、文本token结合后送入大语言模型,实现对于多模态信息的同步处理。

模型下载链接:

https://modelscope.cn/collections/HumanOmni-shipinrenwulijie-234cdc0e5fe247

https://huggingface.co/StarJiaxing/HumanOmni-7B

代码地址:

https://github.com/HumanMLLM/HumanOmni

模型训练

模型训练分为三个阶段

第一阶段是视觉能力构建,在这一阶段,我们利用生成的指令数据以及人工标注的指令数据构建了模型的视觉能力,其中我们更新了三个分支的视觉映射器的参数、指令驱动的融合模块的参数以及大语言模型的参数。

第二阶段是听觉能力发展,在这一阶段,我们基于第一阶段的大语言模型的参数,利用大规模音频数据进行训练,只更新音频映射器的参数,使得模型具备对语音的理解和解释能力。

第三阶段是跨模态交互集成阶段。这一阶段基于前两阶段的模型参数,利用结合视觉和音频数据,提升模型处理和关联不同模态信息的能力。

02.模型效果

情绪识别:

面部表情描述:

动作理解:

在这三个人物理解相关的任务上,我们的HumanOmni均达到了SOTA的水平。

ASR:

在ASR任务上,在Omni模型中,达到了先进的水平。

我们也对模型中不同模态的作用进行了分析:

该表格说明了HumanOmni理解了不同模态的信息,模型可以通过不同模态的信息来完成不同类型的任务。

03.模型推理

我们开源了推理代码,只需执行inference.py即可:

import os
import argparse
from humanomni import model_init, mm_infer
from humanomni.utils import disable_torch_init
from transformers import BertTokenizer
os.environ['TRANSFORMERS_OFFLINE'] = '1'
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
def main():
    parser = argparse.ArgumentParser(description="HumanOmni Inference Script")
    parser.add_argument('--modal', type=str, default='video_audio', help='Modal type (video or video_audio)')
    parser.add_argument('--model_path', type=str, required=True, help='Path to the model')
    parser.add_argument('--video_path', type=str, required=True, help='Path to the video file')
    parser.add_argument('--instruct', type=str, required=True, help='Instruction for the model')
    args = parser.parse_args()
    # 初始化BERT分词器
    bert_model = "bert-base-uncased"
    bert_tokenizer = BertTokenizer.from_pretrained(bert_model)
    # 禁用Torch初始化
    disable_torch_init()
    # 初始化模型、处理器和分词器
    model, processor, tokenizer = model_init(args.model_path)
    # 处理视频输入
    video_tensor = processor['video'](args.video_path)
    # 根据modal类型决定是否处理音频
    if args.modal == 'video_audio' or args.modal == 'audio':
        audio = processor['audio'](args.video_path)[0]
    else:
        audio = None
    # 执行推理
    output = mm_infer(video_tensor, args.instruct, model=model, tokenizer=tokenizer, modal=args.modal, question=args.instruct, bert_tokeni=bert_tokenizer, do_sample=False, audio=audio)
    print(output)
if __name__ == "__main__":
    main()

输入参数分别为

modal,控制使用的模态,这里可以选择video_audio(使用视觉+声音),video(仅使用视觉),audio(仅使用声音)。我们推荐同时使用视觉+声音。

model_path,模型的路径。

video_path,视频的路径。

instruct,用户的指令。

我们的模型可以通过modelscope和huggingface进行获取。

04.模型微调

我们开放了模型微调的代码,供开发者使用我们的模型在数据集上进行微调。我们提供的方式是基于HumanOmni-Video(一阶段)和HumanOmni-Audio(二阶段)的参数,进行跨视觉和音频模态的微调。

torchrun --nnodes $WORLD_SIZE \
    --nproc_per_node $NPROC_PER_NODE \
    --master_addr=$MASTER_ADDR \
    --master_port=$MASTER_PORT \
    --node_rank $RANK \
    humanomni/train_flash_attn.py \
    --deepspeed scripts/zero3.json \
    --model_type HumanOmni_qwen2 \
    --model_path /mnt/data/jiaxing.zjx/code/HumanOmni/HumanOmni_7B_Video/ \
    --vision_tower google/siglip-so400m-patch14-384 \
    --audio_tower openai/whisper-large-v3 \
    --mm_projector_type  all_in_one \
    --mm_tunable_parts "mm_mlp_adapter,audio_projector,mm_language_model" \
    --pretrain_audio_mlp_adapter /mnt/data/jiaxing.zjx/code/HumanOmni/HumanOmni_7B_Audio/audio_projector.bin \
    --data_path   ./yamls/oryx_audio.yaml \
    --data_folder / \
    --mm_vision_select_layer -2 \
    --image_aspect_ratio pad \
    --num_frames 32 \
    --bf16 True \
    --tf32 True \
    --fp16 False \
    --output_dir ${OUTP_DIR}/${WANDB_PROJECT}/finetune_${RUN_NAME} \
    --num_train_epochs 1 \
    --per_device_train_batch_size $LOCAL_BATCH_SIZE \
    --per_device_eval_batch_size 4 \
    --gradient_accumulation_steps $GRADIENT_ACCUMULATION_STEPS \
    --evaluation_strategy "no" \
    --save_strategy "steps" \
    --save_steps 500 \
    --save_total_limit 99 \
    --learning_rate 2e-5 \
    --weight_decay 0. \
    --warmup_ratio 0.03 \
    --lr_scheduler_type "cosine" \
    --logging_steps 1 \
    --model_max_length 2048 \
    --gradient_checkpointing True \
    --mm_use_x_start_end True \
    --dataloader_num_workers 4 \
    --report_to tensorboard \
    --run_name $RUN_NAME \

当然用户也可以基于我们最终的HumanOmni模型进行微调。取决于用户的数据量以及数据的相关程度。

05.效果展示

我们分别在电影片段、特写视频、实拍视频三个人物场景下测试了我们的模型的理解能力。

电影片段:

https://live.csdn.net/v/466486

User:What's the major emotion?
HumanOmni:angry.
User:What's the major facial expression?
HumanOmni:frown.
User:Desribe the woman.
HumanOmni:The woman has long brown hair and is wearing a pink top with a dark cardigan.
  
User:Please describe the major action in detail.
HumanOmni:The woman is frowning and shaking her head, indicating that she is angry. She is also gesturing with her hands as if she is explaining something or emphasizing a point.
User:What did the woman say?
HumanOmni:The woman said "Of course we object! I object, Steve!"



特写视频

https://live.csdn.net/v/466487

User:What's the major emotion?
HumanOmni:happy.
User:What's the major facial expression?
HumanOmni:smile.
User:Desribe the woman in detail.
HumanOmni:The woman in the video has blonde hair, is wearing a black top, and is smiling.
User:What did the woman say?
HumanOmni:The woman said "Dogs are sitting by the door."

实拍视频

https://live.csdn.net/v/466488

User:描述一下视频中男子的外貌穿着.
HumanOmni:视频中的男性有短的黑发,配戴圆框眼镜。他穿了一件棕色的毛大衣,内里是白色的.
User:视频中男子说了什么内容?
HumanOmni:男子说他穿什么颜色的衣服,现在处于什么环境,今天的天气怎么样.
User:视频中男子有什么情绪吗?
HumanOmni:没有情绪。

我们在三类视频下,分别测试了模型对于主要依靠视觉内容进行回答的问题(外貌描述),主要依靠音频内容进行回答的问题(说话内容),依靠音视频共同回答的问题(情绪理解)的效果。我们的HumanOmni均有非常稳定且准确的输出。

点击链接即可跳转模型链接~

HumanOmni 人物音视频理解


目录
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
GSPO:Qwen让大模型强化学习训练告别崩溃,解决序列级强化学习中的稳定性问题
这是7月份的一篇论文,Qwen团队提出的群组序列策略优化算法及其在大规模语言模型强化学习训练中的技术突破
609 0
GSPO:Qwen让大模型强化学习训练告别崩溃,解决序列级强化学习中的稳定性问题
|
2月前
|
存储 机器学习/深度学习 缓存
阿里云AirCache技术实现多模态大模型高效推理加速,入选国际顶会ICCV2025
阿里云研发的AirCache技术被计算机视觉顶会ICCV2025收录,该技术通过激活跨模态关联、优化KV缓存压缩策略,显著提升视觉语言模型(VLMs)的推理效率与存储性能。实验表明,在保留仅10%视觉缓存的情况下,模型性能下降小于1%,解码延迟最高降低66%,吞吐量提升达192%。AirCache无需修改模型结构,兼容主流VLMs,已在教育、医疗、政务等多个行业落地应用,助力多模态大模型高效赋能产业智能化升级。
244 1
|
2月前
|
人工智能 运维 算法
通义灵码软件工程大模型获顶会最高奖!
近日,软件领域国际顶会ISSTA 2025(International Symposium on Software Testing and Analysis)公布最高奖项-杰出论文奖——「通义灵码软件工程大模型SWE-GPT」成为唯一获得该奖项的企业论文
|
3月前
|
编解码 自然语言处理 安全
📣通义大模型新成员Qwen-VLo,重磅上线,它实现了从“看懂”世界到“描绘”世界
通义千问团队推出全新多模态统一理解与生成模型Qwen VLo,具备强大的图像理解与生成能力。它不仅能“看懂”图像内容,还能基于理解进行高质量再创造,实现从感知到生成的跨越。支持开放指令编辑、多语言交互及复杂任务处理,适用于图像生成、风格迁移、检测标注等多种场景。
713 0
|
1月前
|
人机交互 API 开发工具
基于通义多模态大模型的实时音视频交互
Qwen-Omni是通义千问系列的全新多模态大模型,支持文本、图像、音频和视频的输入,并输出文本和音频。Omni-Realtime服务针对实时交互场景优化,提供低延迟的人机交互体验。
326 23
|
29天前
|
传感器 机器学习/深度学习 监控
【图像融合】差异的高斯:一种简单有效的通用图像融合方法[用于融合红外和可见光图像、多焦点图像、多模态医学图像和多曝光图像](Matlab代码实现)
【图像融合】差异的高斯:一种简单有效的通用图像融合方法[用于融合红外和可见光图像、多焦点图像、多模态医学图像和多曝光图像](Matlab代码实现)
|
2月前
|
机器学习/深度学习 人工智能 自动驾驶
AI Agent多模态融合策略研究与实证应用
本文从多模态信息融合的理论基础出发,构建了一个结合图像与文本的AI Agent模型,并通过PyTorch代码实现了完整的图文问答流程。未来,多模态智能体将在医疗、自动驾驶、虚拟助手等领域展现巨大潜力。模型优化的核心是提升不同模态的协同理解与推理能力,从而打造真正“理解世界”的AI Agent。
AI Agent多模态融合策略研究与实证应用
|
2月前
|
数据采集 编解码 人工智能
Gemma 3n正式版开源:谷歌全新端侧多模态大模型,2GB 内存就能跑,重点提升编码和推理能力!
6月底,Google正式开源发布了全新端侧多模态大模型 Gemma 3n!相较此前的预览版,最新的 Gemma 3n 完整版进一步提升性能表现,支持在 2GB 内存的硬件上本地运行,重点提升了编码和推理方面的能力。
356 1

热门文章

最新文章