vanishingradient commited on
Commit
deddf9f
·
verified ·
1 Parent(s): 82c54e4

Add kaggle/train_grpo.py

Browse files
Files changed (1) hide show
  1. kaggle/train_grpo.py +62 -1
kaggle/train_grpo.py CHANGED
@@ -48,6 +48,7 @@ def _ensure_package() -> None:
48
  token=token,
49
  allow_patterns=["src/deepagents_rl/**"],
50
  local_dir=str(root),
 
51
  )
52
  pkg_parent = root / "src"
53
  if str(pkg_parent) not in sys.path:
@@ -498,13 +499,45 @@ def make_eval_before_save_callback(
498
  if wandb.run is not None:
499
  wandb_run_id = wandb.run.id
500
  mean_r = sum(float(r["reward_total"]) for r in results) / max(len(results), 1)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
501
  wandb.log(
502
  {
503
  "eval/mean_reward_total": mean_r,
504
- "eval/mean_pass_frac": sum(float(r["pass_frac"]) for r in results)
 
 
505
  / max(len(results), 1),
506
  "eval/n_resolved": sum(1 for r in results if r.get("resolved")),
 
507
  "eval/checkpoint_step": step,
 
508
  },
509
  step=step,
510
  )
@@ -742,12 +775,40 @@ def main(cfg: Cfg | None = None) -> None:
742
  Path(output_dir, "ckpt_eval_step_0.json").write_text(
743
  json.dumps(base_summary | {"results": baseline}, indent=2), encoding="utf-8"
744
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
745
  wandb.log(
746
  {
747
  "eval/mean_pass_frac": base_summary["mean_pass_frac"],
748
  "eval/mean_reward_total": base_summary["mean_reward_total"],
749
  "eval/n_resolved": base_summary.get("n_resolved", 0),
 
 
750
  "eval/checkpoint_step": 0,
 
751
  "langfuse/ckpt_trace_id": base_summary.get("langfuse_trace_id"),
752
  },
753
  step=0,
 
48
  token=token,
49
  allow_patterns=["src/deepagents_rl/**"],
50
  local_dir=str(root),
51
+ force_download=True,
52
  )
53
  pkg_parent = root / "src"
54
  if str(pkg_parent) not in sys.path:
 
499
  if wandb.run is not None:
500
  wandb_run_id = wandb.run.id
501
  mean_r = sum(float(r["reward_total"]) for r in results) / max(len(results), 1)
502
+ mean_tools = sum(float(r.get("n_tool_calls") or 0) for r in results) / max(
503
+ len(results), 1
504
+ )
505
+ table = wandb.Table(
506
+ columns=[
507
+ "task_id",
508
+ "reward_total",
509
+ "pass_frac",
510
+ "resolved",
511
+ "resolution",
512
+ "n_tool_calls",
513
+ "tools_used",
514
+ "langfuse_trace_id",
515
+ "completion",
516
+ ]
517
+ )
518
+ for r in results:
519
+ table.add_data(
520
+ str(r.get("task_id") or ""),
521
+ float(r.get("reward_total") or 0),
522
+ float(r.get("pass_frac") or 0),
523
+ bool(r.get("resolved")),
524
+ str(r.get("resolution") or ""),
525
+ int(r.get("n_tool_calls") or 0),
526
+ ",".join(r.get("tools_used") or []),
527
+ str(r.get("langfuse_trace_id") or ""),
528
+ str(r.get("completion") or "")[:1500],
529
+ )
530
  wandb.log(
531
  {
532
  "eval/mean_reward_total": mean_r,
533
+ "eval/mean_pass_frac": sum(
534
+ float(r["pass_frac"]) for r in results
535
+ )
536
  / max(len(results), 1),
537
  "eval/n_resolved": sum(1 for r in results if r.get("resolved")),
538
+ "eval/mean_n_tool_calls": mean_tools,
539
  "eval/checkpoint_step": step,
540
+ "eval/episodes": table,
541
  },
542
  step=step,
543
  )
 
775
  Path(output_dir, "ckpt_eval_step_0.json").write_text(
776
  json.dumps(base_summary | {"results": baseline}, indent=2), encoding="utf-8"
777
  )
778
+ base_table = wandb.Table(
779
+ columns=[
780
+ "task_id",
781
+ "reward_total",
782
+ "pass_frac",
783
+ "resolved",
784
+ "resolution",
785
+ "n_tool_calls",
786
+ "tools_used",
787
+ "langfuse_trace_id",
788
+ "completion",
789
+ ]
790
+ )
791
+ for r in baseline:
792
+ base_table.add_data(
793
+ str(r.get("task_id") or ""),
794
+ float(r.get("reward_total") or 0),
795
+ float(r.get("pass_frac") or 0),
796
+ bool(r.get("resolved")),
797
+ str(r.get("resolution") or ""),
798
+ int(r.get("n_tool_calls") or 0),
799
+ ",".join(r.get("tools_used") or []),
800
+ str(r.get("langfuse_trace_id") or ""),
801
+ str(r.get("completion") or "")[:1500],
802
+ )
803
  wandb.log(
804
  {
805
  "eval/mean_pass_frac": base_summary["mean_pass_frac"],
806
  "eval/mean_reward_total": base_summary["mean_reward_total"],
807
  "eval/n_resolved": base_summary.get("n_resolved", 0),
808
+ "eval/mean_n_tool_calls": sum(float(r.get("n_tool_calls") or 0) for r in baseline)
809
+ / max(len(baseline), 1),
810
  "eval/checkpoint_step": 0,
811
+ "eval/episodes": base_table,
812
  "langfuse/ckpt_trace_id": base_summary.get("langfuse_trace_id"),
813
  },
814
  step=0,