INNER CODE UNIT · Python
tokens
hyperonym/basaran · basaran/model.py:267
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)
# Finished sequences should have their next token be a padding.
if pad_token_id is not None:
tokens = tokens * unfinished + pad_token_id * (1 - unfinished)
# Append selected tokens to the inputs.