File size: 4,315 Bytes
24c2665
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# 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 νŠΈλ¦¬ν”Œ ꡬ쑰
```json
{
  "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 νŒŒμ΄ν”„λΌμΈ ꡬ좕