Reproduction.Config(
        runtime=SingleProcess.Config(
            device='cuda',
            deterministic=False,
            float32_matmul_precision=None
        ),
        study_name='sudoku',
        experiment_name='exp008',
        doc='',
        base_dir=None,
        generator=SudokuTrainLoop(
        │   study_name='sudoku',
        │   experiment_name='exp008_generator',
        │   base_dir='/opt/scratch',
        │   working_dir=PosixPath('/opt/scratch/runs/sudoku/exp008_generator'),
        │   doc='',
        │   step=RoutedActTrainStep.Config(
        │   │   model=LatentRecursion.Config(
        │   │   │   vocab_size=11,
        │   │   │   puzzle_grid_shape=(81,),
        │   │   │   channels_in=512,
        │   │   │   num_layers=2,
        │   │   │   num_heads=8,
        │   │   │   slow_cycles=6,
        │   │   │   fast_cycles=9,
        │   │   │   q_head_outputs=2,
        │   │   │   num_puzzle_identifiers=1,
        │   │   │   puzzle_emb_len=16,
        │   │   │   puzzle_emb_ndim=512,
        │   │   │   puzzle_emb_batch_size=384,
        │   │   │   puzzle_emb_init_std=0.0,
        │   │   │   pos2d_grid_shape=(9, 9),
        │   │   │   pos2d_box_shape=(3, 3),
        │   │   │   pos2d_init_std=1.0,
        │   │   │   feedback_init_std=0.0,
        │   │   │   compile=True,
        │   │   │   dtype=torch.bfloat16,
        │   │   │   block=TransformerBlock.Config(
        │   │   │   │   channels_in=512,
        │   │   │   │   channels_out=512,
        │   │   │   │   attn=Attention.Config(
        │   │   │   │       channels_in=512,
        │   │   │   │       channels_out=512,
        │   │   │   │       num_heads=8,
        │   │   │   │       channels_head=64,
        │   │   │   │       num_heads_kv=8,
        │   │   │   │       bias=False,
        │   │   │   │       dropout=0.0,
        │   │   │   │       causal=False,
        │   │   │   │       rope=None,
        │   │   │   │       rotate=None,
        │   │   │   │       norm_qk=RMSNorm.Config(
        │   │   │   │           channels_in=64,
        │   │   │   │           channels_out=64,
        │   │   │   │           eps=1e-06,
        │   │   │   │           elementwise_affine=False,
        │   │   │   │           device=None,
        │   │   │   │           dtype=None
        │   │   │   │       ),
        │   │   │   │       share_qk_norm=True,
        │   │   │   │       norm_out=None,
        │   │   │   │       split_qkv_projection=False,
        │   │   │   │       proj_qkv=None,
        │   │   │   │       proj_out=None,
        │   │   │   │       init_weight=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │   │       depth_index=(),
        │   │   │   │       attn_kernel=SdpaFused.Config()
        │   │   │   │   ),
        │   │   │   │   ffn=SwiGLU.Config(
        │   │   │   │       channels_in=512,
        │   │   │   │       channels_out=512,
        │   │   │   │       channels_hidden=1_536,
        │   │   │   │       expansion=2.6666666666666665,
        │   │   │   │       round_to=256,
        │   │   │   │       gate=True,
        │   │   │   │       bias=False,
        │   │   │   │       split_gate_projection=False,
        │   │   │   │       norm=RMSNorm.Config(
        │   │   │   │           channels_in=1_536,
        │   │   │   │           channels_out=1_536,
        │   │   │   │           eps=1e-06,
        │   │   │   │           elementwise_affine=False,
        │   │   │   │           device=None,
        │   │   │   │           dtype=None
        │   │   │   │       ),
        │   │   │   │       act=priml.model.swiglu.silu,
        │   │   │   │       depth_index=(),
        │   │   │   │       init_weight=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │   │       init_weight_out=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │   │       up_proj=None,
        │   │   │   │       middle=None,
        │   │   │   │       down_proj=None,
        │   │   │   │       shard='colwise'
        │   │   │   │   ),
        │   │   │   │   norm1=RMSNorm.Config(
        │   │   │   │       channels_in=512,
        │   │   │   │       channels_out=512,
        │   │   │   │       eps=1e-05,
        │   │   │   │       elementwise_affine=False,
        │   │   │   │       device=None,
        │   │   │   │       dtype=None
        │   │   │   │   ),
        │   │   │   │   norm2=RMSNorm.Config(
        │   │   │   │       channels_in=512,
        │   │   │   │       channels_out=512,
        │   │   │   │       eps=1e-05,
        │   │   │   │       elementwise_affine=False,
        │   │   │   │       device=None,
        │   │   │   │       dtype=None
        │   │   │   │   ),
        │   │   │   │   prenorm=False,
        │   │   │   │   checkpoint=False,
        │   │   │   │   depth_index=()
        │   │   │   )
        │   │   ),
        │   │   optimizer=CompositeOptimizer.Config(
        │   │       optimizers=[
        │   │           PartialConfig(
        │   │               <class 'torch.optim.adamw.AdamW'>,
        │   │               lr=0.0001,
        │   │               betas=(0.9, 0.95),
        │   │               weight_decay=1.0,
        │   │               fused=False
        │   │           ),
        │   │           Muon.Config(
        │   │               lr=0.02,
        │   │               weight_decay=0.005,
        │   │               momentum=0.6,
        │   │               nesterov=True,
        │   │               ns_coefficients=(3.4445, -4.775, 2.0315),
        │   │               eps=1e-07,
        │   │               ns_steps=3,
        │   │               reference_numerics=False,
        │   │               adjust_lr_fn=priml.optimizers.muon.adjust_lr_original,
        │   │               momentum_update_fn=None,
        │   │               matrix_signum_fn=None,
        │   │               ensemble_dims=0
        │   │           ),
        │   │           Muon.Config(
        │   │               lr=0.02,
        │   │               weight_decay=0.005,
        │   │               momentum=0.6,
        │   │               nesterov=True,
        │   │               ns_coefficients=(3.4445, -4.775, 2.0315),
        │   │               eps=1e-07,
        │   │               ns_steps=3,
        │   │               reference_numerics=False,
        │   │               adjust_lr_fn=priml.optimizers.muon.adjust_lr_original,
        │   │               momentum_update_fn=None,
        │   │               matrix_signum_fn=None,
        │   │               ensemble_dims=1
        │   │           )
        │   │       ],
        │   │       select=[
        │   │           complement(excluding(Muon.eligible_tensor, 'embed', 'head')),
        │   │           with_ndim(excluding(Muon.eligible_tensor, 'embed', 'head'), 2),
        │   │           with_ndim(excluding(Muon.eligible_tensor, 'embed', 'head'), 3)
        │   │       ],
        │   │       require_total=True,
        │   │       drop_empty=True
        │   │   ),
        │   │   loss=SimpleLoss.Config(
        │   │       loss_fn=priml.loss.simple_loss.bce_with_logits,
        │   │       target_key='label',
        │   │       kwargs={'reduction': 'none'},
        │   │       channels_out=-1
        │   │   ),
        │   │   accumulate_grad_batches=1,
        │   │   drop_partial_accumulation_on_epoch_end=True,
        │   │   train_budget_steps=inf,
        │   │   train_budget_sec=inf,
        │   │   train_budget_epochs=inf,
        │   │   lr_schedule=PartialConfig(priml.math.schedules.constant),
        │   │   parallelism=NoParallel.Config(device=None),
        │   │   model_quantization=NoModelQuantization.Config(),
        │   │   activation_memoization=DefaultActivationStorage.Config(),
        │   │   compile=None,
        │   │   ema=EMA.Config(
        │   │       decay=0.999,
        │   │       update_after_step=0,
        │   │       update_every=1,
        │   │       track_buffers=False,
        │   │       shadow_kind='param_dict',
        │   │       warmup_seed=True,
        │   │       decay_schedule=priml.train.ema.constant_decay,
        │   │       select=priml.optimizers.parameter_filter.trainable,
        │   │       update_fn=None,
        │   │       buffer_update_fn=priml.train.ema.copy_buffers
        │   │   ),
        │   │   gradient_clip_norm=1.0,
        │   │   skip_step_on_nonfinite_grad=False,
        │   │   device_init='eager',
        │   │   dtype_autocast=torch.bfloat16,
        │   │   autocast_cache_enabled=False,
        │   │   sparse_optimizer=SignSGD.Config(
        │   │       lr=0.01,
        │   │       weight_decay=0.1,
        │   │       aggregate_distributed=True
        │   │   ),
        │   │   pool=AtomicPool.Config(
        │   │       batch_size=384,
        │   │       max_steps=32,
        │   │       halting=HaltTraining.Config(
        │   │           weight=0.05,
        │   │           exploration=SampledMinimum.Config(prob=0.1),
        │   │           seed=0
        │   │       ),
        │   │       feedback=FeedbackCarry.Config(
        │   │           givens=(2, 10),
        │   │           corruption=SlotScramble.Config(prob=0.5, cells=12, low=2, high=11),
        │   │           seed=0
        │   │       ),
        │   │       start=LearnedStart.Config(),
        │   │       grid_len=81,
        │   │       seq_len=97,
        │   │       channels_hidden=512,
        │   │       steps_dtype=torch.int64,
        │   │       dtype=None
        │   │   ),
        │   │   routing=SingleChain.Config(),
        │   │   token_loss=PartialConfig(
        │   │       priml.baselines.sudoku.losses.token_cross_entropy,
        │   │       label_smoothing=0.0
        │   │   ),
        │   │   cardinality=CardinalityLoss.Config(
        │   │       weight=0.3,
        │   │       warmup_steps=0,
        │   │       temperature=1.0,
        │   │       spec=SudokuSpec(
        │   │           grid_shape=(9, 9),
        │   │           box_shape=(3, 3),
        │   │           vocab_size=11
        │   │       )
        │   │   ),
        │   │   release=None,
        │   │   ignore_label_id=-100,
        │   │   total_train_steps=19_500,
        │   │   warmup_steps=0,
        │   │   lr_min_ratio=0.0,
        │   │   grad_clip_foreach=True,
        │   │   emulate_precision_casts=True,
        │   │   log_body_norms=True,
        │   │   norm_log_interval=100
        │   ),
        │   dataset=PuzzleDataset.Config(
        │       spec=SudokuSpec(grid_shape=(9, 9), box_shape=(3, 3), vocab_size=11),
        │       base_dir='/opt/scratch',
        │       working_dir=PosixPath('/opt/scratch/datasets/sudoku-extreme'),
        │       batch_size=384,
        │       eval_batch_size=None,
        │       device=None,
        │       augment=True,
        │       augment_digits_only=True,
        │       augment_seed=None,
        │       seed=0,
        │       num_instances=None,
        │       eval_num_instances=2_000,
        │       eval_instance_indices=(),
        │       max_samples=None
        │   ),
        │   metrics_train={},
        │   metrics_eval={'grid': GridAccuracy.Config(ignore_label_id=-100)},
        │   checkpointer=Checkpointer.Config(
        │       base_dir=PosixPath('/opt/scratch/runs/sudoku/exp008_generator'),
        │       working_dir=PosixPath('/opt/scratch/runs/sudoku/exp008_generator/checkpoints'),
        │       filename='step_{step:08d}.pt',
        │       save_every=1_000,
        │       keep_last_n=8,
        │       keep_every=10_000,
        │       storer=SyncLocalStateDictStorer.Config(),
        │       resume=True,
        │       resume_step=-1,
        │       allow_checkpoint_overwrite=False,
        │       best_metric='',
        │       best_mode='max'
        │   ),
        │   profiler=None,
        │   phase_timer=PhaseTimer.Config(
        │       enabled=False,
        │       torch_profile=False,
        │       base_dir=PosixPath('/opt/scratch/runs/sudoku/exp008_generator'),
        │       working_dir=PosixPath('/opt/scratch/runs/sudoku/exp008_generator/profiling'),
        │       heartbeat_interval_sec=20.0,
        │       fault_dump_interval_sec=40.0,
        │       cuda_events=False
        │   ),
        │   tracker=FileTracker.Config(
        │       base_dir=PosixPath('/opt/scratch/runs/sudoku/exp008_generator'),
        │       working_dir=PosixPath('/opt/scratch/runs/sudoku/exp008_generator/metrics.json'),
        │       capture_prefix='eval/'
        │   ),
        │   max_steps=19_500,
        │   max_epochs=inf,
        │   max_time=inf,
        │   max_time_kind='wall',
        │   max_eval_time=inf,
        │   eval_stop_on_time_limit=False,
        │   num_steps_eval=500,
        │   num_steps_log=10,
        │   early_train_log_steps=100,
        │   eval_every_epoch=False,
        │   eval_extras_every_eval=False,
        │   eval_warmup_batches=1,
        │   eval_only=False,
        │   restore_rng_state=True,
        │   seed=44,
        │   model_torch_seed=None,
        │   num_steps_garbage_collect=inf,
        │   mesh_dim_model_seed='pp',
        │   mesh_dim_data_seed='dp',
        │   runtime=SingleProcess.Config(
        │       device='cuda',
        │       deterministic=False,
        │       float32_matmul_precision=None
        │   )
        ),
        generator_name='exp008_generator',
        eval_every_steps=1_000,
        dev_screen_count=5_000,
        screen='committee',
        screen_gate_det_accuracy=0.98,
        harvest_source_checkpoint='/runs/sudoku/exp006/checkpoints/step_00019500.pt',
        harvest=Harvest.Config(
        │   harvest_source_checkpoint='',
        │   model=LatentRecursion.Config(
        │   │   vocab_size=11,
        │   │   puzzle_grid_shape=(81,),
        │   │   channels_in=512,
        │   │   num_layers=2,
        │   │   num_heads=8,
        │   │   slow_cycles=6,
        │   │   fast_cycles=9,
        │   │   q_head_outputs=2,
        │   │   num_puzzle_identifiers=1,
        │   │   puzzle_emb_len=16,
        │   │   puzzle_emb_ndim=512,
        │   │   puzzle_emb_batch_size=384,
        │   │   puzzle_emb_init_std=0.0,
        │   │   pos2d_grid_shape=(9, 9),
        │   │   pos2d_box_shape=(3, 3),
        │   │   pos2d_init_std=1.0,
        │   │   feedback_init_std=0.0,
        │   │   compile=True,
        │   │   dtype=torch.bfloat16,
        │   │   block=TransformerBlock.Config(
        │   │   │   channels_in=512,
        │   │   │   channels_out=512,
        │   │   │   attn=Attention.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       num_heads=8,
        │   │   │       channels_head=64,
        │   │   │       num_heads_kv=8,
        │   │   │       bias=False,
        │   │   │       dropout=0.0,
        │   │   │       causal=False,
        │   │   │       rope=None,
        │   │   │       rotate=None,
        │   │   │       norm_qk=RMSNorm.Config(
        │   │   │           channels_in=64,
        │   │   │           channels_out=64,
        │   │   │           eps=1e-06,
        │   │   │           elementwise_affine=False,
        │   │   │           device=None,
        │   │   │           dtype=None
        │   │   │       ),
        │   │   │       share_qk_norm=True,
        │   │   │       norm_out=None,
        │   │   │       split_qkv_projection=False,
        │   │   │       proj_qkv=None,
        │   │   │       proj_out=None,
        │   │   │       init_weight=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │       depth_index=(),
        │   │   │       attn_kernel=SdpaFused.Config()
        │   │   │   ),
        │   │   │   ffn=SwiGLU.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       channels_hidden=1_536,
        │   │   │       expansion=2.6666666666666665,
        │   │   │       round_to=256,
        │   │   │       gate=True,
        │   │   │       bias=False,
        │   │   │       split_gate_projection=False,
        │   │   │       norm=RMSNorm.Config(
        │   │   │           channels_in=1_536,
        │   │   │           channels_out=1_536,
        │   │   │           eps=1e-06,
        │   │   │           elementwise_affine=False,
        │   │   │           device=None,
        │   │   │           dtype=None
        │   │   │       ),
        │   │   │       act=priml.model.swiglu.silu,
        │   │   │       depth_index=(),
        │   │   │       init_weight=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │       init_weight_out=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │       up_proj=None,
        │   │   │       middle=None,
        │   │   │       down_proj=None,
        │   │   │       shard='colwise'
        │   │   │   ),
        │   │   │   norm1=RMSNorm.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       eps=1e-05,
        │   │   │       elementwise_affine=False,
        │   │   │       device=None,
        │   │   │       dtype=None
        │   │   │   ),
        │   │   │   norm2=RMSNorm.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       eps=1e-05,
        │   │   │       elementwise_affine=False,
        │   │   │       device=None,
        │   │   │       dtype=None
        │   │   │   ),
        │   │   │   prenorm=False,
        │   │   │   checkpoint=False,
        │   │   │   depth_index=()
        │   │   )
        │   ),
        │   base_dir=None,
        │   working_dir='/datasets/sudoku-extreme',
        │   experiment_name='harvest',
        │   run_dir='/runs/{experiment_name}/harvest',
        │   group_count=800,
        │   views_per_group=2,
        │   seed=0,
        │   max_act_steps=32,
        │   checkpoints=(1, 2, 4, 8, 16, 24, 32),
        │   search_depth=2,
        │   search_candidates=5,
        │   search_cell_attempts=2,
        │   search_budget=60,
        │   search_max_rows=2_048,
        │   random_corruption_strengths=(4, 12, 24, 40),
        │   random_starts_per_strength=2,
        │   dtype_autocast=torch.bfloat16,
        │   emulate_precision_casts=True,
        │   device='cuda'
        ),
        verifier=VerifierFit.Config(
            model=SudokuVerifier.Config(
                channels_hidden=128,
                num_layers=4,
                heads=4,
                attention_mask=priml.baselines.sudoku.verifier.group_attention_mask,
                position_index=priml.baselines.sudoku.verifier.cell_positions,
                vocab_size=11
            ),
            loss=VerifierLoss.Config(cell_weight=0.5, negative_weight=1.0),
            dataset=VerifierData.Config(
                base_dir=None,
                working_dir=PosixPath('/opt/scratch/datasets/sudoku-extreme'),
                harvest_dir=PosixPath('/opt/scratch/runs/harvest/harvest'),
                batch_size=512,
                steps_per_epoch=250,
                real_fraction=0.3,
                positive_fraction=0.3,
                swap_fraction=0.15,
                contradiction_fraction=0.0,
                hamming_choices=(1, 1, 1, 2, 2, 3, 4, 8, 16),
                swap_choices=(1, 1, 2, 3),
                train_group_end=700,
                device='cuda',
                seed=0
            ),
            experiment_name='verifier_s0',
            base_dir=None,
            run_dir='/runs/{experiment_name}',
            seed=0,
            max_steps=4_000,
            learning_rate=0.0003,
            learning_rate_min=3e-05,
            weight_decay=0.01,
            gradient_clip_norm=1.0,
            dtype_autocast=torch.bfloat16,
            device='cuda'
        ),
        verifier_names=('exp008_verifier_s0', 'exp008_verifier_s1', 'exp008_verifier_s2'),
        full_eval=SieveEval.Config(
        │   runtime=SingleProcess.Config(
        │       device='cuda',
        │       deterministic=False,
        │       float32_matmul_precision=None
        │   ),
        │   experiment_name='',
        │   doc='',
        │   base_dir=None,
        │   checkpoint_path='',
        │   verifier_checkpoints=(),
        │   model=LatentRecursion.Config(
        │   │   vocab_size=11,
        │   │   puzzle_grid_shape=(81,),
        │   │   channels_in=512,
        │   │   num_layers=2,
        │   │   num_heads=8,
        │   │   slow_cycles=6,
        │   │   fast_cycles=9,
        │   │   q_head_outputs=2,
        │   │   num_puzzle_identifiers=1,
        │   │   puzzle_emb_len=16,
        │   │   puzzle_emb_ndim=512,
        │   │   puzzle_emb_batch_size=384,
        │   │   puzzle_emb_init_std=0.0,
        │   │   pos2d_grid_shape=(9, 9),
        │   │   pos2d_box_shape=(3, 3),
        │   │   pos2d_init_std=1.0,
        │   │   feedback_init_std=0.0,
        │   │   compile=True,
        │   │   dtype=torch.bfloat16,
        │   │   block=TransformerBlock.Config(
        │   │   │   channels_in=512,
        │   │   │   channels_out=512,
        │   │   │   attn=Attention.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       num_heads=8,
        │   │   │       channels_head=64,
        │   │   │       num_heads_kv=8,
        │   │   │       bias=False,
        │   │   │       dropout=0.0,
        │   │   │       causal=False,
        │   │   │       rope=None,
        │   │   │       rotate=None,
        │   │   │       norm_qk=RMSNorm.Config(
        │   │   │           channels_in=64,
        │   │   │           channels_out=64,
        │   │   │           eps=1e-06,
        │   │   │           elementwise_affine=False,
        │   │   │           device=None,
        │   │   │           dtype=None
        │   │   │       ),
        │   │   │       share_qk_norm=True,
        │   │   │       norm_out=None,
        │   │   │       split_qkv_projection=False,
        │   │   │       proj_qkv=None,
        │   │   │       proj_out=None,
        │   │   │       init_weight=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │       depth_index=(),
        │   │   │       attn_kernel=SdpaFused.Config()
        │   │   │   ),
        │   │   │   ffn=SwiGLU.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       channels_hidden=1_536,
        │   │   │       expansion=2.6666666666666665,
        │   │   │       round_to=256,
        │   │   │       gate=True,
        │   │   │       bias=False,
        │   │   │       split_gate_projection=False,
        │   │   │       norm=RMSNorm.Config(
        │   │   │           channels_in=1_536,
        │   │   │           channels_out=1_536,
        │   │   │           eps=1e-06,
        │   │   │           elementwise_affine=False,
        │   │   │           device=None,
        │   │   │           dtype=None
        │   │   │       ),
        │   │   │       act=priml.model.swiglu.silu,
        │   │   │       depth_index=(),
        │   │   │       init_weight=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │       init_weight_out=priml.baselines.sudoku.latent_recursion.truncated_normal_corrected,
        │   │   │       up_proj=None,
        │   │   │       middle=None,
        │   │   │       down_proj=None,
        │   │   │       shard='colwise'
        │   │   │   ),
        │   │   │   norm1=RMSNorm.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       eps=1e-05,
        │   │   │       elementwise_affine=False,
        │   │   │       device=None,
        │   │   │       dtype=None
        │   │   │   ),
        │   │   │   norm2=RMSNorm.Config(
        │   │   │       channels_in=512,
        │   │   │       channels_out=512,
        │   │   │       eps=1e-05,
        │   │   │       elementwise_affine=False,
        │   │   │       device=None,
        │   │   │       dtype=None
        │   │   │   ),
        │   │   │   prenorm=False,
        │   │   │   checkpoint=False,
        │   │   │   depth_index=()
        │   │   )
        │   ),
        │   dataset=PuzzleDataset.Config(
        │       spec=SudokuSpec(grid_shape=(9, 9), box_shape=(3, 3), vocab_size=11),
        │       base_dir=None,
        │       working_dir=PosixPath('/opt/scratch/datasets/sudoku-extreme'),
        │       batch_size=192,
        │       eval_batch_size=None,
        │       device='cuda',
        │       augment=False,
        │       augment_digits_only=False,
        │       augment_seed=None,
        │       seed=None,
        │       num_instances=None,
        │       eval_num_instances=None,
        │       eval_instance_indices=(),
        │       max_samples=None
        │   ),
        │   search=HpsSearch.Config(
        │       max_act_steps=32,
        │       search_depth=3,
        │       search_candidates=5,
        │       search_cell_attempts=2,
        │       search_budget=512,
        │       search_max_rows=2_048,
        │       acceptance_threshold=7.875,
        │       root_acceptance_threshold=None,
        │       continue_threshold=0.0,
        │       early_exit_at_q8=False,
        │       acceptance_checkpoints=(24, 28, 32),
        │       require_prediction_stability=False,
        │       dtype_autocast=torch.bfloat16
        │   ),
        │   views=(
        │       View(name='canonical', digit_permutation=(1, 2, 3, 4, 5, 6, 7, 8, 9), transpose=False, row_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8), col_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8)),
        │       View(name='shift1', digit_permutation=(2, 3, 4, 5, 6, 7, 8, 9, 1), transpose=False, row_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8), col_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8)),
        │       View(name='shift4', digit_permutation=(5, 6, 7, 8, 9, 1, 2, 3, 4), transpose=False, row_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8), col_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8)),
        │       View(name='reversal', digit_permutation=(9, 8, 7, 6, 5, 4, 3, 2, 1), transpose=False, row_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8), col_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8)),
        │       View(name='anti_transpose', digit_permutation=(1, 2, 3, 4, 5, 6, 7, 8, 9), transpose=True, row_permutation=(8, 7, 6, 5, 4, 3, 2, 1, 0), col_permutation=(8, 7, 6, 5, 4, 3, 2, 1, 0)),
        │       View(name='stack_rot_digit_shift2', digit_permutation=(3, 4, 5, 6, 7, 8, 9, 1, 2), transpose=False, row_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8), col_permutation=(6, 7, 8, 0, 1, 2, 3, 4, 5)),
        │       View(name='full_mix', digit_permutation=(7, 3, 9, 1, 8, 2, 4, 6, 5), transpose=True, row_permutation=(4, 5, 3, 8, 6, 7, 1, 2, 0), col_permutation=(5, 3, 4, 0, 1, 2, 7, 8, 6)),
        │       View(name='dg_shift1_rot180', digit_permutation=(2, 3, 4, 5, 6, 7, 8, 9, 1), transpose=False, row_permutation=(8, 7, 6, 5, 4, 3, 2, 1, 0), col_permutation=(8, 7, 6, 5, 4, 3, 2, 1, 0)),
        │       View(name='dg_shift3_pure', digit_permutation=(4, 5, 6, 7, 8, 9, 1, 2, 3), transpose=False, row_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8), col_permutation=(0, 1, 2, 3, 4, 5, 6, 7, 8))
        │   ),
        │   det_halt_threshold=2.0,
        │   tail_search=(7, 4, 3, 8_400),
        │   acceptor=VerifierAcceptor.Config(
        │       model=SudokuVerifier.Config(
        │           channels_hidden=128,
        │           num_layers=4,
        │           heads=4,
        │           attention_mask=priml.baselines.sudoku.verifier.group_attention_mask,
        │           position_index=priml.baselines.sudoku.verifier.cell_positions,
        │           vocab_size=11
        │       ),
        │       base_dir=None,
        │       checkpoint_paths=(),
        │       threshold=0.0,
        │       max_rows=8_192,
        │       device='cuda'
        │   ),
        │   evaluation_count=422_786,
        │   max_round_eval_seconds=43200.0,
        │   emulate_precision_casts=True,
        │   metrics_path='/runs/{experiment_name}/dumps/sieve_metrics.json',
        │   dump_path='/runs/{experiment_name}/dumps/sieve_dump.npz'
        ),
        wandb_project=None,
        metrics_path='/runs/{experiment_name}/metrics.json'
    )
