littlebot
Published on 2025-04-10 / 1 Visits
0

【源码】基于Python和PyTorch的LLM微调系统

项目简介

本项目是基于Python和PyTorch框架构建的LLM(大型语言模型)微调系统。其核心目标是通过微调预训练的LLM,提升模型在特定领域或任务上的性能,将通用的大型语言模型转化为针对特定任务的专家系统,项目覆盖了数据处理、模型训练、预测及结果评估等多个关键环节。

项目的主要特性和功能

  1. 数据处理:提供训练和测试数据集,同时支持数据清洗和增强,保证数据质量。
  2. 模型训练:运用Lora技术对Bloom模型进行微调,并且支持绘制训练过程图以监控训练进度。
  3. 预测功能:支持测试集预测、本地预测、单次Web预测和流式Web预测等多种方式,满足不同场景需求。
  4. 结果评估:提供详细的训练日志和可视化工具,支持对模型性能进行综合评估,包含准确率、召回率等指标。
  5. 灵活配置:支持多种参数配置,如模型路径、Lora超参数等,还提供友好的用户界面和API接口,便于用户操作。

安装使用步骤

1. 安装环境

bash conda create -n domain-bloom python=3.10 conda activate domain-bloom pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 pip install -r requirements.txt

2. 配置模型

编辑 run_config/Bloom_config.json 文件,设置 model_name_or_path 为下载的原始模型路径。

3. 开始训练

bash python finetune.py --model_config_file run_config/Bloom_config.json --lora_hyperparams_file run_config/lora_hyperparams_bloom.json --use_lora

4. 进行预测

测试集预测

bash python generate_test.py --dev_file ./data_dir/domain.test.json --model_name_or_path /xxx/bloomz-7b1-mt --lora_weights trained_models/xxx/

本地流式预测

bash python generate_stream_local.py --model_name_or_path /xx/bloomz-xx --lora_weights trained_models/xx/

Web一次性返回结果

启动后端: bash python generate_once_web_backend.py --model_name_or_path /xx/bloomz-xx --lora_weights trained_models/xx 调用接口: bash python generate_once_web_frontend.py

Web流式返回结果

启动后端: bash python generate_stream_web_frontend.py --model_name_or_path /xx/bloomz-xx --lora_weights trained_models/xx 调用接口: bash python generate_stream_web_frontend.py

5. 结果可视化

bash python plot_loss.py --json_file ./trained_models/xx/checkpoint-xx/trainer_state.json

通过上述步骤,可顺利安装、配置、训练和使用本项目,实现对LLM的微调并应用于特定领域或任务。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】