HRM, TRM experiments

문상준·2025년 11월 19일

논문

목록 보기
1/2

실험시 주의사항들

  1. H module과 L module이 같나?

    • 같으면 TRM

      • 세팅: .sh 에서, arch=trm
        // .sh 에서, arch=trm으로 하더라도, arch.H_layers=T로 하면, HRM과 같이 됨.
      • 결과: all_config.yaml 에서, H_layers: 0
    • 다르면 HRM

      • 세팅: .sh 에서, arch=hrm
      • 결과: all_config.yaml 에서, H_layers: 4
  2. 1-step gradient 유무?

    • 없으면, TRM

      • 세팅:
    • 있으면, HRM

      • 세팅:
  3. ACT에서 continue_loss가 있나?

    • 없으면, TRM
      • 세팅: .sh 에서, arch=trm
      • 결과: all_config.yaml 에서, no_ACT_continue: True
    • 있으면, HRM
      • 세팅: .sh 에서, arch=hrm
      • 결과: all_config.yaml 에서, no_ACT_continue 항목 X
  4. Recurrent 횟수

    • T = 3, n = 6 TRM
      • 세팅: .sh 에서, arch.H_cycles=3 arch.L_cycles=6
      • 결과: all_config.yaml 에서, H_layers: 3, H_layers: 6
    • T = 2, n = 2 HRM
      • 세팅: .sh 에서, arch.H_cycles=2 arch.L_cycles=2
        // TRM 논문에서는 T=3, n=3이 optimal이라고 함.
      • 결과: all_config.yaml 에서, H_layers: 2, H_layers: 2
  5. Supervision 횟수

    • Nsup=16N_{sup} = 16 인가?
      • 세팅: .sh 에서, 별다른 세팅 X
      • 결과: all_config.yaml 에서, halt_max_steps: 16
  6. Transformer block 수

    • 2, TRM
      • 세팅: .sh 에서, arch.L_layers=2
      • 결과: all_config.yaml 에서, H_layers: 0, L_layers: 2
    • 4, HRM
      • 세팅: .sh 에서, arch.H_layers=4, arch.L_layers=4
      • 결과: all_config.yaml 에서, H_layers: 4, L_layers: 4
  7. Attention-free?

    • O
      • 세팅: .sh 에서, 별다른 세팅 X
      • 결과: all_config.yaml 에서, mlp_t: True
    • X
      • 세팅: .sh 에서, 별다른 세팅 X
      • 결과: all_config.yaml 에서, mlp_t: False
  8. EMA?

  • O

    • 세팅: .sh 에서, ema=True
    • 결과: all_config.yaml 에서, ema: true
  • X

    • 세팅: .sh 에서, 별다른 세팅 X
    • 결과: all_config.yaml 에서, ema: false
  1. halt_exploration_prob?

    ⇒ ACT에서 최소 세그먼트 수(MminM_{min})(min_halt_steps)는 확률적으로 결정하는데, 그 확률이 halt_exploration_prob임

    // sudoku4x4에서, halt_exploration_prob이 0인데,
    // 그 뜻은 min_halt_steps가 0이라는 뜻이고,
    // halt는 is_last_step 이거나, q_halt_logits > 0 일 때만 한다는 뜻.

Model size

Model size에 관여하는 부분은 3가지가 있다.
1. H_layers
2. L_layers
3. Transformer Block(layer)의 크기

Transformer Block 하나의 크기는
로 총 3,407,872개

  • HRM은 H_layers=4,L_layers=4H\_layers = 4, L\_layers = 4
    ⇒ 대략, 3,407,8728=27,262,97627M3,407,872 ⨉ 8 = 27,262,976 ≈ 27M

  • TRM은 H_layers=0,L_layers=2H\_layers = 0, L\_layers = 2
    ⇒ 대략, 3,407,8722=6,815,7447M3,407,872 ⨉ 2 = 6,815,744 ≈ 7M

Emulated Depth

Default로

  • HRM은 T=2,N=2,layer=4T=2, N=2, layer=4
    EmulatedDepth=24Emulated Depth=24

  • TRM 논문에서 HRM T=3,N=3,layer=4T=3, N=3, layer=4이 optimal이라고함
    EmulatedDepth=48Emulated Depth=48

  • TRM은 T=3,N=6,layer=2T=3, N=6, layer=2
    EmulatedDepth=42Emulated Depth=42

실험

1. H module, L module의 size를 다르게 한다면, 어떤 것의 size가 큰 것이 좋을까?

⇒ H module, L module의 size를 다르게 한다는 뜻은, model 구조가 HRM을 따라간다는 뜻

즉, H_layers0H\_layers ≠ 0.

HRM_module_with_TRM_training 실험

T=3,N=3,layer=4T=3, N=3, layer=4EmulatedDepth=48Emulated Depth = 48 실험임.

HRM_module_with_TRM_training.sh

arch로 사용하는 hrm_module_with_trm_training은 다음과 같이 작성함 (config/arch/hrm_module_with_trm_training.yaml)

위 name 에서 사용하는 HrmModuleWithTrmTrainingModel_ACTV1은 다음과 같이 작성함(models/recursive_reasoning/hrm_module_with_trm_training.py)

그 결과 다음과 같은 all_config.yaml이 생성 됨

결과 모델:

HRM_heavyH_module_with_TRM_training 실험

HRM_heavyL_module_with_TRM_training 실험

2. H module, L module 중 어느 module이 quantization에 더 강건할까?

L module quantization

L_module이 forward pass에서 대다수를 차지한다.

T=3,N=3,layer=4T=3, N=3, layer=4EmulatedDepth=48Emulated Depth = 48 로 예시를 들면,

에서 H module 횟수 : L module 횟수 = 1 : 3 임

⇒ L module을 quantization 할 때, H module을 quantization 할 때보다 3배 더 빠를 것임

3. EE

EE에 대해 참고할 것

고려사항

우선 제일 먼저, H_module 끝 마다 출력되는 hidden state를 뽑아서,
정답과 얼마나 유사한지 가시화 + 유사도 검사

즉, overthinking 여부 검사

⇒ 정답과 거의 유사하거나, 유사도가 높으면, EE 가능성 ↑

+

ACT에서 조기 훈련 종료 통계 조사

  1. 전체 Nsup=16N_{sup}=16 동안의 inference 시간 대비 중간 분류기(?)로 인한 overhead 비율 조사
  2. 임계값 설정
  3. 훈련법 설정
  4. 신뢰도 정의
  5. 일반화 가능성
    일반적으로 임계값은 dataset-dependent함
    하지만 내 실험에서는 크게 신경 안써도 ㄱㅊ을 것 같은 이유가 애초에 sudoku가 너무 domain-specific 함
    만약 다른 일반적인 task에 대해서 모델을 확장한다면,
    1. 임계값 기반 적응: 미지의 도메인에 따라 임계값을 조정함
    2. 특징 기반 적응: 모든 계층에서 애초에 도메인 불변 특징을 학습하는 것

0개의 댓글