(max_num_seqs, max_draft_token_num, max_model_len, vocab_size)
| 106 | |
| 107 | |
| 108 | def _create_share_inputs(max_num_seqs, max_draft_token_num, max_model_len, vocab_size): |
| 109 | share_inputs = {} |
| 110 | share_inputs["seq_lens_this_time"] = paddle.full([max_num_seqs, 1], 2, dtype="int32") |
| 111 | |
| 112 | cu_seqlens_q_output = [0] + paddle.cumsum(share_inputs["seq_lens_this_time"]).numpy().tolist() |
| 113 | share_inputs["cu_seqlens_q_output"] = paddle.to_tensor(cu_seqlens_q_output).cast("int32") |
| 114 | share_inputs["batch_id_per_token_output"] = paddle.arange(max_num_seqs, dtype="int32") * 2 |
| 115 | |
| 116 | share_inputs["accept_tokens"] = paddle.full( |
| 117 | shape=[max_num_seqs, max_draft_token_num + 1], fill_value=0, dtype="int64" |
| 118 | ) |
| 119 | share_inputs["accept_num"] = paddle.full(shape=[max_num_seqs], fill_value=1, dtype="int32") |
| 120 | share_inputs["step_idx"] = paddle.full([max_num_seqs, 1], 1, dtype="int64") |
| 121 | share_inputs["stop_flags"] = paddle.full([max_num_seqs, 1], False, dtype="bool") |
| 122 | share_inputs["seq_lens_encoder"] = paddle.full([max_num_seqs, 1], 0, dtype="int32") |
| 123 | share_inputs["seq_lens_decoder"] = paddle.full([max_num_seqs, 1], 2, dtype="int32") |
| 124 | share_inputs["draft_tokens"] = paddle.full( |
| 125 | shape=[max_num_seqs, max_draft_token_num + 1], fill_value=0, dtype="int64" |
| 126 | ) |
| 127 | share_inputs["max_dec_len"] = paddle.full([max_num_seqs, 1], max_model_len, dtype="int64") |
| 128 | share_inputs["is_block_step"] = paddle.full([max_num_seqs], False, dtype="bool") |
| 129 | share_inputs["actual_draft_token_num"] = paddle.full( |
| 130 | shape=[max_num_seqs], fill_value=max_draft_token_num, dtype="int32" |
| 131 | ) |
| 132 | |
| 133 | share_inputs["batch_token_num"] = paddle.where( |
| 134 | share_inputs["seq_lens_encoder"] != 0, |
| 135 | paddle.ones_like(share_inputs["seq_lens_encoder"]), |
| 136 | share_inputs["seq_lens_this_time"], |
| 137 | ).squeeze(1) |
| 138 | share_inputs["next_token_num"] = paddle.full(shape=[max_num_seqs], fill_value=0, dtype="int32") |
| 139 | share_inputs["cu_batch_token_offset"] = paddle.concat( |
| 140 | [paddle.to_tensor([0]), paddle.cumsum(share_inputs["accept_num"])] |
| 141 | ).astype("int32") |
| 142 | share_inputs["cu_next_token_offset"] = paddle.full(shape=[max_num_seqs + 1], fill_value=0, dtype="int32") |
| 143 | share_inputs["substep"] = 0 |
| 144 | share_inputs["draft_logits"] = paddle.full( |
| 145 | [max_num_seqs * (max_draft_token_num + 1), vocab_size], -1, dtype="float32" |
| 146 | ) |
| 147 | share_inputs["reasoning_status"] = paddle.zeros([max_num_seqs], dtype="int32") |
| 148 | |
| 149 | return share_inputs |
| 150 | |
| 151 | |
| 152 | def _create_padding_inputs(): |
no test coverage detected