多模态实时交互大模型浦语·灵笔 2.5 OmniLive开源:能看、能听、会记、会说!

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 2024年12月12日,多模态实时交互大模型书生·浦语灵笔2.5-OL(InternLM-XComposer2.5-OmniLive)开源,该模型可以通过视觉和听觉实时观察和理解外部世界,自动形成对观察到内容的长期记忆,并可通过语音与人类用户进行对话交谈,提供更自然的大模型交互体验。

01.前言

2024年12月12日,多模态实时交互大模型书生·浦语灵笔2.5-OL(InternLM-XComposer2.5-OmniLive)开源,该模型可以通过视觉和听觉实时观察和理解外部世界,自动形成对观察到内容的长期记忆,并可通过语音与人类用户进行对话交谈,提供更自然的大模型交互体验。

书生·浦语灵笔首发于2023年10月,经过历次迭代,已具备图文理解、图文混合创作、超高分辨率图像分析、超长多模态上下文等多项能力,获得了开源社区的广泛关注和好评,全系列模型累计下载量超过200万次。

书生·浦语灵笔2.5-OL基于书生·浦语2.5大语言模型(InternLM 2.5)研发,采用了多模块通专融合的架构方案,通过多模态实时感知及记忆编码的快系统和多模态复杂推理大模型的慢系统协同,实现多模态实时交互功能。

技术报告地址:

https://github.com/InternLM/InternLM-XComposer/blob/main/InternLM-XComposer-2.5-OmniLive/IXC2.5-OL.pdf

开源模型地址:

https://modelscope.cn/models/Shanghai_AI_Laboratory/internlm-xcomposer2d5-ol-7b

代码仓库地址:

https://github.com/InternLM/InternLM-XComposer/tree/main/InternLM-XComposer-2.5-OmniLive

在科幻电影畅想的未来世界中,AI助手发挥着辅助人类的重要作用,例如:《流浪地球》中的MOSS、《钢铁侠》中的J.A.R.V.I.S.等。这些AI助手不仅具有强大的知识和思考能力,还可以实时感知外部环境变化,记住观察到的事物细节,与人类自然对话交流,并适时地为人类提供实际帮助。

在现实应用中,具有实时视频语音交互功能的多模态大模型,可以让具身机器人、可穿戴智能硬件、移动设备更好地感知世界进而服务人类,具有广阔的应用前景。



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

书生·浦语灵笔2.5-OL支持实时视觉感知和语音对话,还创新地提出了多模态长期记忆的功能。通过分别设计多模态实时交互大模型中的感知、记忆和思考功能模块,可实现并发的世界感知、长短期记忆、多模态思考三项核心功能,并提供了完整的系统协同和集成方案。

目前,书生·浦语灵笔2.5-OL已完全开源了模型参数、系统集成推理和前后端应用部署的全套方案,支持免费商用申请。

书生·浦语灵笔2.5-OL的整体架构和三个核心模块的具体设计如下:



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

感知模块:

实时感知音频、视频输入,对音频信号进行语音识别和音频分类,对视觉信号抽取视觉特征:

  • 音频感知:研究人员训练了一个轻量的音频多模态大模型,实时监听输入的音频流,同时进行语音识别和音频分类,理解人类语音内容和识别背景声音。
  • 视觉感知:通过视觉编码器实时抽取视觉特征。

记忆模块

持续对输入的视觉特征进行多层级的记忆压缩,不断进行视觉记忆编码压缩,支持根据指令对视觉记忆的高效检索。

  • 短时记忆压缩:对短期视频片段内进行记忆压缩,形成精确的短期记忆。
  • 长期记忆压缩:对短期记忆进一步压缩,形成高压缩比的长期记忆。
  • 记忆查询:根据指令查询长期记忆,召回指令相关的短期记忆片段,用于思考模块的多模态理解。

思考模块

判断语音输入是否为需要响应的用户指令,避免误触发影响使用体验。对于需要影响的用户需求,结合指令查询视觉记忆,并回答问题。

  • 判断用户指令是否需要响应。
  • 调用记忆模块查询历史视觉记忆,用于多模态理解和推理, 并回答用户问题。
  • 调用外部语音合成模块合成最终语音输出。

