nano-decode-inputs

nano-vllm/nanovllm/engine/model_runner.py · bb823b3 · L172–188 · 固定 commit 上游

这是固定版本源码的只读摘录;可在线阅读,也可通过上游链接查看原文件。

172    def prepare_decode(self, seqs: list[Sequence]):
173        input_ids = []
174        positions = []
175        slot_mapping = []
176        context_lens = []
177        for seq in seqs:
178            input_ids.append(seq.last_token)
179            positions.append(len(seq) - 1)
180            context_lens.append(len(seq))
181            slot_mapping.append(seq.block_table[-1] * self.block_size + seq.last_block_num_tokens  - 1)
182        input_ids = torch.tensor(input_ids, dtype=torch.int64, pin_memory=True).cuda(non_blocking=True)
183        positions = torch.tensor(positions, dtype=torch.int64, pin_memory=True).cuda(non_blocking=True)
184        slot_mapping = torch.tensor(slot_mapping, dtype=torch.int32, pin_memory=True).cuda(non_blocking=True)
185        context_lens = torch.tensor(context_lens, dtype=torch.int32, pin_memory=True).cuda(non_blocking=True)
186        block_tables = self.prepare_block_tables(seqs)
187        set_context(False, slot_mapping=slot_mapping, context_lens=context_lens, block_tables=block_tables)
188        return input_ids, positions