Text Generation
Transformers
Safetensors
English
Italian
gpt2
1gpu-llm
single-gpu
gpt2preln
bilingual
english
italian
pretraining
continual-pretraining
decay-only
base-model
v2
causal-lm
llm-nanochat
preln
text-generation-inference
Instructions to use nazdef/1gpu-llm-small-en-it-base-v2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nazdef/1gpu-llm-small-en-it-base-v2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="nazdef/1gpu-llm-small-en-it-base-v2")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("nazdef/1gpu-llm-small-en-it-base-v2") model = AutoModelForCausalLM.from_pretrained("nazdef/1gpu-llm-small-en-it-base-v2") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use nazdef/1gpu-llm-small-en-it-base-v2 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nazdef/1gpu-llm-small-en-it-base-v2" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nazdef/1gpu-llm-small-en-it-base-v2", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/nazdef/1gpu-llm-small-en-it-base-v2
- SGLang
How to use nazdef/1gpu-llm-small-en-it-base-v2 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 "nazdef/1gpu-llm-small-en-it-base-v2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nazdef/1gpu-llm-small-en-it-base-v2", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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 "nazdef/1gpu-llm-small-en-it-base-v2" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nazdef/1gpu-llm-small-en-it-base-v2", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use nazdef/1gpu-llm-small-en-it-base-v2 with Docker Model Runner:
docker model run hf.co/nazdef/1gpu-llm-small-en-it-base-v2
GPT2-small decoding-grid comparison: step_8600 vs step_18000 vs step_18800
Date: 2026-07-03
Scope
This note compares the completed GPU decoding-grid artifacts for:
step_8600step_18000step_18800
The comparison focuses on:
- Italian behavior
- loop / repetition resistance
- cloze / factual prompts
- free EN / IT prompts
The tuning split is the main grid-selection signal. The holdout split is a confirmation check.
Executive reading
- Checkpoint-level verdict:
step_18800remains the benchmark / loss winner. - Preset-level verdict:
step_18000 + anti_loopis the strongest overall decoding-grid pairing once tuning and holdout are both considered. - Why that split matters: the raw tuning winner is
step_18800 + anti_loop, but the raw holdout winner isstep_18000 + anti_loop, and the average of the two split scores favorsstep_18000 + anti_loop.
Score table
| Checkpoint | Tuning winner | Tuning score | Holdout winner | Holdout score | Tuning+holdout avg | Read |
|---|---|---|---|---|---|---|
step_8600 |
balanced |
2.789 | balanced |
3.188 | 2.989 | stable, but weakest overall |
step_18000 |
creative |
3.370 | anti_loop |
3.927 | 3.496 | best combined grid result |
step_18800 |
anti_loop |
3.034 | anti_loop |
3.210 | 3.122 | consistent, but below step_18000 on the combined read |
Category notes
Italian behavior
step_8600is the weakest on Italian factual prompts, but it still occasionally lands the right answer underbalanced.step_18000improves English factual completion materially and keeps Italian free-form output coherent, but it still misses the Italian cloze answer in the best zero-loop setting.step_18800is the most visibly polished in style, but it regresses on the Italian cloze prompt: it keeps drifting into the wrong factual chain instead of producingRoma.
Loop / repetition
greedyis unusable on all three checkpoints.anti_loopis the only preset that is consistently safe on repetition across the sweep.step_18000 + anti_loopis the best compromise: no loops on either split and the strongest combined score.step_8600is the most repetition-sensitive checkpoint overall.
Cloze / factual prompts
- On the English cloze prompt,
step_18000is the strongest of the three checkpoints. - On the Italian cloze prompt, none of the checkpoints is fully reliable, but
step_18800is the most obviously wrong because it settles into the wrong entity chain rather than a near-miss. - The factual prompts are the clearest place where benchmark loss and decode quality diverge:
step_18800still wins on loss, but it does not produce the best factual decoding behavior.
Free EN / IT prompts
- All three checkpoints mostly preserve language identity on the free-form prompts.
- The main distinction is robustness:
step_8600is coherent but bland and more repetition-prone.step_18000 + anti_loopis the cleanest balanced setting for free EN / IT generation.step_18800reads smoother, but its factual slips keep it from being the best overall operational choice.
Tuning / holdout mismatch
step_8600is internally stable: tuning and holdout both preferbalanced.step_18000is the clearest mismatch: tuning preferscreative, holdout prefersanti_loop.step_18800is internally consistent on the best preset (anti_loop), but the checkpoint still underperformsstep_18000 + anti_loopon the combined read.
Bottom line
- Checkpoint winner:
step_18800 - Best decoding-grid pairing:
step_18000 + anti_loop - Main tradeoff:
step_18800is the best loss checkpoint, butstep_18000 + anti_loopis the safer decode choice for Italian + free-form usage in this sweep.