Preprocessing before embedding. Args: input_ids: seq_lens_this_time: speculative_decoding: draft_tokens: seq_lens_encoder: Return: ids_remove_padding: cum_offsets: batch_id_per_token: cu_seqlens_q: cu_seqlen
(
token_num_cpu: int,
input_ids: paddle.Tensor,
seq_lens_this_time: paddle.Tensor,
speculative_decoding: bool,
draft_tokens: Optional[paddle.Tensor] = None,
seq_lens_encoder: Optional[paddle.Tensor] = None,
seq_lens_decoder: Optional[paddle.Tensor] = None,
)
| 120 | |
| 121 | |
| 122 | def pre_process( |
| 123 | token_num_cpu: int, |
| 124 | input_ids: paddle.Tensor, |
| 125 | seq_lens_this_time: paddle.Tensor, |
| 126 | speculative_decoding: bool, |
| 127 | draft_tokens: Optional[paddle.Tensor] = None, |
| 128 | seq_lens_encoder: Optional[paddle.Tensor] = None, |
| 129 | seq_lens_decoder: Optional[paddle.Tensor] = None, |
| 130 | ): |
| 131 | """ |
| 132 | Preprocessing before embedding. |
| 133 | Args: |
| 134 | input_ids: |
| 135 | seq_lens_this_time: |
| 136 | speculative_decoding: |
| 137 | draft_tokens: |
| 138 | seq_lens_encoder: |
| 139 | Return: |
| 140 | ids_remove_padding: |
| 141 | cum_offsets: |
| 142 | batch_id_per_token: |
| 143 | cu_seqlens_q: |
| 144 | cu_seqlens_k: |
| 145 | """ |
| 146 | specific_platform = current_platform.is_cuda() or current_platform.is_maca() or current_platform.is_iluvatar() |
| 147 | if specific_platform and not speculative_decoding: |
| 148 | # Note(ZKK): This case's code is very simple! |
| 149 | ids_remove_padding, batch_id_per_token, cu_seqlens_q, cu_seqlens_k = get_padding_offset( |
| 150 | input_ids, seq_lens_this_time, None, None, token_num_cpu |
| 151 | ) |
| 152 | return ( |
| 153 | ids_remove_padding, |
| 154 | batch_id_per_token, |
| 155 | cu_seqlens_q, |
| 156 | cu_seqlens_k, |
| 157 | None, |
| 158 | None, |
| 159 | ) |
| 160 | # Remove padding |
| 161 | if speculative_decoding: |
| 162 | ( |
| 163 | ids_remove_padding, |
| 164 | batch_id_per_token, |
| 165 | cu_seqlens_q, |
| 166 | cu_seqlens_k, |
| 167 | ) = get_padding_offset(input_ids, seq_lens_this_time, draft_tokens, seq_lens_encoder, token_num_cpu) |
| 168 | |
| 169 | # compute each batch's output token num |
| 170 | seq_lens_output = speculate_get_seq_lens_output( |
| 171 | seq_lens_this_time, |
| 172 | seq_lens_encoder, |
| 173 | seq_lens_decoder, |
| 174 | ) |
| 175 | if isinstance(seq_lens_output, list): |
| 176 | seq_lens_output = seq_lens_output[0] |
| 177 | output_token_num = paddle.sum(seq_lens_output) |
| 178 | |
| 179 | useless_input_ids = input_ids |
no test coverage detected