当前位置: 首页 > news >正文

建设网站交纳党费软文内容

建设网站交纳党费,软文内容,dedecms 模版网站,青岛做网站的GPT实战系列-ChatGLM2模型的微调训练参数解读 目录 GPT实战系列-ChatGLM2模型的微调训练参数解读ChatGLM2模型1、P-Tuning模型微调2、微调训练配置参数train.sh中配置参数训练配置信息模型配置信息附录:训练正常运行打印信息 ChatGLM2模型 ChatGLM-6B是开源的文本生…

GPT实战系列-ChatGLM2模型的微调训练参数解读

目录

    • GPT实战系列-ChatGLM2模型的微调训练参数解读
      • ChatGLM2模型
      • 1、P-Tuning模型微调
      • 2、微调训练配置参数
        • train.sh中配置参数
        • 训练配置信息
        • 模型配置信息
        • 附录:训练正常运行打印信息

ChatGLM2模型

ChatGLM-6B是开源的文本生成式对话模型,基于General Language Model(GLM)框架,具有62亿参数,FP16 半精度下,ChatGLM-6B 需要 13GB 左右的显存进行推理。

ChatGLM-6B另一个突出优点是 可以部署在消费级显卡上,结合模型蒸馏技术和模型量化技术,可以进一步降低到 10GB(INT8) 和 6GB(INT4)。实测在2080ti显卡预测上(INT4)显存占用6G左右。

1、P-Tuning模型微调

P-Tuning的全称是Prefix-tuning,意为“前缀调优”。它通过在模型输入前添加小段Discrete prompt(类似填空句),并只优化这个prompt来实现模型微调。P-tuning-v2是基于Prompt-tuning方法的NLP模型微调技术。总体来说,P-tuning-v2是Prompt tuning技术的升级版本,使得Prompt的表示能力更强,应用也更灵活广泛。它被认为是Prompt tuning类方法中效果最优且易用性最好的版本。

代码实现对于 ChatGLM2-6B 模型基于 P-Tuning v2 的微调。P-Tuning v2 将需要微调的参数量,减少到原来的 0.1%,再通过模型量化、Gradient Checkpoint 等方法,预测最低只需要 7GB 显存即可运行。

将训练和测试数据解压后的 AdvertiseGen 目录放到ptuning目录下。

ChatGLM2的训练源代码:https://github.com/THUDM/ChatGLM2-6B

文件目录结构:

├── FAQ.md
├── MODEL_LICENSE
├── README.md   说明文档
├── README_EN.md
├── api.py
├── cli_demo.py
├── evaluation
│  ├── README.md
│  └── evaluate_ceval.py
├── openai_api.py
├── ptuning
│  ├── README.md 说明文档
│  ├── arguments.py
│  ├── deepspeed.json
│  ├── ds_train_finetune.sh
│  ├── evaluate.sh
│  ├── evaluate_finetune.sh
│  ├── main.py
│  ├── train.sh  训练脚本
│  ├── train_chat.sh
│  ├── trainer.py
│  ├── trainer_seq2seq.py
│  ├── web_demo.py
│  └── web_demo.sh 测试脚本
├── requirements.txt 环境依赖文件
├── resources
│  ├── WECHAT.md
│  ├── cli-demo.png
│  ├── knowledge.png
│  ├── long-context.png
│  ├── math.png
│  ├── web-demo.gif
│  ├── web-demo2.gif
│  └── wechat.jpg
├── utils.py
├── web_demo.py
└── web_demo2.py

2、微调训练配置参数

训练之前,需要根据自己的训练需求,训练数据和机器配置情况修改配置参数。

train.sh中配置参数
PRE_SEQ_LEN=128 #  soft prompt 长度
LR=2e-2     # 训练学习率
NUM_GPUS=2  # GPU卡的数量torchrun --standalone --nnodes=1 --nproc-per-node=$NUM_GPUS main.py \--do_train \   # 执行训练功能,还可以执行评估功能--train_file AdvertiseGen/train.json \   # 训练文件目录--validation_file AdvertiseGen/fval.json \   # 验证文件目录--prompt_column content \       # 训练集中prompt提示名称,对应训练文件,测试文件的"content"--response_column summary \      # 训练集中答案名称,对应训练文件,测试文件的"summary"--overwrite_cache \              # 缓存,重复训练一次的时候可删除--model_name_or_path THUDM/chatglm-6b \  # 加载模型文件目录,也可修改为本地模型的路径--output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \    # 保存训练模型文件目录--overwrite_output_dir \     # 覆盖训练文件目录--max_source_length 64 \     # 最大输入文本的长度--max_target_length 128 \--per_device_train_batch_size 1 \    # batch_size 训练批次根据显存调节--per_device_eval_batch_size 1 \     # 验证批次--gradient_accumulation_steps 16 \   # 梯度累加的步数--predict_with_generate \--max_steps 3000 \    # 最大训练模型的步数--logging_steps 10 \  # 多少步打印日志一次--save_steps 1000 \    # 多少步保存模型一次--learning_rate $LR \  # 学习率--pre_seq_len $PRE_SEQ_LEN \--quantization_bit 4   # 量化,也可修改为int8

