6116b1f3c6
Update API Documentation / build-api-docs (push) Has been cancelled
Add complete FunASR codebase including models, runtime, and documentation.
2.6 KiB
2.6 KiB
Paraformer LoRA 微调说明
本文档说明如何在 FunASR 中使用 LoRA 微调 Paraformer,并提供训练、推理与 CER 评测的完整示例。
1. 前置准备
- 已准备好符合 FunASR 要求的
train.jsonl与val.jsonl。 - 进入仓库根目录(示例路径):
cd /workspace/FunASR
2. 训练配置
LoRA 配置文件:
examples/industrial_data_pretraining/paraformer/conf/paraformer_lora.yaml
关键字段说明:
model: 基座模型名称或本地模型路径。lora_only: 是否只训练 LoRA 参数。lora_bias: LoRA 偏置训练策略(none/all/lora_only)。encoder_conf.lora_*/decoder_conf.lora_*: LoRA 参数(rank/alpha/dropout)。train_data_set_list/valid_data_set_list: 训练/验证集 jsonl。
如需覆盖配置,请通过命令行 ++key=value 传参。
3. 训练脚本
脚本:
examples/industrial_data_pretraining/paraformer/lora_finetune.sh
你只需要确认脚本中的数据路径:
data_dir="${workspace}/data/list"
train_data="${data_dir}/train.jsonl"
val_data="${data_dir}/val.jsonl"
运行:
bash examples/industrial_data_pretraining/paraformer/lora_finetune.sh
训练日志与模型输出将保存在:
examples/industrial_data_pretraining/paraformer/outputs_lora
4. 推理脚本
推理脚本会读取 jsonl 输入并生成 text.hyp / text.ref:
- Python 脚本:
examples/industrial_data_pretraining/paraformer/lora_infer.py - Shell 封装:
examples/industrial_data_pretraining/paraformer/lora_infer.sh
修改 lora_infer.sh 中路径后运行:
bash examples/industrial_data_pretraining/paraformer/lora_infer.sh
输出目录默认:
examples/industrial_data_pretraining/paraformer/outputs_lora/infer
5. CER 评测
评测脚本:
examples/industrial_data_pretraining/paraformer/lora_cer.sh
运行:
bash examples/industrial_data_pretraining/paraformer/lora_cer.sh
结果会输出 CER 统计到:
examples/industrial_data_pretraining/paraformer/outputs_lora/infer/text.cer
6. 常见问题
-
训练不收敛或效果差
- 尝试调整
lora_rank、lora_alpha、lora_dropout。 - 调整
optim_conf.lr与train_conf.max_epoch。
- 尝试调整
-
推理报错找不到配置
- 确保训练输出目录中存在
config.yaml,并在推理脚本中设置正确的config_path和config_name。
- 确保训练输出目录中存在
-
多卡训练
- 设置
CUDA_VISIBLE_DEVICES,脚本会自动计算gpu_num。
- 设置
如需进一步定制,可直接在 paraformer_lora.yaml 中修改配置或在命令行传参覆盖。