Potential quality issue: Stuck on Reasoning Loop on a hard task

#18
by DemetriusMichael - opened

Bonsai 2 27B PQ2_0: reasoning loop exhausts 32K output without answering

On the prompt below, the model generated 32,768 reasoning tokens and no final answer/code, stopping with finish_reason: "length".

The trace repeatedly revisited the same two-state Markov-chain example, confused matrix/vector conventions and covariance formulas, and reintroduced errors it had already corrected—including treating I-P as invertible after recognizing it was singular. It ended in another contradiction rather than converging.

Configuration

  • Bonsai 2 27B PQ2_0 GGUF, RTX 3090
  • Prism llama.cpp b10683-d8f26ee, OpenAI-compatible API via pi
  • Context 262,144; input 4,635 tokens including client context
  • Output cap 32,768 including thinking; no separate thinking cap
  • temperature=1.0, top_p=0.95, top_k=20, min_p=0.0
  • chat_template_kwargs={"enable_thinking":true,"reasoning_effort":"xhigh","preserve_thinking":true}
  • --jinja --reasoning-format deepseek --reasoning-preserve
  • Full GPU offload, flash attention, Q8_0 K/V cache, one slot

User prompt

Write one compact Julia function, using only LinearAlgebra if needed:

markov_moments(P::AbstractMatrix{<:Real}, R::AbstractMatrix{<:Real})

A stationary finite Markov chain X_t has row-stochastic transition P and earns log-return R[i,j] on transition i->j. For S_T=sum(R[X[t-1],X[t]],t=1:T), return (mean, variance, stationary), where mean=lim E[S_T]/T and variance=lim Var(S_T)/T, as Float64 scalars plus the stationary Vector{Float64}. This is the long-run variance including ALL serial dependence, not the variance of one return.

Inputs are GUARANTEED valid: matching n-by-n matrices, 1<=n<=32, finite Float64-representable entries, nonnegative row-stochastic P with irreducible support. P can be periodic and nonreversible; entries can be zero. Do not spend code or effort validating inputs. Rewards on impossible transitions have no effect. No Monte Carlo, truncated covariance sums, finite differences, AD, or packages other than standard libraries. O(n^3) time and O(n^2) storage are sufficient. Do not mutate inputs.

The key edge case is a reward of the form R[i,j]=c+u[i]-u[j] on supported edges: its long-run variance is zero even when individual returns vary. Constant offsets to supported rewards must leave variance unchanged. Tests include persistent regimes, deterministic cycles, asymmetric chains, and this zero-risk case. Ordinary Float64 accuracy is sufficient; matrices are well-conditioned. Do not overengineer exotic floating-point inputs.

Return ONLY one Julia code block with the function and any import. Aim for at most 50 lines. No derivation, examples, or tests. Your unedited code will be executed against independent checks.

Im getting similar broken behavior and its not even on hard prompts; its usually 3-4 follows up into the converation and it just loops.

Bonsai 2 27B PQ2_0: reasoning loop exhausts 32K output without answering

User prompt

Write one compact Julia function, using only LinearAlgebra if needed:

markov_moments(P::AbstractMatrix{<:Real}, R::AbstractMatrix{<:Real})

A stationary finite Markov chain X_t has row-stochastic transition P and earns log-return R[i,j] on transition i->j. For S_T=sum(R[X[t-1],X[t]],t=1:T), return (mean, variance, stationary), where mean=lim E[S_T]/T and variance=lim Var(S_T)/T, as Float64 scalars plus the stationary Vector{Float64}. This is the long-run variance including ALL serial dependence, not the variance of one return.

Inputs are GUARANTEED valid: matching n-by-n matrices, 1<=n<=32, finite Float64-representable entries, nonnegative row-stochastic P with irreducible support. P can be periodic and nonreversible; entries can be zero. Do not spend code or effort validating inputs. Rewards on impossible transitions have no effect. No Monte Carlo, truncated covariance sums, finite differences, AD, or packages other than standard libraries. O(n^3) time and O(n^2) storage are sufficient. Do not mutate inputs.

The key edge case is a reward of the form R[i,j]=c+u[i]-u[j] on supported edges: its long-run variance is zero even when individual returns vary. Constant offsets to supported rewards must leave variance unchanged. Tests include persistent regimes, deterministic cycles, asymmetric chains, and this zero-risk case. Ordinary Float64 accuracy is sufficient; matrices are well-conditioned. Do not overengineer exotic floating-point inputs.

Return ONLY one Julia code block with the function and any import. Aim for at most 50 lines. No derivation, examples, or tests. Your unedited code will be executed against independent checks.

Tested your prompt on Qwen3.8-27B-GSQ-RCO-IQ3_S-mtp with reasoning effort medium (which is the lowest) - got ALMOST working response in 19k tokens. 1 error: (r - mu) instead of (r .- mu)

@stonkersson - interesting.

Sign up or log in to comment