sglang-omni [多模态大语言模型的推理与评测框架]

核心架构

复制代码
sglang_omni/          # 主要业务逻辑
├── models/           # 模型实现(Qwen3-Omni 等)
├── preprocessing/    # 多媒体预处理(视频、音频、图像)
├── serve/            # OpenAI 兼容 API 服务
└── client/           # 客户端 SDK

主要能力

模态输入 模态输出 说明
文本 + 图像 文本 MMMU 评测
文本 + 音频 文本 MMSU 评测
文本 + 视频 文本 Video-MME 评测
视频 + 音频问题 文本 Video-AMME 评测
任意 文本 + 音频 Talker(TTS)模式

关键模块说明

1. 模型层(qwen3_omni)
  • Preprocessor:负责多媒体输入的加载、缓存 key 计算、HF 处理器调用
  • ImageEncoder:视觉编码,支持图像和视频帧
  • Thinker:主干 LLM,融合多模态 embedding
  • Talker(可选):语音合成模块,实现文本→音频输出
  • Pipeline Merge :在 merge.py 中将各编码器输出对齐合并
2. 预处理层(preprocessing)
  • 视频支持 torchcodec/torchvision 双后端,自动 fallback
  • 支持从视频中提取音频(use_audio_in_video)
  • 异步批量加载 URL/本地文件,基于内容哈希的缓存 key
3. 服务层(openai_api.py)
  • 兼容 OpenAI /v1/chat/completions 接口
  • 扩展参数:video_fps、video_max_frames、video_min_pixels 等

评测体系(benchmarks)

复制代码
eval/
├── benchmark_omni_videomme.py   # Video-MME
├── benchmark_omni_videoamme.py  # Video-AMME(活动文件)
├── benchmark_omni_mmmu.py       # 图像理解
├── benchmark_omni_mmsu.py       # 音频理解
└── benchmark_omni_seedtts.py    # 语音克隆/TTS

评测维度:准确率(ACC)+ 语音一致性(WER)+ 速度(QPS/RTF)


CI 流程(test-qwen3-omni-ci.yaml)

分多 stage 并行运行,每个 stage 独立 GPU 容器:

  • Stage 1: Thinker only(基础推理)
  • Stage 8: Video-MME Talker(视频+音频输出)
  • Stage 9: Video-AMME(视频+音频输入)
  • Stage 10: Video-AMME Talker(全链路)

当前活动文件

benchmark_omni_videoamme.py 是 Video-AMME 基准测试入口 ,其逻辑完全复用 run_video_eval 框架,区别在于:

  • 强制启用音频输入(enable_audio_input=True)
  • 使用固定提示词 VIDEOAMME_REQUEST_TEXT(仅包含格式指令,问题内容在音频中)
相关推荐
QXWZ_IA7 分钟前
测绘单位采购RTK:设备价格、账号年费、售后,用时间轴分权重
网络·人工智能·安全
kaixin_啊啊38 分钟前
【零基础学AI】第 29 章——第一次调用大模型 API
人工智能
甲维斯40 分钟前
Qwen4 被嘲笑了!国模被啥锁死了?
人工智能
夕阳_醉了1 小时前
Codex 客户端从装好到跑通:第三方 API 接入与配置避坑指南
人工智能·gpt·openai·codex·ai 编程
熟的生菜1 小时前
从零造一个腱绳驱动灵巧手——仿真器篇5:姿势串与手势工程——从文本协议到握拳、OK 与多姿势插值
人工智能
武子康2 小时前
攻击动作做对了,游戏规则就对了吗?H3-World 与三条控制路线的分工
大数据·人工智能·agent
探求虚无2 小时前
用 AI 在 Unity 里做一款 RTS:最难的不是生成代码,而是证明它真的能玩
人工智能·unity·游戏引擎
vivo互联网技术2 小时前
AI Agent 技术全景解析 —— 从提示词工程到高级智能体构建
人工智能·agent
武子康2 小时前
H3-World 的动作能按时发生,为何还不能据此判断实时互动?
人工智能·深度学习·agent