@Secondmindsys@fchollet Is it possible to build one type of agent focus on proposing the problems for model to practice? E.g. an automatic math conjecture proposer, so the LLM will have infinite good problems to work on and improve itself?
Loops vs. Graphs, clearly explained!
Loops are powerful, but they have a ceiling. A loop makes one unit of work better. It can produce an output, check it, correct it, and repeat until it passes. But the loop itself does not decide which units of work should exist, which can run in parallel, or which should be skipped entirely.
So you can end up with a very capable agent executing the wrong three steps, in the wrong order, one at a time.
Graph engineering moves that decision up a layer. The graph decides what runs, what can run at the same time, how results come back together, and what should never run at all.
You need both:
Inside a unit: the loop — produce, check, correct, repeat until the result passes.
Between units: the graph — split, fan out, merge, gate, and route work back when necessary.
Prompts → Context → Harness → Loops → Graphs
Once you move to graphs, you can introduce parallel execution, isolated contexts, conditional paths, and steps that simply do not run when they are unnecessary.
The important part is being selective about what becomes a node.
Use a model where judgment is required. Operations such as merging structured outputs, deduplication, schema validation, and deterministic checks often belong in code rather than another agent. They are cheaper, faster, predictable, and cannot be persuaded into changing a deterministic verdict.
A graph where every node and edge is another model call quickly starts paying rent on its own orchestration.
There is also one distinction that becomes important as the graph grows: graphs need two different return paths.
The correction path is short. A gate rejects one unit and sends it back to the step that produced it. This improves the current run.
The learning path is longer. An accepted result, failure pattern, or discovered constraint feeds back into the splitter or planner so future runs start with better assumptions. This improves the runs that come after.
Build only the first path, and you get a graph that can recover from mistakes but keeps rediscovering the same blind spots every time it starts.
And one rule matters a lot for convergence: when one unit fails, return that unit—not the entire batch.
If four branches run and only one fails, sending all four back means rewriting three outputs that were already correct. Repeat that a few times and the graph spends most of its time undoing its own progress.
@samzliu Like the self-driving car, we need a very efficient pipeline to filter the useful data to improve the LLM. It is quite like human, there are so much information everywhere, skip all noise and pick the real useful piece of information is critical for all intelligent systems.
This is one of the most insightful takes on RL I've read in a while from @BerenMillidge
I agree with the key insight but there are some areas where the framing causes confusion, particular in the double meaning of the word "bias".
The core argument is that RL works despite only giving one bit of feedback per rollout because every bit is directly related to the task we are trying to train as opposed to say SFT where only some bits of feedback matter. This means RL has near perfect SNR compared to SFT.
The mental model is that noise causes us to remain at low resolution on the jagged loss landscape, and the lower noise of RL enables us to descend further. (Note: noise in this sense is more about alignment of the gradient update to the task rather than policy variance)
This roughly matches the intuition that ICL is elicitation of existing behavior (i.e. moving with in the same resolution on the loss landscape) while RL enables us to become better at behaviors already in the support: i.e. we need a non-zero pass@K.
It also matches some empirical results that that post-training only moves the weights in a tiny tangent space around the pre-trained model, suggesting that we are merely descending down the nearby valley.
The implication is that RL over LLMs isn't really RL in the traditional sense: there's real no exploration going on, no learning new models of the world. It's more about refining and sharpening what the model already can kind of do.
However, where the post starts to waver is when it tries to extend this to a general unified framework for LLM-RL. In particular, there's a claim that LLMs cannot tolerate bias because they are precisely tuned, so the role of post-training techniques is merely to reduce the variance. There's a slight confounding of two different phrases of the word "bias" that causes a bit of confusion.
One definition of bias is the approximation error from the model class, which makes sense under the canonical explanation for double descent: in the over-parametrized regime large parameter model, the test loss is dominated by the variance term instead of the bias term and improvements come from reducing it. This matches the explanation for why smaller RL models are fine with more bias compared to RL over LLMs.
However, there's another definition of bias which gets mixed in. This bias is an estimator whose expectation isn't the true gradient toward the objective. This is confusing since GRPO and PPO use biased estimators, so RL over LLMs clearly work under bias. The further implication in the post that any large movement of the weights causes instability/collapse because of the pre-trained model sits in a finely-resolved sub-valley. However, this is confusing since when you RL, you are intentionally biasing the model toward a task that was not focused in its pre-training loss. So RL is by definition biased in two ways: in its estimator and in its objective.
Thus the bias-variance explanation doesn't explain why RL over LLMs are so sensitive to off-policy rollouts because RL is biased to begin with.
I suspect part of the answer is the usual mis-alignment concern. Off-policy rollouts don't work because of mis-alignment. However, the reward mis-alignment is implicit because the gradient update from the off-policy rollout causes the aligned reward to behave as if it was mis-aligned in catastrophic ways. In some sense, this is just the second type of bias from above, so we've merely pushed it onto the next turtle down.
(Side note: Humans also learn poorly from off-policy data. We learn less when we watch something than when we do it ourselves.)
The bias-variance point also doesn't explain why we don't have catastrophic forgetting. The magnitude of the weight shift is small, but we are yanking a lot of weights. If we were truly that sensitive, then this should destroy performance on other tasks which do not relate to the RL objective being trained on.
The real question to answer then is: why are some small weight changes good while others are bad? Are there specific directions which are preferred or not? Some of our preliminary experiments suggest that the updates which work are the ones which leave the model's NTK largely untouched, matching the intuition about "nearby valleys".
https://t.co/CFOdrR4bTR
@firstadopter Coding is easy to verified correct or not, other things are difficult to verify. Picking code first is very smart move. OpenAi adjusts its target quickly once Anthropic proved it.