| defaults: | |
| - _self_ | |
| - /callbacks: [checkpoint_every_n_steps, checkpoint_monitor, learning_rate_monitor] | |
| - /data: protein | |
| - /model: small | |
| - /strategy: ddp | |
| - /noise: loglinear | |
| - /lr_scheduler: cosine_decay_warmup # constant_warmup | |
| - /classifier_model: null | |
| - /guidance: null | |
| mode: ppl_eval # train / train_classifier / ppl_eval | |
| diffusion: uniform # absorbing_state / uniform | |
| backbone: dit # dit / dimamba / ar | |
| classifier_backbone: null | |
| parameterization: d3pm # subs / d3pm / ar | |
| time_conditioning: True # UDLM is conditioned on time | |
| subs_masking: False | |
| zero_recon_loss: True # Use for UDLM | |
| T: 0 # 0 (continuous time) / 1000 | |
| is_vision: False | |
| seed: 42 | |
| loader: | |
| global_batch_size: 512 | |
| eval_global_batch_size: ${.global_batch_size} | |
| # Note: batch_size and eval_batch_size are **per machine** | |
| batch_size: ${div_up:${.global_batch_size}, ${eval:${trainer.devices} * ${trainer.num_nodes}}} | |
| eval_batch_size: ${div_up:${.eval_global_batch_size}, ${eval:${trainer.devices} * ${trainer.num_nodes}}} | |
| num_workers: 0 # ${eval:"len(__import__('os').sched_getaffinity(0))"} | |
| pin_memory: True | |
| persistent_workers: False # True | |
| sampling: | |
| use_cache: True | |
| steps: 32 | |
| # Note: batch_size is **per machine** | |
| batch_size: 1 # ${loader.eval_batch_size} | |
| num_sample_batches: 10 # Total samples: `num_gpus` * `batch_size` * `num_sample_batches` | |
| use_float64: False | |
| eval: | |
| checkpoint_path: '/home/tc415/discrete-diffusion-guidance/outputs/peptide/2024.12.31/122818/checkpoints/best.ckpt' # Used to evaluate a checkpoint after training. | |
| target_sequence: 'MLQTKDLIWTLFFLGTAVSLQVDIVPSQGEISVGESKFFLCQVAGDAKDKDISWFSPNGEKLTPNQQRISVVWNDDSSSTLTIYNANIDDAGIYKCVVTGEDGSESEATVNVKIFQKLMFKNAPTPQEFREGEDAVIVCDVVSSLPPTIIWKHKGRDVILKKDVRFIVLSNNYLQIRGIKKTDEGTYRCEGRILARGEINFKDIQVIVNVPPTIQARQNIVNATANLGQSVTLVCDAEGFPEPTMSWTKDGEQIEQEEDDEKYIFSDDSSQLTIKKVDKNDEAEYICIAENKAGEQDATIHLKVFAKPKITYVENQTAMELEEQVTLTCEASGDPIPSITWRTSTRNISSEEKASWTRPEKQETLDGHMVVRSHARVSSLTLKSIQYTDAGEYICTASNTIGQDSQSMYLEVQYAPKLQGPVAVYTWEGNQVNITCEVFAYPSATISWFRDGQLLPSSNYSNIKIYNTPSASYLEVTPDSENDFGNYNCTAVNRIGQESL' | |
| target_motifs: '415-430' # NCAM1_IG | |
| # target_sequence: 'TPSSPSIDQVEPYSSTAQVQFDEPEATGGVPILKYKAEWRAVGEEVWHSKWYDAKEASMEGIVTIVGLKPETTYAVRLAALNGKGLGEISAASEFKTQPVQGEPSAPKLEGQMGEDGNSIKVNLIKQDDGGSPIRHYLVRYRALSSEWKPEIRLPSGSDHVMLKSLDWNAEYEVYVVAENQQGKSKAAHFVFRTSAQP' | |
| # target_motifs: '98-108' # NCAM1_FN3 | |
| disable_ema: False | |
| generate_samples: True | |
| generated_samples_path: '' | |
| max_samples: 50_000 | |
| training: | |
| ema: 0.9999 | |
| antithetic_sampling: True | |
| importance_sampling: False | |
| sampling_eps: 1e-3 | |
| change_of_variables: False | |
| compute_loss_on_pad_tokens: True | |
| use_simple_ce_loss: False # Ignore ELBO; just use CE | |
| guidance: null # Can turn off with `training.guidance: null` | |
| # cond_dropout: 0.0 | |
| optim: | |
| weight_decay: 1e-4 | |
| lr: 1e-5 | |
| beta1: 0.9 | |
| beta2: 0.999 | |
| eps: 1e-8 | |
| trainer: | |
| _target_: lightning.Trainer | |
| accelerator: cuda | |
| num_nodes: 1 | |
| devices: 2 # ${device_count:} | |
| accumulate_grad_batches: 1 # ${div_up:${loader.global_batch_size}, ${eval:${trainer.devices} * ${loader.batch_size} * ${trainer.num_nodes}}} | |
| gradient_clip_val: 1.0 | |
| precision: 'bf16-mixed' | |
| num_sanity_val_steps: 2 | |
| # max_epochs: 10 | |
| max_steps: 1652000 | |
| log_every_n_steps: 100 | |
| limit_train_batches: 1.0 # train on full dataset, can be used to toggle quick run | |
| limit_val_batches: 1.0 # validate on full dataset, can be used to toggle quick run | |
| val_check_interval: 16520 # 2545 | |
| wandb: | |
| project: moPPIt-v2 | |
| job_type: model-training | |
| name: protein_medium_100epochs_lr1e-5_gradclip1_wd1e-4_dropout0.1 #epochs10_lr3e-4_bsz8_64-true_all-params_gradclip1_beta-one0.9_beta-two0.999 | |
| id: ${.name} | |
| hydra: | |
| run: | |
| dir: ./outputs/${wandb.name} # ./outputs/${data.train}/${now:%Y.%m.%d}/${now:%H%M%S} | |
| job: | |
| chdir: true | |
| checkpointing: | |
| # Use custom `save_dir` if, e.g., saving to S3 bucket, otherwise leave this parameter as is | |
| save_dir: ${cwd:} | |
| # Note: `checkpoints` path should correspond to `checkpoint_every_n_steps.dirpath` | |
| resume_from_ckpt: False | |
| resume_ckpt_path: ${.save_dir}/checkpoints/last.ckpt | |
| # target_sequence: 'MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGPDEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTAKSVTCTYSPALNKMFCQLAKTCPVQLWVDSTPPPGTRVRAMAIYKQSQHMTEVVRRCPHHERCSDSDGLAPPQHLIRVEGNLRVEYLDDRNTFRHSVVVPYEPPEVGSDCTTIHYNYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRNSFEVRVCACPGRDRRTEEENLRKKGEPHHELPPGSTKRALPNNTSSSPQPKKKPLDGEYFTLQIRGRERFEMFRELNEALELKDAQAGKEPGGSRAHSSHLKSKKGQSTSRHKKLMFKTEGPDSD' | |
| # target_motifs: '305-313' # P53_1 | |
| # target_motifs: '371-382' # P53_2 | |
| # target_motifs: '351-393' # P53_3 | |
| # target_motifs: '210-230' # P53_4 | |
| # target_sequence: 'MLQTKDLIWTLFFLGTAVSLQVDIVPSQGEISVGESKFFLCQVAGDAKDKDISWFSPNGEKLTPNQQRISVVWNDDSSSTLTIYNANIDDAGIYKCVVTGEDGSESEATVNVKIFQKLMFKNAPTPQEFREGEDAVIVCDVVSSLPPTIIWKHKGRDVILKKDVRFIVLSNNYLQIRGIKKTDEGTYRCEGRILARGEINFKDIQVIVNVPPTIQARQNIVNATANLGQSVTLVCDAEGFPEPTMSWTKDGEQIEQEEDDEKYIFSDDSSQLTIKKVDKNDEAEYICIAENKAGEQDATIHLKVFAKPKITYVENQTAMELEEQVTLTCEASGDPIPSITWRTSTRNISSEEKTLDGHMVVRSHARVSSLTLKSIQYTDAGEYICTASNTIGQDSQSMYLEVQYAPKLQGPVAVYTWEGNQVNITCEVFAYPSATISWFRDGQLLPSSNYSNIKIYNTPSASYLEVTPDSENDFGNYNCTAVNRIGQESLEFILVQADTPSSPSIDQVEPYSSTAQVQFDEPEATGGVPILKYKAEWRAVGEEVWHSKWYDAKEASMEGIVTIVGLKPETTYAVRLAALNGKGLGEISAASEFKTQPVHSPPP' | |
| # target_motifs: '28-39' # NCAM1_ECD |