惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)

惊艳开源!Step系列多模态模型,重塑视频与语音交互新格局

2025年2月18日,AI领域迎来重磅消息,阶跃星辰宣布开源两款Step系列多模态模型——Step-Video-T2V视频生成模型和Step-Audio语音交互模型。这一开源举措,犹如投入AI湖中的巨石,激起层层涟漪,为相关领域的研究和应用带来全新活力。想深入了解它们吗?下面就为你详细剖析。

官方开放平台文档中心:

技术报告:

  • https://arxiv.org/pdf/2502.10248
  • https://github.com/stepfun-ai/Step-Audio/blob/main/assets/Step-Audio.pdf

开源链接:

  • https://github.com/stepfun-ai/Step-Video-T2V
  • https://github.com/stepfun-ai/Step-Audio

模型链接:

  • stepvideo-t2v:https://www.modelscope.cn/collections/stepvideo-t2v–wenshengshipin-238aa2a1985d40
  • Step-Audio:https://www.modelscope.cn/collections/Step-Audio-a47b227413534a

Step-Video-T2V:视频生成领域的璀璨新星

Step-Video-T2V是一款处于行业前沿的文本转视频预训练模型,拥有300亿参数,最多可生成204帧视频。为提升训练和推理效率,阶跃星辰创新提出深度压缩VAE技术,实现16×16空间和8倍时间压缩比。并且,在模型训练后期应用直接偏好优化(DPO)技术,显著提升生成视频的视觉质量。

独特架构与技术亮点

  • 视频VAE:在Step-Video-T2V中,视频由高压缩Video-VAE进行表示,这种设计让模型在处理视频时能实现高效的空间和时间压缩。它通过独特的卷积结构,在编码器和解码器部分协同工作,将视频信息转化为更易于处理的潜在表示,为后续的操作奠定基础。
惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)

视频 VAE:

惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)
  • 带3D全注意力机制的DiT:该模型基于拥有48层、每层48个注意力头且每个头尺寸为128的DiT架构构建。其中,AdaLN-Single用于融入时间步条件,QK-Norm保证训练稳定性,3D RoPE则助力模型更好地处理不同长度和分辨率的视频序列,让模型在复杂视频处理场景中表现更出色。
惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)
  • 视频-DPO:为了让生成的视频更符合人类审美和期望,研究团队引入DPO技术。通过融入人类反馈,利用人类偏好数据对模型进行微调,减少视频中的伪影,使生成的视频更加流畅、逼真。
惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)

性能卓越,超越同类

为全面评估开源视频生成模型性能,阶跃星辰发布并开源了Step-Video-T2V-Eval基准数据集。该数据集包含128条源于真实用户的中文评测问题,涵盖运动、风景、动物等11个内容类别。在与市面上其他开源视频模型的对比测试中,Step-Video-T2V在指令遵循、运动平滑性、物理合理性、美感度等关键指标上均表现优异,全面超越竞争对手。

图为 Step-Video-T2V-Eval 评测结果
图为 Step-Video-T2V-Eval 评测结果

强大的生成能力

在实际生成效果方面,Step-Video-T2V展现出令人惊叹的实力。无论是复杂运动场景,还是人物形象塑造,亦或是视觉想象力和镜头语言运用,都表现出色。它能够精准把控复杂运动规律,生成的人物细节丰富、表情自然,还支持多种镜头运动方式和景别切换,为视频创作者提供了强大助力。

Step-Audio:语音交互领域的创新先锋

Step-Audio是业内首款产品级开源语音交互模型,集语音理解与生成控制于一体,支持多语言、多种语音情感、方言,还能控制语速及韵律风格,甚至支持RAP和哼唱。它的出现,极大地拓展了语音交互的边界。

核心技术亮点

  • 1300亿多模态模型:单模型具备语音识别、语义理解、对话、语音克隆、语音生成等多种功能,开源的Step-Audio-Chat版本拥有1300亿参数,展现出强大的多模态处理能力。
  • 高效数据生成链路:基于130B参数突破传统TTS对人工采集数据的依赖,生成高质量合成音频数据。同时开源的Step-Audio-TTS-3B模型,是首个基于大规模合成数据训练且支持RAP和哼唱的指令加强版语音合成模型。
  • 精细语音控制:能够精准调控多种情绪、方言和唱歌效果,满足用户多样化的语音生成需求,让语音交互更加个性化。
  • 扩展工具调用:结合RLHF方法,通过ToolCall机制和角色扮演增强,提升在复杂任务中的表现,使模型交互更加智能。
惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)

架构与优化细节

Step-Audio采用双码本编码器方案,即Linguistic tokenizer与Semantice tokenizer并行,通过2:3时序交错策略有效整合两种token。在语音解码器部分,结合30亿参数的语言模型、流匹配模型和声码器,采用双码交错训练方法优化合成语音质量。为实现实时推理,还对推理管线进行优化,通过控制模块协调多个子系统协同工作。

惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)
惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)

出色的性能表现

在LlaMA Question、Web Questions等5大主流公开测试集中,Step-Audio性能超越同类型开源模型,在HSK-6评测中表现尤为突出。此外,阶跃星辰自建并开源了StepEval-Audio-360基准测试,从多个维度对开源语音模型进行测评,结果显示Step-Audio在各个维度上均领先于此前的最佳开源语音模型。Step-Audio 在 HSK-6(汉语水平考试六级)评测中的表现尤为突出,是最懂中国话的开源语音交互大模型。

惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)

模型推理与微调指南

模型推理

  • Step-Video-T2V推理:单卡体验时,魔搭社区的DiffSynth-Studio项目为其提供显存管理优化,支持在80G显存的单卡A100上推理。多卡并行部署方面,阶跃星辰官方提供支持,文本编码器和VAE部分由独立进程维护,DiT部分可选择4卡或8卡并行,每张卡需至少80G显存。
  • Step-Audio推理:安装相关依赖后,按照特定代码即可进行推理。推理过程中,显存资源占用为4 * 65GiB,可分别实现文本输入和音频输入的交互功能。

Step-Video-T2V推理

单卡体验

