Instructions to use Siddh07ETH/Atlas-Coder-2-0.5B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Siddh07ETH/Atlas-Coder-2-0.5B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Siddh07ETH/Atlas-Coder-2-0.5B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Siddh07ETH/Atlas-Coder-2-0.5B") model = AutoModelForCausalLM.from_pretrained("Siddh07ETH/Atlas-Coder-2-0.5B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Siddh07ETH/Atlas-Coder-2-0.5B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Siddh07ETH/Atlas-Coder-2-0.5B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Siddh07ETH/Atlas-Coder-2-0.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Siddh07ETH/Atlas-Coder-2-0.5B
- SGLang
How to use Siddh07ETH/Atlas-Coder-2-0.5B 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 "Siddh07ETH/Atlas-Coder-2-0.5B" \ --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": "Siddh07ETH/Atlas-Coder-2-0.5B", "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 "Siddh07ETH/Atlas-Coder-2-0.5B" \ --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": "Siddh07ETH/Atlas-Coder-2-0.5B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Siddh07ETH/Atlas-Coder-2-0.5B with Docker Model Runner:
docker model run hf.co/Siddh07ETH/Atlas-Coder-2-0.5B
⚡ Atlas-Coder-2-0.5B
The flagship Pluto AI coding model — refined, focused, and built for the top of the sub-1B tier
Model Description
Atlas-Coder-2-0.5B is the flagship model of the Pluto AI research project by Siddharth N.R. — the second generation of the Atlas-Coder series and the most focused coding model released under the Pluto AI brand to date.
Built on top of Qwen2.5-Coder-0.5B-Instruct, Atlas-Coder-2 is trained exclusively on 50K execution-verified OSS-Instruct samples — real open-source Python functions that have been independently verified to execute correctly. This single-source, high-purity data strategy maximizes alignment with HumanEval+ and MBPP+ benchmark formats while keeping the training signal clean and consistent.
Unlike V1 which trained from the base model and used a 4-source mixture, Atlas-Coder-2 starts from an instruction-tuned foundation and specializes it further on execution-verified code. The result is a sharper, more reliable code generator with a lower hallucination rate on self-contained Python tasks.
Research Goal: Demonstrate that a sub-500M parameter model, fine-tuned exclusively on execution-verified code in a single Kaggle session, can match or exceed the coding performance of officially released instruct variants and outperform models up to 3× its parameter count.
📊 Benchmarks
Competitor scores from official technical reports.
What Changed from V1
| Property | Atlas-Coder-0.5B (V1) | Atlas-Coder-2-0.5B (V2) |
|---|---|---|
| Base model | Qwen2.5-Coder-0.5B Base | Qwen2.5-Coder-0.5B Instruct |
| Data sources | 4 (Magicoder + OSS + CodeFeedback + TACO) | 1 (OSS-Instruct exec-verified only) |
| Training samples | ~80K (mixed quality) | 50K (100% exec-verified) |
| LoRA rank | r=64 | r=32 (faster, leaner) |
| Epochs | 3 | 1 (instruct base needs less) |
| Sequence length | 1024 | 1024 |
| Response masking | ✅ | Standard LM loss |
| Final loss | 0.0294 | 0.0596 (healthy — not overfit) |
| Training time | ~42h 44m | ~9.5h |
| Fits in 1 Kaggle session | ❌ (needed resume) | ✅ |
The key architectural insight of V2: starting from an instruct model means the model already knows how to follow instructions and stop generating. V2 doesn't need to re-learn conversation structure — it only needs to deepen its Python code generation capability. This allows a single clean epoch on a smaller, higher-quality dataset to outperform a longer multi-epoch run on a noisier mixture.
Training Details
| Property | Value |
|---|---|
| Base Model | Qwen/Qwen2.5-Coder-0.5B-Instruct |
| Parameters | ~494 Million |
| Method | QLoRA (4-bit NF4 + LoRA) |
| LoRA Rank | r=32, α=64 |
| LoRA Dropout | 0.05 |
| LoRA Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Trainable Parameters | 17,596,416 |
| Training Epochs | 1 |
| Training Steps | ~1,568 (resumed from checkpoint 250) |
| Final Training Loss | 0.0596 |
| Precision | FP16 (forced — T4 sm_75 does not support BF16) |
| Optimizer | AdamW 8-bit (Paged) |
| Learning Rate | 1e-4 (cosine schedule) |
| Warmup Steps | 100 |
| Effective Batch Size | 32 (2 × 16 grad accum) |
| Sequence Length | 1024 tokens |
| Hardware | Tesla T4 (16 GB VRAM) — Kaggle free tier |
| Training Time | ~9.5 hours (single session) |
| Framework | Transformers 4.52.4 + PEFT 0.17.0 + TRL 0.19.1 |
| Chat Template | ChatML (inherited from base instruct model) |
Training Data
| Dataset | Samples | Why This Dataset |
|---|---|---|
| bigcode/self-oss-instruct-sc2-exec-filter-50k | 50,154 (train) + 508 (eval) | 100% execution-verified. Generated from real open-source Python. Single-function format directly mirrors HumanEval+ problem structure. No hallucinated solutions — every completion has been independently run and confirmed correct. |
Why single-source? The V1 multi-dataset mixture introduced noise from TACO (competitive programming verbosity) and CodeFeedback (multi-turn debug style), both of which poorly align with HumanEval+ single-function completion format. V2 eliminates this noise entirely. The OSS-Instruct exec-filtered dataset is already the highest-ROI data source for HumanEval+ performance — using 50K samples of it exclusively produces a cleaner gradient signal than mixing 80K samples of heterogeneous quality.
Key Design Decisions
1. Instruct base = faster convergence
Starting from Qwen2.5-Coder-0.5B-Instruct means the ChatML format, stop-token behavior, and instruction-following discipline are already in place. The model only needs to deepen code generation quality — not learn conversation structure from scratch. This makes 1 epoch sufficient where V1 needed 3.
2. Execution-verified data only Every training sample in OSS-Instruct exec-filter-50k has been independently run and verified to produce correct output. This eliminates a significant noise source that affects most open-source fine-tuning datasets: plausible-looking but incorrect code completions that silently degrade model performance on pass@1 metrics.
3. r=32 LoRA for speed without sacrificing quality At the 0.5B parameter scale, r=64 provides diminishing returns over r=32 while doubling the LoRA parameter count and training time. The r=32 configuration trains ~40% faster on the T4, allowing full training within a single Kaggle 9-hour session without checkpoint recovery.
4. Single Kaggle session design The entire pipeline — install → load → data → train → merge → upload → GGUF — is designed to complete within a single 9-hour Kaggle session. The 3-layer checkpoint recovery system (local → HuggingFace Hub → fresh start) handles session interruptions automatically when they occur.
Usage
Basic Inference
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained(
"Siddh07ETH/Atlas-Coder-2-0.5B",
torch_dtype=torch.float16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("Siddh07ETH/Atlas-Coder-2-0.5B")
messages = [
{
"role": "system",
"content": "You are a helpful coding assistant."
},
{
"role": "user",
"content": "Write a Python function to find all prime numbers up to n using the Sieve of Eratosthenes."
}
]
text = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.2,
do_sample=True,
top_p=0.9,
repetition_penalty=1.1,
)
response = tokenizer.decode(
output[0][inputs.input_ids.shape[1]:],
skip_special_tokens=True
)
print(response)
Low Memory Inference (4-bit)
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch
quant_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
)
model = AutoModelForCausalLM.from_pretrained(
"Siddh07ETH/Atlas-Coder-2-0.5B",
quantization_config=quant_config,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("Siddh07ETH/Atlas-Coder-2-0.5B")
GGUF (Ollama / LM Studio / llama.cpp)
GGUF quantizations for CPU inference are available at:
Runs at 40+ tokens/second on a laptop CPU. No GPU required.
Recommended Generation Settings
| Setting | Value | Reason |
|---|---|---|
temperature |
0.1–0.3 | Low temperature for precise code generation |
top_p |
0.9 | Focused vocabulary sampling |
repetition_penalty |
1.1 | Prevents repeated patterns |
max_new_tokens |
256–512 | Sufficient for most single-function tasks |
do_sample |
True |
Required when temperature < 1.0 |
Important: Benchmark Evaluation Setup
If you are evaluating this model with EvalPlus, you must pass --model_type instruct:
python -m evalplus.evaluate --model Siddh07ETH/Atlas-Coder-2-0.5B --dataset humaneval --backend hf --model_type instruct --greedy
Without --model_type instruct, EvalPlus sends raw function signatures without the ChatML wrapper. This causes the model to score near 0% — which is an evaluation configuration error, not a reflection of model quality. The model was trained exclusively on ChatML-formatted prompts and will not respond meaningfully to bare code signatures.
Model Lineage
Atlas-Coder-2 is the second release in the Atlas-Coder series under Pluto AI. Each version refines the strategy based on lessons from the previous run.
| Version | Base | Strategy | Status |
|---|---|---|---|
| Atlas-Coder-0.5B (V1) | Qwen2.5-Coder-0.5B Base | 4-source 80K mixture, 3 epochs, r=64 | Published |
| Atlas-Coder-2-0.5B (V2) | Qwen2.5-Coder-0.5B-Instruct | 50K exec-verified, 1 epoch, r=32 | Flagship — this model |
Related Models
| Model | Parameters | Description |
|---|---|---|
| Atlas-Coder-2-0.5B (this) | 494M | Flagship — exec-verified, instruct base |
| Atlas-Coder-0.5B (V1) | 494M | First generation, base model fine-tune |
| Pluto-Genesis-0.6B | 596M | General reasoning, math, and code |
Limitations
- Size: At ~494M parameters this model will make mistakes on complex multi-file tasks and deeply nested logic. Always verify generated code before running it in production.
- Context length: Trained on sequences up to 1024 tokens. Performance may degrade on prompts or completions requiring longer context.
- Language bias: Optimized primarily for Python. Other languages will work but with lower reliability than a multilingual fine-tune.
- Single-domain training: Trained entirely on OSS-Instruct data. May underperform on highly domain-specific code (e.g., embedded systems, CUDA kernels) that differs from typical open-source Python patterns.
- Research only: Not intended for production deployment without further evaluation and safety testing.
Author
Siddharth N.R Graduated B.Tech — AI & Data Science Pluto AI Research
Citation
@misc{atlascoder2_2026,
author = {Siddharth N.R.},
title = {Atlas-Coder-2-0.5B: Execution-Verified QLoRA Fine-Tuning from an Instruct Base for Sub-1B Code Generation},
year = {2026},
publisher = {HuggingFace},
url = {https://huggingface.co/Siddh07ETH/Atlas-Coder-2-0.5B}
}
License
Apache 2.0 — see LICENSE. Base model Qwen2.5-Coder-0.5B-Instruct is also Apache 2.0.
- Downloads last month
- 33
Model tree for Siddh07ETH/Atlas-Coder-2-0.5B
Base model
Qwen/Qwen2.5-0.5B