书生·浦语灵笔2.5-OL 的系统流程设计如下:



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

前端

  • 前端使用JavaScript开发,可启用摄像头和麦克风捕捉视频和音频流输入,并将其推送到SRS服务器,同时与后端建立WebSocket连接,监听音频输出和中断信号。
  • 前端在接收到音频输出时播放音频,接收到中断信号时暂停音频播放并丢弃待处理的音频。

SRS服务器

  • SRS(Simple Realtime Server)是一款简单高效的实时音视频服务器,负责接收和传输音频流、视频流数据。

后端服务器

  • 后端与前端建立WebSocket连接后,将从SRS服务器拉取流媒体,并启动独立进程分别读取音频和视频。
  • 音频进程持续读取音频流并检测语音的开始和结束:
  • 检测到语音活动开始时,后端向前端发送中断信号以暂停当前播放的音频,同时向视频进程发送备份信号保存当前记忆状态(记忆快照)。
  • 检测到语音活动结束时,语音分类和识别进程对音频进行背景音分类和语音识别,并将结果送入到大语言模型待处理队列。
  • 视频进程读取视频帧并保存到视频帧队列。记忆进程负责识别、提取并存储记忆,并在收到语音检测进程的备份信号后保存当前记忆状态以便后续检索。
  • 大语言模型进程判断待处理的指令是否需要模型响应,并根据检索到的记忆对于需要响应的指令进行文字回复。
  • 语音合成进程将把文字回复结果转换为音频输出并发送到前端。

02.模型推理

安装ms-swift

!pip install git+https://github.com/modelscope/ms-swift.git

音频理解推理代码

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
from swift.llm import PtEngine, InferRequest, RequestConfig
import torch
engine = PtEngine('Shanghai_AI_Laboratory/internlm-xcomposer2d5-ol-7b:audio', torch_dtype=torch.float16)
request_config = RequestConfig(max_tokens=512)
resp_list = engine.infer([InferRequest(messages=[{'role': 'user', 'content': '<audio>Detect the language and recognize the speech.'}],
                                       audios=['https://modelscope-open.oss-cn-hangzhou.aliyuncs.com/images/chinese.mp3'])])
print(f'response: {resp_list[0].choices[0].message.content}')

视觉理解推理代码

import torch
from modelscope import AutoModel, AutoTokenizer
import os
torch.set_grad_enabled(False)
from modelscope import snapshot_download
model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm-xcomposer2d5-ol-7b')
model_dir = os.path.join(model_dir, 'base')
# init model and tokenizer
model = AutoModel.from_pretrained(model_dir, torch_dtype=torch.bfloat16, trust_remote_code=True).cuda().eval().half()
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
model.tokenizer = tokenizer
query = 'Analyze the given image in a detail manner'
image = ['cat.png']
with torch.autocast(device_type='cuda', dtype=torch.float16):
    response, _ = model.chat(tokenizer, query, image, do_sample=False, num_beams=3, use_meta=True)
print(response)

显存占用



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

03.模型微调

我们使用ms-swift对internlm-xcomposer2d5-ol-7b进行微调。ms-swift是魔搭社区官方提供的大模型与多模态大模型微调部署框架,支持400+大模型和100+多模态大模型。

ms-swift开源地址:

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

在这里,我们将展示可直接运行的demo,并给出自定义数据集的格式。

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

git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

base微调脚本:

CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model Shanghai_AI_Laboratory/internlm-xcomposer2d5-ol-7b:base \
    --train_type lora \
    --dataset modelscope/coco_2014_caption:validation#20000 \
    --num_train_epochs 1 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules attention.wqkv attention.wo feed_forward.w1 feed_forward.w2 feed_forward.w3 \
    --gradient_accumulation_steps 16 \
    --eval_steps 50 \
    --save_steps 50 \
    --save_total_limit 5 \
    --logging_steps 5 \
    --max_length 2048 \
    --output_dir output \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4

自定义数据集格式如下(system字段可选),只需要指定`--dataset `即可:

