MCPcopy Create free account
hub / github.com/zai-org/CodeGeeX / forward

Method forward

codegeex/paddle/codegeex_model.py:610–670  ·  view source on GitHub ↗
(
        self,
        hidden_states,
        query_hidden_state,
        attention_mask,
        layer_past=None,
        get_key_value=False,
        prompt_length=None,
        context_length=None,
    )

Source from the content-addressed store, hash-verified

608 return self.layers[self._get_layer_index(layer_number)]
609
610 def forward(
611 self,
612 hidden_states,
613 query_hidden_state,
614 attention_mask,
615 layer_past=None,
616 get_key_value=False,
617 prompt_length=None,
618 context_length=None,
619 ):
620 # data format change to avoid explicit tranposes : [b s h] --> [s b h]
621 hidden_states = hidden_states.transpose([1, 0, 2])
622 query_hidden_state = query_hidden_state.transpose([1, 0, 2])
623
624
625 if get_key_value:
626 presents = []
627 for index in range(self.num_layers):
628 layer = self._get_layer(index)
629 past = None
630 if layer_past is not None:
631 past = layer_past[index]
632 hidden_states = layer(hidden_states,
633 attention_mask,
634 layer_past=past,
635 get_key_value=get_key_value,
636 prompt_length=prompt_length,
637 context_length=context_length)
638 if get_key_value:
639 hidden_states, present = hidden_states
640 presents.append(present)
641
642 # Use FP32 for Layernorm
643 # hidden_states_ = self.final_layernorm(hidden_states.cast("float32")).cast("float16")
644 hidden_states_ = self.final_layernorm(hidden_states)
645
646 #################################
647 # top query layer
648 #################################
649 past = None
650 if layer_past is not None:
651 past = layer_past[self.num_layers]
652 hidden_states = self.topQueryLayer(hidden_states_,
653 query_hidden_state,
654 attention_mask,
655 layer_past=past,
656 get_key_value=get_key_value,
657 prompt_length=prompt_length,
658 context_length=context_length)
659
660 if get_key_value:
661 hidden_states, present = hidden_states
662 presents.append(present)
663
664 # reverting data format change [s b h] --> [b s h]
665 output = hidden_states.transpose([1, 0, 2])
666
667 if get_key_value:

Callers

nothing calls this directly

Calls 1

_get_layerMethod · 0.95

Tested by

no test coverage detected