lilongxian / BaiYang-chatGLM2-6B

(1)弹性区间标准化的旋转位置词嵌入编码器+peft LORA量化训练,提高万级tokens性能支持。(2)证据理论解释学习,提升模型的复杂逻辑推理能力(3)兼容alpaca数据格式。
45 stars 3 forks source link

请教一下增量训练的数据组织格式 #5

Closed valkryhx closed 1 year ago

valkryhx commented 1 year ago

我想请教一下大佬,如果要对chatglm2做增量训练的话,数据组织是什么样的?数据的preprocess方法与目前sft相比 有哪些改动?大佬能否写一个预训练的脚本 想学习一下?

lilongxian commented 1 year ago

一、GLM2微调训练数据建模注意事项:

  1. GLM2 inputs: [gMASK],, a句tokens b句tokens labels: 将inputs的[gMASK],, a句tokens部分mask掉,项目中使用-100 与GLM1相比是 [gMASK],位置有变化,GLM1:a1, a2 ,...,am,[gMASK],, b1, b2,...,bn,

  2. 将最原始的数据(不管是CT格式、CQA格式、还是alpaca chat格式)都要组织为一条prompt句子,和目标回复句。 (拼接方法具体可参考我的finetuning.py脚本preprocess_function_train(examples))函数,支持以上三种数据格式的祖师,这三种数据格式可用于多种NLP任务类型,这里不一一列举,要掌握其奥妙并灵活运用,可能使用空间更大。

二、预训练模型和微调训练模型最大区别在训练数据建模,与上述不同,预训练的label句==input句,遵循自监督学习机制,loss函数不变。原始数据根据高质量文章切分或来自与连续对话对,或其他精美句子、代码等等。

为得到较好效果的底座权重,预训练模型往往是全量参数非量化模式的大量高质量数据训练,需要有数据资源和满足条件的GPU硬件资源。

valkryhx commented 1 year ago

感谢