a12354 commited on
Commit
67b6bd0
·
verified ·
1 Parent(s): a3a3764

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. example/timerpo_trainer/run_anomseer.sh +63 -0
  2. example/timerpo_trainer/run_anomseer_rats.sh +73 -0
  3. example/timerpo_trainer/run_rats_2gpu.sh +263 -0
  4. logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_053549.log +417 -0
  5. logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_122910.log +1196 -0
  6. logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_154822.log +0 -0
  7. logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_smoke_fixed_20260615.log +635 -0
  8. logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_smoke_fixed_v2_20260615.log +803 -0
  9. logs/rats_eval_chunked_check.log +0 -0
  10. logs/rats_eval_full.log +569 -0
  11. logs/rats_eval_full2.log +0 -0
  12. logs/rats_eval_full2_metrics.json +18 -0
  13. logs/rats_train_lora_20260611_174333.log +0 -0
  14. multimodal_data_processing/anom.py +596 -0
  15. multimodal_data_processing/rats_uni.py +268 -0
  16. outputs/2026-06-09/15-29-24/.hydra/config.yaml +194 -0
  17. outputs/2026-06-09/15-29-24/.hydra/hydra.yaml +206 -0
  18. outputs/2026-06-09/15-29-24/.hydra/overrides.yaml +52 -0
  19. outputs/2026-06-09/15-29-24/main_ppo.log +0 -0
  20. outputs/2026-06-09/16-19-04/.hydra/config.yaml +194 -0
  21. outputs/2026-06-09/16-19-04/.hydra/hydra.yaml +206 -0
  22. outputs/2026-06-09/16-19-04/.hydra/overrides.yaml +52 -0
  23. outputs/2026-06-09/16-19-04/main_ppo.log +0 -0
  24. outputs/2026-06-09/16-56-49/.hydra/config.yaml +194 -0
  25. outputs/2026-06-09/16-56-49/.hydra/hydra.yaml +206 -0
  26. outputs/2026-06-09/16-56-49/.hydra/overrides.yaml +52 -0
  27. outputs/2026-06-09/16-56-49/main_ppo.log +0 -0
  28. outputs/2026-06-09/17-08-35/.hydra/config.yaml +194 -0
  29. outputs/2026-06-09/17-08-35/.hydra/hydra.yaml +206 -0
  30. outputs/2026-06-09/17-08-35/.hydra/overrides.yaml +52 -0
  31. outputs/2026-06-09/17-08-35/main_ppo.log +0 -0
  32. outputs/2026-06-09/17-25-05/.hydra/config.yaml +194 -0
  33. outputs/2026-06-09/17-25-05/.hydra/hydra.yaml +206 -0
  34. outputs/2026-06-09/17-25-05/.hydra/overrides.yaml +52 -0
  35. outputs/2026-06-09/17-25-05/main_ppo.log +0 -0
  36. outputs/2026-06-09/17-44-32/.hydra/config.yaml +194 -0
  37. outputs/2026-06-09/17-44-32/.hydra/hydra.yaml +207 -0
  38. outputs/2026-06-09/17-44-32/.hydra/overrides.yaml +53 -0
  39. outputs/2026-06-09/17-44-32/main_ppo.log +0 -0
  40. outputs/2026-06-09/18-11-50/.hydra/config.yaml +194 -0
  41. outputs/2026-06-09/18-11-50/.hydra/hydra.yaml +210 -0
  42. outputs/2026-06-09/18-11-50/.hydra/overrides.yaml +56 -0
  43. outputs/2026-06-09/18-20-25/.hydra/config.yaml +194 -0
  44. outputs/2026-06-09/18-20-25/.hydra/overrides.yaml +53 -0
  45. outputs/2026-06-09/18-33-56/.hydra/hydra.yaml +216 -0
  46. outputs/2026-06-15/11-17-58/.hydra/hydra.yaml +210 -0
  47. outputs/2026-06-15/11-17-58/main_ppo.log +0 -0
  48. outputs/2026-06-15/11-25-36/.hydra/config.yaml +194 -0
  49. outputs/2026-06-15/11-25-36/.hydra/overrides.yaml +56 -0
  50. outputs/2026-06-15/11-25-36/main_ppo.log +0 -0
example/timerpo_trainer/run_anomseer.sh ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ MODEL_PATH=Qwen/Qwen2.5-VL-3B-Instruct
4
+ # MODEL_PATH=Qwen/Qwen2.5-VL-7B-Instruct
5
+ EVAL=False
6
+
7
+ TRAIN_FILE=${TRAIN_FILE:-./data/anol_processed_mllm_data/train_full.parquet}
8
+ VAL_FILE=${VAL_FILE:-./data/anol_processed_mllm_data/test_full.parquet}
9
+
10
+ if [ "$EVAL" = "True" ]; then
11
+ VAL_ONLY=True
12
+ else
13
+ VAL_ONLY=False
14
+ fi
15
+
16
+ python3 -m verl.trainer.main_ppo \
17
+ algorithm.adv_estimator=grpo \
18
+ data.train_files=$TRAIN_FILE \
19
+ data.val_files=$VAL_FILE \
20
+ data.train_batch_size=128 \
21
+ data.max_prompt_length=1024 \
22
+ data.max_response_length=1024 \
23
+ data.filter_overlong_prompts=True \
24
+ data.truncation='error' \
25
+ data.image_key=images \
26
+ actor_rollout_ref.model.path=$MODEL_PATH \
27
+ actor_rollout_ref.actor.optim.lr=1e-6 \
28
+ actor_rollout_ref.model.use_remove_padding=True \
29
+ actor_rollout_ref.actor.ppo_mini_batch_size=128 \
30
+ actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=8 \
31
+ actor_rollout_ref.actor.use_kl_loss=True \
32
+ actor_rollout_ref.actor.kl_loss_coef=0.001 \
33
+ actor_rollout_ref.actor.kl_loss_type=low_var_kl \
34
+ actor_rollout_ref.model.enable_gradient_checkpointing=True \
35
+ actor_rollout_ref.actor.fsdp_config.param_offload=False \
36
+ actor_rollout_ref.actor.fsdp_config.optimizer_offload=False \
37
+ actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=16 \
38
+ actor_rollout_ref.rollout.tensor_model_parallel_size=2 \
39
+ actor_rollout_ref.rollout.name=vllm \
40
+ actor_rollout_ref.rollout.gpu_memory_utilization=0.6 \
41
+ actor_rollout_ref.rollout.enable_chunked_prefill=False \
42
+ actor_rollout_ref.rollout.enforce_eager=False \
43
+ actor_rollout_ref.rollout.free_cache_engine=False \
44
+ actor_rollout_ref.rollout.n=5 \
45
+ actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=16 \
46
+ actor_rollout_ref.ref.fsdp_config.param_offload=True \
47
+ algorithm.kl_ctrl.kl_coef=0.001 \
48
+ trainer.critic_warmup=0 \
49
+ trainer.logger=['console','wandb'] \
50
+ trainer.project_name='anomseer' \
51
+ trainer.experiment_name='anomseer_timerpo' \
52
+ trainer.n_gpus_per_node=4 \
53
+ trainer.nnodes=1 \
54
+ trainer.save_freq=500 \
55
+ trainer.test_freq=10 \
56
+ trainer.val_only=$VAL_ONLY \
57
+ trainer.val_before_train=True \
58
+ trainer.total_epochs=10 \
59
+ ts.use_sem_orth=True \
60
+ ts.adv_mix=0.3 \
61
+ ts.similarity_method=ot \
62
+ ts.ot_eps=0.08 \
63
+ ts.ot_n_iter=50 $@
example/timerpo_trainer/run_anomseer_rats.sh ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # AnomSeer (TimerPO) on the Time-RA RATs-Uni univariate dataset.
3
+ # Task: 15-class anomaly classification + reasoning (no interval localization).
4
+ #
5
+ # Prepare data first:
6
+ # python multimodal_data_processing/rats_uni.py \
7
+ # --json_path /path/to/RATs40K/RATs-Uni-TSImage_Reason.json \
8
+ # --out_dir ./data/rats_uni_processed
9
+ #
10
+ # Train: bash example/timerpo_trainer/run_anomseer_rats.sh
11
+ # Eval (val only): EVAL=True bash example/timerpo_trainer/run_anomseer_rats.sh
12
+
13
+ MODEL_PATH=${MODEL_PATH:-Qwen/Qwen2.5-VL-3B-Instruct}
14
+ # MODEL_PATH=Qwen/Qwen2.5-VL-7B-Instruct
15
+ EVAL=${EVAL:-False}
16
+
17
+ TRAIN_FILE=${TRAIN_FILE:-./data/rats_uni_processed/train_full.parquet}
18
+ VAL_FILE=${VAL_FILE:-./data/rats_uni_processed/test_full.parquet}
19
+
20
+ if [ "$EVAL" = "True" ]; then
21
+ VAL_ONLY=True
22
+ else
23
+ VAL_ONLY=False
24
+ fi
25
+
26
+ python3 -m verl.trainer.main_ppo \
27
+ algorithm.adv_estimator=grpo \
28
+ data.train_files=$TRAIN_FILE \
29
+ data.val_files=$VAL_FILE \
30
+ data.train_batch_size=128 \
31
+ data.max_prompt_length=1024 \
32
+ data.max_response_length=1024 \
33
+ data.filter_overlong_prompts=True \
34
+ data.truncation='error' \
35
+ data.image_key=images \
36
+ actor_rollout_ref.model.path=$MODEL_PATH \
37
+ actor_rollout_ref.actor.optim.lr=1e-6 \
38
+ actor_rollout_ref.model.use_remove_padding=True \
39
+ actor_rollout_ref.actor.ppo_mini_batch_size=128 \
40
+ actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=8 \
41
+ actor_rollout_ref.actor.use_kl_loss=True \
42
+ actor_rollout_ref.actor.kl_loss_coef=0.001 \
43
+ actor_rollout_ref.actor.kl_loss_type=low_var_kl \
44
+ actor_rollout_ref.model.enable_gradient_checkpointing=True \
45
+ actor_rollout_ref.actor.fsdp_config.param_offload=False \
46
+ actor_rollout_ref.actor.fsdp_config.optimizer_offload=False \
47
+ actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=16 \
48
+ actor_rollout_ref.rollout.tensor_model_parallel_size=2 \
49
+ actor_rollout_ref.rollout.name=vllm \
50
+ actor_rollout_ref.rollout.gpu_memory_utilization=0.6 \
51
+ actor_rollout_ref.rollout.enable_chunked_prefill=False \
52
+ actor_rollout_ref.rollout.enforce_eager=False \
53
+ actor_rollout_ref.rollout.free_cache_engine=False \
54
+ actor_rollout_ref.rollout.n=5 \
55
+ actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=16 \
56
+ actor_rollout_ref.ref.fsdp_config.param_offload=True \
57
+ algorithm.kl_ctrl.kl_coef=0.001 \
58
+ trainer.critic_warmup=0 \
59
+ trainer.logger=['console','wandb'] \
60
+ trainer.project_name='anomseer' \
61
+ trainer.experiment_name='anomseer_rats_uni' \
62
+ trainer.n_gpus_per_node=4 \
63
+ trainer.nnodes=1 \
64
+ trainer.save_freq=500 \
65
+ trainer.test_freq=10 \
66
+ trainer.val_only=$VAL_ONLY \
67
+ trainer.val_before_train=True \
68
+ trainer.total_epochs=10 \
69
+ ts.use_sem_orth=True \
70
+ ts.adv_mix=0.3 \
71
+ ts.similarity_method=ot \
72
+ ts.ot_eps=0.08 \
73
+ ts.ot_n_iter=50 $@
example/timerpo_trainer/run_rats_2gpu.sh ADDED
@@ -0,0 +1,263 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # =============================================================================
3
+ # AnomSeer / TimerPO on Time-RA RATs-Uni — 2-GPU train + eval launcher.
4
+ #
5
+ # Task : 15-class anomaly classification + reasoning (no localization).
6
+ # Tuning: LoRA fine-tuning (GRPO) by default.
7
+ #
8
+ # Modes (STAGE):
9
+ # train : train only (with periodic in-training validation) [default]
10
+ # eval : evaluate MODEL_PATH only (val_only)
11
+ # train_eval : train -> auto-merge latest checkpoint -> evaluate it
12
+ #
13
+ # Examples:
14
+ # bash example/timerpo_trainer/run_rats_2gpu.sh # train
15
+ # STAGE=eval MODEL_PATH=Qwen/Qwen2.5-VL-3B-Instruct \
16
+ # bash example/timerpo_trainer/run_rats_2gpu.sh # zero-shot eval
17
+ # STAGE=train_eval bash example/timerpo_trainer/run_rats_2gpu.sh # train then eval
18
+ # =============================================================================
19
+ set -euo pipefail
20
+
21
+ # ---- scratch on /dev/shm (NOT /tmp) ----------------------------------------
22
+ # The CIFS share (/mnt/share01) cannot host Ray's unix sockets, and the local root
23
+ # disk (/, where /tmp and ~/.cache live) is ~100% full. So Ray's runtime/spill and
24
+ # the torch/triton/vLLM/HF caches go to /dev/shm: local tmpfs, supports sockets,
25
+ # ~120 GB free. Persistent outputs (checkpoints, logs) still go under the project.
26
+ SCRATCH_ROOT="${SCRATCH_ROOT:-/dev/shm/anomseer}"
27
+ export RAY_TMPDIR="${RAY_TMPDIR:-${SCRATCH_ROOT}/ray}"
28
+ export TMPDIR="${TMPDIR:-${SCRATCH_ROOT}/tmp}"
29
+ export XDG_CACHE_HOME="${XDG_CACHE_HOME:-${SCRATCH_ROOT}/cache}"
30
+ export TORCHINDUCTOR_CACHE_DIR="${TORCHINDUCTOR_CACHE_DIR:-${SCRATCH_ROOT}/cache/torchinductor}"
31
+ export TRITON_CACHE_DIR="${TRITON_CACHE_DIR:-${SCRATCH_ROOT}/cache/triton}"
32
+ export VLLM_CACHE_ROOT="${VLLM_CACHE_ROOT:-${SCRATCH_ROOT}/cache/vllm}"
33
+ export HF_HOME="${HF_HOME:-${SCRATCH_ROOT}/cache/hf}"
34
+ mkdir -p "$RAY_TMPDIR" "$TMPDIR" "$XDG_CACHE_HOME" "$TORCHINDUCTOR_CACHE_DIR" \
35
+ "$TRITON_CACHE_DIR" "$VLLM_CACHE_ROOT" "$HF_HOME"
36
+
37
+ # ---- knobs (override via env) ----------------------------------------------
38
+ PYTHON_BIN="${PYTHON_BIN:-/home/suiqk/anaconda3/envs/scalerag-ts-v4/bin/python}"
39
+ MODEL_PATH=${MODEL_PATH:-/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct} # local 3B; set to the 7B path / HF id to switch
40
+ STAGE=${STAGE:-train} # train | eval | train_eval
41
+ N_GPUS=${N_GPUS:-2} # number of GPUs (this script targets 2)
42
+ # TP = rollout tensor-parallel size; must divide N_GPUS. Default 2 splits vLLM's model
43
+ # across both cards (safer on memory). Set TP=1 for data-parallel rollout (full replica
44
+ # per card, no cross-card TP comm — faster on these no-NVLink cards; fine for 3B on 48 GB).
45
+ TP=${TP:-2}
46
+ GPU_MEM_UTIL=${GPU_MEM_UTIL:-0.4} # vllm KV-cache fraction (lower if OOM)
47
+ TRAIN_BATCH=${TRAIN_BATCH:-16} # prompts fetched per training step (rollout batch)
48
+ MICRO_BSZ=${MICRO_BSZ:-2} # actor ppo micro batch per GPU (lower if OOM)
49
+ LOGP_MICRO_BSZ=${LOGP_MICRO_BSZ:-8} # log-prob micro batch per GPU
50
+ PARAM_OFFLOAD=${PARAM_OFFLOAD:-False} # set True to offload actor params (saves VRAM)
51
+ OPTIM_OFFLOAD=${OPTIM_OFFLOAD:-False} # set True to offload optimizer (saves VRAM)
52
+ MAX_RESPONSE_LENGTH=${MAX_RESPONSE_LENGTH:-384} # covers the expert explanations without runaway output
53
+ KL_COEF=${KL_COEF:-0.01} # resist reward-driven mode collapse
54
+ # remove-padding (rmpad) is a throughput optimization that monkey-patches Qwen2VL
55
+ # FlashAttention2 internals. Those classes were removed in transformers>=4.52, so it
56
+ # must stay False on this env (transformers 4.54.1). Set True only on transformers<=4.51.1.
57
+ USE_RMPAD=${USE_RMPAD:-False}
58
+ EPOCHS=${EPOCHS:-1}
59
+
60
+ # ---- LoRA (optional) -------------------------------------------------------
61
+ # LORA_RANK=16 (default) -> LoRA fine-tuning.
62
+ # LORA_RANK=0 -> full-parameter fine-tuning.
63
+ LORA_RANK=${LORA_RANK:-16}
64
+ LORA_ALPHA=${LORA_ALPHA:-16}
65
+ LORA_DROPOUT=${LORA_DROPOUT:-0.0}
66
+ # NOTE: PEFT 'all-linear' tries to wrap whole Qwen2_5_VLVisionBlock modules and errors on
67
+ # this VL model, so default to the explicit LLM (+vision MLP) projection names instead.
68
+ LORA_TARGET_MODULES=${LORA_TARGET_MODULES:-q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj}
69
+
70
+ # LoRA usually wants a larger LR than full fine-tuning; default accordingly (override with LR=).
71
+ if [ "$LORA_RANK" -gt 0 ]; then
72
+ LR=${LR:-1e-5}
73
+ else
74
+ LR=${LR:-1e-6}
75
+ fi
76
+ LOGGER=${LOGGER:-console} # 'console' or "console','wandb" (needs wandb login)
77
+
78
+ PROJECT=${PROJECT:-anomseer}
79
+ EXP=${EXP:-anomseer_rats_uni_2gpu}
80
+ CKPT_ROOT=${CKPT_ROOT:-checkpoints/${PROJECT}/${EXP}}
81
+
82
+ # Default trains on a random 1/4 subset (7566 samples) for faster runs; override with
83
+ # TRAIN_FILE=./data/rats_uni_processed/train_full.parquet for the full 30266.
84
+ TRAIN_FILE=${TRAIN_FILE:-./data/rats_uni_processed/train_quarter.parquet}
85
+ # verl sends the WHOLE val set to vLLM in one batch, so the full 6034-sample test set
86
+ # OOMs system RAM. Use a stratified 474-sample subset for in-training validation; for a
87
+ # final full-test eval pass VAL_FILE=./data/rats_uni_processed/test_full.parquet.
88
+ VAL_FILE=${VAL_FILE:-./data/rats_uni_processed/test_small.parquet}
89
+
90
+ # ---- core launcher ---------------------------------------------------------
91
+ # args: $1 = val_only (True/False) $2 = model path
92
+ run_verl () {
93
+ local VAL_ONLY="$1"; local MPATH="$2"
94
+ local ACTIVE_LORA_RANK="$LORA_RANK"
95
+ local RESUME_MODE="auto"
96
+ if [ "$VAL_ONLY" = "True" ]; then
97
+ # Evaluation consumes a complete HF model, including any already-merged adapter.
98
+ ACTIVE_LORA_RANK=0
99
+ RESUME_MODE="disable"
100
+ fi
101
+ "$PYTHON_BIN" -m verl.trainer.main_ppo \
102
+ algorithm.adv_estimator=grpo \
103
+ data.train_files="$TRAIN_FILE" \
104
+ data.val_files="$VAL_FILE" \
105
+ data.train_batch_size="$TRAIN_BATCH" \
106
+ data.max_prompt_length=1024 \
107
+ data.max_response_length="$MAX_RESPONSE_LENGTH" \
108
+ data.filter_overlong_prompts=True \
109
+ data.truncation='error' \
110
+ data.image_key=images \
111
+ actor_rollout_ref.model.path="$MPATH" \
112
+ actor_rollout_ref.model.lora_rank="$ACTIVE_LORA_RANK" \
113
+ actor_rollout_ref.model.lora_alpha="$LORA_ALPHA" \
114
+ actor_rollout_ref.model.lora_dropout="$LORA_DROPOUT" \
115
+ actor_rollout_ref.model.lora_target_modules="'$LORA_TARGET_MODULES'" \
116
+ actor_rollout_ref.actor.optim.lr="$LR" \
117
+ actor_rollout_ref.model.use_remove_padding="$USE_RMPAD" \
118
+ actor_rollout_ref.actor.ppo_mini_batch_size="$TRAIN_BATCH" \
119
+ actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu="$MICRO_BSZ" \
120
+ actor_rollout_ref.actor.use_kl_loss=True \
121
+ actor_rollout_ref.actor.kl_loss_coef="$KL_COEF" \
122
+ actor_rollout_ref.actor.kl_loss_type=low_var_kl \
123
+ actor_rollout_ref.model.enable_gradient_checkpointing=True \
124
+ actor_rollout_ref.actor.fsdp_config.param_offload="$PARAM_OFFLOAD" \
125
+ actor_rollout_ref.actor.fsdp_config.optimizer_offload="$OPTIM_OFFLOAD" \
126
+ actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu="$LOGP_MICRO_BSZ" \
127
+ actor_rollout_ref.rollout.tensor_model_parallel_size="$TP" \
128
+ actor_rollout_ref.rollout.name=vllm \
129
+ actor_rollout_ref.rollout.gpu_memory_utilization="$GPU_MEM_UTIL" \
130
+ actor_rollout_ref.rollout.stop='["</class>"]' \
131
+ actor_rollout_ref.rollout.include_stop_str_in_output=True \
132
+ actor_rollout_ref.rollout.enable_chunked_prefill=False \
133
+ actor_rollout_ref.rollout.enforce_eager=False \
134
+ actor_rollout_ref.rollout.free_cache_engine=False \
135
+ actor_rollout_ref.rollout.n=5 \
136
+ actor_rollout_ref.rollout.val_kwargs.do_sample=False \
137
+ actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu="$LOGP_MICRO_BSZ" \
138
+ actor_rollout_ref.ref.fsdp_config.param_offload=True \
139
+ algorithm.kl_ctrl.kl_coef="$KL_COEF" \
140
+ trainer.critic_warmup=0 \
141
+ trainer.logger="['${LOGGER}']" \
142
+ trainer.project_name="$PROJECT" \
143
+ trainer.experiment_name="$EXP" \
144
+ trainer.default_local_dir="$CKPT_ROOT" \
145
+ trainer.n_gpus_per_node="$N_GPUS" \
146
+ trainer.nnodes=1 \
147
+ trainer.save_freq=500 \
148
+ trainer.test_freq=10 \
149
+ trainer.val_only="$VAL_ONLY" \
150
+ trainer.val_before_train=True \
151
+ trainer.resume_mode="$RESUME_MODE" \
152
+ trainer.total_epochs="$EPOCHS" \
153
+ ts.use_sem_orth=True \
154
+ ts.adv_mix=0.3 \
155
+ ts.similarity_method=ot \
156
+ ts.ot_eps=0.08 \
157
+ ts.ot_n_iter=50 "${@:3}"
158
+ }
159
+
160
+ merge_latest_ckpt () {
161
+ local latest
162
+ latest=$(ls -d "${CKPT_ROOT}"/global_step_* 2>/dev/null | sort -t_ -k3 -n | tail -1 || true)
163
+ if [ -z "$latest" ]; then
164
+ echo "[ERROR] no checkpoint found under ${CKPT_ROOT}" >&2; exit 1
165
+ fi
166
+ if has_hf_weights "${latest}/actor/huggingface"; then
167
+ echo "[merge] reusing existing HF weights: ${latest}/actor/huggingface" >&2
168
+ echo "${latest}/actor/huggingface"
169
+ return
170
+ fi
171
+ echo "[merge] latest checkpoint: ${latest}/actor" >&2
172
+ "$PYTHON_BIN" scripts/model_merger.py \
173
+ --local_dir "${latest}/actor" \
174
+ --lora-alpha "$LORA_ALPHA" >&2
175
+ echo "${latest}/actor/huggingface" # only the path goes to stdout (captured by caller)
176
+ }
177
+
178
+ has_hf_weights () {
179
+ local path="$1"
180
+ [ -f "${path}/model.safetensors" ] ||
181
+ [ -f "${path}/model.safetensors.index.json" ] ||
182
+ [ -f "${path}/pytorch_model.bin" ] ||
183
+ [ -f "${path}/pytorch_model.bin.index.json" ]
184
+ }
185
+
186
+ prepare_eval_model () {
187
+ local model_path="$1"
188
+ if has_hf_weights "$model_path"; then
189
+ echo "$model_path"
190
+ return
191
+ fi
192
+
193
+ local actor_dir=""
194
+ if [ "$(basename "$model_path")" = "huggingface" ]; then
195
+ actor_dir="$(dirname "$model_path")"
196
+ elif [ -d "${model_path}/huggingface" ]; then
197
+ actor_dir="$model_path"
198
+ fi
199
+
200
+ if [ -z "$actor_dir" ] ||
201
+ ! find "$actor_dir" -maxdepth 1 -name 'model_world_size_*_rank_0.pt' -print -quit | grep -q .; then
202
+ echo "[ERROR] '${model_path}' has no HF model weights and is not a mergeable FSDP checkpoint." >&2
203
+ return 1
204
+ fi
205
+
206
+ echo "[merge] HF weights missing; merging checkpoint ${actor_dir}" >&2
207
+ "$PYTHON_BIN" scripts/model_merger.py \
208
+ --local_dir "$actor_dir" \
209
+ --lora-alpha "$LORA_ALPHA" >&2
210
+
211
+ model_path="${actor_dir}/huggingface"
212
+ if ! has_hf_weights "$model_path"; then
213
+ echo "[ERROR] merge completed without producing HF model weights under '${model_path}'." >&2
214
+ return 1
215
+ fi
216
+ echo "$model_path"
217
+ }
218
+
219
+ # ---- log file --------------------------------------------------------------
220
+ # Tee all output (terminal + file). Override path with LOG_FILE=, or LOG_DIR=.
221
+ LOG_DIR=${LOG_DIR:-/mnt/share01/sqk/AnomSeer/logs}
222
+ mkdir -p "$LOG_DIR"
223
+ LOG_FILE=${LOG_FILE:-${LOG_DIR}/rats_${STAGE}$([ "$LORA_RANK" -gt 0 ] && echo _lora)_$(date +%Y%m%d_%H%M%S).log}
224
+ exec > >(tee -a "$LOG_FILE") 2>&1
225
+ echo "[log] saving full output to: $LOG_FILE"
226
+
227
+ # ---- dispatch --------------------------------------------------------------
228
+ if [ "$LORA_RANK" -gt 0 ]; then
229
+ FT_MODE="LoRA (r=${LORA_RANK}, alpha=${LORA_ALPHA}, target=${LORA_TARGET_MODULES})"
230
+ else
231
+ FT_MODE="full-parameter fine-tuning"
232
+ fi
233
+ if [ "$TP" -le 1 ]; then PARALLEL="data-parallel (DP=${N_GPUS}, full replica per card)"; else PARALLEL="tensor-parallel (TP=${TP})"; fi
234
+ echo "[config] tuning=${FT_MODE} | lr=${LR} | gpus=${N_GPUS} | ${PARALLEL}"
235
+ echo "[config] model=${MODEL_PATH}"
236
+ echo "[config] python=${PYTHON_BIN} | stage=${STAGE}"
237
+ if [ "$LORA_RANK" -eq 0 ] && [ "$PARAM_OFFLOAD" != "True" ] && [[ "$MODEL_PATH" == *7[bB]* ]]; then
238
+ echo "[hint] full-parameter 7B on 2x48GB will likely OOM. Either:"
239
+ echo " (a) LoRA: LORA_RANK=16 bash $0"
240
+ echo " (b) offload: PARAM_OFFLOAD=True OPTIM_OFFLOAD=True bash $0"
241
+ fi
242
+
243
+ case "$STAGE" in
244
+ train)
245
+ echo "[stage] TRAIN (model=${MODEL_PATH}, gpus=${N_GPUS}, tp=${TP})"
246
+ run_verl False "$MODEL_PATH" "$@"
247
+ ;;
248
+ eval)
249
+ eval_model=$(prepare_eval_model "$MODEL_PATH")
250
+ echo "[stage] EVAL (model=${eval_model}, gpus=${N_GPUS}, tp=${TP}, lora_rank=0)"
251
+ run_verl True "$eval_model" "$@"
252
+ ;;
253
+ train_eval)
254
+ echo "[stage] TRAIN (model=${MODEL_PATH}, gpus=${N_GPUS}, tp=${TP})"
255
+ run_verl False "$MODEL_PATH"
256
+ merged=$(merge_latest_ckpt)
257
+ echo "[stage] EVAL (merged checkpoint=${merged})"
258
+ run_verl True "$merged" "$@"
259
+ ;;
260
+ *)
261
+ echo "[ERROR] unknown STAGE='$STAGE' (use train | eval | train_eval)" >&2; exit 1
262
+ ;;
263
+ esac
logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_053549.log ADDED
@@ -0,0 +1,417 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [log] saving full output to: /mnt/share01/sqk/AnomSeer/logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_053549.log
2
+ [config] tuning=LoRA (r=16, alpha=16, target=q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj) | lr=1e-4 | gpus=2 | tensor-parallel (TP=2)
3
+ [config] model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface
4
+ [config] python=/home/suiqk/anaconda3/envs/scalerag-ts-v4/bin/python | stage=eval
5
+ [stage] EVAL (model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface, gpus=2, tp=2)
6
+ 2026-06-15 05:35:59,961 INFO worker.py:2012 -- Started a local Ray instance.
7
+ /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py:2051: FutureWarning: Tip: In future versions of Ray, Ray will no longer override accelerator visible devices env var if num_gpus=0 or num_gpus=None (default). To enable this behavior and turn off this error message, set RAY_ACCEL_ENV_VAR_OVERRIDE_ON_ZERO=0
8
+ warnings.warn(
9
+ (TaskRunner pid=363397) {'actor_rollout_ref': {'actor': {'clip_ratio': 0.2,
10
+ (TaskRunner pid=363397) 'entropy_coeff': 0.001,
11
+ (TaskRunner pid=363397) 'fsdp_config': {'fsdp_size': -1,
12
+ (TaskRunner pid=363397) 'optimizer_offload': False,
13
+ (TaskRunner pid=363397) 'param_offload': False,
14
+ (TaskRunner pid=363397) 'wrap_policy': {'min_num_params': 0}},
15
+ (TaskRunner pid=363397) 'grad_clip': 1.0,
16
+ (TaskRunner pid=363397) 'kl_loss_coef': 0.001,
17
+ (TaskRunner pid=363397) 'kl_loss_type': 'low_var_kl',
18
+ (TaskRunner pid=363397) 'optim': {'lr': 0.0001,
19
+ (TaskRunner pid=363397) 'lr_warmup_steps': -1,
20
+ (TaskRunner pid=363397) 'lr_warmup_steps_ratio': 0.0,
21
+ (TaskRunner pid=363397) 'min_lr_ratio': None,
22
+ (TaskRunner pid=363397) 'total_training_steps': -1,
23
+ (TaskRunner pid=363397) 'warmup_style': 'constant'},
24
+ (TaskRunner pid=363397) 'ppo_epochs': 1,
25
+ (TaskRunner pid=363397) 'ppo_max_token_len_per_gpu': 16384,
26
+ (TaskRunner pid=363397) 'ppo_micro_batch_size': None,
27
+ (TaskRunner pid=363397) 'ppo_micro_batch_size_per_gpu': 2,
28
+ (TaskRunner pid=363397) 'ppo_mini_batch_size': 16,
29
+ (TaskRunner pid=363397) 'shuffle': False,
30
+ (TaskRunner pid=363397) 'strategy': 'fsdp',
31
+ (TaskRunner pid=363397) 'ulysses_sequence_parallel_size': 1,
32
+ (TaskRunner pid=363397) 'use_dynamic_bsz': False,
33
+ (TaskRunner pid=363397) 'use_kl_loss': True,
34
+ (TaskRunner pid=363397) 'use_torch_compile': True},
35
+ (TaskRunner pid=363397) 'hybrid_engine': True,
36
+ (TaskRunner pid=363397) 'model': {'enable_gradient_checkpointing': True,
37
+ (TaskRunner pid=363397) 'external_lib': None,
38
+ (TaskRunner pid=363397) 'lora_alpha': 16,
39
+ (TaskRunner pid=363397) 'lora_dropout': 0.0,
40
+ (TaskRunner pid=363397) 'lora_rank': 16,
41
+ (TaskRunner pid=363397) 'lora_target_modules': 'q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',
42
+ (TaskRunner pid=363397) 'override_config': {},
43
+ (TaskRunner pid=363397) 'path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
44
+ (TaskRunner pid=363397) 'use_remove_padding': False},
45
+ (TaskRunner pid=363397) 'ref': {'fsdp_config': {'param_offload': True,
46
+ (TaskRunner pid=363397) 'wrap_policy': {'min_num_params': 0}},
47
+ (TaskRunner pid=363397) 'log_prob_max_token_len_per_gpu': 16384,
48
+ (TaskRunner pid=363397) 'log_prob_micro_batch_size': None,
49
+ (TaskRunner pid=363397) 'log_prob_micro_batch_size_per_gpu': 8,
50
+ (TaskRunner pid=363397) 'log_prob_use_dynamic_bsz': False,
51
+ (TaskRunner pid=363397) 'ulysses_sequence_parallel_size': 1},
52
+ (TaskRunner pid=363397) 'rollout': {'disable_log_stats': True,
53
+ (TaskRunner pid=363397) 'do_sample': True,
54
+ (TaskRunner pid=363397) 'dtype': 'bfloat16',
55
+ (TaskRunner pid=363397) 'enable_chunked_prefill': False,
56
+ (TaskRunner pid=363397) 'enforce_eager': False,
57
+ (TaskRunner pid=363397) 'free_cache_engine': False,
58
+ (TaskRunner pid=363397) 'gpu_memory_utilization': 0.4,
59
+ (TaskRunner pid=363397) 'ignore_eos': False,
60
+ (TaskRunner pid=363397) 'load_format': 'dummy_dtensor',
61
+ (TaskRunner pid=363397) 'log_prob_max_token_len_per_gpu': 16384,
62
+ (TaskRunner pid=363397) 'log_prob_micro_batch_size': None,
63
+ (TaskRunner pid=363397) 'log_prob_micro_batch_size_per_gpu': 8,
64
+ (TaskRunner pid=363397) 'log_prob_use_dynamic_bsz': False,
65
+ (TaskRunner pid=363397) 'max_model_len': None,
66
+ (TaskRunner pid=363397) 'max_num_batched_tokens': 8192,
67
+ (TaskRunner pid=363397) 'max_num_seqs': 1024,
68
+ (TaskRunner pid=363397) 'n': 5,
69
+ (TaskRunner pid=363397) 'name': 'vllm',
70
+ (TaskRunner pid=363397) 'prompt_length': 1024,
71
+ (TaskRunner pid=363397) 'response_length': 1024,
72
+ (TaskRunner pid=363397) 'temperature': 1.0,
73
+ (TaskRunner pid=363397) 'tensor_model_parallel_size': 2,
74
+ (TaskRunner pid=363397) 'top_k': -1,
75
+ (TaskRunner pid=363397) 'top_p': 1,
76
+ (TaskRunner pid=363397) 'use_fire_sampling': False,
77
+ (TaskRunner pid=363397) 'val_kwargs': {'do_sample': False,
78
+ (TaskRunner pid=363397) 'n': 1,
79
+ (TaskRunner pid=363397) 'temperature': 0.4,
80
+ (TaskRunner pid=363397) 'top_k': -1,
81
+ (TaskRunner pid=363397) 'top_p': 1.0}}},
82
+ (TaskRunner pid=363397) 'algorithm': {'adv_estimator': 'grpo',
83
+ (TaskRunner pid=363397) 'gamma': 1.0,
84
+ (TaskRunner pid=363397) 'kl_ctrl': {'kl_coef': 0.001, 'type': 'fixed'},
85
+ (TaskRunner pid=363397) 'kl_penalty': 'kl',
86
+ (TaskRunner pid=363397) 'lam': 1.0},
87
+ (TaskRunner pid=363397) 'critic': {'cliprange_value': 0.5,
88
+ (TaskRunner pid=363397) 'forward_max_token_len_per_gpu': 32768,
89
+ (TaskRunner pid=363397) 'forward_micro_batch_size': None,
90
+ (TaskRunner pid=363397) 'forward_micro_batch_size_per_gpu': None,
91
+ (TaskRunner pid=363397) 'grad_clip': 1.0,
92
+ (TaskRunner pid=363397) 'model': {'enable_gradient_checkpointing': True,
93
+ (TaskRunner pid=363397) 'external_lib': None,
94
+ (TaskRunner pid=363397) 'fsdp_config': {'fsdp_size': -1,
95
+ (TaskRunner pid=363397) 'optimizer_offload': False,(TaskRunner pid=363397) DeprecationWarning: `ray.state.available_resources_per_node` is a private attribute and access will be removed in a future Ray version.
96
+
97
+ (TaskRunner pid=363397) 'param_offload': False,
98
+ (TaskRunner pid=363397) 'wrap_policy': {'min_num_params': 0}},
99
+ (TaskRunner pid=363397) 'override_config': {},
100
+ (TaskRunner pid=363397) 'path': '~/models/deepseek-llm-7b-chat',
101
+ (TaskRunner pid=363397) 'tokenizer_path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
102
+ (TaskRunner pid=363397) 'use_remove_padding': False},
103
+ (TaskRunner pid=363397) 'optim': {'lr': 1e-05,
104
+ (TaskRunner pid=363397) 'lr_warmup_steps_ratio': 0.0,
105
+ (TaskRunner pid=363397) 'min_lr_ratio': None,
106
+ (TaskRunner pid=363397) 'total_training_steps': -1,
107
+ (TaskRunner pid=363397) 'warmup_style': 'constant'},
108
+ (TaskRunner pid=363397) 'ppo_epochs': 1,
109
+ (TaskRunner pid=363397) 'ppo_max_token_len_per_gpu': 32768,
110
+ (TaskRunner pid=363397) 'ppo_micro_batch_size': None,
111
+ (TaskRunner pid=363397) 'ppo_micro_batch_size_per_gpu': None,
112
+ (TaskRunner pid=363397) 'ppo_mini_batch_size': 16,
113
+ (TaskRunner pid=363397) 'shuffle': False,
114
+ (TaskRunner pid=363397) 'strategy': 'fsdp',
115
+ (TaskRunner pid=363397) 'ulysses_sequence_parallel_size': 1,
116
+ (TaskRunner pid=363397) 'use_dynamic_bsz': False},
117
+ (TaskRunner pid=363397) 'custom_reward_function': {'name': 'compute_score', 'path': None},
118
+ (TaskRunner pid=363397) 'data': {'filter_overlong_prompts': True,
119
+ (TaskRunner pid=363397) 'image_key': 'images',
120
+ (TaskRunner pid=363397) 'max_prompt_length': 1024,
121
+ (TaskRunner pid=363397) 'max_response_length': 1024,
122
+ (TaskRunner pid=363397) 'prompt_key': 'prompt',
123
+ (TaskRunner pid=363397) 'return_raw_chat': False,
124
+ (TaskRunner pid=363397) 'return_raw_input_ids': False,
125
+ (TaskRunner pid=363397) 'shuffle': True,
126
+ (TaskRunner pid=363397) 'tokenizer': None,
127
+ (TaskRunner pid=363397) 'train_batch_size': 16,
128
+ (TaskRunner pid=363397) 'train_files': '/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_full.parquet',
129
+ (TaskRunner pid=363397) 'truncation': 'error',
130
+ (TaskRunner pid=363397) 'val_batch_size': 64,
131
+ (TaskRunner pid=363397) 'val_files': '/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/test_full.parquet'},
132
+ (TaskRunner pid=363397) 'reward_model': {'enable': False,
133
+ (TaskRunner pid=363397) 'forward_max_token_len_per_gpu': 32768,
134
+ (TaskRunner pid=363397) 'max_length': None,
135
+ (TaskRunner pid=363397) 'micro_batch_size': None,
136
+ (TaskRunner pid=363397) 'micro_batch_size_per_gpu': None,
137
+ (TaskRunner pid=363397) 'model': {'external_lib': None,
138
+ (TaskRunner pid=363397) 'fsdp_config': {'fsdp_size': -1,
139
+ (TaskRunner pid=363397) 'param_offload': False,
140
+ (TaskRunner pid=363397) 'wrap_policy': {'min_num_params': 0}},
141
+ (TaskRunner pid=363397) 'input_tokenizer': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
142
+ (TaskRunner pid=363397) 'path': '~/models/FsfairX-LLaMA3-RM-v0.1',
143
+ (TaskRunner pid=363397) 'use_remove_padding': False},
144
+ (TaskRunner pid=363397) 'reward_manager': 'naive',
145
+ (TaskRunner pid=363397) 'strategy': 'fsdp',
146
+ (TaskRunner pid=363397) 'ulysses_sequence_parallel_size': 1,
147
+ (TaskRunner pid=363397) 'use_dynamic_bsz': False},
148
+ (TaskRunner pid=363397) 'trainer': {'balance_batch': True,
149
+ (TaskRunner pid=363397) 'critic_warmup': 0,
150
+ (TaskRunner pid=363397) 'default_hdfs_dir': None,
151
+ (TaskRunner pid=363397) 'default_local_dir': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3',
152
+ (TaskRunner pid=363397) 'del_local_ckpt_after_load': False,
153
+ (TaskRunner pid=363397) 'experiment_name': 'anomseer_rats_uni_full_20260612_184427_exp3_full_eval',
154
+ (TaskRunner pid=363397) 'logger': ['console'],
155
+ (TaskRunner pid=363397) 'n_gpus_per_node': 2,
156
+ (TaskRunner pid=363397) 'nnodes': 1,
157
+ (TaskRunner pid=363397) 'project_name': 'anomseer',
158
+ (TaskRunner pid=363397) 'remove_previous_ckpt_in_save': False,
159
+ (TaskRunner pid=363397) 'resume_from_path': False,
160
+ (TaskRunner pid=363397) 'resume_mode': 'auto',
161
+ (TaskRunner pid=363397) 'save_freq': 500,
162
+ (TaskRunner pid=363397) 'test_freq': -1,
163
+ (TaskRunner pid=363397) 'total_epochs': 1,
164
+ (TaskRunner pid=363397) 'total_training_steps': None,
165
+ (TaskRunner pid=363397) 'val_before_train': True,
166
+ (TaskRunner pid=363397) 'val_generations_to_log_to_wandb': 0,
167
+ (TaskRunner pid=363397) 'val_only': True},
168
+ (TaskRunner pid=363397) 'ts': {'adv_mix': 0.3,
169
+ (TaskRunner pid=363397) 'clip_pooling': 'mean',
170
+ (TaskRunner pid=363397) 'clip_temperature': 1.0,
171
+ (TaskRunner pid=363397) 'ot_eps': 0.08,
172
+ (TaskRunner pid=363397) 'ot_n_iter': 50,
173
+ (TaskRunner pid=363397) 'similarity_method': 'ot',
174
+ (TaskRunner pid=363397) 'use_sem_orth': True}}
175
+ (TaskRunner pid=363397) reward_manager_name: anomts
176
+ (TaskRunner pid=363397) WARNING: val_batch_size is deprecated. Validation datasets are sent to inference engines as a whole batch, which will schedule the memory themselves.
177
+ (TaskRunner pid=363397) [validate_config] All configuration checks passed successfully!
178
+ (TaskRunner pid=363397) dataset len: 30266
179
+ (TaskRunner pid=363397) filter dataset len: 30266
180
+ (TaskRunner pid=363397) dataset len: 6034
181
+ (TaskRunner pid=363397) filter dataset len: 6034
182
+ (TaskRunner pid=363397) Size of train dataloader: 1891
183
+ (TaskRunner pid=363397) Total training steps: 1891
184
+ (WorkerDict pid=364993) Model config after override: Qwen2_5_VLConfig {
185
+ (WorkerDict pid=364993) "architectures": [
186
+ (WorkerDict pid=364993) "Qwen2_5_VLForConditionalGeneration"
187
+ (WorkerDict pid=364993) ],
188
+ (WorkerDict pid=364993) "attention_dropout": 0.0,
189
+ (WorkerDict pid=364993) "eos_token_id": 151645,
190
+ (WorkerDict pid=364993) "hidden_act": "silu",
191
+ (WorkerDict pid=364993) "hidden_size": 2048,
192
+ (WorkerDict pid=364993) "image_token_id": 151655,
193
+ (WorkerDict pid=364993) "initializer_range": 0.02,
194
+ (WorkerDict pid=364993) "intermediate_size": 11008,
195
+ (WorkerDict pid=364993) "max_position_embeddings": 128000,
196
+ (WorkerDict pid=364993) "max_window_layers": 70,
197
+ (WorkerDict pid=364993) "model_type": "qwen2_5_vl",
198
+ (WorkerDict pid=364993) "num_attention_heads": 16,
199
+ (WorkerDict pid=364993) "num_hidden_layers": 36,
200
+ (WorkerDict pid=364993) "num_key_value_heads": 2,
201
+ (WorkerDict pid=364993) "pad_token_id": 151643,
202
+ (WorkerDict pid=364993) "rms_norm_eps": 1e-06,
203
+ (WorkerDict pid=364993) "rope_scaling": {
204
+ (WorkerDict pid=364993) "mrope_section": [
205
+ (WorkerDict pid=364993) 16,
206
+ (WorkerDict pid=364993) 24,
207
+ (WorkerDict pid=364993) 24
208
+ (WorkerDict pid=364993) ],
209
+ (WorkerDict pid=364993) "rope_type": "default",
210
+ (WorkerDict pid=364993) "type": "default"
211
+ (WorkerDict pid=364993) },
212
+ (WorkerDict pid=364993) "rope_theta": 1000000.0,
213
+ (WorkerDict pid=364993) "sliding_window": 32768,
214
+ (WorkerDict pid=364993) "text_config": {
215
+ (WorkerDict pid=364993) "architectures": [
216
+ (WorkerDict pid=364993) "Qwen2_5_VLForConditionalGeneration"
217
+ (WorkerDict pid=364993) ],
218
+ (WorkerDict pid=364993) "attention_dropout": 0.0,
219
+ (WorkerDict pid=364993) "bos_token_id": 151643,
220
+ (WorkerDict pid=364993) "eos_token_id": 151645,
221
+ (WorkerDict pid=364993) "hidden_act": "silu",
222
+ (WorkerDict pid=364993) "hidden_size": 2048,
223
+ (WorkerDict pid=364993) "image_token_id": null,
224
+ (WorkerDict pid=364993) "initializer_range": 0.02,
225
+ (WorkerDict pid=364993) "intermediate_size": 11008,
226
+ (WorkerDict pid=364993) "layer_types": [
227
+ (WorkerDict pid=364993) "full_attention",
228
+ (WorkerDict pid=364993) "full_attention",
229
+ (WorkerDict pid=364993) "full_attention",
230
+ (WorkerDict pid=364993) "full_attention",
231
+ (WorkerDict pid=364993) "full_attention",
232
+ (WorkerDict pid=364993) "full_attention",
233
+ (WorkerDict pid=364993) "full_attention",
234
+ (WorkerDict pid=364993) "full_attention",
235
+ (WorkerDict pid=364993) "full_attention",
236
+ (WorkerDict pid=364993) "full_attention",
237
+ (WorkerDict pid=364993) "full_attention",
238
+ (WorkerDict pid=364993) "full_attention",
239
+ (WorkerDict pid=364993) "full_attention",
240
+ (WorkerDict pid=364993) "full_attention",
241
+ (WorkerDict pid=364993) "full_attention",
242
+ (WorkerDict pid=364993) "full_attention",
243
+ (WorkerDict pid=364993) "full_attention",
244
+ (WorkerDict pid=364993) "full_attention",
245
+ (WorkerDict pid=364993) "full_attention",
246
+ (WorkerDict pid=364993) "full_attention",
247
+ (WorkerDict pid=364993) "full_attention",
248
+ (WorkerDict pid=364993) "full_attention",
249
+ (WorkerDict pid=364993) "full_attention",
250
+ (WorkerDict pid=364993) "full_attention",
251
+ (WorkerDict pid=364993) "full_attention",
252
+ (WorkerDict pid=364993) "full_attention",
253
+ (WorkerDict pid=364993) "full_attention",
254
+ (WorkerDict pid=364993) "full_attention",
255
+ (WorkerDict pid=364993) "full_attention",
256
+ (WorkerDict pid=364993) "full_attention",
257
+ (WorkerDict pid=364993) "full_attention",
258
+ (WorkerDict pid=364993) "full_attention",
259
+ (WorkerDict pid=364993) "full_attention",
260
+ (WorkerDict pid=364993) "full_attention",
261
+ (WorkerDict pid=364993) "full_attention",
262
+ (WorkerDict pid=364993) "full_attention"
263
+ (WorkerDict pid=364993) ],
264
+ (WorkerDict pid=364993) "max_position_embeddings": 128000,
265
+ (WorkerDict pid=364993) "max_window_layers": 70,
266
+ (WorkerDict pid=364993) "model_type": "qwen2_5_vl_text",
267
+ (WorkerDict pid=364993) "num_attention_heads": 16,
268
+ (WorkerDict pid=364993) "num_hidden_layers": 36,
269
+ (WorkerDict pid=364993) "num_key_value_heads": 2,
270
+ (WorkerDict pid=364993) "rms_norm_eps": 1e-06,
271
+ (WorkerDict pid=364993) "rope_scaling": {
272
+ (WorkerDict pid=364993) "mrope_section": [
273
+ (WorkerDict pid=364993) 16,
274
+ (WorkerDict pid=364993) 24,
275
+ (WorkerDict pid=364993) 24
276
+ (WorkerDict pid=364993) ],
277
+ (WorkerDict pid=364993) "rope_type": "default",
278
+ (WorkerDict pid=364993) "type": "default"
279
+ (WorkerDict pid=364993) },
280
+ (WorkerDict pid=364993) "rope_theta": 1000000.0,
281
+ (WorkerDict pid=364993) "sliding_window": null,
282
+ (WorkerDict pid=364993) "tie_word_embeddings": true,
283
+ (WorkerDict pid=364993) "torch_dtype": "float32",
284
+ (WorkerDict pid=364993) "use_cache": true,
285
+ (WorkerDict pid=364993) "use_sliding_window": false,
286
+ (WorkerDict pid=364993) "video_token_id": null,
287
+ (WorkerDict pid=364993) "vision_end_token_id": 151653,
288
+ (WorkerDict pid=364993) "vision_start_token_id": 151652,
289
+ (WorkerDict pid=364993) "vision_token_id": 151654,
290
+ (WorkerDict pid=364993) "vocab_size": 151936
291
+ (WorkerDict pid=364993) },
292
+ (WorkerDict pid=364993) "torch_dtype": "float32",
293
+ (WorkerDict pid=364993) "transformers_version": "4.54.1",
294
+ (WorkerDict pid=364993) "use_cache": true,
295
+ (WorkerDict pid=364993) "use_sliding_window": false,
296
+ (WorkerDict pid=364993) "video_token_id": 151656,
297
+ (WorkerDict pid=364993) "vision_config": {
298
+ (WorkerDict pid=364993) "depth": 32,
299
+ (WorkerDict pid=364993) "fullatt_block_indexes": [
300
+ (WorkerDict pid=364993) 7,
301
+ (WorkerDict pid=364993) 15,
302
+ (WorkerDict pid=364993) 23,
303
+ (WorkerDict pid=364993) 31
304
+ (WorkerDict pid=364993) ],
305
+ (WorkerDict pid=364993) "hidden_act": "silu",
306
+ (WorkerDict pid=364993) "hidden_size": 1280,
307
+ (WorkerDict pid=364993) "in_channels": 3,
308
+ (WorkerDict pid=364993) "in_chans": 3,
309
+ (WorkerDict pid=364993) "initializer_range": 0.02,
310
+ (WorkerDict pid=364993) "intermediate_size": 3420,
311
+ (WorkerDict pid=364993) "model_type": "qwen2_5_vl",
312
+ (WorkerDict pid=364993) "num_heads": 16,
313
+ (WorkerDict pid=364993) "out_hidden_size": 2048,
314
+ (WorkerDict pid=364993) "patch_size": 14,
315
+ (WorkerDict pid=364993) "spatial_merge_size": 2,
316
+ (WorkerDict pid=364993) "spatial_patch_size": 14,
317
+ (WorkerDict pid=364993) "temporal_patch_size": 2,
318
+ (WorkerDict pid=364993) "tokens_per_second": 2,
319
+ (WorkerDict pid=364993) "torch_dtype": "float32",
320
+ (WorkerDict pid=364993) "window_size": 112
321
+ (WorkerDict pid=364993) },
322
+ (WorkerDict pid=364993) "vision_end_token_id": 151653,
323
+ (WorkerDict pid=364993) "vision_start_token_id": 151652,
324
+ (WorkerDict pid=364993) "vision_token_id": 151654,
325
+ (WorkerDict pid=364993) "vocab_size": 151936
326
+ (WorkerDict pid=364993) }
327
+ (WorkerDict pid=364993)
328
+ Error executing job with overrides: ['algorithm.adv_estimator=grpo', 'data.train_files=/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_full.parquet', 'data.val_files=/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/test_full.parquet', 'data.train_batch_size=16', 'data.max_prompt_length=1024', 'data.max_response_length=1024', 'data.filter_overlong_prompts=True', 'data.truncation=error', 'data.image_key=images', 'actor_rollout_ref.model.path=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface', 'actor_rollout_ref.model.lora_rank=16', 'actor_rollout_ref.model.lora_alpha=16', 'actor_rollout_ref.model.lora_dropout=0.0', "actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'", 'actor_rollout_ref.actor.optim.lr=1e-4', 'actor_rollout_ref.model.use_remove_padding=False', 'actor_rollout_ref.actor.ppo_mini_batch_size=16', 'actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2', 'actor_rollout_ref.actor.use_kl_loss=True', 'actor_rollout_ref.actor.kl_loss_coef=0.001', 'actor_rollout_ref.actor.kl_loss_type=low_var_kl', 'actor_rollout_ref.model.enable_gradient_checkpointing=True', 'actor_rollout_ref.actor.fsdp_config.param_offload=False', 'actor_rollout_ref.actor.fsdp_config.optimizer_offload=False', 'actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8', 'actor_rollout_ref.rollout.tensor_model_parallel_size=2', 'actor_rollout_ref.rollout.name=vllm', 'actor_rollout_ref.rollout.gpu_memory_utilization=0.4', 'actor_rollout_ref.rollout.enable_chunked_prefill=False', 'actor_rollout_ref.rollout.enforce_eager=False', 'actor_rollout_ref.rollout.free_cache_engine=False', 'actor_rollout_ref.rollout.n=5', 'actor_rollout_ref.rollout.val_kwargs.do_sample=False', 'actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8', 'actor_rollout_ref.ref.fsdp_config.param_offload=True', 'algorithm.kl_ctrl.kl_coef=0.001', 'trainer.critic_warmup=0', "trainer.logger=['console']", 'trainer.project_name=anomseer', 'trainer.experiment_name=anomseer_rats_uni_full_20260612_184427_exp3_full_eval', 'trainer.default_local_dir=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3', 'trainer.n_gpus_per_node=2', 'trainer.nnodes=1', 'trainer.save_freq=500', 'trainer.test_freq=10', 'trainer.val_only=True', 'trainer.val_before_train=True', 'trainer.total_epochs=1', 'ts.use_sem_orth=True', 'ts.adv_mix=0.3', 'ts.similarity_method=ot', 'ts.ot_eps=0.08', 'ts.ot_n_iter=50', 'data.val_batch_size=64', 'trainer.test_freq=-1', 'trainer.val_before_train=True']
329
+ (TaskRunner pid=363397) Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): ray::WorkerDict.ref_init_model() (pid=365521, ip=172.20.115.25, actor_id=69baeda02fb711b165f2623201000000, repr=<verl.single_controller.ray.base.WorkerDict object at 0x7e5ac98e7d90>)
330
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
331
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
332
+ (TaskRunner pid=363397) File "/mnt/share01/sqk/AnomSeer/verl/single_controller/ray/base.py", line 420, in func
333
+ (TaskRunner pid=363397) return getattr(self.worker_dict[key], name)(*args, **kwargs)
334
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
335
+ (TaskRunner pid=363397) File "/mnt/share01/sqk/AnomSeer/verl/single_controller/base/decorator.py", line 404, in inner
336
+ (TaskRunner pid=363397) return func(*args, **kwargs)
337
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^
338
+ (TaskRunner pid=363397) File "/mnt/share01/sqk/AnomSeer/verl/workers/fsdp_workers.py", line 466, in init_model
339
+ (TaskRunner pid=363397) self.ref_module_fsdp = self._build_model_optimizer(model_path=self.config.model.path,
340
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
341
+ (TaskRunner pid=363397) File "/mnt/share01/sqk/AnomSeer/verl/workers/fsdp_workers.py", line 217, in _build_model_optimizer
342
+ (TaskRunner pid=363397) actor_module = actor_module_class.from_pretrained(pretrained_model_name_or_path=local_path,
343
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
344
+ (TaskRunner pid=363397) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/models/auto/modeling_auto.py", line 2165, in from_pretrained
345
+ (TaskRunner pid=363397) return super().from_pretrained(pretrained_model_name_or_path, *model_args, **kwargs)
346
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
347
+ (TaskRunner pid=363397) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/models/auto/auto_factory.py", line 600, in from_pretrained
348
+ (TaskRunner pid=363397) return model_class.from_pretrained(
349
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
350
+ (TaskRunner pid=363397) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/modeling_utils.py", line 315, in _wrapper
351
+ (TaskRunner pid=363397) return func(*args, **kwargs)
352
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^
353
+ (TaskRunner pid=363397) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/modeling_utils.py", line 4854, in from_pretrained
354
+ (TaskRunner pid=363397) checkpoint_files, sharded_metadata = _get_resolved_checkpoint_files(
355
+ (TaskRunner pid=363397) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
356
+ (TaskRunner pid=363397) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/modeling_utils.py", line 1093, in _get_resolved_checkpoint_files
357
+ (TaskRunner pid=363397) raise OSError(
358
+ (TaskRunner pid=363397) OSError: Error no file named pytorch_model.bin, model.safetensors, tf_model.h5, model.ckpt.index or flax_model.msgpack found in directory /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface.
359
+ Traceback (most recent call last):
360
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/main_ppo.py", line 68, in main
361
+ ray.get(runner.run.remote(config))
362
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/auto_init_hook.py", line 22, in auto_init_wrapper
363
+ return fn(*args, **kwargs)
364
+ ^^^^^^^^^^^^^^^^^^^
365
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/client_mode_hook.py", line 107, in wrapper
366
+ return func(*args, **kwargs)
367
+ ^^^^^^^^^^^^^^^^^^^^^
368
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py", line 2980, in get
369
+ values, debugger_breakpoint = worker.get_objects(
370
+ ^^^^^^^^^^^^^^^^^^^
371
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py", line 1023, in get_objects
372
+ raise value.as_instanceof_cause()
373
+ ray.exceptions.RayTaskError(OSError): ray::TaskRunner.run() (pid=363397, ip=172.20.115.25, actor_id=eb96e7c0e8f2d425a19fb2e901000000, repr=<main_ppo.TaskRunner object at 0x77b72dd69590>)
374
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
375
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
376
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/main_ppo.py", line 172, in run
377
+ trainer.init_workers()
378
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/ppo/ray_trainer.py", line 2024, in init_workers
379
+ self.ref_policy_wg.init_model()
380
+ File "/mnt/share01/sqk/AnomSeer/verl/single_controller/ray/base.py", line 43, in func
381
+ output = ray.get(output)
382
+ ^^^^^^^^^^^^^^^
383
+ ^^^^^^^^^^^^^^^^^^^
384
+ ^^^^^^^^^^^^^^^^^^^^^
385
+ ^^^^^^^^^^^^^^^^^^^
386
+ ray.exceptions.RayTaskError(OSError): ray::WorkerDict.ref_init_model() (pid=364993, ip=172.20.115.25, actor_id=30e087db86b71d1893cef58101000000, repr=<verl.single_controller.ray.base.WorkerDict object at 0x73530b26be10>)
387
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
388
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
389
+ File "/mnt/share01/sqk/AnomSeer/verl/single_controller/ray/base.py", line 420, in func
390
+ return getattr(self.worker_dict[key], name)(*args, **kwargs)
391
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
392
+ File "/mnt/share01/sqk/AnomSeer/verl/single_controller/base/decorator.py", line 404, in inner
393
+ return func(*args, **kwargs)
394
+ ^^^^^^^^^^^^^^^^^^^^^
395
+ File "/mnt/share01/sqk/AnomSeer/verl/workers/fsdp_workers.py", line 466, in init_model
396
+ self.ref_module_fsdp = self._build_model_optimizer(model_path=self.config.model.path,
397
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
398
+ File "/mnt/share01/sqk/AnomSeer/verl/workers/fsdp_workers.py", line 217, in _build_model_optimizer
399
+ actor_module = actor_module_class.from_pretrained(pretrained_model_name_or_path=local_path,
400
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
401
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/models/auto/modeling_auto.py", line 2165, in from_pretrained
402
+ return super().from_pretrained(pretrained_model_name_or_path, *model_args, **kwargs)
403
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
404
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/models/auto/auto_factory.py", line 600, in from_pretrained
405
+ return model_class.from_pretrained(
406
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
407
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/modeling_utils.py", line 315, in _wrapper
408
+ return func(*args, **kwargs)
409
+ ^^^^^^^^^^^^^^^^^^^^^
410
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/modeling_utils.py", line 4854, in from_pretrained
411
+ checkpoint_files, sharded_metadata = _get_resolved_checkpoint_files(
412
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
413
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/transformers/modeling_utils.py", line 1093, in _get_resolved_checkpoint_files
414
+ raise OSError(
415
+ OSError: Error no file named pytorch_model.bin, model.safetensors, tf_model.h5, model.ckpt.index or flax_model.msgpack found in directory /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface.
416
+
417
+ Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_122910.log ADDED
@@ -0,0 +1,1196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [log] saving full output to: /mnt/share01/sqk/AnomSeer/logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_122910.log
2
+ [config] tuning=LoRA (r=16, alpha=16, target=q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj) | lr=1e-4 | gpus=2 | tensor-parallel (TP=2)
3
+ [config] model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface
4
+ [config] python=/home/suiqk/anaconda3/envs/scalerag-ts-v4/bin/python | stage=eval
5
+ [stage] EVAL (model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface, gpus=2, tp=2, lora_rank=0)
6
+ 2026-06-15 12:29:20,742 INFO worker.py:2012 -- Started a local Ray instance.
7
+ /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py:2051: FutureWarning: Tip: In future versions of Ray, Ray will no longer override accelerator visible devices env var if num_gpus=0 or num_gpus=None (default). To enable this behavior and turn off this error message, set RAY_ACCEL_ENV_VAR_OVERRIDE_ON_ZERO=0
8
+ warnings.warn(
9
+ (TaskRunner pid=1868415) {'actor_rollout_ref': {'actor': {'clip_ratio': 0.2,
10
+ (TaskRunner pid=1868415) 'entropy_coeff': 0.001,
11
+ (TaskRunner pid=1868415) 'fsdp_config': {'fsdp_size': -1,
12
+ (TaskRunner pid=1868415) 'optimizer_offload': False,
13
+ (TaskRunner pid=1868415) 'param_offload': False,
14
+ (TaskRunner pid=1868415) 'wrap_policy': {'min_num_params': 0}},
15
+ (TaskRunner pid=1868415) 'grad_clip': 1.0,
16
+ (TaskRunner pid=1868415) 'kl_loss_coef': 0.001,
17
+ (TaskRunner pid=1868415) 'kl_loss_type': 'low_var_kl',
18
+ (TaskRunner pid=1868415) 'optim': {'lr': 0.0001,
19
+ (TaskRunner pid=1868415) 'lr_warmup_steps': -1,
20
+ (TaskRunner pid=1868415) 'lr_warmup_steps_ratio': 0.0,
21
+ (TaskRunner pid=1868415) 'min_lr_ratio': None,
22
+ (TaskRunner pid=1868415) 'total_training_steps': -1,
23
+ (TaskRunner pid=1868415) 'warmup_style': 'constant'},
24
+ (TaskRunner pid=1868415) 'ppo_epochs': 1,
25
+ (TaskRunner pid=1868415) 'ppo_max_token_len_per_gpu': 16384,
26
+ (TaskRunner pid=1868415) 'ppo_micro_batch_size': None,
27
+ (TaskRunner pid=1868415) 'ppo_micro_batch_size_per_gpu': 2,
28
+ (TaskRunner pid=1868415) 'ppo_mini_batch_size': 16,
29
+ (TaskRunner pid=1868415) 'shuffle': False,
30
+ (TaskRunner pid=1868415) 'strategy': 'fsdp',
31
+ (TaskRunner pid=1868415) 'ulysses_sequence_parallel_size': 1,
32
+ (TaskRunner pid=1868415) 'use_dynamic_bsz': False,
33
+ (TaskRunner pid=1868415) 'use_kl_loss': True,
34
+ (TaskRunner pid=1868415) 'use_torch_compile': True},
35
+ (TaskRunner pid=1868415) 'hybrid_engine': True,
36
+ (TaskRunner pid=1868415) 'model': {'enable_gradient_checkpointing': True,
37
+ (TaskRunner pid=1868415) 'external_lib': None,
38
+ (TaskRunner pid=1868415) 'lora_alpha': 16,
39
+ (TaskRunner pid=1868415) 'lora_dropout': 0.0,
40
+ (TaskRunner pid=1868415) 'lora_rank': 0,
41
+ (TaskRunner pid=1868415) 'lora_target_modules': 'q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',
42
+ (TaskRunner pid=1868415) 'override_config': {},
43
+ (TaskRunner pid=1868415) 'path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
44
+ (TaskRunner pid=1868415) 'use_remove_padding': False},
45
+ (TaskRunner pid=1868415) 'ref': {'fsdp_config': {'param_offload': True,
46
+ (TaskRunner pid=1868415) 'wrap_policy': {'min_num_params': 0}},
47
+ (TaskRunner pid=1868415) 'log_prob_max_token_len_per_gpu': 16384,
48
+ (TaskRunner pid=1868415) 'log_prob_micro_batch_size': None,
49
+ (TaskRunner pid=1868415) 'log_prob_micro_batch_size_per_gpu': 8,
50
+ (TaskRunner pid=1868415) 'log_prob_use_dynamic_bsz': False,
51
+ (TaskRunner pid=1868415) 'ulysses_sequence_parallel_size': 1},
52
+ (TaskRunner pid=1868415) 'rollout': {'disable_log_stats': True,
53
+ (TaskRunner pid=1868415) 'do_sample': True,
54
+ (TaskRunner pid=1868415) 'dtype': 'bfloat16',
55
+ (TaskRunner pid=1868415) 'enable_chunked_prefill': False,
56
+ (TaskRunner pid=1868415) 'enforce_eager': False,
57
+ (TaskRunner pid=1868415) 'free_cache_engine': False,
58
+ (TaskRunner pid=1868415) 'gpu_memory_utilization': 0.4,
59
+ (TaskRunner pid=1868415) 'ignore_eos': False,
60
+ (TaskRunner pid=1868415) 'load_format': 'dummy_dtensor',
61
+ (TaskRunner pid=1868415) 'log_prob_max_token_len_per_gpu': 16384,
62
+ (TaskRunner pid=1868415) 'log_prob_micro_batch_size': None,
63
+ (TaskRunner pid=1868415) 'log_prob_micro_batch_size_per_gpu': 8,
64
+ (TaskRunner pid=1868415) 'log_prob_use_dynamic_bsz': False,
65
+ (TaskRunner pid=1868415) 'max_model_len': None,
66
+ (TaskRunner pid=1868415) 'max_num_batched_tokens': 8192,
67
+ (TaskRunner pid=1868415) 'max_num_seqs': 1024,
68
+ (TaskRunner pid=1868415) 'n': 5,
69
+ (TaskRunner pid=1868415) 'name': 'vllm',
70
+ (TaskRunner pid=1868415) 'prompt_length': 1024,
71
+ (TaskRunner pid=1868415) 'response_length': 1024,
72
+ (TaskRunner pid=1868415) 'temperature': 1.0,
73
+ (TaskRunner pid=1868415) 'tensor_model_parallel_size': 2,
74
+ (TaskRunner pid=1868415) 'top_k': -1,
75
+ (TaskRunner pid=1868415) 'top_p': 1,
76
+ (TaskRunner pid=1868415) 'use_fire_sampling': False,
77
+ (TaskRunner pid=1868415) 'val_kwargs': {'do_sample': False,
78
+ (TaskRunner pid=1868415) 'n': 1,
79
+ (TaskRunner pid=1868415) 'temperature': 0.4,
80
+ (TaskRunner pid=1868415) 'top_k': -1,
81
+ (TaskRunner pid=1868415) 'top_p': 1.0}}},
82
+ (TaskRunner pid=1868415) 'algorithm': {'adv_estimator': 'grpo',
83
+ (TaskRunner pid=1868415) 'gamma': 1.0,
84
+ (TaskRunner pid=1868415) 'kl_ctrl': {'kl_coef': 0.001, 'type': 'fixed'},
85
+ (TaskRunner pid=1868415) 'kl_penalty': 'kl',
86
+ (TaskRunner pid=1868415) 'lam': 1.0},
87
+ (TaskRunner pid=1868415) 'critic': {'cliprange_value': 0.5,
88
+ (TaskRunner pid=1868415) 'forward_max_token_len_per_gpu': 32768,
89
+ (TaskRunner pid=1868415) 'forward_micro_batch_size': None,
90
+ (TaskRunner pid=1868415) 'forward_micro_batch_size_per_gpu': None,
91
+ (TaskRunner pid=1868415) 'grad_clip': 1.0,
92
+ (TaskRunner pid=1868415) 'model': {'enable_gradient_checkpointing': True,
93
+ (TaskRunner pid=1868415) 'external_lib': None,
94
+ (TaskRunner pid=1868415) 'fsdp_config': {'fsdp_size': -1,(TaskRunner pid=1868415) DeprecationWarning: `ray.state.available_resources_per_node` is a private attribute and access will be removed in a future Ray version.
95
+
96
+ (TaskRunner pid=1868415) 'optimizer_offload': False,
97
+ (TaskRunner pid=1868415) 'param_offload': False,
98
+ (TaskRunner pid=1868415) 'wrap_policy': {'min_num_params': 0}},
99
+ (TaskRunner pid=1868415) 'override_config': {},
100
+ (TaskRunner pid=1868415) 'path': '~/models/deepseek-llm-7b-chat',
101
+ (TaskRunner pid=1868415) 'tokenizer_path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
102
+ (TaskRunner pid=1868415) 'use_remove_padding': False},
103
+ (TaskRunner pid=1868415) 'optim': {'lr': 1e-05,
104
+ (TaskRunner pid=1868415) 'lr_warmup_steps_ratio': 0.0,
105
+ (TaskRunner pid=1868415) 'min_lr_ratio': None,
106
+ (TaskRunner pid=1868415) 'total_training_steps': -1,
107
+ (TaskRunner pid=1868415) 'warmup_style': 'constant'},
108
+ (TaskRunner pid=1868415) 'ppo_epochs': 1,
109
+ (TaskRunner pid=1868415) 'ppo_max_token_len_per_gpu': 32768,
110
+ (TaskRunner pid=1868415) 'ppo_micro_batch_size': None,
111
+ (TaskRunner pid=1868415) 'ppo_micro_batch_size_per_gpu': None,
112
+ (TaskRunner pid=1868415) 'ppo_mini_batch_size': 16,
113
+ (TaskRunner pid=1868415) 'shuffle': False,
114
+ (TaskRunner pid=1868415) 'strategy': 'fsdp',
115
+ (TaskRunner pid=1868415) 'ulysses_sequence_parallel_size': 1,
116
+ (TaskRunner pid=1868415) 'use_dynamic_bsz': False},
117
+ (TaskRunner pid=1868415) 'custom_reward_function': {'name': 'compute_score', 'path': None},
118
+ (TaskRunner pid=1868415) 'data': {'filter_overlong_prompts': True,
119
+ (TaskRunner pid=1868415) 'image_key': 'images',
120
+ (TaskRunner pid=1868415) 'max_prompt_length': 1024,
121
+ (TaskRunner pid=1868415) 'max_response_length': 1024,
122
+ (TaskRunner pid=1868415) 'prompt_key': 'prompt',
123
+ (TaskRunner pid=1868415) 'return_raw_chat': False,
124
+ (TaskRunner pid=1868415) 'return_raw_input_ids': False,
125
+ (TaskRunner pid=1868415) 'shuffle': True,
126
+ (TaskRunner pid=1868415) 'tokenizer': None,
127
+ (TaskRunner pid=1868415) 'train_batch_size': 16,
128
+ (TaskRunner pid=1868415) 'train_files': '/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_full.parquet',
129
+ (TaskRunner pid=1868415) 'truncation': 'error',
130
+ (TaskRunner pid=1868415) 'val_batch_size': 64,
131
+ (TaskRunner pid=1868415) 'val_files': '/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/test_full.parquet'},
132
+ (TaskRunner pid=1868415) 'reward_model': {'enable': False,
133
+ (TaskRunner pid=1868415) 'forward_max_token_len_per_gpu': 32768,
134
+ (TaskRunner pid=1868415) 'max_length': None,
135
+ (TaskRunner pid=1868415) 'micro_batch_size': None,
136
+ (TaskRunner pid=1868415) 'micro_batch_size_per_gpu': None,
137
+ (TaskRunner pid=1868415) 'model': {'external_lib': None,
138
+ (TaskRunner pid=1868415) 'fsdp_config': {'fsdp_size': -1,
139
+ (TaskRunner pid=1868415) 'param_offload': False,
140
+ (TaskRunner pid=1868415) 'wrap_policy': {'min_num_params': 0}},
141
+ (TaskRunner pid=1868415) 'input_tokenizer': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
142
+ (TaskRunner pid=1868415) 'path': '~/models/FsfairX-LLaMA3-RM-v0.1',
143
+ (TaskRunner pid=1868415) 'use_remove_padding': False},
144
+ (TaskRunner pid=1868415) 'reward_manager': 'naive',
145
+ (TaskRunner pid=1868415) 'strategy': 'fsdp',
146
+ (TaskRunner pid=1868415) 'ulysses_sequence_parallel_size': 1,
147
+ (TaskRunner pid=1868415) 'use_dynamic_bsz': False},
148
+ (TaskRunner pid=1868415) 'trainer': {'balance_batch': True,
149
+ (TaskRunner pid=1868415) 'critic_warmup': 0,
150
+ (TaskRunner pid=1868415) 'default_hdfs_dir': None,
151
+ (TaskRunner pid=1868415) 'default_local_dir': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3',
152
+ (TaskRunner pid=1868415) 'del_local_ckpt_after_load': False,
153
+ (TaskRunner pid=1868415) 'experiment_name': 'anomseer_rats_uni_full_20260612_184427_exp3_full_eval',
154
+ (TaskRunner pid=1868415) 'logger': ['console'],
155
+ (TaskRunner pid=1868415) 'n_gpus_per_node': 2,
156
+ (TaskRunner pid=1868415) 'nnodes': 1,
157
+ (TaskRunner pid=1868415) 'project_name': 'anomseer',
158
+ (TaskRunner pid=1868415) 'remove_previous_ckpt_in_save': False,
159
+ (TaskRunner pid=1868415) 'resume_from_path': False,
160
+ (TaskRunner pid=1868415) 'resume_mode': 'disable',
161
+ (TaskRunner pid=1868415) 'save_freq': 500,
162
+ (TaskRunner pid=1868415) 'test_freq': -1,
163
+ (TaskRunner pid=1868415) 'total_epochs': 1,
164
+ (TaskRunner pid=1868415) 'total_training_steps': None,
165
+ (TaskRunner pid=1868415) 'val_before_train': True,
166
+ (TaskRunner pid=1868415) 'val_generations_to_log_to_wandb': 0,
167
+ (TaskRunner pid=1868415) 'val_only': True},
168
+ (TaskRunner pid=1868415) 'ts': {'adv_mix': 0.3,
169
+ (TaskRunner pid=1868415) 'clip_pooling': 'mean',
170
+ (TaskRunner pid=1868415) 'clip_temperature': 1.0,
171
+ (TaskRunner pid=1868415) 'ot_eps': 0.08,
172
+ (TaskRunner pid=1868415) 'ot_n_iter': 50,
173
+ (TaskRunner pid=1868415) 'similarity_method': 'ot',
174
+ (TaskRunner pid=1868415) 'use_sem_orth': True}}
175
+ (TaskRunner pid=1868415) reward_manager_name: anomts
176
+ (TaskRunner pid=1868415) WARNING: val_batch_size is deprecated. Validation datasets are sent to inference engines as a whole batch, which will schedule the memory themselves.
177
+ (TaskRunner pid=1868415) [validate_config] All configuration checks passed successfully!
178
+ (TaskRunner pid=1868415) dataset len: 30266
179
+ (TaskRunner pid=1868415) filter dataset len: 30266
180
+ (TaskRunner pid=1868415) dataset len: 6034
181
+ (TaskRunner pid=1868415) filter dataset len: 6034
182
+ (TaskRunner pid=1868415) Size of train dataloader: 1891
183
+ (TaskRunner pid=1868415) Total training steps: 1891
184
+ (WorkerDict pid=1875911) Model config after override: Qwen2_5_VLConfig {
185
+ (WorkerDict pid=1875911) "architectures": [
186
+ (WorkerDict pid=1875911) "Qwen2_5_VLForConditionalGeneration"
187
+ (WorkerDict pid=1875911) ],
188
+ (WorkerDict pid=1875911) "attention_dropout": 0.0,
189
+ (WorkerDict pid=1875911) "eos_token_id": 151645,
190
+ (WorkerDict pid=1875911) "hidden_act": "silu",
191
+ (WorkerDict pid=1875911) "hidden_size": 2048,
192
+ (WorkerDict pid=1875911) "image_token_id": 151655,
193
+ (WorkerDict pid=1875911) "initializer_range": 0.02,
194
+ (WorkerDict pid=1875911) "intermediate_size": 11008,
195
+ (WorkerDict pid=1875911) "max_position_embeddings": 128000,
196
+ (WorkerDict pid=1875911) "max_window_layers": 70,
197
+ (WorkerDict pid=1875911) "model_type": "qwen2_5_vl",
198
+ (WorkerDict pid=1875911) "num_attention_heads": 16,(WorkerDict pid=1875911)
199
+ (WorkerDict pid=1875911)
200
+ (WorkerDict pid=1877925)
201
+ (WorkerDict pid=1875911)
202
+ (WorkerDict pid=1877925)
203
+ (WorkerDict pid=1875911) [rank0]:[W615 12:30:45.599970048 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 0] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
204
+
205
+ (WorkerDict pid=1875911) "num_hidden_layers": 36,
206
+ (WorkerDict pid=1875911) "num_key_value_heads": 2,
207
+ (WorkerDict pid=1875911) "pad_token_id": 151643,
208
+ (WorkerDict pid=1875911) "rms_norm_eps": 1e-06,
209
+ (WorkerDict pid=1875911) "rope_scaling": {
210
+ (WorkerDict pid=1875911) "mrope_section": [
211
+ (WorkerDict pid=1875911) 16,
212
+ (WorkerDict pid=1875911) 24,
213
+ (WorkerDict pid=1875911) 24
214
+ (WorkerDict pid=1875911) ],
215
+ (WorkerDict pid=1875911) "rope_type": "default",
216
+ (WorkerDict pid=1875911) "type": "default"
217
+ (WorkerDict pid=1875911) },
218
+ (WorkerDict pid=1875911) "rope_theta": 1000000.0,
219
+ (WorkerDict pid=1875911) "sliding_window": 32768,
220
+ (WorkerDict pid=1875911) "text_config": {
221
+ (WorkerDict pid=1875911) "architectures": [
222
+ (WorkerDict pid=1875911) "Qwen2_5_VLForConditionalGeneration"
223
+ (WorkerDict pid=1875911) ],
224
+ (WorkerDict pid=1875911) "attention_dropout": 0.0,
225
+ (WorkerDict pid=1875911) "bos_token_id": 151643,
226
+ (WorkerDict pid=1875911) "eos_token_id": 151645,
227
+ (WorkerDict pid=1875911) "hidden_act": "silu",
228
+ (WorkerDict pid=1875911) "hidden_size": 2048,
229
+ (WorkerDict pid=1875911) "image_token_id": null,
230
+ (WorkerDict pid=1875911) "initializer_range": 0.02,
231
+ (WorkerDict pid=1875911) "intermediate_size": 11008,
232
+ (WorkerDict pid=1875911) "layer_types": [
233
+ (WorkerDict pid=1875911) "full_attention",
234
+ (WorkerDict pid=1875911) "full_attention",
235
+ (WorkerDict pid=1875911) "full_attention",
236
+ (WorkerDict pid=1875911) "full_attention",
237
+ (WorkerDict pid=1875911) "full_attention",
238
+ (WorkerDict pid=1875911) "full_attention",
239
+ (WorkerDict pid=1875911) "full_attention",
240
+ (WorkerDict pid=1875911) "full_attention",
241
+ (WorkerDict pid=1875911) "full_attention",
242
+ (WorkerDict pid=1875911) "full_attention",
243
+ (WorkerDict pid=1875911) "full_attention",
244
+ (WorkerDict pid=1875911) "full_attention",
245
+ (WorkerDict pid=1875911) "full_attention",
246
+ (WorkerDict pid=1875911) "full_attention",
247
+ (WorkerDict pid=1875911) "full_attention",
248
+ (WorkerDict pid=1875911) "full_attention",
249
+ (WorkerDict pid=1875911) "full_attention",
250
+ (WorkerDict pid=1875911) "full_attention",
251
+ (WorkerDict pid=1875911) "full_attention",
252
+ (WorkerDict pid=1875911) "full_attention",
253
+ (WorkerDict pid=1875911) "full_attention",
254
+ (WorkerDict pid=1875911) "full_attention",
255
+ (WorkerDict pid=1875911) "full_attention",
256
+ (WorkerDict pid=1875911) "full_attention",
257
+ (WorkerDict pid=1875911) "full_attention",
258
+ (WorkerDict pid=1875911) "full_attention",
259
+ (WorkerDict pid=1875911) "full_attention",
260
+ (WorkerDict pid=1875911) "full_attention",
261
+ (WorkerDict pid=1875911) "full_attention",
262
+ (WorkerDict pid=1875911) "full_attention",
263
+ (WorkerDict pid=1875911) "full_attention",
264
+ (WorkerDict pid=1875911) "full_attention",
265
+ (WorkerDict pid=1875911) "full_attention",
266
+ (WorkerDict pid=1875911) "full_attention",
267
+ (WorkerDict pid=1875911) "full_attention",
268
+ (WorkerDict pid=1875911) "full_attention"
269
+ (WorkerDict pid=1875911) ],
270
+ (WorkerDict pid=1875911) "max_position_embeddings": 128000,
271
+ (WorkerDict pid=1875911) "max_window_layers": 70,
272
+ (WorkerDict pid=1875911) "model_type": "qwen2_5_vl_text",
273
+ (WorkerDict pid=1875911) "num_attention_heads": 16,
274
+ (WorkerDict pid=1875911) "num_hidden_layers": 36,
275
+ (WorkerDict pid=1875911) "num_key_value_heads": 2,
276
+ (WorkerDict pid=1875911) "rms_norm_eps": 1e-06,
277
+ (WorkerDict pid=1875911) "rope_scaling": {
278
+ (WorkerDict pid=1875911) "mrope_section": [
279
+ (WorkerDict pid=1875911) 16,
280
+ (WorkerDict pid=1875911) 24,
281
+ (WorkerDict pid=1875911) 24
282
+ (WorkerDict pid=1875911) ],
283
+ (WorkerDict pid=1875911) "rope_type": "default",
284
+ (WorkerDict pid=1875911) "type": "default"
285
+ (WorkerDict pid=1875911) },
286
+ (WorkerDict pid=1875911) "rope_theta": 1000000.0,
287
+ (WorkerDict pid=1875911) "sliding_window": null,
288
+ (WorkerDict pid=1875911) "tie_word_embeddings": true,
289
+ (WorkerDict pid=1875911) "torch_dtype": "float32",
290
+ (WorkerDict pid=1875911) "use_cache": true,
291
+ (WorkerDict pid=1875911) "use_sliding_window": false,
292
+ (WorkerDict pid=1875911) "video_token_id": null,
293
+ (WorkerDict pid=1875911) "vision_end_token_id": 151653,
294
+ (WorkerDict pid=1875911) "vision_start_token_id": 151652,
295
+ (WorkerDict pid=1875911) "vision_token_id": 151654,
296
+ (WorkerDict pid=1875911) "vocab_size": 151936
297
+ (WorkerDict pid=1875911) },
298
+ (WorkerDict pid=1875911) "torch_dtype": "float32",
299
+ (WorkerDict pid=1875911) "transformers_version": "4.54.1",
300
+ (WorkerDict pid=1875911) "use_cache": true,
301
+ (WorkerDict pid=1875911) "use_sliding_window": false,
302
+ (WorkerDict pid=1875911) "video_token_id": 151656,
303
+ (WorkerDict pid=1875911) "vision_config": {
304
+ (WorkerDict pid=1875911) "depth": 32,
305
+ (WorkerDict pid=1875911) "fullatt_block_indexes": [
306
+ (WorkerDict pid=1875911) 7,
307
+ (WorkerDict pid=1875911) 15,
308
+ (WorkerDict pid=1875911) 23,
309
+ (WorkerDict pid=1875911) 31
310
+ (WorkerDict pid=1875911) ],
311
+ (WorkerDict pid=1875911) "hidden_act": "silu",
312
+ (WorkerDict pid=1875911) "hidden_size": 1280,
313
+ (WorkerDict pid=1875911) "in_channels": 3,
314
+ (WorkerDict pid=1875911) "in_chans": 3,
315
+ (WorkerDict pid=1875911) "initializer_range": 0.02,
316
+ (WorkerDict pid=1875911) "intermediate_size": 3420,
317
+ (WorkerDict pid=1875911) "model_type": "qwen2_5_vl",
318
+ (WorkerDict pid=1875911) "num_heads": 16,
319
+ (WorkerDict pid=1875911) "out_hidden_size": 2048,
320
+ (WorkerDict pid=1875911) "patch_size": 14,
321
+ (WorkerDict pid=1875911) "spatial_merge_size": 2,
322
+ (WorkerDict pid=1875911) "spatial_patch_size": 14,
323
+ (WorkerDict pid=1875911) "temporal_patch_size": 2,
324
+ (WorkerDict pid=1875911) "tokens_per_second": 2,
325
+ (WorkerDict pid=1875911) "torch_dtype": "float32",
326
+ (WorkerDict pid=1875911) "window_size": 112
327
+ (WorkerDict pid=1875911) },
328
+ (WorkerDict pid=1875911) "vision_end_token_id": 151653,
329
+ (WorkerDict pid=1875911) "vision_start_token_id": 151652,
330
+ (WorkerDict pid=1875911) "vision_token_id": 151654,
331
+ (WorkerDict pid=1875911) "vocab_size": 151936
332
+ (WorkerDict pid=1875911) }
333
+ (WorkerDict pid=1875911)
334
+ (WorkerDict pid=1875911) NCCL version 2.21.5+cuda12.4
335
+ (WorkerDict pid=1875911) Qwen2_5_VLForConditionalGeneration contains 3.75B parameters
336
+ (WorkerDict pid=1875911) wrap_policy: functools.partial(<function _or_policy at 0x75feda0d8680>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x75feda0d8540>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
337
+ (WorkerDict pid=1875911) Actor use_remove_padding=False
338
+ (WorkerDict pid=1877925) wrap_policy: functools.partial(<function _or_policy at 0x71cf4e4c8680>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x71cf4e4c8540>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
339
+ (WorkerDict pid=1875911) Model config after override: Qwen2_5_VLConfig {
340
+ (WorkerDict pid=1875911) "architectures": [
341
+ (WorkerDict pid=1875911) "Qwen2_5_VLForConditionalGeneration"
342
+ (WorkerDict pid=1875911) ],
343
+ (WorkerDict pid=1875911) "attention_dropout": 0.0,
344
+ (WorkerDict pid=1875911) "eos_token_id": 151645,
345
+ (WorkerDict pid=1875911) "hidden_act": "silu",
346
+ (WorkerDict pid=1875911) "hidden_size": 2048,
347
+ (WorkerDict pid=1875911) "image_token_id": 151655,
348
+ (WorkerDict pid=1875911) "initializer_range": 0.02,
349
+ (WorkerDict pid=1875911) "intermediate_size": 11008,
350
+ (WorkerDict pid=1875911) "max_position_embeddings": 128000,
351
+ (WorkerDict pid=1875911) "max_window_layers": 70,
352
+ (WorkerDict pid=1875911) "model_type": "qwen2_5_vl",
353
+ (WorkerDict pid=1875911) "num_attention_heads": 16,
354
+ (WorkerDict pid=1875911) "num_hidden_layers": 36,
355
+ (WorkerDict pid=1875911) "num_key_value_heads": 2,
356
+ (WorkerDict pid=1875911) "pad_token_id": 151643,
357
+ (WorkerDict pid=1875911) "rms_norm_eps": 1e-06,
358
+ (WorkerDict pid=1875911) "rope_scaling": {
359
+ (WorkerDict pid=1875911) "mrope_section": [
360
+ (WorkerDict pid=1875911) 16,
361
+ (WorkerDict pid=1875911) 24,
362
+ (WorkerDict pid=1875911) 24
363
+ (WorkerDict pid=1875911) ],
364
+ (WorkerDict pid=1875911) "rope_type": "default",
365
+ (WorkerDict pid=1875911) "type": "default"
366
+ (WorkerDict pid=1875911) },
367
+ (WorkerDict pid=1875911) "rope_theta": 1000000.0,
368
+ (WorkerDict pid=1875911) "sliding_window": 32768,
369
+ (WorkerDict pid=1875911) "text_config": {
370
+ (WorkerDict pid=1875911) "architectures": [
371
+ (WorkerDict pid=1875911) "Qwen2_5_VLForConditionalGeneration"
372
+ (WorkerDict pid=1875911) ],
373
+ (WorkerDict pid=1875911) "attention_dropout": 0.0,
374
+ (WorkerDict pid=1875911) "bos_token_id": 151643,
375
+ (WorkerDict pid=1875911) "eos_token_id": 151645,
376
+ (WorkerDict pid=1875911) "hidden_act": "silu",
377
+ (WorkerDict pid=1875911) "hidden_size": 2048,
378
+ (WorkerDict pid=1875911) "image_token_id": null,
379
+ (WorkerDict pid=1875911) "initializer_range": 0.02,
380
+ (WorkerDict pid=1875911) "intermediate_size": 11008,
381
+ (WorkerDict pid=1875911) "layer_types": [
382
+ (WorkerDict pid=1875911) "full_attention",
383
+ (WorkerDict pid=1875911) "full_attention",
384
+ (WorkerDict pid=1875911) "full_attention",
385
+ (WorkerDict pid=1875911) "full_attention",
386
+ (WorkerDict pid=1875911) "full_attention",
387
+ (WorkerDict pid=1875911) "full_attention",
388
+ (WorkerDict pid=1875911) "full_attention",
389
+ (WorkerDict pid=1875911) "full_attention",
390
+ (WorkerDict pid=1875911) "full_attention",
391
+ (WorkerDict pid=1875911) "full_attention",
392
+ (WorkerDict pid=1875911) "full_attention",
393
+ (WorkerDict pid=1875911) "full_attention",
394
+ (WorkerDict pid=1875911) "full_attention",
395
+ (WorkerDict pid=1875911) "full_attention",
396
+ (WorkerDict pid=1875911) "full_attention",
397
+ (WorkerDict pid=1875911) "full_attention",
398
+ (WorkerDict pid=1875911) "full_attention",
399
+ (WorkerDict pid=1875911) "full_attention",
400
+ (WorkerDict pid=1875911) "full_attention",
401
+ (WorkerDict pid=1875911) "full_attention",
402
+ (WorkerDict pid=1875911) "full_attention",
403
+ (WorkerDict pid=1875911) "full_attention",
404
+ (WorkerDict pid=1875911) "full_attention",
405
+ (WorkerDict pid=1875911) "full_attention",
406
+ (WorkerDict pid=1875911) "full_attention",
407
+ (WorkerDict pid=1875911) "full_attention",
408
+ (WorkerDict pid=1875911) "full_attention",
409
+ (WorkerDict pid=1875911) "full_attention",
410
+ (WorkerDict pid=1875911) "full_attention",
411
+ (WorkerDict pid=1875911) "full_attention",
412
+ (WorkerDict pid=1875911) "full_attention",
413
+ (WorkerDict pid=1875911) "full_attention",
414
+ (WorkerDict pid=1875911) "full_attention",
415
+ (WorkerDict pid=1875911) "full_attention",
416
+ (WorkerDict pid=1875911) "full_attention",
417
+ (WorkerDict pid=1875911) "full_attention"
418
+ (WorkerDict pid=1875911) ],
419
+ (WorkerDict pid=1875911) "max_position_embeddings": 128000,
420
+ (WorkerDict pid=1875911) "max_window_layers": 70,
421
+ (WorkerDict pid=1875911) "model_type": "qwen2_5_vl_text",
422
+ (WorkerDict pid=1875911) "num_attention_heads": 16,
423
+ (WorkerDict pid=1875911) "num_hidden_layers": 36,
424
+ (WorkerDict pid=1875911) "num_key_value_heads": 2,
425
+ (WorkerDict pid=1875911) "rms_norm_eps": 1e-06,
426
+ (WorkerDict pid=1875911) "rope_scaling": {
427
+ (WorkerDict pid=1875911) "mrope_section": [
428
+ (WorkerDict pid=1875911) 16,
429
+ (WorkerDict pid=1875911) 24,
430
+ (WorkerDict pid=1875911) 24
431
+ (WorkerDict pid=1875911) ],
432
+ (WorkerDict pid=1875911) "rope_type": "default",
433
+ (WorkerDict pid=1875911) "type": "default"
434
+ (WorkerDict pid=1875911) },
435
+ (WorkerDict pid=1875911) "rope_theta": 1000000.0,
436
+ (WorkerDict pid=1875911) "sliding_window": null,
437
+ (WorkerDict pid=1875911) "tie_word_embeddings": true,
438
+ (WorkerDict pid=1875911) "torch_dtype": "float32",
439
+ (WorkerDict pid=1875911) "use_cache": true,
440
+ (WorkerDict pid=1875911) "use_sliding_window": false,
441
+ (WorkerDict pid=1875911) "video_token_id": null,
442
+ (WorkerDict pid=1875911) "vision_end_token_id": 151653,
443
+ (WorkerDict pid=1875911) "vision_start_token_id": 151652,
444
+ (WorkerDict pid=1875911) "vision_token_id": 151654,
445
+ (WorkerDict pid=1875911) "vocab_size": 151936
446
+ (WorkerDict pid=1875911) },
447
+ (WorkerDict pid=1875911) "torch_dtype": "float32",
448
+ (WorkerDict pid=1875911) "transformers_version": "4.54.1",
449
+ (WorkerDict pid=1875911) "use_cache": true,
450
+ (WorkerDict pid=1875911) "use_sliding_window": false,
451
+ (WorkerDict pid=1875911) "video_token_id": 151656,
452
+ (WorkerDict pid=1875911) "vision_config": {
453
+ (WorkerDict pid=1875911) "depth": 32,
454
+ (WorkerDict pid=1875911) "fullatt_block_indexes": [
455
+ (WorkerDict pid=1875911) 7,
456
+ (WorkerDict pid=1875911) 15,
457
+ (WorkerDict pid=1875911) 23,
458
+ (WorkerDict pid=1875911) 31
459
+ (WorkerDict pid=1875911) ],
460
+ (WorkerDict pid=1875911) "hidden_act": "silu",
461
+ (WorkerDict pid=1875911) "hidden_size": 1280,
462
+ (WorkerDict pid=1875911) "in_channels": 3,
463
+ (WorkerDict pid=1875911) "in_chans": 3,
464
+ (WorkerDict pid=1875911) "initializer_range": 0.02,
465
+ (WorkerDict pid=1875911) "intermediate_size": 3420,
466
+ (WorkerDict pid=1875911) "model_type": "qwen2_5_vl",
467
+ (WorkerDict pid=1875911) "num_heads": 16,
468
+ (WorkerDict pid=1875911) "out_hidden_size": 2048,
469
+ (WorkerDict pid=1875911) "patch_size": 14,
470
+ (WorkerDict pid=1875911) "spatial_merge_size": 2,
471
+ (WorkerDict pid=1875911) "spatial_patch_size": 14,
472
+ (WorkerDict pid=1875911) "temporal_patch_size": 2,
473
+ (WorkerDict pid=1875911) "tokens_per_second": 2,
474
+ (WorkerDict pid=1875911) "torch_dtype": "float32",
475
+ (WorkerDict pid=1875911) "window_size": 112
476
+ (WorkerDict pid=1875911) },
477
+ (WorkerDict pid=1875911) "vision_end_token_id": 151653,
478
+ (WorkerDict pid=1875911) "vision_start_token_id": 151652,
479
+ (WorkerDict pid=1875911) "vision_token_id": 151654,(WorkerDict pid=1875911) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLForConditionalGeneration is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
480
+ (WorkerDict pid=1875911) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
481
+ (WorkerDict pid=1875911) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VisionTransformerPretrainedModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
482
+ (WorkerDict pid=1875911) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLTextModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
483
+ (WorkerDict pid=1877925)
484
+ (WorkerDict pid=1877925) [rank1]:[W615 12:30:45.595731994 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 1] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
485
+ (WorkerDict pid=1875911)
486
+ (WorkerDict pid=1875911)
487
+ (WorkerDict pid=1877925) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLTextModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)` [repeated 4x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/user-guides/configure-logging.html#log-deduplication for more options.)
488
+ (WorkerDict pid=1877925)
489
+ (WorkerDict pid=1875911)
490
+ (WorkerDict pid=1877925)
491
+ (WorkerDict pid=1875911)
492
+ (WorkerDict pid=1877925)
493
+ (WorkerDict pid=1875911)
494
+ (WorkerDict pid=1875911)
495
+ (WorkerDict pid=1875911)
496
+ (WorkerDict pid=1875911)
497
+ (WorkerDict pid=1875911) /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py:690: FutureWarning: FSDP.state_dict_type() and FSDP.set_state_dict_type() are being deprecated. Please use APIs, get_state_dict() and set_state_dict(), which can support different parallelisms, FSDP1, FSDP2, DDP. API doc: https://pytorch.org/docs/stable/distributed.checkpoint.html#torch.distributed.checkpoint.state_dict.get_state_dict .Tutorial: https://pytorch.org/tutorials/recipes/distributed_checkpoint_recipe.html .
498
+ (WorkerDict pid=1875911) warnings.warn(
499
+
500
+ (WorkerDict pid=1875911) "vocab_size": 151936
501
+ (WorkerDict pid=1875911) }
502
+ (WorkerDict pid=1875911)
503
+ (WorkerDict pid=1875911) Qwen2_5_VLForConditionalGeneration contains 3.75B parameters
504
+ (WorkerDict pid=1875911) wrap_policy: functools.partial(<function _or_policy at 0x75feda0d8680>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x75feda0d8540>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
505
+ (WorkerDict pid=1877925) Actor use_remove_padding=False
506
+ (WorkerDict pid=1875911) Total steps: 1891, num_warmup_steps: 0
507
+ (WorkerDict pid=1875911) Actor use_remove_padding=False
508
+ (WorkerDict pid=1875911) Before building vllm rollout, memory allocated (GB): 7.027174949645996, memory reserved (GB): 12.189453125
509
+ (WorkerDict pid=1875911) WARNING 06-15 12:33:19 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x75fad74a9210>
510
+ (WorkerDict pid=1877925) wrap_policy: functools.partial(<function _or_policy at 0x71cf4e4c8680>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x71cf4e4c8540>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
511
+ (WorkerDict pid=1877925) Total steps: 1891, num_warmup_steps: 0
512
+ (WorkerDict pid=1877925) Actor use_remove_padding=False
513
+ (WorkerDict pid=1875911) WARNING 06-15 12:33:24 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
514
+ (WorkerDict pid=1877925) WARNING 06-15 12:33:19 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x71cbd0b48850>
515
+ (WorkerDict pid=1875911) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
516
+ (WorkerDict pid=1875911) After building vllm rollout, memory allocated (GB): 13.633802890777588, memory reserved (GB): 15.04296875
517
+ (WorkerDict pid=1875911) After building sharding manager, memory allocated (GB): 13.633802890777588, memory reserved (GB): 15.04296875
518
+ (WorkerDict pid=1877925) WARNING 06-15 12:33:24 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
519
+ (TaskRunner pid=1868415) Using LocalLogger is deprecated. The constructor API will change
520
+ (TaskRunner pid=1868415) validation generation end
521
+ (WorkerDict pid=1877925) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
522
+ (TaskRunner pid=1868415) [prompt] <|im_start|>system
523
+ (TaskRunner pid=1868415) You are a helpful assistant.<|im_end|>
524
+ (TaskRunner pid=1868415) <|im_start|>user
525
+ (TaskRunner pid=1868415) <|vision_start|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|vision_end|>
526
+ (TaskRunner pid=1868415) You are an expert in univariate time-series anomaly detection. The figure shows a single-channel time series of length 128 from the "Healthcare-ECG" domain.
527
+ (TaskRunner pid=1868415)
528
+ (TaskRunner pid=1868415) Decide whether the series is normal or contains an anomaly. If it is anomalous, choose the single most appropriate anomaly type from the following 15 categories (format `id: name — description`):
529
+ (TaskRunner pid=1868415) 0: Normal Sequence — There are no abnormal situations in this time series.
530
+ (TaskRunner pid=1868415) 1: Point Anomaly — A single data point significantly deviates from the local or global pattern of the sequence.
531
+ (TaskRunner pid=1868415) 2: Periodic Change Anomaly — The original periodic pattern is disrupted, e.g. the period is broken or the amplitude becomes anomalous.
532
+ (TaskRunner pid=1868415) 3: Trend Change Anomaly — A sudden change in the long-term trend of the time series.
533
+ (TaskRunner pid=1868415) 4: Change Point Anomaly — Statistical properties (e.g. mean, variance) change abruptly at certain points.
534
+ (TaskRunner pid=1868415) 5: Distributional Change Anomaly — The statistical distribution of the time series changes significantly.
535
+ (TaskRunner pid=1868415) 6: Amplitude Anomaly — The amplitude of data points exceeds the normal upper and lower bounds.
536
+ (TaskRunner pid=1868415) 7: Pattern Change Anomaly — The pattern of the time series suddenly changes from one form to another.
537
+ (TaskRunner pid=1868415) 8: Sparse Anomaly — Isolated anomalous patterns occasionally appear in a long time series.
538
+ (TaskRunner pid=1868415) 9: Repeated Value Anomaly — Continuous or intermittent repeated values disrupt the normal fluctuation pattern.
539
+ (TaskRunner pid=1868415) 10: Sudden Flatline Anomaly — The time series suddenly becomes a flat line with no normal fluctuations.
540
+ (TaskRunner pid=1868415) 11: Drift Anomaly — The data gradually drifts away from the normal level.
541
+ (TaskRunner pid=1868415) 12: Sudden Spike Anomaly — The data suddenly spikes or drops within a short time and then returns to normal.
542
+ (TaskRunner pid=1868415) 13: Continuous Segment Anomaly — A continuous segment of data points deviates from the normal pattern.
543
+ (TaskRunner pid=1868415) 14: Nonlinear Pattern Anomaly — Nonlinear changes appear in the sequence, breaking the original linear rule.
544
+ (TaskRunner pid=1868415)
545
+ (TaskRunner pid=1868415) Reason step by step inside <think>...</think> based on the visual shape of the series, then output exactly one line with your final answer:
546
+ (TaskRunner pid=1868415) <class>one exact category name from the list above</class>
547
+ (TaskRunner pid=1868415) If the series is normal, use <class>Normal Sequence</class>.<|im_end|>
548
+ (TaskRunner pid=1868415) <|im_start|>assistant
549
+ (TaskRunner pid=1868415)
550
+ (TaskRunner pid=1868415) [response] <think></think>
551
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
552
+ (TaskRunner pid=1868415)
553
+ (TaskRunner pid=1868415) <think></think>
554
+ (TaskRunner pid=1868415)
555
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
556
+ (TaskRunner pid=1868415)
557
+ (TaskRunner pid=1868415) <think></think>
558
+ (TaskRunner pid=1868415)
559
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
560
+ (TaskRunner pid=1868415)
561
+ (TaskRunner pid=1868415) <think></think>
562
+ (TaskRunner pid=1868415)
563
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
564
+ (TaskRunner pid=1868415)
565
+ (TaskRunner pid=1868415) <think></think>
566
+ (TaskRunner pid=1868415)
567
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
568
+ (TaskRunner pid=1868415)
569
+ (TaskRunner pid=1868415) <think></think>
570
+ (TaskRunner pid=1868415)
571
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
572
+ (TaskRunner pid=1868415)
573
+ (TaskRunner pid=1868415) <think></think>
574
+ (TaskRunner pid=1868415)
575
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
576
+ (TaskRunner pid=1868415)
577
+ (TaskRunner pid=1868415) <think></think>
578
+ (TaskRunner pid=1868415)
579
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
580
+ (TaskRunner pid=1868415)
581
+ (TaskRunner pid=1868415) <think></think>
582
+ (TaskRunner pid=1868415)
583
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
584
+ (TaskRunner pid=1868415)
585
+ (TaskRunner pid=1868415) <think></think>
586
+ (TaskRunner pid=1868415)
587
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
588
+ (TaskRunner pid=1868415)
589
+ (TaskRunner pid=1868415) <think></think>
590
+ (TaskRunner pid=1868415)
591
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
592
+ (TaskRunner pid=1868415)
593
+ (TaskRunner pid=1868415) <think></think>
594
+ (TaskRunner pid=1868415)
595
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
596
+ (TaskRunner pid=1868415)
597
+ (TaskRunner pid=1868415) <think></think>
598
+ (TaskRunner pid=1868415)
599
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
600
+ (TaskRunner pid=1868415)
601
+ (TaskRunner pid=1868415) <think></think>
602
+ (TaskRunner pid=1868415)
603
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
604
+ (TaskRunner pid=1868415)
605
+ (TaskRunner pid=1868415) <think></think>
606
+ (TaskRunner pid=1868415)
607
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
608
+ (TaskRunner pid=1868415)
609
+ (TaskRunner pid=1868415) <think></think>
610
+ (TaskRunner pid=1868415)
611
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
612
+ (TaskRunner pid=1868415)
613
+ (TaskRunner pid=1868415) <think></think>
614
+ (TaskRunner pid=1868415)
615
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
616
+ (TaskRunner pid=1868415)
617
+ (TaskRunner pid=1868415) <think></think>
618
+ (TaskRunner pid=1868415)
619
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
620
+ (TaskRunner pid=1868415)
621
+ (TaskRunner pid=1868415) <think></think>
622
+ (TaskRunner pid=1868415)
623
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
624
+ (TaskRunner pid=1868415)
625
+ (TaskRunner pid=1868415) <think></think>
626
+ (TaskRunner pid=1868415)
627
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
628
+ (TaskRunner pid=1868415)
629
+ (TaskRunner pid=1868415) <think></think>
630
+ (TaskRunner pid=1868415)
631
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
632
+ (TaskRunner pid=1868415)
633
+ (TaskRunner pid=1868415) <think></think>
634
+ (TaskRunner pid=1868415)
635
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
636
+ (TaskRunner pid=1868415)
637
+ (TaskRunner pid=1868415) <think></think>
638
+ (TaskRunner pid=1868415)
639
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
640
+ (TaskRunner pid=1868415)
641
+ (TaskRunner pid=1868415) <think></think>
642
+ (TaskRunner pid=1868415)
643
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
644
+ (TaskRunner pid=1868415)
645
+ (TaskRunner pid=1868415) <think></think>
646
+ (TaskRunner pid=1868415)
647
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
648
+ (TaskRunner pid=1868415)
649
+ (TaskRunner pid=1868415) <think></think>
650
+ (TaskRunner pid=1868415)
651
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
652
+ (TaskRunner pid=1868415)
653
+ (TaskRunner pid=1868415) <think></think>
654
+ (TaskRunner pid=1868415)
655
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
656
+ (TaskRunner pid=1868415)
657
+ (TaskRunner pid=1868415) <think></think>
658
+ (TaskRunner pid=1868415)
659
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
660
+ (TaskRunner pid=1868415)
661
+ (TaskRunner pid=1868415) <think></think>
662
+ (TaskRunner pid=1868415)
663
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
664
+ (TaskRunner pid=1868415)
665
+ (TaskRunner pid=1868415) <think></think>
666
+ (TaskRunner pid=1868415)
667
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
668
+ (TaskRunner pid=1868415)
669
+ (TaskRunner pid=1868415) <think></think>
670
+ (TaskRunner pid=1868415)
671
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
672
+ (TaskRunner pid=1868415)
673
+ (TaskRunner pid=1868415) <think></think>
674
+ (TaskRunner pid=1868415)
675
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
676
+ (TaskRunner pid=1868415)
677
+ (TaskRunner pid=1868415) <think></think>
678
+ (TaskRunner pid=1868415)
679
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
680
+ (TaskRunner pid=1868415)
681
+ (TaskRunner pid=1868415) <think></think>
682
+ (TaskRunner pid=1868415)
683
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
684
+ (TaskRunner pid=1868415)
685
+ (TaskRunner pid=1868415) <think></think>
686
+ (TaskRunner pid=1868415)
687
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
688
+ (TaskRunner pid=1868415)
689
+ (TaskRunner pid=1868415) <think></think>
690
+ (TaskRunner pid=1868415)
691
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
692
+ (TaskRunner pid=1868415)
693
+ (TaskRunner pid=1868415) <think></think>
694
+ (TaskRunner pid=1868415)
695
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
696
+ (TaskRunner pid=1868415)
697
+ (TaskRunner pid=1868415) <think></think>
698
+ (TaskRunner pid=1868415)
699
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
700
+ (TaskRunner pid=1868415)
701
+ (TaskRunner pid=1868415) <think></think>
702
+ (TaskRunner pid=1868415)
703
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
704
+ (TaskRunner pid=1868415)
705
+ (TaskRunner pid=1868415) <think></think>
706
+ (TaskRunner pid=1868415)
707
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
708
+ (TaskRunner pid=1868415)
709
+ (TaskRunner pid=1868415) <think></think>
710
+ (TaskRunner pid=1868415)
711
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
712
+ (TaskRunner pid=1868415)
713
+ (TaskRunner pid=1868415) <think></think>
714
+ (TaskRunner pid=1868415)
715
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
716
+ (TaskRunner pid=1868415)
717
+ (TaskRunner pid=1868415) <think></think>
718
+ (TaskRunner pid=1868415)
719
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
720
+ (TaskRunner pid=1868415)
721
+ (TaskRunner pid=1868415) <think></think>
722
+ (TaskRunner pid=1868415)
723
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
724
+ (TaskRunner pid=1868415)
725
+ (TaskRunner pid=1868415) <think></think>
726
+ (TaskRunner pid=1868415)
727
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
728
+ (TaskRunner pid=1868415)
729
+ (TaskRunner pid=1868415) <think></think>
730
+ (TaskRunner pid=1868415)
731
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
732
+ (TaskRunner pid=1868415)
733
+ (TaskRunner pid=1868415) <think></think>
734
+ (TaskRunner pid=1868415)
735
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
736
+ (TaskRunner pid=1868415)
737
+ (TaskRunner pid=1868415) <think></think>
738
+ (TaskRunner pid=1868415)
739
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
740
+ (TaskRunner pid=1868415)
741
+ (TaskRunner pid=1868415) <think></think>
742
+ (TaskRunner pid=1868415)
743
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
744
+ (TaskRunner pid=1868415)
745
+ (TaskRunner pid=1868415) <think></think>
746
+ (TaskRunner pid=1868415)
747
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
748
+ (TaskRunner pid=1868415)
749
+ (TaskRunner pid=1868415) <think></think>
750
+ (TaskRunner pid=1868415)
751
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
752
+ (TaskRunner pid=1868415)
753
+ (TaskRunner pid=1868415) <think></think>
754
+ (TaskRunner pid=1868415)
755
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
756
+ (TaskRunner pid=1868415)
757
+ (TaskRunner pid=1868415) <think></think>
758
+ (TaskRunner pid=1868415)
759
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
760
+ (TaskRunner pid=1868415)
761
+ (TaskRunner pid=1868415) <think></think>
762
+ (TaskRunner pid=1868415)
763
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
764
+ (TaskRunner pid=1868415)
765
+ (TaskRunner pid=1868415) <think></think>
766
+ (TaskRunner pid=1868415)
767
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
768
+ (TaskRunner pid=1868415)
769
+ (TaskRunner pid=1868415) <think></think>
770
+ (TaskRunner pid=1868415)
771
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
772
+ (TaskRunner pid=1868415)
773
+ (TaskRunner pid=1868415) <think></think>
774
+ (TaskRunner pid=1868415)
775
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
776
+ (TaskRunner pid=1868415)
777
+ (TaskRunner pid=1868415) <think></think>
778
+ (TaskRunner pid=1868415)
779
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
780
+ (TaskRunner pid=1868415)
781
+ (TaskRunner pid=1868415) <think></think>
782
+ (TaskRunner pid=1868415)
783
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
784
+ (TaskRunner pid=1868415)
785
+ (TaskRunner pid=1868415) <think></think>
786
+ (TaskRunner pid=1868415)
787
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
788
+ (TaskRunner pid=1868415)
789
+ (TaskRunner pid=1868415) <think></think>
790
+ (TaskRunner pid=1868415) Detected new reward function format (3 return values).
791
+ (TaskRunner pid=1868415) validation generation end
792
+ (TaskRunner pid=1868415) [prompt] <|im_start|>system
793
+ (TaskRunner pid=1868415) You are a helpful assistant.<|im_end|>
794
+ (TaskRunner pid=1868415) <|im_start|>user
795
+ (TaskRunner pid=1868415) <|vision_start|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|vision_end|>
796
+ (TaskRunner pid=1868415) You are an expert in univariate time-series anomaly detection. The figure shows a single-channel time series of length 32 from the "Server-YAHOO" domain.
797
+ (TaskRunner pid=1868415)
798
+ (TaskRunner pid=1868415) Decide whether the series is normal or contains an anomaly. If it is anomalous, choose the single most appropriate anomaly type from the following 15 categories (format `id: name — description`):
799
+ (TaskRunner pid=1868415) 0: Normal Sequence — There are no abnormal situations in this time series.
800
+ (TaskRunner pid=1868415) 1: Point Anomaly — A single data point significantly deviates from the local or global pattern of the sequence.
801
+ (TaskRunner pid=1868415) 2: Periodic Change Anomaly — The original periodic pattern is disrupted, e.g. the period is broken or the amplitude becomes anomalous.
802
+ (TaskRunner pid=1868415) 3: Trend Change Anomaly — A sudden change in the long-term trend of the time series.
803
+ (TaskRunner pid=1868415) 4: Change Point Anomaly — Statistical properties (e.g. mean, variance) change abruptly at certain points.
804
+ (TaskRunner pid=1868415) 5: Distributional Change Anomaly — The statistical distribution of the time series changes significantly.
805
+ (TaskRunner pid=1868415) 6: Amplitude Anomaly — The amplitude of data points exceeds the normal upper and lower bounds.
806
+ (TaskRunner pid=1868415) 7: Pattern Change Anomaly — The pattern of the time series suddenly changes from one form to another.
807
+ (TaskRunner pid=1868415) 8: Sparse Anomaly — Isolated anomalous patterns occasionally appear in a long time series.
808
+ (TaskRunner pid=1868415) 9: Repeated Value Anomaly — Continuous or intermittent repeated values disrupt the normal fluctuation pattern.
809
+ (TaskRunner pid=1868415) 10: Sudden Flatline Anomaly — The time series suddenly becomes a flat line with no normal fluctuations.
810
+ (TaskRunner pid=1868415) 11: Drift Anomaly — The data gradually drifts away from the normal level.
811
+ (TaskRunner pid=1868415) 12: Sudden Spike Anomaly — The data suddenly spikes or drops within a short time and then returns to normal.
812
+ (TaskRunner pid=1868415) 13: Continuous Segment Anomaly — A continuous segment of data points deviates from the normal pattern.
813
+ (TaskRunner pid=1868415) 14: Nonlinear Pattern Anomaly — Nonlinear changes appear in the sequence, breaking the original linear rule.
814
+ (TaskRunner pid=1868415)
815
+ (TaskRunner pid=1868415) Reason step by step inside <think>...</think> based on the visual shape of the series, then output exactly one line with your final answer:
816
+ (TaskRunner pid=1868415) <class>one exact category name from the list above</class>
817
+ (TaskRunner pid=1868415) If the series is normal, use <class>Normal Sequence</class>.<|im_end|>
818
+ (TaskRunner pid=1868415) <|im_start|>assistant
819
+ (TaskRunner pid=1868415)
820
+ (TaskRunner pid=1868415) [response] <think></think>
821
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
822
+ (TaskRunner pid=1868415)
823
+ (TaskRunner pid=1868415) <think></think>
824
+ (TaskRunner pid=1868415)
825
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
826
+ (TaskRunner pid=1868415)
827
+ (TaskRunner pid=1868415) <think></think>
828
+ (TaskRunner pid=1868415)
829
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
830
+ (TaskRunner pid=1868415)
831
+ (TaskRunner pid=1868415) <think></think>
832
+ (TaskRunner pid=1868415)
833
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
834
+ (TaskRunner pid=1868415)
835
+ (TaskRunner pid=1868415) <think></think>
836
+ (TaskRunner pid=1868415)
837
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
838
+ (TaskRunner pid=1868415)
839
+ (TaskRunner pid=1868415) <think></think>
840
+ (TaskRunner pid=1868415)
841
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
842
+ (TaskRunner pid=1868415)
843
+ (TaskRunner pid=1868415) <think></think>
844
+ (TaskRunner pid=1868415)
845
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
846
+ (TaskRunner pid=1868415)
847
+ (TaskRunner pid=1868415) <think></think>
848
+ (TaskRunner pid=1868415)
849
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
850
+ (TaskRunner pid=1868415)
851
+ (TaskRunner pid=1868415) <think></think>
852
+ (TaskRunner pid=1868415)
853
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
854
+ (TaskRunner pid=1868415)
855
+ (TaskRunner pid=1868415) <think></think>
856
+ (TaskRunner pid=1868415)
857
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
858
+ (TaskRunner pid=1868415)
859
+ (TaskRunner pid=1868415) <think></think>
860
+ (TaskRunner pid=1868415)
861
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
862
+ (TaskRunner pid=1868415)
863
+ (TaskRunner pid=1868415) <think></think>
864
+ (TaskRunner pid=1868415)
865
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
866
+ (TaskRunner pid=1868415)
867
+ (TaskRunner pid=1868415) <think></think>
868
+ (TaskRunner pid=1868415)
869
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
870
+ (TaskRunner pid=1868415)
871
+ (TaskRunner pid=1868415) <think></think>
872
+ (TaskRunner pid=1868415)
873
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
874
+ (TaskRunner pid=1868415)
875
+ (TaskRunner pid=1868415) <think></think>
876
+ (TaskRunner pid=1868415)
877
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
878
+ (TaskRunner pid=1868415)
879
+ (TaskRunner pid=1868415) <think></think>
880
+ (TaskRunner pid=1868415)
881
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
882
+ (TaskRunner pid=1868415)
883
+ (TaskRunner pid=1868415) <think></think>
884
+ (TaskRunner pid=1868415)
885
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
886
+ (TaskRunner pid=1868415)
887
+ (TaskRunner pid=1868415) <think></think>
888
+ (TaskRunner pid=1868415)
889
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
890
+ (TaskRunner pid=1868415)
891
+ (TaskRunner pid=1868415) <think></think>
892
+ (TaskRunner pid=1868415)
893
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
894
+ (TaskRunner pid=1868415)
895
+ (TaskRunner pid=1868415) <think></think>
896
+ (TaskRunner pid=1868415)
897
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
898
+ (TaskRunner pid=1868415)
899
+ (TaskRunner pid=1868415) <think></think>
900
+ (TaskRunner pid=1868415)
901
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
902
+ (TaskRunner pid=1868415)
903
+ (TaskRunner pid=1868415) <think></think>
904
+ (TaskRunner pid=1868415)
905
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
906
+ (TaskRunner pid=1868415)
907
+ (TaskRunner pid=1868415) <think></think>
908
+ (TaskRunner pid=1868415)
909
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
910
+ (TaskRunner pid=1868415)
911
+ (TaskRunner pid=1868415) <think></think>
912
+ (TaskRunner pid=1868415)
913
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
914
+ (TaskRunner pid=1868415)
915
+ (TaskRunner pid=1868415) <think></think>
916
+ (TaskRunner pid=1868415)
917
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
918
+ (TaskRunner pid=1868415)
919
+ (TaskRunner pid=1868415) <think></think>
920
+ (TaskRunner pid=1868415)
921
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
922
+ (TaskRunner pid=1868415)
923
+ (TaskRunner pid=1868415) <think></think>
924
+ (TaskRunner pid=1868415)
925
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
926
+ (TaskRunner pid=1868415)
927
+ (TaskRunner pid=1868415) <think></think>
928
+ (TaskRunner pid=1868415)
929
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
930
+ (TaskRunner pid=1868415)
931
+ (TaskRunner pid=1868415) <think></think>
932
+ (TaskRunner pid=1868415)
933
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
934
+ (TaskRunner pid=1868415)
935
+ (TaskRunner pid=1868415) <think></think>
936
+ (TaskRunner pid=1868415)
937
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
938
+ (TaskRunner pid=1868415)
939
+ (TaskRunner pid=1868415) <think></think>
940
+ (TaskRunner pid=1868415)
941
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
942
+ (TaskRunner pid=1868415)
943
+ (TaskRunner pid=1868415) <think></think>
944
+ (TaskRunner pid=1868415)
945
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
946
+ (TaskRunner pid=1868415)
947
+ (TaskRunner pid=1868415) <think></think>
948
+ (TaskRunner pid=1868415)
949
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
950
+ (TaskRunner pid=1868415)
951
+ (TaskRunner pid=1868415) <think></think>
952
+ (TaskRunner pid=1868415)
953
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
954
+ (TaskRunner pid=1868415)
955
+ (TaskRunner pid=1868415) <think></think>
956
+ (TaskRunner pid=1868415)
957
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
958
+ (TaskRunner pid=1868415)
959
+ (TaskRunner pid=1868415) <think></think>
960
+ (TaskRunner pid=1868415)
961
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
962
+ (TaskRunner pid=1868415)
963
+ (TaskRunner pid=1868415) <think></think>
964
+ (TaskRunner pid=1868415)
965
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
966
+ (TaskRunner pid=1868415)
967
+ (TaskRunner pid=1868415) <think></think>
968
+ (TaskRunner pid=1868415)
969
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
970
+ (TaskRunner pid=1868415)
971
+ (TaskRunner pid=1868415) <think></think>
972
+ (TaskRunner pid=1868415)
973
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
974
+ (TaskRunner pid=1868415)
975
+ (TaskRunner pid=1868415) <think></think>
976
+ (TaskRunner pid=1868415)
977
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
978
+ (TaskRunner pid=1868415)
979
+ (TaskRunner pid=1868415) <think></think>
980
+ (TaskRunner pid=1868415)
981
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
982
+ (TaskRunner pid=1868415)
983
+ (TaskRunner pid=1868415) <think></think>
984
+ (TaskRunner pid=1868415)
985
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
986
+ (TaskRunner pid=1868415)
987
+ (TaskRunner pid=1868415) <think></think>
988
+ (TaskRunner pid=1868415)
989
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
990
+ (TaskRunner pid=1868415)
991
+ (TaskRunner pid=1868415) <think></think>
992
+ (TaskRunner pid=1868415)
993
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
994
+ (TaskRunner pid=1868415)
995
+ (TaskRunner pid=1868415) <think></think>
996
+ (TaskRunner pid=1868415)
997
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
998
+ (TaskRunner pid=1868415)
999
+ (TaskRunner pid=1868415) <think></think>
1000
+ (TaskRunner pid=1868415)
1001
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1002
+ (TaskRunner pid=1868415)
1003
+ (TaskRunner pid=1868415) <think></think>
1004
+ (TaskRunner pid=1868415)
1005
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1006
+ (TaskRunner pid=1868415)
1007
+ (TaskRunner pid=1868415) <think></think>
1008
+ (TaskRunner pid=1868415)
1009
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1010
+ (TaskRunner pid=1868415)
1011
+ (TaskRunner pid=1868415) <think></think>
1012
+ (TaskRunner pid=1868415)
1013
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1014
+ (TaskRunner pid=1868415)
1015
+ (TaskRunner pid=1868415) <think></think>
1016
+ (TaskRunner pid=1868415)
1017
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1018
+ (TaskRunner pid=1868415)
1019
+ (TaskRunner pid=1868415) <think></think>
1020
+ (TaskRunner pid=1868415)
1021
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1022
+ (TaskRunner pid=1868415)
1023
+ (TaskRunner pid=1868415) <think></think>
1024
+ (TaskRunner pid=1868415)
1025
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1026
+ (TaskRunner pid=1868415)
1027
+ (TaskRunner pid=1868415) <think></think>
1028
+ (TaskRunner pid=1868415)
1029
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1030
+ (TaskRunner pid=1868415)
1031
+ (TaskRunner pid=1868415) <think></think>
1032
+ (TaskRunner pid=1868415)
1033
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1034
+ (TaskRunner pid=1868415)
1035
+ (TaskRunner pid=1868415) <think></think>
1036
+ (TaskRunner pid=1868415)
1037
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1038
+ (TaskRunner pid=1868415)
1039
+ (TaskRunner pid=1868415) <think></think>
1040
+ (TaskRunner pid=1868415)
1041
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1042
+ (TaskRunner pid=1868415)
1043
+ (TaskRunner pid=1868415) <think></think>
1044
+ (TaskRunner pid=1868415)
1045
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1046
+ (TaskRunner pid=1868415)
1047
+ (TaskRunner pid=1868415) <think></think>
1048
+ (TaskRunner pid=1868415)
1049
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1050
+ (TaskRunner pid=1868415)
1051
+ (TaskRunner pid=1868415) <think></think>
1052
+ (TaskRunner pid=1868415)
1053
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1054
+ (TaskRunner pid=1868415)
1055
+ (TaskRunner pid=1868415) <think></think>
1056
+ (TaskRunner pid=1868415)
1057
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1058
+ (TaskRunner pid=1868415)
1059
+ (TaskRunner pid=1868415) <think></think>
1060
+ (TaskRunner pid=1868415) validation generation end
1061
+ (TaskRunner pid=1868415) [prompt] <|im_start|>system
1062
+ (TaskRunner pid=1868415) You are a helpful assistant.<|im_end|>
1063
+ (TaskRunner pid=1868415) <|im_start|>user
1064
+ (TaskRunner pid=1868415) <|vision_start|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|vision_end|>
1065
+ (TaskRunner pid=1868415) You are an expert in univariate time-series anomaly detection. The figure shows a single-channel time series of length 128 from the "Healthcare-ECG" domain.
1066
+ (TaskRunner pid=1868415)
1067
+ (TaskRunner pid=1868415) Decide whether the series is normal or contains an anomaly. If it is anomalous, choose the single most appropriate anomaly type from the following 15 categories (format `id: name — description`):
1068
+ (TaskRunner pid=1868415) 0: Normal Sequence — There are no abnormal situations in this time series.
1069
+ (TaskRunner pid=1868415) 1: Point Anomaly — A single data point significantly deviates from the local or global pattern of the sequence.
1070
+ (TaskRunner pid=1868415) 2: Periodic Change Anomaly — The original periodic pattern is disrupted, e.g. the period is broken or the amplitude becomes anomalous.
1071
+ (TaskRunner pid=1868415) 3: Trend Change Anomaly — A sudden change in the long-term trend of the time series.
1072
+ (TaskRunner pid=1868415) 4: Change Point Anomaly — Statistical properties (e.g. mean, variance) change abruptly at certain points.
1073
+ (TaskRunner pid=1868415) 5: Distributional Change Anomaly — The statistical distribution of the time series changes significantly.
1074
+ (TaskRunner pid=1868415) 6: Amplitude Anomaly — The amplitude of data points exceeds the normal upper and lower bounds.
1075
+ (TaskRunner pid=1868415) 7: Pattern Change Anomaly — The pattern of the time series suddenly changes from one form to another.
1076
+ (TaskRunner pid=1868415) 8: Sparse Anomaly — Isolated anomalous patterns occasionally appear in a long time series.
1077
+ (TaskRunner pid=1868415) 9: Repeated Value Anomaly — Continuous or intermittent repeated values disrupt the normal fluctuation pattern.
1078
+ (TaskRunner pid=1868415) 10: Sudden Flatline Anomaly — The time series suddenly becomes a flat line with no normal fluctuations.
1079
+ (TaskRunner pid=1868415) 11: Drift Anomaly — The data gradually drifts away from the normal level.
1080
+ (TaskRunner pid=1868415) 12: Sudden Spike Anomaly — The data suddenly spikes or drops within a short time and then returns to normal.
1081
+ (TaskRunner pid=1868415) 13: Continuous Segment Anomaly — A continuous segment of data points deviates from the normal pattern.
1082
+ (TaskRunner pid=1868415) 14: Nonlinear Pattern Anomaly — Nonlinear changes appear in the sequence, breaking the original linear rule.
1083
+ (TaskRunner pid=1868415)
1084
+ (TaskRunner pid=1868415) Reason step by step inside <think>...</think> based on the visual shape of the series, then output exactly one line with your final answer:
1085
+ (TaskRunner pid=1868415) <class>one exact category name from the list above</class>
1086
+ (TaskRunner pid=1868415) If the series is normal, use <class>Normal Sequence</class>.<|im_end|>
1087
+ (TaskRunner pid=1868415) <|im_start|>assistant
1088
+ (TaskRunner pid=1868415)
1089
+ (TaskRunner pid=1868415) [response] <think></think>
1090
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1091
+ (TaskRunner pid=1868415)
1092
+ (TaskRunner pid=1868415) <think></think>
1093
+ (TaskRunner pid=1868415)
1094
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1095
+ (TaskRunner pid=1868415)
1096
+ (TaskRunner pid=1868415) <think></think>
1097
+ (TaskRunner pid=1868415)
1098
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1099
+ (TaskRunner pid=1868415)
1100
+ (TaskRunner pid=1868415) <think></think>
1101
+ (TaskRunner pid=1868415)
1102
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1103
+ (TaskRunner pid=1868415)
1104
+ (TaskRunner pid=1868415) <think></think>
1105
+ (TaskRunner pid=1868415)
1106
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1107
+ (TaskRunner pid=1868415)
1108
+ (TaskRunner pid=1868415) <think></think>
1109
+ (TaskRunner pid=1868415)
1110
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1111
+ (TaskRunner pid=1868415)
1112
+ (TaskRunner pid=1868415) <think></think>
1113
+ (TaskRunner pid=1868415)
1114
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1115
+ (TaskRunner pid=1868415)
1116
+ (TaskRunner pid=1868415) <think></think>
1117
+ (TaskRunner pid=1868415)
1118
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1119
+ (TaskRunner pid=1868415)
1120
+ (TaskRunner pid=1868415) <think></think>
1121
+ (TaskRunner pid=1868415)
1122
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1123
+ (TaskRunner pid=1868415)
1124
+ (TaskRunner pid=1868415) <think></think>
1125
+ (TaskRunner pid=1868415)
1126
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1127
+ (TaskRunner pid=1868415)
1128
+ (TaskRunner pid=1868415) <think></think>
1129
+ (TaskRunner pid=1868415)
1130
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1131
+ (TaskRunner pid=1868415)
1132
+ (TaskRunner pid=1868415) <think></think>
1133
+ (TaskRunner pid=1868415)
1134
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1135
+ (TaskRunner pid=1868415)
1136
+ (TaskRunner pid=1868415) <think></think>
1137
+ (TaskRunner pid=1868415)
1138
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1139
+ (TaskRunner pid=1868415)
1140
+ (TaskRunner pid=1868415) <think></think>
1141
+ (TaskRunner pid=1868415)
1142
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1143
+ (TaskRunner pid=1868415)
1144
+ (TaskRunner pid=1868415) <think></think>
1145
+ (TaskRunner pid=1868415)
1146
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1147
+ (TaskRunner pid=1868415)
1148
+ (TaskRunner pid=1868415) <think></think>
1149
+ (TaskRunner pid=1868415)
1150
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1151
+ (TaskRunner pid=1868415)
1152
+ (TaskRunner pid=1868415) <think></think>
1153
+ (TaskRunner pid=1868415)
1154
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1155
+ (TaskRunner pid=1868415)
1156
+ (TaskRunner pid=1868415) <think></think>
1157
+ (TaskRunner pid=1868415)
1158
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1159
+ (TaskRunner pid=1868415)
1160
+ (TaskRunner pid=1868415) <think></think>
1161
+ (TaskRunner pid=1868415)
1162
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1163
+ (TaskRunner pid=1868415)
1164
+ (TaskRunner pid=1868415) <think></think>
1165
+ (TaskRunner pid=1868415)
1166
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1167
+ (TaskRunner pid=1868415)
1168
+ (TaskRunner pid=1868415) <think></think>
1169
+ (TaskRunner pid=1868415)
1170
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1171
+ (TaskRunner pid=1868415)
1172
+ (TaskRunner pid=1868415) <think></think>
1173
+ (TaskRunner pid=1868415)
1174
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1175
+ (TaskRunner pid=1868415)
1176
+ (TaskRunner pid=1868415) <think></think>
1177
+ (TaskRunner pid=1868415)
1178
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1179
+ (TaskRunner pid=1868415)
1180
+ (TaskRunner pid=1868415) <think></think>
1181
+ (TaskRunner pid=1868415)
1182
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1183
+ (TaskRunner pid=1868415)
1184
+ (TaskRunner pid=1868415) <think></think>
1185
+ (TaskRunner pid=1868415)
1186
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1187
+ (TaskRunner pid=1868415)
1188
+ (TaskRunner pid=1868415) <think></think>
1189
+ (TaskRunner pid=1868415)
1190
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1191
+ (TaskRunner pid=1868415)
1192
+ (TaskRunner pid=1868415) <think></think>
1193
+ (TaskRunner pid=1868415)
1194
+ (TaskRunner pid=1868415) <class>Sudden Spike Anomaly</class>
1195
+ (TaskRunner pid=1868415)
1196
+ (TaskRunner pid=1868415) <think></think>
logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_20260615_154822.log ADDED
The diff for this file is too large to render. See raw diff
 
logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_smoke_fixed_20260615.log ADDED
@@ -0,0 +1,635 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [log] saving full output to: /mnt/share01/sqk/AnomSeer/logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_smoke_fixed_20260615.log
2
+ [config] tuning=LoRA (r=16, alpha=16, target=q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj) | lr=1e-4 | gpus=2 | tensor-parallel (TP=2)
3
+ [config] model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface
4
+ [config] python=/home/suiqk/anaconda3/envs/scalerag-ts-v4/bin/python | stage=eval
5
+ [stage] EVAL (model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface, gpus=2, tp=2, lora_rank=0)
6
+ 2026-06-15 11:18:02,410 INFO worker.py:2012 -- Started a local Ray instance.
7
+ /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py:2051: FutureWarning: Tip: In future versions of Ray, Ray will no longer override accelerator visible devices env var if num_gpus=0 or num_gpus=None (default). To enable this behavior and turn off this error message, set RAY_ACCEL_ENV_VAR_OVERRIDE_ON_ZERO=0
8
+ warnings.warn(
9
+ (TaskRunner pid=1165231) {'actor_rollout_ref': {'actor': {'clip_ratio': 0.2,
10
+ (TaskRunner pid=1165231) 'entropy_coeff': 0.001,
11
+ (TaskRunner pid=1165231) 'fsdp_config': {'fsdp_size': -1,
12
+ (TaskRunner pid=1165231) 'optimizer_offload': False,
13
+ (TaskRunner pid=1165231) 'param_offload': False,
14
+ (TaskRunner pid=1165231) 'wrap_policy': {'min_num_params': 0}},
15
+ (TaskRunner pid=1165231) 'grad_clip': 1.0,
16
+ (TaskRunner pid=1165231) 'kl_loss_coef': 0.001,
17
+ (TaskRunner pid=1165231) 'kl_loss_type': 'low_var_kl',
18
+ (TaskRunner pid=1165231) 'optim': {'lr': 0.0001,
19
+ (TaskRunner pid=1165231) 'lr_warmup_steps': -1,
20
+ (TaskRunner pid=1165231) 'lr_warmup_steps_ratio': 0.0,
21
+ (TaskRunner pid=1165231) 'min_lr_ratio': None,
22
+ (TaskRunner pid=1165231) 'total_training_steps': -1,
23
+ (TaskRunner pid=1165231) 'warmup_style': 'constant'},
24
+ (TaskRunner pid=1165231) 'ppo_epochs': 1,
25
+ (TaskRunner pid=1165231) 'ppo_max_token_len_per_gpu': 16384,
26
+ (TaskRunner pid=1165231) 'ppo_micro_batch_size': None,
27
+ (TaskRunner pid=1165231) 'ppo_micro_batch_size_per_gpu': 2,
28
+ (TaskRunner pid=1165231) 'ppo_mini_batch_size': 16,
29
+ (TaskRunner pid=1165231) 'shuffle': False,
30
+ (TaskRunner pid=1165231) 'strategy': 'fsdp',
31
+ (TaskRunner pid=1165231) 'ulysses_sequence_parallel_size': 1,
32
+ (TaskRunner pid=1165231) 'use_dynamic_bsz': False,
33
+ (TaskRunner pid=1165231) 'use_kl_loss': True,
34
+ (TaskRunner pid=1165231) 'use_torch_compile': True},
35
+ (TaskRunner pid=1165231) 'hybrid_engine': True,
36
+ (TaskRunner pid=1165231) 'model': {'enable_gradient_checkpointing': True,
37
+ (TaskRunner pid=1165231) 'external_lib': None,
38
+ (TaskRunner pid=1165231) 'lora_alpha': 16,
39
+ (TaskRunner pid=1165231) 'lora_dropout': 0.0,
40
+ (TaskRunner pid=1165231) 'lora_rank': 0,
41
+ (TaskRunner pid=1165231) 'lora_target_modules': 'q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',
42
+ (TaskRunner pid=1165231) 'override_config': {},
43
+ (TaskRunner pid=1165231) 'path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
44
+ (TaskRunner pid=1165231) 'use_remove_padding': False},
45
+ (TaskRunner pid=1165231) 'ref': {'fsdp_config': {'param_offload': True,
46
+ (TaskRunner pid=1165231) 'wrap_policy': {'min_num_params': 0}},
47
+ (TaskRunner pid=1165231) 'log_prob_max_token_len_per_gpu': 16384,
48
+ (TaskRunner pid=1165231) 'log_prob_micro_batch_size': None,
49
+ (TaskRunner pid=1165231) 'log_prob_micro_batch_size_per_gpu': 8,
50
+ (TaskRunner pid=1165231) 'log_prob_use_dynamic_bsz': False,
51
+ (TaskRunner pid=1165231) 'ulysses_sequence_parallel_size': 1},
52
+ (TaskRunner pid=1165231) 'rollout': {'disable_log_stats': True,
53
+ (TaskRunner pid=1165231) 'do_sample': True,
54
+ (TaskRunner pid=1165231) 'dtype': 'bfloat16',
55
+ (TaskRunner pid=1165231) 'enable_chunked_prefill': False,
56
+ (TaskRunner pid=1165231) 'enforce_eager': False,
57
+ (TaskRunner pid=1165231) 'free_cache_engine': False,
58
+ (TaskRunner pid=1165231) 'gpu_memory_utilization': 0.4,
59
+ (TaskRunner pid=1165231) 'ignore_eos': False,
60
+ (TaskRunner pid=1165231) 'load_format': 'dummy_dtensor',
61
+ (TaskRunner pid=1165231) 'log_prob_max_token_len_per_gpu': 16384,
62
+ (TaskRunner pid=1165231) 'log_prob_micro_batch_size': None,
63
+ (TaskRunner pid=1165231) 'log_prob_micro_batch_size_per_gpu': 8,
64
+ (TaskRunner pid=1165231) 'log_prob_use_dynamic_bsz': False,
65
+ (TaskRunner pid=1165231) 'max_model_len': None,
66
+ (TaskRunner pid=1165231) 'max_num_batched_tokens': 8192,
67
+ (TaskRunner pid=1165231) 'max_num_seqs': 1024,
68
+ (TaskRunner pid=1165231) 'n': 5,
69
+ (TaskRunner pid=1165231) 'name': 'vllm',
70
+ (TaskRunner pid=1165231) 'prompt_length': 1024,
71
+ (TaskRunner pid=1165231) 'response_length': 1024,
72
+ (TaskRunner pid=1165231) 'temperature': 1.0,
73
+ (TaskRunner pid=1165231) 'tensor_model_parallel_size': 2,
74
+ (TaskRunner pid=1165231) 'top_k': -1,
75
+ (TaskRunner pid=1165231) 'top_p': 1,
76
+ (TaskRunner pid=1165231) 'use_fire_sampling': False,
77
+ (TaskRunner pid=1165231) 'val_kwargs': {'do_sample': False,
78
+ (TaskRunner pid=1165231) 'n': 1,
79
+ (TaskRunner pid=1165231) 'temperature': 0.4,
80
+ (TaskRunner pid=1165231) 'top_k': -1,
81
+ (TaskRunner pid=1165231) 'top_p': 1.0}}},
82
+ (TaskRunner pid=1165231) 'algorithm': {'adv_estimator': 'grpo',
83
+ (TaskRunner pid=1165231) 'gamma': 1.0,
84
+ (TaskRunner pid=1165231) 'kl_ctrl': {'kl_coef': 0.001, 'type': 'fixed'},
85
+ (TaskRunner pid=1165231) 'kl_penalty': 'kl',
86
+ (TaskRunner pid=1165231) 'lam': 1.0},
87
+ (TaskRunner pid=1165231) 'critic': {'cliprange_value': 0.5,
88
+ (TaskRunner pid=1165231) 'forward_max_token_len_per_gpu': 32768,
89
+ (TaskRunner pid=1165231) 'forward_micro_batch_size': None,
90
+ (TaskRunner pid=1165231) 'forward_micro_batch_size_per_gpu': None,
91
+ (TaskRunner pid=1165231) 'grad_clip': 1.0,
92
+ (TaskRunner pid=1165231) 'model': {'enable_gradient_checkpointing': True,
93
+ (TaskRunner pid=1165231) 'external_lib': None,
94
+ (TaskRunner pid=1165231) 'fsdp_config': {'fsdp_size': -1,(TaskRunner pid=1165231) DeprecationWarning: `ray.state.available_resources_per_node` is a private attribute and access will be removed in a future Ray version.
95
+
96
+ (TaskRunner pid=1165231) 'optimizer_offload': False,
97
+ (TaskRunner pid=1165231) 'param_offload': False,
98
+ (TaskRunner pid=1165231) 'wrap_policy': {'min_num_params': 0}},
99
+ (TaskRunner pid=1165231) 'override_config': {},
100
+ (TaskRunner pid=1165231) 'path': '~/models/deepseek-llm-7b-chat',
101
+ (TaskRunner pid=1165231) 'tokenizer_path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
102
+ (TaskRunner pid=1165231) 'use_remove_padding': False},
103
+ (TaskRunner pid=1165231) 'optim': {'lr': 1e-05,
104
+ (TaskRunner pid=1165231) 'lr_warmup_steps_ratio': 0.0,
105
+ (TaskRunner pid=1165231) 'min_lr_ratio': None,
106
+ (TaskRunner pid=1165231) 'total_training_steps': -1,
107
+ (TaskRunner pid=1165231) 'warmup_style': 'constant'},
108
+ (TaskRunner pid=1165231) 'ppo_epochs': 1,
109
+ (TaskRunner pid=1165231) 'ppo_max_token_len_per_gpu': 32768,
110
+ (TaskRunner pid=1165231) 'ppo_micro_batch_size': None,
111
+ (TaskRunner pid=1165231) 'ppo_micro_batch_size_per_gpu': None,
112
+ (TaskRunner pid=1165231) 'ppo_mini_batch_size': 16,
113
+ (TaskRunner pid=1165231) 'shuffle': False,
114
+ (TaskRunner pid=1165231) 'strategy': 'fsdp',
115
+ (TaskRunner pid=1165231) 'ulysses_sequence_parallel_size': 1,
116
+ (TaskRunner pid=1165231) 'use_dynamic_bsz': False},
117
+ (TaskRunner pid=1165231) 'custom_reward_function': {'name': 'compute_score', 'path': None},
118
+ (TaskRunner pid=1165231) 'data': {'filter_overlong_prompts': True,
119
+ (TaskRunner pid=1165231) 'image_key': 'images',
120
+ (TaskRunner pid=1165231) 'max_prompt_length': 1024,
121
+ (TaskRunner pid=1165231) 'max_response_length': 1024,
122
+ (TaskRunner pid=1165231) 'prompt_key': 'prompt',
123
+ (TaskRunner pid=1165231) 'return_raw_chat': False,
124
+ (TaskRunner pid=1165231) 'return_raw_input_ids': False,
125
+ (TaskRunner pid=1165231) 'shuffle': True,
126
+ (TaskRunner pid=1165231) 'tokenizer': None,
127
+ (TaskRunner pid=1165231) 'train_batch_size': 16,
128
+ (TaskRunner pid=1165231) 'train_files': '/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_quarter.parquet',
129
+ (TaskRunner pid=1165231) 'truncation': 'error',
130
+ (TaskRunner pid=1165231) 'val_batch_size': 1,
131
+ (TaskRunner pid=1165231) 'val_files': '/tmp/anomseer_eval_smoke.parquet'},
132
+ (TaskRunner pid=1165231) 'reward_model': {'enable': False,
133
+ (TaskRunner pid=1165231) 'forward_max_token_len_per_gpu': 32768,
134
+ (TaskRunner pid=1165231) 'max_length': None,
135
+ (TaskRunner pid=1165231) 'micro_batch_size': None,
136
+ (TaskRunner pid=1165231) 'micro_batch_size_per_gpu': None,
137
+ (TaskRunner pid=1165231) 'model': {'external_lib': None,
138
+ (TaskRunner pid=1165231) 'fsdp_config': {'fsdp_size': -1,
139
+ (TaskRunner pid=1165231) 'param_offload': False,
140
+ (TaskRunner pid=1165231) 'wrap_policy': {'min_num_params': 0}},
141
+ (TaskRunner pid=1165231) 'input_tokenizer': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
142
+ (TaskRunner pid=1165231) 'path': '~/models/FsfairX-LLaMA3-RM-v0.1',
143
+ (TaskRunner pid=1165231) 'use_remove_padding': False},
144
+ (TaskRunner pid=1165231) 'reward_manager': 'naive',
145
+ (TaskRunner pid=1165231) 'strategy': 'fsdp',
146
+ (TaskRunner pid=1165231) 'ulysses_sequence_parallel_size': 1,
147
+ (TaskRunner pid=1165231) 'use_dynamic_bsz': False},
148
+ (TaskRunner pid=1165231) 'trainer': {'balance_batch': True,
149
+ (TaskRunner pid=1165231) 'critic_warmup': 0,
150
+ (TaskRunner pid=1165231) 'default_hdfs_dir': None,
151
+ (TaskRunner pid=1165231) 'default_local_dir': 'checkpoints/anomseer/anomseer_rats_uni_2gpu',
152
+ (TaskRunner pid=1165231) 'del_local_ckpt_after_load': False,
153
+ (TaskRunner pid=1165231) 'experiment_name': 'anomseer_rats_uni_2gpu',
154
+ (TaskRunner pid=1165231) 'logger': ['console'],
155
+ (TaskRunner pid=1165231) 'n_gpus_per_node': 2,
156
+ (TaskRunner pid=1165231) 'nnodes': 1,
157
+ (TaskRunner pid=1165231) 'project_name': 'anomseer',
158
+ (TaskRunner pid=1165231) 'remove_previous_ckpt_in_save': False,
159
+ (TaskRunner pid=1165231) 'resume_from_path': False,
160
+ (TaskRunner pid=1165231) 'resume_mode': 'disable',
161
+ (TaskRunner pid=1165231) 'save_freq': 500,
162
+ (TaskRunner pid=1165231) 'test_freq': -1,
163
+ (TaskRunner pid=1165231) 'total_epochs': 1,
164
+ (TaskRunner pid=1165231) 'total_training_steps': None,
165
+ (TaskRunner pid=1165231) 'val_before_train': True,
166
+ (TaskRunner pid=1165231) 'val_generations_to_log_to_wandb': 0,
167
+ (TaskRunner pid=1165231) 'val_only': True},
168
+ (TaskRunner pid=1165231) 'ts': {'adv_mix': 0.3,
169
+ (TaskRunner pid=1165231) 'clip_pooling': 'mean',
170
+ (TaskRunner pid=1165231) 'clip_temperature': 1.0,
171
+ (TaskRunner pid=1165231) 'ot_eps': 0.08,
172
+ (TaskRunner pid=1165231) 'ot_n_iter': 50,
173
+ (TaskRunner pid=1165231) 'similarity_method': 'ot',
174
+ (TaskRunner pid=1165231) 'use_sem_orth': True}}
175
+ (TaskRunner pid=1165231) reward_manager_name: anomts
176
+ (TaskRunner pid=1165231) WARNING: val_batch_size is deprecated. Validation datasets are sent to inference engines as a whole batch, which will schedule the memory themselves.
177
+ (TaskRunner pid=1165231) [validate_config] All configuration checks passed successfully!
178
+ (TaskRunner pid=1165231) dataset len: 7566
179
+ (TaskRunner pid=1165231) filter dataset len: 7566
180
+ (TaskRunner pid=1165231) dataset len: 1
181
+ (TaskRunner pid=1165231) filter dataset len: 1
182
+ (TaskRunner pid=1165231) Size of train dataloader: 472
183
+ (TaskRunner pid=1165231) Total training steps: 472
184
+ (WorkerDict pid=1168371) Model config after override: Qwen2_5_VLConfig {
185
+ (WorkerDict pid=1168371) "architectures": [
186
+ (WorkerDict pid=1168371) "Qwen2_5_VLForConditionalGeneration"
187
+ (WorkerDict pid=1168371) ],
188
+ (WorkerDict pid=1168371) "attention_dropout": 0.0,
189
+ (WorkerDict pid=1168371) "eos_token_id": 151645,
190
+ (WorkerDict pid=1168371) "hidden_act": "silu",
191
+ (WorkerDict pid=1168371) "hidden_size": 2048,
192
+ (WorkerDict pid=1168371) "image_token_id": 151655,
193
+ (WorkerDict pid=1168371) "initializer_range": 0.02,
194
+ (WorkerDict pid=1168371) "intermediate_size": 11008,
195
+ (WorkerDict pid=1168371) "max_position_embeddings": 128000,
196
+ (WorkerDict pid=1168371) "max_window_layers": 70,
197
+ (WorkerDict pid=1168371) "model_type": "qwen2_5_vl",
198
+ (WorkerDict pid=1168371) "num_attention_heads": 16,
199
+ (WorkerDict pid=1168371) "num_hidden_layers": 36,
200
+ (WorkerDict pid=1168371) "num_key_value_heads": 2,(WorkerDict pid=1168371)
201
+ (WorkerDict pid=1168371)
202
+ (WorkerDict pid=1170483)
203
+ (WorkerDict pid=1168371)
204
+ (WorkerDict pid=1170483)
205
+ (WorkerDict pid=1168371) [rank0]:[W615 11:19:02.122526228 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 0] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
206
+
207
+ (WorkerDict pid=1168371) "pad_token_id": 151643,
208
+ (WorkerDict pid=1168371) "rms_norm_eps": 1e-06,
209
+ (WorkerDict pid=1168371) "rope_scaling": {
210
+ (WorkerDict pid=1168371) "mrope_section": [
211
+ (WorkerDict pid=1168371) 16,
212
+ (WorkerDict pid=1168371) 24,
213
+ (WorkerDict pid=1168371) 24
214
+ (WorkerDict pid=1168371) ],
215
+ (WorkerDict pid=1168371) "rope_type": "default",
216
+ (WorkerDict pid=1168371) "type": "default"
217
+ (WorkerDict pid=1168371) },
218
+ (WorkerDict pid=1168371) "rope_theta": 1000000.0,
219
+ (WorkerDict pid=1168371) "sliding_window": 32768,
220
+ (WorkerDict pid=1168371) "text_config": {
221
+ (WorkerDict pid=1168371) "architectures": [
222
+ (WorkerDict pid=1168371) "Qwen2_5_VLForConditionalGeneration"
223
+ (WorkerDict pid=1168371) ],
224
+ (WorkerDict pid=1168371) "attention_dropout": 0.0,
225
+ (WorkerDict pid=1168371) "bos_token_id": 151643,
226
+ (WorkerDict pid=1168371) "eos_token_id": 151645,
227
+ (WorkerDict pid=1168371) "hidden_act": "silu",
228
+ (WorkerDict pid=1168371) "hidden_size": 2048,
229
+ (WorkerDict pid=1168371) "image_token_id": null,
230
+ (WorkerDict pid=1168371) "initializer_range": 0.02,
231
+ (WorkerDict pid=1168371) "intermediate_size": 11008,
232
+ (WorkerDict pid=1168371) "layer_types": [
233
+ (WorkerDict pid=1168371) "full_attention",
234
+ (WorkerDict pid=1168371) "full_attention",
235
+ (WorkerDict pid=1168371) "full_attention",
236
+ (WorkerDict pid=1168371) "full_attention",
237
+ (WorkerDict pid=1168371) "full_attention",
238
+ (WorkerDict pid=1168371) "full_attention",
239
+ (WorkerDict pid=1168371) "full_attention",
240
+ (WorkerDict pid=1168371) "full_attention",
241
+ (WorkerDict pid=1168371) "full_attention",
242
+ (WorkerDict pid=1168371) "full_attention",
243
+ (WorkerDict pid=1168371) "full_attention",
244
+ (WorkerDict pid=1168371) "full_attention",
245
+ (WorkerDict pid=1168371) "full_attention",
246
+ (WorkerDict pid=1168371) "full_attention",
247
+ (WorkerDict pid=1168371) "full_attention",
248
+ (WorkerDict pid=1168371) "full_attention",
249
+ (WorkerDict pid=1168371) "full_attention",
250
+ (WorkerDict pid=1168371) "full_attention",
251
+ (WorkerDict pid=1168371) "full_attention",
252
+ (WorkerDict pid=1168371) "full_attention",
253
+ (WorkerDict pid=1168371) "full_attention",
254
+ (WorkerDict pid=1168371) "full_attention",
255
+ (WorkerDict pid=1168371) "full_attention",
256
+ (WorkerDict pid=1168371) "full_attention",
257
+ (WorkerDict pid=1168371) "full_attention",
258
+ (WorkerDict pid=1168371) "full_attention",
259
+ (WorkerDict pid=1168371) "full_attention",
260
+ (WorkerDict pid=1168371) "full_attention",
261
+ (WorkerDict pid=1168371) "full_attention",
262
+ (WorkerDict pid=1168371) "full_attention",
263
+ (WorkerDict pid=1168371) "full_attention",
264
+ (WorkerDict pid=1168371) "full_attention",
265
+ (WorkerDict pid=1168371) "full_attention",
266
+ (WorkerDict pid=1168371) "full_attention",
267
+ (WorkerDict pid=1168371) "full_attention",
268
+ (WorkerDict pid=1168371) "full_attention"
269
+ (WorkerDict pid=1168371) ],
270
+ (WorkerDict pid=1168371) "max_position_embeddings": 128000,
271
+ (WorkerDict pid=1168371) "max_window_layers": 70,
272
+ (WorkerDict pid=1168371) "model_type": "qwen2_5_vl_text",
273
+ (WorkerDict pid=1168371) "num_attention_heads": 16,
274
+ (WorkerDict pid=1168371) "num_hidden_layers": 36,
275
+ (WorkerDict pid=1168371) "num_key_value_heads": 2,
276
+ (WorkerDict pid=1168371) "rms_norm_eps": 1e-06,
277
+ (WorkerDict pid=1168371) "rope_scaling": {
278
+ (WorkerDict pid=1168371) "mrope_section": [
279
+ (WorkerDict pid=1168371) 16,
280
+ (WorkerDict pid=1168371) 24,
281
+ (WorkerDict pid=1168371) 24
282
+ (WorkerDict pid=1168371) ],
283
+ (WorkerDict pid=1168371) "rope_type": "default",
284
+ (WorkerDict pid=1168371) "type": "default"
285
+ (WorkerDict pid=1168371) },
286
+ (WorkerDict pid=1168371) "rope_theta": 1000000.0,
287
+ (WorkerDict pid=1168371) "sliding_window": null,
288
+ (WorkerDict pid=1168371) "tie_word_embeddings": true,
289
+ (WorkerDict pid=1168371) "torch_dtype": "float32",
290
+ (WorkerDict pid=1168371) "use_cache": true,
291
+ (WorkerDict pid=1168371) "use_sliding_window": false,
292
+ (WorkerDict pid=1168371) "video_token_id": null,
293
+ (WorkerDict pid=1168371) "vision_end_token_id": 151653,
294
+ (WorkerDict pid=1168371) "vision_start_token_id": 151652,
295
+ (WorkerDict pid=1168371) "vision_token_id": 151654,
296
+ (WorkerDict pid=1168371) "vocab_size": 151936
297
+ (WorkerDict pid=1168371) },
298
+ (WorkerDict pid=1168371) "torch_dtype": "float32",
299
+ (WorkerDict pid=1168371) "transformers_version": "4.54.1",
300
+ (WorkerDict pid=1168371) "use_cache": true,
301
+ (WorkerDict pid=1168371) "use_sliding_window": false,
302
+ (WorkerDict pid=1168371) "video_token_id": 151656,
303
+ (WorkerDict pid=1168371) "vision_config": {
304
+ (WorkerDict pid=1168371) "depth": 32,
305
+ (WorkerDict pid=1168371) "fullatt_block_indexes": [
306
+ (WorkerDict pid=1168371) 7,
307
+ (WorkerDict pid=1168371) 15,
308
+ (WorkerDict pid=1168371) 23,
309
+ (WorkerDict pid=1168371) 31
310
+ (WorkerDict pid=1168371) ],
311
+ (WorkerDict pid=1168371) "hidden_act": "silu",
312
+ (WorkerDict pid=1168371) "hidden_size": 1280,
313
+ (WorkerDict pid=1168371) "in_channels": 3,
314
+ (WorkerDict pid=1168371) "in_chans": 3,
315
+ (WorkerDict pid=1168371) "initializer_range": 0.02,
316
+ (WorkerDict pid=1168371) "intermediate_size": 3420,
317
+ (WorkerDict pid=1168371) "model_type": "qwen2_5_vl",
318
+ (WorkerDict pid=1168371) "num_heads": 16,
319
+ (WorkerDict pid=1168371) "out_hidden_size": 2048,
320
+ (WorkerDict pid=1168371) "patch_size": 14,
321
+ (WorkerDict pid=1168371) "spatial_merge_size": 2,
322
+ (WorkerDict pid=1168371) "spatial_patch_size": 14,
323
+ (WorkerDict pid=1168371) "temporal_patch_size": 2,
324
+ (WorkerDict pid=1168371) "tokens_per_second": 2,
325
+ (WorkerDict pid=1168371) "torch_dtype": "float32",
326
+ (WorkerDict pid=1168371) "window_size": 112
327
+ (WorkerDict pid=1168371) },
328
+ (WorkerDict pid=1168371) "vision_end_token_id": 151653,
329
+ (WorkerDict pid=1168371) "vision_start_token_id": 151652,
330
+ (WorkerDict pid=1168371) "vision_token_id": 151654,
331
+ (WorkerDict pid=1168371) "vocab_size": 151936
332
+ (WorkerDict pid=1168371) }
333
+ (WorkerDict pid=1168371)
334
+ (WorkerDict pid=1168371) NCCL version 2.21.5+cuda12.4
335
+ (WorkerDict pid=1168371) Qwen2_5_VLForConditionalGeneration contains 3.75B parameters
336
+ (WorkerDict pid=1168371) wrap_policy: functools.partial(<function _or_policy at 0x7af6274bc5e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x7af6274bc4a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>})])
337
+ (WorkerDict pid=1170483) Actor use_remove_padding=False
338
+ (WorkerDict pid=1170483) wrap_policy: functools.partial(<function _or_policy at 0x78426bee45e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x78426bee44a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])(WorkerDict pid=1168371) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLForConditionalGeneration is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
339
+ (WorkerDict pid=1168371) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
340
+ (WorkerDict pid=1168371) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VisionTransformerPretrainedModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
341
+ (WorkerDict pid=1170483)
342
+ (WorkerDict pid=1170483) [rank1]:[W615 11:19:02.127933277 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 1] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
343
+
344
+ (WorkerDict pid=1168371) Model config after override: Qwen2_5_VLConfig {
345
+ (WorkerDict pid=1168371) "architectures": [
346
+ (WorkerDict pid=1168371) "Qwen2_5_VLForConditionalGeneration"
347
+ (WorkerDict pid=1168371) ],
348
+ (WorkerDict pid=1168371) "attention_dropout": 0.0,
349
+ (WorkerDict pid=1168371) "eos_token_id": 151645,
350
+ (WorkerDict pid=1168371) "hidden_act": "silu",
351
+ (WorkerDict pid=1168371) "hidden_size": 2048,
352
+ (WorkerDict pid=1168371) "image_token_id": 151655,
353
+ (WorkerDict pid=1168371) "initializer_range": 0.02,
354
+ (WorkerDict pid=1168371) "intermediate_size": 11008,
355
+ (WorkerDict pid=1168371) "max_position_embeddings": 128000,
356
+ (WorkerDict pid=1168371) "max_window_layers": 70,
357
+ (WorkerDict pid=1168371) "model_type": "qwen2_5_vl",
358
+ (WorkerDict pid=1168371) "num_attention_heads": 16,
359
+ (WorkerDict pid=1168371) "num_hidden_layers": 36,
360
+ (WorkerDict pid=1168371) "num_key_value_heads": 2,
361
+ (WorkerDict pid=1168371) "pad_token_id": 151643,
362
+ (WorkerDict pid=1168371) "rms_norm_eps": 1e-06,
363
+ (WorkerDict pid=1168371) "rope_scaling": {
364
+ (WorkerDict pid=1168371) "mrope_section": [
365
+ (WorkerDict pid=1168371) 16,
366
+ (WorkerDict pid=1168371) 24,
367
+ (WorkerDict pid=1168371) 24
368
+ (WorkerDict pid=1168371) ],
369
+ (WorkerDict pid=1168371) "rope_type": "default",
370
+ (WorkerDict pid=1168371) "type": "default"
371
+ (WorkerDict pid=1168371) },
372
+ (WorkerDict pid=1168371) "rope_theta": 1000000.0,
373
+ (WorkerDict pid=1168371) "sliding_window": 32768,
374
+ (WorkerDict pid=1168371) "text_config": {
375
+ (WorkerDict pid=1168371) "architectures": [
376
+ (WorkerDict pid=1168371) "Qwen2_5_VLForConditionalGeneration"
377
+ (WorkerDict pid=1168371) ],
378
+ (WorkerDict pid=1168371) "attention_dropout": 0.0,
379
+ (WorkerDict pid=1168371) "bos_token_id": 151643,
380
+ (WorkerDict pid=1168371) "eos_token_id": 151645,
381
+ (WorkerDict pid=1168371) "hidden_act": "silu",
382
+ (WorkerDict pid=1168371) "hidden_size": 2048,
383
+ (WorkerDict pid=1168371) "image_token_id": null,
384
+ (WorkerDict pid=1168371) "initializer_range": 0.02,
385
+ (WorkerDict pid=1168371) "intermediate_size": 11008,
386
+ (WorkerDict pid=1168371) "layer_types": [
387
+ (WorkerDict pid=1168371) "full_attention",
388
+ (WorkerDict pid=1168371) "full_attention",
389
+ (WorkerDict pid=1168371) "full_attention",
390
+ (WorkerDict pid=1168371) "full_attention",
391
+ (WorkerDict pid=1168371) "full_attention",
392
+ (WorkerDict pid=1168371) "full_attention",
393
+ (WorkerDict pid=1168371) "full_attention",
394
+ (WorkerDict pid=1168371) "full_attention",
395
+ (WorkerDict pid=1168371) "full_attention",
396
+ (WorkerDict pid=1168371) "full_attention",
397
+ (WorkerDict pid=1168371) "full_attention",
398
+ (WorkerDict pid=1168371) "full_attention",
399
+ (WorkerDict pid=1168371) "full_attention",
400
+ (WorkerDict pid=1168371) "full_attention",
401
+ (WorkerDict pid=1168371) "full_attention",
402
+ (WorkerDict pid=1168371) "full_attention",
403
+ (WorkerDict pid=1168371) "full_attention",
404
+ (WorkerDict pid=1168371) "full_attention",
405
+ (WorkerDict pid=1168371) "full_attention",
406
+ (WorkerDict pid=1168371) "full_attention",
407
+ (WorkerDict pid=1168371) "full_attention",
408
+ (WorkerDict pid=1168371) "full_attention",
409
+ (WorkerDict pid=1168371) "full_attention",
410
+ (WorkerDict pid=1168371) "full_attention",
411
+ (WorkerDict pid=1168371) "full_attention",
412
+ (WorkerDict pid=1168371) "full_attention",
413
+ (WorkerDict pid=1168371) "full_attention",
414
+ (WorkerDict pid=1168371) "full_attention",
415
+ (WorkerDict pid=1168371) "full_attention",
416
+ (WorkerDict pid=1168371) "full_attention",
417
+ (WorkerDict pid=1168371) "full_attention",
418
+ (WorkerDict pid=1168371) "full_attention",
419
+ (WorkerDict pid=1168371) "full_attention",
420
+ (WorkerDict pid=1168371) "full_attention",
421
+ (WorkerDict pid=1168371) "full_attention",
422
+ (WorkerDict pid=1168371) "full_attention"
423
+ (WorkerDict pid=1168371) ],
424
+ (WorkerDict pid=1168371) "max_position_embeddings": 128000,
425
+ (WorkerDict pid=1168371) "max_window_layers": 70,
426
+ (WorkerDict pid=1168371) "model_type": "qwen2_5_vl_text",
427
+ (WorkerDict pid=1168371) "num_attention_heads": 16,
428
+ (WorkerDict pid=1168371) "num_hidden_layers": 36,
429
+ (WorkerDict pid=1168371) "num_key_value_heads": 2,
430
+ (WorkerDict pid=1168371) "rms_norm_eps": 1e-06,
431
+ (WorkerDict pid=1168371) "rope_scaling": {
432
+ (WorkerDict pid=1168371) "mrope_section": [
433
+ (WorkerDict pid=1168371) 16,
434
+ (WorkerDict pid=1168371) 24,
435
+ (WorkerDict pid=1168371) 24
436
+ (WorkerDict pid=1168371) ],
437
+ (WorkerDict pid=1168371) "rope_type": "default",
438
+ (WorkerDict pid=1168371) "type": "default"
439
+ (WorkerDict pid=1168371) },
440
+ (WorkerDict pid=1168371) "rope_theta": 1000000.0,
441
+ (WorkerDict pid=1168371) "sliding_window": null,
442
+ (WorkerDict pid=1168371) "tie_word_embeddings": true,
443
+ (WorkerDict pid=1168371) "torch_dtype": "float32",
444
+ (WorkerDict pid=1168371) "use_cache": true,
445
+ (WorkerDict pid=1168371) "use_sliding_window": false,
446
+ (WorkerDict pid=1168371) "video_token_id": null,
447
+ (WorkerDict pid=1168371) "vision_end_token_id": 151653,
448
+ (WorkerDict pid=1168371) "vision_start_token_id": 151652,
449
+ (WorkerDict pid=1168371) "vision_token_id": 151654,
450
+ (WorkerDict pid=1168371) "vocab_size": 151936
451
+ (WorkerDict pid=1168371) },
452
+ (WorkerDict pid=1168371) "torch_dtype": "float32",
453
+ (WorkerDict pid=1168371) "transformers_version": "4.54.1",
454
+ (WorkerDict pid=1168371) "use_cache": true,
455
+ (WorkerDict pid=1168371) "use_sliding_window": false,
456
+ (WorkerDict pid=1168371) "video_token_id": 151656,
457
+ (WorkerDict pid=1168371) "vision_config": {
458
+ (WorkerDict pid=1168371) "depth": 32,
459
+ (WorkerDict pid=1168371) "fullatt_block_indexes": [
460
+ (WorkerDict pid=1168371) 7,
461
+ (WorkerDict pid=1168371) 15,
462
+ (WorkerDict pid=1168371) 23,
463
+ (WorkerDict pid=1168371) 31
464
+ (WorkerDict pid=1168371) ],
465
+ (WorkerDict pid=1168371) "hidden_act": "silu",
466
+ (WorkerDict pid=1168371) "hidden_size": 1280,
467
+ (WorkerDict pid=1168371) "in_channels": 3,
468
+ (WorkerDict pid=1168371) "in_chans": 3,
469
+ (WorkerDict pid=1168371) "initializer_range": 0.02,
470
+ (WorkerDict pid=1168371) "intermediate_size": 3420,
471
+ (WorkerDict pid=1168371) "model_type": "qwen2_5_vl",
472
+ (WorkerDict pid=1168371) "num_heads": 16,
473
+ (WorkerDict pid=1168371) "out_hidden_size": 2048,
474
+ (WorkerDict pid=1168371) "patch_size": 14,
475
+ (WorkerDict pid=1168371) "spatial_merge_size": 2,
476
+ (WorkerDict pid=1168371) "spatial_patch_size": 14,
477
+ (WorkerDict pid=1168371) "temporal_patch_size": 2,
478
+ (WorkerDict pid=1168371) "tokens_per_second": 2,
479
+ (WorkerDict pid=1168371) "torch_dtype": "float32",
480
+ (WorkerDict pid=1168371) "window_size": 112
481
+ (WorkerDict pid=1168371) },
482
+ (WorkerDict pid=1168371) "vision_end_token_id": 151653,
483
+ (WorkerDict pid=1168371) "vision_start_token_id": 151652,
484
+ (WorkerDict pid=1168371) "vision_token_id": 151654,(WorkerDict pid=1168371)
485
+ (WorkerDict pid=1168371)
486
+ (WorkerDict pid=1170483) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLTextModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)` [repeated 5x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/user-guides/configure-logging.html#log-deduplication for more options.)
487
+ (WorkerDict pid=1170483)
488
+ (WorkerDict pid=1168371)
489
+ (WorkerDict pid=1170483)
490
+ (WorkerDict pid=1168371)
491
+ (WorkerDict pid=1170483)
492
+ (WorkerDict pid=1168371)
493
+ (WorkerDict pid=1168371)
494
+ (WorkerDict pid=1168371)
495
+ (WorkerDict pid=1168371)
496
+ (WorkerDict pid=1168371) /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py:690: FutureWarning: FSDP.state_dict_type() and FSDP.set_state_dict_type() are being deprecated. Please use APIs, get_state_dict() and set_state_dict(), which can support different parallelisms, FSDP1, FSDP2, DDP. API doc: https://pytorch.org/docs/stable/distributed.checkpoint.html#torch.distributed.checkpoint.state_dict.get_state_dict .Tutorial: https://pytorch.org/tutorials/recipes/distributed_checkpoint_recipe.html .
497
+ (WorkerDict pid=1168371) warnings.warn(
498
+ (TaskRunner pid=1165231) Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): ray::WorkerDict.actor_rollout_generate_sequences() (pid=1170483, ip=172.20.115.25, actor_id=33049b605f0612dfcfe2c38801000000, repr=<verl.single_controller.ray.base.WorkerDict object at 0x7842040bb090>)
499
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
500
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
501
+ (TaskRunner pid=1165231) File "/mnt/share01/sqk/AnomSeer/verl/single_controller/ray/base.py", line 420, in func
502
+ (TaskRunner pid=1165231) return getattr(self.worker_dict[key], name)(*args, **kwargs)
503
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
504
+ (TaskRunner pid=1165231) File "/mnt/share01/sqk/AnomSeer/verl/single_controller/base/decorator.py", line 404, in inner
505
+ (TaskRunner pid=1165231) return func(*args, **kwargs)
506
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^
507
+ (TaskRunner pid=1165231) File "/mnt/share01/sqk/AnomSeer/verl/workers/fsdp_workers.py", line 552, in generate_sequences
508
+ (TaskRunner pid=1165231) with self.rollout_sharding_manager:
509
+ (TaskRunner pid=1165231) File "/mnt/share01/sqk/AnomSeer/verl/workers/sharding_manager/fsdp_vllm.py", line 134, in __enter__
510
+ (TaskRunner pid=1165231) loaded_params = model.load_weights(
511
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^
512
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/qwen2_5_vl.py", line 1126, in load_weights
513
+ (TaskRunner pid=1165231) return loader.load_weights(weights, mapper=self.hf_to_vllm_mapper)
514
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
515
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 261, in load_weights
516
+ (TaskRunner pid=1165231) autoloaded_weights = set(self._load_module("", self.module, weights))
517
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
518
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 222, in _load_module
519
+ (TaskRunner pid=1165231) yield from self._load_module(prefix,
520
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 195, in _load_module
521
+ (TaskRunner pid=1165231) loaded_params = module_load_weights(weights)
522
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
523
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/qwen2.py", line 486, in load_weights
524
+ (TaskRunner pid=1165231) return loader.load_weights(weights)
525
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
526
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 261, in load_weights
527
+ (TaskRunner pid=1165231) autoloaded_weights = set(self._load_module("", self.module, weights))
528
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
529
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 222, in _load_module
530
+ (TaskRunner pid=1165231) yield from self._load_module(prefix,
531
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 195, in _load_module
532
+ (TaskRunner pid=1165231) loaded_params = module_load_weights(weights)
533
+ (TaskRunner pid=1165231) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
534
+ (TaskRunner pid=1165231) File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/qwen2.py", line 405, in load_weights
535
+ (TaskRunner pid=1165231) param = params_dict[name]
536
+ (TaskRunner pid=1165231) ~~~~~~~~~~~^^^^^^
537
+ (TaskRunner pid=1165231) KeyError: 'visual.patch_embed.proj.weight'
538
+
539
+ (WorkerDict pid=1168371) "vocab_size": 151936
540
+ (WorkerDict pid=1168371) }
541
+ (WorkerDict pid=1168371)
542
+ (WorkerDict pid=1168371) Qwen2_5_VLForConditionalGeneration contains 3.75B parameters
543
+ (WorkerDict pid=1168371) wrap_policy: functools.partial(<function _or_policy at 0x7af6274bc5e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x7af6274bc4a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>})])
544
+ (WorkerDict pid=1168371) Actor use_remove_padding=False
545
+ (WorkerDict pid=1168371) Total steps: 472, num_warmup_steps: 0
546
+ (WorkerDict pid=1168371) Actor use_remove_padding=False
547
+ (WorkerDict pid=1168371) Before building vllm rollout, memory allocated (GB): 7.027174949645996, memory reserved (GB): 12.189453125
548
+ (WorkerDict pid=1168371) WARNING 06-15 11:21:42 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x7af2b75a5d90>
549
+ (WorkerDict pid=1170483) wrap_policy: functools.partial(<function _or_policy at 0x78426bee45e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x78426bee44a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
550
+ (WorkerDict pid=1170483) Total steps: 472, num_warmup_steps: 0
551
+ (WorkerDict pid=1170483) Actor use_remove_padding=False
552
+ (WorkerDict pid=1168371) WARNING 06-15 11:21:48 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
553
+ (WorkerDict pid=1170483) WARNING 06-15 11:21:42 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x783e7118be90>
554
+ (WorkerDict pid=1168371) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
555
+ (WorkerDict pid=1168371) After building vllm rollout, memory allocated (GB): 13.633802890777588, memory reserved (GB): 15.04296875
556
+ (WorkerDict pid=1168371) After building sharding manager, memory allocated (GB): 13.633802890777588, memory reserved (GB): 15.04296875
557
+ (WorkerDict pid=1170483) WARNING 06-15 11:21:48 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
558
+ (TaskRunner pid=1165231) Using LocalLogger is deprecated. The constructor API will change
559
+ Error executing job with overrides: ['algorithm.adv_estimator=grpo', 'data.train_files=/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_quarter.parquet', 'data.val_files=/tmp/anomseer_eval_smoke.parquet', 'data.train_batch_size=16', 'data.max_prompt_length=1024', 'data.max_response_length=1024', 'data.filter_overlong_prompts=True', 'data.truncation=error', 'data.image_key=images', 'actor_rollout_ref.model.path=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface', 'actor_rollout_ref.model.lora_rank=0', 'actor_rollout_ref.model.lora_alpha=16', 'actor_rollout_ref.model.lora_dropout=0.0', "actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'", 'actor_rollout_ref.actor.optim.lr=1e-4', 'actor_rollout_ref.model.use_remove_padding=False', 'actor_rollout_ref.actor.ppo_mini_batch_size=16', 'actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2', 'actor_rollout_ref.actor.use_kl_loss=True', 'actor_rollout_ref.actor.kl_loss_coef=0.001', 'actor_rollout_ref.actor.kl_loss_type=low_var_kl', 'actor_rollout_ref.model.enable_gradient_checkpointing=True', 'actor_rollout_ref.actor.fsdp_config.param_offload=False', 'actor_rollout_ref.actor.fsdp_config.optimizer_offload=False', 'actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8', 'actor_rollout_ref.rollout.tensor_model_parallel_size=2', 'actor_rollout_ref.rollout.name=vllm', 'actor_rollout_ref.rollout.gpu_memory_utilization=0.4', 'actor_rollout_ref.rollout.enable_chunked_prefill=False', 'actor_rollout_ref.rollout.enforce_eager=False', 'actor_rollout_ref.rollout.free_cache_engine=False', 'actor_rollout_ref.rollout.n=5', 'actor_rollout_ref.rollout.val_kwargs.do_sample=False', 'actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8', 'actor_rollout_ref.ref.fsdp_config.param_offload=True', 'algorithm.kl_ctrl.kl_coef=0.001', 'trainer.critic_warmup=0', "trainer.logger=['console']", 'trainer.project_name=anomseer', 'trainer.experiment_name=anomseer_rats_uni_2gpu', 'trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu', 'trainer.n_gpus_per_node=2', 'trainer.nnodes=1', 'trainer.save_freq=500', 'trainer.test_freq=10', 'trainer.val_only=True', 'trainer.val_before_train=True', 'trainer.resume_mode=disable', 'trainer.total_epochs=1', 'ts.use_sem_orth=True', 'ts.adv_mix=0.3', 'ts.similarity_method=ot', 'ts.ot_eps=0.08', 'ts.ot_n_iter=50', 'data.val_batch_size=1', 'trainer.test_freq=-1']
560
+ Traceback (most recent call last):
561
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/main_ppo.py", line 68, in main
562
+ ray.get(runner.run.remote(config))
563
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/auto_init_hook.py", line 22, in auto_init_wrapper
564
+ return fn(*args, **kwargs)
565
+ ^^^^^^^^^^^^^^^^^^^
566
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/client_mode_hook.py", line 107, in wrapper
567
+ return func(*args, **kwargs)
568
+ ^^^^^^^^^^^^^^^^^^^^^
569
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py", line 2980, in get
570
+ values, debugger_breakpoint = worker.get_objects(
571
+ ^^^^^^^^^^^^^^^^^^^
572
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py", line 1023, in get_objects
573
+ raise value.as_instanceof_cause()
574
+ ray.exceptions.RayTaskError(KeyError): ray::TaskRunner.run() (pid=1165231, ip=172.20.115.25, actor_id=58caf0b1df3b7b7227854f3c01000000, repr=<main_ppo.TaskRunner object at 0x74f018438150>)
575
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
576
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
577
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/main_ppo.py", line 173, in run
578
+ trainer.fit()
579
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/ppo/ray_trainer.py", line 2160, in fit
580
+ val_metrics = self._validate()
581
+ ^^^^^^^^^^^^^^^^
582
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/ppo/ray_trainer.py", line 1849, in _validate
583
+ test_output_gen_batch_padded = self.actor_rollout_wg.generate_sequences(test_gen_batch_padded)
584
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
585
+ File "/mnt/share01/sqk/AnomSeer/verl/single_controller/ray/base.py", line 43, in func
586
+ output = ray.get(output)
587
+ ^^^^^^^^^^^^^^^
588
+ ^^^^^^^^^^^^^^^^^^^
589
+ ^^^^^^^^^^^^^^^^^^^^^
590
+ ^^^^^^^^^^^^^^^^^^^
591
+ ray.exceptions.RayTaskError(KeyError): ray::WorkerDict.actor_rollout_generate_sequences() (pid=1168371, ip=172.20.115.25, actor_id=ccb80723c0cfb29a26c02beb01000000, repr=<verl.single_controller.ray.base.WorkerDict object at 0x7af5bfb1a510>)
592
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
593
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
594
+ File "/mnt/share01/sqk/AnomSeer/verl/single_controller/ray/base.py", line 420, in func
595
+ return getattr(self.worker_dict[key], name)(*args, **kwargs)
596
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
597
+ File "/mnt/share01/sqk/AnomSeer/verl/single_controller/base/decorator.py", line 404, in inner
598
+ return func(*args, **kwargs)
599
+ ^^^^^^^^^^^^^^^^^^^^^
600
+ File "/mnt/share01/sqk/AnomSeer/verl/workers/fsdp_workers.py", line 552, in generate_sequences
601
+ with self.rollout_sharding_manager:
602
+ File "/mnt/share01/sqk/AnomSeer/verl/workers/sharding_manager/fsdp_vllm.py", line 134, in __enter__
603
+ loaded_params = model.load_weights(
604
+ ^^^^^^^^^^^^^^^^^^^
605
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/qwen2_5_vl.py", line 1126, in load_weights
606
+ return loader.load_weights(weights, mapper=self.hf_to_vllm_mapper)
607
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
608
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 261, in load_weights
609
+ autoloaded_weights = set(self._load_module("", self.module, weights))
610
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
611
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 222, in _load_module
612
+ yield from self._load_module(prefix,
613
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 195, in _load_module
614
+ loaded_params = module_load_weights(weights)
615
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
616
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/qwen2.py", line 486, in load_weights
617
+ return loader.load_weights(weights)
618
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
619
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 261, in load_weights
620
+ autoloaded_weights = set(self._load_module("", self.module, weights))
621
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
622
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 222, in _load_module
623
+ yield from self._load_module(prefix,
624
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/utils.py", line 195, in _load_module
625
+ loaded_params = module_load_weights(weights)
626
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
627
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/vllm/model_executor/models/qwen2.py", line 405, in load_weights
628
+ param = params_dict[name]
629
+ ~~~~~~~~~~~^^^^^^
630
+ KeyError: 'visual.patch_embed.proj.weight'
631
+
632
+ Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
633
+ (WorkerDict pid=1170483) /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py:690: FutureWarning: FSDP.state_dict_type() and FSDP.set_state_dict_type() are being deprecated. Please use APIs, get_state_dict() and set_state_dict(), which can support different parallelisms, FSDP1, FSDP2, DDP. API doc: https://pytorch.org/docs/stable/distributed.checkpoint.html#torch.distributed.checkpoint.state_dict.get_state_dict .Tutorial: https://pytorch.org/tutorials/recipes/distributed_checkpoint_recipe.html .
634
+ (WorkerDict pid=1170483) warnings.warn(
635
+ (WorkerDict pid=1170483) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_smoke_fixed_v2_20260615.log ADDED
@@ -0,0 +1,803 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [log] saving full output to: /mnt/share01/sqk/AnomSeer/logs/anomseer_rats_uni_full_20260612_184427_exp3/rats_eval_lora_smoke_fixed_v2_20260615.log
2
+ [config] tuning=LoRA (r=16, alpha=16, target=q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj) | lr=1e-4 | gpus=2 | tensor-parallel (TP=2)
3
+ [config] model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface
4
+ [config] python=/home/suiqk/anaconda3/envs/scalerag-ts-v4/bin/python | stage=eval
5
+ [stage] EVAL (model=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface, gpus=2, tp=2, lora_rank=0)
6
+ 2026-06-15 11:25:40,665 INFO worker.py:2012 -- Started a local Ray instance.
7
+ /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py:2051: FutureWarning: Tip: In future versions of Ray, Ray will no longer override accelerator visible devices env var if num_gpus=0 or num_gpus=None (default). To enable this behavior and turn off this error message, set RAY_ACCEL_ENV_VAR_OVERRIDE_ON_ZERO=0
8
+ warnings.warn(
9
+ (TaskRunner pid=1203084) {'actor_rollout_ref': {'actor': {'clip_ratio': 0.2,
10
+ (TaskRunner pid=1203084) 'entropy_coeff': 0.001,
11
+ (TaskRunner pid=1203084) 'fsdp_config': {'fsdp_size': -1,
12
+ (TaskRunner pid=1203084) 'optimizer_offload': False,
13
+ (TaskRunner pid=1203084) 'param_offload': False,
14
+ (TaskRunner pid=1203084) 'wrap_policy': {'min_num_params': 0}},
15
+ (TaskRunner pid=1203084) 'grad_clip': 1.0,
16
+ (TaskRunner pid=1203084) 'kl_loss_coef': 0.001,
17
+ (TaskRunner pid=1203084) 'kl_loss_type': 'low_var_kl',
18
+ (TaskRunner pid=1203084) 'optim': {'lr': 0.0001,
19
+ (TaskRunner pid=1203084) 'lr_warmup_steps': -1,
20
+ (TaskRunner pid=1203084) 'lr_warmup_steps_ratio': 0.0,
21
+ (TaskRunner pid=1203084) 'min_lr_ratio': None,
22
+ (TaskRunner pid=1203084) 'total_training_steps': -1,
23
+ (TaskRunner pid=1203084) 'warmup_style': 'constant'},
24
+ (TaskRunner pid=1203084) 'ppo_epochs': 1,
25
+ (TaskRunner pid=1203084) 'ppo_max_token_len_per_gpu': 16384,
26
+ (TaskRunner pid=1203084) 'ppo_micro_batch_size': None,
27
+ (TaskRunner pid=1203084) 'ppo_micro_batch_size_per_gpu': 2,
28
+ (TaskRunner pid=1203084) 'ppo_mini_batch_size': 16,
29
+ (TaskRunner pid=1203084) 'shuffle': False,
30
+ (TaskRunner pid=1203084) 'strategy': 'fsdp',
31
+ (TaskRunner pid=1203084) 'ulysses_sequence_parallel_size': 1,
32
+ (TaskRunner pid=1203084) 'use_dynamic_bsz': False,
33
+ (TaskRunner pid=1203084) 'use_kl_loss': True,
34
+ (TaskRunner pid=1203084) 'use_torch_compile': True},
35
+ (TaskRunner pid=1203084) 'hybrid_engine': True,
36
+ (TaskRunner pid=1203084) 'model': {'enable_gradient_checkpointing': True,
37
+ (TaskRunner pid=1203084) 'external_lib': None,
38
+ (TaskRunner pid=1203084) 'lora_alpha': 16,
39
+ (TaskRunner pid=1203084) 'lora_dropout': 0.0,
40
+ (TaskRunner pid=1203084) 'lora_rank': 0,
41
+ (TaskRunner pid=1203084) 'lora_target_modules': 'q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',
42
+ (TaskRunner pid=1203084) 'override_config': {},
43
+ (TaskRunner pid=1203084) 'path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
44
+ (TaskRunner pid=1203084) 'use_remove_padding': False},
45
+ (TaskRunner pid=1203084) 'ref': {'fsdp_config': {'param_offload': True,
46
+ (TaskRunner pid=1203084) 'wrap_policy': {'min_num_params': 0}},
47
+ (TaskRunner pid=1203084) 'log_prob_max_token_len_per_gpu': 16384,
48
+ (TaskRunner pid=1203084) 'log_prob_micro_batch_size': None,
49
+ (TaskRunner pid=1203084) 'log_prob_micro_batch_size_per_gpu': 8,
50
+ (TaskRunner pid=1203084) 'log_prob_use_dynamic_bsz': False,
51
+ (TaskRunner pid=1203084) 'ulysses_sequence_parallel_size': 1},
52
+ (TaskRunner pid=1203084) 'rollout': {'disable_log_stats': True,
53
+ (TaskRunner pid=1203084) 'do_sample': True,
54
+ (TaskRunner pid=1203084) 'dtype': 'bfloat16',
55
+ (TaskRunner pid=1203084) 'enable_chunked_prefill': False,
56
+ (TaskRunner pid=1203084) 'enforce_eager': False,
57
+ (TaskRunner pid=1203084) 'free_cache_engine': False,
58
+ (TaskRunner pid=1203084) 'gpu_memory_utilization': 0.4,
59
+ (TaskRunner pid=1203084) 'ignore_eos': False,
60
+ (TaskRunner pid=1203084) 'load_format': 'dummy_dtensor',
61
+ (TaskRunner pid=1203084) 'log_prob_max_token_len_per_gpu': 16384,
62
+ (TaskRunner pid=1203084) 'log_prob_micro_batch_size': None,
63
+ (TaskRunner pid=1203084) 'log_prob_micro_batch_size_per_gpu': 8,
64
+ (TaskRunner pid=1203084) 'log_prob_use_dynamic_bsz': False,
65
+ (TaskRunner pid=1203084) 'max_model_len': None,
66
+ (TaskRunner pid=1203084) 'max_num_batched_tokens': 8192,
67
+ (TaskRunner pid=1203084) 'max_num_seqs': 1024,
68
+ (TaskRunner pid=1203084) 'n': 5,
69
+ (TaskRunner pid=1203084) 'name': 'vllm',
70
+ (TaskRunner pid=1203084) 'prompt_length': 1024,
71
+ (TaskRunner pid=1203084) 'response_length': 1024,
72
+ (TaskRunner pid=1203084) 'temperature': 1.0,
73
+ (TaskRunner pid=1203084) 'tensor_model_parallel_size': 2,
74
+ (TaskRunner pid=1203084) 'top_k': -1,
75
+ (TaskRunner pid=1203084) 'top_p': 1,
76
+ (TaskRunner pid=1203084) 'use_fire_sampling': False,
77
+ (TaskRunner pid=1203084) 'val_kwargs': {'do_sample': False,
78
+ (TaskRunner pid=1203084) 'n': 1,
79
+ (TaskRunner pid=1203084) 'temperature': 0.4,
80
+ (TaskRunner pid=1203084) 'top_k': -1,
81
+ (TaskRunner pid=1203084) 'top_p': 1.0}}},
82
+ (TaskRunner pid=1203084) 'algorithm': {'adv_estimator': 'grpo',
83
+ (TaskRunner pid=1203084) 'gamma': 1.0,
84
+ (TaskRunner pid=1203084) 'kl_ctrl': {'kl_coef': 0.001, 'type': 'fixed'},
85
+ (TaskRunner pid=1203084) 'kl_penalty': 'kl',
86
+ (TaskRunner pid=1203084) 'lam': 1.0},
87
+ (TaskRunner pid=1203084) 'critic': {'cliprange_value': 0.5,
88
+ (TaskRunner pid=1203084) 'forward_max_token_len_per_gpu': 32768,
89
+ (TaskRunner pid=1203084) 'forward_micro_batch_size': None,
90
+ (TaskRunner pid=1203084) 'forward_micro_batch_size_per_gpu': None,
91
+ (TaskRunner pid=1203084) 'grad_clip': 1.0,
92
+ (TaskRunner pid=1203084) 'model': {'enable_gradient_checkpointing': True,
93
+ (TaskRunner pid=1203084) 'external_lib': None,
94
+ (TaskRunner pid=1203084) 'fsdp_config': {'fsdp_size': -1,(TaskRunner pid=1203084) DeprecationWarning: `ray.state.available_resources_per_node` is a private attribute and access will be removed in a future Ray version.
95
+
96
+ (TaskRunner pid=1203084) 'optimizer_offload': False,
97
+ (TaskRunner pid=1203084) 'param_offload': False,
98
+ (TaskRunner pid=1203084) 'wrap_policy': {'min_num_params': 0}},
99
+ (TaskRunner pid=1203084) 'override_config': {},
100
+ (TaskRunner pid=1203084) 'path': '~/models/deepseek-llm-7b-chat',
101
+ (TaskRunner pid=1203084) 'tokenizer_path': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
102
+ (TaskRunner pid=1203084) 'use_remove_padding': False},
103
+ (TaskRunner pid=1203084) 'optim': {'lr': 1e-05,
104
+ (TaskRunner pid=1203084) 'lr_warmup_steps_ratio': 0.0,
105
+ (TaskRunner pid=1203084) 'min_lr_ratio': None,
106
+ (TaskRunner pid=1203084) 'total_training_steps': -1,
107
+ (TaskRunner pid=1203084) 'warmup_style': 'constant'},
108
+ (TaskRunner pid=1203084) 'ppo_epochs': 1,
109
+ (TaskRunner pid=1203084) 'ppo_max_token_len_per_gpu': 32768,
110
+ (TaskRunner pid=1203084) 'ppo_micro_batch_size': None,
111
+ (TaskRunner pid=1203084) 'ppo_micro_batch_size_per_gpu': None,
112
+ (TaskRunner pid=1203084) 'ppo_mini_batch_size': 16,
113
+ (TaskRunner pid=1203084) 'shuffle': False,
114
+ (TaskRunner pid=1203084) 'strategy': 'fsdp',
115
+ (TaskRunner pid=1203084) 'ulysses_sequence_parallel_size': 1,
116
+ (TaskRunner pid=1203084) 'use_dynamic_bsz': False},
117
+ (TaskRunner pid=1203084) 'custom_reward_function': {'name': 'compute_score', 'path': None},
118
+ (TaskRunner pid=1203084) 'data': {'filter_overlong_prompts': True,
119
+ (TaskRunner pid=1203084) 'image_key': 'images',
120
+ (TaskRunner pid=1203084) 'max_prompt_length': 1024,
121
+ (TaskRunner pid=1203084) 'max_response_length': 1024,
122
+ (TaskRunner pid=1203084) 'prompt_key': 'prompt',
123
+ (TaskRunner pid=1203084) 'return_raw_chat': False,
124
+ (TaskRunner pid=1203084) 'return_raw_input_ids': False,
125
+ (TaskRunner pid=1203084) 'shuffle': True,
126
+ (TaskRunner pid=1203084) 'tokenizer': None,
127
+ (TaskRunner pid=1203084) 'train_batch_size': 16,
128
+ (TaskRunner pid=1203084) 'train_files': '/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_quarter.parquet',
129
+ (TaskRunner pid=1203084) 'truncation': 'error',
130
+ (TaskRunner pid=1203084) 'val_batch_size': 1,
131
+ (TaskRunner pid=1203084) 'val_files': '/tmp/anomseer_eval_smoke.parquet'},
132
+ (TaskRunner pid=1203084) 'reward_model': {'enable': False,
133
+ (TaskRunner pid=1203084) 'forward_max_token_len_per_gpu': 32768,
134
+ (TaskRunner pid=1203084) 'max_length': None,
135
+ (TaskRunner pid=1203084) 'micro_batch_size': None,
136
+ (TaskRunner pid=1203084) 'micro_batch_size_per_gpu': None,
137
+ (TaskRunner pid=1203084) 'model': {'external_lib': None,
138
+ (TaskRunner pid=1203084) 'fsdp_config': {'fsdp_size': -1,
139
+ (TaskRunner pid=1203084) 'param_offload': False,
140
+ (TaskRunner pid=1203084) 'wrap_policy': {'min_num_params': 0}},
141
+ (TaskRunner pid=1203084) 'input_tokenizer': '/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface',
142
+ (TaskRunner pid=1203084) 'path': '~/models/FsfairX-LLaMA3-RM-v0.1',
143
+ (TaskRunner pid=1203084) 'use_remove_padding': False},
144
+ (TaskRunner pid=1203084) 'reward_manager': 'naive',
145
+ (TaskRunner pid=1203084) 'strategy': 'fsdp',
146
+ (TaskRunner pid=1203084) 'ulysses_sequence_parallel_size': 1,
147
+ (TaskRunner pid=1203084) 'use_dynamic_bsz': False},
148
+ (TaskRunner pid=1203084) 'trainer': {'balance_batch': True,
149
+ (TaskRunner pid=1203084) 'critic_warmup': 0,
150
+ (TaskRunner pid=1203084) 'default_hdfs_dir': None,
151
+ (TaskRunner pid=1203084) 'default_local_dir': 'checkpoints/anomseer/anomseer_rats_uni_2gpu',
152
+ (TaskRunner pid=1203084) 'del_local_ckpt_after_load': False,
153
+ (TaskRunner pid=1203084) 'experiment_name': 'anomseer_rats_uni_2gpu',
154
+ (TaskRunner pid=1203084) 'logger': ['console'],
155
+ (TaskRunner pid=1203084) 'n_gpus_per_node': 2,
156
+ (TaskRunner pid=1203084) 'nnodes': 1,
157
+ (TaskRunner pid=1203084) 'project_name': 'anomseer',
158
+ (TaskRunner pid=1203084) 'remove_previous_ckpt_in_save': False,
159
+ (TaskRunner pid=1203084) 'resume_from_path': False,
160
+ (TaskRunner pid=1203084) 'resume_mode': 'disable',
161
+ (TaskRunner pid=1203084) 'save_freq': 500,
162
+ (TaskRunner pid=1203084) 'test_freq': -1,
163
+ (TaskRunner pid=1203084) 'total_epochs': 1,
164
+ (TaskRunner pid=1203084) 'total_training_steps': None,
165
+ (TaskRunner pid=1203084) 'val_before_train': True,
166
+ (TaskRunner pid=1203084) 'val_generations_to_log_to_wandb': 0,
167
+ (TaskRunner pid=1203084) 'val_only': True},
168
+ (TaskRunner pid=1203084) 'ts': {'adv_mix': 0.3,
169
+ (TaskRunner pid=1203084) 'clip_pooling': 'mean',
170
+ (TaskRunner pid=1203084) 'clip_temperature': 1.0,
171
+ (TaskRunner pid=1203084) 'ot_eps': 0.08,
172
+ (TaskRunner pid=1203084) 'ot_n_iter': 50,
173
+ (TaskRunner pid=1203084) 'similarity_method': 'ot',
174
+ (TaskRunner pid=1203084) 'use_sem_orth': True}}
175
+ (TaskRunner pid=1203084) reward_manager_name: anomts
176
+ (TaskRunner pid=1203084) WARNING: val_batch_size is deprecated. Validation datasets are sent to inference engines as a whole batch, which will schedule the memory themselves.
177
+ (TaskRunner pid=1203084) [validate_config] All configuration checks passed successfully!
178
+ (TaskRunner pid=1203084) dataset len: 7566
179
+ (TaskRunner pid=1203084) filter dataset len: 7566
180
+ (TaskRunner pid=1203084) dataset len: 1
181
+ (TaskRunner pid=1203084) filter dataset len: 1
182
+ (TaskRunner pid=1203084) Size of train dataloader: 472
183
+ (TaskRunner pid=1203084) Total training steps: 472
184
+ (WorkerDict pid=1206072) Model config after override: Qwen2_5_VLConfig {
185
+ (WorkerDict pid=1206072) "architectures": [
186
+ (WorkerDict pid=1206072) "Qwen2_5_VLForConditionalGeneration"
187
+ (WorkerDict pid=1206072) ],
188
+ (WorkerDict pid=1206072) "attention_dropout": 0.0,
189
+ (WorkerDict pid=1206072) "eos_token_id": 151645,
190
+ (WorkerDict pid=1206072) "hidden_act": "silu",
191
+ (WorkerDict pid=1206072) "hidden_size": 2048,
192
+ (WorkerDict pid=1206072) "image_token_id": 151655,
193
+ (WorkerDict pid=1206072) "initializer_range": 0.02,
194
+ (WorkerDict pid=1206072) "intermediate_size": 11008,
195
+ (WorkerDict pid=1206072) "max_position_embeddings": 128000,
196
+ (WorkerDict pid=1206072) "max_window_layers": 70,
197
+ (WorkerDict pid=1206072) "model_type": "qwen2_5_vl",
198
+ (WorkerDict pid=1206072) "num_attention_heads": 16,
199
+ (WorkerDict pid=1206072) "num_hidden_layers": 36,
200
+ (WorkerDict pid=1206072) "num_key_value_heads": 2,(WorkerDict pid=1208116)
201
+ (WorkerDict pid=1206072)
202
+ (WorkerDict pid=1206072)
203
+ (WorkerDict pid=1206072)
204
+ (WorkerDict pid=1208116)
205
+ (WorkerDict pid=1206072) [rank0]:[W615 11:26:41.949330793 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 0] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
206
+
207
+ (WorkerDict pid=1206072) "pad_token_id": 151643,
208
+ (WorkerDict pid=1206072) "rms_norm_eps": 1e-06,
209
+ (WorkerDict pid=1206072) "rope_scaling": {
210
+ (WorkerDict pid=1206072) "mrope_section": [
211
+ (WorkerDict pid=1206072) 16,
212
+ (WorkerDict pid=1206072) 24,
213
+ (WorkerDict pid=1206072) 24
214
+ (WorkerDict pid=1206072) ],
215
+ (WorkerDict pid=1206072) "rope_type": "default",
216
+ (WorkerDict pid=1206072) "type": "default"
217
+ (WorkerDict pid=1206072) },
218
+ (WorkerDict pid=1206072) "rope_theta": 1000000.0,
219
+ (WorkerDict pid=1206072) "sliding_window": 32768,
220
+ (WorkerDict pid=1206072) "text_config": {
221
+ (WorkerDict pid=1206072) "architectures": [
222
+ (WorkerDict pid=1206072) "Qwen2_5_VLForConditionalGeneration"
223
+ (WorkerDict pid=1206072) ],
224
+ (WorkerDict pid=1206072) "attention_dropout": 0.0,
225
+ (WorkerDict pid=1206072) "bos_token_id": 151643,
226
+ (WorkerDict pid=1206072) "eos_token_id": 151645,
227
+ (WorkerDict pid=1206072) "hidden_act": "silu",
228
+ (WorkerDict pid=1206072) "hidden_size": 2048,
229
+ (WorkerDict pid=1206072) "image_token_id": null,
230
+ (WorkerDict pid=1206072) "initializer_range": 0.02,
231
+ (WorkerDict pid=1206072) "intermediate_size": 11008,
232
+ (WorkerDict pid=1206072) "layer_types": [
233
+ (WorkerDict pid=1206072) "full_attention",
234
+ (WorkerDict pid=1206072) "full_attention",
235
+ (WorkerDict pid=1206072) "full_attention",
236
+ (WorkerDict pid=1206072) "full_attention",
237
+ (WorkerDict pid=1206072) "full_attention",
238
+ (WorkerDict pid=1206072) "full_attention",
239
+ (WorkerDict pid=1206072) "full_attention",
240
+ (WorkerDict pid=1206072) "full_attention",
241
+ (WorkerDict pid=1206072) "full_attention",
242
+ (WorkerDict pid=1206072) "full_attention",
243
+ (WorkerDict pid=1206072) "full_attention",
244
+ (WorkerDict pid=1206072) "full_attention",
245
+ (WorkerDict pid=1206072) "full_attention",
246
+ (WorkerDict pid=1206072) "full_attention",
247
+ (WorkerDict pid=1206072) "full_attention",
248
+ (WorkerDict pid=1206072) "full_attention",
249
+ (WorkerDict pid=1206072) "full_attention",
250
+ (WorkerDict pid=1206072) "full_attention",
251
+ (WorkerDict pid=1206072) "full_attention",
252
+ (WorkerDict pid=1206072) "full_attention",
253
+ (WorkerDict pid=1206072) "full_attention",
254
+ (WorkerDict pid=1206072) "full_attention",
255
+ (WorkerDict pid=1206072) "full_attention",
256
+ (WorkerDict pid=1206072) "full_attention",
257
+ (WorkerDict pid=1206072) "full_attention",
258
+ (WorkerDict pid=1206072) "full_attention",
259
+ (WorkerDict pid=1206072) "full_attention",
260
+ (WorkerDict pid=1206072) "full_attention",
261
+ (WorkerDict pid=1206072) "full_attention",
262
+ (WorkerDict pid=1206072) "full_attention",
263
+ (WorkerDict pid=1206072) "full_attention",
264
+ (WorkerDict pid=1206072) "full_attention",
265
+ (WorkerDict pid=1206072) "full_attention",
266
+ (WorkerDict pid=1206072) "full_attention",
267
+ (WorkerDict pid=1206072) "full_attention",
268
+ (WorkerDict pid=1206072) "full_attention"
269
+ (WorkerDict pid=1206072) ],
270
+ (WorkerDict pid=1206072) "max_position_embeddings": 128000,
271
+ (WorkerDict pid=1206072) "max_window_layers": 70,
272
+ (WorkerDict pid=1206072) "model_type": "qwen2_5_vl_text",
273
+ (WorkerDict pid=1206072) "num_attention_heads": 16,
274
+ (WorkerDict pid=1206072) "num_hidden_layers": 36,
275
+ (WorkerDict pid=1206072) "num_key_value_heads": 2,
276
+ (WorkerDict pid=1206072) "rms_norm_eps": 1e-06,
277
+ (WorkerDict pid=1206072) "rope_scaling": {
278
+ (WorkerDict pid=1206072) "mrope_section": [
279
+ (WorkerDict pid=1206072) 16,
280
+ (WorkerDict pid=1206072) 24,
281
+ (WorkerDict pid=1206072) 24
282
+ (WorkerDict pid=1206072) ],
283
+ (WorkerDict pid=1206072) "rope_type": "default",
284
+ (WorkerDict pid=1206072) "type": "default"
285
+ (WorkerDict pid=1206072) },
286
+ (WorkerDict pid=1206072) "rope_theta": 1000000.0,
287
+ (WorkerDict pid=1206072) "sliding_window": null,
288
+ (WorkerDict pid=1206072) "tie_word_embeddings": true,
289
+ (WorkerDict pid=1206072) "torch_dtype": "float32",
290
+ (WorkerDict pid=1206072) "use_cache": true,
291
+ (WorkerDict pid=1206072) "use_sliding_window": false,
292
+ (WorkerDict pid=1206072) "video_token_id": null,
293
+ (WorkerDict pid=1206072) "vision_end_token_id": 151653,
294
+ (WorkerDict pid=1206072) "vision_start_token_id": 151652,
295
+ (WorkerDict pid=1206072) "vision_token_id": 151654,
296
+ (WorkerDict pid=1206072) "vocab_size": 151936
297
+ (WorkerDict pid=1206072) },
298
+ (WorkerDict pid=1206072) "torch_dtype": "float32",
299
+ (WorkerDict pid=1206072) "transformers_version": "4.54.1",
300
+ (WorkerDict pid=1206072) "use_cache": true,
301
+ (WorkerDict pid=1206072) "use_sliding_window": false,
302
+ (WorkerDict pid=1206072) "video_token_id": 151656,
303
+ (WorkerDict pid=1206072) "vision_config": {
304
+ (WorkerDict pid=1206072) "depth": 32,
305
+ (WorkerDict pid=1206072) "fullatt_block_indexes": [
306
+ (WorkerDict pid=1206072) 7,
307
+ (WorkerDict pid=1206072) 15,
308
+ (WorkerDict pid=1206072) 23,
309
+ (WorkerDict pid=1206072) 31
310
+ (WorkerDict pid=1206072) ],
311
+ (WorkerDict pid=1206072) "hidden_act": "silu",
312
+ (WorkerDict pid=1206072) "hidden_size": 1280,
313
+ (WorkerDict pid=1206072) "in_channels": 3,
314
+ (WorkerDict pid=1206072) "in_chans": 3,
315
+ (WorkerDict pid=1206072) "initializer_range": 0.02,
316
+ (WorkerDict pid=1206072) "intermediate_size": 3420,
317
+ (WorkerDict pid=1206072) "model_type": "qwen2_5_vl",
318
+ (WorkerDict pid=1206072) "num_heads": 16,
319
+ (WorkerDict pid=1206072) "out_hidden_size": 2048,
320
+ (WorkerDict pid=1206072) "patch_size": 14,
321
+ (WorkerDict pid=1206072) "spatial_merge_size": 2,
322
+ (WorkerDict pid=1206072) "spatial_patch_size": 14,
323
+ (WorkerDict pid=1206072) "temporal_patch_size": 2,
324
+ (WorkerDict pid=1206072) "tokens_per_second": 2,
325
+ (WorkerDict pid=1206072) "torch_dtype": "float32",
326
+ (WorkerDict pid=1206072) "window_size": 112
327
+ (WorkerDict pid=1206072) },
328
+ (WorkerDict pid=1206072) "vision_end_token_id": 151653,
329
+ (WorkerDict pid=1206072) "vision_start_token_id": 151652,
330
+ (WorkerDict pid=1206072) "vision_token_id": 151654,
331
+ (WorkerDict pid=1206072) "vocab_size": 151936
332
+ (WorkerDict pid=1206072) }
333
+ (WorkerDict pid=1206072)
334
+ (WorkerDict pid=1206072) NCCL version 2.21.5+cuda12.4
335
+ (WorkerDict pid=1206072) Qwen2_5_VLForConditionalGeneration contains 3.75B parameters
336
+ (WorkerDict pid=1206072) wrap_policy: functools.partial(<function _or_policy at 0x7cebba2d45e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x7cebba2d44a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
337
+ (WorkerDict pid=1206072) Actor use_remove_padding=False
338
+ (WorkerDict pid=1208116) wrap_policy: functools.partial(<function _or_policy at 0x79a367cd45e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x79a367cd44a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
339
+ (WorkerDict pid=1206072) Model config after override: Qwen2_5_VLConfig {
340
+ (WorkerDict pid=1206072) "architectures": [
341
+ (WorkerDict pid=1206072) "Qwen2_5_VLForConditionalGeneration"
342
+ (WorkerDict pid=1206072) ],
343
+ (WorkerDict pid=1206072) "attention_dropout": 0.0,
344
+ (WorkerDict pid=1206072) "eos_token_id": 151645,
345
+ (WorkerDict pid=1206072) "hidden_act": "silu",
346
+ (WorkerDict pid=1206072) "hidden_size": 2048,
347
+ (WorkerDict pid=1206072) "image_token_id": 151655,
348
+ (WorkerDict pid=1206072) "initializer_range": 0.02,
349
+ (WorkerDict pid=1206072) "intermediate_size": 11008,
350
+ (WorkerDict pid=1206072) "max_position_embeddings": 128000,
351
+ (WorkerDict pid=1206072) "max_window_layers": 70,
352
+ (WorkerDict pid=1206072) "model_type": "qwen2_5_vl",
353
+ (WorkerDict pid=1206072) "num_attention_heads": 16,
354
+ (WorkerDict pid=1206072) "num_hidden_layers": 36,
355
+ (WorkerDict pid=1206072) "num_key_value_heads": 2,
356
+ (WorkerDict pid=1206072) "pad_token_id": 151643,
357
+ (WorkerDict pid=1206072) "rms_norm_eps": 1e-06,
358
+ (WorkerDict pid=1206072) "rope_scaling": {
359
+ (WorkerDict pid=1206072) "mrope_section": [
360
+ (WorkerDict pid=1206072) 16,
361
+ (WorkerDict pid=1206072) 24,
362
+ (WorkerDict pid=1206072) 24
363
+ (WorkerDict pid=1206072) ],
364
+ (WorkerDict pid=1206072) "rope_type": "default",
365
+ (WorkerDict pid=1206072) "type": "default"
366
+ (WorkerDict pid=1206072) },
367
+ (WorkerDict pid=1206072) "rope_theta": 1000000.0,
368
+ (WorkerDict pid=1206072) "sliding_window": 32768,
369
+ (WorkerDict pid=1206072) "text_config": {
370
+ (WorkerDict pid=1206072) "architectures": [
371
+ (WorkerDict pid=1206072) "Qwen2_5_VLForConditionalGeneration"
372
+ (WorkerDict pid=1206072) ],
373
+ (WorkerDict pid=1206072) "attention_dropout": 0.0,
374
+ (WorkerDict pid=1206072) "bos_token_id": 151643,
375
+ (WorkerDict pid=1206072) "eos_token_id": 151645,
376
+ (WorkerDict pid=1206072) "hidden_act": "silu",
377
+ (WorkerDict pid=1206072) "hidden_size": 2048,
378
+ (WorkerDict pid=1206072) "image_token_id": null,
379
+ (WorkerDict pid=1206072) "initializer_range": 0.02,
380
+ (WorkerDict pid=1206072) "intermediate_size": 11008,
381
+ (WorkerDict pid=1206072) "layer_types": [
382
+ (WorkerDict pid=1206072) "full_attention",
383
+ (WorkerDict pid=1206072) "full_attention",
384
+ (WorkerDict pid=1206072) "full_attention",
385
+ (WorkerDict pid=1206072) "full_attention",
386
+ (WorkerDict pid=1206072) "full_attention",
387
+ (WorkerDict pid=1206072) "full_attention",
388
+ (WorkerDict pid=1206072) "full_attention",
389
+ (WorkerDict pid=1206072) "full_attention",
390
+ (WorkerDict pid=1206072) "full_attention",
391
+ (WorkerDict pid=1206072) "full_attention",
392
+ (WorkerDict pid=1206072) "full_attention",
393
+ (WorkerDict pid=1206072) "full_attention",
394
+ (WorkerDict pid=1206072) "full_attention",
395
+ (WorkerDict pid=1206072) "full_attention",
396
+ (WorkerDict pid=1206072) "full_attention",
397
+ (WorkerDict pid=1206072) "full_attention",
398
+ (WorkerDict pid=1206072) "full_attention",
399
+ (WorkerDict pid=1206072) "full_attention",
400
+ (WorkerDict pid=1206072) "full_attention",
401
+ (WorkerDict pid=1206072) "full_attention",
402
+ (WorkerDict pid=1206072) "full_attention",
403
+ (WorkerDict pid=1206072) "full_attention",
404
+ (WorkerDict pid=1206072) "full_attention",
405
+ (WorkerDict pid=1206072) "full_attention",
406
+ (WorkerDict pid=1206072) "full_attention",
407
+ (WorkerDict pid=1206072) "full_attention",
408
+ (WorkerDict pid=1206072) "full_attention",
409
+ (WorkerDict pid=1206072) "full_attention",
410
+ (WorkerDict pid=1206072) "full_attention",
411
+ (WorkerDict pid=1206072) "full_attention",
412
+ (WorkerDict pid=1206072) "full_attention",
413
+ (WorkerDict pid=1206072) "full_attention",
414
+ (WorkerDict pid=1206072) "full_attention",
415
+ (WorkerDict pid=1206072) "full_attention",
416
+ (WorkerDict pid=1206072) "full_attention",
417
+ (WorkerDict pid=1206072) "full_attention"
418
+ (WorkerDict pid=1206072) ],
419
+ (WorkerDict pid=1206072) "max_position_embeddings": 128000,
420
+ (WorkerDict pid=1206072) "max_window_layers": 70,
421
+ (WorkerDict pid=1206072) "model_type": "qwen2_5_vl_text",
422
+ (WorkerDict pid=1206072) "num_attention_heads": 16,
423
+ (WorkerDict pid=1206072) "num_hidden_layers": 36,
424
+ (WorkerDict pid=1206072) "num_key_value_heads": 2,
425
+ (WorkerDict pid=1206072) "rms_norm_eps": 1e-06,
426
+ (WorkerDict pid=1206072) "rope_scaling": {
427
+ (WorkerDict pid=1206072) "mrope_section": [
428
+ (WorkerDict pid=1206072) 16,
429
+ (WorkerDict pid=1206072) 24,
430
+ (WorkerDict pid=1206072) 24
431
+ (WorkerDict pid=1206072) ],
432
+ (WorkerDict pid=1206072) "rope_type": "default",
433
+ (WorkerDict pid=1206072) "type": "default"
434
+ (WorkerDict pid=1206072) },
435
+ (WorkerDict pid=1206072) "rope_theta": 1000000.0,
436
+ (WorkerDict pid=1206072) "sliding_window": null,
437
+ (WorkerDict pid=1206072) "tie_word_embeddings": true,
438
+ (WorkerDict pid=1206072) "torch_dtype": "float32",
439
+ (WorkerDict pid=1206072) "use_cache": true,
440
+ (WorkerDict pid=1206072) "use_sliding_window": false,
441
+ (WorkerDict pid=1206072) "video_token_id": null,
442
+ (WorkerDict pid=1206072) "vision_end_token_id": 151653,
443
+ (WorkerDict pid=1206072) "vision_start_token_id": 151652,
444
+ (WorkerDict pid=1206072) "vision_token_id": 151654,
445
+ (WorkerDict pid=1206072) "vocab_size": 151936
446
+ (WorkerDict pid=1206072) },
447
+ (WorkerDict pid=1206072) "torch_dtype": "float32",
448
+ (WorkerDict pid=1206072) "transformers_version": "4.54.1",
449
+ (WorkerDict pid=1206072) "use_cache": true,
450
+ (WorkerDict pid=1206072) "use_sliding_window": false,
451
+ (WorkerDict pid=1206072) "video_token_id": 151656,
452
+ (WorkerDict pid=1206072) "vision_config": {
453
+ (WorkerDict pid=1206072) "depth": 32,
454
+ (WorkerDict pid=1206072) "fullatt_block_indexes": [
455
+ (WorkerDict pid=1206072) 7,
456
+ (WorkerDict pid=1206072) 15,
457
+ (WorkerDict pid=1206072) 23,
458
+ (WorkerDict pid=1206072) 31
459
+ (WorkerDict pid=1206072) ],
460
+ (WorkerDict pid=1206072) "hidden_act": "silu",
461
+ (WorkerDict pid=1206072) "hidden_size": 1280,
462
+ (WorkerDict pid=1206072) "in_channels": 3,
463
+ (WorkerDict pid=1206072) "in_chans": 3,
464
+ (WorkerDict pid=1206072) "initializer_range": 0.02,
465
+ (WorkerDict pid=1206072) "intermediate_size": 3420,
466
+ (WorkerDict pid=1206072) "model_type": "qwen2_5_vl",
467
+ (WorkerDict pid=1206072) "num_heads": 16,
468
+ (WorkerDict pid=1206072) "out_hidden_size": 2048,
469
+ (WorkerDict pid=1206072) "patch_size": 14,
470
+ (WorkerDict pid=1206072) "spatial_merge_size": 2,
471
+ (WorkerDict pid=1206072) "spatial_patch_size": 14,
472
+ (WorkerDict pid=1206072) "temporal_patch_size": 2,
473
+ (WorkerDict pid=1206072) "tokens_per_second": 2,
474
+ (WorkerDict pid=1206072) "torch_dtype": "float32",
475
+ (WorkerDict pid=1206072) "window_size": 112
476
+ (WorkerDict pid=1206072) },
477
+ (WorkerDict pid=1206072) "vision_end_token_id": 151653,
478
+ (WorkerDict pid=1206072) "vision_start_token_id": 151652,
479
+ (WorkerDict pid=1206072) "vision_token_id": 151654,(WorkerDict pid=1206072) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLForConditionalGeneration is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
480
+ (WorkerDict pid=1206072) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
481
+ (WorkerDict pid=1206072) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VisionTransformerPretrainedModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
482
+ (WorkerDict pid=1206072) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLTextModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
483
+ (WorkerDict pid=1206072)
484
+ (WorkerDict pid=1208116)
485
+ (WorkerDict pid=1208116) [rank1]:[W615 11:26:41.958300854 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 1] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
486
+ (WorkerDict pid=1206072)
487
+ (WorkerDict pid=1208116) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLTextModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)` [repeated 4x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/user-guides/configure-logging.html#log-deduplication for more options.)
488
+ (WorkerDict pid=1208116)
489
+ (WorkerDict pid=1206072)
490
+ (WorkerDict pid=1208116)
491
+ (WorkerDict pid=1206072)
492
+ (WorkerDict pid=1208116)
493
+ (WorkerDict pid=1206072)
494
+ (WorkerDict pid=1206072)
495
+ (WorkerDict pid=1206072)
496
+ (WorkerDict pid=1206072)
497
+ (WorkerDict pid=1208116) /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py:690: FutureWarning: FSDP.state_dict_type() and FSDP.set_state_dict_type() are being deprecated. Please use APIs, get_state_dict() and set_state_dict(), which can support different parallelisms, FSDP1, FSDP2, DDP. API doc: https://pytorch.org/docs/stable/distributed.checkpoint.html#torch.distributed.checkpoint.state_dict.get_state_dict .Tutorial: https://pytorch.org/tutorials/recipes/distributed_checkpoint_recipe.html .
498
+ (WorkerDict pid=1208116) warnings.warn(
499
+
500
+ (WorkerDict pid=1206072) "vocab_size": 151936
501
+ (WorkerDict pid=1206072) }
502
+ (WorkerDict pid=1206072)
503
+ (WorkerDict pid=1206072) Qwen2_5_VLForConditionalGeneration contains 3.75B parameters
504
+ (WorkerDict pid=1206072) wrap_policy: functools.partial(<function _or_policy at 0x7cebba2d45e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x7cebba2d44a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
505
+ (WorkerDict pid=1208116) Actor use_remove_padding=False
506
+ (WorkerDict pid=1206072) Total steps: 472, num_warmup_steps: 0
507
+ (WorkerDict pid=1206072) Actor use_remove_padding=False
508
+ (WorkerDict pid=1206072) Before building vllm rollout, memory allocated (GB): 7.027174949645996, memory reserved (GB): 12.189453125
509
+ (WorkerDict pid=1208116) WARNING 06-15 11:29:28 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x799fe047bf50>
510
+ (WorkerDict pid=1208116) wrap_policy: functools.partial(<function _or_policy at 0x79a367cd45e0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x79a367cd44a0>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
511
+ (WorkerDict pid=1208116) Total steps: 472, num_warmup_steps: 0
512
+ (WorkerDict pid=1208116) Actor use_remove_padding=False
513
+ (WorkerDict pid=1208116) WARNING 06-15 11:29:36 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
514
+ (WorkerDict pid=1206072) WARNING 06-15 11:29:28 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x7ce8382d5cd0>
515
+ (WorkerDict pid=1208116) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
516
+ (WorkerDict pid=1206072) WARNING 06-15 11:29:37 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
517
+ (WorkerDict pid=1206072) After building vllm rollout, memory allocated (GB): 13.633802890777588, memory reserved (GB): 15.04296875
518
+ (WorkerDict pid=1206072) After building sharding manager, memory allocated (GB): 13.633802890777588, memory reserved (GB): 15.04296875
519
+ (TaskRunner pid=1203084) Using LocalLogger is deprecated. The constructor API will change
520
+ (TaskRunner pid=1203084) validation generation end
521
+ (TaskRunner pid=1203084) [prompt] <|im_start|>system
522
+ (TaskRunner pid=1203084) You are a helpful assistant.<|im_end|>
523
+ (TaskRunner pid=1203084) <|im_start|>user
524
+ (TaskRunner pid=1203084) <|vision_start|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|image_pad|><|vision_end|>
525
+ (TaskRunner pid=1203084) You are an expert in univariate time-series anomaly detection. The figure shows a single-channel time series of length 64 from the "Server-IOPS" domain.
526
+ (TaskRunner pid=1203084)
527
+ (TaskRunner pid=1203084) Decide whether the series is normal or contains an anomaly. If it is anomalous, choose the single most appropriate anomaly type from the following 15 categories (format `id: name — description`):
528
+ (TaskRunner pid=1203084) 0: Normal Sequence — There are no abnormal situations in this time series.
529
+ (TaskRunner pid=1203084) 1: Point Anomaly — A single data point significantly deviates from the local or global pattern of the sequence.
530
+ (TaskRunner pid=1203084) 2: Periodic Change Anomaly — The original periodic pattern is disrupted, e.g. the period is broken or the amplitude becomes anomalous.
531
+ (TaskRunner pid=1203084) 3: Trend Change Anomaly — A sudden change in the long-term trend of the time series.
532
+ (TaskRunner pid=1203084) 4: Change Point Anomaly — Statistical properties (e.g. mean, variance) change abruptly at certain points.
533
+ (TaskRunner pid=1203084) 5: Distributional Change Anomaly — The statistical distribution of the time series changes significantly.
534
+ (TaskRunner pid=1203084) 6: Amplitude Anomaly — The amplitude of data points exceeds the normal upper and lower bounds.
535
+ (TaskRunner pid=1203084) 7: Pattern Change Anomaly — The pattern of the time series suddenly changes from one form to another.
536
+ (TaskRunner pid=1203084) 8: Sparse Anomaly — Isolated anomalous patterns occasionally appear in a long time series.
537
+ (TaskRunner pid=1203084) 9: Repeated Value Anomaly — Continuous or intermittent repeated values disrupt the normal fluctuation pattern.
538
+ (TaskRunner pid=1203084) 10: Sudden Flatline Anomaly — The time series suddenly becomes a flat line with no normal fluctuations.
539
+ (TaskRunner pid=1203084) 11: Drift Anomaly — The data gradually drifts away from the normal level.
540
+ (TaskRunner pid=1203084) 12: Sudden Spike Anomaly — The data suddenly spikes or drops within a short time and then returns to normal.
541
+ (TaskRunner pid=1203084) 13: Continuous Segment Anomaly — A continuous segment of data points deviates from the normal pattern.
542
+ (TaskRunner pid=1203084) 14: Nonlinear Pattern Anomaly — Nonlinear changes appear in the sequence, breaking the original linear rule.
543
+ (TaskRunner pid=1203084)
544
+ (TaskRunner pid=1203084) Reason step by step inside <think>...</think> based on the visual shape of the series, then output exactly one line with your final answer:
545
+ (TaskRunner pid=1203084) <class>one exact category name from the list above</class>
546
+ (TaskRunner pid=1203084) If the series is normal, use <class>Normal Sequence</class>.<|im_end|>
547
+ (TaskRunner pid=1203084) <|im_start|>assistant
548
+ (TaskRunner pid=1203084)
549
+ (TaskRunner pid=1203084) [response] <think></think>
550
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
551
+ (TaskRunner pid=1203084)
552
+ (TaskRunner pid=1203084) <think></think>
553
+ (TaskRunner pid=1203084)
554
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
555
+ (TaskRunner pid=1203084)
556
+ (TaskRunner pid=1203084) <think></think>
557
+ (TaskRunner pid=1203084)
558
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
559
+ (TaskRunner pid=1203084)
560
+ (TaskRunner pid=1203084) <think></think>
561
+ (TaskRunner pid=1203084)
562
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
563
+ (TaskRunner pid=1203084)
564
+ (TaskRunner pid=1203084) <think></think>
565
+ (TaskRunner pid=1203084)
566
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
567
+ (TaskRunner pid=1203084)
568
+ (TaskRunner pid=1203084) <think></think>
569
+ (TaskRunner pid=1203084)
570
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
571
+ (TaskRunner pid=1203084)
572
+ (TaskRunner pid=1203084) <think></think>
573
+ (TaskRunner pid=1203084)
574
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
575
+ (TaskRunner pid=1203084)
576
+ (TaskRunner pid=1203084) <think></think>
577
+ (TaskRunner pid=1203084)
578
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
579
+ (TaskRunner pid=1203084)
580
+ (TaskRunner pid=1203084) <think></think>
581
+ (TaskRunner pid=1203084)
582
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
583
+ (TaskRunner pid=1203084)
584
+ (TaskRunner pid=1203084) <think></think>
585
+ (TaskRunner pid=1203084)
586
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
587
+ (TaskRunner pid=1203084)
588
+ (TaskRunner pid=1203084) <think></think>
589
+ (TaskRunner pid=1203084)
590
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
591
+ (TaskRunner pid=1203084)
592
+ (TaskRunner pid=1203084) <think></think>
593
+ (TaskRunner pid=1203084)
594
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
595
+ (TaskRunner pid=1203084)
596
+ (TaskRunner pid=1203084) <think></think>
597
+ (TaskRunner pid=1203084)
598
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
599
+ (TaskRunner pid=1203084)
600
+ (TaskRunner pid=1203084) <think></think>
601
+ (TaskRunner pid=1203084)
602
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
603
+ (TaskRunner pid=1203084)
604
+ (TaskRunner pid=1203084) <think></think>
605
+ (TaskRunner pid=1203084)
606
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
607
+ (TaskRunner pid=1203084)
608
+ (TaskRunner pid=1203084) <think></think>
609
+ (TaskRunner pid=1203084)
610
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
611
+ (TaskRunner pid=1203084)
612
+ (TaskRunner pid=1203084) <think></think>
613
+ (TaskRunner pid=1203084)
614
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
615
+ (TaskRunner pid=1203084)
616
+ (TaskRunner pid=1203084) <think></think>
617
+ (TaskRunner pid=1203084)
618
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
619
+ (TaskRunner pid=1203084)
620
+ (TaskRunner pid=1203084) <think></think>
621
+ (TaskRunner pid=1203084)
622
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
623
+ (TaskRunner pid=1203084)
624
+ (TaskRunner pid=1203084) <think></think>
625
+ (TaskRunner pid=1203084)
626
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
627
+ (TaskRunner pid=1203084)
628
+ (TaskRunner pid=1203084) <think></think>
629
+ (TaskRunner pid=1203084)
630
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
631
+ (TaskRunner pid=1203084)
632
+ (TaskRunner pid=1203084) <think></think>
633
+ (TaskRunner pid=1203084)
634
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
635
+ (TaskRunner pid=1203084)
636
+ (TaskRunner pid=1203084) <think></think>
637
+ (TaskRunner pid=1203084)
638
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
639
+ (TaskRunner pid=1203084)
640
+ (TaskRunner pid=1203084) <think></think>
641
+ (TaskRunner pid=1203084)
642
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
643
+ (TaskRunner pid=1203084)
644
+ (TaskRunner pid=1203084) <think></think>
645
+ (TaskRunner pid=1203084)
646
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
647
+ (TaskRunner pid=1203084)
648
+ (TaskRunner pid=1203084) <think></think>
649
+ (TaskRunner pid=1203084)
650
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
651
+ (TaskRunner pid=1203084)
652
+ (TaskRunner pid=1203084) <think></think>
653
+ (TaskRunner pid=1203084)
654
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
655
+ (TaskRunner pid=1203084)
656
+ (TaskRunner pid=1203084) <think></think>
657
+ (TaskRunner pid=1203084)
658
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
659
+ (TaskRunner pid=1203084)
660
+ (TaskRunner pid=1203084) <think></think>
661
+ (TaskRunner pid=1203084)
662
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
663
+ (TaskRunner pid=1203084)
664
+ (TaskRunner pid=1203084) <think></think>
665
+ (TaskRunner pid=1203084)
666
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
667
+ (TaskRunner pid=1203084)
668
+ (TaskRunner pid=1203084) <think></think>
669
+ (TaskRunner pid=1203084)
670
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
671
+ (TaskRunner pid=1203084)
672
+ (TaskRunner pid=1203084) <think></think>
673
+ (TaskRunner pid=1203084)
674
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
675
+ (TaskRunner pid=1203084)
676
+ (TaskRunner pid=1203084) <think></think>
677
+ (TaskRunner pid=1203084)
678
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
679
+ (TaskRunner pid=1203084)
680
+ (TaskRunner pid=1203084) <think></think>
681
+ (TaskRunner pid=1203084)
682
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
683
+ (TaskRunner pid=1203084)
684
+ (TaskRunner pid=1203084) <think></think>
685
+ (TaskRunner pid=1203084)
686
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
687
+ (TaskRunner pid=1203084)
688
+ (TaskRunner pid=1203084) <think></think>
689
+ (TaskRunner pid=1203084)
690
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
691
+ (TaskRunner pid=1203084)
692
+ (TaskRunner pid=1203084) <think></think>
693
+ (TaskRunner pid=1203084)
694
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
695
+ (TaskRunner pid=1203084)
696
+ (TaskRunner pid=1203084) <think></think>
697
+ (TaskRunner pid=1203084)
698
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
699
+ (TaskRunner pid=1203084)
700
+ (TaskRunner pid=1203084) <think></think>
701
+ (TaskRunner pid=1203084)
702
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
703
+ (TaskRunner pid=1203084)
704
+ (TaskRunner pid=1203084) <think></think>
705
+ (TaskRunner pid=1203084)
706
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
707
+ (TaskRunner pid=1203084)
708
+ (TaskRunner pid=1203084) <think></think>
709
+ (TaskRunner pid=1203084)
710
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
711
+ (TaskRunner pid=1203084)
712
+ (TaskRunner pid=1203084) <think></think>
713
+ (TaskRunner pid=1203084)
714
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
715
+ (TaskRunner pid=1203084)
716
+ (TaskRunner pid=1203084) <think></think>
717
+ (TaskRunner pid=1203084)
718
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
719
+ (TaskRunner pid=1203084)
720
+ (TaskRunner pid=1203084) <think></think>
721
+ (TaskRunner pid=1203084)
722
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
723
+ (TaskRunner pid=1203084)
724
+ (TaskRunner pid=1203084) <think></think>
725
+ (TaskRunner pid=1203084)
726
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
727
+ (TaskRunner pid=1203084)
728
+ (TaskRunner pid=1203084) <think></think>
729
+ (TaskRunner pid=1203084)
730
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
731
+ (TaskRunner pid=1203084)
732
+ (TaskRunner pid=1203084) <think></think>
733
+ (TaskRunner pid=1203084)
734
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
735
+ (TaskRunner pid=1203084)
736
+ (TaskRunner pid=1203084) <think></think>
737
+ (TaskRunner pid=1203084)
738
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
739
+ (TaskRunner pid=1203084)
740
+ (TaskRunner pid=1203084) <think></think>
741
+ (TaskRunner pid=1203084)
742
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
743
+ (TaskRunner pid=1203084)
744
+ (TaskRunner pid=1203084) <think></think>
745
+ (TaskRunner pid=1203084)
746
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
747
+ (TaskRunner pid=1203084)
748
+ (TaskRunner pid=1203084) <think></think>
749
+ (TaskRunner pid=1203084)
750
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
751
+ (TaskRunner pid=1203084)
752
+ (TaskRunner pid=1203084) <think></think>
753
+ (TaskRunner pid=1203084)
754
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
755
+ (TaskRunner pid=1203084)
756
+ (TaskRunner pid=1203084) <think></think>
757
+ (TaskRunner pid=1203084)
758
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
759
+ (TaskRunner pid=1203084)
760
+ (TaskRunner pid=1203084) <think></think>
761
+ (TaskRunner pid=1203084)
762
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
763
+ (TaskRunner pid=1203084)
764
+ (TaskRunner pid=1203084) <think></think>
765
+ (TaskRunner pid=1203084)
766
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
767
+ (TaskRunner pid=1203084)
768
+ (TaskRunner pid=1203084) <think></think>
769
+ (TaskRunner pid=1203084)
770
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
771
+ (TaskRunner pid=1203084)
772
+ (TaskRunner pid=1203084) <think></think>
773
+ (TaskRunner pid=1203084)
774
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
775
+ (TaskRunner pid=1203084)
776
+ (TaskRunner pid=1203084) <think></think>
777
+ (TaskRunner pid=1203084)
778
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
779
+ (TaskRunner pid=1203084)
780
+ (TaskRunner pid=1203084) <think></think>
781
+ (TaskRunner pid=1203084)
782
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
783
+ (TaskRunner pid=1203084)
784
+ (TaskRunner pid=1203084) <think></think>
785
+ (TaskRunner pid=1203084)
786
+ (TaskRunner pid=1203084) <class>Sudden Spike Anomaly</class>
787
+ (TaskRunner pid=1203084)
788
+ (TaskRunner pid=1203084) <think></think>
789
+ (TaskRunner pid=1203084) Detected new reward function format (3 return values).
790
+ (WorkerDict pid=1206072) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
791
+ (WorkerDict pid=1206072) /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py:690: FutureWarning: FSDP.state_dict_type() and FSDP.set_state_dict_type() are being deprecated. Please use APIs, get_state_dict() and set_state_dict(), which can support different parallelisms, FSDP1, FSDP2, DDP. API doc: https://pytorch.org/docs/stable/distributed.checkpoint.html#torch.distributed.checkpoint.state_dict.get_state_dict .Tutorial: https://pytorch.org/tutorials/recipes/distributed_checkpoint_recipe.html .
792
+ (WorkerDict pid=1206072) warnings.warn(
793
+ (TaskRunner pid=1203084) ("Initial validation metrics: {'val/reward_score/timeseries_rats': "
794
+ (TaskRunner pid=1203084) "0.20000000298023224, 'val/metrics_overall/mean_affi precision': 0.0, "
795
+ (TaskRunner pid=1203084) "'val/metrics_overall/mean_affi recall': 0.0, 'val/metrics_overall/mean_affi "
796
+ (TaskRunner pid=1203084) "f1': 0.0, 'val/metrics_overall/mean_fmt_score': 1.0, "
797
+ (TaskRunner pid=1203084) "'val/metrics_overall/mean_class acc': 0.0, 'val/num_total_samples': 1, "
798
+ (TaskRunner pid=1203084) "'val/num_valid_samples': 1, 'val/num_invalid_predictions': 0, "
799
+ (TaskRunner pid=1203084) "'val/type_accuracy': 0.0, 'val/type_precision_macro': 0.0, "
800
+ (TaskRunner pid=1203084) "'val/type_recall_macro': 0.0, 'val/type_f1_macro': 0.0, "
801
+ (TaskRunner pid=1203084) "'val/binary_accuracy': 1.0, 'val/binary_precision_macro': 1.0, "
802
+ (TaskRunner pid=1203084) "'val/binary_recall_macro': 1.0, 'val/binary_f1_macro': 1.0}")
803
+ (TaskRunner pid=1203084) step:0 - val/reward_score/timeseries_rats:0.200 - val/metrics_overall/mean_affi precision:0.000 - val/metrics_overall/mean_affi recall:0.000 - val/metrics_overall/mean_affi f1:0.000 - val/metrics_overall/mean_fmt_score:1.000 - val/metrics_overall/mean_class acc:0.000 - val/num_total_samples:1.000 - val/num_valid_samples:1.000 - val/num_invalid_predictions:0.000 - val/type_accuracy:0.000 - val/type_precision_macro:0.000 - val/type_recall_macro:0.000 - val/type_f1_macro:0.000 - val/binary_accuracy:1.000 - val/binary_precision_macro:1.000 - val/binary_recall_macro:1.000 - val/binary_f1_macro:1.000
logs/rats_eval_chunked_check.log ADDED
The diff for this file is too large to render. See raw diff
 
logs/rats_eval_full.log ADDED
@@ -0,0 +1,569 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [log] saving full output to: /mnt/share01/sqk/AnomSeer/logs/rats_eval_full.log
2
+ [config] tuning=LoRA (r=16, alpha=16, target=q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj) | lr=1e-4 | gpus=2 | tensor-parallel (TP=2)
3
+ [config] model=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
4
+ [config] python=/home/suiqk/anaconda3/envs/scalerag-ts-v4/bin/python | stage=eval
5
+ [stage] EVAL (model=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct, gpus=2, tp=2)
6
+ 2026-06-12 11:58:39,437 INFO worker.py:2012 -- Started a local Ray instance.
7
+ /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py:2051: FutureWarning: Tip: In future versions of Ray, Ray will no longer override accelerator visible devices env var if num_gpus=0 or num_gpus=None (default). To enable this behavior and turn off this error message, set RAY_ACCEL_ENV_VAR_OVERRIDE_ON_ZERO=0
8
+ warnings.warn(
9
+ (TaskRunner pid=2835960) {'actor_rollout_ref': {'actor': {'clip_ratio': 0.2,
10
+ (TaskRunner pid=2835960) 'entropy_coeff': 0.001,
11
+ (TaskRunner pid=2835960) 'fsdp_config': {'fsdp_size': -1,
12
+ (TaskRunner pid=2835960) 'optimizer_offload': False,
13
+ (TaskRunner pid=2835960) 'param_offload': False,
14
+ (TaskRunner pid=2835960) 'wrap_policy': {'min_num_params': 0}},
15
+ (TaskRunner pid=2835960) 'grad_clip': 1.0,
16
+ (TaskRunner pid=2835960) 'kl_loss_coef': 0.001,
17
+ (TaskRunner pid=2835960) 'kl_loss_type': 'low_var_kl',
18
+ (TaskRunner pid=2835960) 'optim': {'lr': 0.0001,
19
+ (TaskRunner pid=2835960) 'lr_warmup_steps': -1,
20
+ (TaskRunner pid=2835960) 'lr_warmup_steps_ratio': 0.0,
21
+ (TaskRunner pid=2835960) 'min_lr_ratio': None,
22
+ (TaskRunner pid=2835960) 'total_training_steps': -1,
23
+ (TaskRunner pid=2835960) 'warmup_style': 'constant'},
24
+ (TaskRunner pid=2835960) 'ppo_epochs': 1,
25
+ (TaskRunner pid=2835960) 'ppo_max_token_len_per_gpu': 16384,
26
+ (TaskRunner pid=2835960) 'ppo_micro_batch_size': None,
27
+ (TaskRunner pid=2835960) 'ppo_micro_batch_size_per_gpu': 2,
28
+ (TaskRunner pid=2835960) 'ppo_mini_batch_size': 16,
29
+ (TaskRunner pid=2835960) 'shuffle': False,
30
+ (TaskRunner pid=2835960) 'strategy': 'fsdp',
31
+ (TaskRunner pid=2835960) 'ulysses_sequence_parallel_size': 1,
32
+ (TaskRunner pid=2835960) 'use_dynamic_bsz': False,
33
+ (TaskRunner pid=2835960) 'use_kl_loss': True,
34
+ (TaskRunner pid=2835960) 'use_torch_compile': True},
35
+ (TaskRunner pid=2835960) 'hybrid_engine': True,
36
+ (TaskRunner pid=2835960) 'model': {'enable_gradient_checkpointing': True,
37
+ (TaskRunner pid=2835960) 'external_lib': None,
38
+ (TaskRunner pid=2835960) 'lora_alpha': 16,
39
+ (TaskRunner pid=2835960) 'lora_dropout': 0.0,
40
+ (TaskRunner pid=2835960) 'lora_rank': 16,
41
+ (TaskRunner pid=2835960) 'lora_target_modules': 'q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',
42
+ (TaskRunner pid=2835960) 'override_config': {},
43
+ (TaskRunner pid=2835960) 'path': '/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct',
44
+ (TaskRunner pid=2835960) 'use_remove_padding': False},
45
+ (TaskRunner pid=2835960) 'ref': {'fsdp_config': {'param_offload': True,
46
+ (TaskRunner pid=2835960) 'wrap_policy': {'min_num_params': 0}},
47
+ (TaskRunner pid=2835960) 'log_prob_max_token_len_per_gpu': 16384,
48
+ (TaskRunner pid=2835960) 'log_prob_micro_batch_size': None,
49
+ (TaskRunner pid=2835960) 'log_prob_micro_batch_size_per_gpu': 8,
50
+ (TaskRunner pid=2835960) 'log_prob_use_dynamic_bsz': False,
51
+ (TaskRunner pid=2835960) 'ulysses_sequence_parallel_size': 1},
52
+ (TaskRunner pid=2835960) 'rollout': {'disable_log_stats': True,
53
+ (TaskRunner pid=2835960) 'do_sample': True,
54
+ (TaskRunner pid=2835960) 'dtype': 'bfloat16',
55
+ (TaskRunner pid=2835960) 'enable_chunked_prefill': False,
56
+ (TaskRunner pid=2835960) 'enforce_eager': False,
57
+ (TaskRunner pid=2835960) 'free_cache_engine': False,
58
+ (TaskRunner pid=2835960) 'gpu_memory_utilization': 0.4,
59
+ (TaskRunner pid=2835960) 'ignore_eos': False,
60
+ (TaskRunner pid=2835960) 'load_format': 'dummy_dtensor',
61
+ (TaskRunner pid=2835960) 'log_prob_max_token_len_per_gpu': 16384,
62
+ (TaskRunner pid=2835960) 'log_prob_micro_batch_size': None,
63
+ (TaskRunner pid=2835960) 'log_prob_micro_batch_size_per_gpu': 8,
64
+ (TaskRunner pid=2835960) 'log_prob_use_dynamic_bsz': False,
65
+ (TaskRunner pid=2835960) 'max_model_len': None,
66
+ (TaskRunner pid=2835960) 'max_num_batched_tokens': 8192,
67
+ (TaskRunner pid=2835960) 'max_num_seqs': 1024,
68
+ (TaskRunner pid=2835960) 'n': 5,
69
+ (TaskRunner pid=2835960) 'name': 'vllm',
70
+ (TaskRunner pid=2835960) 'prompt_length': 1024,
71
+ (TaskRunner pid=2835960) 'response_length': 1024,
72
+ (TaskRunner pid=2835960) 'temperature': 1.0,
73
+ (TaskRunner pid=2835960) 'tensor_model_parallel_size': 2,
74
+ (TaskRunner pid=2835960) 'top_k': -1,
75
+ (TaskRunner pid=2835960) 'top_p': 1,
76
+ (TaskRunner pid=2835960) 'use_fire_sampling': False,
77
+ (TaskRunner pid=2835960) 'val_kwargs': {'do_sample': False,
78
+ (TaskRunner pid=2835960) 'n': 1,
79
+ (TaskRunner pid=2835960) 'temperature': 0.4,
80
+ (TaskRunner pid=2835960) 'top_k': -1,
81
+ (TaskRunner pid=2835960) 'top_p': 1.0}}},
82
+ (TaskRunner pid=2835960) 'algorithm': {'adv_estimator': 'grpo',
83
+ (TaskRunner pid=2835960) 'gamma': 1.0,
84
+ (TaskRunner pid=2835960) 'kl_ctrl': {'kl_coef': 0.001, 'type': 'fixed'},
85
+ (TaskRunner pid=2835960) 'kl_penalty': 'kl',
86
+ (TaskRunner pid=2835960) 'lam': 1.0},
87
+ (TaskRunner pid=2835960) 'critic': {'cliprange_value': 0.5,
88
+ (TaskRunner pid=2835960) 'forward_max_token_len_per_gpu': 32768,
89
+ (TaskRunner pid=2835960) 'forward_micro_batch_size': None,
90
+ (TaskRunner pid=2835960) 'forward_micro_batch_size_per_gpu': None,
91
+ (TaskRunner pid=2835960) 'grad_clip': 1.0,
92
+ (TaskRunner pid=2835960) 'model': {'enable_gradient_checkpointing': True,
93
+ (TaskRunner pid=2835960) 'external_lib': None,
94
+ (TaskRunner pid=2835960) 'fsdp_config': {'fsdp_size': -1,
95
+ (TaskRunner pid=2835960) 'optimizer_offload': False,(TaskRunner pid=2835960) You have video processor config saved in `preprocessor.json` file which is deprecated. Video processor configs should be saved in their own `video_preprocessor.json` file. You can rename the file or load and save the processor back which renames it automatically. Loading from `preprocessor.json` will be removed in v5.0.
96
+ (TaskRunner pid=2835960) DeprecationWarning: `ray.state.available_resources_per_node` is a private attribute and access will be removed in a future Ray version.
97
+ (WorkerDict pid=2839719) The image processor of type `Qwen2VLImageProcessor` is now loaded as a fast processor by default, even if the model checkpoint was saved with a slow processor. This is a breaking change and may produce slightly different outputs. To continue using the slow processor, instantiate this class with `use_fast=False`. Note that this behavior will be extended to all models in a future release.
98
+ (WorkerDict pid=2839719) You have video processor config saved in `preprocessor.json` file which is deprecated. Video processor configs should be saved in their own `video_preprocessor.json` file. You can rename the file or load and save the processor back which renames it automatically. Loading from `preprocessor.json` will be removed in v5.0.
99
+
100
+ (TaskRunner pid=2835960) 'param_offload': False,
101
+ (TaskRunner pid=2835960) 'wrap_policy': {'min_num_params': 0}},
102
+ (TaskRunner pid=2835960) 'override_config': {},
103
+ (TaskRunner pid=2835960) 'path': '~/models/deepseek-llm-7b-chat',
104
+ (TaskRunner pid=2835960) 'tokenizer_path': '/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct',
105
+ (TaskRunner pid=2835960) 'use_remove_padding': False},
106
+ (TaskRunner pid=2835960) 'optim': {'lr': 1e-05,
107
+ (TaskRunner pid=2835960) 'lr_warmup_steps_ratio': 0.0,
108
+ (TaskRunner pid=2835960) 'min_lr_ratio': None,
109
+ (TaskRunner pid=2835960) 'total_training_steps': -1,
110
+ (TaskRunner pid=2835960) 'warmup_style': 'constant'},
111
+ (TaskRunner pid=2835960) 'ppo_epochs': 1,
112
+ (TaskRunner pid=2835960) 'ppo_max_token_len_per_gpu': 32768,
113
+ (TaskRunner pid=2835960) 'ppo_micro_batch_size': None,
114
+ (TaskRunner pid=2835960) 'ppo_micro_batch_size_per_gpu': None,
115
+ (TaskRunner pid=2835960) 'ppo_mini_batch_size': 16,
116
+ (TaskRunner pid=2835960) 'shuffle': False,
117
+ (TaskRunner pid=2835960) 'strategy': 'fsdp',
118
+ (TaskRunner pid=2835960) 'ulysses_sequence_parallel_size': 1,
119
+ (TaskRunner pid=2835960) 'use_dynamic_bsz': False},
120
+ (TaskRunner pid=2835960) 'custom_reward_function': {'name': 'compute_score', 'path': None},
121
+ (TaskRunner pid=2835960) 'data': {'filter_overlong_prompts': True,
122
+ (TaskRunner pid=2835960) 'image_key': 'images',
123
+ (TaskRunner pid=2835960) 'max_prompt_length': 1024,
124
+ (TaskRunner pid=2835960) 'max_response_length': 1024,
125
+ (TaskRunner pid=2835960) 'prompt_key': 'prompt',
126
+ (TaskRunner pid=2835960) 'return_raw_chat': False,
127
+ (TaskRunner pid=2835960) 'return_raw_input_ids': False,
128
+ (TaskRunner pid=2835960) 'shuffle': True,
129
+ (TaskRunner pid=2835960) 'tokenizer': None,
130
+ (TaskRunner pid=2835960) 'train_batch_size': 16,
131
+ (TaskRunner pid=2835960) 'train_files': './data/rats_uni_processed/train_quarter.parquet',
132
+ (TaskRunner pid=2835960) 'truncation': 'error',
133
+ (TaskRunner pid=2835960) 'val_batch_size': None,
134
+ (TaskRunner pid=2835960) 'val_files': './data/rats_uni_processed/test_full.parquet'},
135
+ (TaskRunner pid=2835960) 'reward_model': {'enable': False,
136
+ (TaskRunner pid=2835960) 'forward_max_token_len_per_gpu': 32768,
137
+ (TaskRunner pid=2835960) 'max_length': None,
138
+ (TaskRunner pid=2835960) 'micro_batch_size': None,
139
+ (TaskRunner pid=2835960) 'micro_batch_size_per_gpu': None,
140
+ (TaskRunner pid=2835960) 'model': {'external_lib': None,
141
+ (TaskRunner pid=2835960) 'fsdp_config': {'fsdp_size': -1,
142
+ (TaskRunner pid=2835960) 'param_offload': False,
143
+ (TaskRunner pid=2835960) 'wrap_policy': {'min_num_params': 0}},
144
+ (TaskRunner pid=2835960) 'input_tokenizer': '/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct',
145
+ (TaskRunner pid=2835960) 'path': '~/models/FsfairX-LLaMA3-RM-v0.1',
146
+ (TaskRunner pid=2835960) 'use_remove_padding': False},
147
+ (TaskRunner pid=2835960) 'reward_manager': 'naive',
148
+ (TaskRunner pid=2835960) 'strategy': 'fsdp',
149
+ (TaskRunner pid=2835960) 'ulysses_sequence_parallel_size': 1,
150
+ (TaskRunner pid=2835960) 'use_dynamic_bsz': False},
151
+ (TaskRunner pid=2835960) 'trainer': {'balance_batch': True,
152
+ (TaskRunner pid=2835960) 'critic_warmup': 0,
153
+ (TaskRunner pid=2835960) 'default_hdfs_dir': None,
154
+ (TaskRunner pid=2835960) 'default_local_dir': 'checkpoints/anomseer/anomseer_rats_uni_2gpu',
155
+ (TaskRunner pid=2835960) 'del_local_ckpt_after_load': False,
156
+ (TaskRunner pid=2835960) 'experiment_name': 'anomseer_rats_uni_2gpu',
157
+ (TaskRunner pid=2835960) 'logger': ['console'],
158
+ (TaskRunner pid=2835960) 'n_gpus_per_node': 2,
159
+ (TaskRunner pid=2835960) 'nnodes': 1,
160
+ (TaskRunner pid=2835960) 'project_name': 'anomseer',
161
+ (TaskRunner pid=2835960) 'remove_previous_ckpt_in_save': False,
162
+ (TaskRunner pid=2835960) 'resume_from_path': False,
163
+ (TaskRunner pid=2835960) 'resume_mode': 'auto',
164
+ (TaskRunner pid=2835960) 'save_freq': 500,
165
+ (TaskRunner pid=2835960) 'test_freq': 10,
166
+ (TaskRunner pid=2835960) 'total_epochs': 1,
167
+ (TaskRunner pid=2835960) 'total_training_steps': None,
168
+ (TaskRunner pid=2835960) 'val_before_train': True,
169
+ (TaskRunner pid=2835960) 'val_generations_to_log_to_wandb': 0,
170
+ (TaskRunner pid=2835960) 'val_only': True},
171
+ (TaskRunner pid=2835960) 'ts': {'adv_mix': 0.3,
172
+ (TaskRunner pid=2835960) 'clip_pooling': 'mean',
173
+ (TaskRunner pid=2835960) 'clip_temperature': 1.0,
174
+ (TaskRunner pid=2835960) 'ot_eps': 0.08,
175
+ (TaskRunner pid=2835960) 'ot_n_iter': 50,
176
+ (TaskRunner pid=2835960) 'similarity_method': 'ot',
177
+ (TaskRunner pid=2835960) 'use_sem_orth': True}}
178
+ (TaskRunner pid=2835960) reward_manager_name: anomts
179
+ (TaskRunner pid=2835960) [validate_config] All configuration checks passed successfully!
180
+ (TaskRunner pid=2835960) dataset len: 7566
181
+ (TaskRunner pid=2835960) filter dataset len: 7566
182
+ (TaskRunner pid=2835960) dataset len: 6034
183
+ (TaskRunner pid=2835960) filter dataset len: 6034
184
+ (TaskRunner pid=2835960) Size of train dataloader: 472
185
+ (TaskRunner pid=2835960) Total training steps: 472
186
+ (WorkerDict pid=2839719) Model config after override: Qwen2_5_VLConfig {
187
+ (WorkerDict pid=2839719) "architectures": [
188
+ (WorkerDict pid=2839719) "Qwen2_5_VLForConditionalGeneration"
189
+ (WorkerDict pid=2839719) ],
190
+ (WorkerDict pid=2839719) "attention_dropout": 0.0,
191
+ (WorkerDict pid=2839719) "eos_token_id": 151645,
192
+ (WorkerDict pid=2839719) "hidden_act": "silu",
193
+ (WorkerDict pid=2839719) "hidden_size": 2048,
194
+ (WorkerDict pid=2839719) "image_token_id": 151655,
195
+ (WorkerDict pid=2839719) "initializer_range": 0.02,
196
+ (WorkerDict pid=2839719) "intermediate_size": 11008,
197
+ (WorkerDict pid=2839719) "max_position_embeddings": 128000,
198
+ (WorkerDict pid=2839719) "max_window_layers": 70,
199
+ (WorkerDict pid=2839719) "model_type": "qwen2_5_vl",
200
+ (WorkerDict pid=2839719) "num_attention_heads": 16,
201
+ (WorkerDict pid=2839719) "num_hidden_layers": 36,
202
+ (WorkerDict pid=2839719) "num_key_value_heads": 2,
203
+ (WorkerDict pid=2839719) "pad_token_id": 151643,
204
+ (WorkerDict pid=2839719) "rms_norm_eps": 1e-06,
205
+ (WorkerDict pid=2839719) "rope_scaling": {
206
+ (WorkerDict pid=2839719) "mrope_section": [
207
+ (WorkerDict pid=2839719) 16,
208
+ (WorkerDict pid=2839719) 24,
209
+ (WorkerDict pid=2839719) 24
210
+ (WorkerDict pid=2839719) ],
211
+ (WorkerDict pid=2839719) "rope_type": "default",(WorkerDict pid=2839719)
212
+ (WorkerDict pid=2839719)
213
+ (WorkerDict pid=2841587) The image processor of type `Qwen2VLImageProcessor` is now loaded as a fast processor by default, even if the model checkpoint was saved with a slow processor. This is a breaking change and may produce slightly different outputs. To continue using the slow processor, instantiate this class with `use_fast=False`. Note that this behavior will be extended to all models in a future release.
214
+ (WorkerDict pid=2841587) You have video processor config saved in `preprocessor.json` file which is deprecated. Video processor configs should be saved in their own `video_preprocessor.json` file. You can rename the file or load and save the processor back which renames it automatically. Loading from `preprocessor.json` will be removed in v5.0.
215
+ (WorkerDict pid=2841587)
216
+ (WorkerDict pid=2839719)
217
+ (WorkerDict pid=2841587)
218
+ (WorkerDict pid=2839719) [rank0]:[W612 11:59:36.925129932 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 0] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
219
+ (WorkerDict pid=2841587) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLForConditionalGeneration is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
220
+ (WorkerDict pid=2841587) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
221
+ (WorkerDict pid=2841587) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VisionTransformerPretrainedModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)`
222
+ (WorkerDict pid=2841587)
223
+ (WorkerDict pid=2841587) [rank1]:[W612 11:59:36.938180582 ProcessGroupNCCL.cpp:4561] [PG ID 0 PG GUID 0 Rank 1] using GPU 0 to perform barrier as devices used by this process are currently unknown. This can potentially cause a hang if this rank to GPU mapping is incorrect. Specify device_ids in barrier() to force use of a particular device, or call init_process_group() with a device_id.
224
+
225
+ (WorkerDict pid=2839719) "type": "default"
226
+ (WorkerDict pid=2839719) },
227
+ (WorkerDict pid=2839719) "rope_theta": 1000000.0,
228
+ (WorkerDict pid=2839719) "sliding_window": 32768,
229
+ (WorkerDict pid=2839719) "text_config": {
230
+ (WorkerDict pid=2839719) "architectures": [
231
+ (WorkerDict pid=2839719) "Qwen2_5_VLForConditionalGeneration"
232
+ (WorkerDict pid=2839719) ],
233
+ (WorkerDict pid=2839719) "attention_dropout": 0.0,
234
+ (WorkerDict pid=2839719) "bos_token_id": 151643,
235
+ (WorkerDict pid=2839719) "eos_token_id": 151645,
236
+ (WorkerDict pid=2839719) "hidden_act": "silu",
237
+ (WorkerDict pid=2839719) "hidden_size": 2048,
238
+ (WorkerDict pid=2839719) "image_token_id": null,
239
+ (WorkerDict pid=2839719) "initializer_range": 0.02,
240
+ (WorkerDict pid=2839719) "intermediate_size": 11008,
241
+ (WorkerDict pid=2839719) "layer_types": [
242
+ (WorkerDict pid=2839719) "full_attention",
243
+ (WorkerDict pid=2839719) "full_attention",
244
+ (WorkerDict pid=2839719) "full_attention",
245
+ (WorkerDict pid=2839719) "full_attention",
246
+ (WorkerDict pid=2839719) "full_attention",
247
+ (WorkerDict pid=2839719) "full_attention",
248
+ (WorkerDict pid=2839719) "full_attention",
249
+ (WorkerDict pid=2839719) "full_attention",
250
+ (WorkerDict pid=2839719) "full_attention",
251
+ (WorkerDict pid=2839719) "full_attention",
252
+ (WorkerDict pid=2839719) "full_attention",
253
+ (WorkerDict pid=2839719) "full_attention",
254
+ (WorkerDict pid=2839719) "full_attention",
255
+ (WorkerDict pid=2839719) "full_attention",
256
+ (WorkerDict pid=2839719) "full_attention",
257
+ (WorkerDict pid=2839719) "full_attention",
258
+ (WorkerDict pid=2839719) "full_attention",
259
+ (WorkerDict pid=2839719) "full_attention",
260
+ (WorkerDict pid=2839719) "full_attention",
261
+ (WorkerDict pid=2839719) "full_attention",
262
+ (WorkerDict pid=2839719) "full_attention",
263
+ (WorkerDict pid=2839719) "full_attention",
264
+ (WorkerDict pid=2839719) "full_attention",
265
+ (WorkerDict pid=2839719) "full_attention",
266
+ (WorkerDict pid=2839719) "full_attention",
267
+ (WorkerDict pid=2839719) "full_attention",
268
+ (WorkerDict pid=2839719) "full_attention",
269
+ (WorkerDict pid=2839719) "full_attention",
270
+ (WorkerDict pid=2839719) "full_attention",
271
+ (WorkerDict pid=2839719) "full_attention",
272
+ (WorkerDict pid=2839719) "full_attention",
273
+ (WorkerDict pid=2839719) "full_attention",
274
+ (WorkerDict pid=2839719) "full_attention",
275
+ (WorkerDict pid=2839719) "full_attention",
276
+ (WorkerDict pid=2839719) "full_attention",
277
+ (WorkerDict pid=2839719) "full_attention"
278
+ (WorkerDict pid=2839719) ],
279
+ (WorkerDict pid=2839719) "max_position_embeddings": 128000,
280
+ (WorkerDict pid=2839719) "max_window_layers": 70,
281
+ (WorkerDict pid=2839719) "model_type": "qwen2_5_vl_text",
282
+ (WorkerDict pid=2839719) "num_attention_heads": 16,
283
+ (WorkerDict pid=2839719) "num_hidden_layers": 36,
284
+ (WorkerDict pid=2839719) "num_key_value_heads": 2,
285
+ (WorkerDict pid=2839719) "rms_norm_eps": 1e-06,
286
+ (WorkerDict pid=2839719) "rope_scaling": {
287
+ (WorkerDict pid=2839719) "mrope_section": [
288
+ (WorkerDict pid=2839719) 16,
289
+ (WorkerDict pid=2839719) 24,
290
+ (WorkerDict pid=2839719) 24
291
+ (WorkerDict pid=2839719) ],
292
+ (WorkerDict pid=2839719) "rope_type": "default",
293
+ (WorkerDict pid=2839719) "type": "default"
294
+ (WorkerDict pid=2839719) },
295
+ (WorkerDict pid=2839719) "rope_theta": 1000000.0,
296
+ (WorkerDict pid=2839719) "sliding_window": null,
297
+ (WorkerDict pid=2839719) "tie_word_embeddings": true,
298
+ (WorkerDict pid=2839719) "torch_dtype": "bfloat16",
299
+ (WorkerDict pid=2839719) "use_cache": true,
300
+ (WorkerDict pid=2839719) "use_sliding_window": false,
301
+ (WorkerDict pid=2839719) "video_token_id": null,
302
+ (WorkerDict pid=2839719) "vision_end_token_id": 151653,
303
+ (WorkerDict pid=2839719) "vision_start_token_id": 151652,
304
+ (WorkerDict pid=2839719) "vision_token_id": 151654,
305
+ (WorkerDict pid=2839719) "vocab_size": 151936
306
+ (WorkerDict pid=2839719) },
307
+ (WorkerDict pid=2839719) "torch_dtype": "bfloat16",
308
+ (WorkerDict pid=2839719) "transformers_version": "4.54.1",
309
+ (WorkerDict pid=2839719) "use_cache": true,
310
+ (WorkerDict pid=2839719) "use_sliding_window": false,
311
+ (WorkerDict pid=2839719) "video_token_id": 151656,
312
+ (WorkerDict pid=2839719) "vision_config": {
313
+ (WorkerDict pid=2839719) "depth": 32,
314
+ (WorkerDict pid=2839719) "fullatt_block_indexes": [
315
+ (WorkerDict pid=2839719) 7,
316
+ (WorkerDict pid=2839719) 15,
317
+ (WorkerDict pid=2839719) 23,
318
+ (WorkerDict pid=2839719) 31
319
+ (WorkerDict pid=2839719) ],
320
+ (WorkerDict pid=2839719) "hidden_act": "silu",
321
+ (WorkerDict pid=2839719) "hidden_size": 1280,
322
+ (WorkerDict pid=2839719) "in_channels": 3,
323
+ (WorkerDict pid=2839719) "in_chans": 3,
324
+ (WorkerDict pid=2839719) "initializer_range": 0.02,
325
+ (WorkerDict pid=2839719) "intermediate_size": 3420,
326
+ (WorkerDict pid=2839719) "model_type": "qwen2_5_vl",
327
+ (WorkerDict pid=2839719) "num_heads": 16,
328
+ (WorkerDict pid=2839719) "out_hidden_size": 2048,
329
+ (WorkerDict pid=2839719) "patch_size": 14,
330
+ (WorkerDict pid=2839719) "spatial_merge_size": 2,
331
+ (WorkerDict pid=2839719) "spatial_patch_size": 14,
332
+ (WorkerDict pid=2839719) "temporal_patch_size": 2,
333
+ (WorkerDict pid=2839719) "tokens_per_second": 2,
334
+ (WorkerDict pid=2839719) "window_size": 112
335
+ (WorkerDict pid=2839719) },
336
+ (WorkerDict pid=2839719) "vision_end_token_id": 151653,
337
+ (WorkerDict pid=2839719) "vision_start_token_id": 151652,
338
+ (WorkerDict pid=2839719) "vision_token_id": 151654,
339
+ (WorkerDict pid=2839719) "vocab_size": 151936
340
+ (WorkerDict pid=2839719) }
341
+ (WorkerDict pid=2839719)
342
+ (WorkerDict pid=2839719) NCCL version 2.21.5+cuda12.4
343
+ (WorkerDict pid=2839719) Qwen2_5_VLForConditionalGeneration contains 3.75B parameters
344
+ (WorkerDict pid=2839719) wrap_policy: functools.partial(<function _or_policy at 0x7e64dc2c84a0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x7e64dc2c8360>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
345
+ (WorkerDict pid=2839719) Actor use_remove_padding=False
346
+ (WorkerDict pid=2841587) wrap_policy: functools.partial(<function _or_policy at 0x7bba8c2c44a0>, policies=[functools.partial(<function transformer_auto_wrap_policy at 0x7bba8c2c4360>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
347
+ (WorkerDict pid=2839719) Model config after override: Qwen2_5_VLConfig {
348
+ (WorkerDict pid=2839719) "architectures": [
349
+ (WorkerDict pid=2839719) "Qwen2_5_VLForConditionalGeneration"
350
+ (WorkerDict pid=2839719) ],
351
+ (WorkerDict pid=2839719) "attention_dropout": 0.0,
352
+ (WorkerDict pid=2839719) "eos_token_id": 151645,
353
+ (WorkerDict pid=2839719) "hidden_act": "silu",(WorkerDict pid=2839719)
354
+ (WorkerDict pid=2839719)
355
+ (WorkerDict pid=2841587) Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen2_5_VLTextModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `torch_dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", torch_dtype=torch.float16)` [repeated 5x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/user-guides/configure-logging.html#log-deduplication for more options.)
356
+ (WorkerDict pid=2841587)
357
+ (WorkerDict pid=2839719)
358
+ (WorkerDict pid=2841587)
359
+
360
+ (WorkerDict pid=2839719) "hidden_size": 2048,
361
+ (WorkerDict pid=2839719) "image_token_id": 151655,
362
+ (WorkerDict pid=2839719) "initializer_range": 0.02,
363
+ (WorkerDict pid=2839719) "intermediate_size": 11008,
364
+ (WorkerDict pid=2839719) "max_position_embeddings": 128000,
365
+ (WorkerDict pid=2839719) "max_window_layers": 70,
366
+ (WorkerDict pid=2839719) "model_type": "qwen2_5_vl",
367
+ (WorkerDict pid=2839719) "num_attention_heads": 16,
368
+ (WorkerDict pid=2839719) "num_hidden_layers": 36,
369
+ (WorkerDict pid=2839719) "num_key_value_heads": 2,
370
+ (WorkerDict pid=2839719) "pad_token_id": 151643,
371
+ (WorkerDict pid=2839719) "rms_norm_eps": 1e-06,
372
+ (WorkerDict pid=2839719) "rope_scaling": {
373
+ (WorkerDict pid=2839719) "mrope_section": [
374
+ (WorkerDict pid=2839719) 16,
375
+ (WorkerDict pid=2839719) 24,
376
+ (WorkerDict pid=2839719) 24
377
+ (WorkerDict pid=2839719) ],
378
+ (WorkerDict pid=2839719) "rope_type": "default",
379
+ (WorkerDict pid=2839719) "type": "default"
380
+ (WorkerDict pid=2839719) },
381
+ (WorkerDict pid=2839719) "rope_theta": 1000000.0,
382
+ (WorkerDict pid=2839719) "sliding_window": 32768,
383
+ (WorkerDict pid=2839719) "text_config": {
384
+ (WorkerDict pid=2839719) "architectures": [
385
+ (WorkerDict pid=2839719) "Qwen2_5_VLForConditionalGeneration"
386
+ (WorkerDict pid=2839719) ],
387
+ (WorkerDict pid=2839719) "attention_dropout": 0.0,
388
+ (WorkerDict pid=2839719) "bos_token_id": 151643,
389
+ (WorkerDict pid=2839719) "eos_token_id": 151645,
390
+ (WorkerDict pid=2839719) "hidden_act": "silu",
391
+ (WorkerDict pid=2839719) "hidden_size": 2048,
392
+ (WorkerDict pid=2839719) "image_token_id": null,
393
+ (WorkerDict pid=2839719) "initializer_range": 0.02,
394
+ (WorkerDict pid=2839719) "intermediate_size": 11008,
395
+ (WorkerDict pid=2839719) "layer_types": [
396
+ (WorkerDict pid=2839719) "full_attention",
397
+ (WorkerDict pid=2839719) "full_attention",
398
+ (WorkerDict pid=2839719) "full_attention",
399
+ (WorkerDict pid=2839719) "full_attention",
400
+ (WorkerDict pid=2839719) "full_attention",
401
+ (WorkerDict pid=2839719) "full_attention",
402
+ (WorkerDict pid=2839719) "full_attention",
403
+ (WorkerDict pid=2839719) "full_attention",
404
+ (WorkerDict pid=2839719) "full_attention",
405
+ (WorkerDict pid=2839719) "full_attention",
406
+ (WorkerDict pid=2839719) "full_attention",
407
+ (WorkerDict pid=2839719) "full_attention",
408
+ (WorkerDict pid=2839719) "full_attention",
409
+ (WorkerDict pid=2839719) "full_attention",
410
+ (WorkerDict pid=2839719) "full_attention",
411
+ (WorkerDict pid=2839719) "full_attention",
412
+ (WorkerDict pid=2839719) "full_attention",
413
+ (WorkerDict pid=2839719) "full_attention",
414
+ (WorkerDict pid=2839719) "full_attention",
415
+ (WorkerDict pid=2839719) "full_attention",
416
+ (WorkerDict pid=2839719) "full_attention",
417
+ (WorkerDict pid=2839719) "full_attention",
418
+ (WorkerDict pid=2839719) "full_attention",
419
+ (WorkerDict pid=2839719) "full_attention",
420
+ (WorkerDict pid=2839719) "full_attention",
421
+ (WorkerDict pid=2839719) "full_attention",
422
+ (WorkerDict pid=2839719) "full_attention",
423
+ (WorkerDict pid=2839719) "full_attention",
424
+ (WorkerDict pid=2839719) "full_attention",
425
+ (WorkerDict pid=2839719) "full_attention",
426
+ (WorkerDict pid=2839719) "full_attention",
427
+ (WorkerDict pid=2839719) "full_attention",
428
+ (WorkerDict pid=2839719) "full_attention",
429
+ (WorkerDict pid=2839719) "full_attention",
430
+ (WorkerDict pid=2839719) "full_attention",
431
+ (WorkerDict pid=2839719) "full_attention"
432
+ (WorkerDict pid=2839719) ],
433
+ (WorkerDict pid=2839719) "max_position_embeddings": 128000,
434
+ (WorkerDict pid=2839719) "max_window_layers": 70,
435
+ (WorkerDict pid=2839719) "model_type": "qwen2_5_vl_text",
436
+ (WorkerDict pid=2839719) "num_attention_heads": 16,
437
+ (WorkerDict pid=2839719) "num_hidden_layers": 36,
438
+ (WorkerDict pid=2839719) "num_key_value_heads": 2,
439
+ (WorkerDict pid=2839719) "rms_norm_eps": 1e-06,
440
+ (WorkerDict pid=2839719) "rope_scaling": {
441
+ (WorkerDict pid=2839719) "mrope_section": [
442
+ (WorkerDict pid=2839719) 16,
443
+ (WorkerDict pid=2839719) 24,
444
+ (WorkerDict pid=2839719) 24
445
+ (WorkerDict pid=2839719) ],
446
+ (WorkerDict pid=2839719) "rope_type": "default",
447
+ (WorkerDict pid=2839719) "type": "default"
448
+ (WorkerDict pid=2839719) },
449
+ (WorkerDict pid=2839719) "rope_theta": 1000000.0,
450
+ (WorkerDict pid=2839719) "sliding_window": null,
451
+ (WorkerDict pid=2839719) "tie_word_embeddings": true,
452
+ (WorkerDict pid=2839719) "torch_dtype": "bfloat16",
453
+ (WorkerDict pid=2839719) "use_cache": true,
454
+ (WorkerDict pid=2839719) "use_sliding_window": false,
455
+ (WorkerDict pid=2839719) "video_token_id": null,
456
+ (WorkerDict pid=2839719) "vision_end_token_id": 151653,
457
+ (WorkerDict pid=2839719) "vision_start_token_id": 151652,
458
+ (WorkerDict pid=2839719) "vision_token_id": 151654,
459
+ (WorkerDict pid=2839719) "vocab_size": 151936
460
+ (WorkerDict pid=2839719) },
461
+ (WorkerDict pid=2839719) "torch_dtype": "bfloat16",
462
+ (WorkerDict pid=2839719) "transformers_version": "4.54.1",
463
+ (WorkerDict pid=2839719) "use_cache": true,
464
+ (WorkerDict pid=2839719) "use_sliding_window": false,
465
+ (WorkerDict pid=2839719) "video_token_id": 151656,
466
+ (WorkerDict pid=2839719) "vision_config": {
467
+ (WorkerDict pid=2839719) "depth": 32,
468
+ (WorkerDict pid=2839719) "fullatt_block_indexes": [
469
+ (WorkerDict pid=2839719) 7,
470
+ (WorkerDict pid=2839719) 15,
471
+ (WorkerDict pid=2839719) 23,
472
+ (WorkerDict pid=2839719) 31
473
+ (WorkerDict pid=2839719) ],
474
+ (WorkerDict pid=2839719) "hidden_act": "silu",
475
+ (WorkerDict pid=2839719) "hidden_size": 1280,
476
+ (WorkerDict pid=2839719) "in_channels": 3,
477
+ (WorkerDict pid=2839719) "in_chans": 3,
478
+ (WorkerDict pid=2839719) "initializer_range": 0.02,
479
+ (WorkerDict pid=2839719) "intermediate_size": 3420,
480
+ (WorkerDict pid=2839719) "model_type": "qwen2_5_vl",
481
+ (WorkerDict pid=2839719) "num_heads": 16,
482
+ (WorkerDict pid=2839719) "out_hidden_size": 2048,
483
+ (WorkerDict pid=2839719) "patch_size": 14,
484
+ (WorkerDict pid=2839719) "spatial_merge_size": 2,
485
+ (WorkerDict pid=2839719) "spatial_patch_size": 14,
486
+ (WorkerDict pid=2839719) "temporal_patch_size": 2,
487
+ (WorkerDict pid=2839719) "tokens_per_second": 2,
488
+ (WorkerDict pid=2839719) "window_size": 112
489
+ (WorkerDict pid=2839719) },
490
+ (WorkerDict pid=2839719) "vision_end_token_id": 151653,
491
+ (WorkerDict pid=2839719) "vision_start_token_id": 151652,
492
+ (WorkerDict pid=2839719) "vision_token_id": 151654,
493
+ (WorkerDict pid=2839719) "vocab_size": 151936
494
+ (WorkerDict pid=2839719) }
495
+ (WorkerDict pid=2839719)
496
+ (WorkerDict pid=2839719) trainable params: 37,152,768 || all params: 3,791,775,744 || trainable%: 0.9798
497
+ (WorkerDict pid=2839719) PeftModelForCausalLM contains 3.79B parameters
498
+ (WorkerDict pid=2839719) wrap_policy: functools.partial(<function _or_policy at 0x7e64dc2c84a0>, policies=[functools.partial(<function lambda_auto_wrap_policy at 0x7e64dc29be20>, lambda_fn=<function get_fsdp_wrap_policy.<locals>.lambda_policy_fn at 0x7e63661714e0>), functools.partial(<function transformer_auto_wrap_policy at 0x7e64dc2c8360>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])(WorkerDict pid=2839719)
499
+ (WorkerDict pid=2841587)
500
+ (WorkerDict pid=2839719)
501
+ (WorkerDict pid=2839719)
502
+ (WorkerDict pid=2839719)
503
+ (WorkerDict pid=2839719)
504
+ (WorkerDict pid=2839719) /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py:690: FutureWarning: FSDP.state_dict_type() and FSDP.set_state_dict_type() are being deprecated. Please use APIs, get_state_dict() and set_state_dict(), which can support different parallelisms, FSDP1, FSDP2, DDP. API doc: https://pytorch.org/docs/stable/distributed.checkpoint.html#torch.distributed.checkpoint.state_dict.get_state_dict .Tutorial: https://pytorch.org/tutorials/recipes/distributed_checkpoint_recipe.html .
505
+ (WorkerDict pid=2839719) warnings.warn(
506
+ (raylet) [2026-06-12 12:09:38,824 E 2832550 2832550] (raylet) node_manager.cc:3303: 1 Workers (tasks / actors) killed due to memory pressure (OOM), 0 Workers crashed due to other reasons at node (ID: 49eb9cdf575181869c147cbd458d0f76c939299db90454b4d5aa27eb, IP: 172.20.115.25) over the last time period. To see more information about the Workers killed on this node, use `ray logs raylet.out -ip 172.20.115.25`
507
+ (raylet)
508
+ (raylet) Refer to the documentation on how to address the out of memory issue: https://docs.ray.io/en/latest/ray-core/scheduling/ray-oom-prevention.html. Consider provisioning more memory on this node or reducing task parallelism by requesting more CPUs per task. To adjust the kill threshold, set the environment variable `RAY_memory_usage_threshold` when starting Ray. To disable worker killing, set the environment variable `RAY_memory_monitor_refresh_ms` to zero.
509
+ (WorkerDict pid=2841587) /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py:690: FutureWarning: FSDP.state_dict_type() and FSDP.set_state_dict_type() are being deprecated. Please use APIs, get_state_dict() and set_state_dict(), which can support different parallelisms, FSDP1, FSDP2, DDP. API doc: https://pytorch.org/docs/stable/distributed.checkpoint.html#torch.distributed.checkpoint.state_dict.get_state_dict .Tutorial: https://pytorch.org/tutorials/recipes/distributed_checkpoint_recipe.html .
510
+ (WorkerDict pid=2841587) warnings.warn(
511
+
512
+ (WorkerDict pid=2841587) Actor use_remove_padding=False
513
+ (WorkerDict pid=2839719) Total steps: 472, num_warmup_steps: 0
514
+ (WorkerDict pid=2839719) Actor use_remove_padding=False
515
+ (WorkerDict pid=2839719) Before building vllm rollout, memory allocated (GB): 7.096388816833496, memory reserved (GB): 12.259765625
516
+ (WorkerDict pid=2839719) WARNING 06-12 12:01:58 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x7e62a0c00f50>
517
+ (WorkerDict pid=2841587) wrap_policy: functools.partial(<function _or_policy at 0x7bba8c2c44a0>, policies=[functools.partial(<function lambda_auto_wrap_policy at 0x7bba8c297e20>, lambda_fn=<function get_fsdp_wrap_policy.<locals>.lambda_policy_fn at 0x7bb9b43e3d80>), functools.partial(<function transformer_auto_wrap_policy at 0x7bba8c2c4360>, transformer_layer_cls={<class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLVisionBlock'>, <class 'transformers.models.qwen2_5_vl.modeling_qwen2_5_vl.Qwen2_5_VLDecoderLayer'>})])
518
+ (WorkerDict pid=2841587) Total steps: 472, num_warmup_steps: 0
519
+ (WorkerDict pid=2841587) Actor use_remove_padding=False
520
+ (WorkerDict pid=2839719) WARNING 06-12 12:02:03 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
521
+ (WorkerDict pid=2841587) WARNING 06-12 12:01:58 [utils.py:2522] Methods determine_num_available_blocks,device_config,get_cache_block_size_bytes,initialize_cache not implemented in <vllm.v1.worker.gpu_worker.Worker object at 0x7bb84b9fb090>
522
+ (WorkerDict pid=2839719) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
523
+ (WorkerDict pid=2839719) After building vllm rollout, memory allocated (GB): 13.632704257965088, memory reserved (GB): 15.044921875
524
+ (WorkerDict pid=2839719) After building sharding manager, memory allocated (GB): 13.632704257965088, memory reserved (GB): 15.044921875
525
+ (WorkerDict pid=2841587) WARNING 06-12 12:02:03 [topk_topp_sampler.py:69] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
526
+ (TaskRunner pid=2835960) Using LocalLogger is deprecated. The constructor API will change
527
+ (TaskRunner pid=2835960) Found checkpoint: %s /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472
528
+ (TaskRunner pid=2835960) Load from checkpoint folder: /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472
529
+ (TaskRunner pid=2835960) Setting global step to 472
530
+ (TaskRunner pid=2835960) Resuming from /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472
531
+ (WorkerDict pid=2839719) [rank-0]: Loading from /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472/actor/model_world_size_2_rank_0.pt and /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472/actor/optim_world_size_2_rank_0.pt and /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472/actor/extra_state_world_size_2_rank_0.pt
532
+ (TaskRunner pid=2835960) test_gen_batch meta info: {'eos_token_id': 151645, 'pad_token_id': 151643, 'recompute_log_prob': False, 'do_sample': False, 'validate': True}
533
+ (WorkerDict pid=2841587) kwargs: {'n': 5, 'logprobs': 0, 'max_tokens': 1024, 'detokenize': False, 'temperature': 1.0, 'top_k': -1, 'top_p': 1, 'ignore_eos': False}
534
+ (WorkerDict pid=2841587) [rank-1]: Loading from /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472/actor/model_world_size_2_rank_1.pt and /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472/actor/optim_world_size_2_rank_1.pt and /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472/actor/extra_state_world_size_2_rank_1.pt
535
+ Error executing job with overrides: ['algorithm.adv_estimator=grpo', 'data.train_files=./data/rats_uni_processed/train_quarter.parquet', 'data.val_files=./data/rats_uni_processed/test_full.parquet', 'data.train_batch_size=16', 'data.max_prompt_length=1024', 'data.max_response_length=1024', 'data.filter_overlong_prompts=True', 'data.truncation=error', 'data.image_key=images', 'actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct', 'actor_rollout_ref.model.lora_rank=16', 'actor_rollout_ref.model.lora_alpha=16', 'actor_rollout_ref.model.lora_dropout=0.0', "actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'", 'actor_rollout_ref.actor.optim.lr=1e-4', 'actor_rollout_ref.model.use_remove_padding=False', 'actor_rollout_ref.actor.ppo_mini_batch_size=16', 'actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2', 'actor_rollout_ref.actor.use_kl_loss=True', 'actor_rollout_ref.actor.kl_loss_coef=0.001', 'actor_rollout_ref.actor.kl_loss_type=low_var_kl', 'actor_rollout_ref.model.enable_gradient_checkpointing=True', 'actor_rollout_ref.actor.fsdp_config.param_offload=False', 'actor_rollout_ref.actor.fsdp_config.optimizer_offload=False', 'actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8', 'actor_rollout_ref.rollout.tensor_model_parallel_size=2', 'actor_rollout_ref.rollout.name=vllm', 'actor_rollout_ref.rollout.gpu_memory_utilization=0.4', 'actor_rollout_ref.rollout.enable_chunked_prefill=False', 'actor_rollout_ref.rollout.enforce_eager=False', 'actor_rollout_ref.rollout.free_cache_engine=False', 'actor_rollout_ref.rollout.n=5', 'actor_rollout_ref.rollout.val_kwargs.do_sample=False', 'actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8', 'actor_rollout_ref.ref.fsdp_config.param_offload=True', 'algorithm.kl_ctrl.kl_coef=0.001', 'trainer.critic_warmup=0', "trainer.logger=['console']", 'trainer.project_name=anomseer', 'trainer.experiment_name=anomseer_rats_uni_2gpu', 'trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu', 'trainer.n_gpus_per_node=2', 'trainer.nnodes=1', 'trainer.save_freq=500', 'trainer.test_freq=10', 'trainer.val_only=True', 'trainer.val_before_train=True', 'trainer.total_epochs=1', 'ts.use_sem_orth=True', 'ts.adv_mix=0.3', 'ts.similarity_method=ot', 'ts.ot_eps=0.08', 'ts.ot_n_iter=50']
536
+ Traceback (most recent call last):
537
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/main_ppo.py", line 68, in main
538
+ ray.get(runner.run.remote(config))
539
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/auto_init_hook.py", line 22, in auto_init_wrapper
540
+ return fn(*args, **kwargs)
541
+ ^^^^^^^^^^^^^^^^^^^
542
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/client_mode_hook.py", line 107, in wrapper
543
+ return func(*args, **kwargs)
544
+ ^^^^^^^^^^^^^^^^^^^^^
545
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py", line 2980, in get
546
+ values, debugger_breakpoint = worker.get_objects(
547
+ ^^^^^^^^^^^^^^^^^^^
548
+ File "/home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/_private/worker.py", line 1023, in get_objects
549
+ raise value.as_instanceof_cause()
550
+ ray.exceptions.RayTaskError(OutOfMemoryError): ray::TaskRunner.run() (pid=2835960, ip=172.20.115.25, actor_id=4827f4aae735b6de5961046b01000000, repr=<main_ppo.TaskRunner object at 0x735c213ffa50>)
551
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
552
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
553
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/main_ppo.py", line 173, in run
554
+ trainer.fit()
555
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/ppo/ray_trainer.py", line 2196, in fit
556
+ val_metrics = self._validate()
557
+ ^^^^^^^^^^^^^^^^
558
+ File "/mnt/share01/sqk/AnomSeer/verl/trainer/ppo/ray_trainer.py", line 1840, in _validate
559
+ test_output_gen_batch_padded = self.actor_rollout_wg.generate_sequences(test_gen_batch_padded)
560
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
561
+ File "/mnt/share01/sqk/AnomSeer/verl/single_controller/ray/base.py", line 43, in func
562
+ output = ray.get(output)
563
+ ^^^^^^^^^^^^^^^
564
+ ^^^^^^^^^^^^^^^^^^^
565
+ ^^^^^^^^^^^^^^^^^^^^^
566
+ ^^^^^^^^^^^^^^^^^^^
567
+ ray.exceptions.OutOfMemoryError: 1 worker(s) were killed due to the node running low on memory. Memory on the node (IP: 172.20.115.25, ID: 49eb9cdf575181869c147cbd458d0f76c939299db90454b4d5aa27eb) was 239.55GB / 251.21GB (0.953616), which exceeds the memory usage threshold of 0.950000; Object store memory usage: [- objects spillable: 0; - bytes spillable: 0; - objects unsealed: 0; - bytes unsealed: 0; - objects in use: 1; - bytes in use: 20367164421; - objects evictable: 0; - bytes evictable: 0; ; - objects created by worker: 1; - bytes created by worker: 20367164421; - objects restored: 0; - bytes restored: 0; - objects received: 0; - bytes received: 0; - objects errored: 0; - bytes errored: 0; ; Eviction Stats:; (global lru) capacity: 72791529062; (global lru) used: 0%; (global lru) num objects: 0; (global lru) num evictions: 0; (global lru) bytes evicted: 0]; Ray killed 1 worker(s) based on the killing policy: [(Actor(4f145c2210673ecf4c40aa0d01000000): job ID=01000000, lease ID=03000000d21587b00dcc5a97a787fed0e40fafc5b956e0f280f921aed06b8784, task name=R4qskTWorkerDict_0:1:WorkerDict.__init__, required resources={GPU_group_218e351d7bf7afdb768364c8f98301000000: 1, bundle_group_1_218e351d7bf7afdb768364c8f98301000000: 0.001, CPU_group_218e351d7bf7afdb768364c8f98301000000: 1, GPU_group_1_218e351d7bf7afdb768364c8f98301000000: 1, CPU_group_1_218e351d7bf7afdb768364c8f98301000000: 1, bundle_group_218e351d7bf7afdb768364c8f98301000000: 0.001}, pid=2841587, actual memory used=14.59GB, worker ID=1af15360d55724f19e6b7f6b7eaf205cab912f858e2e6ef3b4745534)]; To see more information about memory usage on this node, use `ray logs raylet.out -ip 172.20.115.25`; Top 10 memory users: PID MEM(GB) COMMAND, 2835960 78.85 ray::TaskRunner.run, 2839719 50.54 ray::WorkerDict.actor_rollout_generate_sequences, 2874386 47.90 ray::TaskRunner.run, 2841587 14.59 ray::WorkerDict, 2349684 0.55 /home/suiqk/.vscode-server/cli/servers/Stable-1b50d58d73426c9171299ec4037d01365d995b78/server/node /..., 2830946 0.46 /home/suiqk/anaconda3/envs/scalerag-ts-v4/bin/python -m verl.trainer.main_ppo algorithm.adv_estimato..., 2133445 0.41 /home/suiqk/.vscode-server/cli/servers/Stable-1b50d58d73426c9171299ec4037d01365d995b78/server/node -..., 2133423 0.35 /home/suiqk/.vscode-server/cli/servers/Stable-1b50d58d73426c9171299ec4037d01365d995b78/server/node /..., 2832066 0.31 /home/suiqk/anaconda3/envs/scalerag-ts-v4/lib/python3.11/site-packages/ray/core/src/ray/gcs/gcs_serv..., 1402406 0.18 /usr/bin/python3 /usr/bin/update-manager --no-update --no-focus-on-map, Refer to the documentation on how to address the out of memory issue: https://docs.ray.io/en/latest/ray-core/scheduling/ray-oom-prevention.html. Consider provisioning more memory on this node or reducing task parallelism by requesting more CPUs per task. Set max_restarts and max_task_retries to enable retry when the task crashes due to OOM. To adjust the kill threshold, set the environment variable `RAY_memory_usage_threshold` when starting Ray. To disable worker killing, set the environment variable `RAY_memory_monitor_refresh_ms` to zero.
568
+
569
+ Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
logs/rats_eval_full2.log ADDED
The diff for this file is too large to render. See raw diff
 
logs/rats_eval_full2_metrics.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "checkpoint": "checkpoints/anomseer/anomseer_rats_uni_2gpu/global_step_472",
3
+ "val_file": "data/rats_uni_processed/test_full.parquet",
4
+ "decoding": "greedy (do_sample=False, val_kwargs.n=1)",
5
+ "num_total_samples": 6034,
6
+ "num_valid_samples": 6034,
7
+ "num_invalid_predictions": 0,
8
+ "type_accuracy": 0.14368578057673184,
9
+ "type_precision_macro": 0.07011846062585,
10
+ "type_recall_macro": 0.15190385921696692,
11
+ "type_f1_macro": 0.06658531363554307,
12
+ "binary_accuracy": 0.8367583692409678,
13
+ "binary_precision_macro": 0.7156772435960252,
14
+ "binary_recall_macro": 0.6171428305303734,
15
+ "binary_f1_macro": 0.6403655346950877,
16
+ "reward_score": 0.2986244636942485,
17
+ "mean_fmt_score": 1.0
18
+ }
logs/rats_train_lora_20260611_174333.log ADDED
The diff for this file is too large to render. See raw diff
 
multimodal_data_processing/anom.py ADDED
@@ -0,0 +1,596 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+
3
+ import os
4
+ import re
5
+ import json
6
+ import glob
7
+ import argparse
8
+ import pickle
9
+ from typing import List, Tuple, Optional, Dict
10
+
11
+ import numpy as np
12
+ import pandas as pd
13
+ import stumpy
14
+ from PIL import Image
15
+ from datasets import Dataset
16
+ from scipy.signal import savgol_filter
17
+ from scipy.stats import zscore
18
+
19
+
20
+ def _dominant_period(x: np.ndarray) -> float:
21
+ """Computes the dominant period of a time series using FFT."""
22
+ x = np.asarray(x, np.float32)
23
+ n = x.size
24
+ if n < 8: return float('inf')
25
+ xdm = x - x.mean()
26
+ Y = np.fft.rfft(xdm)
27
+ P = np.abs(Y)**2
28
+ if P.size > 0: P[0] = 0.0
29
+ freqs = np.fft.rfftfreq(n, d=1.0)
30
+ if P.size <= 1: return float('inf')
31
+ k = int(np.argmax(P))
32
+ f = float(freqs[k])
33
+ return float(1.0 / f) if f > 0 else float('inf')
34
+
35
+ def vector_to_intervals(vec: np.ndarray) -> List[List[int]]:
36
+ """Converts a binary (0/1) vector to a list of [start, end) intervals."""
37
+ vec = np.asarray(vec).astype(int).flatten()
38
+ intervals = []
39
+ in_seg = False
40
+ start = 0
41
+ for i, v in enumerate(vec):
42
+ if v == 1 and not in_seg:
43
+ start = i
44
+ in_seg = True
45
+ elif v == 0 and in_seg:
46
+ intervals.append([start, i])
47
+ in_seg = False
48
+ if in_seg:
49
+ intervals.append([start, len(vec)])
50
+ return intervals
51
+
52
+
53
+
54
+ def _try_load_npy(path: str) -> Optional[np.ndarray]:
55
+ try:
56
+ if os.path.isfile(path):
57
+ return np.load(path, allow_pickle=True)
58
+ except Exception:
59
+ return None
60
+
61
+ def _find_series_and_gt(root_task_dir: str, split: str, idx: str) -> Tuple[Optional[np.ndarray], List[List[int]]]:
62
+ """Finds raw series and ground truth intervals from common directory patterns."""
63
+ series_path = os.path.join(root_task_dir, split, "series", f"{idx}.npy")
64
+ labels_path = os.path.join(root_task_dir, split, "labels", f"{idx}.npy")
65
+
66
+ ts = _try_load_npy(series_path)
67
+ gt_vec = _try_load_npy(labels_path)
68
+
69
+ intervals = []
70
+ if gt_vec is not None:
71
+ try:
72
+ intervals = vector_to_intervals(gt_vec.astype(int))
73
+ except Exception:
74
+ pass
75
+
76
+ return ts, intervals
77
+
78
+ def _parse_idx_from_png(png_path: str) -> str:
79
+ """Extracts the numerical index from a PNG filename."""
80
+ base = os.path.basename(png_path)
81
+ m = re.search(r"(\d+)", base)
82
+ return m.group(1) if m else os.path.splitext(base)[0]
83
+
84
+
85
+
86
+
87
+ def detect_range_anomalies(ts: np.ndarray, k: float = 3.0) -> Tuple[List[List[int]], str, Dict]:
88
+ """Uses k-sigma rule for range anomalies and generates a CoT-style text."""
89
+ if ts.size < 2:
90
+ return [], "Series too short.", {}
91
+
92
+ mu, std = np.mean(ts), np.std(ts)
93
+ if std < 1e-6:
94
+ return [], f"The series is constant (value={mu:.2f}), so no range anomalies can be detected.", {}
95
+
96
+ upper, lower = mu + k * std, mu - k * std
97
+ is_anomaly = (ts > upper) | (ts < lower)
98
+ intervals = vector_to_intervals(is_anomaly)
99
+
100
+ analysis_text = (
101
+ f"To find range anomalies, I first calculated the global statistics: "
102
+ f"the mean is {mu:.3f} and the standard deviation is {std:.3f}. "
103
+ f"This establishes a normal range of [{lower:.3f}, {upper:.3f}] using a {k}-sigma rule. "
104
+ f"Scanning the series for points outside this boundary resulted in finding {len(intervals)} anomalous interval(s)."
105
+ )
106
+ metrics = {"range_mean": mu, "range_std": std, "range_upper": upper, "range_lower": lower}
107
+ return intervals, analysis_text, metrics
108
+
109
+ def detect_trend_anomalies(ts: np.ndarray, window: int = 21, k: float = 3.0) -> Tuple[List[List[int]], str, Dict]:
110
+ """Uses smoothed gradient for trend anomalies and generates a CoT-style text."""
111
+ if ts.size < window * 2:
112
+ return [], "Series too short for trend analysis.", {}
113
+
114
+ smooth_ts = savgol_filter(ts, window_length=window, polyorder=2)
115
+ gradient = np.gradient(smooth_ts)
116
+ grad_mu, grad_std = np.mean(gradient), np.std(gradient)
117
+ if grad_std < 1e-6:
118
+ return [], f"The trend appears to be constant (gradient={grad_mu:.4f}), so no significant changes were detected.", {}
119
+
120
+ threshold = k * grad_std
121
+ is_anomaly = np.abs(gradient - grad_mu) > threshold
122
+ intervals = vector_to_intervals(is_anomaly)
123
+
124
+ analysis_text = (
125
+ f"For trend analysis, I focused on the rate of change. After smoothing the series with a window of {window}, "
126
+ f"I computed its gradient. The normal gradient fluctuates around a mean of {grad_mu:.4f} with a std of {grad_std:.4f}. "
127
+ f"A significant trend shift should cause a gradient deviation larger than the {k}-sigma threshold of {threshold:.4f}. "
128
+ f"This check identified {len(intervals)} interval(s) meeting the condition."
129
+ )
130
+ metrics = {"trend_grad_mean": grad_mu, "trend_grad_std": grad_std, "trend_grad_threshold": threshold}
131
+ return intervals, analysis_text, metrics
132
+
133
+ def detect_point_anomalies(ts: np.ndarray, window: int = 50, k: float = 3.5) -> Tuple[List[List[int]], str, Dict]:
134
+ """Uses Matrix Profile (STUMPY) for point anomalies and generates a CoT-style text."""
135
+ if ts.size < window * 2:
136
+ return [], "Series too short for discord detection.", {}
137
+
138
+
139
+ mp = stumpy.stump(ts, m=window, ignore_trivial=True)
140
+
141
+
142
+
143
+ raw_mp_distances = mp[:, 0]
144
+ mp_distances = np.zeros(raw_mp_distances.shape, dtype=np.float64)
145
+ for i, val in enumerate(raw_mp_distances):
146
+ try:
147
+ float_val = float(val)
148
+ mp_distances[i] = float_val
149
+ except (ValueError, TypeError):
150
+ mp_distances[i] = 0.0
151
+
152
+ finite_mask = np.isfinite(mp_distances)
153
+ if np.any(finite_mask):
154
+ max_finite_val = np.max(mp_distances[finite_mask])
155
+ mp_distances[~finite_mask] = max_finite_val
156
+ else:
157
+ return [], "Matrix Profile computation resulted in non-finite values only.", {}
158
+
159
+ mp_zscores = zscore(mp_distances)
160
+ discord_idx = np.argmax(mp_distances)
161
+ max_zscore = mp_zscores[discord_idx]
162
+
163
+ intervals = []
164
+ if max_zscore > k:
165
+ intervals = [[int(discord_idx), int(discord_idx + window)]]
166
+
167
+ analysis_text = (
168
+ f"To detect contextual point anomalies, I used the Matrix Profile (window={window}, ignoring trivial matches) to find the most unusual subsequence (discord). "
169
+ f"The computation revealed that the highest discord score is {mp_distances[discord_idx]:.2f}, located at index {discord_idx}. "
170
+ f"This score corresponds to a z-score of {max_zscore:.2f}, which is above my threshold of {k}, indicating a significant anomaly. "
171
+ f"Thus, {len(intervals)} anomaly was identified."
172
+ )
173
+ metrics = {"point_discord_idx": int(discord_idx), "point_discord_zscore": float(max_zscore)}
174
+ return intervals, analysis_text, metrics
175
+
176
+ def detect_freq_anomalies(ts: np.ndarray, window: int = 100, k: float = 3.0) -> Tuple[List[List[int]], str, Dict]:
177
+ """Uses dominant period changes for frequency anomalies and generates a CoT-style text."""
178
+ if ts.size < window * 3:
179
+ return [], "Series too short for frequency analysis.", {}
180
+
181
+ periods = [_dominant_period(ts[i : i + window]) for i in range(ts.size - window)]
182
+ periods = np.array([p if np.isfinite(p) else -1 for p in periods])
183
+ valid_periods = periods[periods != -1]
184
+
185
+ if valid_periods.size < 10:
186
+ return [], "Could not determine a stable dominant period.", {}
187
+
188
+ per_mu, per_std = np.mean(valid_periods), np.std(valid_periods)
189
+ if per_std < 1.0: # If period is very stable
190
+ return [], f"The dominant period is highly stable around {per_mu:.2f}, so no frequency anomalies detected.", {}
191
+
192
+ threshold_upper = per_mu + k * per_std
193
+ threshold_lower = per_mu - k * per_std
194
+ is_anomaly_periods = (periods > threshold_upper) | ((periods < threshold_lower) & (periods != -1))
195
+
196
+ is_anomaly_ts = np.zeros_like(ts, dtype=bool)
197
+ for i, is_anom in enumerate(is_anomaly_periods):
198
+ if is_anom:
199
+ is_anomaly_ts[i : i + window] = True
200
+
201
+ intervals = vector_to_intervals(is_anomaly_ts)
202
+
203
+ analysis_text = (
204
+ f"To find frequency anomalies, I calculated the dominant period over a sliding window of size {window}. "
205
+ f"The typical period is around {per_mu:.2f} with a std of {per_std:.2f}. "
206
+ f"I'm looking for regions where the period significantly deviates from the normal range of [{threshold_lower:.2f}, {threshold_upper:.2f}]. "
207
+ f"This analysis pointed to {len(intervals)} interval(s) with clear frequency shifts."
208
+ )
209
+ metrics = {"freq_period_mean": per_mu, "freq_period_std": per_std}
210
+ return intervals, analysis_text, metrics
211
+
212
+
213
+ def _json_default(o):
214
+ import numpy as _np
215
+ if isinstance(o, (_np.integer,)):
216
+ return int(o)
217
+ if isinstance(o, (_np.floating,)):
218
+ return float(o)
219
+ if isinstance(o, _np.ndarray):
220
+ return o.tolist()
221
+ return str(o)
222
+
223
+ def _intervals_str(intervals):
224
+ if not intervals:
225
+ return "[]"
226
+ return ", ".join([f"[{int(s)}, {int(e)}]" for s, e in intervals])
227
+
228
+ def _normalize_class(name: str) -> str:
229
+ m = (name or "").lower()
230
+ if m in ["global","global point","out-of-range","range","noisy-range"]:
231
+ return "global point"
232
+ if m in ["contextual","contextual point","point","noisy-point"]:
233
+ return "contextual point"
234
+ if m in ["trend","trend shift","noisy-trend","flat-trend"]:
235
+ return "trend"
236
+ if m in ["seasonal","frequency","seasonal/frequency deviation","freq","noisy-freq"]:
237
+ return "seasonal"
238
+ if m in ["shapelet","subsequence","shapelet/subsequence"]:
239
+ return "shapelet"
240
+ return "normal"
241
+
242
+
243
+ def _get_expert_reasoning_flow(ts: np.ndarray, task_hint: str) -> Tuple[str, callable]:
244
+ """
245
+ Simulates an expert's diagnostic process to select the right tool.
246
+ Returns a reasoning text and the selected detection function.
247
+ """
248
+ # --- Step 1: Global Scan
249
+ global_mu, global_std = np.mean(ts), np.std(ts)
250
+ max_zscore = 0
251
+ if global_std > 1e-6:
252
+ z_scores = np.abs((ts - global_mu) / global_std)
253
+ max_zscore = np.max(z_scores)
254
+
255
+ if max_zscore > 5.0: # A very high Z-score suggests a simple range anomaly is likely.
256
+ reasoning = (
257
+ "My initial check reveals extreme values. The global mean is "
258
+ f"{global_mu:.3f} and std is {global_std:.3f}, but some points have a z-score as high as {max_zscore:.2f}. "
259
+ "This strongly suggests a range-based anomaly. I will now apply a k-sigma rule to formalize this."
260
+ )
261
+ return reasoning, detect_range_anomalies
262
+
263
+ # --- Step 2: Structural Scan
264
+
265
+ # Check for stable trend
266
+ gradient = np.gradient(ts)
267
+ grad_mu, grad_std = np.mean(gradient), np.std(gradient)
268
+ # A low gradient std relative to the overall data std might indicate a stable trend
269
+ is_trend_stable = (grad_std / global_std) < 0.1 if global_std > 1e-6 else True
270
+
271
+ # Check for stable frequency
272
+ dominant_p = _dominant_period(ts)
273
+ is_freq_stable = dominant_p != float('inf') and dominant_p > 8 # has a detectable period
274
+
275
+ # Decision based on structure and task hint
276
+ task_lc = task_hint.lower()
277
+ if 'trend' in task_lc:
278
+ reasoning = (
279
+ f"The global values seem normal (max z-score={max_zscore:.2f}), so I'll check the trend. "
280
+ "The gradient of the series appears unstable. This suggests a potential trend anomaly. "
281
+ "I will analyze the smoothed gradient to confirm any significant shifts."
282
+ )
283
+ return reasoning, detect_trend_anomalies
284
+
285
+ if 'freq' in task_lc:
286
+ reasoning = (
287
+ f"Global values and trend seem stable. However, the signal appears periodic. "
288
+ "An unstable period can indicate a frequency anomaly. "
289
+ "I will use a sliding window analysis to check for significant changes in the dominant period."
290
+ )
291
+ return reasoning, detect_freq_anomalies
292
+
293
+ # --- Step 3: Pattern Scan (If all else seems normal, look for unique patterns) ---
294
+ # Corresponds to Matrix Profile logic. This is the default for 'point' or when other checks fail.
295
+ reasoning = (
296
+ f"The series does not exhibit obvious global outliers (max z-score={max_zscore:.2f}) or clear structural instability. "
297
+ "The anomalies are likely subtle and contextual. This requires a pattern-based approach. "
298
+ "I will use the Matrix Profile to find the most dissimilar subsequence (a discord), which is the standard method for such cases."
299
+ )
300
+ return reasoning, detect_point_anomalies
301
+
302
+
303
+ def _link_gt_feature(gt_intervals: List[List[int]], class_name: str) -> str:
304
+ iv_str = _intervals_str(gt_intervals)
305
+ if iv_str == "[]":
306
+ return f"I did not observe any {class_name} anomaly in the series. "
307
+
308
+ if class_name == "global point":
309
+ return f"I observed that the values within {iv_str} exhibit clear out-of-range behavior, with sharp spikes deviating from the global distribution. "
310
+ if class_name == "contextual point":
311
+ return f"I observed that the subsequence {iv_str} appears inconsistent with its local temporal context, breaking the continuity of surrounding patterns. "
312
+ if class_name == "trend":
313
+ return f"I observed that the segment within {iv_str} shows a clear trend shift, with the long-term slope undergoing a marked change. "
314
+ if class_name == "seasonal":
315
+ return f"I observed that the oscillations within {iv_str} display frequency deviation, with periodic structure misaligned from the baseline cycle. "
316
+ if class_name == "shapelet":
317
+ return f"I observed that the subsequence within {iv_str} deviates in waveform shape, differing notably from typical local motifs. "
318
+ return f"I observed that the segment {iv_str} is annotated as {class_name}. "
319
+
320
+
321
+ def build_prompt_and_expcot(ts: Optional[np.ndarray],
322
+ task: str,
323
+ L: int,
324
+ gt_intervals: List[List[int]],
325
+ gt_type: str) -> Tuple[str, str, Dict]:
326
+
327
+ prompt = (
328
+ "<image>\n"
329
+ f"You are a time series analysis expert. A time series plot of length {L} is provided. "
330
+ "Identify anomalous intervals along the x-axis and infer the most plausible anomaly type from "
331
+ "[\"contextual point\", \"global point\", \"seasonal\", \"trend\", \"shapelet\"].\n\n"
332
+ "Begin detailed reasoning inside <think>...</think>.\n"
333
+ "Then output:\n"
334
+ "<answer>[[start, end], ...]</answer>\n"
335
+ "<class>one of {contextual point, global point, seasonal, trend, shapelet, normal}</class>\n"
336
+ "If no anomalies, return <answer>[]</answer> and <class>normal</class>.\n"
337
+ )
338
+
339
+
340
+ class_by_task = _normalize_class(task)
341
+ class_by_gt = _normalize_class(gt_type)
342
+ class_name = class_by_gt if class_by_gt != "normal" else class_by_task
343
+
344
+ if ts is None or ts.size < 20:
345
+ if gt_intervals:
346
+ expcot = (
347
+ f"\\textbf{{Observation}} — Ground truth marks { _intervals_str(gt_intervals) } "
348
+ f"as \\textit{{{class_name}}}, but raw series is unavailable/too short for verification.\n"
349
+ f"\\textbf{{Conclusion}} — We retain the GT label and intervals for supervision."
350
+ )
351
+ else:
352
+ expcot = (
353
+ "\\textbf{Observation} — Ground truth indicates no anomaly; raw series unavailable/too short.\n"
354
+ "\\textbf{Conclusion} — Treated as normal."
355
+ )
356
+ return prompt, expcot, {"intervals_gt": gt_intervals, "class": class_name}
357
+
358
+
359
+ x = ts if ts.ndim == 1 else ts.mean(axis=1)
360
+ pre = ""
361
+ if "noisy" in task.lower():
362
+ wl = max(5, min(31, (len(x)//4)|1))
363
+ x = savgol_filter(x, window_length=wl, polyorder=2)
364
+ pre = f"[Preprocess] Applied Savitzky–Golay denoising (win={wl}). "
365
+
366
+ initial_reasoning, selected_detector = _get_expert_reasoning_flow(x, task)
367
+ det_intervals, final_evidence, detection_metrics = selected_detector(x)
368
+
369
+
370
+ obs = (
371
+ f"Ground truth labels { _intervals_str(gt_intervals) } as \\textit{{{class_name}}}. "
372
+ f"{initial_reasoning}"
373
+ )
374
+
375
+
376
+ val = (
377
+ _link_gt_feature(gt_intervals, class_name)
378
+ + final_evidence.replace("To find", "The analysis").replace("For", "The analysis")
379
+ )
380
+
381
+
382
+
383
+ if gt_intervals:
384
+ concl = (
385
+ f"We report the GT interval(s) { _intervals_str(gt_intervals) } "
386
+ f"as the final localization for supervision. "
387
+ f"For reference, the detector proposed { _intervals_str(det_intervals) }."
388
+ )
389
+ out_intervals = gt_intervals #
390
+ else:
391
+ concl = (
392
+ "No ground-truth anomalies are present; the series is treated as normal. "
393
+ f"For reference, the detector proposed { _intervals_str(det_intervals) }."
394
+ )
395
+ out_intervals = [] # normal
396
+
397
+ expcot = (
398
+ f"{pre}"
399
+ f"\\textbf{{Observation}} — {obs}\n"
400
+ f"\\textbf{{Reasoning \\& Validation}} — {val}\n"
401
+ f"\\textbf{{Conclusion}} — {concl}"
402
+ ).strip()
403
+
404
+
405
+ return prompt, expcot, {
406
+ "intervals_gt": gt_intervals,
407
+ "intervals_pred": det_intervals,
408
+ "class": class_name,
409
+ **detection_metrics
410
+ }
411
+
412
+ # --- CORRECTED DATA LOADING HELPERS ---
413
+ def _load_split_pkl(task_dir: str, split: str) -> Tuple[Optional[list], Optional[list]]:
414
+
415
+ pkl_path = os.path.join(task_dir, split, "data.pkl")
416
+ if not os.path.isfile(pkl_path):
417
+ return None, None
418
+ try:
419
+ with open(pkl_path, "rb") as f:
420
+ obj = pickle.load(f)
421
+ series = obj.get("series", None)
422
+ anom = obj.get("anom", None)
423
+ return series, anom
424
+ except Exception:
425
+ return None, None
426
+
427
+ def _pick_index_from_png_idx(idx_str: str, n: int) -> Optional[int]:
428
+
429
+ try:
430
+ k = int(idx_str)
431
+ except Exception:
432
+ return None
433
+ for cand in (k-1, k):
434
+ if 0 <= cand < n:
435
+ return cand
436
+ return None
437
+
438
+ def _intervals_from_anom_entry(anom_entry) -> List[List[int]]:
439
+
440
+ intervals = []
441
+ if not anom_entry: return intervals
442
+ for ch_list in anom_entry:
443
+ for pair in ch_list:
444
+ if isinstance(pair, (list, tuple)) and len(pair) == 2:
445
+ s, e = int(pair[0]), int(pair[1])
446
+ if e > s: intervals.append([s, e])
447
+ intervals.sort(key=lambda z: (z[0], z[1]))
448
+ return intervals
449
+
450
+ def _parse_idx_from_png(png_path: str) -> str:
451
+
452
+ base = os.path.basename(png_path)
453
+ m = re.search(r"(\d+)", base)
454
+ return m.group(1) if m else os.path.splitext(base)[0]
455
+
456
+ def process_task(root_dir: str, task: str, out_dir: str) -> Tuple[str, Optional[str]]:
457
+
458
+ task_dir = os.path.join(root_dir, task)
459
+ results = {"train": [], "eval": []}
460
+
461
+ for split in ["train", "eval"]:
462
+ figs_dir = os.path.join(task_dir, split, "figs")
463
+ if not os.path.isdir(figs_dir):
464
+ print(f"Warning: Directory not found for {task}/{split}/figs. Skipping.")
465
+ continue
466
+
467
+
468
+ series_list, anom_list = _load_split_pkl(task_dir, split)
469
+ n_samples = len(series_list) if isinstance(series_list, list) else 0
470
+ use_pkl = (series_list is not None) and (anom_list is not None) and (n_samples > 0)
471
+
472
+ pngs = sorted(glob.glob(os.path.join(figs_dir, "*.png")))
473
+ for i, png_path in enumerate(pngs):
474
+ idx_str = _parse_idx_from_png(png_path)
475
+
476
+ ts, gt_intervals = None, []
477
+
478
+
479
+ if use_pkl:
480
+ pkl_i = _pick_index_from_png_idx(idx_str, n_samples)
481
+ if pkl_i is not None:
482
+ ts = np.asarray(series_list[pkl_i])
483
+ gt_intervals = _intervals_from_anom_entry(anom_list[pkl_i])
484
+
485
+
486
+ def map_task_to_anomaly(task_name: str) -> str:
487
+ if task_name in ["range", "noisy-range"]:
488
+ return "global"
489
+ elif task_name in ["freq", "noise-freq"]:
490
+ return "seasonal"
491
+ elif task_name in ["point", "noise-point"]:
492
+ return "contextual"
493
+ elif task_name in ["trend", "noise-trend"]:
494
+ return "trend"
495
+ else:
496
+ return "unknown"
497
+ L = len(ts) if ts is not None else 0
498
+
499
+ anomaly_type = map_task_to_anomaly(task)
500
+ if gt_intervals == []:
501
+ anomaly_type = 'normal'
502
+ gt_type = anomaly_type if anomaly_type else _normalize_class(task)
503
+ prompt_text, expcot, detection_metrics = build_prompt_and_expcot(ts, task, L, gt_intervals, gt_type)
504
+
505
+ image = Image.open(png_path).convert("RGBA")
506
+
507
+
508
+
509
+ row = {
510
+ "data_source": "timeseries_anol",
511
+ "prompt": [{"role": "user", "content": prompt_text}],
512
+ "images": [image],
513
+ "ability": "time_series_anomaly_detection",
514
+ "reward_model": {"style": "rule", "ground_truth": gt_intervals},
515
+ "extra_info": {
516
+ "category": task,
517
+ "split": split,
518
+ "instance_index": i,
519
+ "image_path": png_path,
520
+ "expcot": expcot,
521
+ "detection_metrics": detection_metrics,
522
+ "gt_intervals": gt_intervals,
523
+ "series_length": len(ts) if ts is not None else 0,
524
+ "index": pkl_i,
525
+ "anomaly_type": anomaly_type
526
+ }
527
+ }
528
+ results[split].append(row)
529
+
530
+ os.makedirs(out_dir, exist_ok=True)
531
+ train_path = os.path.join(out_dir, f"{task}_train.parquet")
532
+ test_path = os.path.join(out_dir, f"{task}_test.parquet")
533
+
534
+ if results["train"]:
535
+ train_ds = Dataset.from_list(results["train"])
536
+ train_ds.to_parquet(train_path)
537
+ else:
538
+ train_path = ""
539
+
540
+ if results["eval"]:
541
+ eval_ds = Dataset.from_list(results["eval"])
542
+ eval_ds.to_parquet(test_path)
543
+ else:
544
+ test_path = None
545
+
546
+ return train_path, test_path
547
+
548
+
549
+
550
+ def main():
551
+ parser = argparse.ArgumentParser(description="Process synthetic time series anomaly data into parquet files.")
552
+ parser.add_argument("--root_dir", type=str,
553
+ default="./data/anomllm/data/synthetic",
554
+ help="Root directory containing the task folders.")
555
+ parser.add_argument("--out_dir", type=str,
556
+ default="./data/anol_processed_mllm_data",
557
+ help="Output directory to store the final parquet files.")
558
+ args = parser.parse_args()
559
+
560
+ tasks = ["trend", "freq", "point", "range", "noisy-trend", "noisy-freq", "noisy-point", "flat-trend"]
561
+
562
+ print(f"Input data root: {args.root_dir}")
563
+ print(f"Output directory: {args.out_dir}")
564
+ os.makedirs(args.out_dir, exist_ok=True)
565
+
566
+ all_train_dfs = []
567
+ all_test_dfs = []
568
+
569
+ for task in tasks:
570
+ print(f"\nProcessing task: {task}...")
571
+
572
+ tr_path, te_path = process_task(args.root_dir, task, args.out_dir)
573
+ if tr_path and os.path.exists(tr_path):
574
+ print(f" ✅ Saved train data to -> {tr_path}")
575
+ all_train_dfs.append(pd.read_parquet(tr_path))
576
+ if te_path and os.path.exists(te_path):
577
+ print(f" ✅ Saved test data to -> {te_path}")
578
+ all_test_dfs.append(pd.read_parquet(te_path))
579
+ if not tr_path and not te_path:
580
+ print(f" ⚠️ No data found for task '{task}'. Check directory structure.")
581
+
582
+
583
+ if all_train_dfs:
584
+ full_train_df = pd.concat(all_train_dfs, ignore_index=True)
585
+ full_train_path = os.path.join(args.out_dir, "train_full.parquet")
586
+ full_train_df.to_parquet(full_train_path, index=False)
587
+ print(f"\n📦 Successfully merged and saved all training data to -> {full_train_path}")
588
+
589
+ if all_test_dfs:
590
+ full_test_df = pd.concat(all_test_dfs, ignore_index=True)
591
+ full_test_path = os.path.join(args.out_dir, "test_full.parquet")
592
+ full_test_df.to_parquet(full_test_path, index=False)
593
+ print(f"📦 Successfully merged and saved all testing data to -> {full_test_path}")
594
+
595
+ if __name__ == "__main__":
596
+ main()
multimodal_data_processing/rats_uni.py ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Convert the Time-RA RATs-Uni (univariate) reasoning dataset into the parquet
4
+ format consumed by AnomSeer's veRL training/eval pipeline.
5
+
6
+ Unlike AnomLLM (see ``anom.py``), the Time-RA univariate dataset does **not**
7
+ provide anomaly *intervals* — it provides, per univariate series:
8
+
9
+ * ``Observation`` : the raw time series (list of floats, length 32/64/128)
10
+ * ``FigurePath`` : a rendered plot (``figures/{train,test}/{idx}.jpg``)
11
+ * ``ActionID`` : the anomaly class id (0-14, 0 == normal)
12
+ * ``Action`` : the human-readable class name
13
+ * ``Label`` : "Normal" / "Anomaly"
14
+ * ``Thought`` : an expert chain-of-thought explanation
15
+
16
+ We therefore adapt AnomSeer to a **classification + reasoning** task (no
17
+ localization). Each output row matches the schema expected by
18
+ ``verl.utils.dataset.rl_dataset.RLHFDataset`` and is scored by the
19
+ ``timeseries_rats`` reward (``verl/utils/reward_score/rats.py``):
20
+
21
+ data_source : "timeseries_rats"
22
+ prompt : [{"role": "user", "content": "<image>\\n ... <class> ..."}]
23
+ images : [{"bytes": <jpg bytes>, "path": <abs path>}]
24
+ ability : "time_series_anomaly_detection"
25
+ reward_model : {"style": "rule", "ground_truth": <canonical class name>}
26
+ extra_info : {category, source, split, anomaly_type, action_id, label,
27
+ series_length, image_path, expcot, numtext, index}
28
+
29
+ The ``numtext`` field is the expert CoT and is **required** by TimerPO's
30
+ semantic-alignment term (``compute_hidden_states_of_hint`` in fsdp_workers.py).
31
+
32
+ Usage
33
+ -----
34
+ python multimodal_data_processing/rats_uni.py \
35
+ --json_path /path/to/RATs40K/RATs-Uni-TSImage_Reason.json \
36
+ --out_dir ./data/rats_uni_processed
37
+
38
+ Produces ``train_full.parquet`` and ``test_full.parquet`` in ``--out_dir``.
39
+ """
40
+
41
+ import os
42
+ import io
43
+ import json
44
+ import argparse
45
+ from typing import Dict, List, Optional, Tuple
46
+
47
+ import numpy as np
48
+ import pandas as pd
49
+ from PIL import Image
50
+
51
+
52
+ # Canonical 15-class taxonomy (id -> (name, description)), matching
53
+ # Time-RA/eval_utils.py::ANOMALY_DICT exactly.
54
+ ANOMALY_DICT: Dict[int, Tuple[str, str]] = {
55
+ 0: ("Normal Sequence", "There are no abnormal situations in this time series."),
56
+ 1: ("Point Anomaly", "A single data point significantly deviates from the local or global pattern of the sequence."),
57
+ 2: ("Periodic Change Anomaly", "The original periodic pattern is disrupted, e.g. the period is broken or the amplitude becomes anomalous."),
58
+ 3: ("Trend Change Anomaly", "A sudden change in the long-term trend of the time series."),
59
+ 4: ("Change Point Anomaly", "Statistical properties (e.g. mean, variance) change abruptly at certain points."),
60
+ 5: ("Distributional Change Anomaly", "The statistical distribution of the time series changes significantly."),
61
+ 6: ("Amplitude Anomaly", "The amplitude of data points exceeds the normal upper and lower bounds."),
62
+ 7: ("Pattern Change Anomaly", "The pattern of the time series suddenly changes from one form to another."),
63
+ 8: ("Sparse Anomaly", "Isolated anomalous patterns occasionally appear in a long time series."),
64
+ 9: ("Repeated Value Anomaly", "Continuous or intermittent repeated values disrupt the normal fluctuation pattern."),
65
+ 10: ("Sudden Flatline Anomaly", "The time series suddenly becomes a flat line with no normal fluctuations."),
66
+ 11: ("Drift Anomaly", "The data gradually drifts away from the normal level."),
67
+ 12: ("Sudden Spike Anomaly", "The data suddenly spikes or drops within a short time and then returns to normal."),
68
+ 13: ("Continuous Segment Anomaly", "A continuous segment of data points deviates from the normal pattern."),
69
+ 14: ("Nonlinear Pattern Anomaly", "Nonlinear changes appear in the sequence, breaking the original linear rule."),
70
+ }
71
+
72
+ NAME_BY_ID = {i: name for i, (name, _) in ANOMALY_DICT.items()}
73
+ ID_BY_NAME = {name.lower(): i for i, (name, _) in ANOMALY_DICT.items()}
74
+
75
+ # Splits in the JSON -> output split name used by AnomSeer ("eval" == val/test).
76
+ SPLIT_MAP = {"TSAD_train": "train", "TSAD_test": "eval"}
77
+
78
+
79
+ def _build_taxonomy_block() -> str:
80
+ lines = []
81
+ for i in range(len(ANOMALY_DICT)):
82
+ name, desc = ANOMALY_DICT[i]
83
+ lines.append(f"{i}: {name} — {desc}")
84
+ return "\n".join(lines)
85
+
86
+
87
+ _TAXONOMY_BLOCK = _build_taxonomy_block()
88
+ _CLASS_NAMES = ", ".join(NAME_BY_ID[i] for i in range(len(NAME_BY_ID)))
89
+
90
+
91
+ def build_prompt(length: int, source: str) -> str:
92
+ """Classification + reasoning prompt (no interval localization)."""
93
+ return (
94
+ "<image>\n"
95
+ f"You are an expert in univariate time-series anomaly detection. The figure shows a "
96
+ f"single-channel time series of length {length} from the \"{source}\" domain.\n\n"
97
+ "Decide whether the series is normal or contains an anomaly. If it is anomalous, choose the "
98
+ "single most appropriate anomaly type from the following 15 categories "
99
+ "(format `id: name — description`):\n"
100
+ f"{_TAXONOMY_BLOCK}\n\n"
101
+ "Reason step by step inside <think>...</think> based on the visual shape of the series, "
102
+ "then output exactly one line with your final answer:\n"
103
+ "<class>one exact category name from the list above</class>\n"
104
+ "If the series is normal, use <class>Normal Sequence</class>."
105
+ )
106
+
107
+
108
+ def _canonical_class(action: Optional[str], action_id: Optional[int]) -> Tuple[str, int]:
109
+ """Resolve the canonical (name, id) from the raw Action / ActionID fields.
110
+
111
+ ActionID is treated as authoritative; Action is used only as a fallback.
112
+ """
113
+ if isinstance(action_id, (int, np.integer)) and int(action_id) in NAME_BY_ID:
114
+ cid = int(action_id)
115
+ return NAME_BY_ID[cid], cid
116
+ if isinstance(action, str) and action.strip().lower() in ID_BY_NAME:
117
+ cid = ID_BY_NAME[action.strip().lower()]
118
+ return NAME_BY_ID[cid], cid
119
+ # Unknown -> treat as normal (id 0) so downstream typing stays consistent.
120
+ return NAME_BY_ID[0], 0
121
+
122
+
123
+ def _read_image_bytes(path: str) -> Optional[bytes]:
124
+ """Return raw image bytes, re-encoding to a clean RGB JPEG if needed."""
125
+ if not os.path.isfile(path):
126
+ return None
127
+ try:
128
+ with open(path, "rb") as f:
129
+ raw = f.read()
130
+ # Validate; re-encode non-RGB to avoid downstream surprises.
131
+ with Image.open(io.BytesIO(raw)) as im:
132
+ if im.mode == "RGB":
133
+ return raw
134
+ buf = io.BytesIO()
135
+ im.convert("RGB").save(buf, format="JPEG", quality=95)
136
+ return buf.getvalue()
137
+ except Exception as exc: # noqa: BLE001
138
+ print(f"[WARN] failed to read image {path}: {exc}")
139
+ return None
140
+
141
+
142
+ # Some test entries point FigurePath at a ``.pdf`` that was never exported; the
143
+ # rendered raster lives next to it as a same-index ``.jpg``. Fall back across
144
+ # common raster extensions before giving up.
145
+ _IMG_EXT_FALLBACKS = (".jpg", ".png", ".jpeg")
146
+
147
+
148
+ def _resolve_figure_path(data_root: str, figure_path: str) -> str:
149
+ """FigurePath is stored relative to the dataset root (e.g. figures/train/0.jpg).
150
+
151
+ Returns the first existing file, trying the stored path first and then the
152
+ same stem with a raster extension (handles ``.pdf`` FigurePaths)."""
153
+ base = figure_path if os.path.isabs(figure_path) else os.path.join(data_root, figure_path)
154
+ if os.path.isfile(base):
155
+ return base
156
+ stem, _ = os.path.splitext(base)
157
+ for ext in _IMG_EXT_FALLBACKS:
158
+ cand = stem + ext
159
+ if os.path.isfile(cand):
160
+ return cand
161
+ return base # non-existent; caller reports it as a skip
162
+
163
+
164
+ def process_split(records: dict, split_name: str, data_root: str,
165
+ max_samples: Optional[int] = None) -> List[dict]:
166
+ rows: List[dict] = []
167
+ n_skipped_none = 0
168
+ n_skipped_img = 0
169
+
170
+ # Iterate in numeric key order for reproducibility.
171
+ keys = sorted(records.keys(), key=lambda k: int(k) if str(k).isdigit() else k)
172
+ for out_idx, key in enumerate(keys):
173
+ if max_samples is not None and len(rows) >= max_samples:
174
+ break
175
+
176
+ entry = records[key]
177
+ if entry is None: # the JSON contains a handful of null test entries
178
+ n_skipped_none += 1
179
+ continue
180
+
181
+ obs = entry.get("Observation") or []
182
+ length = len(obs)
183
+ source = entry.get("Source", "unknown")
184
+ figure_path = entry.get("FigurePath", "")
185
+ thought = entry.get("Thought", "") or ""
186
+ label = entry.get("Label", "Anomaly")
187
+
188
+ img_path = _resolve_figure_path(data_root, figure_path)
189
+ img_bytes = _read_image_bytes(img_path)
190
+ if img_bytes is None:
191
+ n_skipped_img += 1
192
+ continue
193
+
194
+ class_name, class_id = _canonical_class(entry.get("Action"), entry.get("ActionID"))
195
+ prompt_text = build_prompt(length, source)
196
+
197
+ rows.append({
198
+ "data_source": "timeseries_rats",
199
+ "prompt": [{"role": "user", "content": prompt_text}],
200
+ "images": [{"bytes": img_bytes, "path": img_path}],
201
+ "ability": "time_series_anomaly_detection",
202
+ "reward_model": {"style": "rule", "ground_truth": class_name},
203
+ "extra_info": {
204
+ "index": int(key) if str(key).isdigit() else out_idx,
205
+ "category": class_name, # per-class metric grouping
206
+ "source": source, # domain grouping
207
+ "split": split_name,
208
+ "anomaly_type": class_name, # read by the reward as GT class
209
+ "action_id": int(class_id),
210
+ "label": label,
211
+ "series_length": int(length),
212
+ "image_path": img_path,
213
+ "expcot": thought, # expert CoT
214
+ "numtext": thought, # required by TimerPO hint term
215
+ },
216
+ })
217
+
218
+ print(f" [{split_name}] kept={len(rows)} "
219
+ f"skipped(null)={n_skipped_none} skipped(missing-image)={n_skipped_img}")
220
+ return rows
221
+
222
+
223
+ def write_parquet(rows: List[dict], path: str) -> None:
224
+ if not rows:
225
+ print(f" [skip] no rows for {path}")
226
+ return
227
+ df = pd.DataFrame(rows)
228
+ df.to_parquet(path, index=False, engine="pyarrow")
229
+ print(f" ✅ wrote {len(df)} rows -> {path}")
230
+
231
+
232
+ def main() -> None:
233
+ parser = argparse.ArgumentParser(
234
+ description="Convert Time-RA RATs-Uni JSON into AnomSeer parquet (classification + reasoning).")
235
+ parser.add_argument("--json_path", type=str,
236
+ default="/mnt/share01/sqk/datasets/RATs40K/RATs-Uni-TSImage_Reason.json",
237
+ help="Path to RATs-Uni-TSImage_Reason.json")
238
+ parser.add_argument("--data_root", type=str, default=None,
239
+ help="Dataset root that FigurePath is relative to "
240
+ "(defaults to the directory of --json_path).")
241
+ parser.add_argument("--out_dir", type=str, default="./data/rats_uni_processed",
242
+ help="Output directory for the parquet files.")
243
+ parser.add_argument("--max_samples", type=int, default=None,
244
+ help="Optional cap on samples per split (for quick tests).")
245
+ args = parser.parse_args()
246
+
247
+ data_root = args.data_root or os.path.dirname(os.path.abspath(args.json_path))
248
+ os.makedirs(args.out_dir, exist_ok=True)
249
+
250
+ print(f"Reading {args.json_path}")
251
+ print(f"Figure root: {data_root}")
252
+ with open(args.json_path, "r") as f:
253
+ data = json.load(f)
254
+
255
+ for json_split, out_split in SPLIT_MAP.items():
256
+ if json_split not in data:
257
+ print(f"[WARN] split '{json_split}' not found in JSON; skipping.")
258
+ continue
259
+ print(f"\nProcessing {json_split} -> {out_split}")
260
+ rows = process_split(data[json_split], out_split, data_root, args.max_samples)
261
+ fname = "train_full.parquet" if out_split == "train" else "test_full.parquet"
262
+ write_parquet(rows, os.path.join(args.out_dir, fname))
263
+
264
+ print("\nDone.")
265
+
266
+
267
+ if __name__ == "__main__":
268
+ main()
outputs/2026-06-09/15-29-24/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: ./data/rats_uni_processed/test_full.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: true
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: all-linear
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: true
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: false
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/15-29-24/.hydra/hydra.yaml ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
117
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules=all-linear
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=True
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
148
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
149
+ - algorithm.kl_ctrl.kl_coef=0.001
150
+ - trainer.critic_warmup=0
151
+ - trainer.logger=['console']
152
+ - trainer.project_name=anomseer
153
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
154
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
155
+ - trainer.n_gpus_per_node=2
156
+ - trainer.nnodes=1
157
+ - trainer.save_freq=500
158
+ - trainer.test_freq=10
159
+ - trainer.val_only=False
160
+ - trainer.val_before_train=True
161
+ - trainer.total_epochs=10
162
+ - ts.use_sem_orth=True
163
+ - ts.adv_mix=0.3
164
+ - ts.similarity_method=ot
165
+ - ts.ot_eps=0.08
166
+ - ts.ot_n_iter=50
167
+ job:
168
+ name: main_ppo
169
+ chdir: null
170
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules=all-linear,actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct,actor_rollout_ref.model.use_remove_padding=True,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.tensor_model_parallel_size=2,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.train_batch_size=128,data.train_files=./data/rats_uni_processed/train_full.parquet,data.truncation=error,data.val_files=./data/rats_uni_processed/test_full.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu,trainer.experiment_name=anomseer_rats_uni_2gpu,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=500,trainer.test_freq=10,trainer.total_epochs=10,trainer.val_before_train=True,trainer.val_only=False,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
171
+ id: ???
172
+ num: ???
173
+ config_name: ppo_trainer
174
+ env_set: {}
175
+ env_copy: []
176
+ config:
177
+ override_dirname:
178
+ kv_sep: '='
179
+ item_sep: ','
180
+ exclude_keys: []
181
+ runtime:
182
+ version: 1.3.0
183
+ version_base: '1.3'
184
+ cwd: /mnt/share01/sqk/AnomSeer
185
+ config_sources:
186
+ - path: hydra.conf
187
+ schema: pkg
188
+ provider: hydra
189
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
190
+ schema: file
191
+ provider: main
192
+ - path: ''
193
+ schema: structured
194
+ provider: schema
195
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/15-29-24
196
+ choices:
197
+ hydra/env: default
198
+ hydra/callbacks: null
199
+ hydra/job_logging: default
200
+ hydra/hydra_logging: default
201
+ hydra/hydra_help: default
202
+ hydra/help: default
203
+ hydra/sweeper: basic
204
+ hydra/launcher: basic
205
+ hydra/output: default
206
+ verbose: false
outputs/2026-06-09/15-29-24/.hydra/overrides.yaml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules=all-linear
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=True
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
34
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
35
+ - algorithm.kl_ctrl.kl_coef=0.001
36
+ - trainer.critic_warmup=0
37
+ - trainer.logger=['console']
38
+ - trainer.project_name=anomseer
39
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
40
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
41
+ - trainer.n_gpus_per_node=2
42
+ - trainer.nnodes=1
43
+ - trainer.save_freq=500
44
+ - trainer.test_freq=10
45
+ - trainer.val_only=False
46
+ - trainer.val_before_train=True
47
+ - trainer.total_epochs=10
48
+ - ts.use_sem_orth=True
49
+ - ts.adv_mix=0.3
50
+ - ts.similarity_method=ot
51
+ - ts.ot_eps=0.08
52
+ - ts.ot_n_iter=50
outputs/2026-06-09/15-29-24/main_ppo.log ADDED
File without changes
outputs/2026-06-09/16-19-04/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: ./data/rats_uni_processed/test_full.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: all-linear
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: true
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: false
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/16-19-04/.hydra/hydra.yaml ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
117
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules=all-linear
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
148
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
149
+ - algorithm.kl_ctrl.kl_coef=0.001
150
+ - trainer.critic_warmup=0
151
+ - trainer.logger=['console']
152
+ - trainer.project_name=anomseer
153
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
154
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
155
+ - trainer.n_gpus_per_node=2
156
+ - trainer.nnodes=1
157
+ - trainer.save_freq=500
158
+ - trainer.test_freq=10
159
+ - trainer.val_only=False
160
+ - trainer.val_before_train=True
161
+ - trainer.total_epochs=10
162
+ - ts.use_sem_orth=True
163
+ - ts.adv_mix=0.3
164
+ - ts.similarity_method=ot
165
+ - ts.ot_eps=0.08
166
+ - ts.ot_n_iter=50
167
+ job:
168
+ name: main_ppo
169
+ chdir: null
170
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules=all-linear,actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.tensor_model_parallel_size=2,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.train_batch_size=128,data.train_files=./data/rats_uni_processed/train_full.parquet,data.truncation=error,data.val_files=./data/rats_uni_processed/test_full.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu,trainer.experiment_name=anomseer_rats_uni_2gpu,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=500,trainer.test_freq=10,trainer.total_epochs=10,trainer.val_before_train=True,trainer.val_only=False,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
171
+ id: ???
172
+ num: ???
173
+ config_name: ppo_trainer
174
+ env_set: {}
175
+ env_copy: []
176
+ config:
177
+ override_dirname:
178
+ kv_sep: '='
179
+ item_sep: ','
180
+ exclude_keys: []
181
+ runtime:
182
+ version: 1.3.0
183
+ version_base: '1.3'
184
+ cwd: /mnt/share01/sqk/AnomSeer
185
+ config_sources:
186
+ - path: hydra.conf
187
+ schema: pkg
188
+ provider: hydra
189
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
190
+ schema: file
191
+ provider: main
192
+ - path: ''
193
+ schema: structured
194
+ provider: schema
195
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/16-19-04
196
+ choices:
197
+ hydra/env: default
198
+ hydra/callbacks: null
199
+ hydra/job_logging: default
200
+ hydra/hydra_logging: default
201
+ hydra/hydra_help: default
202
+ hydra/help: default
203
+ hydra/sweeper: basic
204
+ hydra/launcher: basic
205
+ hydra/output: default
206
+ verbose: false
outputs/2026-06-09/16-19-04/.hydra/overrides.yaml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules=all-linear
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
34
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
35
+ - algorithm.kl_ctrl.kl_coef=0.001
36
+ - trainer.critic_warmup=0
37
+ - trainer.logger=['console']
38
+ - trainer.project_name=anomseer
39
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
40
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
41
+ - trainer.n_gpus_per_node=2
42
+ - trainer.nnodes=1
43
+ - trainer.save_freq=500
44
+ - trainer.test_freq=10
45
+ - trainer.val_only=False
46
+ - trainer.val_before_train=True
47
+ - trainer.total_epochs=10
48
+ - ts.use_sem_orth=True
49
+ - ts.adv_mix=0.3
50
+ - ts.similarity_method=ot
51
+ - ts.ot_eps=0.08
52
+ - ts.ot_n_iter=50
outputs/2026-06-09/16-19-04/main_ppo.log ADDED
File without changes
outputs/2026-06-09/16-56-49/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: ./data/rats_uni_processed/test_full.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: true
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: false
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/16-56-49/.hydra/hydra.yaml ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
117
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
148
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
149
+ - algorithm.kl_ctrl.kl_coef=0.001
150
+ - trainer.critic_warmup=0
151
+ - trainer.logger=['console']
152
+ - trainer.project_name=anomseer
153
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
154
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
155
+ - trainer.n_gpus_per_node=2
156
+ - trainer.nnodes=1
157
+ - trainer.save_freq=500
158
+ - trainer.test_freq=10
159
+ - trainer.val_only=False
160
+ - trainer.val_before_train=True
161
+ - trainer.total_epochs=10
162
+ - ts.use_sem_orth=True
163
+ - ts.adv_mix=0.3
164
+ - ts.similarity_method=ot
165
+ - ts.ot_eps=0.08
166
+ - ts.ot_n_iter=50
167
+ job:
168
+ name: main_ppo
169
+ chdir: null
170
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.tensor_model_parallel_size=2,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.train_batch_size=128,data.train_files=./data/rats_uni_processed/train_full.parquet,data.truncation=error,data.val_files=./data/rats_uni_processed/test_full.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu,trainer.experiment_name=anomseer_rats_uni_2gpu,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=500,trainer.test_freq=10,trainer.total_epochs=10,trainer.val_before_train=True,trainer.val_only=False,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
171
+ id: ???
172
+ num: ???
173
+ config_name: ppo_trainer
174
+ env_set: {}
175
+ env_copy: []
176
+ config:
177
+ override_dirname:
178
+ kv_sep: '='
179
+ item_sep: ','
180
+ exclude_keys: []
181
+ runtime:
182
+ version: 1.3.0
183
+ version_base: '1.3'
184
+ cwd: /mnt/share01/sqk/AnomSeer
185
+ config_sources:
186
+ - path: hydra.conf
187
+ schema: pkg
188
+ provider: hydra
189
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
190
+ schema: file
191
+ provider: main
192
+ - path: ''
193
+ schema: structured
194
+ provider: schema
195
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/16-56-49
196
+ choices:
197
+ hydra/env: default
198
+ hydra/callbacks: null
199
+ hydra/job_logging: default
200
+ hydra/hydra_logging: default
201
+ hydra/hydra_help: default
202
+ hydra/help: default
203
+ hydra/sweeper: basic
204
+ hydra/launcher: basic
205
+ hydra/output: default
206
+ verbose: false
outputs/2026-06-09/16-56-49/.hydra/overrides.yaml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
34
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
35
+ - algorithm.kl_ctrl.kl_coef=0.001
36
+ - trainer.critic_warmup=0
37
+ - trainer.logger=['console']
38
+ - trainer.project_name=anomseer
39
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
40
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
41
+ - trainer.n_gpus_per_node=2
42
+ - trainer.nnodes=1
43
+ - trainer.save_freq=500
44
+ - trainer.test_freq=10
45
+ - trainer.val_only=False
46
+ - trainer.val_before_train=True
47
+ - trainer.total_epochs=10
48
+ - ts.use_sem_orth=True
49
+ - ts.adv_mix=0.3
50
+ - ts.similarity_method=ot
51
+ - ts.ot_eps=0.08
52
+ - ts.ot_n_iter=50
outputs/2026-06-09/16-56-49/main_ppo.log ADDED
File without changes
outputs/2026-06-09/17-08-35/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: ./data/rats_uni_processed/test_full.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: true
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: false
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/17-08-35/.hydra/hydra.yaml ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
117
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
148
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
149
+ - algorithm.kl_ctrl.kl_coef=0.001
150
+ - trainer.critic_warmup=0
151
+ - trainer.logger=['console']
152
+ - trainer.project_name=anomseer
153
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
154
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
155
+ - trainer.n_gpus_per_node=2
156
+ - trainer.nnodes=1
157
+ - trainer.save_freq=500
158
+ - trainer.test_freq=10
159
+ - trainer.val_only=False
160
+ - trainer.val_before_train=True
161
+ - trainer.total_epochs=10
162
+ - ts.use_sem_orth=True
163
+ - ts.adv_mix=0.3
164
+ - ts.similarity_method=ot
165
+ - ts.ot_eps=0.08
166
+ - ts.ot_n_iter=50
167
+ job:
168
+ name: main_ppo
169
+ chdir: null
170
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.tensor_model_parallel_size=2,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.train_batch_size=128,data.train_files=./data/rats_uni_processed/train_full.parquet,data.truncation=error,data.val_files=./data/rats_uni_processed/test_full.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu,trainer.experiment_name=anomseer_rats_uni_2gpu,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=500,trainer.test_freq=10,trainer.total_epochs=10,trainer.val_before_train=True,trainer.val_only=False,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
171
+ id: ???
172
+ num: ???
173
+ config_name: ppo_trainer
174
+ env_set: {}
175
+ env_copy: []
176
+ config:
177
+ override_dirname:
178
+ kv_sep: '='
179
+ item_sep: ','
180
+ exclude_keys: []
181
+ runtime:
182
+ version: 1.3.0
183
+ version_base: '1.3'
184
+ cwd: /mnt/share01/sqk/AnomSeer
185
+ config_sources:
186
+ - path: hydra.conf
187
+ schema: pkg
188
+ provider: hydra
189
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
190
+ schema: file
191
+ provider: main
192
+ - path: ''
193
+ schema: structured
194
+ provider: schema
195
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/17-08-35
196
+ choices:
197
+ hydra/env: default
198
+ hydra/callbacks: null
199
+ hydra/job_logging: default
200
+ hydra/hydra_logging: default
201
+ hydra/hydra_help: default
202
+ hydra/help: default
203
+ hydra/sweeper: basic
204
+ hydra/launcher: basic
205
+ hydra/output: default
206
+ verbose: false
outputs/2026-06-09/17-08-35/.hydra/overrides.yaml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/qwen2.5-vl-7b-instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
34
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
35
+ - algorithm.kl_ctrl.kl_coef=0.001
36
+ - trainer.critic_warmup=0
37
+ - trainer.logger=['console']
38
+ - trainer.project_name=anomseer
39
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
40
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
41
+ - trainer.n_gpus_per_node=2
42
+ - trainer.nnodes=1
43
+ - trainer.save_freq=500
44
+ - trainer.test_freq=10
45
+ - trainer.val_only=False
46
+ - trainer.val_before_train=True
47
+ - trainer.total_epochs=10
48
+ - ts.use_sem_orth=True
49
+ - ts.adv_mix=0.3
50
+ - ts.similarity_method=ot
51
+ - ts.ot_eps=0.08
52
+ - ts.ot_n_iter=50
outputs/2026-06-09/17-08-35/main_ppo.log ADDED
File without changes
outputs/2026-06-09/17-25-05/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: ./data/rats_uni_processed/test_full.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: true
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: false
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/17-25-05/.hydra/hydra.yaml ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
117
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
148
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
149
+ - algorithm.kl_ctrl.kl_coef=0.001
150
+ - trainer.critic_warmup=0
151
+ - trainer.logger=['console']
152
+ - trainer.project_name=anomseer
153
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
154
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
155
+ - trainer.n_gpus_per_node=2
156
+ - trainer.nnodes=1
157
+ - trainer.save_freq=500
158
+ - trainer.test_freq=10
159
+ - trainer.val_only=False
160
+ - trainer.val_before_train=True
161
+ - trainer.total_epochs=10
162
+ - ts.use_sem_orth=True
163
+ - ts.adv_mix=0.3
164
+ - ts.similarity_method=ot
165
+ - ts.ot_eps=0.08
166
+ - ts.ot_n_iter=50
167
+ job:
168
+ name: main_ppo
169
+ chdir: null
170
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.tensor_model_parallel_size=2,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.train_batch_size=128,data.train_files=./data/rats_uni_processed/train_full.parquet,data.truncation=error,data.val_files=./data/rats_uni_processed/test_full.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu,trainer.experiment_name=anomseer_rats_uni_2gpu,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=500,trainer.test_freq=10,trainer.total_epochs=10,trainer.val_before_train=True,trainer.val_only=False,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
171
+ id: ???
172
+ num: ???
173
+ config_name: ppo_trainer
174
+ env_set: {}
175
+ env_copy: []
176
+ config:
177
+ override_dirname:
178
+ kv_sep: '='
179
+ item_sep: ','
180
+ exclude_keys: []
181
+ runtime:
182
+ version: 1.3.0
183
+ version_base: '1.3'
184
+ cwd: /mnt/share01/sqk/AnomSeer
185
+ config_sources:
186
+ - path: hydra.conf
187
+ schema: pkg
188
+ provider: hydra
189
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
190
+ schema: file
191
+ provider: main
192
+ - path: ''
193
+ schema: structured
194
+ provider: schema
195
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/17-25-05
196
+ choices:
197
+ hydra/env: default
198
+ hydra/callbacks: null
199
+ hydra/job_logging: default
200
+ hydra/hydra_logging: default
201
+ hydra/hydra_help: default
202
+ hydra/help: default
203
+ hydra/sweeper: basic
204
+ hydra/launcher: basic
205
+ hydra/output: default
206
+ verbose: false
outputs/2026-06-09/17-25-05/.hydra/overrides.yaml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=./data/rats_uni_processed/test_full.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
34
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
35
+ - algorithm.kl_ctrl.kl_coef=0.001
36
+ - trainer.critic_warmup=0
37
+ - trainer.logger=['console']
38
+ - trainer.project_name=anomseer
39
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
40
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
41
+ - trainer.n_gpus_per_node=2
42
+ - trainer.nnodes=1
43
+ - trainer.save_freq=500
44
+ - trainer.test_freq=10
45
+ - trainer.val_only=False
46
+ - trainer.val_before_train=True
47
+ - trainer.total_epochs=10
48
+ - ts.use_sem_orth=True
49
+ - ts.adv_mix=0.3
50
+ - ts.similarity_method=ot
51
+ - ts.ot_eps=0.08
52
+ - ts.ot_n_iter=50
outputs/2026-06-09/17-25-05/main_ppo.log ADDED
File without changes
outputs/2026-06-09/17-44-32/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: ./data/rats_uni_processed/test_small.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: false
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: false
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/17-44-32/.hydra/hydra.yaml ADDED
@@ -0,0 +1,207 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
117
+ - data.val_files=./data/rats_uni_processed/test_small.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
148
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
149
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
150
+ - algorithm.kl_ctrl.kl_coef=0.001
151
+ - trainer.critic_warmup=0
152
+ - trainer.logger=['console']
153
+ - trainer.project_name=anomseer
154
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
155
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
156
+ - trainer.n_gpus_per_node=2
157
+ - trainer.nnodes=1
158
+ - trainer.save_freq=500
159
+ - trainer.test_freq=10
160
+ - trainer.val_only=False
161
+ - trainer.val_before_train=True
162
+ - trainer.total_epochs=10
163
+ - ts.use_sem_orth=True
164
+ - ts.adv_mix=0.3
165
+ - ts.similarity_method=ot
166
+ - ts.ot_eps=0.08
167
+ - ts.ot_n_iter=50
168
+ job:
169
+ name: main_ppo
170
+ chdir: null
171
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.tensor_model_parallel_size=2,actor_rollout_ref.rollout.val_kwargs.do_sample=False,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.train_batch_size=128,data.train_files=./data/rats_uni_processed/train_full.parquet,data.truncation=error,data.val_files=./data/rats_uni_processed/test_small.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu,trainer.experiment_name=anomseer_rats_uni_2gpu,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=500,trainer.test_freq=10,trainer.total_epochs=10,trainer.val_before_train=True,trainer.val_only=False,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
172
+ id: ???
173
+ num: ???
174
+ config_name: ppo_trainer
175
+ env_set: {}
176
+ env_copy: []
177
+ config:
178
+ override_dirname:
179
+ kv_sep: '='
180
+ item_sep: ','
181
+ exclude_keys: []
182
+ runtime:
183
+ version: 1.3.0
184
+ version_base: '1.3'
185
+ cwd: /mnt/share01/sqk/AnomSeer
186
+ config_sources:
187
+ - path: hydra.conf
188
+ schema: pkg
189
+ provider: hydra
190
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
191
+ schema: file
192
+ provider: main
193
+ - path: ''
194
+ schema: structured
195
+ provider: schema
196
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/17-44-32
197
+ choices:
198
+ hydra/env: default
199
+ hydra/callbacks: null
200
+ hydra/job_logging: default
201
+ hydra/hydra_logging: default
202
+ hydra/hydra_help: default
203
+ hydra/help: default
204
+ hydra/sweeper: basic
205
+ hydra/launcher: basic
206
+ hydra/output: default
207
+ verbose: false
outputs/2026-06-09/17-44-32/.hydra/overrides.yaml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=./data/rats_uni_processed/test_small.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
34
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
35
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
36
+ - algorithm.kl_ctrl.kl_coef=0.001
37
+ - trainer.critic_warmup=0
38
+ - trainer.logger=['console']
39
+ - trainer.project_name=anomseer
40
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
41
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
42
+ - trainer.n_gpus_per_node=2
43
+ - trainer.nnodes=1
44
+ - trainer.save_freq=500
45
+ - trainer.test_freq=10
46
+ - trainer.val_only=False
47
+ - trainer.val_before_train=True
48
+ - trainer.total_epochs=10
49
+ - ts.use_sem_orth=True
50
+ - ts.adv_mix=0.3
51
+ - ts.similarity_method=ot
52
+ - ts.ot_eps=0.08
53
+ - ts.ot_n_iter=50
outputs/2026-06-09/17-44-32/main_ppo.log ADDED
File without changes
outputs/2026-06-09/18-11-50/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: /tmp/anomseer_rats_one.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 16
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: 16
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 1
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: false
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_lora_smoke
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_lora_smoke
185
+ val_only: true
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/18-11-50/.hydra/hydra.yaml ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
117
+ - data.val_files=/tmp/anomseer_rats_one.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
148
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
149
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
150
+ - algorithm.kl_ctrl.kl_coef=0.001
151
+ - trainer.critic_warmup=0
152
+ - trainer.logger=['console']
153
+ - trainer.project_name=anomseer
154
+ - trainer.experiment_name=anomseer_lora_smoke
155
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_lora_smoke
156
+ - trainer.n_gpus_per_node=2
157
+ - trainer.nnodes=1
158
+ - trainer.save_freq=500
159
+ - trainer.test_freq=10
160
+ - trainer.val_only=True
161
+ - trainer.val_before_train=True
162
+ - trainer.total_epochs=10
163
+ - ts.use_sem_orth=True
164
+ - ts.adv_mix=0.3
165
+ - ts.similarity_method=ot
166
+ - ts.ot_eps=0.08
167
+ - ts.ot_n_iter=50
168
+ - data.max_response_length=16
169
+ - actor_rollout_ref.rollout.response_length=16
170
+ - actor_rollout_ref.rollout.n=1
171
+ job:
172
+ name: main_ppo
173
+ chdir: null
174
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=1,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.response_length=16,actor_rollout_ref.rollout.tensor_model_parallel_size=2,actor_rollout_ref.rollout.val_kwargs.do_sample=False,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.max_response_length=16,data.train_batch_size=128,data.train_files=./data/rats_uni_processed/train_full.parquet,data.truncation=error,data.val_files=/tmp/anomseer_rats_one.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_lora_smoke,trainer.experiment_name=anomseer_lora_smoke,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=500,trainer.test_freq=10,trainer.total_epochs=10,trainer.val_before_train=True,trainer.val_only=True,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
175
+ id: ???
176
+ num: ???
177
+ config_name: ppo_trainer
178
+ env_set: {}
179
+ env_copy: []
180
+ config:
181
+ override_dirname:
182
+ kv_sep: '='
183
+ item_sep: ','
184
+ exclude_keys: []
185
+ runtime:
186
+ version: 1.3.0
187
+ version_base: '1.3'
188
+ cwd: /mnt/share01/sqk/AnomSeer
189
+ config_sources:
190
+ - path: hydra.conf
191
+ schema: pkg
192
+ provider: hydra
193
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
194
+ schema: file
195
+ provider: main
196
+ - path: ''
197
+ schema: structured
198
+ provider: schema
199
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/18-11-50
200
+ choices:
201
+ hydra/env: default
202
+ hydra/callbacks: null
203
+ hydra/job_logging: default
204
+ hydra/hydra_logging: default
205
+ hydra/hydra_help: default
206
+ hydra/help: default
207
+ hydra/sweeper: basic
208
+ hydra/launcher: basic
209
+ hydra/output: default
210
+ verbose: false
outputs/2026-06-09/18-11-50/.hydra/overrides.yaml ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=/tmp/anomseer_rats_one.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
34
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
35
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
36
+ - algorithm.kl_ctrl.kl_coef=0.001
37
+ - trainer.critic_warmup=0
38
+ - trainer.logger=['console']
39
+ - trainer.project_name=anomseer
40
+ - trainer.experiment_name=anomseer_lora_smoke
41
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_lora_smoke
42
+ - trainer.n_gpus_per_node=2
43
+ - trainer.nnodes=1
44
+ - trainer.save_freq=500
45
+ - trainer.test_freq=10
46
+ - trainer.val_only=True
47
+ - trainer.val_before_train=True
48
+ - trainer.total_epochs=10
49
+ - ts.use_sem_orth=True
50
+ - ts.adv_mix=0.3
51
+ - ts.similarity_method=ot
52
+ - ts.ot_eps=0.08
53
+ - ts.ot_n_iter=50
54
+ - data.max_response_length=16
55
+ - actor_rollout_ref.rollout.response_length=16
56
+ - actor_rollout_ref.rollout.n=1
outputs/2026-06-09/18-20-25/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: ./data/rats_uni_processed/train_full.parquet
4
+ val_files: ./data/rats_uni_processed/test_small.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 128
9
+ val_batch_size: null
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 16
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 128
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: false
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 10
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: auto
178
+ resume_from_path: false
179
+ test_freq: 10
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: false
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-09/18-20-25/.hydra/overrides.yaml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=./data/rats_uni_processed/train_full.parquet
3
+ - data.val_files=./data/rats_uni_processed/test_small.parquet
4
+ - data.train_batch_size=128
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
11
+ - actor_rollout_ref.model.lora_rank=16
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
34
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
35
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
36
+ - algorithm.kl_ctrl.kl_coef=0.001
37
+ - trainer.critic_warmup=0
38
+ - trainer.logger=['console']
39
+ - trainer.project_name=anomseer
40
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
41
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
42
+ - trainer.n_gpus_per_node=2
43
+ - trainer.nnodes=1
44
+ - trainer.save_freq=500
45
+ - trainer.test_freq=10
46
+ - trainer.val_only=False
47
+ - trainer.val_before_train=True
48
+ - trainer.total_epochs=10
49
+ - ts.use_sem_orth=True
50
+ - ts.adv_mix=0.3
51
+ - ts.similarity_method=ot
52
+ - ts.ot_eps=0.08
53
+ - ts.ot_n_iter=50
outputs/2026-06-09/18-33-56/.hydra/hydra.yaml ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=/tmp/anomseer_rats_train_one.parquet
117
+ - data.val_files=/tmp/anomseer_rats_val_one.parquet
118
+ - data.train_batch_size=128
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct
125
+ - actor_rollout_ref.model.lora_rank=16
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=128
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=1
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=1
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
148
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=1
149
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
150
+ - algorithm.kl_ctrl.kl_coef=0.001
151
+ - trainer.critic_warmup=0
152
+ - trainer.logger=['console']
153
+ - trainer.project_name=anomseer
154
+ - trainer.experiment_name=anomseer_lora_train_smoke
155
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_lora_train_smoke
156
+ - trainer.n_gpus_per_node=2
157
+ - trainer.nnodes=1
158
+ - trainer.save_freq=500
159
+ - trainer.test_freq=10
160
+ - trainer.val_only=False
161
+ - trainer.val_before_train=True
162
+ - trainer.total_epochs=1
163
+ - ts.use_sem_orth=True
164
+ - ts.adv_mix=0.3
165
+ - ts.similarity_method=ot
166
+ - ts.ot_eps=0.08
167
+ - ts.ot_n_iter=50
168
+ - data.train_batch_size=1
169
+ - data.max_response_length=16
170
+ - actor_rollout_ref.rollout.response_length=16
171
+ - actor_rollout_ref.rollout.n=1
172
+ - actor_rollout_ref.actor.ppo_mini_batch_size=1
173
+ - trainer.val_before_train=False
174
+ - trainer.total_training_steps=1
175
+ - trainer.save_freq=-1
176
+ - trainer.test_freq=-1
177
+ job:
178
+ name: main_ppo
179
+ chdir: null
180
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=1,actor_rollout_ref.actor.ppo_mini_batch_size=1,actor_rollout_ref.actor.ppo_mini_batch_size=128,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=16,actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',actor_rollout_ref.model.path=/mnt/share01/sqk/models/Qwen2.5-VL-3B-Instruct,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=1,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=1,actor_rollout_ref.rollout.n=1,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.response_length=16,actor_rollout_ref.rollout.tensor_model_parallel_size=2,actor_rollout_ref.rollout.val_kwargs.do_sample=False,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.max_response_length=16,data.train_batch_size=1,data.train_batch_size=128,data.train_files=/tmp/anomseer_rats_train_one.parquet,data.truncation=error,data.val_files=/tmp/anomseer_rats_val_one.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_lora_train_smoke,trainer.experiment_name=anomseer_lora_train_smoke,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.save_freq=-1,trainer.save_freq=500,trainer.test_freq=-1,trainer.test_freq=10,trainer.total_epochs=1,trainer.total_training_steps=1,trainer.val_before_train=False,trainer.val_before_train=True,trainer.val_only=False,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
181
+ id: ???
182
+ num: ???
183
+ config_name: ppo_trainer
184
+ env_set: {}
185
+ env_copy: []
186
+ config:
187
+ override_dirname:
188
+ kv_sep: '='
189
+ item_sep: ','
190
+ exclude_keys: []
191
+ runtime:
192
+ version: 1.3.0
193
+ version_base: '1.3'
194
+ cwd: /mnt/share01/sqk/AnomSeer
195
+ config_sources:
196
+ - path: hydra.conf
197
+ schema: pkg
198
+ provider: hydra
199
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
200
+ schema: file
201
+ provider: main
202
+ - path: ''
203
+ schema: structured
204
+ provider: schema
205
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-09/18-33-56
206
+ choices:
207
+ hydra/env: default
208
+ hydra/callbacks: null
209
+ hydra/job_logging: default
210
+ hydra/hydra_logging: default
211
+ hydra/hydra_help: default
212
+ hydra/help: default
213
+ hydra/sweeper: basic
214
+ hydra/launcher: basic
215
+ hydra/output: default
216
+ verbose: false
outputs/2026-06-15/11-17-58/.hydra/hydra.yaml ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ hydra:
2
+ run:
3
+ dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
4
+ sweep:
5
+ dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
6
+ subdir: ${hydra.job.num}
7
+ launcher:
8
+ _target_: hydra._internal.core_plugins.basic_launcher.BasicLauncher
9
+ sweeper:
10
+ _target_: hydra._internal.core_plugins.basic_sweeper.BasicSweeper
11
+ max_batch_size: null
12
+ params: null
13
+ help:
14
+ app_name: ${hydra.job.name}
15
+ header: '${hydra.help.app_name} is powered by Hydra.
16
+
17
+ '
18
+ footer: 'Powered by Hydra (https://hydra.cc)
19
+
20
+ Use --hydra-help to view Hydra specific help
21
+
22
+ '
23
+ template: '${hydra.help.header}
24
+
25
+ == Configuration groups ==
26
+
27
+ Compose your configuration from those groups (group=option)
28
+
29
+
30
+ $APP_CONFIG_GROUPS
31
+
32
+
33
+ == Config ==
34
+
35
+ Override anything in the config (foo.bar=value)
36
+
37
+
38
+ $CONFIG
39
+
40
+
41
+ ${hydra.help.footer}
42
+
43
+ '
44
+ hydra_help:
45
+ template: 'Hydra (${hydra.runtime.version})
46
+
47
+ See https://hydra.cc for more info.
48
+
49
+
50
+ == Flags ==
51
+
52
+ $FLAGS_HELP
53
+
54
+
55
+ == Configuration groups ==
56
+
57
+ Compose your configuration from those groups (For example, append hydra/job_logging=disabled
58
+ to command line)
59
+
60
+
61
+ $HYDRA_CONFIG_GROUPS
62
+
63
+
64
+ Use ''--cfg hydra'' to Show the Hydra config.
65
+
66
+ '
67
+ hydra_help: ???
68
+ hydra_logging:
69
+ version: 1
70
+ formatters:
71
+ simple:
72
+ format: '[%(asctime)s][HYDRA] %(message)s'
73
+ handlers:
74
+ console:
75
+ class: logging.StreamHandler
76
+ formatter: simple
77
+ stream: ext://sys.stdout
78
+ root:
79
+ level: INFO
80
+ handlers:
81
+ - console
82
+ loggers:
83
+ logging_example:
84
+ level: DEBUG
85
+ disable_existing_loggers: false
86
+ job_logging:
87
+ version: 1
88
+ formatters:
89
+ simple:
90
+ format: '[%(asctime)s][%(name)s][%(levelname)s] - %(message)s'
91
+ handlers:
92
+ console:
93
+ class: logging.StreamHandler
94
+ formatter: simple
95
+ stream: ext://sys.stdout
96
+ file:
97
+ class: logging.FileHandler
98
+ formatter: simple
99
+ filename: ${hydra.runtime.output_dir}/${hydra.job.name}.log
100
+ root:
101
+ level: INFO
102
+ handlers:
103
+ - console
104
+ - file
105
+ disable_existing_loggers: false
106
+ env: {}
107
+ mode: RUN
108
+ searchpath: []
109
+ callbacks: {}
110
+ output_subdir: .hydra
111
+ overrides:
112
+ hydra:
113
+ - hydra.mode=RUN
114
+ task:
115
+ - algorithm.adv_estimator=grpo
116
+ - data.train_files=/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_quarter.parquet
117
+ - data.val_files=/tmp/anomseer_eval_smoke.parquet
118
+ - data.train_batch_size=16
119
+ - data.max_prompt_length=1024
120
+ - data.max_response_length=1024
121
+ - data.filter_overlong_prompts=True
122
+ - data.truncation=error
123
+ - data.image_key=images
124
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface
125
+ - actor_rollout_ref.model.lora_rank=0
126
+ - actor_rollout_ref.model.lora_alpha=16
127
+ - actor_rollout_ref.model.lora_dropout=0.0
128
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
129
+ - actor_rollout_ref.actor.optim.lr=1e-4
130
+ - actor_rollout_ref.model.use_remove_padding=False
131
+ - actor_rollout_ref.actor.ppo_mini_batch_size=16
132
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
133
+ - actor_rollout_ref.actor.use_kl_loss=True
134
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
135
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
136
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
137
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
138
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
139
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
140
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
141
+ - actor_rollout_ref.rollout.name=vllm
142
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
143
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
144
+ - actor_rollout_ref.rollout.enforce_eager=False
145
+ - actor_rollout_ref.rollout.free_cache_engine=False
146
+ - actor_rollout_ref.rollout.n=5
147
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
148
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
149
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
150
+ - algorithm.kl_ctrl.kl_coef=0.001
151
+ - trainer.critic_warmup=0
152
+ - trainer.logger=['console']
153
+ - trainer.project_name=anomseer
154
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
155
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
156
+ - trainer.n_gpus_per_node=2
157
+ - trainer.nnodes=1
158
+ - trainer.save_freq=500
159
+ - trainer.test_freq=10
160
+ - trainer.val_only=True
161
+ - trainer.val_before_train=True
162
+ - trainer.resume_mode=disable
163
+ - trainer.total_epochs=1
164
+ - ts.use_sem_orth=True
165
+ - ts.adv_mix=0.3
166
+ - ts.similarity_method=ot
167
+ - ts.ot_eps=0.08
168
+ - ts.ot_n_iter=50
169
+ - data.val_batch_size=1
170
+ - trainer.test_freq=-1
171
+ job:
172
+ name: main_ppo
173
+ chdir: null
174
+ override_dirname: actor_rollout_ref.actor.fsdp_config.optimizer_offload=False,actor_rollout_ref.actor.fsdp_config.param_offload=False,actor_rollout_ref.actor.kl_loss_coef=0.001,actor_rollout_ref.actor.kl_loss_type=low_var_kl,actor_rollout_ref.actor.optim.lr=1e-4,actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2,actor_rollout_ref.actor.ppo_mini_batch_size=16,actor_rollout_ref.actor.use_kl_loss=True,actor_rollout_ref.model.enable_gradient_checkpointing=True,actor_rollout_ref.model.lora_alpha=16,actor_rollout_ref.model.lora_dropout=0.0,actor_rollout_ref.model.lora_rank=0,actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj',actor_rollout_ref.model.path=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface,actor_rollout_ref.model.use_remove_padding=False,actor_rollout_ref.ref.fsdp_config.param_offload=True,actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.enable_chunked_prefill=False,actor_rollout_ref.rollout.enforce_eager=False,actor_rollout_ref.rollout.free_cache_engine=False,actor_rollout_ref.rollout.gpu_memory_utilization=0.4,actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8,actor_rollout_ref.rollout.n=5,actor_rollout_ref.rollout.name=vllm,actor_rollout_ref.rollout.tensor_model_parallel_size=2,actor_rollout_ref.rollout.val_kwargs.do_sample=False,algorithm.adv_estimator=grpo,algorithm.kl_ctrl.kl_coef=0.001,data.filter_overlong_prompts=True,data.image_key=images,data.max_prompt_length=1024,data.max_response_length=1024,data.train_batch_size=16,data.train_files=/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_quarter.parquet,data.truncation=error,data.val_batch_size=1,data.val_files=/tmp/anomseer_eval_smoke.parquet,trainer.critic_warmup=0,trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu,trainer.experiment_name=anomseer_rats_uni_2gpu,trainer.logger=['console'],trainer.n_gpus_per_node=2,trainer.nnodes=1,trainer.project_name=anomseer,trainer.resume_mode=disable,trainer.save_freq=500,trainer.test_freq=-1,trainer.test_freq=10,trainer.total_epochs=1,trainer.val_before_train=True,trainer.val_only=True,ts.adv_mix=0.3,ts.ot_eps=0.08,ts.ot_n_iter=50,ts.similarity_method=ot,ts.use_sem_orth=True
175
+ id: ???
176
+ num: ???
177
+ config_name: ppo_trainer
178
+ env_set: {}
179
+ env_copy: []
180
+ config:
181
+ override_dirname:
182
+ kv_sep: '='
183
+ item_sep: ','
184
+ exclude_keys: []
185
+ runtime:
186
+ version: 1.3.0
187
+ version_base: '1.3'
188
+ cwd: /mnt/share01/sqk/AnomSeer
189
+ config_sources:
190
+ - path: hydra.conf
191
+ schema: pkg
192
+ provider: hydra
193
+ - path: /mnt/share01/sqk/AnomSeer/verl/trainer/config
194
+ schema: file
195
+ provider: main
196
+ - path: ''
197
+ schema: structured
198
+ provider: schema
199
+ output_dir: /mnt/share01/sqk/AnomSeer/outputs/2026-06-15/11-17-58
200
+ choices:
201
+ hydra/env: default
202
+ hydra/callbacks: null
203
+ hydra/job_logging: default
204
+ hydra/hydra_logging: default
205
+ hydra/hydra_help: default
206
+ hydra/help: default
207
+ hydra/sweeper: basic
208
+ hydra/launcher: basic
209
+ hydra/output: default
210
+ verbose: false
outputs/2026-06-15/11-17-58/main_ppo.log ADDED
File without changes
outputs/2026-06-15/11-25-36/.hydra/config.yaml ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ data:
2
+ tokenizer: null
3
+ train_files: /mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_quarter.parquet
4
+ val_files: /tmp/anomseer_eval_smoke.parquet
5
+ prompt_key: prompt
6
+ max_prompt_length: 1024
7
+ max_response_length: 1024
8
+ train_batch_size: 16
9
+ val_batch_size: 1
10
+ return_raw_input_ids: false
11
+ return_raw_chat: false
12
+ shuffle: true
13
+ filter_overlong_prompts: true
14
+ truncation: error
15
+ image_key: images
16
+ actor_rollout_ref:
17
+ hybrid_engine: true
18
+ model:
19
+ path: /mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface
20
+ external_lib: null
21
+ override_config: {}
22
+ enable_gradient_checkpointing: true
23
+ use_remove_padding: false
24
+ lora_rank: 0
25
+ lora_alpha: 16
26
+ lora_dropout: 0.0
27
+ lora_target_modules: q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj
28
+ actor:
29
+ strategy: fsdp
30
+ ppo_mini_batch_size: 16
31
+ ppo_micro_batch_size: null
32
+ ppo_micro_batch_size_per_gpu: 2
33
+ use_dynamic_bsz: false
34
+ ppo_max_token_len_per_gpu: 16384
35
+ grad_clip: 1.0
36
+ clip_ratio: 0.2
37
+ entropy_coeff: 0.001
38
+ use_kl_loss: true
39
+ use_torch_compile: true
40
+ kl_loss_coef: 0.001
41
+ kl_loss_type: low_var_kl
42
+ ppo_epochs: 1
43
+ shuffle: false
44
+ ulysses_sequence_parallel_size: 1
45
+ optim:
46
+ lr: 0.0001
47
+ lr_warmup_steps: -1
48
+ lr_warmup_steps_ratio: 0.0
49
+ min_lr_ratio: null
50
+ warmup_style: constant
51
+ total_training_steps: -1
52
+ fsdp_config:
53
+ wrap_policy:
54
+ min_num_params: 0
55
+ param_offload: false
56
+ optimizer_offload: false
57
+ fsdp_size: -1
58
+ ref:
59
+ fsdp_config:
60
+ param_offload: true
61
+ wrap_policy:
62
+ min_num_params: 0
63
+ log_prob_micro_batch_size: null
64
+ log_prob_micro_batch_size_per_gpu: 8
65
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
66
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
67
+ ulysses_sequence_parallel_size: ${actor_rollout_ref.actor.ulysses_sequence_parallel_size}
68
+ rollout:
69
+ name: vllm
70
+ temperature: 1.0
71
+ top_k: -1
72
+ top_p: 1
73
+ use_fire_sampling: false
74
+ prompt_length: ${data.max_prompt_length}
75
+ response_length: ${data.max_response_length}
76
+ dtype: bfloat16
77
+ gpu_memory_utilization: 0.4
78
+ ignore_eos: false
79
+ enforce_eager: false
80
+ free_cache_engine: false
81
+ load_format: dummy_dtensor
82
+ tensor_model_parallel_size: 2
83
+ max_num_batched_tokens: 8192
84
+ max_model_len: null
85
+ max_num_seqs: 1024
86
+ log_prob_micro_batch_size: null
87
+ log_prob_micro_batch_size_per_gpu: 8
88
+ log_prob_use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
89
+ log_prob_max_token_len_per_gpu: ${actor_rollout_ref.actor.ppo_max_token_len_per_gpu}
90
+ disable_log_stats: true
91
+ enable_chunked_prefill: false
92
+ do_sample: true
93
+ 'n': 5
94
+ val_kwargs:
95
+ top_k: -1
96
+ top_p: 1.0
97
+ temperature: 0.4
98
+ 'n': 1
99
+ do_sample: false
100
+ critic:
101
+ strategy: fsdp
102
+ optim:
103
+ lr: 1.0e-05
104
+ lr_warmup_steps_ratio: 0.0
105
+ min_lr_ratio: null
106
+ warmup_style: constant
107
+ total_training_steps: -1
108
+ model:
109
+ path: ~/models/deepseek-llm-7b-chat
110
+ tokenizer_path: ${actor_rollout_ref.model.path}
111
+ override_config: {}
112
+ external_lib: ${actor_rollout_ref.model.external_lib}
113
+ enable_gradient_checkpointing: true
114
+ use_remove_padding: false
115
+ fsdp_config:
116
+ param_offload: false
117
+ optimizer_offload: false
118
+ wrap_policy:
119
+ min_num_params: 0
120
+ fsdp_size: -1
121
+ ppo_mini_batch_size: ${actor_rollout_ref.actor.ppo_mini_batch_size}
122
+ ppo_micro_batch_size: null
123
+ ppo_micro_batch_size_per_gpu: null
124
+ forward_micro_batch_size: ${critic.ppo_micro_batch_size}
125
+ forward_micro_batch_size_per_gpu: ${critic.ppo_micro_batch_size_per_gpu}
126
+ use_dynamic_bsz: ${actor_rollout_ref.actor.use_dynamic_bsz}
127
+ ppo_max_token_len_per_gpu: 32768
128
+ forward_max_token_len_per_gpu: ${critic.ppo_max_token_len_per_gpu}
129
+ ulysses_sequence_parallel_size: 1
130
+ ppo_epochs: ${actor_rollout_ref.actor.ppo_epochs}
131
+ shuffle: ${actor_rollout_ref.actor.shuffle}
132
+ grad_clip: 1.0
133
+ cliprange_value: 0.5
134
+ reward_model:
135
+ enable: false
136
+ strategy: fsdp
137
+ model:
138
+ input_tokenizer: ${actor_rollout_ref.model.path}
139
+ path: ~/models/FsfairX-LLaMA3-RM-v0.1
140
+ external_lib: ${actor_rollout_ref.model.external_lib}
141
+ use_remove_padding: false
142
+ fsdp_config:
143
+ wrap_policy:
144
+ min_num_params: 0
145
+ param_offload: false
146
+ fsdp_size: -1
147
+ micro_batch_size: null
148
+ micro_batch_size_per_gpu: null
149
+ max_length: null
150
+ ulysses_sequence_parallel_size: 1
151
+ use_dynamic_bsz: ${critic.use_dynamic_bsz}
152
+ forward_max_token_len_per_gpu: ${critic.forward_max_token_len_per_gpu}
153
+ reward_manager: naive
154
+ custom_reward_function:
155
+ path: null
156
+ name: compute_score
157
+ algorithm:
158
+ gamma: 1.0
159
+ lam: 1.0
160
+ adv_estimator: grpo
161
+ kl_penalty: kl
162
+ kl_ctrl:
163
+ type: fixed
164
+ kl_coef: 0.001
165
+ trainer:
166
+ balance_batch: true
167
+ total_epochs: 1
168
+ total_training_steps: null
169
+ project_name: anomseer
170
+ experiment_name: anomseer_rats_uni_2gpu
171
+ logger:
172
+ - console
173
+ val_generations_to_log_to_wandb: 0
174
+ nnodes: 1
175
+ n_gpus_per_node: 2
176
+ save_freq: 500
177
+ resume_mode: disable
178
+ resume_from_path: false
179
+ test_freq: -1
180
+ critic_warmup: 0
181
+ default_hdfs_dir: null
182
+ remove_previous_ckpt_in_save: false
183
+ del_local_ckpt_after_load: false
184
+ default_local_dir: checkpoints/anomseer/anomseer_rats_uni_2gpu
185
+ val_only: true
186
+ val_before_train: true
187
+ ts:
188
+ adv_mix: 0.3
189
+ use_sem_orth: true
190
+ similarity_method: ot
191
+ clip_temperature: 1.0
192
+ clip_pooling: mean
193
+ ot_eps: 0.08
194
+ ot_n_iter: 50
outputs/2026-06-15/11-25-36/.hydra/overrides.yaml ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - algorithm.adv_estimator=grpo
2
+ - data.train_files=/mnt/share01/sqk/AnomSeer/data/rats_uni_processed/train_quarter.parquet
3
+ - data.val_files=/tmp/anomseer_eval_smoke.parquet
4
+ - data.train_batch_size=16
5
+ - data.max_prompt_length=1024
6
+ - data.max_response_length=1024
7
+ - data.filter_overlong_prompts=True
8
+ - data.truncation=error
9
+ - data.image_key=images
10
+ - actor_rollout_ref.model.path=/mnt/share01/sqk/AnomSeer/checkpoints/anomseer/anomseer_rats_uni_full_20260612_184427_exp3/global_step_1891/actor/huggingface
11
+ - actor_rollout_ref.model.lora_rank=0
12
+ - actor_rollout_ref.model.lora_alpha=16
13
+ - actor_rollout_ref.model.lora_dropout=0.0
14
+ - actor_rollout_ref.model.lora_target_modules='q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj'
15
+ - actor_rollout_ref.actor.optim.lr=1e-4
16
+ - actor_rollout_ref.model.use_remove_padding=False
17
+ - actor_rollout_ref.actor.ppo_mini_batch_size=16
18
+ - actor_rollout_ref.actor.ppo_micro_batch_size_per_gpu=2
19
+ - actor_rollout_ref.actor.use_kl_loss=True
20
+ - actor_rollout_ref.actor.kl_loss_coef=0.001
21
+ - actor_rollout_ref.actor.kl_loss_type=low_var_kl
22
+ - actor_rollout_ref.model.enable_gradient_checkpointing=True
23
+ - actor_rollout_ref.actor.fsdp_config.param_offload=False
24
+ - actor_rollout_ref.actor.fsdp_config.optimizer_offload=False
25
+ - actor_rollout_ref.rollout.log_prob_micro_batch_size_per_gpu=8
26
+ - actor_rollout_ref.rollout.tensor_model_parallel_size=2
27
+ - actor_rollout_ref.rollout.name=vllm
28
+ - actor_rollout_ref.rollout.gpu_memory_utilization=0.4
29
+ - actor_rollout_ref.rollout.enable_chunked_prefill=False
30
+ - actor_rollout_ref.rollout.enforce_eager=False
31
+ - actor_rollout_ref.rollout.free_cache_engine=False
32
+ - actor_rollout_ref.rollout.n=5
33
+ - actor_rollout_ref.rollout.val_kwargs.do_sample=False
34
+ - actor_rollout_ref.ref.log_prob_micro_batch_size_per_gpu=8
35
+ - actor_rollout_ref.ref.fsdp_config.param_offload=True
36
+ - algorithm.kl_ctrl.kl_coef=0.001
37
+ - trainer.critic_warmup=0
38
+ - trainer.logger=['console']
39
+ - trainer.project_name=anomseer
40
+ - trainer.experiment_name=anomseer_rats_uni_2gpu
41
+ - trainer.default_local_dir=checkpoints/anomseer/anomseer_rats_uni_2gpu
42
+ - trainer.n_gpus_per_node=2
43
+ - trainer.nnodes=1
44
+ - trainer.save_freq=500
45
+ - trainer.test_freq=10
46
+ - trainer.val_only=True
47
+ - trainer.val_before_train=True
48
+ - trainer.resume_mode=disable
49
+ - trainer.total_epochs=1
50
+ - ts.use_sem_orth=True
51
+ - ts.adv_mix=0.3
52
+ - ts.similarity_method=ot
53
+ - ts.ot_eps=0.08
54
+ - ts.ot_n_iter=50
55
+ - data.val_batch_size=1
56
+ - trainer.test_freq=-1
outputs/2026-06-15/11-25-36/main_ppo.log ADDED
File without changes