AI 에이전트를 사용해 보고 5번째에서야 겨우 성공했습니다.
데모라면 '작동했습니다'라고 말할 수 있을지도 모릅니다.
하지만 매일의 업무를 맡긴다면 이야기는 달라집니다.
실무 업무 자동화에서 중요한 것은 안정성을 보는 Pass^k입니다.
사용자는 '5번 중 1번만 작동하는 기능'을 '작동했다'고 인정해주지 않습니다.
grader는 AI의 처리 결과를 채점하는 메커니즘입니다.
예를 들어, 청구서를 읽어 업무 시스템에 등록하는 경우를 생각해 봅시다. AI가 단순히 '등록했습니다'라고 답변했다고 해서 성공이라고 판단할 수는 없습니다.
확인하고 싶은 것은 다음과 같은 상태입니다.
- 금액과 거래처가 정확한지
- 등록된 데이터가 실제로 업데이트되었는지
- 동일한 청구서가 중복 등록되지 않았는지
수치나 등록 상태는 코드로 검증하고, 설명의 명확성은 LLM(대규모 언어 모델)이나 사람이 평가합니다. 판정하는 대상에 맞춰 채점기를 선택해야 합니다.
같은 작업을 동일한 초기 조건에서 k번 시도합니다.
| 지표 | 성공으로 간주하는 조건 | 알 수 있는 것 |
|---|
| Pass@k | k번 중 1회 이상 성공 | 시도 과정에서 성공에 도달할 수 있는지 |
| Pass^k | k번 모두 성공 | 반복해도 안정적으로 성공할 수 있는지 |
예를 들어, 5번의 결과가 다음과 같다고 가정해 봅시다.
| 1번째 | 2번째 | 3번째 | 4번째 | 5번째 |
|---|
| 실패 | 실패 | 성공 | 실패 | 실패 |
이 조합은 Pass@5 조건을 충족합니다.
반면, Pass^5 조건은 충족하지 못합니다.
한 번 성공했다는 것과 반복적으로 맡길 수 있는 것은 다릅니다. 이 차이를 포착하는 것이 두 가지 지표입니다.
각 시도가 독립적이며 성공 확률이 p로 일정하다고 가정하면, 다음과 같이 계산할 수 있습니다.
-
Pass@k:
1 - (1 - p)^k
-
Pass^k:
p^k
성공률 80%, 5회 시도라면,
| 지표 | 계산 결과 |
|---|
| Pass@5 | 99.968% |
| Pass^5 | 32.768% |
'5번까지 시도하면 거의 성공한다'.
하지만 '5번 모두 성공할 확률'은 약 33%입니다.
이 차이는 일상적인 운영에서는 무시할 수 없습니다.
※ 이는 가정에 기반한 계산 예시입니다. 실제 평가에서는 여러 작업을 반복 실행하여 집계합니다.
후보를 여러 번 생성하고 사람이 정답을 고르는 용도라면, Pass@k가 유용합니다.
반면, 청구서 등록이나 고객 정보 업데이트 같은 작업은 실패할 때마다 확인과 수정이 필요합니다.
따라서 다음 순서로 평가하는 것이 실무에 적용하기 쉽습니다.
- 정상 종료 조건(正常終了とする条件)을 grader에 작성한다.
- 각 시도 전에 데이터나 환경을 동일한 초기 상태로 되돌린다.
- 같은 작업을 반복하여 Pass^k와 실패 원인을 확인한다.
재시도(リトライ)를 제품 기능에 포함할 경우, 재시도를 포함한 처리 전체를 '1회'로 정의합니다. 그 위에 소요 시간이나 중복 등록도 채점 대상에 포함합니다.
단 한 번의 성공을 확인했다면, 다음은 몇 번을 맡겨도 기대했던 결과가 나올지를 측정해야 합니다.
그 정도까지 확인하여 업무를 맡길지 판단하는 결론으로 이끌고 싶습니다.