Buckets:

hf-doc-build/doc / diffusers /main /tr /api /schedulers /block_refinement.md
mishig's picture
|
download
raw
10.3 kB

BlockRefinementScheduler

BlockRefinementScheduler, ayrık token difüzyonu için blok bazlı iteratif iyileştirmeyi yönetir. Her adımda en yüksek güvene sahip tokenları sabitler ve model, yüksek güvenle farklı bir token öngördüğünde, isteğe bağlı olarak zaten sabitlenmiş tokenları düzenler.

Bu zamanlayıcı LLaDA2Pipeline tarafından kullanılır.

BlockRefinementScheduler[[diffusers.BlockRefinementScheduler]]

diffusers.BlockRefinementScheduler[[diffusers.BlockRefinementScheduler]]

diffusers.BlockRefinementScheduler(block_length: int = 32, num_inference_steps: int = 32, threshold: float = 0.95, editing_threshold: float | None = None, minimal_topk: int = 1)

Kaynak

Blok bazlı iteratif iyileştirme için zamanlayıcı (güvene göre commit).

Her adımda, zamanlayıcı model logitlerinden aday token örnekler ve en yüksek güvene sahip olanları onaylar. Adım başına onaylanacak token sayısı, blok uzunluğunun iyileştirme adım sayısına eşit olarak dağıtılmasıyla belirlenir.

İsteğe bağlı olarak düzenlemeyi destekler: tüm maske jetonları çözüldükten sonra, model pozitif bir editing_threshold'dan (None, 0.0 veya negatif değerler düzenlemeyi devre dışı bırakır) yüksek bir güvenle farklı bir jeton öngörürse jetonlar değiştirilebilir.

add_noise[[diffusers.BlockRefinementScheduler.add_noise]]

add_noise(original_samples: torch.LongTensor, attention_mask: torch.LongTensor, prompt_length: int, block_length: int, mask_token_id: int, generator: torch.Generator | None = None)

Kaynak

Parametreler:

original_samples (torch.LongTensor, şekli (batch_size, seq_len)) : Temiz token kimlikleri.

attention_mask (torch.LongTensor, şekli (batch_size, seq_len)) : Dolgu maskesi (geçerli için 1, dolgu için 0).

prompt_length (int) : Maskelenmeden korunacak başlangıç istem jetonlarının sayısı.

block_length (int) : Maskleme için blok boyutu.

mask_token_id (int) : Maskelenmiş konumlar için kullanılacak Token ID'si.

generator (torch.Generator, isteğe bağlı) : Yeniden üretilebilirlik için RNG.

Dönüş: tuple[torch.LongTensor, torch.LongTensor, torch.BoolTensor, torch.BoolTensor]

(noisy, noisy_rev, masked, masked_rev) — iki tamamlayıcı gürültülü dizi ve bunlara karşılık gelen Boole maskeleri.

Yarı otoregresif blok maskeleme için ileri (gürültüleme) sürecini uygulayın.

İstemden sonraki her blok için, geçerli (doldurma olmayan) tokenların rastgele bir kısmı mask_token_id ile değiştirilir. İki tamamlayıcı görünüm döndürülür: noisy ve noisy_rev; bunlardan birindeki maskelenmiş konumlar, diğerinde maskelenmemiş konumlardır.

check_block_should_continue[[diffusers.BlockRefinementScheduler.check_block_should_continue]]

check_block_should_continue(step_idx: int, masks_remaining: bool, editing_enabled: bool, editing_transfer_index: torch.BoolTensor, post_steps: int, max_post_steps: int, finished: torch.BoolTensor)

Kaynak

Parametreler:

step_idx (int) : Bu blok içindeki mevcut iyileştirme adımının indeksi.

masks_remaining (bool) : Blokta herhangi bir maske sembolünün kalıp kalmadığı.

editing_enabled (bool) : Düzenleme modunun aktif olup olmadığı.

editing_transfer_index (torch.BoolTensor) : Bu adımda düzenlenmiş jetonlar.

post_steps (int) : Şu ana kadar atılan maske sonrası düzenleme adım sayısı.

max_post_steps (int) : Maske sonrası düzenleme adımlarının izin verilen maksimum değeri.

finished (torch.BoolTensor) : Parti başına bitiş bayrakları (EOS algılamasından).

Dönüş: bool

İncelemenin devam etmesi gerekiyorsa True, durdurulması gerekiyorsa False.

İç iyileştirme döngüsünün mevcut blok için devam edip etmemesi gerektiğini belirler.

check_eos_finished[[diffusers.BlockRefinementScheduler.check_eos_finished]]

check_eos_finished(cur_x: torch.LongTensor, sampled_tokens: torch.LongTensor, final_transfer: torch.BoolTensor, finished: torch.BoolTensor, eos_token_id: int, mask_token_id: int, prompt_length: int)

Kaynak

Parametreler:

cur_x (torch.LongTensor, şekli (batch_size, seq_len)) : Güncel pencereye kadar tüm blokları içeren mevcut tam dizi.

sampled_tokens (torch.LongTensor, şekli (batch_size, block_length)) : Bu adımda zamanlayıcı tarafından örneklenen jetonlar.

final_transfer (torch.BoolTensor, şekli (batch_size, block_length)) : Taahhüt edilen ve düzenlenmiş konumların birleşik maskesi.

finished (torch.BoolTensor, şekli (batch_size,)) : Güncel parti başına bitiş bayrakları.

