PythiloLesson 4 of 8 · progress kept in this browser

Nucleus Sampling Candidates

Sort by probability and retain the smallest prefix reaching top-p mass. Return renormalized candidates, with original index breaking ties. No random draw is hidden in this lab.

probabilities = [0.6, 0.3]
mass = sum(probabilities)
print([p/mass for p in probabilities])
Your task

nucleus(probabilities, p) returns (token_index, renormalized_probability) pairs. Nonnegative probabilities sum to one, 0 < p <= 1; sort descending, break ties by index, stop when cumulative mass reaches p (tolerance 1e-12).

Next: Beam Search