Skip to content

Architecture

ChiefVenzox edited this page Jun 18, 2026 · 1 revision

Mimari

Yerel, sıfırdan eğitilen, UI/CSS üretimine odaklı bir asistan. Hazır model/bulut API yok; model PyTorch ile sıfırdan kurulur ve eğitilir.

Genel akış

Frontend (React + Vite + Three.js)
  Prompt input → WebSocket/REST → token stream → HTML/CSS/notes sekmeleri
  Three.js arka plan · canlı iframe önizleme · ZIP dışa aktar
        │  POST /api/generate-ui  |  WS /ws/generate
Backend (FastAPI)
  1. prompt al
  2. prompt_format → model girişi ( <|user|> ... <|assistant|> )
  3. model.generate_stream → token üretimi (CUDA, CPU fallback)
  4. parse_response → @@HTML / @@CSS / @@NOTES bölümlerini ayrıştır
  5. validate → temel HTML/CSS kontrolleri
  6. SQLite'a kaydet (geçmiş)
  7. sonucu döndür / stream et
        │
AI çekirdeği (PyTorch, sıfırdan)
  · decoder-only Transformer (RoPE + RMSNorm + SwiGLU + GQA + KV-cache)
  · kendi byte-level BPE tokenizer'ı
  · checkpoint kaydet/yükle · generate

Model

Sıfırdan, modern ama küçük bir decoder-only Transformer:

Bileşen Seçim Neden
Konum kodlama RoPE Öğrenilen konum yok, uzunluğa esnek
Normalizasyon RMSNorm LayerNorm'dan hızlı/stabil
MLP SwiGLU Modern, daha iyi kalite
Dikkat (G)MHA + SDPA Flash/efficient çekirdek, KV tasarrufu
Üretim KV-cache Hızlı stream
Bellek fp16 + gradient checkpointing 6 GB'a sığar

Presetler (backend/app/model/config.py)

preset ~params layer hidden head ctx
chiefui-tiny ~7–10M 4 384 6 1024
chiefui-30m ~27M 6 512 8 1024
chiefui-60m ~50M 8 640 10 1024

Turing (1660 Ti) fp16 kullanır (kod otomatik seçer; bf16 emülasyon → kapalı).

Giriş / çıkış formatı

Giriş (prompt_format):

<|user|>
Instruction: {instruction}
Style: {input}
<|assistant|>

Çıkış (model üretir; dataset'te de bu format):

@@HTML
<!DOCTYPE html> ... (tam belge, stil hariç)
@@CSS
... css ...
@@NOTES
... kısa açıklama ...
@@END

İşaretçiler @@HTML / @@CSS / @@NOTES / @@END — kapanış @@ yoktur (paylaşılan @@ token'ı hem açılış hem kapanışta olsaydı model @@ sonrası \n seçip bölüm adını atlardı). Üretim @@END, <|end|> veya <|endoftext|> görülünce durur.

Klasör yapısı

chiefui-assistant/
├─ backend/
│  ├─ app/
│  │  ├─ main.py                FastAPI uygulaması
│  │  ├─ api/routes.py          /api/generate-ui, /ws/generate, /api/history
│  │  ├─ model/{config,gpt}.py  GPTConfig + Transformer
│  │  ├─ tokenizer/             BPE wrapper + eğitim
│  │  ├─ training/{dataset,train}.py
│  │  ├─ inference/{prompt_format,generate}.py
│  │  ├─ validation/validate.py
│  │  └─ database/db.py         SQLite geçmiş
│  ├─ datasets/                 *.jsonl + build_seed.py
│  └─ checkpoints/              (gitignore) eğitilmiş ağırlıklar
├─ frontend/                    React + Vite + Three.js
├─ scripts/                     train_tokenizer · prepare_dataset · train_model · generate
└─ docs/

2. PC (gelecek worker)

MVP tek PC. İleride 2. PC; veri temizleme / tokenizasyon (CPU), eval / önizleme ekran görüntüsü testleri, torchrun ile dağıtık (DDP) eğitim alabilir. VRAM birleştirme yok — kararlılık önce. Kod --device, --data, --out parametreleriyle worker olarak çalışacak şekilde yazıldı.

Clone this wiki locally