--- license: apache-2.0 base_model: - i-Coder/iCoder-27B-SFT base_model_relation: finetune pipeline_tag: text-generation library_name: transformers tags: - code - rtl - verilog - gpu-kernel - triton --- # iCoder-27B-OPSD > **An intermediate checkpoint from the iCoder-27B training pipeline.** > The released model is [i-Coder/iCoder-27B](https://huggingface.co/i-Coder/iCoder-27B). ``` Qwen3.6-27B ──▶ SFT ──▶ [ OPSD ] ──▶ RLVR ──▶ iCoder-27B ▲ this checkpoint ``` ## Model description iCoder-27B is a 27B model for RTL design and GPU kernel optimization, developed by an agent that runs and revises each stage of its own training pipeline. This checkpoint is the output of the second stage, OPSD, or on-policy self-distillation. It starts from [iCoder-27B-SFT](https://huggingface.co/i-Coder/iCoder-27B-SFT). The third stage, RLVR, starts here and produces the released model. The method and the reported results are described in the technical report. ## Intended use Research on the training pipeline: reproducing this stage, ablating it, or measuring what RLVR adds on top of it. This is a mid-pipeline artifact and has had no deployment preparation. ## Usage ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "i-Coder/iCoder-27B-OPSD" 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)) ``` ## License Apache-2.0, inherited from Qwen3.6-27B, the base model of the pipeline.