Skip to main content
Version: Next

mellea.stdlib.sampling.budget_forcing

Sampling Strategies for budget forcing generation.

Classes​

CLASS BudgetForcingSamplingStrategy ​

Sampling strategy that enforces a token budget for chain-of-thought reasoning.

Extends RejectionSamplingStrategy with explicit control over the <think> block size and the answer block size. On each loop iteration, think_budget_forcing interleaves forced-thinking and final-answer generation, after which the standard rejection-sampling validation pass determines whether to accept or retry.

Currently only supports the OllamaModelBackend.

Args:

  • think_max_tokens: Tokens allocated for the thinking block. Defaults to 4096.
  • answer_max_tokens: Tokens allocated for the answer block. None means unbounded.
  • start_think_token: Token opening the thinking block. Defaults to "<think>".
  • end_think_token: Token closing the thinking block. Defaults to "</think>".
  • begin_response_token: Optional token opening the response block. Defaults to "".
  • end_response_token: Token closing the response block.
  • think_more_suffix: Suffix to force continued thinking. Empty string disables forcing.
  • answer_suffix: Suffix to elicit a final answer.
  • loop_budget: Rejection-sampling loop count. Must be > 0.
  • requirements: Requirements to validate against.