# pytorch_train **Repository Path**: dr_eric/pytorch_train ## Basic Information - **Project Name**: pytorch_train - **Description**: pytorch 大模型微调训练 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FSDP 本地大模型微调项目 ## 项目结构 ``` fsdp_train/ ├── train.py # 主训练脚本 ├── configs/ │ └── config.json # 训练配置文件 ├── data/ # 放置数据集 │ └── train.jsonl ├── models/ # 放置本地模型 │ └── your_model/ └── output/ # 训练输出目录 ``` ## 环境准备 1. 安装依赖: ```bash pip install -r requirements.txt ``` 2. 确保安装了 PyTorch (支持 CUDA) ## 数据集格式 支持三种格式: 1. **JSONL 格式** (推荐): ```json {"text": "你的训练文本1"} {"text": "你的训练文本2"} ``` 2. **JSON 格式**: ```json [{"text": "你的训练文本1"}, {"text": "你的训练文本2"}] ``` 3. **TXT 格式** (每行一个样本): ``` 你的训练文本1 你的训练文本2 ``` ## 使用方法 ### 单机多卡训练 ```bash torchrun --nproc_per_node=8 train.py \ --model_path ./models/your_model \ --data_path ./data/train.jsonl \ --output_dir ./output \ --batch_size 4 \ --num_epochs 3 \ --learning_rate 2e-5 ``` ### 使用配置文件 修改 `configs/config.json` 后: ```bash python train.py --model_path ./models/your_model --data_path ./data/train.jsonl ``` ## 参数说明 | 参数 | 默认值 | 说明 | |------|--------|------| | --model_path | 必需 | 本地模型路径 | | --data_path | 必需 | 本地数据集路径 | | --output_dir | ./output | 输出目录 | | --max_length | 512 | 最大序列长度 | | --batch_size | 4 | 每设备批次大小 | | --num_epochs | 3 | 训练轮数 | | --learning_rate | 2e-5 | 学习率 | | --weight_decay | 0.01 | 权重衰减 | | --gradient_accumulation_steps | 1 | 梯度累积步数 | | --logging_steps | 10 | 日志输出步数 | | --save_steps | 100 | 保存检查点步数 | ## 评测模块 ### 1. DeepEval 评测 (推荐) DeepEval 是一个功能强大的 LLM 评测框架,支持多种评测指标。 **克隆地址:** ```bash https://github.com/A-Vamshi/deepeval.git ``` **安装依赖:** ```bash pip install -r requirements.txt ``` **准备测试数据:** 创建 `data/test_data.json` 文件,格式如下: ```json [ { "question": "什么是人工智能?", "answer": "人工智能是计算机科学的一个分支...", "context": "人工智能(Artificial Intelligence,简称AI)是..." } ] ``` **运行评测:** ```bash python eval.py --model_path ./output/final_model --test_data_path ./data/test_data.json ``` **支持的评测指标:** - **Hallucination** - 幻觉检测 - **Faithfulness** - 事实一致性 - **AnswerRelevancy** - 答案相关性 - **ContextualPrecision** - 上下文精确性 - **ContextualRecall** - 上下文召回率 - **ContextualF1** - 上下文F1分数 - **LLM-as-Judge** - 使用LLM作为裁判 ### 2. 传统 Benchmark 评测 使用 `lm-evaluation-harness` 进行标准 benchmark 评测: ```bash pip install lm-eval lm_eval --model hf \ --model_args pretrained=./output/final_model \ --tasks mmlu,hellaswag,arc_easy \ --num_fewshot 5 \ --output_path ./eval_results ``` ## 注意事项 1. 确保 CUDA 版本与 PyTorch 兼容 2. 多卡训练需要 NCCL 后端 3. 根据显存调整 batch_size 4. 本地模型需要包含 tokenizer 和模型权重