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.4.tar.gz (67.1 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.4-py3-none-any.whl (67.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: omgformer-2.0.4.tar.gz
  • Upload date:
  • Size: 67.1 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.4.tar.gz
Algorithm Hash digest
SHA256 f95e2b6e775f526bdc905e9c6ef3030726993ceebc8bf9f1c2d9e4416a82035e
MD5 580284ea8296b239372816cdd31e2e72
BLAKE2b-256 24401ad5d3fdd294d049ffdbac6c2315154411752063bb839831625947d020b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: omgformer-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 67.9 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 42e1512d25e7aee4425cb98cbaef11807f0de3b18b3c7710417c086cc8c098ee
MD5 e3e5de65e3c904efe541afc1bbb5eb6c
BLAKE2b-256 4aa73fce7e366641d1070dfa8e9aed2220337f41718e91c5d10f4dd480e64ee8

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