Initial commit: FunASR Speech Recognition Toolkit
Update API Documentation / build-api-docs (push) Has been cancelled
Update API Documentation / build-api-docs (push) Has been cancelled
Add complete FunASR codebase including models, runtime, and documentation.
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
# Paraformer LoRA 微调说明
|
||||
|
||||
本文档说明如何在 FunASR 中使用 LoRA 微调 Paraformer,并提供训练、推理与 CER 评测的完整示例。
|
||||
|
||||
## 1. 前置准备
|
||||
|
||||
1. 已准备好符合 FunASR 要求的 `train.jsonl` 与 `val.jsonl`。
|
||||
2. 进入仓库根目录(示例路径):
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
你只需要确认脚本中的数据路径:
|
||||
|
||||
```bash
|
||||
data_dir="${workspace}/data/list"
|
||||
train_data="${data_dir}/train.jsonl"
|
||||
val_data="${data_dir}/val.jsonl"
|
||||
```
|
||||
|
||||
运行:
|
||||
|
||||
```bash
|
||||
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
|
||||
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
|
||||
bash examples/industrial_data_pretraining/paraformer/lora_cer.sh
|
||||
```
|
||||
|
||||
结果会输出 CER 统计到:
|
||||
|
||||
```
|
||||
examples/industrial_data_pretraining/paraformer/outputs_lora/infer/text.cer
|
||||
```
|
||||
|
||||
## 6. 常见问题
|
||||
|
||||
1. **训练不收敛或效果差**
|
||||
- 尝试调整 `lora_rank`、`lora_alpha`、`lora_dropout`。
|
||||
- 调整 `optim_conf.lr` 与 `train_conf.max_epoch`。
|
||||
|
||||
2. **推理报错找不到配置**
|
||||
- 确保训练输出目录中存在 `config.yaml`,并在推理脚本中设置正确的 `config_path` 和 `config_name`。
|
||||
|
||||
3. **多卡训练**
|
||||
- 设置 `CUDA_VISIBLE_DEVICES`,脚本会自动计算 `gpu_num`。
|
||||
|
||||
---
|
||||
|
||||
如需进一步定制,可直接在 `paraformer_lora.yaml` 中修改配置或在命令行传参覆盖。
|
||||
Reference in New Issue
Block a user