Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

百川2运行demo报错:AttributeError: 'BaichuanModel' object has no attribute 'future_mask' #30

Closed
Yu-Yang-Li opened this issue Sep 13, 2023 · 2 comments

Comments

@Yu-Yang-Li
Copy link

Yu-Yang-Li commented Sep 13, 2023

修改配置后,在demo_qwen_agent.ipynb之前一切正常,但在运行:

重置对话,清空对话历史
agent.reset()
agent.run('调用插件,查询北京市明天的天气', remote=False)

报错:
File ~/modelscope-agent/demo/../modelscope_agent/agent.py:143, in AgentExecutor.run(self, task, remote, print_info)
141 # generate prompt and call llm
142 prompt = self.prompt_generator.generate(llm_result, exec_result)
--> 143 llm_result = self.llm.generate(prompt)
144 if print_info:
145 print(f'|prompt{idx}: {prompt}')

File ~/modelscope-agent/demo/../modelscope_agent/llm/local_llm.py:72, in LocalLLM.generate(self, prompt)
69 response = self.model.chat(
70 self.tokenizer, prompt, history=[], system='')[0]
71 else:
---> 72 response = self.chat(prompt)
74 end_idx = response.find(self.end_token)
75 if end_idx != -1:

File ~/modelscope-agent/demo/../modelscope_agent/llm/local_llm.py:95, in LocalLLM.chat(self, prompt)
91 input_ids = self.tokenizer(
92 prompt, return_tensors='pt').input_ids.to(device)
93 input_len = input_ids.shape[1]
---> 95 result = self.model.generate(
96 input_ids=input_ids, generation_config=self.generation_cfg)
98 result = result[0].tolist()[input_len:]
99 response = self.tokenizer.decode(result)

File ~/.local/lib/python3.10/site-packages/torch/utils/_contextlib.py:115, in context_decorator..decorate_context(*args, **kwargs)
112 @functools.wraps(func)
113 def decorate_context(*args, **kwargs):
114 with ctx_factory():
--> 115 return func(*args, **kwargs)

File ~/.local/lib/python3.10/site-packages/transformers/generation/utils.py:1648, in GenerationMixin.generate(self, inputs, generation_config, logits_processor, stopping_criteria, prefix_allowed_tokens_fn, synced_gpus, assistant_model, streamer, negative_prompt_ids, negative_prompt_attention_mask, **kwargs)
1640 input_ids, model_kwargs = self._expand_inputs_for_generation(
1641 input_ids=input_ids,
1642 expand_size=generation_config.num_return_sequences,
1643 is_encoder_decoder=self.config.is_encoder_decoder,
1644 **model_kwargs,
1645 )
1647 # 13. run sample
-> 1648 return self.sample(
1649 input_ids,
1650 logits_processor=logits_processor,
1651 logits_warper=logits_warper,
1652 stopping_criteria=stopping_criteria,
1653 pad_token_id=generation_config.pad_token_id,
1654 eos_token_id=generation_config.eos_token_id,
1655 output_scores=generation_config.output_scores,
1656 return_dict_in_generate=generation_config.return_dict_in_generate,
1657 synced_gpus=synced_gpus,
1658 streamer=streamer,
1659 **model_kwargs,
1660 )
1662 elif generation_mode == GenerationMode.BEAM_SEARCH:
1663 # 11. prepare beam search scorer
1664 beam_scorer = BeamSearchScorer(
1665 batch_size=batch_size,
1666 num_beams=generation_config.num_beams,
(...)
1671 max_length=generation_config.max_length,
1672 )

File ~/.local/lib/python3.10/site-packages/transformers/generation/utils.py:2730, in GenerationMixin.sample(self, input_ids, logits_processor, stopping_criteria, logits_warper, max_length, pad_token_id, eos_token_id, output_attentions, output_hidden_states, output_scores, return_dict_in_generate, synced_gpus, streamer, **model_kwargs)
2727 model_inputs = self.prepare_inputs_for_generation(input_ids, **model_kwargs)
2729 # forward pass to get next token
-> 2730 outputs = self(
2731 **model_inputs,
2732 return_dict=True,
2733 output_attentions=output_attentions,
2734 output_hidden_states=output_hidden_states,
2735 )
2737 if synced_gpus and this_peer_finished:
2738 continue # don't waste resources running the code we don't need