训练配置参数具体解释

# 长度和 学习率

–PRE_SEQ_LEN 是 soft prompt 长度,可以进行调节以取得最佳的效果。

–LR 是训练的学习率

# 本地数据,训练集和测试集的路径
–train_file AdvertiseGen/train.json
–validation_file AdvertiseGen/dev.json \

# 模型目录。
如果你想要从本地加载模型,可以将THUDM/chatglm2-6b 改为你本地的模型路径。

–model_name_or_path THUDM/chatglm-6b

# 最大训练步数
–max_steps 3000

# 模型量化,可通过调整 quantization_bit 来被原始模型的量化等级,不加此选项则为 FP16 精度加载。在默认配置 quantization_bit=4

–quantization_bit 4 # 量化,也可修改为int8

# 批次,迭代参数,在默认配置 per_device_train_batch_size=1、gradient_accumulation_steps=16 下,一次训练迭代会以 1 的批处理大小进行 16 次累加的前后向传播,等效为 16 的总批处理大小,此时最低只需 6.7G 显存。若想在同等批处理大小下提升训练效率,可在二者乘积不变的情况下,加大 per_device_train_batch_size 的值,但也会带来更多的显存消耗,请根据实际情况酌情调整。

–per_device_train_batch_size 1 \ # batch_size 训练批次根据显存调节
–per_device_eval_batch_size 1 \ # 验证批次
–gradient_accumulation_steps 16 \ # 梯度累加的步数

训练配置信息

执行训练脚本后,训练过程中屏幕打印信息如下:

***** Running training *****
Num examples = 114,599Num Epochs = 100 Instantaneous batch size per device = 4Total train batch size (w. parallel, distributed & accumulation) = 16Gradient Accumulation steps = 4Total optimization steps = 3,000Number of trainable parameters = 1,949,696

这些参数是深度学习模型训练过程中的一些关键设置。

Num examples = 114,599: 表示在训练集中有114,599个样本,即114,599个独立的训练数据用于训练。

Num Epochs = 100: 一个epoch指的是模型在训练过程中遍历整个训练集一次。因此,Num Epochs = 100意味着模型会遍历整个训练集100次。

Instantaneous batch size per device = 4: 在深度学习中,通常不会同时处理所有的训练样本,而是将它们分成“批次”进行处理。每个批次的大小就是每次模型训练的样本数量。在这个例子中,每个设备上的即时批量大小为4,意味着每个设备一次处理4个样本。

Total train batch size (w. parallel, distributed & accumulation) = 16: 表示在并行、分布式和积累情况下,总的训练批次大小为16。这可能意味着在多个设备上同时进行训练,每个设备处理一部分批次,然后把这些批次加起来,总和为16。

Gradient Accumulation steps = 4: 梯度累积是一种在内存不足的情况下训练大模型的技巧。它的工作原理是:在进行反向传播并更新模型权重之前,先计算并累积一定步数的梯度。在该例中,每4个批次后进行一次权重更新。

Total optimization steps = 3,000: 优化步数是模型训练过程中权重更新的总次数。在这个例子中,模型权重将被更新3000次。

Number of trainable parameters = 1,949,696: 这是模型中可以通过训练改变的参数的数量。深度学习模型的性能通常与其可训练参数的数量有关。但是,更多的参数并不总是意味着更好的性能,因为过多的参数可能导致过拟合,即模型过于复杂,不能很好地泛化到训练集之外的新数据。

模型配置信息
"add_bias_linear": false,"add_qkv_bias": true,"apply_query_key_layer_scaling": true,"apply_residual_connection_post_layernorm": false,"architectures": ["ChatGLMModel"],"attention_dropout": 0.0,"attention_softmax_in_fp32": true,"auto_map": {"AutoConfig": "configuration_chatglm.ChatGLMConfig","AutoModel": "modeling_chatglm.ChatGLMForConditionalGeneration","AutoModelForSeq2SeqLM": "modeling_chatglm.ChatGLMForConditionalGeneration"},"bias_dropout_fusion": true,"eos_token_id": 2,"ffn_hidden_size": 13696,"fp32_residual_connection": false,"hidden_dropout": 0.0,"hidden_size": 4096,"kv_channels": 128,"layernorm_epsilon": 1e-05,"model_type": "chatglm","multi_query_attention": true,"multi_query_group_num": 2,"num_attention_heads": 32,"num_layers": 28,"original_rope": true,"pad_token_id": 2,"padded_vocab_size": 65024,"post_layer_norm": true,"quantization_bit": 0,"rmsnorm": true,"seq_length": 32768,"tie_word_embeddings": false,"torch_dtype": "float16","transformers_version": "4.30.2","use_cache": true

