ABA-1 (124M) - Konverzační & Programátorský Jazykový Model

ABA-1 je vlastní Decoder-only Transformer model (architektura ve stylu LLaMA) se 124.3 miliony parametrů, trénovaný od naprosté nuly (from scratch) na jediné spotřebitelské grafické kartě NVIDIA GeForce RTX 3050 Laptop GPU (4 GB VRAM).

Model je bilingvní (plynulá čeština i angličtina) a specializuje se na základy programování v 6 jazycích: Python, C, C#, JavaScript, HTML5 a CSS3.


🚀 Architektura modelu

  • Počet parametrů: 124 280 832 (~124.3M)
  • Typ: Autoregresivní Decoder-only Transformer
  • Dimenze embeddingu (dim): 768
  • Počet vrstev (n_layers): 12
  • Počet attention hlav (n_heads): 12 (64 dim na hlavu)
  • Mezivrstva MLP (d_ff): 2 560 (s aktivací SwiGLU)
  • Normalizace: RMSNorm (Root Mean Square Layer Normalization, eps = 1e-6)
  • Pozicové kódování: Rotary Position Embeddings (RoPE, theta = 10 000.0)
  • Attention: FlashAttention / Scaled Dot-Product Attention (PyTorch SDPA)
  • Délka kontextu (max_seq_len): 512 tokenů
  • Velikost slovníku: 16 384 tokenů (vlastní Byte-Level BPE)

📊 Trénink a historie

  1. Pre-training (Základní trénink od nuly):

    • 8.12 milionu tokenů kódu a bilingvních textů.
    • 3 000 trénovacích kroků.
    • Výsledná validační ztráta (Val Loss): 1.0367 (Perplexity: 2.82, Top-1 přesnost: 90.56 %).
  2. Supervised Fine-Tuning (SFT Chat Asistent):

    • Padded Batching zarovnaný na hranice dialogů s Loss Maskingem (ignore_index=-100 pro otázky a padding).
    • 2 149 cílených bilingvních technických dialogů (Bactrian-X CS, Stanford Alpaca EN a kurátorovaná data algoritmů a identity).
    • Verze checkpointu: aba_ai_chat_best.pt (Krok 200, Val Loss: 2.3345).

💻 Rychlý start v Pythonu

Pro spuštění modelu nepotřebujete žádné externí těžké knihovny, stačí torch:

import torch
from model import AbaConfig, AbaTransformer
from aba_tokenizer import AbaTokenizer

# 1. Načtení konfigurace a modelu
config = AbaConfig(
    vocab_size=16384,
    max_seq_len=512,
    dim=768,
    n_layers=12,
    n_heads=12,
    d_ff=2560
)
model = AbaTransformer(config)

# Načtení vah (safetensors nebo bin)
try:
    from safetensors.torch import load_file
    weights = load_file("model.safetensors")
except ImportError:
    weights = torch.load("pytorch_model.bin", map_location="cpu")

model.load_state_dict(weights)
model.eval()

# 2. Tokenizer
tokenizer = AbaTokenizer()

# 3. Formátování dotazu
prompt = "<|user|>\npython bubble sort\n<|assistant|>\n"
idx = torch.tensor([tokenizer.encode(prompt)], dtype=torch.long)

# 4. Generování odpovědi
with torch.no_grad():
    out_ids = model.generate(idx, max_new_tokens=200, temperature=0.25)

odpoved = tokenizer.decode(out_ids[0].tolist(), skip_special_tokens=True)
print(odpoved)

🏷️ Speciální tokeny konverzace

  • <|endoftext|> (ID: 0) – Konec sekvence / dokumentu
  • <|user|> – Začátek zprávy uživatele
  • <|assistant|> – Začátek odpovědi asistenta

📜 Licence

MIT License. Volně k použití pro studijní, výzkumné i komerční účely. Vytvořeno v rámci projektu ABA AI.

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