File ~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:1501, in Module._call_impl(self, *args, **kwargs)
1496 # If we don't have any hooks, we want to skip the rest of the logic in
1497 # this function, and just call forward.
1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_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 = [], []

File ~/.conda/envs/LLM/lib/python3.10/site-packages/accelerate/hooks.py:165, in add_hook_to_module..new_forward(*args, **kwargs)
163 output = old_forward(*args, **kwargs)
164 else:
--> 165 output = old_forward(*args, **kwargs)
166 return module._hf_hook.post_forward(module, output)

File ~/.cache/huggingface/modules/transformers_modules/Baichuan2-13B-Base/modeling_baichuan.py:688, in BaichuanForCausalLM.forward(self, input_ids, attention_mask, past_key_values, inputs_embeds, labels, use_cache, output_attentions, output_hidden_states, return_dict, **kwargs)
683 return_dict = (
684 return_dict if return_dict is not None else self.config.use_return_dict
685 )
687 # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)
--> 688 outputs = self.model(
689 input_ids=input_ids,
690 attention_mask=attention_mask,
691 past_key_values=past_key_values,
692 inputs_embeds=inputs_embeds,
693 use_cache=use_cache,
694 output_attentions=output_attentions,
695 output_hidden_states=output_hidden_states,
696 return_dict=return_dict,
697 )
699 hidden_states = outputs[0]
700 logits = self.lm_head(hidden_states)

File ~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:1501, in Module._call_impl(self, *args, **kwargs)
1496 # If we don't have any hooks, we want to skip the rest of the logic in
1497 # this function, and just call forward.
1498 if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks or self._forward_pre_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 = [], []

File ~/.cache/huggingface/modules/transformers_modules/Baichuan2-13B-Base/modeling_baichuan.py:401, in BaichuanModel.forward(self, input_ids, attention_mask, past_key_values, inputs_embeds, use_cache, output_attentions, output_hidden_states, return_dict)
399 alibi_mask = self.alibi_mask
400 else:
--> 401 alibi_mask = self.get_alibi_mask(inputs_embeds, seq_length_with_past)
403 if attention_mask is not None:
404 if len(attention_mask.shape) == 2:

File ~/.cache/huggingface/modules/transformers_modules/Baichuan2-13B-Base/modeling_baichuan.py:351, in BaichuanModel.get_alibi_mask(self, tensor, seq_length_with_past)
343 self.max_cache_pos = seq_length_with_past
344 self.register_buffer(
345 "future_mask",
346 _gen_alibi_mask(tensor, self.n_head, self.max_cache_pos).to(
(...)
349 persistent=False,
350 )
--> 351 mask = self.future_mask[
352 : self.n_head, :seq_length_with_past, :seq_length_with_past
353 ]
354 return mask

File ~/.local/lib/python3.10/site-packages/torch/nn/modules/module.py:1614, in Module.getattr(self, name)
1612 if name in modules:
1613 return modules[name]
-> 1614 raise AttributeError("'{}' object has no attribute '{}'".format(
1615 type(self).name, name))

AttributeError: 'BaichuanModel' object has no attribute 'future_mask'

@Yu-Yang-Li
Copy link
Author

model_name = 'Baichuan2-13B-Base'
模型配置:
model_cfg = {
'Baichuan2-13B-Base':{
'model_id': 'baichuan-inc/Baichuan2-13B-Base',
'model_revision': 'v1.0.1',
'use_raw_generation_config': False,
'custom_chat': False,
'generate_cfg':{
'do_sample': True,
'max_new_tokens': 512,
'top_k': 10
}
}
}

@Zhikaiiii
Copy link
Collaborator

model_name = 'Baichuan2-13B-Base' 模型配置: model_cfg = { 'Baichuan2-13B-Base':{ 'model_id': 'baichuan-inc/Baichuan2-13B-Base', 'model_revision': 'v1.0.1', 'use_raw_generation_config': False, 'custom_chat': False, 'generate_cfg':{ 'do_sample': True, 'max_new_tokens': 512, 'top_k': 10 } } }

我这边用这个配置是可以跑通的,我的modelscope版本是1.8.4,请问你的是多少呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants