Comments (11)
而且,在现有的微调基础上,用(新训练集+旧训练集)继续训练,与重新开始微调相比,loss下降的会很快,相当于loss就是从数据变化的那部分开始下降了~如果你重头微调,loss会从头下降,慢。
求教继续训练的示例代码有吗?我按这个代码 mymusise/ChatGLM-Tuning#14 (comment) 貌似没有在上次的checkpoint继续,貌似loss还是重头开始的,没有下降的很快
去找 hcgf 这个项目
from zero_nlp.
而且随着训练…参数似乎在增加?能在不改变参数量的情况下微调模型吗#(通过逐步覆盖一些用不到的参数,通过牺牲模型的其他功能,实现总参数不变的微调)
from zero_nlp.
我自己验证好了,可以实现,写了个webui可以实时修改对话,并把对话写入训练集,现在还差最后一个技术难题
from zero_nlp.
而且随着训练…参数似乎在增加?能在不改变参数量的情况下微调模型吗#(通过逐步覆盖一些用不到的参数,通过牺牲模型的其他功能,实现总参数不变的微调)
为什么参数会增加呢,每次训练都用一个新的lora层么
from zero_nlp.
而且随着训练…参数似乎在增加?能在不改变参数量的情况下微调模型吗#(通过逐步覆盖一些用不到的参数,通过牺牲模型的其他功能,实现总参数不变的微调)
为什么参数会增加呢,每次训练都用一个新的lora层么
难道不是,训练集越大,参数越多吗…
from zero_nlp.
-
因为你训练后的模型,已经是被peft包裹后的模型了。peft(base_model)
-
然后你又训练了一次,这一次是peft(peft(base_model))
-
然后你又训练了一次,这一次是peft(peft(peft(base_model)))
-
这样下去,肯定参数越来越大。
-
因为peft本质上就是对:原始的模型参数全部固定(
require_grad=False
),然后对每一个layer
的query_key_value
做loraa*lorab
做旁路了;在模型结构上,又包裹了新的一层。 -
直接用,肯定是不行的,要能够把结构拆解开,才能做实事微调。
from zero_nlp.
因为你训练后的模型,已经是被peft包裹后的模型了。peft(base_model)
然后你又训练了一次,这一次是peft(peft(base_model))
然后你又训练了一次,这一次是peft(peft(peft(base_model)))
这样下去,肯定参数越来越大。
因为peft本质上就是对:原始的模型参数全部固定(
require_grad=False
),然后对每一个layer
的query_key_value
做loraa*lorab
做旁路了;在模型结构上,又包裹了新的一层。直接用,肯定是不行的,要能够把结构拆解开,才能做实事微调。
事实上我已经跑通了,hcgf这项目,多次继续微调,微调文件.pt永远是16MB,似乎没有出现嵌套情况(不过每次微调都要加上以前的老数据,否则会出现灾难性遗忘)
from zero_nlp.
因为你训练后的模型,已经是被peft包裹后的模型了。peft(base_model)
- 然后你又训练了一次,这一次是peft(peft(base_model))
- 然后你又训练了一次,这一次是peft(peft(peft(base_model)))
- 这样下去,肯定参数越来越大。
- 因为peft本质上就是对:原始的模型参数全部固定(
require_grad=False
),然后对每一个layer
的query_key_value
做loraa*lorab
做旁路了;在模型结构上,又包裹了新的一层。- 直接用,肯定是不行的,要能够把结构拆解开,才能做实事微调。
事实上我已经跑通了,hcgf这项目,多次继续微调,微调文件.pt永远是16MB,似乎没有出现嵌套情况(不过每次微调都要加上以前的老数据,否则会出现灾难性遗忘)
如果不加老数据会遗忘,必须加上的话,跟从预训练模型重新训练有什么区别?
from zero_nlp.
因为你训练后的模型,已经是被peft包裹后的模型了。peft(base_model)
- 然后你又训练了一次,这一次是peft(peft(base_model))
- 然后你又训练了一次,这一次是peft(peft(peft(base_model)))
- 这样下去,肯定参数越来越大。
- 因为peft本质上就是对:原始的模型参数全部固定(
require_grad=False
),然后对每一个layer
的query_key_value
做loraa*lorab
做旁路了;在模型结构上,又包裹了新的一层。- 直接用,肯定是不行的,要能够把结构拆解开,才能做实事微调。
事实上我已经跑通了,hcgf这项目,多次继续微调,微调文件.pt永远是16MB,似乎没有出现嵌套情况(不过每次微调都要加上以前的老数据,否则会出现灾难性遗忘)
如果不加老数据会遗忘,必须加上的话,跟从预训练模型重新训练有什么区别?
有区别啊,因为我一开始【并没有】这么多数据集,我先喂一点数据,得到微调1.0,和微调1.0交互得到新数据,人工修改后加入数据集。
重新微调得到微调2.0,继续交互得到新数据再并入以前的旧数据集。
就这样,数据良品率越来越高,随着并入数据越来越多,自然训练效果越来越好。
如果你一次性就有这么多数据,一次训练成本是最低的,但没这么多数据怎么办呀,就需要一步一步一边训练一边引导AI自己产生训练集了。
from zero_nlp.
而且,在现有的微调基础上,用(新训练集+旧训练集)继续训练,与重新开始微调相比,loss下降的会很快,相当于loss就是从数据变化的那部分开始下降了~如果你重头微调,loss会从头下降,慢。
from zero_nlp.
而且,在现有的微调基础上,用(新训练集+旧训练集)继续训练,与重新开始微调相比,loss下降的会很快,相当于loss就是从数据变化的那部分开始下降了~如果你重头微调,loss会从头下降,慢。
求教继续训练的示例代码有吗?我按这个代码 mymusise/ChatGLM-Tuning#14 (comment) 貌似没有在上次的checkpoint继续,貌似loss还是重头开始的,没有下降的很快
from zero_nlp.
Related Issues (20)
- chatGLMv2-6b lora模型并行,代码中使用了几张卡? HOT 2
- 博主您好
- chatGLMv2-6b p-tuning 和 LoRA数据预处理的方法是一样的吗 ?
- ChatGLM2 lora finetuning 加载 lora 参数:RuntimeError: Expected 4-dimensional input for 4-dimensional weight [3072, 32, 1, 1], but got 3-dimensional input of size [1, 64, 4096] instead HOT 4
- 4张3080ti跑chatglm2-6b-lora报oom HOT 5
- 求助:chatglm2 lora训练error:RuntimeError: Expected is_sm80 to be true, but got false. HOT 2
- 训练的时候报错ValueError: The current `device_map` had weights offloaded to the disk. HOT 11
- 训练出错
- 两张4090单机多卡跑,咋感觉越跑越慢了,比单卡慢 HOT 2
- 请问有部署或者运行的文档吗?在哪里可以看?
- 实时微调可以通过加入传统RL实现吗
- 请问如果单纯使用zeroth-order向前优化少量batch(只要体现出一定的优化效果)的话要怎么实现 HOT 2
- lora推理中只能指定一个输入吗?有办法实现batch_size的推理吗
- 救命!!ChatGlm-v2-6b_Lora该怎么设置epoch?? HOT 1
- 大佬,可以多个多个lora叠加使用吗?
- chatglm_v2_6b_lora多卡如何设置,没有找到 HOT 2
- 能出一个ChatGLM
- 能出一个ChatGLM的教程吗
- Segment Fault 是哪的问题?
- 大佬 chinese_llama 还可以用吗 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zero_nlp.