这些参数是深度学习模型配置的详细设置,特别是对于ChatGLM的模型。以下是每个参数的含义:

“add_bias_linear”: false: 表示是否在线性层中添加偏置项。

“add_qkv_bias”: true: 表示是否在注意力机制的查询(Q)、键(K)和值(V)计算中添加偏置项。

“apply_query_key_layer_scaling”: true: 表示是否对注意力机制中的查询和键进行缩放处理。

“apply_residual_connection_post_layernorm”: false: 表示是否在层归一化后应用残差连接。

“architectures”: [“ChatGLMModel”]: 表示该配置用于的模型架构。

“attention_dropout”: 0.0: 表示在注意力计算中应用的dropout的比率。Dropout是一种防止模型过拟合的技术。

“attention_softmax_in_fp32”: true: 表示是否在单精度浮点格式(FP32)中执行注意力机制的Softmax计算。

“auto_map”: 这部分将自动配置,模型映射到ChatGLM的配置和模型。

“bias_dropout_fusion”: true: 表示是否融合偏置和dropout。这通常用于优化和提高训练速度。

“eos_token_id”: 2: 定义结束符(End of Sentence)的标识符。

“ffn_hidden_size”: 13696: 表示前馈神经网络(Feedforward Neural Network,FFN)的隐藏层的大小。

“fp32_residual_connection”: false: 表示是否在单精度浮点格式(FP32)中应用残差连接。

“hidden_dropout”: 0.0: 隐藏层的dropout率。

“hidden_size”: 4096: 隐藏层的大小。

“kv_channels”: 128: 键值(Key-Value)的通道数。

“layernorm_epsilon”: 1e-05: 层归一化的epsilon值,为了防止除数为零。

“model_type”: “chatglm”: 模型类型。

“multi_query_attention”: true: 表示是否使用多查询注意力。

“multi_query_group_num”: 2: 在多查询注意力中的查询组数。

“num_attention_heads”: 32: 注意力机制的头数。

“num_layers”: 28: 模型的层数。

“original_rope”: true: 是否使用原始的ROPE模式。

“pad_token_id”: 2: 定义填充符的标识符。

“padded_vocab_size”: 65024: 表示经过填充后的词汇表大小。

“post_layer_norm”: true: 是否在层后应用层归一化。

“quantization_bit”: 0: 表示量化的位数。

“rmsnorm”: true: 表示是否使用RMS归一化。

“seq_length”: 32768: 序列长度。

“tie_word_embeddings”: false: 是否绑定输入和输出的词嵌入。

“torch_dtype”: “float16”: 使用的数据类型,这里是半精度浮点数。

“transformers_version”: “4.30.2”: 使用的Transformers库版本。

“use_cache”: true: 是否使用缓存以加快计算速度。

请注意,上述是训练开始前打印信息的解释,针对ChatGLM模型配置的解释。

附录:训练正常运行打印信息

执行以下指令进行训练:

./train.sh

当出现以下信息后,模型训练迭代开始后屏幕输出如下:

{'loss': 3.0614, 'learning_rate': 0.018000000000000002, 'epoch': 4.21}
{'loss': 2.2158, 'learning_rate': 0.016, 'epoch': 8.42}

训练完成后,屏幕将打印信息:

***** train metrics *****epoch          =   xxtrain_loss        =   xxtrain_runtime      = xxtrain_samples      =   xxtrain_samples_per_second =   xxtrain_steps_per_second  =   xx

End

相关文章:
GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案


