Files
freedakgmail 6116b1f3c6
Update API Documentation / build-api-docs (push) Has been cancelled
Initial commit: FunASR Speech Recognition Toolkit
Add complete FunASR codebase including models, runtime, and documentation.
2026-07-09 22:38:58 +08:00

2.6 KiB
Raw Permalink Blame History

Paraformer LoRA 微调说明

本文档说明如何在 FunASR 中使用 LoRA 微调 Paraformer,并提供训练、推理与 CER 评测的完整示例。

1. 前置准备

  1. 已准备好符合 FunASR 要求的 train.jsonlval.jsonl
  2. 进入仓库根目录(示例路径):
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. 常见问题

  1. 训练不收敛或效果差

    • 尝试调整 lora_ranklora_alphalora_dropout
    • 调整 optim_conf.lrtrain_conf.max_epoch
  2. 推理报错找不到配置

    • 确保训练输出目录中存在 config.yaml,并在推理脚本中设置正确的 config_pathconfig_name
  3. 多卡训练

    • 设置 CUDA_VISIBLE_DEVICES,脚本会自动计算 gpu_num

如需进一步定制,可直接在 paraformer_lora.yaml 中修改配置或在命令行传参覆盖。