A question of setstorage in Baichuan-7B and Baichuan-vicuna-7B
I have load Baichuan-7B and Baichuan-vicuna-7B in Fastchat code, and the load model changed to this:
tokenizer = transformers.AutoTokenizer.from_pretrained(model_args.model_name_or_path, use_fast=False,add_bos_token=False, model_max_length=4096,padding_side="right",trust_remote_code=True)
model = transformers.AutoModelForCausalLM.from_pretrained(
model_args.model_name_or_path,
torch_dtype=torch.float16,
trust_remote_code=True,)
But the error named setStorage appeared:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Traceback (most recent call last) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ /home/ec2-user/FastChat/fastchat/train/train_mem.py:13 in โ
โ โ
โ 10 from fastchat.train.train import train โ
โ 11 โ
โ 12 if name == "main": โ
โ โฑ 13 โ train() โ
โ 14 โ
โ โ
โ /home/ec2-user/FastChat/fastchat/train/train.py:282 in train โ
โ โ
โ 279 โ if list(pathlib.Path(training_args.output_dir).glob("checkpoint-*")): โ
โ 280 โ โ trainer.train(resume_from_checkpoint=True) โ
โ 281 โ else: โ
โ โฑ 282 โ โ trainer.train() โ
โ 283 โ trainer.save_state() โ
โ 284 โ safe_save_model_for_hf_trainer(trainer=trainer, output_dir=training_args.output_dir) โ
โ 285 โ
โ โ
โ /home/ec2-user/anaconda3/envs/liwei2/lib/python3.10/site-packages/transformers/trainer.py:1664 โ
โ in train โ
โ โ
โ 1661 โ โ inner_training_loop = find_executable_batch_size( โ
โ 1662 โ โ โ self._inner_training_loop, self._train_batch_size, args.auto_find_batch_size โ
โ 1663 โ โ ) โ
โ โฑ 1664 โ โ return inner_training_loop( โ
โ 1665 โ โ โ args=args, โ
โ 1666 โ โ โ resume_from_checkpoint=resume_from_checkpoint, โ
โ 1667 โ โ โ trial=trial, โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/transformers/trainer.py:1938 โ
โ in _inner_training_loop โ
โ โ
โ 1935 โ โ โ โ ): โ
โ 1936 โ โ โ โ โ # Avoid unnecessary DDP synchronization since there will be no backw โ
โ 1937 โ โ โ โ โ with model.no_sync(): โ
โ โฑ 1938 โ โ โ โ โ โ tr_loss_step = self.training_step(model, inputs) โ
โ 1939 โ โ โ โ else: โ
โ 1940 โ โ โ โ โ tr_loss_step = self.training_step(model, inputs) โ
โ 1941 โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/transformers/trainer.py:2753 โ
โ in training_step โ
โ โ
โ 2750 โ โ โ # loss gets scaled under gradient_accumulation_steps in deepspeed โ
โ 2751 โ โ โ loss = self.deepspeed.backward(loss) โ
โ 2752 โ โ else: โ
โ โฑ 2753 โ โ โ loss.backward() โ
โ 2754 โ โ โ
โ 2755 โ โ return loss.detach() โ
โ 2756 โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/_tensor.py:487 in โ
โ backward โ
โ โ
โ 484 โ โ โ โ create_graph=create_graph, โ
โ 485 โ โ โ โ inputs=inputs, โ
โ 486 โ โ โ ) โ
โ โฑ 487 โ โ torch.autograd.backward( โ
โ 488 โ โ โ self, gradient, retain_graph, create_graph, inputs=inputs โ
โ 489 โ โ ) โ
โ 490 โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/autograd/init.py:200 โ
โ in backward โ
โ โ
โ 197 โ # The reason we repeat same the comment below is that โ
โ 198 โ # some Python versions print out the first line of a multi-line function โ
โ 199 โ # calls in the traceback and some print out the last line โ
โ โฑ 200 โ Variable.execution_engine.run_backward( # Calls into the C++ engine to run the bac โ
โ 201 โ โ tensors, grad_tensors, retain_graph, create_graph, inputs, โ
โ 202 โ โ allow_unreachable=True, accumulate_grad=True) # Calls into the C++ engine to ru โ
โ 203 โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/autograd/function.py:274 โ
โ in apply โ
โ โ
โ 271 โ โ โ โ โ โ โ "Function is not allowed. You should only implement one " โ
โ 272 โ โ โ โ โ โ โ "of them.") โ
โ 273 โ โ user_fn = vjp_fn if vjp_fn is not Function.vjp else backward_fn โ
โ โฑ 274 โ โ return user_fn(self, *args) โ
โ 275 โ โ
โ 276 โ def apply_jvp(self, *args): โ
โ 277 โ โ # _forward_cls is defined by derived class โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/utils/checkpoint.py:141 โ
โ in backward โ
โ โ
โ 138 โ โ โ with torch.enable_grad(), \ โ
โ 139 โ โ โ โ torch.cuda.amp.autocast(**ctx.gpu_autocast_kwargs), \ โ
โ 140 โ โ โ โ torch.cpu.amp.autocast(**ctx.cpu_autocast_kwargs): โ
โ โฑ 141 โ โ โ โ outputs = ctx.run_function(*detached_inputs) โ
โ 142 โ โ โ
โ 143 โ โ if isinstance(outputs, torch.Tensor): โ
โ 144 โ โ โ outputs = (outputs,) โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/transformers/models/llama/mode โ
โ ling_llama.py:566 in custom_forward โ
โ โ
โ 563 โ โ โ โ def create_custom_forward(module): โ
โ 564 โ โ โ โ โ def custom_forward(*inputs): โ
โ 565 โ โ โ โ โ โ # None for past_key_value โ
โ โฑ 566 โ โ โ โ โ โ return module(*inputs, output_attentions, None) โ
โ 567 โ โ โ โ โ โ
โ 568 โ โ โ โ โ return custom_forward โ
โ 569 โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/nn/modules/module.py:150 โ
โ 1 in _call_impl โ
โ โ
โ 1498 โ โ if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks โ
โ 1499 โ โ โ โ or _global_backward_pre_hooks or _global_backward_hooks โ
โ 1500 โ โ โ โ or _global_forward_hooks or _global_forward_pre_hooks): โ
โ โฑ 1501 โ โ โ return forward_call(*args, **kwargs) โ
โ 1502 โ โ # Do not call functions when jit is used โ
โ 1503 โ โ full_backward_hooks, non_full_backward_hooks = [], [] โ
โ 1504 โ โ backward_pre_hooks = [] โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/transformers/models/llama/mode โ
โ ling_llama.py:293 in forward โ
โ โ
โ 290 โ โ hidden_states = self.input_layernorm(hidden_states) โ
โ 291 โ โ โ
โ 292 โ โ # Self Attention โ
โ โฑ 293 โ โ hidden_states, self_attn_weights, present_key_value = self.self_attn( โ
โ 294 โ โ โ hidden_states=hidden_states, โ
โ 295 โ โ โ attention_mask=attention_mask, โ
โ 296 โ โ โ position_ids=position_ids, โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/nn/modules/module.py:150 โ
โ 1 in _call_impl โ
โ โ
โ 1498 โ โ if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks โ
โ 1499 โ โ โ โ or _global_backward_pre_hooks or _global_backward_hooks โ
โ 1500 โ โ โ โ or _global_forward_hooks or _global_forward_pre_hooks): โ
โ โฑ 1501 โ โ โ return forward_call(*args, **kwargs) โ
โ 1502 โ โ # Do not call functions when jit is used โ
โ 1503 โ โ full_backward_hooks, non_full_backward_hooks = [], [] โ
โ 1504 โ โ backward_pre_hooks = [] โ
โ โ
โ /home/ec2-user/FastChat/fastchat/train/llama_flash_attn_monkey_patch.py:32 in forward โ
โ โ
โ 29 โ bsz, q_len, _ = hidden_states.size() โ
โ 30 โ โ
โ 31 โ query_states = ( โ
โ โฑ 32 โ โ self.q_proj(hidden_states) โ
โ 33 โ โ .view(bsz, q_len, self.num_heads, self.head_dim) โ
โ 34 โ โ .transpose(1, 2) โ
โ 35 โ ) โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/nn/modules/module.py:150 โ
โ 1 in _call_impl โ
โ โ
โ 1498 โ โ if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks โ
โ 1499 โ โ โ โ or _global_backward_pre_hooks or _global_backward_hooks โ
โ 1500 โ โ โ โ or _global_forward_hooks or global_forward_pre_hooks): โ
โ โฑ 1501 โ โ โ return forward_call(*args, **kwargs) โ
โ 1502 โ โ # Do not call functions when jit is used โ
โ 1503 โ โ full_backward_hooks, non_full_backward_hooks = [], [] โ
โ 1504 โ โ backward_pre_hooks = [] โ
โ โ
โ /home/ec2-user/anaconda3/envs/lib/python3.10/site-packages/torch/nn/modules/linear.py:114 โ
โ in forward โ
โ โ
โ 111 โ โ โ init.uniform(self.bias, -bound, bound) โ
โ 112 โ โ
โ 113 โ def forward(self, input: Tensor) -> Tensor: โ
โ โฑ 114 โ โ return F.linear(input, self.weight, self.bias) โ
โ 115 โ โ
โ 116 โ def extra_repr(self) -> str: โ
โ 117 โ โ return 'in_features={}, out_features={}, bias={}'.format( โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
RuntimeError: setStorage: sizes [4096, 4096], strides [1, 4096], storage offset 6333644800, and itemsize 2 requiring
a storage size of 12700844032 are out of bounds for storage of size 0
And the error in Baichuan-7B is
RuntimeError: setStorage: sizes [4096, 12288], strides [1, 4096], storage offset 6333644800, and itemsize 2 requiring
a storage size of 12700844032 are out of bounds for storage of size 0
Have you ever meet this problem?
I did not encounter this problem. This problem appears to be from the flash attention implementation when calculating q_proj. This is probably because the original baichuan-inc/baichuan-7B implementation merged the qkv matrix. To avoid this you may try fireballoon/baichuan-llama-7b, a converted baichuan-inc/baichuan-7B in llama format, which is also the model I use for training.