Skip to main content

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

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.1.tar.gz (35.5 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.1-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: omgformer-2.0.1.tar.gz
  • Upload date:
  • Size: 35.5 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.1.tar.gz
Algorithm Hash digest
SHA256 a2558de2d9fe1524f6926032b44a818789e05cba378c6aaef0bfcd74b161a4c2
MD5 7f624f9a70c58d5503c0b5b62ab31e35
BLAKE2b-256 34606661e4f63033fb1e881ae3f6ac7b1f7422098bd3937f557601d8208c037f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: omgformer-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 32.1 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4e652adce96ea67b0b0b82a619b7faf34dbe5b1c27f3381053aa076a2e3e2a4f
MD5 8d32ee7a68eebfe53d77750b24576d18
BLAKE2b-256 25bc3ab888b837f55e2b722ea6380717ff904f292ea31a003a08e165bd0a8787

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