魔搭社区的开源项目 DiffSynth-Studio(https://github.com/modelscope/DiffSynth-Studio) 为 Step-Video-T2V 模型提供了显存管理优化,支持模型在 80G 显存的单卡 A100 上进行推理。

下载并安装 DiffSynth-Studio:

git clone https://github.com/modelscope/DiffSynth-Studio.git
cd DiffSynth-Studiopip 
install -e .

运行 Step-Video-T2V 模型:

python examples/stepvideo/stepvideo_text_to_video.py

提示词、帧数等参数可在样例代码 stepvideo_text_to_video.py中进行修改。

代码链接:https://github.com/modelscope/DiffSynth-Studio/blob/main/examples/stepvideo/stepvideo_text_to_video.py

多卡并行部署

阶跃星辰官方提供了多卡并行部署的支持,其中文本编码器和 VAE 部分由独立的进程维护,DiT 部分可以选择 4 卡并行或 8 卡并行,每张卡需要至少 80G 显存。如果要在单台机器上运行,至少需要 5 个 80G 显存的 GPU。

下载源代码并安装依赖:

git clone https://github.com/stepfun-ai/Step-Video-T2V.git
conda create -n stepvideo python=3.10
conda activate stepvideo
cd Step-Video-T2V
pip install -e .
pip install flash-attn --no-build-isolation  ## flash-attn is optional

下载模型:

pip install modelscope
modelscope download --model stepfun-ai/stepvideo-t2v --local_dir ./stepfun-ai/stepvideo-t2v

启动文本编码器和 VAE 部分的服务进程:

python api/call_remote_server.py --model_dir stepfun-ai/stepvideo-t2v &

配置 DiT 进程参数:

parallel=4
url='127.0.0.1'
model_dir="stepfun-ai/stepvideo-t2v"

启动 DiT 进程并生成视频:

torchrun --nproc_per_node $parallel run_parallel.py --model_dir $model_dir --vae_url $url --caption_url $url  --ulysses_degree $parallel --prompt "一名星际诠释者在月球上发现一块石碑,上面印有“GUI→IUG→∞”字样,忽隐忽现" --infer_steps 50  --cfg_scale 9.0 --time_shift 13.0

Step-Audio推理

安装依赖:

git clone https://github.com/stepfun-ai/Step-Audio.git
conda create -n stepaudio python=3.10
conda activate stepaudio

cd Step-Audio
pip install -r requirements.txt

推理代码如下,你需要在`Step-Audio`目录下运行代码:

import os
import torchaudio
import argparse
from stepaudio import StepAudio
from modelscope import snapshot_download
os.makedirs('output', exist_ok=True)

tokenizer_path = snapshot_download('stepfun-ai/Step-Audio-Tokenizer')
tts_path = snapshot_download('stepfun-ai/Step-Audio-TTS-3B')
model_path = snapshot_download('stepfun-ai/Step-Audio-Chat')

model = StepAudio(    tokenizer_path=tokenizer_path,  
tts_path=tts_path,    
llm_path=model_path,
)

# example for text input
text, audio, sr = model(    [{"role": "user", "content": "你好,我是你的朋友,我叫茹果,你叫什么名字?"}],    "程远",
)
print(text)
torchaudio.save("output/output_e2e_tqta.wav", audio, sr)

# example for audio input
text, audio, sr = model(
    [
        {
            "role": "user",
            "content": {"type": "audio", "audio": "output/output_e2e_tqta.wav"},
        }
    ],
    "程远",
)
print(text)
torchaudio.save("output/output_e2e_aqta.wav", audio, sr)

显存资源占用:4 * 65GiB

模型微调

使用魔搭社区官方的ms-swift框架可以对Step-Audio-Chat进行微调。微调前需准备好环境(ms-swift开源地址:

https://github.com/modelscope/ms-swift),按照特定脚本进行操作。训练完成后,可使用相应命令对训练后的权重进行推理,还能将模型推送到ModelScope,方便后续应用和分享。

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

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

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

pip install funasr sox conformer openai-whisper librosa

微调脚本如下:

CUDA_VISIBLE_DEVICES=0,1,2,3 
swift sft 
    --model stepfun-ai/Step-Audio-Chat 
    --dataset 'speech_asr/speech_asr_aishell1_trainsets:validation#2000' 
    --train_type lora 
    --torch_dtype bfloat16 
    --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 100 
    --save_steps 100 
    --save_total_limit 2 
    --logging_steps 5 
    --max_length 2048 
    --output_dir output 
    --warmup_ratio 0.05

训练显存占用:

惊艳开源!Step 系列多模态模型,重塑视频与语音交互新格局(含模型推理与微调指南)

如果要使用自定义数据集进行训练,你可以参考以下格式,并指定`–dataset <dataset_path>`。

{"messages": [{"role": "user", "content": "浙江的省会在哪?"}, {"role": "assistant", "content": "浙江的省会在杭州。"}]}
{"messages": [{"role": "user", "content": "<audio>语音说了什么"}, {"role": "assistant", "content": "今天天气真好呀"}], "audios": ["/xxx/x.mp3"]}
{"messages": [{"role": "user", "content": "<audio>"}, {"role": "assistant", "content": "你好小明,我是小明。"}, {"role": "user", "content": "<audio>"}, {"role": "assistant", "content": "是啊,今天天气真不错!"}], "audios": ["/xxx/a.mp3", "/xxx/b.mp3"]}

训练完成后,使用以下命令对训练后的权重进行推理:

提示:这里的`–adapters`需要替换成训练生成的last checkpoint文件夹。由于adapters文件夹中包含了训练的参数文件`args.json`,因此不需要额外指定`–model`,swift会自动读取这些参数。如果要关闭此行为,可以设置`–load_args false`。

CUDA_VISIBLE_DEVICES=0 
swift infer 
    --adapters output/vx-xxx/checkpoint-xxx 
    --stream false 
    --max_batch_size 1 
    --load_data_args true 
    --max_new_tokens 2048

推送模型到ModelScope:

CUDA_VISIBLE_DEVICES=0 
swift export 
    --adapters output/vx-xxx/checkpoint-xxx 
    --push_to_hub true 
    --hub_model_id '<your-model-id>' 
    --hub_token '<your-sdk-token>'

原创文章,作者:产品大法师VIP Plus,如若转载,请注明出处:https://www.pmtemple.com/fengsaitao/17244/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年2月19日 上午9:01
下一篇 2025年2月25日 下午3:42

相关推荐

发表回复

登录后才能评论
微信公众号
微信公众号
edgesensor_high 小程序
小程序
分享本页
返回顶部