Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions generation.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ def _apply_decay_mask(self, logits: torch.Tensor, decay_mask: torch.Tensor) -> t
probabilities = probabilities / probabilities.sum(dim=-1)
return probabilities

def _apply_decay_mask_logits(self, logits: torch.Tensor, decay_mask: torch.Tensor) -> torch.Tensor:
"""Applies decay to a tensor of logits in the log space"""
decay_mask = torch.exp(- decay_mask * self.decay_constant)
decay_mask = torch.max(decay_mask, torch.tensor([self.epsilon], device=decay_mask.device))
log_decay_mask = torch.log(decay_mask)
logits += log_decay_mask
return logits

def _generate_decay_mask(self, logits_regular: torch.FloatTensor, logits_biased_list: List[torch.FloatTensor]) -> torch.Tensor:
"""Computes the alpha values (see paper) for each token and stores them in a mask tensor"""
p_regular = logits_regular.softmax(dim=-1)
Expand Down