[Feat]Add support for optional start len of logprobs (#1035)
Co-authored-by: Ying Sheng <sqy1415@gmail.com> Co-authored-by: Yineng Zhang <me@zhyncs.com> Co-authored-by: Lianmin Zheng <lianminzheng@gmail.com> Co-authored-by: Liangsheng Yin <hnyls2002@gmail.com>
This commit is contained in:
@@ -61,9 +61,11 @@ class InputMetadata:
|
||||
extend_start_loc: torch.Tensor = None
|
||||
extend_no_prefix: bool = None
|
||||
|
||||
# Output options
|
||||
# For logprob
|
||||
return_logprob: bool = False
|
||||
top_logprobs_nums: List[int] = None
|
||||
extend_seq_lens_cpu: List[int] = None
|
||||
logprob_start_lens_cpu: List[int] = None
|
||||
|
||||
# For multimodal
|
||||
pixel_values: List[torch.Tensor] = None
|
||||
@@ -139,6 +141,7 @@ class InputMetadata:
|
||||
def compute_extend_infos(self, batch: ScheduleBatch):
|
||||
if self.forward_mode == ForwardMode.DECODE:
|
||||
self.extend_seq_lens = self.extend_start_loc = self.extend_no_prefix = None
|
||||
self.extend_seq_lens_cpu = self.logprob_start_lens_cpu = None
|
||||
else:
|
||||
extend_lens_cpu = [
|
||||
len(r.fill_ids) - batch.prefix_lens_cpu[i]
|
||||
@@ -149,6 +152,19 @@ class InputMetadata:
|
||||
self.extend_start_loc[1:] = torch.cumsum(self.extend_seq_lens[:-1], dim=0)
|
||||
self.extend_no_prefix = all(l == 0 for l in batch.prefix_lens_cpu)
|
||||
|
||||
self.extend_seq_lens_cpu = extend_lens_cpu
|
||||
self.logprob_start_lens_cpu = [
|
||||
(
|
||||
min(
|
||||
req.logprob_start_len - batch.prefix_lens_cpu[i],
|
||||
extend_lens_cpu[i] - 1,
|
||||
)
|
||||
if req.logprob_start_len >= batch.prefix_lens_cpu[i]
|
||||
else extend_lens_cpu[i] - 1 # Fake extend, actually decode
|
||||
)
|
||||
for i, req in enumerate(batch.reqs)
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def from_schedule_batch(
|
||||
cls,
|
||||
|
||||
Reference in New Issue
Block a user