Giter Site home page Giter Site logo

chatglm_finetuning's Introduction

3月26日 增加三种数据策略,欢迎指正

1.安装

  • pip install -i https://pypi.org/simple -U deep_training>=0.0.21 cpm_kernels icetk transformers>=4.26.1 deepspeed
  • 为了统一各种问题, deep_training 最低要求 0.0.21@post0

2.更新详情

3.深度学习常规任务例子

4.ChatGLM 预训练权重

chatglm-6b

5.数据示例

给出一种qa 数据示例 , 如果想跟母模型保持一致,可以参考https://huggingface.co/THUDM/chatglm-6b 数据组织结构.
单条数据示例1
{
    "id": 0, "paragraph": [
        #一轮会话
        {
            "q": "从南京到上海的路线",
            "a": [
                "你好,南京到上海的路线如下:",
                "1. 南京到上海,可以乘坐南京地铁1号线,在南京站乘坐轨道交通1号线。",
                "2. 南京到浦东机场,可以搭乘上海地铁1号,在陆家嘴站乘坐地铁1线,在浦东国际机场站乘坐机场快线,前往上海浦东国际机场。",
                "3. 上海到南京,可以换乘上海地铁2号线,从南京站换乘地铁2线,再从南京南站换乘地铁1路,然后到达上海站"
            ]
        }
        #二轮....
    ]
}
单条数据示例2
{"id": 0, "paragraph": [

    {
        "q": "写一个诗歌,关于冬天",
        "a": [
            "冬夜寂静冷,",
             "云在天边飘,", "冰封白雪上, ", "寒冷像一场雪。",
             " ",
             "雪花融化成冰,",
             "像那雪花飘洒,",
             "在寒冷的冬天,",
             "感受春天的喜悦。",
             " 冬日里,",
             "风雪渐消,",
             "一片寂静,",
             "把快乐和温暖带回家。"
        ]
    }
    ]
}

6.生成训练record

python data_utils.py

注:
num_process_worker 为多进程制作数据 , 如果数据量较大 , 适当调大至cpu数量
dataHelper.make_dataset_with_args(data_args.train_file,mixed_data=False, shuffle=True,mode='train',num_process_worker=0)

7.推理

# infer.py 推理预训练模型
# infer_finetuning.py 推理微调模型
# infer_lora_finetuning.py 推理微调模型
 python infer.py

硬件需求

量化等级 最低 GPU 显存
FP16(无量化) 13 GB
INT8 10 GB
INT4 6 GB

inference

8.训练

完整参数为 config.json
若显存不足 , 可以修改 config_small.json num_layers 层数
训练精度 可以修改 config_small.json precision 16 32

如果优化器不是lion ,可以尝试将config/config_small.json precision 改为32 ,然后修改 train.py Trainner 添加参数 precision=16 或者precision='bf16' 

python train.py

9.是否开启lora finetuning

with_lora

10.是否开启deepspeed

启动则将data_utils.py  修改 enable_deepspeed 
lora 模式暂时不支持deepspeed

11. Reference

https://github.com/THUDM/ChatGLM-6B

chatglm_finetuning's People

Contributors

spongebbob avatar ssbuild avatar

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.