Text Generation
Transformers
PyTorch
Chinese
English
llama
text-generation-inference

A question of setstorage in Baichuan-7B and Baichuan-vicuna-7B

#4
by starvin-lw - opened

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.

Sign up or log in to comment