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
Baichuan 7B/13B W_pack baichuan
Baichuan2 7B/13B W_pack baichuan2
BLOOM 560M/1.1B/1.7B/3B/7.1B/176B query_key_value -
BLOOMZ 560M/1.1B/1.7B/3B/7.1B/176B query_key_value -
ChatGLM3 6B query_key_value chatglm3
Falcon 7B/40B/180B query_key_value falcon
InternLM 7B/20B q_proj,v_proj intern
LLaMA 7B/13B/33B/65B q_proj,v_proj -
LLaMA-2 7B/13B/70B q_proj,v_proj llama2
Mistral 7B q_proj,v_proj mistral
Phi-1.5 1.3B Wqkv -
Qwen 7B/14B c_attn qwen
XVERSE 7B/13B/65B q_proj,v_proj xverse

软件依赖

  • 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容