fix retrive -> retrieve typo (#23503)
Co-authored-by: SoluMilken <19161836+solumilken@users.noreply.github.com>
This commit is contained in:
co-authored by
SoluMilken
parent
917d2aa1dc
commit
f611dd24f1
@@ -220,24 +220,26 @@ def split_spec_info(
|
|||||||
positions = spec_info.positions[start_token_index:end_token_index]
|
positions = spec_info.positions[start_token_index:end_token_index]
|
||||||
else:
|
else:
|
||||||
positions = None
|
positions = None
|
||||||
if spec_info.retrive_index is not None:
|
if spec_info.retrieve_index is not None:
|
||||||
retrive_index = spec_info.retrive_index[start_seq_index:end_seq_index]
|
retrieve_index = spec_info.retrieve_index[start_seq_index:end_seq_index]
|
||||||
else:
|
else:
|
||||||
retrive_index = None
|
retrieve_index = None
|
||||||
if spec_info.retrive_next_token is not None:
|
if spec_info.retrieve_next_token is not None:
|
||||||
retrive_next_token = spec_info.retrive_next_token[start_seq_index:end_seq_index]
|
retrieve_next_token = spec_info.retrieve_next_token[
|
||||||
else:
|
|
||||||
retrive_next_token = None
|
|
||||||
if spec_info.retrive_next_sibling is not None:
|
|
||||||
retrive_next_sibling = spec_info.retrive_next_sibling[
|
|
||||||
start_seq_index:end_seq_index
|
start_seq_index:end_seq_index
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
retrive_next_sibling = None
|
retrieve_next_token = None
|
||||||
if spec_info.retrive_cum_len is not None:
|
if spec_info.retrieve_next_sibling is not None:
|
||||||
retrive_cum_len = spec_info.retrive_cum_len[start_seq_index:end_seq_index]
|
retrieve_next_sibling = spec_info.retrieve_next_sibling[
|
||||||
|
start_seq_index:end_seq_index
|
||||||
|
]
|
||||||
else:
|
else:
|
||||||
retrive_cum_len = None
|
retrieve_next_sibling = None
|
||||||
|
if spec_info.retrieve_cum_len is not None:
|
||||||
|
retrieve_cum_len = spec_info.retrieve_cum_len[start_seq_index:end_seq_index]
|
||||||
|
else:
|
||||||
|
retrieve_cum_len = None
|
||||||
|
|
||||||
if spec_info.seq_lens_cpu is not None:
|
if spec_info.seq_lens_cpu is not None:
|
||||||
seq_lens_cpu = spec_info.seq_lens_cpu[start_seq_index:end_seq_index]
|
seq_lens_cpu = spec_info.seq_lens_cpu[start_seq_index:end_seq_index]
|
||||||
@@ -252,10 +254,10 @@ def split_spec_info(
|
|||||||
custom_mask=custom_mask,
|
custom_mask=custom_mask,
|
||||||
draft_token=draft_token,
|
draft_token=draft_token,
|
||||||
positions=positions,
|
positions=positions,
|
||||||
retrive_index=retrive_index,
|
retrieve_index=retrieve_index,
|
||||||
retrive_next_token=retrive_next_token,
|
retrieve_next_token=retrieve_next_token,
|
||||||
retrive_next_sibling=retrive_next_sibling,
|
retrieve_next_sibling=retrieve_next_sibling,
|
||||||
retrive_cum_len=retrive_cum_len,
|
retrieve_cum_len=retrieve_cum_len,
|
||||||
seq_lens_cpu=seq_lens_cpu,
|
seq_lens_cpu=seq_lens_cpu,
|
||||||
seq_lens_sum=seq_lens_sum,
|
seq_lens_sum=seq_lens_sum,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -187,8 +187,10 @@ class MambaAttnBackendBase(AttentionBackend):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if self.topk > 1:
|
if self.topk > 1:
|
||||||
retrieve_next_token = forward_batch.spec_info.retrive_next_token
|
retrieve_next_token = forward_batch.spec_info.retrieve_next_token
|
||||||
retrieve_next_sibling = forward_batch.spec_info.retrive_next_sibling
|
retrieve_next_sibling = (
|
||||||
|
forward_batch.spec_info.retrieve_next_sibling
|
||||||
|
)
|
||||||
# retrieve_next_token is None during dummy run so skip tensor creation
|
# retrieve_next_token is None during dummy run so skip tensor creation
|
||||||
if retrieve_next_token is not None:
|
if retrieve_next_token is not None:
|
||||||
retrieve_parent_token = torch.empty_like(retrieve_next_token)
|
retrieve_parent_token = torch.empty_like(retrieve_next_token)
|
||||||
@@ -485,8 +487,8 @@ class MambaAttnBackendBase(AttentionBackend):
|
|||||||
# If topk > 1, we need to use retrieve_next_token and retrieve_next_sibling to handle the eagle tree custom attention mask
|
# If topk > 1, we need to use retrieve_next_token and retrieve_next_sibling to handle the eagle tree custom attention mask
|
||||||
if forward_mode.is_target_verify() and self.topk > 1:
|
if forward_mode.is_target_verify() and self.topk > 1:
|
||||||
# They are None during cuda graph capture so skip the copy_...
|
# They are None during cuda graph capture so skip the copy_...
|
||||||
# self.retrieve_next_token_list[bs - 1].copy_(spec_info.retrive_next_token)
|
# self.retrieve_next_token_list[bs - 1].copy_(spec_info.retrieve_next_token)
|
||||||
# self.retrieve_next_sibling_list[bs - 1].copy_(spec_info.retrive_next_sibling)
|
# self.retrieve_next_sibling_list[bs - 1].copy_(spec_info.retrieve_next_sibling)
|
||||||
return ForwardMetadata(
|
return ForwardMetadata(
|
||||||
query_start_loc=self.query_start_loc_list[bs - 1],
|
query_start_loc=self.query_start_loc_list[bs - 1],
|
||||||
mamba_cache_indices=self.state_indices_list[bs - 1],
|
mamba_cache_indices=self.state_indices_list[bs - 1],
|
||||||
@@ -545,12 +547,12 @@ class MambaAttnBackendBase(AttentionBackend):
|
|||||||
|
|
||||||
# If topk > 1, we need to use retrieve_next_token and retrieve_next_sibling to handle the eagle tree custom attention mask
|
# If topk > 1, we need to use retrieve_next_token and retrieve_next_sibling to handle the eagle tree custom attention mask
|
||||||
if forward_mode.is_target_verify() and self.topk > 1:
|
if forward_mode.is_target_verify() and self.topk > 1:
|
||||||
bs_without_pad = spec_info.retrive_next_token.shape[0]
|
bs_without_pad = spec_info.retrieve_next_token.shape[0]
|
||||||
self.retrieve_next_token_list[bs - 1][:bs_without_pad].copy_(
|
self.retrieve_next_token_list[bs - 1][:bs_without_pad].copy_(
|
||||||
spec_info.retrive_next_token
|
spec_info.retrieve_next_token
|
||||||
)
|
)
|
||||||
self.retrieve_next_sibling_list[bs - 1][:bs_without_pad].copy_(
|
self.retrieve_next_sibling_list[bs - 1][:bs_without_pad].copy_(
|
||||||
spec_info.retrive_next_sibling
|
spec_info.retrieve_next_sibling
|
||||||
)
|
)
|
||||||
return ForwardMetadata(
|
return ForwardMetadata(
|
||||||
query_start_loc=self.query_start_loc_list[bs - 1],
|
query_start_loc=self.query_start_loc_list[bs - 1],
|
||||||
|
|||||||
@@ -842,10 +842,10 @@ class CPUGraphRunner:
|
|||||||
draft_token=None,
|
draft_token=None,
|
||||||
custom_mask=self.custom_mask,
|
custom_mask=self.custom_mask,
|
||||||
positions=None,
|
positions=None,
|
||||||
retrive_index=None,
|
retrieve_index=None,
|
||||||
retrive_next_token=None,
|
retrieve_next_token=None,
|
||||||
retrive_next_sibling=None,
|
retrieve_next_sibling=None,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.model_runner.server_args.speculative_num_steps,
|
spec_steps=self.model_runner.server_args.speculative_num_steps,
|
||||||
topk=self.model_runner.server_args.speculative_eagle_topk,
|
topk=self.model_runner.server_args.speculative_eagle_topk,
|
||||||
draft_token_num=self.model_runner.server_args.speculative_num_draft_tokens,
|
draft_token_num=self.model_runner.server_args.speculative_num_draft_tokens,
|
||||||
|
|||||||
@@ -1334,10 +1334,10 @@ class CudaGraphRunner:
|
|||||||
draft_token=None,
|
draft_token=None,
|
||||||
custom_mask=self.buffers.custom_mask,
|
custom_mask=self.buffers.custom_mask,
|
||||||
positions=None,
|
positions=None,
|
||||||
retrive_index=None,
|
retrieve_index=None,
|
||||||
retrive_next_token=None,
|
retrieve_next_token=None,
|
||||||
retrive_next_sibling=None,
|
retrieve_next_sibling=None,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.speculative_num_steps,
|
spec_steps=self.speculative_num_steps,
|
||||||
topk=self.model_runner.server_args.speculative_eagle_topk,
|
topk=self.model_runner.server_args.speculative_eagle_topk,
|
||||||
draft_token_num=self.speculative_num_draft_tokens,
|
draft_token_num=self.speculative_num_draft_tokens,
|
||||||
@@ -1379,9 +1379,9 @@ class CudaGraphRunner:
|
|||||||
draft_token=None,
|
draft_token=None,
|
||||||
tree_mask=self.buffers.custom_mask,
|
tree_mask=self.buffers.custom_mask,
|
||||||
positions=None,
|
positions=None,
|
||||||
retrive_index=None,
|
retrieve_index=None,
|
||||||
retrive_next_token=None,
|
retrieve_next_token=None,
|
||||||
retrive_next_sibling=None,
|
retrieve_next_sibling=None,
|
||||||
draft_token_num=self.num_tokens_per_bs,
|
draft_token_num=self.num_tokens_per_bs,
|
||||||
)
|
)
|
||||||
spec_info.capture_hidden_mode = CaptureHiddenMode.NULL
|
spec_info.capture_hidden_mode = CaptureHiddenMode.NULL
|
||||||
|
|||||||
@@ -2393,10 +2393,10 @@ class ModelRunner(ModelRunnerKVCacheMixin):
|
|||||||
draft_token=None,
|
draft_token=None,
|
||||||
custom_mask=buffers.custom_mask,
|
custom_mask=buffers.custom_mask,
|
||||||
positions=None,
|
positions=None,
|
||||||
retrive_index=None,
|
retrieve_index=None,
|
||||||
retrive_next_token=None,
|
retrieve_next_token=None,
|
||||||
retrive_next_sibling=None,
|
retrieve_next_sibling=None,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.server_args.speculative_num_steps,
|
spec_steps=self.server_args.speculative_num_steps,
|
||||||
topk=self.server_args.speculative_eagle_topk,
|
topk=self.server_args.speculative_eagle_topk,
|
||||||
draft_token_num=self.server_args.speculative_num_draft_tokens,
|
draft_token_num=self.server_args.speculative_num_draft_tokens,
|
||||||
@@ -2427,9 +2427,9 @@ class ModelRunner(ModelRunnerKVCacheMixin):
|
|||||||
draft_token=None,
|
draft_token=None,
|
||||||
tree_mask=buffers.custom_mask,
|
tree_mask=buffers.custom_mask,
|
||||||
positions=None,
|
positions=None,
|
||||||
retrive_index=None,
|
retrieve_index=None,
|
||||||
retrive_next_token=None,
|
retrieve_next_token=None,
|
||||||
retrive_next_sibling=None,
|
retrieve_next_sibling=None,
|
||||||
draft_token_num=num_tokens_per_bs,
|
draft_token_num=num_tokens_per_bs,
|
||||||
)
|
)
|
||||||
spec_info.capture_hidden_mode = CaptureHiddenMode.NULL
|
spec_info.capture_hidden_mode = CaptureHiddenMode.NULL
|
||||||
|
|||||||
@@ -832,10 +832,10 @@ class PiecewiseCudaGraphRunner:
|
|||||||
draft_token=None,
|
draft_token=None,
|
||||||
custom_mask=self.custom_mask,
|
custom_mask=self.custom_mask,
|
||||||
positions=None,
|
positions=None,
|
||||||
retrive_index=None,
|
retrieve_index=None,
|
||||||
retrive_next_token=None,
|
retrieve_next_token=None,
|
||||||
retrive_next_sibling=None,
|
retrieve_next_sibling=None,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.model_runner.server_args.speculative_num_steps,
|
spec_steps=self.model_runner.server_args.speculative_num_steps,
|
||||||
topk=self.model_runner.server_args.speculative_eagle_topk,
|
topk=self.model_runner.server_args.speculative_eagle_topk,
|
||||||
draft_token_num=self.model_runner.server_args.speculative_num_draft_tokens,
|
draft_token_num=self.model_runner.server_args.speculative_num_draft_tokens,
|
||||||
|
|||||||
@@ -618,6 +618,7 @@ def compute_dflash_sampling_accept_len_and_bonus(
|
|||||||
accept_index=accept_index,
|
accept_index=accept_index,
|
||||||
accept_token_num=accept_token_num,
|
accept_token_num=accept_token_num,
|
||||||
candidates=candidates_i64,
|
candidates=candidates_i64,
|
||||||
|
# kwarg LHS retained as `retrive_*` to match sgl_kernel op schema.
|
||||||
retrive_index=retrieve_index,
|
retrive_index=retrieve_index,
|
||||||
retrive_next_token=retrieve_next_token,
|
retrive_next_token=retrieve_next_token,
|
||||||
retrive_next_sibling=retrieve_next_sibling,
|
retrive_next_sibling=retrieve_next_sibling,
|
||||||
|
|||||||
@@ -61,10 +61,10 @@ class EagleVerifyInput(SpecInput, EagleVerifyInputV2Mixin):
|
|||||||
draft_token: torch.Tensor
|
draft_token: torch.Tensor
|
||||||
custom_mask: torch.Tensor
|
custom_mask: torch.Tensor
|
||||||
positions: torch.Tensor
|
positions: torch.Tensor
|
||||||
retrive_index: torch.Tensor
|
retrieve_index: torch.Tensor
|
||||||
retrive_next_token: torch.Tensor
|
retrieve_next_token: torch.Tensor
|
||||||
retrive_next_sibling: torch.Tensor
|
retrieve_next_sibling: torch.Tensor
|
||||||
retrive_cum_len: torch.Tensor
|
retrieve_cum_len: torch.Tensor
|
||||||
spec_steps: int
|
spec_steps: int
|
||||||
topk: int
|
topk: int
|
||||||
draft_token_num: int
|
draft_token_num: int
|
||||||
@@ -88,16 +88,16 @@ class EagleVerifyInput(SpecInput, EagleVerifyInputV2Mixin):
|
|||||||
draft_token=torch.empty((0,), dtype=torch.long, device="cuda"),
|
draft_token=torch.empty((0,), dtype=torch.long, device="cuda"),
|
||||||
custom_mask=torch.full((0,), True, dtype=torch.bool, device="cuda"),
|
custom_mask=torch.full((0,), True, dtype=torch.bool, device="cuda"),
|
||||||
positions=torch.empty((0,), dtype=torch.int64, device="cuda"),
|
positions=torch.empty((0,), dtype=torch.int64, device="cuda"),
|
||||||
retrive_index=torch.full(
|
retrieve_index=torch.full(
|
||||||
(0, num_verify_tokens), -1, dtype=torch.long, device="cuda"
|
(0, num_verify_tokens), -1, dtype=torch.long, device="cuda"
|
||||||
),
|
),
|
||||||
retrive_next_token=torch.full(
|
retrieve_next_token=torch.full(
|
||||||
(0, num_verify_tokens), -1, dtype=torch.long, device="cuda"
|
(0, num_verify_tokens), -1, dtype=torch.long, device="cuda"
|
||||||
),
|
),
|
||||||
retrive_next_sibling=torch.full(
|
retrieve_next_sibling=torch.full(
|
||||||
(0, num_verify_tokens), -1, dtype=torch.long, device="cuda"
|
(0, num_verify_tokens), -1, dtype=torch.long, device="cuda"
|
||||||
),
|
),
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
topk=topk,
|
topk=topk,
|
||||||
draft_token_num=num_verify_tokens,
|
draft_token_num=num_verify_tokens,
|
||||||
spec_steps=spec_steps,
|
spec_steps=spec_steps,
|
||||||
@@ -258,7 +258,7 @@ class EagleVerifyInput(SpecInput, EagleVerifyInputV2Mixin):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
bs = self.retrive_index.shape[0]
|
bs = self.retrieve_index.shape[0]
|
||||||
candidates = self.draft_token.reshape(bs, self.draft_token_num)
|
candidates = self.draft_token.reshape(bs, self.draft_token_num)
|
||||||
sampling_info = batch.sampling_info
|
sampling_info = batch.sampling_info
|
||||||
|
|
||||||
@@ -272,8 +272,10 @@ class EagleVerifyInput(SpecInput, EagleVerifyInputV2Mixin):
|
|||||||
|
|
||||||
if bs != len(sampling_info):
|
if bs != len(sampling_info):
|
||||||
sampling_info = copy.deepcopy(sampling_info)
|
sampling_info = copy.deepcopy(sampling_info)
|
||||||
# NOTE: retrive_index are the indices of the requests that are kept.
|
# NOTE: retrieve_index are the indices of the requests that are kept.
|
||||||
sampling_info.filter_batch(self.retrive_index.tolist(), self.retrive_index)
|
sampling_info.filter_batch(
|
||||||
|
self.retrieve_index.tolist(), self.retrieve_index
|
||||||
|
)
|
||||||
|
|
||||||
# Apply the custom logit processors if registered in the sampling info.
|
# Apply the custom logit processors if registered in the sampling info.
|
||||||
if sampling_info.has_custom_logit_processor:
|
if sampling_info.has_custom_logit_processor:
|
||||||
@@ -322,9 +324,9 @@ class EagleVerifyInput(SpecInput, EagleVerifyInputV2Mixin):
|
|||||||
accept_index=accept_index, # mutable
|
accept_index=accept_index, # mutable
|
||||||
accept_token_num=accept_length, # mutable
|
accept_token_num=accept_length, # mutable
|
||||||
candidates=candidates,
|
candidates=candidates,
|
||||||
retrive_index=self.retrive_index,
|
retrieve_index=self.retrieve_index,
|
||||||
retrive_next_token=self.retrive_next_token,
|
retrieve_next_token=self.retrieve_next_token,
|
||||||
retrive_next_sibling=self.retrive_next_sibling,
|
retrieve_next_sibling=self.retrieve_next_sibling,
|
||||||
target_predict=target_predict,
|
target_predict=target_predict,
|
||||||
topk=self.topk,
|
topk=self.topk,
|
||||||
)
|
)
|
||||||
@@ -370,9 +372,10 @@ class EagleVerifyInput(SpecInput, EagleVerifyInputV2Mixin):
|
|||||||
accept_index=accept_index, # mutable
|
accept_index=accept_index, # mutable
|
||||||
accept_token_num=accept_length, # mutable
|
accept_token_num=accept_length, # mutable
|
||||||
candidates=candidates,
|
candidates=candidates,
|
||||||
retrive_index=self.retrive_index,
|
# kwarg LHS retained as `retrive_*` to match sgl_kernel op schema.
|
||||||
retrive_next_token=self.retrive_next_token,
|
retrive_index=self.retrieve_index,
|
||||||
retrive_next_sibling=self.retrive_next_sibling,
|
retrive_next_token=self.retrieve_next_token,
|
||||||
|
retrive_next_sibling=self.retrieve_next_sibling,
|
||||||
uniform_samples=coins,
|
uniform_samples=coins,
|
||||||
uniform_samples_for_final_sampling=coins_for_final_sampling,
|
uniform_samples_for_final_sampling=coins_for_final_sampling,
|
||||||
target_probs=target_probs,
|
target_probs=target_probs,
|
||||||
|
|||||||
@@ -373,9 +373,9 @@ class EagleVerifyInputV2Mixin:
|
|||||||
accept_index=accept_index, # mutable
|
accept_index=accept_index, # mutable
|
||||||
accept_token_num=accept_length, # mutable
|
accept_token_num=accept_length, # mutable
|
||||||
candidates=candidates,
|
candidates=candidates,
|
||||||
retrive_index=self.retrive_index,
|
retrieve_index=self.retrieve_index,
|
||||||
retrive_next_token=self.retrive_next_token,
|
retrieve_next_token=self.retrieve_next_token,
|
||||||
retrive_next_sibling=self.retrive_next_sibling,
|
retrieve_next_sibling=self.retrieve_next_sibling,
|
||||||
target_predict=target_predict,
|
target_predict=target_predict,
|
||||||
topk=self.topk,
|
topk=self.topk,
|
||||||
)
|
)
|
||||||
@@ -415,9 +415,10 @@ class EagleVerifyInputV2Mixin:
|
|||||||
accept_index=accept_index, # mutable
|
accept_index=accept_index, # mutable
|
||||||
accept_token_num=accept_length, # mutable
|
accept_token_num=accept_length, # mutable
|
||||||
candidates=candidates,
|
candidates=candidates,
|
||||||
retrive_index=self.retrive_index,
|
# kwarg LHS retained as `retrive_*` to match sgl_kernel op schema.
|
||||||
retrive_next_token=self.retrive_next_token,
|
retrive_index=self.retrieve_index,
|
||||||
retrive_next_sibling=self.retrive_next_sibling,
|
retrive_next_token=self.retrieve_next_token,
|
||||||
|
retrive_next_sibling=self.retrieve_next_sibling,
|
||||||
uniform_samples=coins,
|
uniform_samples=coins,
|
||||||
uniform_samples_for_final_sampling=coins_for_final_sampling,
|
uniform_samples_for_final_sampling=coins_for_final_sampling,
|
||||||
target_probs=target_probs,
|
target_probs=target_probs,
|
||||||
|
|||||||
@@ -104,10 +104,10 @@ def build_tree_kernel_efficient(
|
|||||||
raise NotImplementedError(f"Invalid tree mask: {tree_mask_mode=}")
|
raise NotImplementedError(f"Invalid tree mask: {tree_mask_mode=}")
|
||||||
|
|
||||||
# TODO: make them torch.empty and fuse them into `sgl_build_tree_kernel`
|
# TODO: make them torch.empty and fuse them into `sgl_build_tree_kernel`
|
||||||
retrive_buf = torch.full(
|
retrieve_buf = torch.full(
|
||||||
(3, bs, num_verify_tokens), -1, device=device, dtype=torch.long
|
(3, bs, num_verify_tokens), -1, device=device, dtype=torch.long
|
||||||
)
|
)
|
||||||
retrive_index, retrive_next_token, retrive_next_sibling = retrive_buf
|
retrieve_index, retrieve_next_token, retrieve_next_sibling = retrieve_buf
|
||||||
# position: where each token belongs to
|
# position: where each token belongs to
|
||||||
# e.g. if depth of each draft token is [0, 1, 1, 2] and the prompt length is 7
|
# e.g. if depth of each draft token is [0, 1, 1, 2] and the prompt length is 7
|
||||||
# then, positions = [7, 8, 8, 9]
|
# then, positions = [7, 8, 8, 9]
|
||||||
@@ -125,9 +125,9 @@ def build_tree_kernel_efficient(
|
|||||||
seq_lens,
|
seq_lens,
|
||||||
tree_mask,
|
tree_mask,
|
||||||
positions,
|
positions,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
topk,
|
topk,
|
||||||
spec_steps,
|
spec_steps,
|
||||||
num_verify_tokens,
|
num_verify_tokens,
|
||||||
@@ -140,9 +140,9 @@ def build_tree_kernel_efficient(
|
|||||||
seq_lens,
|
seq_lens,
|
||||||
tree_mask,
|
tree_mask,
|
||||||
positions,
|
positions,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
topk,
|
topk,
|
||||||
spec_steps,
|
spec_steps,
|
||||||
num_verify_tokens,
|
num_verify_tokens,
|
||||||
@@ -151,9 +151,9 @@ def build_tree_kernel_efficient(
|
|||||||
return (
|
return (
|
||||||
tree_mask,
|
tree_mask,
|
||||||
positions,
|
positions,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
draft_tokens,
|
draft_tokens,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -163,9 +163,9 @@ def verify_tree_greedy_func(
|
|||||||
accept_index: torch.Tensor,
|
accept_index: torch.Tensor,
|
||||||
accept_token_num: torch.Tensor,
|
accept_token_num: torch.Tensor,
|
||||||
candidates: torch.Tensor,
|
candidates: torch.Tensor,
|
||||||
retrive_index: torch.Tensor,
|
retrieve_index: torch.Tensor,
|
||||||
retrive_next_token: torch.Tensor,
|
retrieve_next_token: torch.Tensor,
|
||||||
retrive_next_sibling: torch.Tensor,
|
retrieve_next_sibling: torch.Tensor,
|
||||||
target_predict: torch.Tensor,
|
target_predict: torch.Tensor,
|
||||||
topk: int = -1,
|
topk: int = -1,
|
||||||
):
|
):
|
||||||
@@ -177,9 +177,10 @@ def verify_tree_greedy_func(
|
|||||||
accept_index=accept_index, # mutable
|
accept_index=accept_index, # mutable
|
||||||
accept_token_num=accept_token_num, # mutable
|
accept_token_num=accept_token_num, # mutable
|
||||||
candidates=candidates,
|
candidates=candidates,
|
||||||
retrive_index=retrive_index,
|
# kwarg LHS retained as `retrive_*` to match sgl_kernel op schema.
|
||||||
retrive_next_token=retrive_next_token,
|
retrive_index=retrieve_index,
|
||||||
retrive_next_sibling=retrive_next_sibling,
|
retrive_next_token=retrieve_next_token,
|
||||||
|
retrive_next_sibling=retrieve_next_sibling,
|
||||||
target_predict=target_predict,
|
target_predict=target_predict,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -191,9 +192,10 @@ def verify_tree_greedy_func(
|
|||||||
accept_index=accept_index,
|
accept_index=accept_index,
|
||||||
accept_token_num=accept_token_num,
|
accept_token_num=accept_token_num,
|
||||||
candidates=candidates,
|
candidates=candidates,
|
||||||
retrive_index=retrive_index,
|
# kwarg LHS retained as `retrive_*` to match sgl_kernel op schema.
|
||||||
retrive_next_token=retrive_next_token,
|
retrive_index=retrieve_index,
|
||||||
retrive_next_sibling=retrive_next_sibling,
|
retrive_next_token=retrieve_next_token,
|
||||||
|
retrive_next_sibling=retrieve_next_sibling,
|
||||||
target_predict=target_predict,
|
target_predict=target_predict,
|
||||||
)
|
)
|
||||||
return predicts, accept_index, accept_token_num
|
return predicts, accept_index, accept_token_num
|
||||||
|
|||||||
@@ -763,9 +763,9 @@ class EAGLEWorker(TpModelWorker):
|
|||||||
(
|
(
|
||||||
tree_mask,
|
tree_mask,
|
||||||
position,
|
position,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
draft_tokens,
|
draft_tokens,
|
||||||
) = build_tree_kernel_efficient(
|
) = build_tree_kernel_efficient(
|
||||||
spec_info.verified_id,
|
spec_info.verified_id,
|
||||||
@@ -783,10 +783,10 @@ class EAGLEWorker(TpModelWorker):
|
|||||||
draft_token=draft_tokens,
|
draft_token=draft_tokens,
|
||||||
custom_mask=tree_mask,
|
custom_mask=tree_mask,
|
||||||
positions=position,
|
positions=position,
|
||||||
retrive_index=retrive_index,
|
retrieve_index=retrieve_index,
|
||||||
retrive_next_token=retrive_next_token,
|
retrieve_next_token=retrieve_next_token,
|
||||||
retrive_next_sibling=retrive_next_sibling,
|
retrieve_next_sibling=retrieve_next_sibling,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.speculative_num_steps,
|
spec_steps=self.speculative_num_steps,
|
||||||
topk=self.topk,
|
topk=self.topk,
|
||||||
draft_token_num=self.speculative_num_draft_tokens,
|
draft_token_num=self.speculative_num_draft_tokens,
|
||||||
@@ -897,10 +897,10 @@ class EAGLEWorker(TpModelWorker):
|
|||||||
assert model_worker_batch.capture_hidden_mode == spec_info.capture_hidden_mode
|
assert model_worker_batch.capture_hidden_mode == spec_info.capture_hidden_mode
|
||||||
|
|
||||||
if batch.has_grammar:
|
if batch.has_grammar:
|
||||||
retrieve_next_token_cpu = spec_info.retrive_next_token.cpu()
|
retrieve_next_token_cpu = spec_info.retrieve_next_token.cpu()
|
||||||
retrieve_next_sibling_cpu = spec_info.retrive_next_sibling.cpu()
|
retrieve_next_sibling_cpu = spec_info.retrieve_next_sibling.cpu()
|
||||||
draft_tokens_cpu = spec_info.draft_token.view(
|
draft_tokens_cpu = spec_info.draft_token.view(
|
||||||
spec_info.retrive_next_token.shape
|
spec_info.retrieve_next_token.shape
|
||||||
).cpu()
|
).cpu()
|
||||||
|
|
||||||
# Forward
|
# Forward
|
||||||
@@ -927,7 +927,7 @@ class EAGLEWorker(TpModelWorker):
|
|||||||
|
|
||||||
if vocab_mask is not None:
|
if vocab_mask is not None:
|
||||||
assert spec_info.grammar is not None
|
assert spec_info.grammar is not None
|
||||||
vocab_mask = vocab_mask.to(spec_info.retrive_next_token.device)
|
vocab_mask = vocab_mask.to(spec_info.retrieve_next_token.device)
|
||||||
# NOTE (sk): otherwise, this vocab mask will be the one from the previous extend stage
|
# NOTE (sk): otherwise, this vocab mask will be the one from the previous extend stage
|
||||||
# and will be applied to produce wrong results
|
# and will be applied to produce wrong results
|
||||||
batch.sampling_info.vocab_mask = None
|
batch.sampling_info.vocab_mask = None
|
||||||
|
|||||||
@@ -364,9 +364,9 @@ class EagleDraftWorker(BaseDraftWorker):
|
|||||||
(
|
(
|
||||||
tree_mask,
|
tree_mask,
|
||||||
position,
|
position,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
draft_tokens,
|
draft_tokens,
|
||||||
) = build_tree_kernel_efficient(
|
) = build_tree_kernel_efficient(
|
||||||
draft_input.verified_id,
|
draft_input.verified_id,
|
||||||
@@ -387,10 +387,10 @@ class EagleDraftWorker(BaseDraftWorker):
|
|||||||
draft_token=draft_tokens,
|
draft_token=draft_tokens,
|
||||||
custom_mask=tree_mask,
|
custom_mask=tree_mask,
|
||||||
positions=position,
|
positions=position,
|
||||||
retrive_index=retrive_index,
|
retrieve_index=retrieve_index,
|
||||||
retrive_next_token=retrive_next_token,
|
retrieve_next_token=retrieve_next_token,
|
||||||
retrive_next_sibling=retrive_next_sibling,
|
retrieve_next_sibling=retrieve_next_sibling,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.speculative_num_steps,
|
spec_steps=self.speculative_num_steps,
|
||||||
topk=self.topk,
|
topk=self.topk,
|
||||||
draft_token_num=self.speculative_num_draft_tokens,
|
draft_token_num=self.speculative_num_draft_tokens,
|
||||||
@@ -786,10 +786,10 @@ class EAGLEWorkerV2(BaseSpecWorker):
|
|||||||
|
|
||||||
# Prepare grammar data on CPU if needed
|
# Prepare grammar data on CPU if needed
|
||||||
if batch.has_grammar:
|
if batch.has_grammar:
|
||||||
retrieve_next_token_cpu = verify_input.retrive_next_token.cpu()
|
retrieve_next_token_cpu = verify_input.retrieve_next_token.cpu()
|
||||||
retrieve_next_sibling_cpu = verify_input.retrive_next_sibling.cpu()
|
retrieve_next_sibling_cpu = verify_input.retrieve_next_sibling.cpu()
|
||||||
draft_tokens_cpu = verify_input.draft_token.view(
|
draft_tokens_cpu = verify_input.draft_token.view(
|
||||||
verify_input.retrive_next_token.shape
|
verify_input.retrieve_next_token.shape
|
||||||
).cpu()
|
).cpu()
|
||||||
|
|
||||||
# Run target verify batch in the main compute stream (GPU compute)
|
# Run target verify batch in the main compute stream (GPU compute)
|
||||||
@@ -816,7 +816,7 @@ class EAGLEWorkerV2(BaseSpecWorker):
|
|||||||
|
|
||||||
if vocab_mask is not None:
|
if vocab_mask is not None:
|
||||||
assert verify_input.grammar is not None
|
assert verify_input.grammar is not None
|
||||||
vocab_mask = vocab_mask.to(verify_input.retrive_next_token.device)
|
vocab_mask = vocab_mask.to(verify_input.retrieve_next_token.device)
|
||||||
# NOTE: otherwise, this vocab mask will be the one from the previous extend stage
|
# NOTE: otherwise, this vocab mask will be the one from the previous extend stage
|
||||||
# and will be applied to produce wrong results
|
# and will be applied to produce wrong results
|
||||||
batch.sampling_info.vocab_mask = None
|
batch.sampling_info.vocab_mask = None
|
||||||
|
|||||||
@@ -435,9 +435,9 @@ class MultiLayerEagleWorker(TpModelWorker):
|
|||||||
(
|
(
|
||||||
tree_mask,
|
tree_mask,
|
||||||
position,
|
position,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
draft_tokens,
|
draft_tokens,
|
||||||
) = build_tree_kernel_efficient(
|
) = build_tree_kernel_efficient(
|
||||||
spec_info.verified_id,
|
spec_info.verified_id,
|
||||||
@@ -455,10 +455,10 @@ class MultiLayerEagleWorker(TpModelWorker):
|
|||||||
draft_token=draft_tokens,
|
draft_token=draft_tokens,
|
||||||
custom_mask=tree_mask,
|
custom_mask=tree_mask,
|
||||||
positions=position,
|
positions=position,
|
||||||
retrive_index=retrive_index,
|
retrieve_index=retrieve_index,
|
||||||
retrive_next_token=retrive_next_token,
|
retrieve_next_token=retrieve_next_token,
|
||||||
retrive_next_sibling=retrive_next_sibling,
|
retrieve_next_sibling=retrieve_next_sibling,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.speculative_num_steps,
|
spec_steps=self.speculative_num_steps,
|
||||||
topk=self.topk,
|
topk=self.topk,
|
||||||
draft_token_num=self.server_args.speculative_num_draft_tokens,
|
draft_token_num=self.server_args.speculative_num_draft_tokens,
|
||||||
@@ -488,10 +488,10 @@ class MultiLayerEagleWorker(TpModelWorker):
|
|||||||
model_worker_batch.return_hidden_states_before_norm = True
|
model_worker_batch.return_hidden_states_before_norm = True
|
||||||
|
|
||||||
if batch.has_grammar:
|
if batch.has_grammar:
|
||||||
retrieve_next_token_cpu = spec_info.retrive_next_token.cpu()
|
retrieve_next_token_cpu = spec_info.retrieve_next_token.cpu()
|
||||||
retrieve_next_sibling_cpu = spec_info.retrive_next_sibling.cpu()
|
retrieve_next_sibling_cpu = spec_info.retrieve_next_sibling.cpu()
|
||||||
draft_tokens_cpu = spec_info.draft_token.view(
|
draft_tokens_cpu = spec_info.draft_token.view(
|
||||||
spec_info.retrive_next_token.shape
|
spec_info.retrieve_next_token.shape
|
||||||
).cpu()
|
).cpu()
|
||||||
|
|
||||||
# Forward
|
# Forward
|
||||||
@@ -518,7 +518,7 @@ class MultiLayerEagleWorker(TpModelWorker):
|
|||||||
|
|
||||||
if vocab_mask is not None:
|
if vocab_mask is not None:
|
||||||
assert spec_info.grammar is not None
|
assert spec_info.grammar is not None
|
||||||
vocab_mask = vocab_mask.to(spec_info.retrive_next_token.device)
|
vocab_mask = vocab_mask.to(spec_info.retrieve_next_token.device)
|
||||||
# NOTE (sk): otherwise, this vocab mask will be the one from the previous extend stage
|
# NOTE (sk): otherwise, this vocab mask will be the one from the previous extend stage
|
||||||
# and will be applied to produce wrong results
|
# and will be applied to produce wrong results
|
||||||
batch.sampling_info.vocab_mask = None
|
batch.sampling_info.vocab_mask = None
|
||||||
|
|||||||
@@ -248,9 +248,9 @@ class MultiLayerEagleDraftWorker(BaseDraftWorker):
|
|||||||
(
|
(
|
||||||
tree_mask,
|
tree_mask,
|
||||||
position,
|
position,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
draft_tokens,
|
draft_tokens,
|
||||||
) = build_tree_kernel_efficient(
|
) = build_tree_kernel_efficient(
|
||||||
draft_input.verified_id,
|
draft_input.verified_id,
|
||||||
@@ -271,10 +271,10 @@ class MultiLayerEagleDraftWorker(BaseDraftWorker):
|
|||||||
draft_token=draft_tokens,
|
draft_token=draft_tokens,
|
||||||
custom_mask=tree_mask,
|
custom_mask=tree_mask,
|
||||||
positions=position,
|
positions=position,
|
||||||
retrive_index=retrive_index,
|
retrieve_index=retrieve_index,
|
||||||
retrive_next_token=retrive_next_token,
|
retrieve_next_token=retrieve_next_token,
|
||||||
retrive_next_sibling=retrive_next_sibling,
|
retrieve_next_sibling=retrieve_next_sibling,
|
||||||
retrive_cum_len=None,
|
retrieve_cum_len=None,
|
||||||
spec_steps=self.speculative_num_steps,
|
spec_steps=self.speculative_num_steps,
|
||||||
topk=self.topk,
|
topk=self.topk,
|
||||||
draft_token_num=self.speculative_num_draft_tokens,
|
draft_token_num=self.speculative_num_draft_tokens,
|
||||||
|
|||||||
@@ -54,9 +54,9 @@ class NgramVerifyInput(SpecInput):
|
|||||||
draft_token: torch.Tensor,
|
draft_token: torch.Tensor,
|
||||||
tree_mask: torch.Tensor,
|
tree_mask: torch.Tensor,
|
||||||
positions: torch.Tensor,
|
positions: torch.Tensor,
|
||||||
retrive_index: torch.Tensor,
|
retrieve_index: torch.Tensor,
|
||||||
retrive_next_token: torch.Tensor,
|
retrieve_next_token: torch.Tensor,
|
||||||
retrive_next_sibling: torch.Tensor,
|
retrieve_next_sibling: torch.Tensor,
|
||||||
draft_token_num: int,
|
draft_token_num: int,
|
||||||
grammar: BaseGrammarObject = None,
|
grammar: BaseGrammarObject = None,
|
||||||
):
|
):
|
||||||
@@ -64,9 +64,9 @@ class NgramVerifyInput(SpecInput):
|
|||||||
self.draft_token = draft_token
|
self.draft_token = draft_token
|
||||||
self.custom_mask = tree_mask
|
self.custom_mask = tree_mask
|
||||||
self.positions = positions
|
self.positions = positions
|
||||||
self.retrive_index = retrive_index
|
self.retrieve_index = retrieve_index
|
||||||
self.retrive_next_token = retrive_next_token
|
self.retrieve_next_token = retrieve_next_token
|
||||||
self.retrive_next_sibling = retrive_next_sibling
|
self.retrieve_next_sibling = retrieve_next_sibling
|
||||||
self.draft_token_num = draft_token_num
|
self.draft_token_num = draft_token_num
|
||||||
self.device = self.custom_mask.device
|
self.device = self.custom_mask.device
|
||||||
self.grammar = grammar
|
self.grammar = grammar
|
||||||
@@ -303,9 +303,9 @@ class NgramVerifyInput(SpecInput):
|
|||||||
accept_index=self.accepted_indices, # mutable
|
accept_index=self.accepted_indices, # mutable
|
||||||
accept_token_num=self.accept_length, # mutable
|
accept_token_num=self.accept_length, # mutable
|
||||||
candidates=candidates,
|
candidates=candidates,
|
||||||
retrive_index=self.retrive_index,
|
retrieve_index=self.retrieve_index,
|
||||||
retrive_next_token=self.retrive_next_token,
|
retrieve_next_token=self.retrieve_next_token,
|
||||||
retrive_next_sibling=self.retrive_next_sibling,
|
retrieve_next_sibling=self.retrieve_next_sibling,
|
||||||
target_predict=target_predict,
|
target_predict=target_predict,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -365,9 +365,10 @@ class NgramVerifyInput(SpecInput):
|
|||||||
accept_index=self.accepted_indices, # mutable
|
accept_index=self.accepted_indices, # mutable
|
||||||
accept_token_num=self.accept_length, # mutable
|
accept_token_num=self.accept_length, # mutable
|
||||||
candidates=candidates.to(torch.int64),
|
candidates=candidates.to(torch.int64),
|
||||||
retrive_index=self.retrive_index.to(torch.int64),
|
# kwarg LHS retained as `retrive_*` to match sgl_kernel op schema.
|
||||||
retrive_next_token=self.retrive_next_token.to(torch.int64),
|
retrive_index=self.retrieve_index.to(torch.int64),
|
||||||
retrive_next_sibling=self.retrive_next_sibling.to(torch.int64),
|
retrive_next_token=self.retrieve_next_token.to(torch.int64),
|
||||||
|
retrive_next_sibling=self.retrieve_next_sibling.to(torch.int64),
|
||||||
uniform_samples=coins,
|
uniform_samples=coins,
|
||||||
uniform_samples_for_final_sampling=coins_for_final_sampling,
|
uniform_samples_for_final_sampling=coins_for_final_sampling,
|
||||||
target_probs=target_probs,
|
target_probs=target_probs,
|
||||||
@@ -384,13 +385,15 @@ class NgramVerifyInput(SpecInput):
|
|||||||
page_size: int,
|
page_size: int,
|
||||||
vocab_mask: Optional[torch.Tensor] = None, # For grammar
|
vocab_mask: Optional[torch.Tensor] = None, # For grammar
|
||||||
) -> torch.Tensor:
|
) -> torch.Tensor:
|
||||||
bs = self.retrive_index.shape[0]
|
bs = self.retrieve_index.shape[0]
|
||||||
sampling_info = batch.sampling_info
|
sampling_info = batch.sampling_info
|
||||||
|
|
||||||
if bs != len(sampling_info):
|
if bs != len(sampling_info):
|
||||||
sampling_info = copy.deepcopy(sampling_info)
|
sampling_info = copy.deepcopy(sampling_info)
|
||||||
# NOTE: retrive_index are the indices of the requests that are kept.
|
# NOTE: retrieve_index are the indices of the requests that are kept.
|
||||||
sampling_info.filter_batch(self.retrive_index.tolist(), self.retrive_index)
|
sampling_info.filter_batch(
|
||||||
|
self.retrieve_index.tolist(), self.retrieve_index
|
||||||
|
)
|
||||||
|
|
||||||
# Apply the custom logit processors if registered in the sampling info.
|
# Apply the custom logit processors if registered in the sampling info.
|
||||||
if sampling_info.has_custom_logit_processor:
|
if sampling_info.has_custom_logit_processor:
|
||||||
|
|||||||
@@ -117,12 +117,12 @@ class NGRAMWorker:
|
|||||||
dtype=torch.int64,
|
dtype=torch.int64,
|
||||||
device=self.device,
|
device=self.device,
|
||||||
)
|
)
|
||||||
self.retrive_next_token = torch.empty(
|
self.retrieve_next_token = torch.empty(
|
||||||
(self.max_batch_size, self.draft_token_num),
|
(self.max_batch_size, self.draft_token_num),
|
||||||
dtype=torch.int64,
|
dtype=torch.int64,
|
||||||
device=self.device,
|
device=self.device,
|
||||||
)
|
)
|
||||||
self.retrive_next_sibling = torch.empty(
|
self.retrieve_next_sibling = torch.empty(
|
||||||
(self.max_batch_size, self.draft_token_num),
|
(self.max_batch_size, self.draft_token_num),
|
||||||
dtype=torch.int64,
|
dtype=torch.int64,
|
||||||
device=self.device,
|
device=self.device,
|
||||||
@@ -137,14 +137,14 @@ class NGRAMWorker:
|
|||||||
self.draft_tokens_batch = []
|
self.draft_tokens_batch = []
|
||||||
self.tree_mask_batch = []
|
self.tree_mask_batch = []
|
||||||
self.retrieve_indexes_batch = []
|
self.retrieve_indexes_batch = []
|
||||||
self.retrive_next_token_batch = []
|
self.retrieve_next_token_batch = []
|
||||||
self.retrive_next_sibling_batch = []
|
self.retrieve_next_sibling_batch = []
|
||||||
self.positions_batch = []
|
self.positions_batch = []
|
||||||
|
|
||||||
for bs in range(0, self.max_batch_size + 1):
|
for bs in range(0, self.max_batch_size + 1):
|
||||||
self.retrieve_indexes_batch.append(self.retrieve_indexes[:bs, :])
|
self.retrieve_indexes_batch.append(self.retrieve_indexes[:bs, :])
|
||||||
self.retrive_next_token_batch.append(self.retrive_next_token[:bs, :])
|
self.retrieve_next_token_batch.append(self.retrieve_next_token[:bs, :])
|
||||||
self.retrive_next_sibling_batch.append(self.retrive_next_sibling[:bs, :])
|
self.retrieve_next_sibling_batch.append(self.retrieve_next_sibling[:bs, :])
|
||||||
self.positions_batch.append(self.positions[: bs * self.draft_token_num])
|
self.positions_batch.append(self.positions[: bs * self.draft_token_num])
|
||||||
self.draft_tokens_batch.append(
|
self.draft_tokens_batch.append(
|
||||||
self.draft_tokens[: bs * self.draft_token_num]
|
self.draft_tokens[: bs * self.draft_token_num]
|
||||||
@@ -186,9 +186,9 @@ class NGRAMWorker:
|
|||||||
|
|
||||||
bs = batch.batch_size()
|
bs = batch.batch_size()
|
||||||
|
|
||||||
retrive_index = self.retrieve_indexes_batch[bs]
|
retrieve_index = self.retrieve_indexes_batch[bs]
|
||||||
retrive_next_token = self.retrive_next_token_batch[bs]
|
retrieve_next_token = self.retrieve_next_token_batch[bs]
|
||||||
retrive_next_sibling = self.retrive_next_sibling_batch[bs]
|
retrieve_next_sibling = self.retrieve_next_sibling_batch[bs]
|
||||||
positions = self.positions_batch[bs]
|
positions = self.positions_batch[bs]
|
||||||
tree_mask = self.tree_mask_batch[bs]
|
tree_mask = self.tree_mask_batch[bs]
|
||||||
draft_tokens = self.draft_tokens_batch[bs]
|
draft_tokens = self.draft_tokens_batch[bs]
|
||||||
@@ -201,9 +201,9 @@ class NGRAMWorker:
|
|||||||
tree_mask,
|
tree_mask,
|
||||||
batch.seq_lens,
|
batch.seq_lens,
|
||||||
positions, # mutable
|
positions, # mutable
|
||||||
retrive_index, # mutable
|
retrieve_index, # mutable
|
||||||
retrive_next_token, # mutable
|
retrieve_next_token, # mutable
|
||||||
retrive_next_sibling, # mutable
|
retrieve_next_sibling, # mutable
|
||||||
bs,
|
bs,
|
||||||
self.draft_token_num,
|
self.draft_token_num,
|
||||||
)
|
)
|
||||||
@@ -230,9 +230,9 @@ class NGRAMWorker:
|
|||||||
draft_tokens,
|
draft_tokens,
|
||||||
tree_mask,
|
tree_mask,
|
||||||
positions,
|
positions,
|
||||||
retrive_index,
|
retrieve_index,
|
||||||
retrive_next_token,
|
retrieve_next_token,
|
||||||
retrive_next_sibling,
|
retrieve_next_sibling,
|
||||||
self.draft_token_num,
|
self.draft_token_num,
|
||||||
)
|
)
|
||||||
batch.spec_info.prepare_for_verify(batch, self.page_size)
|
batch.spec_info.prepare_for_verify(batch, self.page_size)
|
||||||
@@ -266,10 +266,10 @@ class NGRAMWorker:
|
|||||||
|
|
||||||
if model_worker_batch.forward_mode.is_target_verify():
|
if model_worker_batch.forward_mode.is_target_verify():
|
||||||
if batch.has_grammar:
|
if batch.has_grammar:
|
||||||
retrieve_next_token_cpu = spec_info.retrive_next_token.cpu()
|
retrieve_next_token_cpu = spec_info.retrieve_next_token.cpu()
|
||||||
retrieve_next_sibling_cpu = spec_info.retrive_next_sibling.cpu()
|
retrieve_next_sibling_cpu = spec_info.retrieve_next_sibling.cpu()
|
||||||
draft_tokens_cpu = spec_info.draft_token.view(
|
draft_tokens_cpu = spec_info.draft_token.view(
|
||||||
spec_info.retrive_next_token.shape
|
spec_info.retrieve_next_token.shape
|
||||||
).cpu()
|
).cpu()
|
||||||
|
|
||||||
set_time_batch(batch.reqs, "set_spec_verify_start_time", trace_only=True)
|
set_time_batch(batch.reqs, "set_spec_verify_start_time", trace_only=True)
|
||||||
@@ -298,7 +298,7 @@ class NGRAMWorker:
|
|||||||
|
|
||||||
if vocab_mask is not None:
|
if vocab_mask is not None:
|
||||||
assert verify_input.grammar is not None
|
assert verify_input.grammar is not None
|
||||||
vocab_mask = vocab_mask.to(verify_input.retrive_next_token.device)
|
vocab_mask = vocab_mask.to(verify_input.retrieve_next_token.device)
|
||||||
# NOTE (sk): otherwise, this vocab mask will be the one from the previous extend stage
|
# NOTE (sk): otherwise, this vocab mask will be the one from the previous extend stage
|
||||||
# and will be applied to produce wrong results
|
# and will be applied to produce wrong results
|
||||||
batch.sampling_info.vocab_mask = None
|
batch.sampling_info.vocab_mask = None
|
||||||
|
|||||||
Reference in New Issue
Block a user