Skip to main content

Parallel Diffusion Language Model — GQA + AdaLN-Zero + Self-Conditioning + LoRA + MoE + Quantization

Project description

omgformer v2.0.1

Paralel Diffusion Dil Modeli — aynı anda tüm tokenleri üretir.

Klasik GPT 256 token için 256 forward pass yapar.
omgformer aynı çıktıyı 8–10 forward pass ile üretir.

pip install omgformer

Temel Fikir

Adım 0: "Merhaba [MASK] [MASK] [MASK] [MASK] [MASK]"
Adım 1: "Merhaba dünya  [MASK] [MASK] [MASK] [MASK]"
Adım 2: "Merhaba dünya  nasıl  gidiyor [MASK] [MASK]"
Adım 3: "Merhaba dünya  nasıl  gidiyor  bugün   ?"

Her adımda tüm sequence bir forward pass'ten geçer.
Model hem sola hem sağa bakar.
En yüksek güvenli tokenlar açılır.
Python for loop yok — tamamen vektörize.


Hızlı Başlangıç

from omgformer import OMGConfig, OMGModel, MaskScheduler, ParallelDecoder

cfg   = OMGConfig.from_preset("omgformer-base")
model = OMGModel(cfg).eval()

# Doğrudan model üzerinden üretim (v2.0.1 yeni)
prompt_ids = tokenizer.encode("İstanbul'un tarihi")
out = model.generate(prompt_ids, new_tokens=128, steps=10)
print(tokenizer.decode(out[0]))

Manuel decoder

sched   = MaskScheduler(steps=64, mask_token_id=cfg.mask_token_id, vocab_size=cfg.vocab_size)
decoder = ParallelDecoder(model, sched)

out = decoder.generate(
    prompt_ids,
    new_tokens=128,
    steps=10,
    temperature=0.9,
    top_p=0.95,
    remask_prob=0.05,
)

Pipeline

from omgformer import pipeline

gen    = pipeline("text-generation", model="omgformer-base")
result = gen("Yapay zeka", new_tokens=256, steps=10)
print(result["generated_text"])

Eğitim

from omgformer.training import Trainer, TrainingConfig

train_cfg = TrainingConfig(
    steps=100_000,
    batch_size=32,
    lr=3e-4,
    use_amp=True,
    use_compile=True,
    grad_accum_steps=4,
    self_cond_prob=0.5,
    use_wandb=True,
)

trainer = Trainer(model, sched, train_cfg, get_batch=my_data_loader)
trainer.fit()

Çok GPU (FSDP)

from omgformer.training import wrap_fsdp

model = wrap_fsdp(model, device_id=local_rank)
# torchrun --nproc_per_node=8 train.py

v2.0.1 — Hata Düzeltmeleri

Dosya Hata Düzeltme
modeling.py _forward_blocks t_emb tipi Tensor (Optional değil) Optional[torch.Tensor] yapıldı
training.py torch.cuda.amp.GradScaler deprecated (PyTorch ≥ 2.3) torch.amp.GradScaler("cuda", …) kullanıldı
training.py Gradient checkpointing t_emb=None → dummy tensor → yanlış dal None değerleri doğru iletiliyor
tokenization.py __getattr__ sonsuz özyineleme object.__getattribute__ ile korundu
diffusion.py generate_stream temperature/top_k/top_p/remask_prob yok sayılıyordu Tam parametre desteği eklendi
diffusion.py generate_stream son adımda MASK token kalabiliyordu Son adım forced-unmask eklendi
configuration.py assert-O ile devre dışı bırakılabilir ValueError ile değiştirildi
pipeline.py assert task == … ValueError ile değiştirildi

Yeni Eklentiler

  • utils.pyset_seed, count_parameters, get_model_size_mb, get_device, tokens_per_second, format_number
  • OMGModel.generate() — MaskScheduler + ParallelDecoder oluşturmadan doğrudan üretim
  • OMGConfig.from_json_string() — JSON dizisinden konfigürasyon
  • OMGConfig.validate() — erken değer doğrulaması
  • TrainingConfig.validate() — eğitim başlamadan tutarsızlık tespiti
  • AutoModel.from_pretrained(device=…) — cihaz parametresi eklendi
  • py.typed — PEP 561 tip marker
  • PyPI metadataclassifiers, keywords, authors, [project.urls]

v2.0.0 Mimarisi

GQA (Grouped Query Attention)

cfg = OMGConfig(num_heads=16, num_kv_heads=4)  # 4× bellek tasarrufu

AdaLN-Zero

x_attn = norm(x) * (1 + scale) + shift
x = x + gate.tanh() * attention(x_attn)

Gate'ler sıfır başlatılır → eğitim başında blok = tam geçirgen.

Self-Conditioning

Adım N:   logits_n  = model(noisy, self_cond=None)
Adım N+1: logits_n1 = model(noisy, self_cond=soft_embed(logits_n))

Absorbing Diffusion

%80 → MASK token
%10 → rastgele başka token
%10 → orijinal token kalır

Model Boyutları

Preset Katman Hidden Heads (Q/KV) ~Parametre
omgformer-tiny 4 256 4/4 ~14M
omgformer-small 8 512 8/4 ~87M
omgformer-base 12 768 12/4 ~180M
omgformer-large 24 1024 16/4 ~600M
omgformer-xl 24 2048 16/2 ~2.1B
omgformer-3b 32 2560 32/8 ~3.2B

Hız Karşılaştırması

Model 256 token üretim Yöntem
GPT-2 256 forward pass Otoregresif
omgformer (steps=10) 10 forward pass Paralel diffusion
omgformer (steps=6, SC) 6 forward pass + Self-conditioning

Kurulum

# Minimum
pip install omgformer

# Eğitim araçlarıyla
pip install "omgformer[train]"

# Geliştirici araçlarıyla
pip install "omgformer[dev]"

Testler

pytest tests/ -v

Referanslar


Lisans

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omgformer-2.0.3.tar.gz (52.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omgformer-2.0.3-py3-none-any.whl (52.3 kB view details)

Uploaded Python 3

File details

Details for the file omgformer-2.0.3.tar.gz.

File metadata

  • Download URL: omgformer-2.0.3.tar.gz
  • Upload date:
  • Size: 52.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for omgformer-2.0.3.tar.gz
Algorithm Hash digest
SHA256 3a6f8cf888e5314a0df7f931acb895a00f58aff0874dbe0b53ca4d13bcecfa7b
MD5 024cb00641a242dce8e1cad5e32139a1
BLAKE2b-256 221a89b2f9213dd4635f26e2ec7eba5f52529b3dfdfcb9ae8456f444584d74b9

See more details on using hashes here.

File details

Details for the file omgformer-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: omgformer-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 52.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for omgformer-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4c101ef56d6a9bb01f88f5e5c4d2375c807eff27cc29cc9b6cce923bba3e93c5
MD5 83818de67b9467c2312f992f68c406e3
BLAKE2b-256 adc920fc5b4ac46937544935360ae3e7967eea3cda3d9bb48f4854b07cd8569b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page