diff --git a/examples/advanced/laguna-xs-2.1/swe.toml b/examples/advanced/laguna-xs-2.1/swe.toml new file mode 100644 index 0000000000..a10be8014b --- /dev/null +++ b/examples/advanced/laguna-xs-2.1/swe.toml @@ -0,0 +1,159 @@ +# Laguna XS-2.1 on ScaleSWE with the standard bash harness and pass@1 +# evaluation on SWE-Bench Verified. + +max_steps = 1000 +seq_len = 131072 + +[env_vars] +TRITON_CACHE_DIR = "/tmp/.triton-cache" + +[slurm] +job_name = "laguna-xs21-swe" +partition = "all" +pre_run_command = 'timeout 120 prime sandbox delete --label "laguna-xs21-swe" -y || true' + +[deployment] +type = "multi_node" +num_train_nodes = 2 +num_infer_nodes = 1 +num_infer_replicas = 4 + +[wandb] +project = "laguna-xs21-swe" +name = "laguna-xs21-scaleswe-dep8" + +[weight_broadcast] +type = "nccl" +timeout = 3600 + +[ckpt] +interval = 25 +keep_last = 1 +resume_step = -1 + +[model] +name = "poolside/Laguna-XS-2.1" + +[trainer] +dist_timeout_seconds = 3600 +enable_router_replay = true + +[trainer.model] +impl = "custom" +attn = "flash_attention_3" +cp = 4 +cp_style = "ulysses" +fused_lm_head_token_chunk_size = 1024 +optim_cpu_offload = true + +[trainer.model.compile] + +[trainer.model.ac] + +[trainer.model.ac_offloading] +max_inflight_activations = 1 + +[trainer.ckpt] +skip_gather_master_weights = true +skip_optimizer = true + +[trainer.optim] +type = "muon" +lr = 1e-6 + +[orchestrator] +batch_size = 256 +group_size = 16 +max_off_policy_steps = 32 +max_inflight_episodes = 768 + +[orchestrator.algo] +type = "grpo" + +[orchestrator.algo.length_penalty] +type = "linear" +num_output_tokens_weight = 0.0 +num_input_tokens_weight = 0.1 +num_turns_weight = 0.1 + +[orchestrator.renderer] +name = "laguna-xs-2.1" +enable_thinking = true +thinking_retention = "all" + +[orchestrator.train.sampling] +temperature = 1.0 +max_completion_tokens = 32768 +extra_body = { top_k = 20, min_p = 0.0 } + +[[orchestrator.train.source]] +name = "scaleswe" + +[orchestrator.train.source.env.taskset] +id = "scaleswe-v1" + +[orchestrator.train.source.env.agent.harness] +id = "bash" + +[orchestrator.train.source.env.agent.runtime] +type = "prime" +vm = true +cpu = 1.0 +memory = 2.0 +disk = 5.0 +idle_timeout = "None" +labels = ["laguna-xs21-swe"] + +[orchestrator.prime_monitor] + +[orchestrator.eval] +interval = 20 +group_size = 1 + +[orchestrator.eval.sampling] +temperature = 1.0 +top_p = 1.0 +top_k = 20 +min_p = 0.0 +max_completion_tokens = 32768 + +[[orchestrator.eval.source]] +name = "swebench-verified" + +[orchestrator.eval.source.env.taskset] +id = "swebench-verified-v1" + +[orchestrator.eval.source.env.agent.harness] +id = "bash" + +[orchestrator.eval.source.env.agent.runtime] +type = "prime" +vm = true +cpu = 1.0 +memory = 2.0 +disk = 5.0 +idle_timeout = "None" +labels = ["laguna-xs21-swe"] + +[orchestrator.eval.source.env.agent.timeout] +rollout = 3600 + +[inference] +enable_expert_parallel = true +enable_return_routed_experts = true + +[inference.env_vars] +VLLM_CACHE_ROOT = "/tmp/.vllm-cache" +FLASHINFER_WORKSPACE_BASE = "/tmp/.flashinfer-cache" + +[inference.model] +max_model_len = 131072 +tool_call_parser = "poolside_v1" +reasoning_parser = "poolside_v1" + +[inference.parallel] +tp = 1 +dp = 8 + +[inference.vllm_extra] +default_chat_template_kwargs = { enable_thinking = true }