Comments (13)
same question
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数微调,对于lora可以参考这里的解决方式。#64
from monkey.
我也是lora微调的,只训了0.15%参数,我debug看下来是VisualAttentionBlock模块每执行一次增加一点现存,导致显存过大,我在看如何优化一下
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数微调,对于lora可以参考这里的解决方式。#64
@zws-2019 您看看这样能解决吗?
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数参数,对于lora可以参考这里的解决方式。#64
@zws-2019 您看看这样能解决吗?
感谢,这个地方的修改是有必要的,另外需要再改一个地方才能跑通textmonkey的训练,我正在看收敛能力来确定修改正确性
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数参数,对于lora可以参考这里的解决方式。#64
@zws-2019 您看看这样能解决吗?
感谢,这个地方的修改是有必要的,另外需要再改一个地方才能跑通textmonkey的训练,我正在看收敛能力来确定修改正确性
非常感谢您的尝试,要是有啥经验也欢迎分享一下。
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数参数,对于lora可以参考这里的解决方法。#64
@zws-2019您看看这样能解决吗?
谢谢,这个位置的修改是有必要的,另外需要再修改一个位置才能运行textmonkey的训练,我正在看收敛能力来确定修改正确性
非常感谢您的尝试,希望有啥经验也欢迎分享一下。
除了以上修改,我还改了modeling_qwen.py中
hidden_states[i][a + 1 : b] = images[idx]
修改为
hidden_states[i][a + 1 : b].data = images[idx]
修改后可以在40G A100上训练,但是发现没有收敛,并且推理时是乱码,推理时改回modeling_qwen.py发现和原始模型推理结果相同
from monkey.
您训练的是Monkey还是TextMonkey?
from monkey.
您训练的是Monkey还是TextMonkey?
textmonkey,目前用lora只训练了LLM的参数,可以跑通,但是loss从3收敛到1.8左右后就不再收敛了,明天我再测试一下训练的效果
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数参数,对于lora可以参考这里的解决方法。#64
@zws-2019您看看这样能解决吗?
谢谢,这个位置的修改是有必要的,另外需要再修改一个位置才能运行textmonkey的训练,我正在看收敛能力来确定修改正确性
非常感谢您的尝试,希望有啥经验也欢迎分享一下。
除了以上修改,我还改了modeling_qwen.py中
hidden_states[i][a + 1 : b] = images[idx] 修改为 hidden_states[i][a + 1 : b].data = images[idx]
修改后可以在40G A100上训练,但是发现没有收敛,并且推理时是乱码,推理时改回modeling_qwen.py发现和原始模型推理结果相同
@echo840 请教一下这可能是什么原因?修改hidden_states[i][a + 1 : b].data导致梯度继续回传到嵌入式层?另外请教一下代码中能否做一些小改动优化计算时间和显存占用呢
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数参数,对于lora可以参考这里的解决方法。#64
@zws-2019您看看这样能解决吗?
谢谢,这个位置的修改是有必要的,另外需要再修改一个才能运行textmonkey的训练,我正在看收敛能力来确定修改正确性
非常感谢您的尝试,希望有啥经验也欢迎分享一下。
除了以上修改,我还修改了modeling_qwen.py中
hidden_states[i][a + 1 : b] = images[idx] 修改为 hidden_states[i][a + 1 : b].data = images[idx]
修改后可以在40G A100上训练,但是发现没有收敛,并且推理时是乱码,推理时改回modeling_qwen.py发现和原始模型推理结果相同
@echo840请教一下这可能是什么原因?hidden_states[i][a + 1 : b].data 导致突然继续传回嵌入式层?另外请教一下代码中能否做一些小问题优化计算时间和显着的占用呢?
当我们禁用模型参数,使用lora微调时,会使用
if training_args.gradient_checkpointing:
model.enable_input_require_grads()
这会使能输入梯度,这时执行下面命令会报错,因为hidden_states有梯度,而images没有梯度,所以需要给hidden_states.data赋值(但是我不清楚这样做会不会有风险)
hidden_states[i][a + 1 : b] = images[idx]
另外我还改了其他地方降低显存使用
# images = self.visual.encode(images)
images = cp.checkpoint(self.visual.encode, images)
if training_args.use_lora:
for name, param in model.named_parameters():
param.requires_grad = False
lora_config = LoraConfig(
r=lora_args.lora_r,
lora_alpha=lora_args.lora_alpha,
target_modules=lora_args.lora_target_modules,
lora_dropout=lora_args.lora_dropout,
bias=lora_args.lora_bias,
task_type='CAUSAL_LM',
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
if training_args.gradient_checkpointing:
model.enable_input_require_grads()
现在的问题是收敛到1.7左右就很难再收敛,测试infer效果比较差,我的finetune里样本用了很多换行,就没有学到
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数参数,对于lora可以参考这里的解决方法。#64
@zws-2019您看看这样能解决吗?
谢谢,这个位置的修改是有必要的,另外需要再修改一个才能运行textmonkey的训练,我正在看收敛能力来确定修改正确性
非常感谢您的尝试,希望有啥经验也欢迎分享一下。
除了以上修改,我还修改了modeling_qwen.py中
hidden_states[i][a + 1 : b] = images[idx] 修改为 hidden_states[i][a + 1 : b].data = images[idx]
修改后可以在40G A100上训练,但是发现没有收敛,并且推理时是乱码,推理时改回modeling_qwen.py发现和原始模型推理结果相同
@echo840请教一下这可能是什么原因?hidden_states[i][a + 1 : b].data 导致突然继续传回嵌入式层?另外请教一下代码中能否做一些小问题优化计算时间和显着的占用呢?
当我们禁用模型参数,使用lora微调时,会使用
if training_args.gradient_checkpointing: model.enable_input_require_grads()
这会使能输入梯度,这时执行下面命令会报错,因为hidden_states有梯度,而images没有梯度,所以需要给hidden_states.data赋值(但是我不清楚这样做会不会有风险)
hidden_states[i][a + 1 : b] = images[idx]
另外我还改了其他地方降低显存使用
# images = self.visual.encode(images) images = cp.checkpoint(self.visual.encode, images)
if training_args.use_lora: for name, param in model.named_parameters(): param.requires_grad = False lora_config = LoraConfig( r=lora_args.lora_r, lora_alpha=lora_args.lora_alpha, target_modules=lora_args.lora_target_modules, lora_dropout=lora_args.lora_dropout, bias=lora_args.lora_bias, task_type='CAUSAL_LM', ) model = get_peft_model(model, lora_config) model.print_trainable_parameters() if training_args.gradient_checkpointing: model.enable_input_require_grads()
现在的问题是收敛到1.7左右就很难再收敛,测试infer效果比较差,我的finetune里样本用了很多换行,就没有学到
感谢你的回复,我刚刚使用lora训练也遇到相同报错,由于hidden_states需要梯度,不能做原地赋值操作。但是我不清楚开启输入梯度的原因是什么。hidden_states需要梯度,但是从input_ids计算hidden_states的嵌入层却不需要梯度。也许hidden_states的梯度会传递到其他模块的参数中去,因此你直接为hidden_states.data赋值扰乱了梯度传递,导致后面的参数错误变化。另外你为什么设置模型的所有参数都不需要梯度呢?我理解应该保留四个lora参数和resampler模块需要参数。
from monkey.
您好,我们是在80g a800上进行全参数训练的。40g a800可能不支持全参数参数,对于lora可以参考这里的解决方法。#64
@zws-2019您看看这样能解决吗?
谢谢,这个位置的修改是有必要的,另外需要再修改一个才能运行textmonkey的训练,我正在看收敛能力来确定修改正确性
非常感谢您的尝试,希望有啥经验也欢迎分享一下。
除了以上修改,我还修改了modeling_qwen.py中
hidden_states[i][a + 1 : b] = images[idx] 修改为 hidden_states[i][a + 1 : b].data = images[idx]
修改后可以在40G A100上训练,但是发现没有收敛,并且推理时是乱码,推理时改回modeling_qwen.py发现和原始模型推理结果相同
@echo840请教一下这可能是什么原因?hidden_states[i][a + 1 : b].data 导致突然继续传回嵌入式层?另外请教一下代码中能否做一些小问题优化计算时间和显着的占用呢?
当我们禁用模型参数,使用lora微调时,会使用
if training_args.gradient_checkpointing: model.enable_input_require_grads()
这会使能输入梯度,这时执行下面命令会报错,因为hidden_states有梯度,而images没有梯度,所以需要给hidden_states.data赋值(但是我不清楚这样做会不会有风险)
hidden_states[i][a + 1 : b] = images[idx]
另外我还改了其他地方降低显存使用
# images = self.visual.encode(images) images = cp.checkpoint(self.visual.encode, images)
if training_args.use_lora: for name, param in model.named_parameters(): param.requires_grad = False lora_config = LoraConfig( r=lora_args.lora_r, lora_alpha=lora_args.lora_alpha, target_modules=lora_args.lora_target_modules, lora_dropout=lora_args.lora_dropout, bias=lora_args.lora_bias, task_type='CAUSAL_LM', ) model = get_peft_model(model, lora_config) model.print_trainable_parameters() if training_args.gradient_checkpointing: model.enable_input_require_grads()
现在的问题是收敛到1.7左右就很难再收敛,测试infer效果比较差,我的finetune里样本用了很多换行,就没有学到
感谢你的回复,我刚刚使用lora训练也遇到相同报错,由于hidden_states需要梯度,不能做原地赋值操作。但是我不清楚开启输入梯度的原因是什么。hidden_states需要梯度,但是从input_ids计算hidden_states的嵌入层却不需要梯度。也许hidden_states的梯度会传递到其他模块的参数中去,因此你直接为hidden_states.data赋值扰乱了梯度传递,导致后面的参数错误变化。另外你为什么设置模型的所有参数都不需要梯度呢?我理解应该保留四个lora参数和resampler模块需要参数。
我试过按照当前finetune_multitask_dialouge_doc.py的代码训练lora也是同样的问题,现在看下来是hidden_states的梯度问题,你那边有解决方案吗?
from monkey.
Related Issues (20)
- Training data HOT 1
- Online Demo HOT 2
- Pretrained weight for text monkey HOT 3
- textMonkey data release HOT 3
- TextMonkey问题 HOT 1
- Data Access HOT 2
- TextMonkey RuntimeError HOT 8
- 为什么文档理解的输入不是pdf或者doc文档,而是图片? HOT 1
- textmonkey支持多图输入吗 HOT 1
- Will Rico data be released? HOT 4
- How to finetune only one subnetwork using Deepspeed + Transformers
- How to finetune certain params via from HF's transformers, a
- vizwiz的准确率仅有37.62?表中的结果为61.2?QwenVL是35.2,请问是数据填写错误吗? HOT 8
- Get the embeddings of the image. HOT 1
- How to set gpu card for the demo project running HOT 5
- Textmonkey有推理代码吗,为什么web demo运行起来不回答 HOT 1
- demo doesn't give OCR with grounding HOT 3
- 模型加载问题 HOT 8
- What is the various task-specific augmentations to different dataset mentioned in TextMonkey Sec3.5 ?
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 monkey.