Diffusers documentation
RFD4ProteinaScheduler
RFD4ProteinaScheduler
RFD4ProteinaScheduler est l'échantillonneur de flux à score temporel rééchelonné de RFD4-Proteína pour une modalité. Le pipeline utilise
deux instances, l'une pour le squelette (bb_ca, coordonnées en nanomètres) et l'autre pour les latents locaux par jeton
(local_latents), chacune avec son propre calendrier temporel, son calendrier de bruit et son rééchelonnement. Voir RFD4ProteinaPipeline pour la
boucle d'échantillonnage.
RFD4ProteinaScheduler
classe diffusers.RFD4ProteinaScheduler
< source >( schedule_mode: strnoise_mode: strtsr_k: floattsr_sigma: floattail_steps: int = 10tail_step_multiplier: int = 2t_lim_ode: float = 0.95t_lim_ode_below: float = 0.02 )
Paramètres
- schedule_mode (
str) — Espacement des temps entre le bruit et les données :"log"ou"power". - noise_mode (
str) — Forme du bruit injecté dans la fenêtre stochastique :"1/t"ou"tan". - tsr_k (
float) — À quel point la température d'échantillonnage est basse ; plus la valeur est élevée, plus la température est basse. - tsr_sigma (
float) — Vitesse à laquelle la basse température est atteinte ; plus la valeur est élevée, plus la vitesse est rapide. - tail_steps (
int, par défaut10) — Nombre d'intervalles finaux qui sont plus fins que les autres d'un facteurtail_step_multiplier. - tail_step_multiplier (
int, par défaut2) — Le niveau de finesse des intervalles finaux. - t_lim_ode (
float, par défaut0.95) — Au-delà de ce temps, la étape est déterministe. - t_lim_ode_below (
float, par défaut0.02) — En dessous de cette valeur de temps, la étape est déterministe.
Échantillonneur de flux avec score temporel rééchelonné pour une modalité de RFD4-Proteína.
Le pipeline intègre deux modalités, le backbone et les latents locaux par jeton, chacune avec son propre planificateur. Ils diffèrent par leur calendrier temporel, leur calendrier de bruit et leur recalage.
Appel set_timesteps avant l'échantillonnage. Les temps augmentent du bruit vers les données propres. Un planificateur suit l'intervalle actuel et ne doit pas être partagé entre des générations concurrentes.
set_timesteps
< source >( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = Nonestart_time: float | None = None )
Paramètres
- num_inference_steps (
int) — Nombre d'intervalles d'intégration. - device (
stroutorch.device, facultatif) — Appareil pourtimesteps. Les longueurs d'intervalle et les coefficients de bruit restent sur le CPU. - start_time (
float, facultatif) — Heure de début de la diffusion partielle dans[0, 1). À omettre pour une génération complète.
Résoudre le planning et réinitialiser le curseur d'intégration.
add_noise
< source >( original_samples: Tensornoise: Tensortimesteps: typing.Union[float, torch.Tensor] )
Échantillonner la marginale avant (1 - t) * noise + t * clean.
étape
< source >( model_output: Tensortimestep: Tensorsample: Tensoremit_mask: Tensorgenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonereturn_dict: bool = True ) → RFD4ProteinaSchedulerOutput or tuple
Paramètres
- model_output (
torch.Tensor) — Vitesse prédite, de même forme quesample. - timestep (
torch.Tensor) — L’élément suivant detimesteps. Les étapes hors ordre sont rejetées. - sample (
torch.Tensor) — État actuel(B, N, D). - emit_mask (
torch.Tensor) —(B, N)booléen, vrai pour les jetons mis à jour (ni contexte ni bourrage). - generator (
torch.Generatoroulist[torch.Generator], facultatif) — Un générateur pour une seule ligne ou des générateurs distincts pour chaque ligne du lot. S'ils sont omis, le flux global est utilisé. - return_dict (
bool, par défautTrue) — RetourneRFD4ProteinaSchedulerOutput; sinon, un tuple à un élément contenant l'état.
Retourne
RFD4ProteinaSchedulerOutput ou tuple
L'état mis à jour.
Avancez d'un intervalle d'intégration et mettez à jour step_index.
RFD4ProteinaSchedulerOutput
classe diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput
< source >( prev_sample: Tensor )
État mis à jour d'une modalité.