Code Monkey home page Code Monkey logo

t5_finetuning's Introduction

    2024-04-22 简化
    2023-10-09 support accelerator trainer
    2023-10-07 support colossalai trainer
    2023-09-26 support transformers trainer
    2023-08-02 增加 muti lora infer 例子, 手动升级 aigc_zoo , pip install -U git+https://github.com/ssbuild/deep_training.zoo.git --force-reinstall --no-deps
	2023-06-13 support resize_token_embeddings
    2023-06-01 支持lora deepspeed 训练,0.1.9 和 0.1.10合并
    2023-05-27 add qlora transformers>=4.30
    2023-05-24 升级 lora

update information

install

  • pip install -U -r requirements.txt
  • 如果无法安装, 可以切换官方源 pip install -i https://pypi.org/simple -U -r requirements.txt

weight

data

open data

p prefix  optional
q question optional
a answer   must

 {
    "id": 0, 
    "p": "我是qwen训练的模型",
    "paragraph": [
        {
           "q": "你好",
           "a": "我是机器人,有什么可以帮助你的?"
        },
         {
             "q": "从南京到上海的路线",
             "a":  "你好,南京到上海的路线如下:1. 南京到上海,可以乘坐南京地铁1号线,在南京站乘坐轨道交通1号线。2. 南京到浦东机场,可以搭乘上海地铁1号,在陆家嘴站乘坐地铁1线,在浦东国际机场站乘坐机场快线,前往上海浦东国际机场。3. 上海到南京,可以换乘上海地铁2号线,从南京站换乘地铁2线,再从南京南站换乘地铁1路,然后到达上海站"
         }
     ]
 }

或者

 {
    "id": 0,
    "conversations": [
      {
        "from": "system",
        "value": "我是qwen训练的模型"
      },
      {
        "from": "user",
        "value": "你好"
      },
      {
        "from": "assistant",
        "value": "我是机器人,有什么可以帮助你的?"
      },
      {
        "from": "user",
        "value": "从南京到上海的路线"
      },
      {
        "from": "assistant",
        "value": "你好,南京到上海的路线如下:1. 南京到上海,可以乘坐南京地铁1号线,在南京站乘坐轨道交通1号线。2. 南京到浦东机场,可以搭乘上海地铁1号,在陆家嘴站乘坐地铁1线,在浦东国际机场站乘坐机场快线,前往上海浦东国际机场。3. 上海到南京,可以换乘上海地铁2号线,从南京站换乘地铁2线,再从南京南站换乘地铁1路,然后到达上海站"
      }
     ]
 }

使用方法

默认不使用滑动窗口
data_conf = {
    'stride': 0,
    #滑动窗口 , 数据多则相应增大,否则减小 ,stride <=0 则禁用滑动窗口
}

infer

# infer_finetuning.py 推理微调模型
# infer_lora_finetuning.py 推理微调模型
# infer_ptuning.py 推理p-tuning-v2微调模型
 python infer_finetuning.py

training

    # 制作数据
    cd scripts
    bash train_full.sh -m dataset 
    or
    bash train_lora.sh -m dataset 
    or
    bash train_ptv2.sh -m dataset 
    
    注: num_process_worker 为多进程制作数据 , 如果数据量较大 , 适当调大至cpu数量
    dataHelper.make_dataset_with_args(data_args.train_file,mixed_data=False, shuffle=True,mode='train',num_process_worker=0)
    
    # 全参数训练 
        bash train_full.sh -m train
        
    # lora adalora ia3 
        bash train_lora.sh -m train
        
    # ptv2
        bash train_ptv2.sh -m train

训练参数

训练参数

友情链接

纯粹而干净的代码

t5_finetuning's People

Contributors

ssbuild avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

t5_finetuning's Issues

微调显存最低条件

我使用的是titanxp显卡,显存12gb,运行微调显示out of memory,想问下大佬最低运行显存是多少。

label生成方式

label[:seqlen - s-1] = b_ids[1:seqlen - s]
labels = copy.deepcopy(o2['input_ids'][1:])

label向右一位没有问题,但是我看preprocess时decoder_input前面没有加个bos或者”:“
那其实target第一个字是不是就预测不出来了?

T5源码里面是显示加了decoder_start_token_id 的
shifted_input_ids = input_ids.new_zeros(input_ids.shape)
shifted_input_ids[..., 1:] = input_ids[..., :-1].clone()
shifted_input_ids[..., 0] = decoder_start_token_id

训练loss不降

42万条医学问答数据。刚训练第一个epoch,训练进度只有5%、训练了1000+个batch,loss就开始反弹。chatglm的旧版代码也是同样,loss很快会反弹,新版代码就ok了。是不是chatyuan也是类似?有点儿小bug还没修改~麻烦大神看一下呗

推理测试的代码

大佬您好,请问您可以更新一下对fine-tune后模型的推理测试的代码吗?
另外,训练是否有一些策略呢,比如提升speed
谢谢!
多么令人敬爱的大佬!@ssbuild

训练的完整步骤

能不能在README里更新一下训练的完整步骤?另外也说明一下是否一定需要GPU? 谢谢

data_utils. preprocess 转义

data_utils.py里面的preprocess

为啥要把\n 换成\n, \t换成\t

我看chatyuan 在对话生成式直接在每个角色后面拼上\n就行了
用户:xxx \n 小元:
就可以生成后续文字

preprocess会不会干扰原来的模型了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.