G1-nano-base

A 60M-parameter GPT trained completely from scratch on a single 8GB-RAM NVIDIA Jetson device, without cloud infrastructure or multi-GPU setups. Base pretrained checkpoint with a native 2048-token context for raw text completion.

Overview

G1-nano-base is a small decoder-only causal language model trained end-to-end under an 8GB unified-memory constraint.

It is not a larger version of G0 Nano. The model keeps roughly the same parameter count and compute budget while reallocating capacity toward depth and a more compact attention state, enabling a native 2048-token context instead of 1024 tokens.

This is the base checkpoint. It predicts the next token and completes text; it is not a chat model and should not be expected to follow instructions.

Model variants

The instruction-tuned version of the same model is available as G1-nano-instruct.

What this version adds

Compared with the previous G0 Nano design, G1 Nano prioritizes a 2x native context length at approximately the same model size and training constraint. This base checkpoint does not include supervised instruction fine-tuning or a chat format.

Architecture

Llama-style decoder-only Transformer:

Property Value
Parameters 60.0M, with embeddings shared with the language-model head
Layers 14
Hidden size 576
Attention Grouped-Query Attention, 9 query heads / 1 key-value head, head dimension 64
Position encoding RoPE, θ=10000
Feed-forward network SwiGLU, hidden dimension 1664
Normalization RMSNorm
Context length 2048 tokens, trained natively at this length
Vocabulary 16,384 SentencePiece tokens

Training

  • Pretraining data: approximately 1.5B tokens of English web and book text
  • Sources: FineWeb-Edu, BookCorpus, OpenWebText, PG-19 and WikiHow
  • Objective: causal next-token prediction
  • Training hardware: a single NVIDIA Jetson with 8GB of unified memory

Usage

Hugging Face Transformers

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "AZERDSQ/G1-nano-base"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)

inputs = tokenizer("The city of Paris is", return_tensors="pt")
outputs = model.generate(
    **inputs,
    max_new_tokens=50,
    do_sample=True,
    top_k=50,
    temperature=0.8,
)
print(tokenizer.decode(outputs[0]))

trust_remote_code=True is required because this repository uses a custom Transformer implementation.

Ollama

ollama run azerdsq/g1-nano-base "The city of Paris is"

This is a base model: it completes text rather than answering questions.

Limitations

  • 60M parameters impose a hard limit on factual knowledge; expect fluent but frequently incorrect completions on knowledge-intensive prompts.
  • Maximum context length is 2048 tokens, which remains short compared with modern language models.
  • English-only training data.
  • Single-sequence generation only; padded batched inference is not supported by the custom model code.
  • No instruction tuning and no chat format.

This model should not be used for high-stakes decisions, factual verification, medical advice, legal advice or autonomous actions.

License

Apache 2.0. This release contains model weights and the code required to load them; it does not include the training data or private training infrastructure.

Links

Downloads last month
-
Safetensors
Model size
60M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support