deepinfer-confidence

deepinfer/deepinfer/model_executor/models/mtp/dflash.py · a679bb8 · L46–79 · 固定 commit 上游

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

46class ConfidenceHead(nn.Module):
47    """Predict the acceptance probability of each draft token."""
48
49    def __init__(
50        self,
51        n_embed: int,
52        markov_rank: int,
53        num_steps: int,
54        weight: torch.nn.Parameter,
55    ) -> None:
56        super().__init__()
57        self.proj = ReplicatedLinear(
58            input_size=n_embed + markov_rank,
59            output_size=1,
60            weight=weight,
61        )
62        temperature = envs.DEEPINFER_DFLASH_CONFIDENCE_HEAD_TEMPERATURE
63        temperatures = temperature if isinstance(temperature, tuple) else (temperature,) * num_steps
64        self.temperature = tuple(max(value, SAMPLING_EPS) for value in temperatures)
65
66    def forward(
67        self,
68        hidden: torch.Tensor,
69        markov_emb: torch.Tensor | None,
70        out: torch.Tensor | None = None,
71        step_i: int = 0,
72    ) -> torch.Tensor:
73        return confidence_head_fused(
74            hidden,
75            weight=self.proj.weight,
76            temperature=self.temperature[step_i],
77            markov_emb=markov_emb,
78            out=out,
79        )