aadityabuilds's picture
Update model card with KernelBook post-training description
8f19b4b verified
metadata
library_name: transformers
license: apache-2.0
base_model: Qwen/Qwen2.5-Coder-7B-Instruct
tags:
  - triton
  - kernelbook
  - code-generation
  - self-distillation
  - sdft
  - text-generation
datasets:
  - custom
language:
  - en
pipeline_tag: text-generation

Qwen2.5-Coder-7B KernelBook SDFT

Self-Distillation Fine-Tuning (SDFT) checkpoint of Qwen/Qwen2.5-Coder-7B-Instruct, post-trained on the KernelBook Triton kernel dataset.

Method

This model was trained with SDFT (self-distillation fine-tuning): the student sees the user prompt plus privileged reference context (the target Triton implementation) and learns to reproduce the reference completion via forced-completion distillation (cross-entropy + KL on completion tokens). Training used a custom KernelBookSDFTTrainer on top of transformers.Trainer with DeepSpeed ZeRO-3.

Dataset

  • KernelBook — PyTorch module prompts paired with reference Triton kernels
  • Deduplicated, filtered to completions ≤4096 tokens, repo-stratified 80/10/10 split
  • 1 training epoch on the KernelBook train split

Intended use

Generate Triton GPU kernels from PyTorch-style module descriptions. Best for KernelBook-style conversion prompts; not evaluated as a general-purpose chat or reasoning model.

Quick start

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "aadityabuilds/qwen2-5-coder-7b-kernelbook-sdft"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id, torch_dtype="auto", device_map="auto", trust_remote_code=True
)

messages = [
    {
        "role": "user",
        "content": "Convert the following PyTorch code to an equivalent Triton kernel...",
    }
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1200, do_sample=False)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1] :], skip_special_tokens=True))

Training summary

Setting Value
Base model Qwen2.5-Coder-7B-Instruct
Method SDFT (forced-completion distillation)
Epochs 1
Hardware 4× H100 (Modal)
Parallelism DeepSpeed ZeRO-3, bf16

Limitations

Specialized for KernelBook Triton codegen. May show reduced performance on general coding, math, and knowledge benchmarks compared to the base instruct model.