🚀 音楽音声事前学習(m - a - p)モデルファミリーの紹介
当社の音楽音声事前学習(m - a - p)モデルファミリーは、音楽分野における高度な理解と分析を可能にする一連のモデルです。これらのモデルは、異なる事前学習パラダイムを用いて訓練され、音楽の分類や生成など、様々なタスクに対応します。
📦 モデルの開発ログ
- 2023年6月2日: arxiv pre - print と訓練用の コード を公開。
- 2023年3月17日: 新しいパラダイムとデータセットで訓練された2つの高度な音楽理解モデル [MERT - v1 - 95M](https://huggingface.co/m - a - p/MERT - v1 - 95M) と [MERT - v1 - 330M](https://huggingface.co/m - a - p/MERT - v1 - 330M) を公開。これらのモデルは以前のモデルを上回り、より多くのタスクに汎化できます。
- 2023年3月14日: オープンソースの音楽データセットでMERT - v0モデルを再訓練し、[MERT - v0 - public](https://huggingface.co/m - a - p/MERT - v0 - public) を公開。
- 2022年12月29日: MLM パラダイムで訓練された音楽理解モデル [MERT - v0](https://huggingface.co/m - a - p/MERT - v0) を公開。このモデルは下流タスクで良好な性能を発揮します。
- 2022年10月29日: BYOL パラダイムで訓練された事前学習済みのMIRモデル [music2vec - v1](https://huggingface.co/m - a - p/music2vec - v1) を公開。
📋 モデルの一覧表
名称 |
事前学習パラダイム |
訓練データ(時間) |
事前学習コンテキスト(秒) |
モデルサイズ |
トランスフォーマー層 - 次元 |
特徴レート |
サンプルレート |
公開日 |
[MERT - v1 - 330M](https://huggingface.co/m - a - p/MERT - v1 - 330M) |
MLM |
160K |
5 |
330M |
24 - 1024 |
75 Hz |
24K Hz |
2023年3月17日 |
[MERT - v1 - 95M](https://huggingface.co/m - a - p/MERT - v1 - 95M) |
MLM |
20K |
5 |
95M |
12 - 768 |
75 Hz |
24K Hz |
2023年3月17日 |
[MERT - v0 - public](https://huggingface.co/m - a - p/MERT - v0 - public) |
MLM |
900 |
5 |
95M |
12 - 768 |
50 Hz |
16K Hz |
2023年3月14日 |
[MERT - v0](https://huggingface.co/m - a - p/MERT - v0) |
MLM |
1000 |
5 |
95 M |
12 - 768 |
50 Hz |
16K Hz |
2022年12月29日 |
[music2vec - v1](https://huggingface.co/m - a - p/music2vec - v1) |
BYOL |
1000 |
30 |
95 M |
12 - 768 |
50 Hz |
16K Hz |
2022年10月30日 |
🔧 モデルの説明
m - a - pモデルは類似したモデルアーキテクチャを共有しており、最も顕著な違いは事前学習で使用されるパラダイムです。それ以外にも、使用前に知っておくべきいくつかの微妙な技術的な設定があります。
- モデルサイズ:メモリにロードされるパラメータの数です。ハードウェアに適したサイズを選択してください。
- トランスフォーマー層 - 次元:トランスフォーマー層の数と、モデルから出力される対応する特徴次元です。異なる層によって抽出された特徴は、タスクに応じて様々な性能を発揮する可能性があるため、これを明示しています。
- 特徴レート:1秒の音声入力に対して、モデルが出力する特徴の数です。
- サンプルレート:モデルが訓練された音声の周波数です。
🚀 MERT - v1の紹介
MERT - v0と比較して、MERT - v1の事前学習ではいくつかの新機能を導入しています。
- encodec の8つのコードブックに疑似ラベルを変更しました。これにより、潜在的に高品質な結果が得られ、音楽生成をサポートする能力が向上します。
- バッチ内のノイズ混合を用いたMLM予測を行います。
- より高い音声周波数(24K Hz)で訓練しました。
- より多くの音声データ(最大160万時間)で訓練しました。
- より多くのモデルサイズ(95Mと330M)が利用可能です。
詳細は近日公開予定の論文に記載されます。
💻 使用例
基本的な使用法
from transformers import Wav2Vec2FeatureExtractor
from transformers import AutoModel
import torch
from torch import nn
import torchaudio.transforms as T
from datasets import load_dataset
model = AutoModel.from_pretrained("m-a-p/MERT-v1-95M", trust_remote_code=True)
processor = Wav2Vec2FeatureExtractor.from_pretrained("m-a-p/MERT-v1-95M",trust_remote_code=True)
dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
dataset = dataset.sort("id")
sampling_rate = dataset.features["audio"].sampling_rate
resample_rate = processor.sampling_rate
if resample_rate != sampling_rate:
print(f'setting rate from {sampling_rate} to {resample_rate}')
resampler = T.Resample(sampling_rate, resample_rate)
else:
resampler = None
if resampler is None:
input_audio = dataset[0]["audio"]["array"]
else:
input_audio = resampler(torch.from_numpy(dataset[0]["audio"]["array"]))
inputs = processor(input_audio, sampling_rate=resample_rate, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs, output_hidden_states=True)
all_layer_hidden_states = torch.stack(outputs.hidden_states).squeeze()
print(all_layer_hidden_states.shape)
time_reduced_hidden_states = all_layer_hidden_states.mean(-2)
print(time_reduced_hidden_states.shape)
aggregator = nn.Conv1d(in_channels=13, out_channels=1, kernel_size=1)
weighted_avg_hidden_states = aggregator(time_reduced_hidden_states.unsqueeze(0)).squeeze()
print(weighted_avg_hidden_states.shape)
📄 引用
@misc{li2023mert,
title={MERT: Acoustic Music Understanding Model with Large-Scale Self-supervised Training},
author={Yizhi Li and Ruibin Yuan and Ge Zhang and Yinghao Ma and Xingran Chen and Hanzhi Yin and Chenghua Lin and Anton Ragni and Emmanouil Benetos and Norbert Gyenge and Roger Dannenberg and Ruibo Liu and Wenhu Chen and Gus Xia and Yemin Shi and Wenhao Huang and Yike Guo and Jie Fu},
year={2023},
eprint={2306.00107},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
📄 ライセンス
このモデルはCC - BY - NC - 4.0ライセンスの下で提供されています。