# Loss + optimizer + sampler — symmetric InfoNCE, AdamW, mutex sampler. TrainingConfig.loss_type = 'symmetric' TrainingConfig.tau_init = 0.07 TrainingConfig.tau_min = 0.01 TrainingConfig.tau_max = 0.1 TrainingConfig.learnable_temperature = True TrainingConfig.label_smoothing = 0.1 TrainingConfig.tau_final = 0.01 TrainingConfig.weight_q2g = 0.6 TrainingConfig.weight_g2q = 0.4 TrainingConfig.hard_mining_k = 0 TrainingConfig.neg_bank_size = 0 # WeightedInfoNCE-only (unused when loss_type='symmetric'). TrainingConfig.weighted_loss_k = 5.0 TrainingConfig.learning_rate = 1e-4 TrainingConfig.text_lr_factor = 0.1 TrainingConfig.weight_decay = 1e-4 TrainingConfig.grad_clip = 1.0 TrainingConfig.sampler_type = 'mutex' TrainingConfig.dss_warmup_epochs = 1 TrainingConfig.dss_reembed_every = 1 TrainingConfig.dss_knn_device = 'cuda' TrainingConfig.dss_use_lsh = False TrainingConfig.dss_lsh_num_tables = 8 TrainingConfig.dss_lsh_num_bits = 14 TrainingConfig.dss_cache_dir = None TrainingConfig.use_mutex_sampler = True