# 基于Qwen2.5-0.5B-instruct大模型的中医问诊AI助手 **Repository Path**: peach-blossom-snowfall/Medical-consultation ## Basic Information - **Project Name**: 基于Qwen2.5-0.5B-instruct大模型的中医问诊AI助手 - **Description**: 基于Qwen2.5-0.5B-instruct大模型,利用LoRa微调技术开发了一个中医问诊AI助手。通过Streamlit构建了Web应用,为用户提供智能化的中医症状分析与健康建议。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-11-17 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中医问诊AI助手 ## 项目概述 基于Qwen2.5-0.5B-instruct大模型,利用LoRa微调技术开发了一个中医问诊AI助手。通过Streamlit构建了Web应用,为用户提供智能化的中医症状分析与健康建议。 ## 技术栈 - **大模型与训练**: Qwen2.5-0.5B-instruct, LoRa, PyTorch, PEFT - **数据处理**: Python, Transformers, Scikit-learn - **应用开发**: Streamlit ## 项目结构 ``` ├── config.py # 参数配置文件 ├── medical_dataset.py # 数据集处理模块 ├── medical_train.py # 模型训练脚本 ├── medical_test.py # 模型测试与交互脚本 ├── ui.py # Streamlit Web界面 ├── clean_data.py # 数据清洗与预处理 └── cleaned_data/ # 清洗后的数据集目录 ├── train.json ├── val.json └── test.json ``` ## 核心功能 ### 1. 数据处理 - 对54万条开源数据进行清洗、去重和标准化 - 完成训练集、验证集与测试集的划分 - 支持数据质量过滤和长度控制 ### 2. 模型微调 - 配置LoRa微调参数,适配Qwen2.5模型结构 - 搭建完整的训练流程,支持验证集评估 - 在RTX4090硬件上完成高效训练 - 自动保存最佳模型和训练检查点 ### 3. Web应用 - 基于Streamlit的交互式问诊界面 - 实时对话管理与历史记录 - 可调节的生成参数(回答长度、多样性) - 优化的显存管理和加载策略 ## 快速开始 ### 环境要求 ```bash pip install torch transformers peft streamlit scikit-learn ``` ### 数据准备 1. 准备原始数据文件 `medicalQA.json` 2. 运行数据清洗: ```bash python clean_data.py ``` ### 模型训练 ```bash python medical_train.py ``` ### 模型测试 ```bash python medical_test.py ``` ### 启动Web应用 ```bash streamlit run ui.py ``` ## 配置说明 ### 主要参数(config.py) ```python # 路径配置 BASE_MODEL_PATH = "/path/to/Qwen2___5-0___5B-Instruct" TRAIN_DATA_PATH = "/path/to/train.json" VAL_DATA_PATH = "/path/to/val.json" TEST_DATA_PATH = "/path/to/test.json" OUTPUT_DIR = "./qwen-lora-Medicine" # 训练参数 BATCH_SIZE = 2 LEARNING_RATE = 1.5e-5 EPOCHS = 1 # LoRA配置 LORA_R = 8 LORA_ALPHA = 16 LORA_DROPOUT = 0.1 ``` ## 主要特性 ### 数据处理 - **智能清洗**: 过滤无效字符、空内容和重复样本 - **长度控制**: 基于tokenizer准确计算序列长度 - **质量保证**: 严格的字段完整性检查和格式标准化 ### 模型训练 - **LoRA优化**: 针对Qwen2.5模型结构优化的适配器配置 - **内存优化**: 4090显存友好的训练策略 - **中断恢复**: 支持训练过程的中断和恢复 - **最佳模型保存**: 基于验证损失的自动最优模型选择 ### Web界面 - **用户友好**: 直观的聊天界面和参数调节 - **性能优化**: 缓存机制和流式响应 - **安全提示**: 自动添加医疗免责声明 - **历史管理**: 智能的对话历史维护 ## 使用说明 1. **数据准备**: 确保原始数据文件格式正确 2. **模型训练**: 根据硬件调整batch_size等参数 3. **Web部署**: 修改模型路径后启动Streamlit服务 4. **交互使用**: 在Web界面中输入症状描述获取中医建议 ## 注意事项 - 本项目仅供学习和研究使用,不能替代专业医疗诊断 - 训练前请确保有足够的GPU显存(建议16GB以上) - 首次加载模型可能需要较长时间 - 建议在专业指导下使用中医建议 ## 负责人 - **数据处理**: 负责54万条数据的清洗、去重和标准化,完成数据集划分 - **模型微调**: 配置LoRa参数,搭建训练流程,在RTX4090上完成训练与评估 - **应用开发**: 使用Streamlit开发Web界面,优化性能解决显存溢出问题