diff --git a/model/model_minimind.py b/model/model_minimind.py index ecd99b6..259f0af 100644 --- a/model/model_minimind.py +++ b/model/model_minimind.py @@ -194,13 +194,7 @@ class Attention(nn.Module): ) if self.flash and seq_len > 1 and (attention_mask is None or torch.all(attention_mask == 1)): - attn_mask = ( - None - if attention_mask is None - else attention_mask.view(bsz, 1, 1, -1).expand(bsz, self.n_local_heads, seq_len, -1).bool() - ) - - output = F.scaled_dot_product_attention(xq, xk, xv, attn_mask=attn_mask, dropout_p=self.dropout if self.training else 0.0, is_causal=True) + output = F.scaled_dot_product_attention(xq, xk, xv, dropout_p=self.dropout if self.training else 0.0, is_causal=True) else: scores = (xq @ xk.transpose(-2, -1)) / math.sqrt(self.head_dim) scores = scores + torch.triu( @@ -445,7 +439,6 @@ class MiniMindForCausalLM(PreTrainedModel, GenerationMixin): self.model = MiniMindModel(self.config) self.lm_head = nn.Linear(self.config.hidden_size, self.config.vocab_size, bias=False) self.model.embed_tokens.weight = self.lm_head.weight - self.OUT = CausalLMOutputWithPast() def forward(self, input_ids: Optional[torch.Tensor] = None, @@ -454,7 +447,7 @@ class MiniMindForCausalLM(PreTrainedModel, GenerationMixin): use_cache: bool = False, logits_to_keep: Union[int, torch.Tensor] = 0, **args): - h, past_kvs, aux_loss = self.model( + hidden_states, past_key_values, aux_loss = self.model( input_ids=input_ids, attention_mask=attention_mask, past_key_values=past_key_values, @@ -462,9 +455,7 @@ class MiniMindForCausalLM(PreTrainedModel, GenerationMixin): **args ) slice_indices = slice(-logits_to_keep, None) if isinstance(logits_to_keep, int) else logits_to_keep - logits = self.lm_head(h[:, slice_indices, :]) - self.OUT.__setitem__('last_hidden_state', h) - self.OUT.__setitem__('logits', logits) - self.OUT.__setitem__('aux_loss', aux_loss) - self.OUT.__setitem__('past_key_values', past_kvs) - return self.OUT + logits = self.lm_head(hidden_states[:, slice_indices, :]) + output = CausalLMOutputWithPast(logits=logits, past_key_values=past_key_values, hidden_states=hidden_states) + output.aux_loss = aux_loss + return output diff --git a/model/model_vlm.py b/model/model_vlm.py index f53f299..f17e93e 100644 --- a/model/model_vlm.py +++ b/model/model_vlm.py @@ -162,8 +162,6 @@ class MiniMindVLM(MiniMindForCausalLM): ) slice_indices = slice(-logits_to_keep, None) if isinstance(logits_to_keep, int) else logits_to_keep logits = self.lm_head(hidden_states[:, slice_indices, :]) - self.OUT.__setitem__('last_hidden_state', hidden_states) - self.OUT.__setitem__('logits', logits) - self.OUT.__setitem__('aux_loss', aux_loss) - self.OUT.__setitem__('past_key_values', presents) - return self.OUT + output = CausalLMOutputWithPast(logits=logits, past_key_values=presents, hidden_states=hidden_states) + output.aux_loss = aux_loss + return output