Instructions to use i-Coder/iCoder-27B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use i-Coder/iCoder-27B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="i-Coder/iCoder-27B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("i-Coder/iCoder-27B") model = AutoModelForMultimodalLM.from_pretrained("i-Coder/iCoder-27B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use i-Coder/iCoder-27B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "i-Coder/iCoder-27B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "i-Coder/iCoder-27B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/i-Coder/iCoder-27B
- SGLang
How to use i-Coder/iCoder-27B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "i-Coder/iCoder-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "i-Coder/iCoder-27B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "i-Coder/iCoder-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "i-Coder/iCoder-27B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use i-Coder/iCoder-27B with Docker Model Runner:
docker model run hf.co/i-Coder/iCoder-27B
iCoder-27B is a 27B-parameter model for industrial coding, covering RTL design and GPU kernel optimization.
It is the product of an experiment in delegating model development itself. Human experts encoded their model-development experience once, as reusable Research Skills. From that point on an agent instantiated those Skills, allocated resources, ran and diagnosed experiments, and revised the training strategy. The agent coordinated a multi-stage pipeline spanning supervised fine-tuning, on-policy self-distillation, and reinforcement learning with verifiable rewards, in which every reward comes from compiling and running the model's own output rather than from comparison against a reference text.
Despite its compact scale, iCoder-27B surpasses models with up to 59x more total parameters, including DeepSeek-V4-Pro, GLM-5.2 and Kimi-K2.6. It leads on RTLLM (68.0), ties Claude Opus 4.8 for the best TritonBench-G pass@1 (20.1), and ranks second on KernelBench L2 Fast and on CVDP. Its 61% KernelBench L1 correctness is the highest of any model evaluated.
The full technical report describing the recipe is available here.
Results
Every model is evaluated through the same harness. RTL benchmarks run under the simulator each official suite specifies; kernel benchmarks compare candidate outputs against the reference implementation under matched inputs. Bold marks the best result in each row and italic the second best.
| Benchmark | Metric | iCoder-27B | Qwen3.6-27B | InCoder-32B | InCoder-32B-T | 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 |
| VerilogEval | 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 |
| RealBench | 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 |
| ArchXBench | Functional pass@1 (%) | 49.3 | 35.2 | 36.6 | 29.6 | 50.7 | 50.7 | 42.3 | 56.3 | 54.9 | 47.9 | 50.7 |
| KernelBench L1 | Compiled (%) | 95 | 87 | 88 | 85 | 93 | 96 | 93 | 98 | 95 | 94 | 94 |
| KernelBench L1 | Correct (%) | 61 | 32 | 51 | 47 | 32 | 50 | 32 | 43 | 55 | 42 | 45 |
| KernelBench L1 | Fast (%) | 25 | 12 | 18 | 18 | 13 | 26 | 5 | 22 | 30 | 21 | 23 |
| KernelBench L2 | Compiled (%) | 97 | 89 | 90 | 93 | 91 | 98 | 84 | 100 | 97 | 98 | 99 |
| KernelBench L2 | Correct (%) | 74 | 28 | 65 | 63 | 40 | 40 | 17 | 41 | 70 | 56 | 78 |
| KernelBench L2 | Fast (%) | 40 | 17 | 14 | 15 | 25 | 30 | 7 | 24 | 37 | 29 | 47 |
| KernelBench L3 | Compiled (%) | 90 | 86 | 60 | 60 | 86 | 90 | 82 | 100 | 84 | 98 | 100 |
| KernelBench L3 | Correct (%) | 34 | 12 | 30 | 20 | 4 | 30 | 18 | 38 | 40 | 18 | 58 |
| KernelBench L3 | Fast (%) | 10 | 4 | 14 | 12 | 2 | 0 | 0 | 6 | 8 | 2 | 14 |
| TritonBench-G | Correctness pass@1 (%) | 20.1 | 11.4 | 17.9 | 18.5 | 19.0 | 19.0 | 19.0 | 19.5 | 20.1 | 19.5 | 14.9 |
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "i-Coder/iCoder-27B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, dtype="auto", device_map="auto"
)
messages = [{"role": "user", "content": "Write a 4-bit synchronous up counter with active-low reset in Verilog."}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=2048)
print(tokenizer.decode(out[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True))
Citation
If you find iCoder useful in your work, please cite the technical report:
@techreport{yang2026icoder,
title = {iCoder-27B: Recursive AI-Led Development of Frontier Industrial Coding Model},
author = {Cheng Yang and Jiayang Lyu and Shangyuan Liu and Guibin Zhang and
Jiong Lin and Xinlei Yu and Junchi Yan and Shuicheng Yan and
Weinan E and Linfeng Zhang and Linfeng Zhang and Qibing Ren},
year = {2026},
month = aug,
type = {Technical Report},
url = {https://huggingface.co/i-Coder/iCoder-27B}
}
License
Apache-2.0, inherited from the base model, Qwen3.6-27B.
- Downloads last month
- 147

