{
  "id": 656966,
  "title": "The ARChitects’ Solution",
  "content": "<p>Hey Kaggle &amp; ARC community!</p>\n<p>The competition has been an exciting ride, especially in the last few intense weeks.</p>\n<p>We’re excited to give you two compact “solution cards” below that summarize the core ideas of our submissions.<br>\n<strong>Or, check out our full technical report here:</strong> <a href=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/\" target=\"_blank\">lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects</a></p>\n<p>In the technical report we talk about the full story and entire journey: our approaches, our total compute budget, what else we’ve been working on, what surprised us by working really well, what didn’t quite work (yet!?) and what our next steps would have been if we had another week or two.</p>\n<p>ARC was the perfect project to pour a lot of energy and passion into, spending nearly every waking hour on the home stretch for fine-tuning and experimenting.<br>\nSo: we’re all looking forward to what comes next!!</p>\n<p>The ARChitects — <em>Daniel, Jan &amp; David</em> 👋</p>\n<div>\n  <img src=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/The%20ARChitects%20-%20Technical%20Report/image%2012.png\" alt=\"The ARChitects Logo\" style=\"flex: 0 1 auto; height: 20em\">\n  <img src=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/The%20ARChitects%20-%20Technical%20Report/arcfront.jpg\" alt=\"Photo of all of us @ ICML '25, Vancouver\" style=\"flex: 0 1 auto; height: 20em\">\n</div>\n<h1>Solution Cards</h1>\n<h2>Recursive Masked Diffusion Approach - “Final submission”</h2>\n<table>\n<thead>\n<tr>\n<th>Aspect</th>\n<th>Summary</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Base model</strong></td>\n<td>Used a masked-diffusion LLM: LLaDA-8B fine-tuned for ARC-style tasks.</td>\n</tr>\n<tr>\n<td><strong>Masking &amp; Loss Strategy</strong></td>\n<td>Standard cross-entropy loss to reconstruct masked positions.</td>\n</tr>\n<tr>\n<td><strong>Soft Masking + Recursive Latent Sampling</strong></td>\n<td>We found that adding the mask tokens to every token let’s the model refine it’s own pedictions.<br>After an initial guess, feed model output back in (with soft-masking), iteratively refine predictions in a loop until convergence or stability. This effectively turns the model into a continuous, recursive solver.</td>\n</tr>\n<tr>\n<td><strong>Why Recursion Helps</strong></td>\n<td>The models token embeddings are continuous. We found that you can blend tokens (token algebra) and feed back outputs. Soft-masking seems to tell the model “this position needs improvement.” This enables iterative self-improvement, rather than one-shot generation.</td>\n</tr>\n<tr>\n<td><strong>Adaptations for ARC</strong></td>\n<td>Replaced original 1D positional encoding with a 2D positional encoding (based on “Golden Gate RoPE”) to better match the 2D grid nature of ARC tasks.</td>\n</tr>\n<tr>\n<td><strong>Datasets &amp; Training</strong></td>\n<td>Same data pipeline as AR model from last year: used datasets like ReARC, ARC-GEN-100K, official ARC1 &amp; ARC2, ARC-Heavy, ConceptARC. Pretraining: ~175k steps (batch size 8) on 8×H100 GPUs. Test-time fine-tuning: for each task, 128 steps on L4 GPU (batch size 1).</td>\n</tr>\n<tr>\n<td><strong>Shape Prediction</strong></td>\n<td>Because output grids may vary in size, we trained a second LLaDA model (finetuned) to predict the correct output “shape” (grid size) given input examples, i.e. where delimiters go.</td>\n</tr>\n<tr>\n<td><strong>Final Submission Performance</strong></td>\n<td>With known shape: ~30.5% ±1% on held-out eval set (after 102 inference steps, that is two rounds of 51 with cold restart). Shape predictor ≈ 85% ±2% correct on eval set. <br> Combined we expected ~26%, but real public score was 21.67%, private score was 16.53%. <br><br><strong>Our best submission (using a different hyperparameter selection mechanism) achieved a public score of 19.17% and a private score of 19.17%.</strong> <br> We didn’t choose that submission due to the lower public leaderboard score. ;D</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>Autoregressive (AR) Approach - “First half of competition”</h2>\n<table>\n<thead>\n<tr>\n<th>Aspect</th>\n<th>Summary</th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Summary: Improvements vs prior year</strong></td>\n<td>Task-specific test-time fine-tuning rather than multi-task fine-tuning, speculative decoding + prefix caching,  lowering probability cutoff (from 17% → 7%) to explore more candidates, increased scoring augmentations (8 → 32).</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Base Model</strong></td>\n<td>Used an autoregressive model (from previous year) built on Mistral‑NeMo‑Minitron‑8B‑Base. <br> We had a better pre-trained model from a late submission last year that we didn’t publish, which included Arc-Heavy in its training data.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Sampling Method</strong></td>\n<td>Faster depth-first search (DFS) using speculative decoding (predicting 16 to 32 tokens ahead) to generate even more candidate solutions to select from.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Scoring / Selection</strong></td>\n<td>Still “Product-of-Experts” scoring: apply multiple augmentations and aggregate neg-log-likelihoods across them to choose the most probable candidate.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Performance / Result</strong></td>\n<td>Maxed-out performance at 16.94% on public ARC2 leaderboard (as of Aug 11). After that, we transitioned to the masked diffusion model.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Limitations Observed</strong></td>\n<td>AR model struggled with puzzle-type tasks or tasks requiring global restructuring (e.g., diagonal lines, simulation tasks, etc). Augmentations lacked expressiveness to fully capture global constraints.</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>Key Insights &amp; Tradeoffs</h2>\n<ul>\n<li>The <strong>AR approach</strong> that we used in last year’s ARC 2024 and for the first, larger part of the competition is fast, well-understood, and effective for many tasks, especially when coupled with aggressive sampling + scoring. But we found it struggles with tasks that require <strong>global reasoning</strong> or structural transformations, because it generates sequentially and cannot revisit prior decisions.</li>\n<li>The <strong>masked diffusion + recursion</strong> approach that we used for our final submission is more expressive and flexible: because the model can “rewrite” the entire output grid (via the novel soft-mask reconstruction and recursive refinement technique), it better handles puzzles requiring restructuring. However, it comes at increased computational cost (many inference steps due to refinement recursion), and the final score is sensitive to the shape predictor that we haven’t included into the main model due to time-reasons.</li>\n<li>We found the “token algebra &amp; soft-masking” trick is especially powerful to leverage the continuous embedding space of modern LLMs to enable iterative improvement.</li>\n</ul>\n<h2><strong>Read our full technical report here:</strong> <a href=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/\" target=\"_blank\">lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects</a></h2>",
  "comments": [
    {
      "id": 3371295,
      "author_name": "Richard Emslie",
      "author_url": "",
      "post_date": "2025-12-11T11:51:13.323000",
      "content": "<p>Congrats and good stuff!  1.  The current released notebook is private.  2. will you release anything from the “First half of competition” (ie nemo model, notebook, training code/dataset)?  </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 3370213,
      "author_name": "Mani Ratan",
      "author_url": "",
      "post_date": "2025-12-10T16:25:45.087000",
      "content": "<p>Congrats dude, it's great that you achieved 2nd place.It's Amazing, keep it up.👍</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 3369843,
      "author_name": "Yassine Alouini",
      "author_url": "",
      "post_date": "2025-12-10T11:46:22.487000",
      "content": "<p>Congrats on the second place.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 3378378,
      "author_name": "vialactea",
      "author_url": "",
      "post_date": "2025-12-18T01:35:02.333000",
      "content": "<p>Congratulations for the 2nd place and thanks for sharing. You came up with several very interesting ideas!</p>\n<p>I'd like to ask you a couple of questions:</p>\n<ol>\n<li><p>Your experiments suggest that your new approach is superior to last years'. That being the case, it seems to have the potential to do even better than the wining solution if your models were pretrained with a similar dataset (and number of steps). Do you have any thoughts on that? Would the best of both words be to use your approach with their synthetic data?</p></li>\n<li><p>When I look at your logits normalization I sense (perhaps incorrectly) several objectives: convert logits to the range 0..1, making them more of a probability to ensemble the corresponding embeddings; initially zero most of the logits and gradually become less restrictive, possibly encouraging more exploration; approximate the logits distribution for the various grid positions. Is my interpretation correct? Does the model get better overtime (as T_mask goes down) or it simply performs more exploration (or neither)? Did you experiment with other approaches to normalization and found this one to be superior or just tried it first and stuck to it because it worked?</p></li>\n</ol>",
      "votes": 0,
      "replies": [
        {
          "id": 3380207,
          "author_name": "Daniel Franzen",
          "author_url": "",
          "post_date": "2025-12-21T21:08:57.097000",
          "content": "<p>Thanks a lot for the congratulations, and for the thoughtful questions!</p>\n<ol>\n<li><p>In our experiments, we found that the diffusion-based approach works better on ARC-2. Interestingly, this was not the case for ARC-1, where diffusion performed roughly the same as our autoregressive method. We suspect this difference comes from a different selection of tasks in the ARC-2 dataset.</p>\n<p>In particular, ARC-2 seems to include more tasks that require multiple solving steps, where some pixels’ values depend on pixels that are effectively generated <em>earlier</em> in the solution. Diffusion models can handle such interdependencies better, as they refine the whole output jointly. Autoregressive models, on the other hand, can only capture these dependencies when the generation order aligns with the dependency structure. Data augmentation helps a bit, but it cannot fully resolve this limitation.</p>\n<p>As for pretraining, we agree that using more high-quality data would likely further improve performance. We also explored generating additional training data ourselves, but despite some promising ideas, we were not able to make this process efficient enough in practice.</p></li>\n<li><p>Yes, your interpretation is correct. First, normalizing the logits to the range 0..1 is necessary for the model to handle the inputs. Naturally, our initial approach was to just use the softmax probabilities. But we quickly noticed that this behaves almost like discretization, since the model is usually extremely confident (for most pixels, the softmax probabilities are well above 99%). So we searched for alternatives and found that a linear rescaling of the logits (followed by clipping to 0..1) works well in practice. That said, in some cases the model would still snap in to an incorrect solution very early and not be able to fix it later on.</p>\n<p>To address this, we tried to mimic the process that is generally used in discrete diffusion, where only the most confident tokens/pixels are fixed first, and the rest are filled in over multiple iterations. Our temperature schedule has a similar effect: Early on, when the temperature is close to 1, only the outputs for which the model is most confident are passed as input for the next iteration. This is then gradually relaxed as the temperature decreases. In practice, this means the model often needs more iterations to converge, but we found it encourages more exploration early on, allowing the model to hopefully \"snap\" in to the correct solution as the temperature decreases.</p>\n<p>Finally, note that we didn't have time to thoroughly study our recursive inference method, as we only came up with it in the very last days of the competition. So while it worked well for us, there's likely room for further improvement.</p></li>\n</ol>\n<p>We hope this answers your questions. Please feel free to follow up if anything is unclear or if you want to discuss additional ideas.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    }
  ],
  "comment_count": 5,
  "messages": [
    {
      "id": 3369299,
      "postDate": "2025-12-09T23:00:17.160Z",
      "content": "<p>Hey Kaggle &amp; ARC community!</p>\n<p>The competition has been an exciting ride, especially in the last few intense weeks.</p>\n<p>We’re excited to give you two compact “solution cards” below that summarize the core ideas of our submissions.<br>\n<strong>Or, check out our full technical report here:</strong> <a href=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/\" target=\"_blank\">lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects</a></p>\n<p>In the technical report we talk about the full story and entire journey: our approaches, our total compute budget, what else we’ve been working on, what surprised us by working really well, what didn’t quite work (yet!?) and what our next steps would have been if we had another week or two.</p>\n<p>ARC was the perfect project to pour a lot of energy and passion into, spending nearly every waking hour on the home stretch for fine-tuning and experimenting.<br>\nSo: we’re all looking forward to what comes next!!</p>\n<p>The ARChitects — <em>Daniel, Jan &amp; David</em> 👋</p>\n<div>\n  <img src=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/The%20ARChitects%20-%20Technical%20Report/image%2012.png\" alt=\"The ARChitects Logo\" style=\"flex: 0 1 auto; height: 20em\">\n  <img src=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/The%20ARChitects%20-%20Technical%20Report/arcfront.jpg\" alt=\"Photo of all of us @ ICML '25, Vancouver\" style=\"flex: 0 1 auto; height: 20em\">\n</div>\n<h1>Solution Cards</h1>\n<h2>Recursive Masked Diffusion Approach - “Final submission”</h2>\n<table>\n<thead>\n<tr>\n<th>Aspect</th>\n<th>Summary</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Base model</strong></td>\n<td>Used a masked-diffusion LLM: LLaDA-8B fine-tuned for ARC-style tasks.</td>\n</tr>\n<tr>\n<td><strong>Masking &amp; Loss Strategy</strong></td>\n<td>Standard cross-entropy loss to reconstruct masked positions.</td>\n</tr>\n<tr>\n<td><strong>Soft Masking + Recursive Latent Sampling</strong></td>\n<td>We found that adding the mask tokens to every token let’s the model refine it’s own pedictions.<br>After an initial guess, feed model output back in (with soft-masking), iteratively refine predictions in a loop until convergence or stability. This effectively turns the model into a continuous, recursive solver.</td>\n</tr>\n<tr>\n<td><strong>Why Recursion Helps</strong></td>\n<td>The models token embeddings are continuous. We found that you can blend tokens (token algebra) and feed back outputs. Soft-masking seems to tell the model “this position needs improvement.” This enables iterative self-improvement, rather than one-shot generation.</td>\n</tr>\n<tr>\n<td><strong>Adaptations for ARC</strong></td>\n<td>Replaced original 1D positional encoding with a 2D positional encoding (based on “Golden Gate RoPE”) to better match the 2D grid nature of ARC tasks.</td>\n</tr>\n<tr>\n<td><strong>Datasets &amp; Training</strong></td>\n<td>Same data pipeline as AR model from last year: used datasets like ReARC, ARC-GEN-100K, official ARC1 &amp; ARC2, ARC-Heavy, ConceptARC. Pretraining: ~175k steps (batch size 8) on 8×H100 GPUs. Test-time fine-tuning: for each task, 128 steps on L4 GPU (batch size 1).</td>\n</tr>\n<tr>\n<td><strong>Shape Prediction</strong></td>\n<td>Because output grids may vary in size, we trained a second LLaDA model (finetuned) to predict the correct output “shape” (grid size) given input examples, i.e. where delimiters go.</td>\n</tr>\n<tr>\n<td><strong>Final Submission Performance</strong></td>\n<td>With known shape: ~30.5% ±1% on held-out eval set (after 102 inference steps, that is two rounds of 51 with cold restart). Shape predictor ≈ 85% ±2% correct on eval set. <br> Combined we expected ~26%, but real public score was 21.67%, private score was 16.53%. <br><br><strong>Our best submission (using a different hyperparameter selection mechanism) achieved a public score of 19.17% and a private score of 19.17%.</strong> <br> We didn’t choose that submission due to the lower public leaderboard score. ;D</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>Autoregressive (AR) Approach - “First half of competition”</h2>\n<table>\n<thead>\n<tr>\n<th>Aspect</th>\n<th>Summary</th>\n<th></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Summary: Improvements vs prior year</strong></td>\n<td>Task-specific test-time fine-tuning rather than multi-task fine-tuning, speculative decoding + prefix caching,  lowering probability cutoff (from 17% → 7%) to explore more candidates, increased scoring augmentations (8 → 32).</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Base Model</strong></td>\n<td>Used an autoregressive model (from previous year) built on Mistral‑NeMo‑Minitron‑8B‑Base. <br> We had a better pre-trained model from a late submission last year that we didn’t publish, which included Arc-Heavy in its training data.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Sampling Method</strong></td>\n<td>Faster depth-first search (DFS) using speculative decoding (predicting 16 to 32 tokens ahead) to generate even more candidate solutions to select from.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Scoring / Selection</strong></td>\n<td>Still “Product-of-Experts” scoring: apply multiple augmentations and aggregate neg-log-likelihoods across them to choose the most probable candidate.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Performance / Result</strong></td>\n<td>Maxed-out performance at 16.94% on public ARC2 leaderboard (as of Aug 11). After that, we transitioned to the masked diffusion model.</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Limitations Observed</strong></td>\n<td>AR model struggled with puzzle-type tasks or tasks requiring global restructuring (e.g., diagonal lines, simulation tasks, etc). Augmentations lacked expressiveness to fully capture global constraints.</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<hr>\n<h2>Key Insights &amp; Tradeoffs</h2>\n<ul>\n<li>The <strong>AR approach</strong> that we used in last year’s ARC 2024 and for the first, larger part of the competition is fast, well-understood, and effective for many tasks, especially when coupled with aggressive sampling + scoring. But we found it struggles with tasks that require <strong>global reasoning</strong> or structural transformations, because it generates sequentially and cannot revisit prior decisions.</li>\n<li>The <strong>masked diffusion + recursion</strong> approach that we used for our final submission is more expressive and flexible: because the model can “rewrite” the entire output grid (via the novel soft-mask reconstruction and recursive refinement technique), it better handles puzzles requiring restructuring. However, it comes at increased computational cost (many inference steps due to refinement recursion), and the final score is sensitive to the shape predictor that we haven’t included into the main model due to time-reasons.</li>\n<li>We found the “token algebra &amp; soft-masking” trick is especially powerful to leverage the continuous embedding space of modern LLMs to enable iterative improvement.</li>\n</ul>\n<h2><strong>Read our full technical report here:</strong> <a href=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/\" target=\"_blank\">lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects</a></h2>",
      "rawMarkdown": "Hey Kaggle & ARC community!\n\nThe competition has been an exciting ride, especially in the last few intense weeks.\n\nWe’re excited to give you two compact “solution cards” below that summarize the core ideas of our submissions.  \n**Or, check out our full technical report here:** [lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects](https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/)\n\nIn the technical report we talk about the full story and entire journey: our approaches, our total compute budget, what else we’ve been working on, what surprised us by working really well, what didn’t quite work (yet!?) and what our next steps would have been if we had another week or two.\n\nARC was the perfect project to pour a lot of energy and passion into, spending nearly every waking hour on the home stretch for fine-tuning and experimenting.  \nSo: we’re all looking forward to what comes next!!\n\nThe ARChitects — *Daniel, Jan & David* 👋\n\n<div style=\"display: flex; flex-direction: row; gap: 8px;\">\n  <img\n    src=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/The%20ARChitects%20-%20Technical%20Report/image%2012.png\"\n    alt=\"The ARChitects Logo\"\n    style=\"flex: 0 1 auto; height:20em\"\n  />\n  <img\n    src=\"https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/The%20ARChitects%20-%20Technical%20Report/arcfront.jpg\"\n    alt=\"Photo of all of us @ ICML '25, Vancouver\"\n    style=\"flex: 0 1 auto; height: 20em;\"\n  />\n</div>\n\n# Solution Cards\n\n## Recursive Masked Diffusion Approach - “Final submission”\n\n| Aspect | Summary |\n| --- | --- |\n| **Base model** | Used a masked-diffusion LLM: LLaDA-8B fine-tuned for ARC-style tasks. |\n| **Masking & Loss Strategy** | Standard cross-entropy loss to reconstruct masked positions.  |\n| **Soft Masking + Recursive Latent Sampling** | We found that adding the mask tokens to every token let’s the model refine it’s own pedictions.</br>After an initial guess, feed model output back in (with soft-masking), iteratively refine predictions in a loop until convergence or stability. This effectively turns the model into a continuous, recursive solver. |\n| **Why Recursion Helps** | The models token embeddings are continuous. We found that you can blend tokens (token algebra) and feed back outputs. Soft-masking seems to tell the model “this position needs improvement.” This enables iterative self-improvement, rather than one-shot generation. |\n| **Adaptations for ARC** | Replaced original 1D positional encoding with a 2D positional encoding (based on “Golden Gate RoPE”) to better match the 2D grid nature of ARC tasks. |\n| **Datasets & Training** | Same data pipeline as AR model from last year: used datasets like ReARC, ARC-GEN-100K, official ARC1 & ARC2, ARC-Heavy, ConceptARC. Pretraining: ~175k steps (batch size 8) on 8×H100 GPUs. Test-time fine-tuning: for each task, 128 steps on L4 GPU (batch size 1). |\n| **Shape Prediction** | Because output grids may vary in size, we trained a second LLaDA model (finetuned) to predict the correct output “shape” (grid size) given input examples, i.e. where delimiters go. |\n| **Final Submission Performance** | With known shape: ~30.5% ±1% on held-out eval set (after 102 inference steps, that is two rounds of 51 with cold restart). Shape predictor ≈ 85% ±2% correct on eval set. </br> Combined we expected ~26%, but real public score was 21.67%, private score was 16.53%. </br></br>**Our best submission (using a different hyperparameter selection mechanism) achieved a public score of 19.17% and a private score of 19.17%.** </br> We didn’t choose that submission due to the lower public leaderboard score. ;D  |\n\n---\n\n## Autoregressive (AR) Approach - “First half of competition”\n\n| Aspect | Summary |  |\n| --- | --- | --- |\n| **Summary: Improvements vs prior year** | Task-specific test-time fine-tuning rather than multi-task fine-tuning, speculative decoding + prefix caching,  lowering probability cutoff (from 17% → 7%) to explore more candidates, increased scoring augmentations (8 → 32). |  |\n| **Base Model** | Used an autoregressive model (from previous year) built on Mistral‑NeMo‑Minitron‑8B‑Base. </br> We had a better pre-trained model from a late submission last year that we didn’t publish, which included Arc-Heavy in its training data. |  |\n| **Sampling Method** | Faster depth-first search (DFS) using speculative decoding (predicting 16 to 32 tokens ahead) to generate even more candidate solutions to select from. |  |\n| **Scoring / Selection** | Still “Product-of-Experts” scoring: apply multiple augmentations and aggregate neg-log-likelihoods across them to choose the most probable candidate. |  |\n| **Performance / Result** | Maxed-out performance at 16.94% on public ARC2 leaderboard (as of Aug 11). After that, we transitioned to the masked diffusion model. |  |\n| **Limitations Observed** | AR model struggled with puzzle-type tasks or tasks requiring global restructuring (e.g., diagonal lines, simulation tasks, etc). Augmentations lacked expressiveness to fully capture global constraints. |  |\n\n---\n\n## Key Insights & Tradeoffs\n\n- The **AR approach** that we used in last year’s ARC 2024 and for the first, larger part of the competition is fast, well-understood, and effective for many tasks, especially when coupled with aggressive sampling + scoring. But we found it struggles with tasks that require **global reasoning** or structural transformations, because it generates sequentially and cannot revisit prior decisions.\n- The **masked diffusion + recursion** approach that we used for our final submission is more expressive and flexible: because the model can “rewrite” the entire output grid (via the novel soft-mask reconstruction and recursive refinement technique), it better handles puzzles requiring restructuring. However, it comes at increased computational cost (many inference steps due to refinement recursion), and the final score is sensitive to the shape predictor that we haven’t included into the main model due to time-reasons.\n- We found the “token algebra & soft-masking” trick is especially powerful to leverage the continuous embedding space of modern LLMs to enable iterative improvement.\n\n## **Read our full technical report here:** [lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects](https://lambdalabsml.github.io/ARC2025_Solution_by_the_ARChitects/)",
      "votes": 15
    },
    {
      "id": 3371295,
      "postDate": "2025-12-11T11:51:13.323Z",
      "content": "<p>Congrats and good stuff!  1.  The current released notebook is private.  2. will you release anything from the “First half of competition” (ie nemo model, notebook, training code/dataset)?  </p>",
      "rawMarkdown": "Congrats and good stuff!  1.  The current released notebook is private.  2. will you release anything from the “First half of competition” (ie nemo model, notebook, training code/dataset)?  ",
      "votes": 1
    },
    {
      "id": 3370213,
      "postDate": "2025-12-10T16:25:45.087Z",
      "content": "<p>Congrats dude, it's great that you achieved 2nd place.It's Amazing, keep it up.👍</p>",
      "rawMarkdown": "Congrats dude, it's great that you achieved 2nd place.It's Amazing, keep it up.👍",
      "votes": 1
    },
    {
      "id": 3369843,
      "postDate": "2025-12-10T11:46:22.487Z",
      "content": "<p>Congrats on the second place.</p>",
      "rawMarkdown": "Congrats on the second place.",
      "votes": 1
    },
    {
      "id": 3378378,
      "postDate": "2025-12-18T01:35:02.333Z",
      "content": "<p>Congratulations for the 2nd place and thanks for sharing. You came up with several very interesting ideas!</p>\n<p>I'd like to ask you a couple of questions:</p>\n<ol>\n<li><p>Your experiments suggest that your new approach is superior to last years'. That being the case, it seems to have the potential to do even better than the wining solution if your models were pretrained with a similar dataset (and number of steps). Do you have any thoughts on that? Would the best of both words be to use your approach with their synthetic data?</p></li>\n<li><p>When I look at your logits normalization I sense (perhaps incorrectly) several objectives: convert logits to the range 0..1, making them more of a probability to ensemble the corresponding embeddings; initially zero most of the logits and gradually become less restrictive, possibly encouraging more exploration; approximate the logits distribution for the various grid positions. Is my interpretation correct? Does the model get better overtime (as T_mask goes down) or it simply performs more exploration (or neither)? Did you experiment with other approaches to normalization and found this one to be superior or just tried it first and stuck to it because it worked?</p></li>\n</ol>",
      "rawMarkdown": "Congratulations for the 2nd place and thanks for sharing. You came up with several very interesting ideas!\n\nI'd like to ask you a couple of questions:\n\n1. Your experiments suggest that your new approach is superior to last years'. That being the case, it seems to have the potential to do even better than the wining solution if your models were pretrained with a similar dataset (and number of steps). Do you have any thoughts on that? Would the best of both words be to use your approach with their synthetic data?\n\n2. When I look at your logits normalization I sense (perhaps incorrectly) several objectives: convert logits to the range 0..1, making them more of a probability to ensemble the corresponding embeddings; initially zero most of the logits and gradually become less restrictive, possibly encouraging more exploration; approximate the logits distribution for the various grid positions. Is my interpretation correct? Does the model get better overtime (as T_mask goes down) or it simply performs more exploration (or neither)? Did you experiment with other approaches to normalization and found this one to be superior or just tried it first and stuck to it because it worked?",
      "replies": [
        {
          "id": 3380207,
          "postDate": "2025-12-21T21:08:57.097Z",
          "content": "<p>Thanks a lot for the congratulations, and for the thoughtful questions!</p>\n<ol>\n<li><p>In our experiments, we found that the diffusion-based approach works better on ARC-2. Interestingly, this was not the case for ARC-1, where diffusion performed roughly the same as our autoregressive method. We suspect this difference comes from a different selection of tasks in the ARC-2 dataset.</p>\n<p>In particular, ARC-2 seems to include more tasks that require multiple solving steps, where some pixels’ values depend on pixels that are effectively generated <em>earlier</em> in the solution. Diffusion models can handle such interdependencies better, as they refine the whole output jointly. Autoregressive models, on the other hand, can only capture these dependencies when the generation order aligns with the dependency structure. Data augmentation helps a bit, but it cannot fully resolve this limitation.</p>\n<p>As for pretraining, we agree that using more high-quality data would likely further improve performance. We also explored generating additional training data ourselves, but despite some promising ideas, we were not able to make this process efficient enough in practice.</p></li>\n<li><p>Yes, your interpretation is correct. First, normalizing the logits to the range 0..1 is necessary for the model to handle the inputs. Naturally, our initial approach was to just use the softmax probabilities. But we quickly noticed that this behaves almost like discretization, since the model is usually extremely confident (for most pixels, the softmax probabilities are well above 99%). So we searched for alternatives and found that a linear rescaling of the logits (followed by clipping to 0..1) works well in practice. That said, in some cases the model would still snap in to an incorrect solution very early and not be able to fix it later on.</p>\n<p>To address this, we tried to mimic the process that is generally used in discrete diffusion, where only the most confident tokens/pixels are fixed first, and the rest are filled in over multiple iterations. Our temperature schedule has a similar effect: Early on, when the temperature is close to 1, only the outputs for which the model is most confident are passed as input for the next iteration. This is then gradually relaxed as the temperature decreases. In practice, this means the model often needs more iterations to converge, but we found it encourages more exploration early on, allowing the model to hopefully \"snap\" in to the correct solution as the temperature decreases.</p>\n<p>Finally, note that we didn't have time to thoroughly study our recursive inference method, as we only came up with it in the very last days of the competition. So while it worked well for us, there's likely room for further improvement.</p></li>\n</ol>\n<p>We hope this answers your questions. Please feel free to follow up if anything is unclear or if you want to discuss additional ideas.</p>",
          "rawMarkdown": "Thanks a lot for the congratulations, and for the thoughtful questions!\n\n1. In our experiments, we found that the diffusion-based approach works better on ARC-2. Interestingly, this was not the case for ARC-1, where diffusion performed roughly the same as our autoregressive method. We suspect this difference comes from a different selection of tasks in the ARC-2 dataset.\n\n    In particular, ARC-2 seems to include more tasks that require multiple solving steps, where some pixels’ values depend on pixels that are effectively generated *earlier* in the solution. Diffusion models can handle such interdependencies better, as they refine the whole output jointly. Autoregressive models, on the other hand, can only capture these dependencies when the generation order aligns with the dependency structure. Data augmentation helps a bit, but it cannot fully resolve this limitation.\n\n    As for pretraining, we agree that using more high-quality data would likely further improve performance. We also explored generating additional training data ourselves, but despite some promising ideas, we were not able to make this process efficient enough in practice.\n\n2. Yes, your interpretation is correct. First, normalizing the logits to the range 0..1 is necessary for the model to handle the inputs. Naturally, our initial approach was to just use the softmax probabilities. But we quickly noticed that this behaves almost like discretization, since the model is usually extremely confident (for most pixels, the softmax probabilities are well above 99%). So we searched for alternatives and found that a linear rescaling of the logits (followed by clipping to 0..1) works well in practice. That said, in some cases the model would still snap in to an incorrect solution very early and not be able to fix it later on.\n\n    To address this, we tried to mimic the process that is generally used in discrete diffusion, where only the most confident tokens/pixels are fixed first, and the rest are filled in over multiple iterations. Our temperature schedule has a similar effect: Early on, when the temperature is close to 1, only the outputs for which the model is most confident are passed as input for the next iteration. This is then gradually relaxed as the temperature decreases. In practice, this means the model often needs more iterations to converge, but we found it encourages more exploration early on, allowing the model to hopefully \"snap\" in to the correct solution as the temperature decreases.\n\n    Finally, note that we didn't have time to thoroughly study our recursive inference method, as we only came up with it in the very last days of the competition. So while it worked well for us, there's likely room for further improvement.\n\nWe hope this answers your questions. Please feel free to follow up if anything is unclear or if you want to discuss additional ideas.",
          "votes": 1
        }
      ]
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T21:00:35Z",
  "competition_id": 91496,
  "competition_slug": "arc-prize-2025",
  "team_id": 13563111,
  "solution_url": "/competitions/arc-prize-2025/writeups/the-architects-solution-2025"
}