🚀 my_awesome_mind_model
このモデルは、minds14データセットでfacebook/wav2vec2-baseをファインチューニングしたバージョンです。評価セットでは以下の結果を達成しています。
🚀 クイックスタート
このモデルを使用するには、まず必要なライブラリをインストールします。
pip install transformers datasets evaluate
その後、以下の手順でモデルを使用できます。
- データセットをロードする
- データを前処理する
- モデルをファインチューニングする
- 推論を行う
✨ 主な機能
- minds14データセットでファインチューニングされた音声分類モデル
- 事前学習済みのwav2vec2モデルを使用している
📦 インストール
必要なライブラリをインストールするには、以下のコマンドを実行します。
pip install transformers datasets evaluate
💻 使用例
基本的な使用法
from datasets import load_dataset, Audio
minds = load_dataset("PolyAI/minds14", name="en-US", split="train")
minds = minds.train_test_split(test_size=0.2)
minds = minds.remove_columns(["path", "transcription", "english_transcription", "lang_id"])
labels = minds["train"].features["intent_class"].names
label2id, id2label = dict(), dict()
for i, label in enumerate(labels):
label2id[label] = str(i)
id2label[str(i)] = label
from transformers import AutoFeatureExtractor
feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-base")
minds = minds.cast_column("audio", Audio(sampling_rate=16_000))
高度な使用法
from transformers import AutoModelForAudioClassification
model = AutoModelForAudioClassification.from_pretrained("facebook/wav2vec2-base", num_labels=len(label2id))
from transformers import TrainingArguments, Trainer
training_args = TrainingArguments(
output_dir='./results',
num_train_epochs=10,
per_device_train_batch_size=32,
per_device_eval_batch_size=32,
warmup_steps=500,
weight_decay=0.01,
logging_dir='./logs',
logging_steps=10,
evaluation_strategy="steps",
eval_steps=50,
save_strategy="steps",
save_steps=100,
load_best_model_at_end=True,
metric_for_best_model="accuracy"
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=minds["train"],
eval_dataset=minds["test"],
compute_metrics=lambda p: {"accuracy": (p.predictions.argmax(-1) == p.label_ids).mean()},
tokenizer=feature_extractor
)
trainer.train()
input_audio = minds["test"][0]["audio"]["array"]
inputs = feature_extractor(input_audio, sampling_rate=16000, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_id = logits.argmax(-1).item()
predicted_label = id2label[str(predicted_class_id)]
print(f"Predicted label: {predicted_label}")
📚 ドキュメント
モデルの説明
ファインチューニングに使用されたベースモデルは、https://huggingface.co/facebook/wav2vec2-base です。
想定される用途と制限
このモデルは、事前学習済みモデルのファインチューニングを体験するために使用することを想定しています。本番環境での使用には適していません。
トレーニングと評価データ
トレーニングデータセットへのリンクは、https://huggingface.co/datasets/PolyAI/minds14 です。独自のデータを持ち込み、トレーニング用に前処理することもできます。
トレーニング手順
トレーニングハイパーパラメータ
トレーニング中に使用されたハイパーパラメータは以下の通りです。
- 学習率: 3e-05
- トレーニングバッチサイズ: 32
- 評価バッチサイズ: 32
- シード: 42
- 勾配累積ステップ: 4
- 総トレーニングバッチサイズ: 128
- オプティマイザ: OptimizerNames.ADAMW_TORCHを使用し、ベータ=(0.9, 0.999)、イプシロン=1e-08、追加のオプティマイザ引数はなし
- 学習率スケジューラのタイプ: 線形
- 学習率スケジューラのウォームアップ比率: 0.1
- エポック数: 10
トレーニング結果
トレーニング損失 |
エポック |
ステップ |
検証損失 |
正解率 |
No log |
0.8 |
3 |
2.6463 |
0.0619 |
No log |
1.8 |
6 |
2.6525 |
0.0442 |
No log |
2.8 |
9 |
2.6524 |
0.0619 |
3.0286 |
3.8 |
12 |
2.6569 |
0.0619 |
3.0286 |
4.8 |
15 |
2.6572 |
0.0531 |
3.0286 |
5.8 |
18 |
2.6546 |
0.0619 |
3.0109 |
6.8 |
21 |
2.6593 |
0.0708 |
3.0109 |
7.8 |
24 |
2.6585 |
0.0531 |
3.0109 |
8.8 |
27 |
2.6569 |
0.0619 |
3.0047 |
9.8 |
30 |
2.6577 |
0.0619 |
フレームワークのバージョン
- Transformers 4.48.2
- Pytorch 2.5.1+cu124
- Datasets 3.2.0
- Tokenizers 0.21.0
🔧 技術詳細
このモデルは、事前学習済みのwav2vec2モデルを使用しています。wav2vec2は、音声信号を直接処理するためのトランスフォーマーベースのモデルです。このモデルは、minds14データセットでファインチューニングされ、話者の意図を分類するために使用されます。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。