eos_token_id (int) : EOS jetonu kimliği.

mask_token_id (int) : Maske belirteç kimliği.

prompt_length (int) : Sıranın başındaki istem belirteçlerinin sayısı.

Dönüş: torch.BoolTensor

Bitmiş bayrakları güncellendi.

EOS tokenleri onaylandığında batch başına tamamlanma bayraklarını güncelleyin.

get_num_transfer_tokens[[diffusers.BlockRefinementScheduler.get_num_transfer_tokens]]

get_num_transfer_tokens(block_length: int, num_inference_steps: int)

Kaynak

block_length token taahhütlerini num_inference_steps adım arasında eşit olarak dağıtın.

adım[[diffusers.BlockRefinementScheduler.step]]

step(model_output: torch.Tensor, timestep: int | torch.Tensor, sample: torch.LongTensor, mask_token_id: int | None = None, temperature: float = 0.0, top_p: float | None = None, top_k: int | None = None, sampling_method: str = 'auto', threshold: float | None = None, editing_threshold: float | None = None, minimal_topk: int | None = None, prompt_mask: torch.BoolTensor | None = None, generator: torch.Generator | None = None, return_dict: bool = True)

Kaynak

Parametreler:

model_output (torch.Tensor, şekli (batch_size, block_length, vocab_size)) : Modelin mevcut blok için ham logit'leri.

timestep (int veya torch.Tensor) : Blokun rafine etme zamanlaması içindeki mevcut adım indeksi.

sample (torch.LongTensor, şekli (batch_size, block_length)) : Güncel blok token kimlikleri (mask tabanlı modda taahhüt edilmemiş konumlarda mask token'ları içerir).

mask_token_id (int, isteğe bağlı) : Maskelenmiş konumlar için kullanılan Token ID'si. None olduğunda, zamanlayıcı (scheduler) düzgün bozulma modunda çalışır: taahhüt edilen konumları dahili olarak takip eder (timestep == 0 anında sıfırlar) ve taahhüt edilmemiş olanları, DiffusionGemma'nın blok rafineleme örnekleyicisiyle (block refinement sampler) eşleşecek şekilde düzgün rastgele token'larla yeniden gürültüler (renoises).

temperature (float) : Örnekleme sıcaklığı.

top_p (float, isteğe bağlı) : Nükleer örneklem kesme değeri.

top_k (int, isteğe bağlı) : Top-k örneklemesi kesme noktası.

sampling_method (str) : Örnekleme yöntemi (auto, greedy, multinomial).

threshold (float, isteğe bağlı) : Token'ların onaylanması için güven eşiği. Varsayılan olarak config değeri kullanılır.

editing_threshold (float, isteğe bağlı) : Maskelenmemiş tokenların düzenlenmesi için güven eşiği; düzenlemeyi etkinleştirmek için pozitif olmalıdır. Varsayılan olarak config değeri kullanılır.

minimal_topk (int, isteğe bağlı) : Adım başına taahhüt edilecek en az token sayısı. Varsayılan olarak yapılandırma değeri kullanılır.

prompt_mask (torch.BoolTensor, isteğe bağlı) : (block_length,) biçiminde, True'ün prompt (düzenlenemez) konumlarını işaretlediği Boole maskesi.

generator (torch.Generator, isteğe bağlı) : Örnekleme için RNG.

return_dict (bool) : BlockRefinementSchedulerOutput döndürülecek mi yoksa bir tuple mı döndürülecek.

Tek bir iyileştirme adımı gerçekleştirin: logitlerden örnekleyin, güvenilen tokenları sabitleyin ve isteğe bağlı olarak mevcut olanları düzenleyin.

BlockRefinementSchedulerOutput[[diffusers.BlockRefinementSchedulerOutput]]

diffusers.BlockRefinementSchedulerOutput[[diffusers.BlockRefinementSchedulerOutput]]

diffusers.BlockRefinementSchedulerOutput(prev_sample: torch.LongTensor, transfer_index: torch.BoolTensor, editing_transfer_index: torch.BoolTensor, sampled_tokens: torch.LongTensor, sampled_probs: torch.Tensor, pred_logits: torch.Tensor)

Kaynak

Parametreler:

prev_sample (torch.LongTensor, şekli (batch_size, block_length)) : Güncel rafineleme adımından sonra güncellenmiş blok jetonları.

transfer_index (torch.BoolTensor, şekli (batch_size, block_length)) : Hangi tokenların taahhüt edildiğini (mask-doldurma) gösteren Boole maskesi.

editing_transfer_index (torch.BoolTensor, şekli (batch_size, block_length)) : Hangi tokenların düzenlendiğini (maskelenmemiş değiştirme) gösteren Boole maskesi.

sampled_tokens (torch.LongTensor, şekli (batch_size, block_length)) : Model logitlerinden örneklenen token kimlikleri.

sampled_probs (torch.Tensor, şekli (batch_size, block_length)) : Örneklenen tokenların olasılıkları.

pred_logits (torch.Tensor, şekli (batch_size, block_length, vocab_size)) : Bir sonraki adımda kendiliğinden koşullandırma için geçirilen gürültü azaltıcı logitleri.

Blok rafineleme zamanlaması için çıktı sınıfı.

Xet Storage Details

Size:
10.3 kB
·
Xet hash:
b16ff6a4fcf9df7f7b03fa1e4760f42693dbb947e312d5e4797ff470c56f1cbe

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.