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](/docs/diffusers/main/tr/api/pipelines/llada2#diffusers.LLaDA2Pipeline) tarafından kullanılır.
## BlockRefinementScheduler[[diffusers.BlockRefinementScheduler]]
#### diffusers.BlockRefinementScheduler[[diffusers.BlockRefinementScheduler]]
```python
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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L54)
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]]
```python
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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L456)
**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]]
```python
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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L412)
**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]]
```python
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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L362)
**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]]
```python
get_num_transfer_tokens(block_length: int, num_inference_steps: int)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L102)
`block_length` token taahhütlerini `num_inference_steps` adım arasında eşit olarak dağıtın.
#### adım[[diffusers.BlockRefinementScheduler.step]]
```python
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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L181)
**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]]
```python
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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L27)
**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.