{"messages": [{"role": "system", "content": "你是个有用无害的助手"}, {"role": "user", "content": "<image>图片中是什么"}, {"role": "assistant", "content": "一个可爱的小猫"}], "images": ["/xxx/x.jpg"]}
{"messages": [{"role": "system", "content": "你是个有用无害的助手"}, {"role": "user", "content": "<video>视频中是什么"}, {"role": "assistant", "content": "一只可爱的狗狗在草地上奔跑"}], "videos": ["/xxx/x.mp4"]}

训练显存资源:



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

audio微调脚本:

CUDA_VISIBLE_DEVICES=0 \
swift sft \
    --model Shanghai_AI_Laboratory/internlm-xcomposer2d5-ol-7b:audio \
    --train_type lora \
    --dataset speech_asr/speech_asr_aishell1_trainsets:validation#20000 \
    --num_train_epochs 1 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --learning_rate 1e-4 \
    --lora_rank 8 \
    --lora_alpha 32 \
    --target_modules all-linear \
    --freeze_vit true \
    --gradient_accumulation_steps 16 \
    --eval_steps 50 \
    --save_steps 50 \
    --save_total_limit 5 \
    --logging_steps 5 \
    --max_length 2048 \
    --output_dir output \
    --warmup_ratio 0.05 \
    --dataloader_num_workers 4

自定义数据集格式如下(system字段可选),只需要指定`--dataset `即可:

{"messages": [{"role": "system", "content": "你是个有用无害的助手"}, {"role": "user", "content": "<audio>语音说了什么"}, {"role": "assistant", "content": "今天天气真好呀"}], "images": ["/xxx/x.wav"]}

训练显存资源:



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

训练完成后,使用以下命令对训练后的权重进行推理。这里`--adapters`需要替换成训练生成的last checkpoint文件夹. 由于adapters文件夹中包含了训练的参数文件,因此不需要额外指定`--model`:

# 使用训练时的验证集进行推理
CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --adapters output/vx-xxx/checkpoint-xxx \
    --stream true \
    --load_data_args true

点击链接跳转:浦语·灵笔 2.5 OmniLive

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
目录
相关文章
|
6天前
|
分布式计算 测试技术 Spark
科大讯飞开源星火化学大模型、文生音效模型
近期,科大讯飞在魔搭社区(ModelScope)和Gitcode上开源两款模型:讯飞星火化学大模型Spark Chemistry-X1-13B、讯飞文生音频模型AudioFly,助力前沿化学技术研究,以及声音生成技术和应用的探索。
62 1
|
2月前
|
人工智能 算法 开发者
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
219 10
开源VLM“华山论剑”丨AI Insight Talk多模态专场直播预告
|
6天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
312 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
24天前
|
机器学习/深度学习 数据采集 人工智能
通义实验室Mobile-Agent-v3开源,全平台SOTA的GUI智能体,支持手机电脑等多平台交互
近日,通义实验室MobileAgent团队正式开源全新图形界面交互基础模型 GUI-Owl,并同步推出支持多智能体协同的自动化框架 Mobile-Agent-v3。该模型基于Qwen2.5-VL打造,在手机端与电脑端共8个GUI任务榜单中全面刷新开源模型性能纪录,达成全平台SOTA。
241 2
|
17天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1407 87
|
18天前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
580 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
102 13
AI Compass前沿速览:Qwen3-Max、Mixboard、Qwen3-VL、Audio2Face、Vidu Q2 AI视频生成模型、Qwen3-LiveTranslate-全模态同传大模型
|
2月前
|
编解码 自然语言处理
通义万相开源14B数字人Wan2.2-S2V!影视级音频驱动视频生成,助力专业内容创作
今天,通义万相的视频生成模型又开源了!本次开源Wan2.2-S2V-14B,是一款音频驱动的视频生成模型,可生成影视级质感的高质量视频。
460 29
|
1月前
|
机器学习/深度学习 人工智能 测试技术
开源SOTA:阶跃发布端到端语音大模型Step-Audio 2 mini!
大家好,今天阶跃星辰正式发布最强开源端到端语音大模型 Step-Audio 2 mini,该模型在多个国际基准测试集上取得 SOTA 成绩。
358 21

热门文章

最新文章