File size: 3,315 Bytes
34cc882 bbaedc3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | # TFMF LoRA 训练与 Web Search 代理
## 1. LoRA 训练脚本
训练脚本已改为可命令行参数模式,直接指定训练数据目录、输出目录和基座模型目录。
示例用法:
```bash
cd /data/coding
python TFMF/train_lora_auto.py \
--data-dir ./TFMF/dataset \
--output-dir ./TFMF/lora_adapters/teacher_chinese_auto \
--model-path /data/coding/TFMF \
--epochs 3 \
--batch-size 8 \
--gradient-accumulation-steps 2 \
--learning-rate 2e-4
```
如果只想使用单个文件:
```bash
python TFMF/train_lora_auto.py \
--data-path ./TFMF/dataset/语文教师_语文_高二_v1.jsonl \
--output-dir ./TFMF/lora_adapters/teacher_chinese_auto
```
脚本会自动加载 `--data-dir` 目录下所有 `.jsonl` 文件,并按 `--validation-split` 比例切分训练/验证集。
默认会保存最终适配器到:
```bash
./TFMF/lora_adapters/teacher_chinese_auto/final
```
## 2. loss 打印说明
当前 `train_lora_auto.py` 默认 `logging_steps=10`,也就是:
- 每 10 个训练 step 打印一次训练 loss
- 如果训练总步数不超过 10,则可能只打印一次训练 loss
- 终端输出中的 `loss` 是训练过程中的中间 loss
- `eval_loss` 是验证集 loss
- `train_loss` 是训练结束后的整体平均 loss
如果需要更多频次的 loss 输出,可以在运行时手动指定更小的参数,例如:
```bash
python TFMF/train_lora_auto.py \
--data-path ./TFMF/dataset/语文教师_语文_高二_v1.jsonl \
--output-dir ./TFMF/lora_adapters/teacher_chinese_auto \
--logging-steps 2
```
## 3. Web Search 评估脚本
新增 `TFMF/eval_lora_auto.py`,用于加载基座模型和 LoRA 适配器,并通过提示词注入 + Tavily 联网进行评估。
运行前先设置 API Key:
```bash
export TAVILY_API_KEY="tvly-xxx"
```
评估测试数据模式:
```bash
cd /data/coding
python TFMF/eval_lora_auto.py \
--model-path /data/coding/TFMF \
--adapter-path ./TFMF/lora_adapters/teacher_chinese_auto/final \
--tavily-api-key "$TAVILY_API_KEY" \
--data-path ./TFMF/dataset/语文教师_语文_高二_v1.jsonl \
--n-samples 3
```
交互模式:
```bash
python TFMF/eval_lora_auto.py \
--model-path /data/coding/TFMF \
--adapter-path ./TFMF/lora_adapters/teacher_chinese_auto/final \
--tavily-api-key "$TAVILY_API_KEY" \
--interactive
```
## 4. 目录结构建议
- 训练数据放在一个文件夹里,例如 `TFMF/dataset/`
- LoRA 输出放到 `TFMF/lora_adapters/your_adapter_name/`
- 评估脚本加载 `.../final` 下的 LoRA 适配器
## 5. 客户端使用说明
1. 使用 `_auto` 后缀的 `train_lora.py` 和 `eval_lora_auto.py`
2. 将训练数据放到一个文件夹,例如 `TFMF/dataset/`。
3. 运行 `train_lora_auto.py`,指定 `--data-dir` 或 `--data-path`,并指定 `--output-dir`。
4. 训练完成后,确认 `./TFMF/lora_adapters/teacher_chinese_auto/final` 已生成。
5. 使用 `python TFMF/eval_lora_auto.py` 加载模型并进行联网评估。
6. 如果需要实时提问,可加上 `--interactive` 进入交互模式。
7. 未来不一定需要用tavily,作为演示我选择用免费1000次/月的tavily,未来需要改动的时候改 `eval_lora_auto.py` 里的api调用部分即可
8. 项目可能做的不够完善,有问题联系我我来继续完善
|