# 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. 项目可能做的不够完善,有问题联系我我来继续完善