llm_finetune网页一键式大模型训练到服务的全流程平台

[LLM Finetune 网页格式一键式大模型训练到服务的全流程平台,包括数据上传、微调训练、模型合并、模型部署服务等,无需python和shell开发]

平台用来给不了解研发、算法的人员使用的,所以平台的使用尽量简单,不需要用户了解太多的细节,只需要按照流程操作即可。
用最简的页面,包括首页资源查看、训练数据上传下载、大模型微调训练、大模型权重合并输出、大模型能力评估、大模型部署服务启动等功能。
最后的训练脚本页面,开发人员能够自由修改脚本,提供了更高级的使用方法。

llm_finetune github

本项目受益于 LLaMA-Efficient-Tuning

支持功能

[23/11/14]
配置进一步精简,基本0配置启动;
支持chatglm3, qwen, intern, xverse, mistral;
支持大模型评估,支持C-EVAL、MMLU、CMMLU;
训练和合并支持指定checkpoint路径;
系统监控增加gpu进程和docker匹配;

[23/10/28]
代码重构,支持整体代码整合到alita-trainer里;
yaml配置文件精简规整,多模型的训练、合并脚本合并统一;
模型部署服务bug修复;
支持大模型评估,支持BLEU-4、ROUGE-1/2/L;
支持微调训练后的大模型作为训练模型再训练;
系统监控除gpu,支持cpu、mem和disk监控;

[23/09/28]
支持baichuan、llama2、llama、glm2等大模型,支持QLoRA;
支持gpu预览、大模型微调训练、模型合并、部署服务(测试中);
支持api方式,微调训练、模型合并、模型发布;
增加数据管理,支持上传excel文件;
增加训练脚本管理,支持自定义脚本编辑和训练,支持pt/sft/rm/ppo/dpo训练阶段,支持train/eval/predict任务;
增加模型快速编辑能力,能够编辑指定问题的回答;

支持模型

模型名模型大小默认模块Template
Baichuan7B/13BW_packbaichuan
Baichuan27B/13BW_packbaichuan2
BLOOM560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value-
BLOOMZ560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value-
ChatGLM36Bquery_key_valuechatglm3
Falcon7B/40B/180Bquery_key_valuefalcon
InternLM7B/20Bq_proj,v_projintern
LLaMA7B/13B/33B/65Bq_proj,v_proj-
LLaMA-27B/13B/70Bq_proj,v_projllama2
Mistral7Bq_proj,v_projmistral
Phi-1.51.3BWqkv-
Qwen7B/14Bc_attnqwen
XVERSE7B/13B/65Bq_proj,v_projxverse

软件依赖

  • Python 3.10 和 PyTorch 1.13.1
  • 🤗Transformers, Datasets, Accelerate, PEFT 和 TRL
  • sentencepiece, protobuf 和 tiktoken
  • jieba, rouge-chinese 和 nltk (用于评估)
  • gradio 和 matplotlib (用于网页端交互)
  • uvicorn, fastapi 和 sse-starlette (用于 API)

llm_finetune服务,全新部署或历史版本升级

一、环境准备:

  1. 代码

    git clone https://github.com/simonlisiyu/llm_finetune.git

    cd llm_finetune

    pip install -r requirements.txt

  2. 目录准备

    cd llm_finetune

    创建配置目录mkdir config,生成配置文件 touch config/trainer.yaml,关联配置文件 ln -s /opt/llm_finetune/config/trainer.yaml scripts/src/llmtuner/

    关联数据目录: ln -s /data data

    关联大模型目录:ln -s /llm llm

  3. 修改配置

    vi config/trainer.yaml

    注意:

    1. $IP 替换为本机ip;(如192.168.1.100)
    2. $BASE_DIR 替换为本机llm_finetune路径;
    application: 
      ip: '$IP' 
      port: $PORT 
      log_level: 'info'
    trainer:
      base_dir: '$BASE_DIR'
    
    

    参考下面的例子:

    application:
      ip: '192.168.1.100'
      port: 8000
      log_level: 'info'
    trainer:
      base_dir: '/opt/llm_finetune/'
    
    

    vi config/model_info.yaml

    注意:(初始化的大模型需要手动编辑model_info.yaml,后续训练的大模型会自动更新到此文件内,无需再手动编辑)

    1. $MODEL_NAME 替换为模型名称;(如chatglm2-6b)
    2. $MODEL_DIR 替换为基于BASE_DIR的模型相对路径;(如llm/ChatGLM2-6B)
    3. $TEMPLATE$SIZE$DATETIME 替换为对应的内容;
    {
      "$MODEL_NAME": {
        "model_path": "$MODEL_DIR",
        "template": "$TEMPLATE",
        "size": "$SIZE",
        "update_at": "$DATETIME"
      }
    }
    

    参考下面的例子:

    {
      "chatglm2-6b": {
        "model_path": "llm/ChatGLM2-6B",
        "template": "chatglm2",
        "size": "6",
        "update_at": "2023-07-06_15:56:28"
      }
    }
    
  4. 启动服务

    python main.py

  5. 查看页面
    http://127.0.0.1:8000

使用介绍

首页

  • GPU资源查看
  • GPU卡进程使用情况
  • CPU资源使用率
  • MEM资源使用率
  • DISK资源使用率


    index

数据管理

  • 支持数据上传、下载、查看、删除
  • 支持json、excel格式的sft数据集


    data

微调训练

  • 极简页面一键训练,支持模型选择、数据选择、训练参数(也可不填用默认值)
  • 训练过程中支持查看日志
  • 列表展示历史训练记录


    finetune

模型合并

  • 极简页面一键合并,支持基座模型选择、输出目录指定
  • 合并过程中支持查看日志
  • 列表展示历史合并记录


    merge

模型评估

  • 极简页面一键评估,支持模型选择、数据选择、评估参数(也可不填用默认值)
  • 支持BLEU&ROUGE、支持C-EVAL、MMLU、CMMLU等评估方式
  • 评估过程中支持查看日志
  • 列表展示历史评估记录


    eval

模型测试(修改测试中)

  • 快速部署大模型服务(fastchat+docker),支持模型命名、模型选择、GPU卡、端口指定
  • 部署过程中支持查看docker日志
  • 列表展示docker部署情况,支持启动停止操作


    chat

训练脚本

  • 高级开发用法,支持训练脚本在线编辑、运行
  • 支持预训练pt、微调训练sft、奖励模型训练rm、强化学习ppo/dpo、模型合并merge等脚本


    script
最后编辑于:2024-09-09 20:11:44


喜欢的朋友记得点赞、收藏、关注哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值