Buckets:
| # BlockRefinementScheduler | |
| El `BlockRefinementScheduler` gestiona el refinamiento iterativo por bloques para la difusión de tokens discretos. En cada paso, confirma los tokens con mayor confianza y, opcionalmente, edita los tokens ya confirmados cuando el modelo predice un token diferente con alta confianza. | |
| Este programador es utilizado por [LLaDA2Pipeline](/docs/diffusers/main/es/api/pipelines/llada2#diffusers.LLaDA2Pipeline). | |
| ## 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L54) | |
| Programador para refinamiento iterativo por bloques (compromiso por confianza). | |
| En cada paso, el programador muestrea tokens candidatos a partir de los logits del modelo y confirma aquellos con mayor confianza. El número de tokens que se confirman en cada paso se determina distribuyendo uniformemente la longitud del bloque entre el número de pasos de refinamiento. | |
| Admite opcionalmente la edición: una vez que todos los tokens de máscara se han resuelto, los tokens pueden reemplazarse si el modelo predice un token diferente con una confianza superior a un `editing_threshold` positivo (`None`, `0.0` o un valor negativo desactiva la edición). | |
| #### 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L456) | |
| **Parámetros:** | |
| original_samples (`torch.LongTensor` de forma `(batch_size, seq_len)`) : IDs de tokens limpios. | |
| attention_mask (`torch.LongTensor` de forma `(batch_size, seq_len)`) : Máscara de relleno (1 para válido, 0 para relleno). | |
| prompt_length (`int`) : Número de tokens de indicación iniciales que se mantendrán sin enmascarar. | |
| block_length (`int`) : Tamaño de bloque para la enmascaración. | |
| mask_token_id (`int`) : ID de token para usar en las posiciones enmascaradas. | |
| generator (`torch.Generator`, *opcional*) : RNG para la reproducibilidad. | |
| **Devuelve:** `tuple[torch.LongTensor, torch.LongTensor, torch.BoolTensor, torch.BoolTensor]` | |
| `(noisy, noisy_rev, masked, masked_rev)` — las dos secuencias ruidosas complementarias y sus correspondientes máscaras booleanas. | |
| Aplicar el proceso de propagación (agregado de ruido) para el enmascaramiento de bloques semiautoregresivos. | |
| Para cada bloque posterior al prompt, una fracción aleatoria de tokens válidos (no de relleno) se reemplaza con `mask_token_id`. Se devuelven dos vistas complementarias: `noisy` y `noisy_rev`, donde las posiciones enmascaradas en una son las posiciones no enmascaradas en la otra. | |
| #### 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L412) | |
| **Parámetros:** | |
| step_idx (`int`) : Índice del paso de refinamiento actual dentro de este bloque. | |
| masks_remaining (`bool`) : Si quedan tokens de máscara en el bloque. | |
| editing_enabled (`bool`) : Si el modo de edición está activo. | |
| editing_transfer_index (`torch.BoolTensor`) : Qué tokens se editaron en este paso. | |
| post_steps (`int`) : Número de pasos de edición posteriores a la máscara realizados hasta ahora. | |
| max_post_steps (`int`) : Número máximo de pasos de edición permitidos después de la máscara. | |
| finished (`torch.BoolTensor`) : Banderas de finalización por lote (de la detección de EOS). | |
| **Devuelve:** `bool` | |
| `True` si la refinación debe continuar, `False` para interrumpir. | |
| Determine si el bucle de refinamiento interno debe continuar para el bloque actual. | |
| #### 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L362) | |
| **Parámetros:** | |
| cur_x (`torch.LongTensor` de forma `(batch_size, seq_len)`) : Secuencia completa actual que incluye todos los bloques hasta la ventana actual. | |
| sampled_tokens (`torch.LongTensor` de forma `(batch_size, block_length)`) : Tokens muestreados por el programador en este paso. | |
| final_transfer (`torch.BoolTensor` de forma `(batch_size, block_length)`) : Máscara combinada de posiciones comprometidas y editadas. | |
| finished (`torch.BoolTensor` de forma `(batch_size,)`) : Banderas de finalización actuales por lote. | |
| eos_token_id (`int`) : ID del token EOS. | |
| mask_token_id (`int`) : ID del token de máscara. | |
| prompt_length (`int`) : Número de tokens de indicio al inicio de la secuencia. | |
| **Devuelve:** `torch.BoolTensor` | |
| Se actualizaron las banderas de finalización. | |
| Actualice las banderas de finalización por lote cuando se confirmen los tokens EOS. | |
| #### get_num_transfer_tokens[[diffusers.BlockRefinementScheduler.get_num_transfer_tokens]] | |
| ```python | |
| get_num_transfer_tokens(block_length: int, num_inference_steps: int) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L102) | |
| Distribuya uniformemente los `block_length` tokens entre los `num_inference_steps` pasos. | |
| #### paso[[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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L181) | |
| **Parámetros:** | |
| model_output (`torch.Tensor` de forma `(batch_size, block_length, vocab_size)`) : Logits crudos del modelo para el bloque actual. | |
| timestep (`int` o `torch.Tensor`) : Índice del paso actual dentro del programa de refinamiento del bloque. | |
| sample (`torch.LongTensor` de forma `(batch_size, block_length)`) : IDs de tokens del bloque actual (contiene tokens de máscara para las posiciones no confirmadas en el modo basado en máscara). | |
| mask_token_id (`int`, *opcional*) : ID de token utilizado para las posiciones enmascaradas. Cuando es `None`, el programador se ejecuta en modo de corrupción uniforme: rastrea internamente las posiciones comprometidas (reiniciando en `timestep == 0`) y re-ruidiza las no comprometidas con tokens aleatorios uniformes, coincidiendo con el muestreador de refinamiento por bloques de DiffusionGemma. | |
| temperature (`float`) : Temperatura de muestreo. | |
| top_p (`float`, *opcional*) : Corte de muestreo por núcleo. | |
| top_k (`int`, *opcional*) : Corte de muestreo Top-k. | |
| sampling_method (`str`) : Método de muestreo (`auto`, `greedy`, `multinomial`). | |
| threshold (`float`, *opcional*) : Umbral de confianza para confirmar los tokens. El valor predeterminado es el valor de la configuración. | |
| editing_threshold (`float`, *opcional*) : Umbral de confianza para editar tokens no enmascarados; debe ser positivo para habilitar la edición. El valor predeterminado es el de la configuración. | |
| minimal_topk (`int`, *opcional*) : Número mínimo de tokens que se deben confirmar en cada paso. El valor predeterminado es el valor de la configuración. | |
| prompt_mask (`torch.BoolTensor`, *opcional*) : Máscara booleana de forma `(block_length,)` donde `True` marca las posiciones del prompt (no editables). | |
| generator (`torch.Generator`, *opcional*) : Generador de números aleatorios para el muestreo. | |
| return_dict (`bool`) : Si se debe devolver un `BlockRefinementSchedulerOutput` o una tupla. | |
| Realiza un paso único de refinamiento: muestrea desde los logits, confirma los tokens con alta confianza y, opcionalmente, edita los existentes. | |
| ## 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) | |
| ``` | |
| [Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_block_refinement.py#L27) | |
| **Parámetros:** | |
| prev_sample (`torch.LongTensor` de forma `(batch_size, block_length)`) : Tokens de bloque actualizados después del paso de refinamiento actual. | |
| transfer_index (`torch.BoolTensor` de forma `(batch_size, block_length)`) : Máscara booleana que indica qué tokens se comprometieron (relleno de máscara). | |
| editing_transfer_index (`torch.BoolTensor` de forma `(batch_size, block_length)`) : Máscara booleana que indica qué tokens fueron editados (sustitución no enmascarada). | |
| sampled_tokens (`torch.LongTensor` de forma `(batch_size, block_length)`) : IDs de tokens muestreados de los logits del modelo. | |
| sampled_probs (`torch.Tensor` de forma `(batch_size, block_length)`) : Probabilidades de los tokens muestreados. | |
| pred_logits (`torch.Tensor` de forma `(batch_size, block_length, vocab_size)`) : Los logits del denoiser, transmitidos para la autocondición del siguiente paso. | |
| Clase de salida para la programación de refinamiento de bloques. | |
Xet Storage Details
- Size:
- 10.3 kB
- Xet hash:
- f4f3b915478fd54b6cd8245fb6daf1be69c47cbc338955c4de5e45b9098b31ad
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.