โ๏ธ WinterโFrost
A small language model, built entirely from scratch โ tokenizer, pretraining, and instructionโtuning โ on a single free GPU.
WinterโFrost is not built to compete with production models. It's a fromโfirstโprinciples build: every stage of the pipeline โ tokenization, pretraining, instruction tuning, deployment โ was implemented and run from scratch on freeโtier hardware, as a handsโon way to actually understand how LLMs work under the hood.
๐ Model summary
| ๐ง Architecture | GPTโ2 (decoderโonly transformer) |
| ๐ข Parameters | ~111M |
| โ๏ธ Tokenizer | Custom ByteโLevel BPE, vocab size 32,000 |
| ๐ Context length | 1,024 tokens |
| ๐ Pretraining data | ~4GB custom text corpus |
| ๐ฏ Instruction tuning | One epoch over the Alpaca dataset (~51,760 examples) |
| โ๏ธ Training hardware | Single freeโtier NVIDIA T4 GPU (Google Colab) |
| ๐๏ธ Precision | fp16 mixed precision |
๐ ๏ธ How it was built
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ 1. Tokenizer โ โโโถ โ 2. Pretraining โ โโโถ โ 3. Instruction โ โโโถ โ 4. Deploy โ
โ ByteโLevel BPE โ โ Raw nextโtoken โ โ tuning โ โ Push to โ
โ trained from โ โ prediction on โ โ Alpaca dataset, โ โ Hugging โ
โ scratch, 32k โ โ ~4GB corpus โ โ teaches QโA โ โ Face Hub โ
โ vocab โ โ (GPTโ2, 111M) โ โ format โ โ โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
1. Tokenizer โ A ByteโLevel BPE tokenizer was trained from scratch on the target corpus, rather than reusing an existing model's vocabulary.
2. Pretraining (Phase 1) โ The tokenizer streamed-encoded the ~4GB corpus into binary token files, feeding a GPT2LMHeadModel (768 hidden size, 12 layers, 12 heads) trained on nextโtoken prediction. This teaches raw language patterns โ grammar, style, associations โ but not instructionโfollowing.
3. Instruction tuning (Phase 2) โ The pretrained checkpoint was fineโtuned on the Alpaca instruction dataset via trl's SFTTrainer, teaching the model to respond to a prompt instead of just continuing it.
4. Deployment โ Final weights and tokenizer were pushed straight to the Hugging Face Hub from the training environment.
๐ How to use it
Quick start
pip install torch transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_dir = "brucoder/winter-frost"
tokenizer = AutoTokenizer.from_pretrained(model_dir)
model = AutoModelForCausalLM.from_pretrained(model_dir)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
model.eval()
prompt = """Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
What is a computer?
### Response:
"""
inputs = tokenizer(prompt, return_tensors="pt").to(device)
output = model.generate(
**inputs,
max_new_tokens=200,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.15,
pad_token_id=tokenizer.pad_token_id,
)
response = tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(response.strip())
๐ Prompt format
The model expects the Alpacaโstyle instruction template it was fineโtuned on:
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
{your question or task here}
### Response:
Prompts that don't follow this format will still generate text, but responses tend to drift offโtask.
๐๏ธ Generation tips
| Setting | Effect |
|---|---|
repetition_penalty 1.2โ1.4 |
Reduces looping / repeated phrases |
temperature 0.5 (lower) |
More focused, less rambling output |
do_sample=False |
Deterministic, greedy (mostโlikelyโtoken) output |
โ ๏ธ Limitations โ please read before using
This model is small, and was trained on a small amount of data relative to production LLMs. Please calibrate expectations accordingly:
- ๐งฉ World knowledge is limited and unreliable โ it only knows what appeared in its ~4GB training corpus plus Alpaca's instruction patterns. It will confidently generate plausibleโsounding but incorrect information.
- โ Math and code are not reliable โ training data was not focused on arithmetic or programming.
- ๐ Topic drift โ on ambiguous or openโended prompts, the model may default to whatever topics were overโrepresented in training, rather than staying onโtopic.
- ๐ฏ Not instructionโperfect โ it recognizes the instruction โ response format but doesn't always answer the actual question asked.
- ๐ซ Do not use for factual, medical, legal, financial, or safetyโcritical purposes.
๐ Intended use
Educational and experimental use โ exploring fromโscratch LLM training, tokenizer behavior, smallโmodel generation quality, and the practical realities of training on constrained (freeโtier) hardware.
๐ Related
A larger followโup model, winter-frost-1-pro (~774M parameters, broader pretraining corpus via streaming), is trained under the same fromโscratch philosophy on the same freeโtier hardware. It's meaningfully bigger and broader, but shares the same category of limitations described above.
๐ Acknowledgements
Built as a solo learning project using Hugging Face transformers, datasets, trl, tokenizers, and Google Colab's free GPU tier.
Made with curiosity, patience, and a lot of Colab reconnects. โ๏ธ
- Downloads last month
- 248