如何微调NVIDIA Canary-Qwen-2.5B定制化语音识别模型训练完整教程【免费下载链接】canary-qwen-2.5b项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/canary-qwen-2.5bNVIDIA Canary-Qwen-2.5B是一款强大的英语语音识别模型具备25亿参数和418 RTFx的运行效率支持带标点和大小写的自动语音转文本识别。本教程将带你完成该模型的微调过程打造专属于你的定制化语音识别解决方案。准备工作环境搭建与依赖安装要开始微调Canary-Qwen-2.5B首先需要安装NVIDIA NeMo工具包。目前需要安装最新的NeMo主干版本以及PyTorch 2.6以支持FSDP2python -m pip install nemo_toolkit[asr,tts] githttps://github.com/NVIDIA/NeMo.git同时确保你的系统满足以下要求操作系统Linux、Linux 4 Tegra或Windows硬件支持NVIDIA Ampere、Blackwell、Jetson、Hopper、Lovelace、Pascal、Turing或Volta架构的GPUPython环境推荐3.8及以上版本数据准备构建高质量训练数据集Canary-Qwen-2.5B的微调需要准备格式正确的语音数据。数据集应包含音频文件和对应的文本转录。建议使用以下格式的JSONL manifest文件组织数据{ audio_filepath: /path/to/audio.wav, # 音频文件路径 duration: 30.0, # 音频时长秒 text: 对应的转录文本 # 可选用于监督微调 }数据收集建议音频格式推荐使用16000 Hz采样率的单声道WAV或FLAC文件音频时长训练数据中音频的最大时长为40秒过长的音频可能需要分割文本质量确保转录文本准确包含适当的标点和大小写数据量根据应用场景建议准备至少数小时的标注数据以获得良好的微调效果配置微调参数定制训练过程微调Canary-Qwen-2.5B时需要配置一系列参数来控制训练过程。主要参数位于项目根目录的config.json文件中以下是关键配置项LoRA配置模型使用LoRALow-Rank Adaptation技术进行高效微调相关参数如下lora_alpha: 256 - LoRA缩放参数lora_dropout: 0.01 - dropout比率r: 128 - LoRA注意力维度target_modules: [q_proj, v_proj] - 应用LoRA的目标模块优化器和调度器设置优化器AdamW学习率0.0005权重衰减0.001学习率调度器CosineAnnealing预热步数1000最大步数100000最小学习率1e-06参数冻结设置默认情况下以下参数被冻结llm相关参数embed_tokens相关参数LoRA相关参数lora_*不会被冻结将在微调过程中更新。执行微调启动训练流程NeMo提供了专门的脚本用于SALMSpeech-Augmented Language Model模型的训练。使用以下命令启动微调# 克隆仓库 git clone https://gitcode.com/hf_mirrors/nvidia/canary-qwen-2.5b cd canary-qwen-2.5b # 运行微调脚本 python examples/speechlm2/salm_train.py \ pretrained_namenvidia/canary-qwen-2.5b \ train_datasetyour_train_manifest.jsonl \ validation_datasetyour_validation_manifest.jsonl \ config_pathconfig.json \ max_steps5000 \ batch_size8 \ learning_rate0.0001关键训练参数说明pretrained_name: 指定预训练模型名称train_dataset/validation_dataset: 训练和验证数据的manifest文件路径config_path: 配置文件路径默认为config.jsonmax_steps: 训练总步数batch_size: 批处理大小根据GPU内存调整learning_rate: 学习率可根据数据集大小调整模型评估验证微调效果微调完成后需要评估模型性能。使用以下命令对模型进行评估python examples/speechlm2/salm_evaluate.py \ pretrained_name./results/checkpoints \ test_datasetyour_test_manifest.jsonl \ output_dir./evaluation_results评估指标主要评估指标为词错误率WER结果会自动使用whisper-normalizer进行文本规范化。理想情况下微调后的模型在目标数据集上的WER应低于原始模型。模型部署将微调模型投入使用微调后的模型可以像原始模型一样用于语音识别任务。以下是加载和使用微调模型的示例代码from nemo.collections.speechlm2.models import SALM # 加载微调后的模型 model SALM.from_pretrained(./results/checkpoints) # 语音识别示例 answer_ids model.generate( prompts[ [{role: user, content: fTranscribe the following: {model.audio_locator_tag}, audio: [your_audio.wav]}] ], max_new_tokens128, ) print(model.tokenizer.ids_to_text(answer_ids[0].cpu()))也可以使用批量转录脚本处理整个数据集python examples/speechlm2/salm_generate.py \ pretrained_name./results/checkpoints \ inputstest_manifest.jsonl \ output_manifesttranscriptions.jsonl \ batch_size32 \ user_promptTranscribe the following:高级技巧提升微调效果的策略数据增强为提高模型的鲁棒性可以对训练数据应用以下增强技术加性噪声在音频中添加不同信噪比的背景噪声语速调整轻微改变音频的播放速度音量调整随机调整音频的音量水平超参数调优根据具体数据集可以尝试调整以下超参数以获得更好的性能LoRA维度r增大r如256可能提升性能但会增加计算成本学习率较小的学习率如1e-5可能有助于在小数据集上微调批处理大小在GPU内存允许的情况下使用较大的批处理大小多阶段微调对于特定领域的应用可以采用多阶段微调策略在通用领域的大型数据集上进行初步微调在目标领域的小数据集上进行二次微调使用更小的学习率常见问题与解决方案训练过程中出现内存不足减少批处理大小使用梯度累积启用混合精度训练模型过拟合增加数据量或应用数据增强增大正则化强度如提高lora_dropout提前停止训练根据验证集性能微调后性能提升不明显检查数据质量确保转录文本准确调整学习率和训练步数尝试不同的LoRA配置通过本教程你应该能够成功微调NVIDIA Canary-Qwen-2.5B模型使其适应特定的语音识别需求。记住微调是一个迭代过程可能需要尝试不同的参数配置和数据处理方法才能获得最佳结果。祝你在语音识别项目中取得成功【免费下载链接】canary-qwen-2.5b项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/canary-qwen-2.5b创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
如何微调NVIDIA Canary-Qwen-2.5B:定制化语音识别模型训练完整教程
如何微调NVIDIA Canary-Qwen-2.5B定制化语音识别模型训练完整教程【免费下载链接】canary-qwen-2.5b项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/canary-qwen-2.5bNVIDIA Canary-Qwen-2.5B是一款强大的英语语音识别模型具备25亿参数和418 RTFx的运行效率支持带标点和大小写的自动语音转文本识别。本教程将带你完成该模型的微调过程打造专属于你的定制化语音识别解决方案。准备工作环境搭建与依赖安装要开始微调Canary-Qwen-2.5B首先需要安装NVIDIA NeMo工具包。目前需要安装最新的NeMo主干版本以及PyTorch 2.6以支持FSDP2python -m pip install nemo_toolkit[asr,tts] githttps://github.com/NVIDIA/NeMo.git同时确保你的系统满足以下要求操作系统Linux、Linux 4 Tegra或Windows硬件支持NVIDIA Ampere、Blackwell、Jetson、Hopper、Lovelace、Pascal、Turing或Volta架构的GPUPython环境推荐3.8及以上版本数据准备构建高质量训练数据集Canary-Qwen-2.5B的微调需要准备格式正确的语音数据。数据集应包含音频文件和对应的文本转录。建议使用以下格式的JSONL manifest文件组织数据{ audio_filepath: /path/to/audio.wav, # 音频文件路径 duration: 30.0, # 音频时长秒 text: 对应的转录文本 # 可选用于监督微调 }数据收集建议音频格式推荐使用16000 Hz采样率的单声道WAV或FLAC文件音频时长训练数据中音频的最大时长为40秒过长的音频可能需要分割文本质量确保转录文本准确包含适当的标点和大小写数据量根据应用场景建议准备至少数小时的标注数据以获得良好的微调效果配置微调参数定制训练过程微调Canary-Qwen-2.5B时需要配置一系列参数来控制训练过程。主要参数位于项目根目录的config.json文件中以下是关键配置项LoRA配置模型使用LoRALow-Rank Adaptation技术进行高效微调相关参数如下lora_alpha: 256 - LoRA缩放参数lora_dropout: 0.01 - dropout比率r: 128 - LoRA注意力维度target_modules: [q_proj, v_proj] - 应用LoRA的目标模块优化器和调度器设置优化器AdamW学习率0.0005权重衰减0.001学习率调度器CosineAnnealing预热步数1000最大步数100000最小学习率1e-06参数冻结设置默认情况下以下参数被冻结llm相关参数embed_tokens相关参数LoRA相关参数lora_*不会被冻结将在微调过程中更新。执行微调启动训练流程NeMo提供了专门的脚本用于SALMSpeech-Augmented Language Model模型的训练。使用以下命令启动微调# 克隆仓库 git clone https://gitcode.com/hf_mirrors/nvidia/canary-qwen-2.5b cd canary-qwen-2.5b # 运行微调脚本 python examples/speechlm2/salm_train.py \ pretrained_namenvidia/canary-qwen-2.5b \ train_datasetyour_train_manifest.jsonl \ validation_datasetyour_validation_manifest.jsonl \ config_pathconfig.json \ max_steps5000 \ batch_size8 \ learning_rate0.0001关键训练参数说明pretrained_name: 指定预训练模型名称train_dataset/validation_dataset: 训练和验证数据的manifest文件路径config_path: 配置文件路径默认为config.jsonmax_steps: 训练总步数batch_size: 批处理大小根据GPU内存调整learning_rate: 学习率可根据数据集大小调整模型评估验证微调效果微调完成后需要评估模型性能。使用以下命令对模型进行评估python examples/speechlm2/salm_evaluate.py \ pretrained_name./results/checkpoints \ test_datasetyour_test_manifest.jsonl \ output_dir./evaluation_results评估指标主要评估指标为词错误率WER结果会自动使用whisper-normalizer进行文本规范化。理想情况下微调后的模型在目标数据集上的WER应低于原始模型。模型部署将微调模型投入使用微调后的模型可以像原始模型一样用于语音识别任务。以下是加载和使用微调模型的示例代码from nemo.collections.speechlm2.models import SALM # 加载微调后的模型 model SALM.from_pretrained(./results/checkpoints) # 语音识别示例 answer_ids model.generate( prompts[ [{role: user, content: fTranscribe the following: {model.audio_locator_tag}, audio: [your_audio.wav]}] ], max_new_tokens128, ) print(model.tokenizer.ids_to_text(answer_ids[0].cpu()))也可以使用批量转录脚本处理整个数据集python examples/speechlm2/salm_generate.py \ pretrained_name./results/checkpoints \ inputstest_manifest.jsonl \ output_manifesttranscriptions.jsonl \ batch_size32 \ user_promptTranscribe the following:高级技巧提升微调效果的策略数据增强为提高模型的鲁棒性可以对训练数据应用以下增强技术加性噪声在音频中添加不同信噪比的背景噪声语速调整轻微改变音频的播放速度音量调整随机调整音频的音量水平超参数调优根据具体数据集可以尝试调整以下超参数以获得更好的性能LoRA维度r增大r如256可能提升性能但会增加计算成本学习率较小的学习率如1e-5可能有助于在小数据集上微调批处理大小在GPU内存允许的情况下使用较大的批处理大小多阶段微调对于特定领域的应用可以采用多阶段微调策略在通用领域的大型数据集上进行初步微调在目标领域的小数据集上进行二次微调使用更小的学习率常见问题与解决方案训练过程中出现内存不足减少批处理大小使用梯度累积启用混合精度训练模型过拟合增加数据量或应用数据增强增大正则化强度如提高lora_dropout提前停止训练根据验证集性能微调后性能提升不明显检查数据质量确保转录文本准确调整学习率和训练步数尝试不同的LoRA配置通过本教程你应该能够成功微调NVIDIA Canary-Qwen-2.5B模型使其适应特定的语音识别需求。记住微调是一个迭代过程可能需要尝试不同的参数配置和数据处理方法才能获得最佳结果。祝你在语音识别项目中取得成功【免费下载链接】canary-qwen-2.5b项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/canary-qwen-2.5b创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考