MCPcopy Create free account
hub / github.com/abetlen/llama-cpp-python / from_logits

Method from_logits

examples/server/server.py:3750–3803  ·  view source on GitHub ↗
(
        cls,
        *,
        model: Model,
        formatter: OpenAIFormatter,
        prev_tokens: Sequence[int],
        prev_text_bytes: Optional[Union[bytes, bytearray]] = None,
        token: int,
        logits: np.ndarray,
        logprobs_count: Optional[int],
        need_token_logprob: bool = False,
    )

Source from the content-addressed store, hash-verified

3748
3749 @classmethod
3750 def from_logits(
3751 cls,
3752 *,
3753 model: Model,
3754 formatter: OpenAIFormatter,
3755 prev_tokens: Sequence[int],
3756 prev_text_bytes: Optional[Union[bytes, bytearray]] = None,
3757 token: int,
3758 logits: np.ndarray,
3759 logprobs_count: Optional[int],
3760 need_token_logprob: bool = False,
3761 ) -> "Token":
3762 text_bytes = (
3763 model.token_bytes_with_prev_bytes(prev_tokens, prev_text_bytes, token)
3764 if prev_text_bytes is not None
3765 else model.token_bytes_with_prev(prev_tokens, token)
3766 )
3767 if not model.store_logits:
3768 return cls(
3769 token=token,
3770 text_bytes=text_bytes,
3771 token_logprob=None,
3772 top_logprobs=None,
3773 )
3774 if logprobs_count is None and not need_token_logprob:
3775 return cls(
3776 token=token,
3777 text_bytes=text_bytes,
3778 token_logprob=None,
3779 top_logprobs=None,
3780 )
3781 logprobs = CompletionScheduler.logits_to_logprobs(logits)
3782 token_logprob = float(logprobs[token])
3783 top_logprobs: Optional[Dict[str, float]] = None
3784 if logprobs_count is not None:
3785 top_count = min(max(logprobs_count, 0), model.n_vocab)
3786 if top_count > 0:
3787 top_indices = np.argpartition(logprobs, -top_count)[-top_count:]
3788 top_indices = top_indices[np.argsort(logprobs[top_indices])[::-1]]
3789 top_logprobs = {
3790 formatter.decode_text(model.token_bytes(int(index))): float(
3791 logprobs[int(index)]
3792 )
3793 for index in top_indices
3794 }
3795 else:
3796 top_logprobs = {}
3797 top_logprobs[formatter.decode_text(text_bytes)] = token_logprob
3798 return cls(
3799 token=token,
3800 text_bytes=text_bytes,
3801 token_logprob=token_logprob,
3802 top_logprobs=top_logprobs,
3803 )
3804
3805
3806@dataclass

Callers 4

sample_completionMethod · 0.80

Calls 5

token_bytes_with_prevMethod · 0.80
decode_textMethod · 0.80
token_bytesMethod · 0.80
logits_to_logprobsMethod · 0.45

Tested by

no test coverage detected