# session1 **Repository Path**: gidean/session1 ## Basic Information - **Project Name**: session1 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-01 - **Last Updated**: 2025-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # T5-Base 中文问答模型 基于Google T5-Base的生成式问答模型,使用中文预训练模型 `uer/t5-base-chinese-cluecorpussmall` 进行微调。 ## 功能特性 - 🤖 基于T5-Base架构的生成式问答 - 📊 支持BLEU-1/2/3/4评估指标 - 📈 训练过程可视化(损失曲线图) - 💾 模型保存和加载 - 🔄 交互式预测界面 ## 环境要求 - Python 3.7+ - PyTorch 1.9+ - CUDA(可选,用于GPU加速) ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 数据格式 训练数据应为JSONL格式,每行一个JSON对象: ```json {"context": "违规分为:一般违规扣分、严重违规扣分、出售假冒商品违规扣分,淘宝网每年12月31日24:00点会对符合条件的扣分做清零处理", "answer": "12月31日24:00", "question": "淘宝扣分什么时候清零", "id": 203} ``` 字段说明: - `context`: 参考文章/上下文 - `question`: 问题 - `answer`: 标准答案 - `id`: 数据ID(可选) ## 使用方法 ### 1. 模型训练 ```bash # 使用默认参数训练 python T5BaseChat.py --mode train # 自定义参数训练 python T5BaseChat.py --mode train \ --train_data your_train_data.jsonl \ --test_data your_test_data.jsonl \ --epochs 5 \ --batch_size 16 \ --learning_rate 3e-5 ``` 训练完成后会: - 保存模型到 `./t5_qa_model/` 目录 - 生成训练曲线图 `training_curves.png` - 显示每个epoch的训练和验证损失 ### 2. 模型预测 ```bash # 交互式预测 python T5BaseChat.py --mode predict --model_path ./t5_qa_model ``` 然后按提示输入上下文和问题即可获得答案。 ### 3. 模型评估 ```bash # 计算BLEU分数 python T5BaseChat.py --mode evaluate \ --model_path ./t5_qa_model \ --test_data your_test_data.jsonl ``` ### 4. 编程接口使用 ```python from T5BaseChat import T5QAModel # 初始化模型 qa_model = T5QAModel() # 训练模型 qa_model.train( train_data_path='train_data.jsonl', val_data_path='test_data.jsonl', epochs=3, batch_size=8 ) # 预测答案 context = "北京是中华人民共和国的首都,位于华北平原北部" question = "中国的首都是哪里?" answer = qa_model.predict(context, question) print(f"答案: {answer}") # 计算BLEU分数 bleu_scores = qa_model.calculate_bleu_scores('test_data.jsonl') print(bleu_scores) ``` ## 参数说明 ### 命令行参数 - `--mode`: 运行模式 (train/predict/evaluate) - `--train_data`: 训练数据路径 - `--test_data`: 测试数据路径 - `--model_path`: 模型保存/加载路径 - `--epochs`: 训练轮数 - `--batch_size`: 批次大小 - `--learning_rate`: 学习率 ### 模型参数 - `max_length`: 输入序列最大长度 (默认512) - `num_beams`: beam search大小 (默认4) - `early_stopping`: 是否提前停止 (默认True) ## 输出文件 - `./t5_qa_model/`: 训练好的模型文件 - `training_curves.png`: 训练损失曲线图 - `train_data.jsonl`: 示例训练数据 - `test_data.jsonl`: 示例测试数据 ## 评估指标 模型使用BLEU分数进行评估: - BLEU-1: 单词级别匹配 - BLEU-2: 双词组合匹配 - BLEU-3: 三词组合匹配 - BLEU-4: 四词组合匹配 ## 注意事项 1. 首次运行会自动下载预训练模型,需要网络连接 2. 如果没有提供训练数据,程序会自动创建示例数据 3. GPU训练可显著提升速度,建议使用CUDA 4. 训练时间取决于数据量和硬件配置 ## 故障排除 ### 常见问题 1. **内存不足**: 减小batch_size参数 2. **CUDA错误**: 检查PyTorch和CUDA版本兼容性 3. **模型下载失败**: 检查网络连接或使用镜像源 ### 性能优化 - 使用GPU加速训练 - 适当调整batch_size和learning_rate - 使用混合精度训练(FP16) ## 许可证 本项目仅供学习和研究使用。