deepinfer-add

deepinfer/deepinfer/engine/llm_engine.py · a679bb8 · L591–631 · 固定 commit 上游

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

591        assert compressed_prompt_token_ids.shape[0] == prompt_token_ids.shape[0]
592
593        try:
594            seq = Sequence(
595                prompt_token_ids=prompt_token_ids,
596                compressed_prompt_token_ids=compressed_prompt_token_ids,
597                **sequence_args,
598            )
599        except Exception:
600            logger.error("Failed to create sequence for request %s", request_id, exc_info=True)
601            raise
602
603        if ve_failed:
604            seq.status = SequenceStatus.FINISHED_VE_FAILED
605
606        so_pending = False
607        if sampling_params.so_args is not None:
608            so_args = sampling_params.so_args
609            if not enqueue:
610                # 调用方自行管理调度,无法靠 pump 重入,保持同步构建
611                seq.so_matcher = self.so_matcher_builder.build(so_args).result()
612            else:
613                so_pending = True
614
615        if chunk_checkpoints is not None:
616            seq.chunk_checkpoints = chunk_checkpoints
617        # Add the sequence group to the scheduler.
618        if enqueue:
619
620            def _enqueue(s: Sequence) -> None:
621                if s.so_matcher is not None and s.so_matcher.is_aborted():
622                    s.status = SequenceStatus.FINISHED_SO_FAILED
623                self.scheduler.add_sequence(s)
624                if self.multi_modal_processor is not None:
625                    self.multi_modal_processor.add(request_id, multi_modal_data)
626
627            if so_pending:
628                self.so_matcher_builder.submit(seq, sampling_params.so_args, _enqueue)
629            else:
630                _enqueue(seq)
631        return seq