(
self,
hidden_states,
query_hidden_state,
attention_mask,
layer_past=None,
get_key_value=False,
prompt_length=None,
context_length=None,
)
| 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: |
nothing calls this directly
no test coverage detected