INNER CODE UNIT · Python
probs
hyperonym/basaran · basaran/model.py:261
probs = torch.nn.functional.softmax(logits, dim=-1)
# Select deterministic or stochastic decoding strategy.
if (config.top_p is not None and config.top_p <= 0) or (
config.temperature is not None and config.temperature <= 0
):
tokens = torch.argmax(probs, dim=-1)[:, None]
else:
tokens = torch.multinomial(probs, num_samples=1)
# Collect log probabilities of the selected tokens.
token_logprobs = torch.gather(probs, 1, tokens)
token_logprobs = torch.log(token_logprobs + 1e-7).squeeze(1)
tokens = tokens.squeeze(1)
# Collect log probabilities of the most likely tokens.
top_logprobs, top_tokens = probs.topk(logprobs)
top_logprobs = torch.log(top_logprobs + 1e-7)