| 725 | |
| 726 | @dataclass |
| 727 | class Handle: |
| 728 | tokens: List[int] |
| 729 | score: float |
| 730 | |
| 731 | def __repr__(self): |
| 732 | return f"<Handle {repr(get_tokenizer().detokenize(self.tokens))}, score={self.score}>" |
| 733 | |
| 734 | def is_finished(self): |
| 735 | return len(self.tokens) and self.tokens[-1] == get_tokenizer().eod |
| 736 | |
| 737 | def derived(self, new_token: int, log_prob: float): |
| 738 | assert not self.is_finished(), "cannot derive from a finished handle" |
| 739 | return Handle(self.tokens + [new_token], self.score + log_prob) |
| 740 | |
| 741 | |
| 742 | def expand_handles(handles: List[Handle], temperature: float, top_p: float, top_k: int, model): |
no outgoing calls
no test coverage detected