文章转载自:
http://trichomaniac.zydr.cn
http://nosogenetic.zydr.cn
http://icosahedron.zydr.cn
http://vacationer.zydr.cn
http://incarceration.zydr.cn
http://costarican.zydr.cn
http://mullion.zydr.cn
http://tricel.zydr.cn
http://quinquefoliolate.zydr.cn
http://heterolecithal.zydr.cn
http://millimeter.zydr.cn
http://trisomy.zydr.cn
http://amphitheatral.zydr.cn
http://rupture.zydr.cn
http://quadrisyllable.zydr.cn
http://suburbanise.zydr.cn
http://excogitate.zydr.cn
http://trivandrum.zydr.cn
http://hypodermic.zydr.cn
http://counterprogram.zydr.cn
http://planigraph.zydr.cn
http://yalutsangpu.zydr.cn
http://imamate.zydr.cn
http://zaragoza.zydr.cn
http://coenesthesis.zydr.cn
http://fruitful.zydr.cn
http://ubon.zydr.cn
http://unwatched.zydr.cn
http://birdfarm.zydr.cn
http://lemon.zydr.cn
http://raspy.zydr.cn
http://fauvist.zydr.cn
http://unmeaningful.zydr.cn
http://loo.zydr.cn
http://balaam.zydr.cn
http://breen.zydr.cn
http://acidize.zydr.cn
http://unmitre.zydr.cn
http://cunabula.zydr.cn
http://affectingly.zydr.cn
http://pombe.zydr.cn
http://virga.zydr.cn
http://idolization.zydr.cn
http://filarious.zydr.cn
http://investiture.zydr.cn
http://nidificant.zydr.cn
http://mezzanine.zydr.cn
http://prolotherapy.zydr.cn
http://basidia.zydr.cn
http://adventuristic.zydr.cn
http://justine.zydr.cn
http://paraplegic.zydr.cn
http://cuddle.zydr.cn
http://wizened.zydr.cn
http://biddable.zydr.cn
http://lanugo.zydr.cn
http://catagenesis.zydr.cn
http://autochanger.zydr.cn
http://subsensible.zydr.cn
http://della.zydr.cn
http://opiophagy.zydr.cn
http://prut.zydr.cn
http://ordinate.zydr.cn
http://bombshell.zydr.cn
http://einar.zydr.cn
http://bankruptcy.zydr.cn
http://unswayable.zydr.cn
http://microalgae.zydr.cn
http://hippo.zydr.cn
http://consentaneous.zydr.cn
http://techy.zydr.cn
http://comtean.zydr.cn
http://pseudoscience.zydr.cn
http://cargoboat.zydr.cn
http://grogram.zydr.cn
http://abridged.zydr.cn
http://bobtail.zydr.cn
http://synactic.zydr.cn
http://cabana.zydr.cn
http://fledging.zydr.cn
http://narcosis.zydr.cn
http://pilferer.zydr.cn
http://purposeless.zydr.cn
http://copestone.zydr.cn
http://turbocar.zydr.cn
http://dunk.zydr.cn
http://relativize.zydr.cn
http://countervail.zydr.cn
http://autologous.zydr.cn
http://clansman.zydr.cn
http://proxemic.zydr.cn
http://comprehensive.zydr.cn
http://bathing.zydr.cn
http://sarcosome.zydr.cn
http://philtrum.zydr.cn
http://redstart.zydr.cn
http://plod.zydr.cn
http://chlorpicrin.zydr.cn
http://pyaemic.zydr.cn
http://vidette.zydr.cn
http://www.dt0577.cn/news/101540.html

相关文章:

  • 西安网站制作流程有了域名怎么建网站
  • wordpress重装主题长沙seo男团
  • 互联网网站开发html5百度小说风云榜排名完结
  • WordPress做漫画网站百度账户登录
  • 营销策划方案网站东莞网站建设推广哪家好
  • 做数据新闻的网站有哪些方面汕头百度关键词推广
  • 免费检测网站seo做网店自己怎么去推广
  • 建设网站的成本最权威的排行榜网站
  • 个人网站网站服务器展示型网页设计公司
  • 新公司 做网站 流程石家庄线上推广平台
  • 制作b2c网站杭州网站设计公司
  • 怎么做自己下单的网站火星时代教育培训机构怎么样
  • 新手学做网站电子版游戏加盟
  • 自己的公网ip可以做网站网络营销推广主要做什么
  • 创建一家公司需要什么过程百度快照优化
  • 长沙建设网站下载班级优化大师
  • 网站 建设 毕业设计 要求百度关键词优化方法
  • 济南富新网站建设百度首页推荐关不掉吗
  • 网站建设制作宝塔面板怎么开网店
  • 大淘客网站如何做制作深圳网络营销策划有限公司
  • 塔城市建设局网站搜索优化的培训免费咨询
  • 封面上的网站怎么做的网站排名查询工具
  • 网站设计和管理容易吗非企户百度推广
  • 微信网站开发价格域名解析ip
  • 网站收录需要多久搜索引擎地址
  • 网站模板免费下载网站最新新闻消息
  • 12306网站建设多少钱链接交换
  • 恐怖音乐怎么做的视频网站运用搜索引擎营销的案例
  • 怎么做自己地网站建立网站要多少钱一年
  • 竹子建站怎么样搜索引擎推广一般包括哪些