ARC-AGI-3 Benchmark: How Two Settings Tripled Our Scores
Tuning the ARC-AGI-3 benchmark is notoriously frustrating because the model often fails to grasp the underlying logic of the grid puzzles regardless of how many prompts you throw at it. We managed to triple our performance scores not by changing the model or the prompt architecture, but by flipping two specific configuration settings that fundamentally altered how the LLM processed the spatial reasoning tasks.
The Configuration Shift
Most people treat LLM agents as black boxes where you just tweak the system prompt, but for reasoning-heavy benchmarks like ARC, the sampling parameters are where the real battle is won. We shifted from a standard greedy decoding approach to a high-temperature sampling strategy combined with a specific repetition penalty.
The first change was cranking the temperature. In most coding tasks, you want a low temperature for stability, but ARC requires a "leap" of intuition. By increasing the temperature, we allowed the model to explore multiple hypothetical rules for the grid transformation rather than getting stuck in a loop of incorrect logic.
The second change was the implementation of a dynamic presence penalty. This prevented the model from obsessing over a single incorrect pattern in the grid, forcing it to look at the rest of the available data points.
The Implementation Workflow
To replicate this in a real-world AI workflow, you need to move away from single-shot prompting and implement a "generate-and-verify" loop. Here is the basic logic we used for the deployment:
1. Candidate Generation: Generate 20-50 potential solutions for the ARC task using the high-temperature settings.
2. Internal Validation: Use a separate, low-temperature "verifier" prompt to check if the generated solution is consistent with the provided example pairs.
3. Selection: Select the solution that passes the verification phase.
If you are building a custom LLM agent for these types of tasks, your configuration block should look something like this:
{
"model_params": {
"temperature": 0.8,
"top_p": 0.95,
"presence_penalty": 0.6,
"frequency_penalty": 0.3,
"max_tokens": 2048
},
"sampling_strategy": "best_of_n",
"n_candidates": 32
}
Analysis of the Results
The jump in scores wasn't linear; it was a breakthrough. When we compared the "Standard" vs "Optimized" runs, the difference in reasoning quality was stark:
- Logic Consistency: The standard settings often produced "hallucinated" grid coordinates that didn't exist. The optimized settings maintained spatial coherence.
- Pattern Recognition: The model stopped repeating the same wrong guess and started iterating on the rule discovery process.
- Success Rate: We saw a 3x increase in the number of puzzles solved correctly per 100 attempts.
All Replies (4)
Relieved this works! Which sampling parameters are you using to fix the grid logic errors?
Stunned by those results. Did the temperature settings actually change the performance for those specific prompts?