iCoder-27B: Recursive AI-Led Development of Frontier Industrial Coding Model
Organizations: School of Artificial Intelligence, Shanghai Jiao Tong University · National University of Singapore
Abstract
Recursive AI, the prospect of AI taking an increasingly complete role in building and improving AI, is a crown jewel of AI for AI. Although recursive self-development has become practical for small models, bounded tasks, and fixed time budgets, a more consequential realization of this ambition, i.e., developing a release-ready, frontier-competitive model, remains far more challenging. In this work, we ask how little human involvement is sufficient for an agent to develop a frontier model. We concentrate human input into a high-density, low-frequency interface: experts encode objectives, stage scaffolds, permission boundaries, and operating procedures as reusable research skills, while the agent instantiates these priors, selects experiments, diagnoses outcomes, and revises the training strategy. In the challenging domain of industrial coding, the agent evolves data and coordinates SFT, on-policy self-distillation, and reinforcement learning with verifiable rewards, ultimately producing iCoder, a 27B model for RTL design and GPU kernel optimization. Across seven benchmarks, iCoder leads RTLLM, outperforming GPT-5.5 and Claude-Opus-4.8; ranks second on CVDP and KernelBench L2, exceeding GPT-5.5 by 16 points; and ties Claude-Opus-4.8 for the best TritonBench result. Exploratory case studies further show iCoder's competitive iterative RTL and GPU-kernel optimization with substantially fewer tokens. These results chart an engineering path toward recursive self-improvement, in which humans distill the principles of model building, agents operationalize them through evidence-driven experimentation, and each generation of AI becomes a more capable architect of the next.
Figures & tables
| Prior layer | Human-specified content | Boundary on agent action |
| Objective and scaffold | Target capability, completion criteria, and the Data–SFT–OPSD–RLVR stage roles | May select experiments and transitions, but may not silently redefine the deliverable. |
| Skill excerpt — stage controller data SFT OPSD RLVR returning to data is normal | ||
| [1.2pt/1.5pt] Resource access | Approved repositories, models, data, launchers, compute, storage, and external-side-effect permissions | May use registered capabilities within budget; new identities or permissions require a human gate. |
| [1.2pt/1.5pt] Verification | Task-contract schema, official-harness requirement, integrity checks, and pass/fail/unjudged semantics | May integrate and audit a verifier profile; may not weaken or replace the approved correctness criterion. |
| [1.2pt/1.5pt] Research method | Controlled pilots, explicit baselines, artifact lineage, stop rules, and regression-aware checkpoint selection | May formulate hypotheses and choose the next discriminating test; conclusions must cite registered evidence. |
| [1.2pt/1.5pt] Governance and memory | Task Queue, experiment log, decision records, and approval boundaries | May write run-scoped findings and negative results; the released Human Prior remains immutable during the run. |
| Skill component | Exposed primitives and invariants | Agent decision space |
| Task contract | Specification, generated-artifact boundary, interface, reference status, and task-native harness | Normalize each seed and determine whether its current oracle is usable. |
| Condensed executable rule — item contract item instruction reference solution verifier require all three parts to agree | ||
| [1.2pt/1.5pt] Evolution operators | Behavior-preserving rewriting and reconstruction; contract-bound behavioral mutation | Select an operator per seed and revise the operator library from pilot failures. |
| Skill excerpt — solution-first evolution mutate reference solution derive instruction generate verifier from the same mutation | ||
| [1.2pt/1.5pt] Generation roles | Separate proposal, implementation, specification, and audit roles | Decide when a teacher-generated candidate can become a verified reference. |
| [1.2pt/1.5pt] Admission gates | Interface preservation, leakage checks, semantic-change tests, solvability, compilation, and execution | Order cheap and expensive gates, classify failures, and allocate retries. |
| Skill component | Exposed primitives and invariants | Agent decision space |
| Format contract | Prompt template, response boundary, extraction, tokenizer, and loss mask | Audit compatibility and reject format changes that invalidate comparison. |
| [1.2pt/1.5pt] Capability-gap filter | Repeated student and teacher sampling with task-native verification | Choose sampling budgets and the failure/success predicate defining the subset. |
| Condensed executable rule — model-relative filtering student trials sample(student, task) subset select(gap-predicate(student trials)) | ||
| [1.2pt/1.5pt] Verified target | Complete teacher trajectory retained only after an executable pass | Select among passing trajectories and record uncovered tasks. |
| Condensed executable rule — target admission candidates sample(teacher, task) retain only if verifier pass; log uncovered tasks | ||
| [1.2pt/1.5pt] Training integrity | Length audit, no-truncation rule, production-path smoke test, checkpoint and telemetry requirements | Choose sequence budget, parallel layout, batch configuration, and save cadence. |
| Skill component | Exposed primitives and invariants | Agent decision space |
| Target and data | Named measured weakness, repeated sampling, execution-feedback loop, and recoverability evidence | Define the eligibility predicate and rescreen it under the current checkpoint. |
| Condensed executable rule — entry contract require named weakness baseline measurement require teacher advantage relevant to that weakness | ||
| [1.2pt/1.5pt] Privileged view | Plan, failed responses, verifier diagnostics, and matched control contexts | Select components, ordering, granularity, and stopping point for . |
| [1.2pt/1.5pt] Information boundary | No reference answer, code-overlap scan, independent audit, and context integrity | Reject leaking plans and decide whether a component remains admissible. |
| [1.2pt/1.5pt] Learning signal | Frozen privileged scoring, executable outcome, group baseline, and clipped update family | Decide what determines update direction and how teacher evidence assigns token credit. |
| Skill excerpt — offline OPSD phases roll out score weight train generation and teacher scoring remain outside the update phase | ||
| (a) Candidate contexts and final composition | ||
| Context view | Information beyond the task prompt | Disposition |
| Bare context | None; the model receives only the task prompt. | Reference |
| [1.2pt/1.5pt] Direction-only plan | A task-specific repair direction; code, assignments, constants, and answer-specific mappings are prohibited. | Include plan |
| [1.2pt/1.5pt] Generic domain hint | Task-independent domain advice without evidence from the current attempt. | Exclude |
| [1.2pt/1.5pt] Error-conditioned experience | A failed response paired with its diagnostic verifier output. | Include signal |
| [1.2pt/1.5pt] Coarse experience | Failed responses plus verifier stage or mismatch rate and a general repair checklist. | Include |
| Benchmark | Metric | SFT | B0 | B1 | B2 |
| VerilogEval | Spec-to-RTL avg@4 | 73.88 | 57.37 | 79.33 | 84.70 |
| Code-complete avg@4 | 81.73 | 56.09 | 79.97 | 81.90 | |
| RTLLM | Functional avg@4 | 60.50 | 40.50 | 59.00 | 61.20 |
| Syntax avg@4 | 83.50 | 61.50 | 79.50 | 92.50 | |
| ArchXBench | Functional pass@1 | 22.54 | 11.27 | 23.94 | 36.60 |
| Syntax pass@1 | 59.15 | 29.58 | 60.56 | 67.61 |
| Skill component | Exposed primitives and invariants | Agent decision space |
| Executable verdict | Task-property contract, official harness profile, positive-pass evidence, and pass/fail/unjudged record | Integrate profiles and decide when integrity is sufficient for online use. |
| [1.2pt/1.5pt] Reward eligibility | Candidate-independent failure attribution and task-scoped exploit detectors | Identify reward exploits and determine where each hard gate applies. |
| Condensed executable rule — exploit gate if exploit detected: reward else: reward task adapter(raw verdict) | ||
| [1.2pt/1.5pt] Reward adapter | Versioned mapping from judged evidence to binary or graded scalar rewards | Decide whether meaningful partial or performance ordering exists for a task family. |
| [1.2pt/1.5pt] Missing supervision | Closed infrastructure taxonomy, bounded retry, sentinel, and masking contract | Classify failures, set stop thresholds, and prevent system faults from becoming gradients. |
| Condensed executable rule — unjudged contract unjudged sentinel outside the legitimate reward range exclude from group statistics; set ; normalize by valid count | ||
| Observed signal | Diagnosis | Retained intervention | Role in RLVR |
| Kernel-specific reward validity | |||
| Correct output without genuine kernel computation | Surface correctness could be achieved without performing the specified task. | Converted launch, identity, and scoped delegation checks into hard eligibility gates. | Prevent reward exploitation. |
| [1.2pt/1.5pt] Genuine KernelBench speedups rejected | A uniform delegation rule contradicted the benchmark’s task definition. | Restricted delegation gating to backends that prohibit framework computation. | Preserve valid partial replacements. |
| RTL-specific behavioral validity | |||
| Testbench exited without an explicit positive verdict | Absence of a failure message was being interpreted as functional correctness. | Required an explicit pass signal and otherwise failed closed. | Prevent false-positive RTL rewards. |
| [1.2pt/1.5pt] Harness failed before evaluating the candidate | Missing payloads or mismatched toolchains contained no evidence about policy quality. | Routed enumerated pre-candidate failures to retry and the unjudgeable sentinel. | Prevent verifier faults from becoming RTL supervision. |
| Stage | Training unit | Total | RTL | Kernel |
| SFT | Verified teacher trajectory | 28,952 | 18,256 (63.0%) | 10,696 (37.0%) |
| OPSD | Recoverable executable task | 1,874 | 1,349 (72.0%) | 525 (28.0%) |
| RLVR | Stratified verified task | 13,212 | 6,058 (45.8%) | 7,154 (54.2%) |
| Benchmark | Metric | iCoder 27B | Qwen3.6 27B | InCoder 32B | InCoder-32B Thinking | DeepSeek V4-Pro | GLM 5.2 | Kimi K2.6 | GPT 5.5 | Claude Opus-4.8 | Hy3 | Gemini 3.5-Flash | |
| VerilogEval | Spec-to-RTL avg@4 | 86.3 | 70.1 | 62.5 | 65.9 | 69.9 | 66.0 | 72.4 | 90.1 | 82.7 | 83.8 | 89.1 | |
| Code-complete avg@4 | 86.0 | 70.8 | 58.2 | 54.2 | 79.8 | 74.8 | 78.5 | 91.4 | 81.9 | 81.6 | 83.8 | ||
| RTLLM | Functional avg@4 | 68.0 | 49.6 | 48.0 | 44.2 | 67.5 | 64.0 | 59.0 | 66.0 | 64.7 | 53.5 | 63.5 | |
| CVDP | Functional avg@5 (%) | 44.1 | 33.9 | 36.9 | 30.3 | 38.5 | 39.5 | 42.1 | 39.5 | 47.7 | 39.7 | 29.7 | |
| RealBench | Syntax pass@5 (%) | 61.7 | 38.3 | 60.0 | 55.0 | 36.7 | 43.3 | 58.3 | 80.0 | 83.3 | 41.7 | 68.3 | |
| Functional pass@5 (%) | 26.7 | 16.7 | 46.7 | 36.7 | 16.7 | 25.0 | 25.0 | 28.3 | 36.7 | 16.7 | 26.7 | ||
Appendix figures & tables5 assets
Supplementary material from the paper’s appendix.
Appendix
| Benchmark | Tasks | Max tokens | Sampling ( ) | Reported metrics | Verification |
| VerilogEval Spec-to-RTL | 156 | 49,152 | , temp. 0.8 | Spec-to-RTL avg@4 | Icarus Verilog simulation |
| VerilogEval Code-complete | 156 | 49,152 | , temp. 0.8 | Code-complete avg@4 | Icarus Verilog simulation |
| RTLLM | 50 | 49,152 | , temp. 0.8 | Functional avg@4 | Icarus Verilog simulation |
| CVDP (cid003) | 78 | 49,152 | , temp. 0.8 | Functional avg@5 | Icarus Verilog + cocotb |
| ArchXBench v1.5 | 71 | 49,152 | , temp. 0 | Functional pass@1 | Self-checking testbenches |
| RealBench-Module | 60 | 49,152 | , temp. 0.8 | Syntax/functional pass@5 | Verilator build and simulation |
| Operator | Computation | Task origin | Reference implementation (archived latency) | Main display |
| Vector Sum | Full reduction over all vector elements | In-house | torch.sum ( s) | Yes |
| Cumulative Sum | Row-wise prefix sum along dimension 1 | In-house | torch.cumsum ( s) | Yes |
| Causal Conv1D | Left-padded convolution for sequence modeling | In-house | PyTorch conv1d with left padding ( s) | Yes |
| Asymmetric MatMul | Irregular-shape matrix multiplication | In-house | PyTorch matmul / cuBLAS ( s) | Yes |
| Grayscale Conversion | Weighted RGB-to-luminance transform | In-house | PyTorch weighted tensor sum ( s) | Yes |
| GDNO | Gated Delta-Net block recurrence for linear attention | In-house | PyTorch chunked recurrence ( s) | No: HY3 missing |
| Verification scope | Candidate and trusted context | Native oracle | Required execution evidence |
| Module-local completion | Candidate completion joined to a trusted module prefix and executed by a fixed harness | Pinned Icarus transcript | Exactly one target module compiles and executes; the transcript matches its trusted profile. Mismatch-reporting tasks additionally require zero mismatches, a positive sample count, and no timeout. |
| Standalone module | Complete candidate module evaluated beside trusted reference RTL | Reference–candidate trace comparison | Both designs compile under the same generated stimulus, and their output traces agree exactly. |
| Complete candidate module with a trusted self-checking harness | Explicit testbench verdict | Simulation reaches a positive verdict and reports no failure; missing positive evidence fails closed. | |
| Complete candidate module embedded in an allowlisted Icarus/cocotb/pytest harness | Programmatic assertions | Every task-defined assertion completes and the test process exits successfully. | |
| Complete candidate module with task stimuli, reference-generation scripts, and an output comparator | Task-native golden pipeline | The Makefile-driven generation, compilation, execution, and comparison pipeline completes successfully. | |
| Project-integrated module | Complete candidate module inserted into a protected dependency hierarchy with a trusted reference instance and stimulus generator | Differential project simulation | The Verilator project builds and runs; its normalized transcript matches the pinned trusted profile. |
| Artifact boundary | Candidate and trusted context | Native oracle | Accepted evidence and measurement |
| Operator implementation | Candidate device-level operator and a trusted executable reference, run with matched deterministic seeds | Structured numerical equivalence | Output structures and shapes agree and tensor values satisfy the task tolerance. A completed device launch is required; prohibited framework delegation and identity stores invalidate the result. |
| Reference-model replacement | Candidate replacement module, trusted reference model, and task-defined initialization and input generators | Repeated output equivalence under matched inputs | Correctness is checked across repeated trials. Matched timing against the reference supplies a separate speedup measurement; unchanged framework operators outside the replacement remain admissible. |
Language Model Self-Improvement
Language model self-improvement studies how models use their own outputs, feedback, and experience to improve with less external supervision.
See all 174 papers