Commit 83e7903
committed
[TRTLLM-12669][feat] Eagle3 one-model draft sampling honors target sampling params
The Eagle3 one-model draft loop was hardcoded to greedy argmax, even
when the target sampler used non-greedy (temperature/top_k/top_p)
parameters. This made rejection sampling math degenerate: with draft
forced to argmax, p_draft is a one-hot on the argmax token, so
p_target / p_draft is zero everywhere else and acceptance is biased.
Route the linear draft loop through a new `_draft_sampler_advanced`
on `SpecWorkerBase` that reuses the per-request sampling tensors
already populated by `populate_sampling_params_for_one_model`
(request_temperatures / request_top_ks / request_top_ps) and the
shared seed/offset used by the target sampler. When the batch is
all-greedy (`is_all_greedy_sample=True`) it short-circuits to
`_draft_sampler_greedy`, matching the target sampler's argmax
fast-path so existing CUDA-graph variants are unaffected.
Other spec modes (Draft-Target, MTP, Pard) are untouched and keep
their current argmax draft sampling.
Signed-off-by: ZhaoyangWang <zhaoyangw@nvidia.com>1 parent d237690 commit 83e7903
2 files changed
Lines changed: 72 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
717 | 717 | | |
718 | 718 | | |
719 | 719 | | |
720 | | - | |
| 720 | + | |
| 721 | + | |
721 | 722 | | |
722 | 723 | | |
723 | 724 | | |
| |||
794 | 795 | | |
795 | 796 | | |
796 | 797 | | |
| 798 | + | |
| 799 | + | |
797 | 800 | | |
798 | 801 | | |
799 | | - | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
800 | 805 | | |
801 | 806 | | |
802 | | - | |
803 | | - | |
804 | | - | |
805 | | - | |
806 | | - | |
807 | | - | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
812 | 812 | | |
813 | 813 | | |
814 | 814 | | |
815 | | - | |
816 | | - | |
817 | | - | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
818 | 819 | | |
819 | 820 | | |
820 | 821 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1141 | 1141 | | |
1142 | 1142 | | |
1143 | 1143 | | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
1144 | 1200 | | |
1145 | 1201 | | |
1146 | 1202 | | |
| |||
0 commit comments