neural-mesh-v2 / Update /Phase3_IPO_Extraction.md
hjkim00's picture
Restore all essential files - code, configs, and MBPP/HumanEval data
24c2665 verified
|
raw
history blame
4.32 kB

Phase 3: IPO Triple μΆ”μΆœ μ‹œμŠ€ν…œ μ™„λ£Œ

βœ… κ΅¬ν˜„λœ μ»΄ν¬λ„ŒνŠΈ

1. IPOTripleExtractor

  • 파일: absolute_zero_reasoner/testtime/ipo_extractor.py
  • κΈ°λŠ₯:
    • AZR Python Executor 기반 μ•ˆμ „ν•œ μ½”λ“œ μ‹€ν–‰
    • ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ—μ„œ μž…λ ₯-좜λ ₯ 쌍 μΆ”μΆœ
    • μ†”λ£¨μ…˜ μ‹€ν–‰μœΌλ‘œ IPO νŠΈλ¦¬ν”Œ 생성
    • ν•©μ„± μž…λ ₯으둜 μΆ”κ°€ νŠΈλ¦¬ν”Œ 생성
    • νŠΈλ¦¬ν”Œ 검증 및 일관성 확인
  • 기반: python_executor.py, azr_ray_trainer.py 둜직

2. TestTimeTaskGenerator

  • 파일: absolute_zero_reasoner/testtime/task_generator.py
  • κΈ°λŠ₯:
    • Induction: μž…λ ₯-좜λ ₯μ—μ„œ ν•¨μˆ˜ μΆ”λ‘ 
    • Deduction: ν•¨μˆ˜+μž…λ ₯μ—μ„œ 좜λ ₯ μΆ”λ‘ 
    • Abduction: ν•¨μˆ˜+좜λ ₯μ—μ„œ μž…λ ₯ μΆ”λ‘ 
    • AZR 기반 ν…œν”Œλ¦Ώ μ‹œμŠ€ν…œ
    • ν•™μŠ΅μš© 데이터셋 생성
  • 기반: prompts.py, constructor.py ν…œν”Œλ¦Ώ

πŸ§ͺ ν…ŒμŠ€νŠΈ κ²°κ³Ό

IPO μΆ”μΆœ μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈ (βœ… 3/3 톡과)

IPO Extractor: βœ… PASS  
Task Generator: βœ… PASS
Integrated Pipeline: βœ… PASS

κ²€μ¦λœ κΈ°λŠ₯

  • βœ… IPO μΆ”μΆœ: 5/6 μœ νš¨ν•œ νŠΈλ¦¬ν”Œ 생성
  • βœ… νƒœμŠ€ν¬ 생성: 4개 νƒœμŠ€ν¬ (I:1, D:1, A:2)
  • βœ… 톡합 νŒŒμ΄ν”„λΌμΈ: Mbpp/2 문제 전체 처리
  • βœ… AZR Python Executor: μ•ˆμ „ν•œ μ½”λ“œ μ‹€ν–‰ 확인

πŸ“Š μ„±λŠ₯ μ§€ν‘œ

IPO μΆ”μΆœ μ„±λŠ₯

  • ν…ŒμŠ€νŠΈ 문제: add_two(x) κ°„λ‹¨ν•œ ν•¨μˆ˜
  • μΆ”μΆœλœ νŠΈλ¦¬ν”Œ: 5개 (μœ νš¨μ„± 83%)
  • μ‹€ν–‰ μ‹œκ°„: ~0.5초

νƒœμŠ€ν¬ 생성 μ„±λŠ₯

  • MBPP 문제: similar_elements ν•¨μˆ˜
  • μƒμ„±λœ νƒœμŠ€ν¬: 4개 (κ· λ“± λΆ„λ°°)
  • νƒœμŠ€ν¬ 뢄포: Induction(25%), Deduction(25%), Abduction(50%)

톡합 νŒŒμ΄ν”„λΌμΈ

1. 문제 λ‘œλ”© βœ… β†’ 2. IPO μΆ”μΆœ βœ… β†’ 3. νƒœμŠ€ν¬ 생성 βœ… 

πŸ” 핡심 기술 검증

1. AZR Python Executor 연동

  • ProcessPool 기반: μ•ˆμ „ν•œ μƒŒλ“œλ°•μŠ€ μ‹€ν–‰
  • νƒ€μž„μ•„μ›ƒ 관리: 5초 μ œν•œμœΌλ‘œ TestTime μ΅œμ ν™”
  • μ—λŸ¬ 처리: ꡬ문/μ‹€ν–‰ 였λ₯˜ 뢄리 처리

