能否直接使用未经微调的预训练模型?以Wav2Vec2 XLS-R为例
使用未微调Wav2Vec2 XLS-R模型与微调模型对比的方法
1. 加载未微调的预训练模型
直接通过Hugging Face Transformers库加载官方发布的XLS-R预训练权重,无需加载你的微调 checkpoint:
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC # 加载未微调的XLS-R模型与处理器(以large版本为例,可根据需求替换为base等版本) processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-large-xlsr-53") unfinetuned_model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-large-xlsr-53")
2. 音频预处理与推理
对目标音频进行统一预处理(确保采样率为16kHz,XLS-R模型的要求),然后执行推理得到未微调模型的输出:
import torch import librosa # 加载测试音频,强制转成16kHz采样率 audio, sr = librosa.load("test_audio.wav", sr=16000) # 用未微调模型的处理器预处理音频 inputs = processor(audio, sampling_rate=16000, return_tensors="pt", padding=True) # 关闭梯度计算以提升推理速度 with torch.no_grad(): logits = unfinetuned_model(inputs.input_values, attention_mask=inputs.attention_mask).logits # 解码得到预测文本 predicted_ids = torch.argmax(logits, dim=-1) unfinetuned_pred = processor.decode(predicted_ids[0])
3. 加载微调后模型执行相同推理
用同样的音频输入,加载你微调后的模型重复上述步骤:
# 加载本地保存的微调后模型与处理器(替换为你的checkpoint路径) ft_processor = Wav2Vec2Processor.from_pretrained("./fine_tuned_xlsr_checkpoint") ft_model = Wav2Vec2ForCTC.from_pretrained("./fine_tuned_xlsr_checkpoint") # 相同音频输入的预处理(可直接复用之前的inputs变量) with torch.no_grad(): ft_logits = ft_model(inputs.input_values, attention_mask=inputs.attention_mask).logits ft_predicted_ids = torch.argmax(ft_logits, dim=-1) finetuned_pred = ft_processor.decode(ft_predicted_ids[0])
4. 结果对比
- 定性对比:直接打印两个模型的预测文本,直观查看差异:
print("未微调模型预测结果:", unfinetuned_pred) print("微调后模型预测结果:", finetuned_pred) - 定量对比:用Word Error Rate(WER)指标量化性能差异,WER越低说明模型效果越好:
from datasets import load_metric wer = load_metric("wer") # 替换为音频对应的真实标签文本 reference = ["your_ground_truth_text"] unfinetuned_wer = wer.compute(predictions=[unfinetuned_pred], references=reference) finetuned_wer = wer.compute(predictions=[finetuned_pred], references=reference) print(f"未微调模型WER: {unfinetuned_wer:.4f}") print(f"微调后模型WER: {finetuned_wer:.4f}")
注意事项
- 确保所有测试音频的采样率统一为16kHz,否则会影响模型输出准确性。
- 微调后的处理器必须与微调时使用的一致,避免预处理差异导致结果偏差。
- 若微调针对特定语言,测试时优先选择对应语言的音频,对比结果更具参考性。
内容的提问来源于stack exchange,提问作者dizzyme09
相关产品推荐
相关产品推荐

