Model reference · open weights
tiny_starcoder_py is an open-weight language model from bigcode. tiny_starcoder_py (FP32) weighs 328 MB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the bigcode/tiny_starcoder_py model card, 2026-10-01
What it is
| Released by | bigcode |
|---|---|
| Released | 2023-05-15 |
| Parameters | 164M |
| VRAM | 328 MB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory |
|---|---|---|---|
| 8K each | |||
| RTX 3060 12 GB | 256 | all 8K | 11.6 GB |
| RTX 4060 Ti 16 GB | 347 | all 8K | 15.4 GB |
| RTX 3090 24 GB | 537 | all 8K | 23.4 GB |
| RTX 4090 24 GB | 536 | all 8K | 23.4 GB |
| RTX 5090 32 GB | 719 | all 8K | 31.0 GB |
| L40S 48 GB | 1000+ | all 8K | 44.0 GB |
| A100 80 GB | 1000+ | all 8K | 78.2 GB |
| H100 80 GB | 1000+ | all 8K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 1000+ | all 8K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 1000+ | all 8K | 107 GB |
| H200 141 GB | 1000+ | all 8K | 138 GB |
| B200 180 GB | 1000+ | all 8K | 176 GB |
| Requests at once | 8K tokens each |
|---|---|
| 1 | 888 MB |
| 5 | 1.1 GB |
| 8 | 1.2 GB |
| 16 | 1.5 GB |
| 32 | 2.2 GB |
| 64 | 3.5 GB |
One card, with vLLM's small-card settings.
From the model card
This is a 164M parameters model with the same architecture as StarCoder (8k context length, MQA & FIM). It was trained on the Python data from StarCoderData for ~6 epochs which amounts to 100B tokens.
The model was trained on GitHub code, to assist with some tasks like Assisted Generation. For pure code completion, we advise using our 15B models StarCoder or StarCoderBase.
# pip install -q transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "bigcode/tiny_starcoder_py"
device = "cuda" # for GPU usage or "cpu" for CPU usage
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
inputs = tokenizer.encode("def print_hello_world():", return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
Fill-in-the-middle uses special tokens to identify the prefix/middle/suffix part of the input and output:
input_text = "def print_one_two_three():\n print('one')\n \n print('three')"
inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
The model is licensed under the BigCode OpenRAIL-M v1 license agreement. You can find the full agreement here.
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
Benchmarks
As published on the model card: the maker's own numbers, not measured by AxForge.
| Task | Dataset | Metric | Score |
|---|---|---|---|
| text-generation | HumanEval | pass@1 |