2. IPO νŠΈλ¦¬ν”Œ ꡬ쑰

{
  "id": "Mbpp/2_triple_0",
  "input": "(3, 4, 5, 6), (5, 7, 4, 10)",
  "program": "def similar_elements(test_tup1, test_tup2):\n  return tuple(set(test_tup1) & set(test_tup2))",
  "expected_output": "(4, 5)",
  "actual_output": "(4, 5)",
  "function_name": "similar_elements",
  "is_correct": true,
  "extraction_method": "test_case"
}

3. 3μ’… νƒœμŠ€ν¬ ν…œν”Œλ¦Ώ

  • Induction: "μž…λ ₯-좜λ ₯μ—μ„œ ν•¨μˆ˜λ₯Ό μΆ”λ‘ ν•˜μ„Έμš”"
  • Deduction: "ν•¨μˆ˜μ™€ μž…λ ₯으둜 좜λ ₯을 μ˜ˆμΈ‘ν•˜μ„Έμš”"
  • Abduction: "ν•¨μˆ˜μ™€ 좜λ ₯으둜 μž…λ ₯을 μ°ΎμœΌμ„Έμš”"

πŸ“ μ—…λ°μ΄νŠΈλœ ꡬ쑰

TestTime-RLVR-v2/absolute_zero_reasoner/testtime/
β”œβ”€β”€ __init__.py                # βœ… IPO, Task μΆ”κ°€
β”œβ”€β”€ config.py                  # βœ… μ™„λ£Œ
β”œβ”€β”€ benchmark_loader.py        # βœ… μ™„λ£Œ
β”œβ”€β”€ solution_generator.py      # βœ… μ™„λ£Œ
β”œβ”€β”€ ipo_extractor.py          # πŸ†• IPO μΆ”μΆœ μ‹œμŠ€ν…œ
β”œβ”€β”€ task_generator.py         # πŸ†• 3μ’… νƒœμŠ€ν¬ 생성
└── logger.py                  # βœ… μ™„λ£Œ

πŸ“ λ‘œκΉ… μ‹œμŠ€ν…œ ν™œμš©

μš”κ΅¬μ‚¬ν•­ μ€€μˆ˜ 확인

  • βœ… μš”κ΅¬μ‚¬ν•­ 2: IPO μΆ”μΆœ + νƒœμŠ€ν¬ 생성 둜그 기둝
  • βœ… κ΅¬μ‘°ν™”λœ 둜그: JSON ν˜•νƒœλ‘œ /tmp/azr/logs/ μ €μž₯
  • βœ… μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§: μΆ”μΆœ/생성 κ³Όμ • 단계별 좔적

둜그 μΉ΄ν…Œκ³ λ¦¬

logs/
β”œβ”€β”€ ipo_extraction/           # IPO μΆ”μΆœ 상세 둜그
β”œβ”€β”€ task_generation/          # νƒœμŠ€ν¬ 생성 둜그  
β”œβ”€β”€ problems/                 # λ¬Έμ œλ³„ 처리 둜그
└── training/                 # ν–₯ν›„ ν•™μŠ΅ 둜그용

🎯 λ‹€μŒ 단계 (Phase 4)

Phase 4μ—μ„œ κ΅¬ν˜„ν•  RLVR ν•™μŠ΅ μ‹œμŠ€ν…œ:

  1. TestTimeRewardManager - AZR reward_managers.py 기반
  2. TestTimeRLVRTrainer - AZR PPO/REINFORCE++ ν™œμš©
  3. μ„±λŠ₯ 평가 μ‹œμŠ€ν…œ - 반볡 ν•™μŠ΅ 효과 μΈ‘μ •

AZR μ»΄ν¬λ„ŒνŠΈ ν™œμš© κ³„νš

  • rewards/reward_managers.py - r_solve ν•¨μˆ˜ ν™œμš©
  • trainer/ppo/reason_rl_ray_trainer.py - PPO ν•™μŠ΅ 둜직
  • veRL ν”„λ ˆμž„μ›Œν¬ 톡합

생성 μΌμ‹œ: 2025-07-16
μƒνƒœ: βœ… μ™„λ£Œ ν…ŒμŠ€νŠΈ: βœ… 톡과 (3/3) 핡심 μ„±κ³Ό: AZR Python Executor 성곡적 연동, μ™„μ „ν•œ IPO νŒŒμ΄ν”„λΌμΈ ꡬ좕