AI 평가 자동화: 지침을 3번 고쳤지만 채택하지 않았습니다

AI 평가 자동화를 만들면서 바란 건 단순했어요. 제가 결과를 보고 성공·실패만 알려주면 AI가 그 기준에 맞춰 지침을 고치는 겁니다. 매번 어디를 수정할지 지시하지 않아도 되는 흐름을 만들고 싶었습니다.

채용 아웃리치에 쓰던 자동화·평가 절차가 출발점이었어요. 이번에는 특정 업무에 묶이지 않도록 기존 결과 생성 스킬을 넣으면 사람 리뷰와 반복 개선 절차가 포함된 새 스킬을 만드는 review-improver-skill을 Codex와 함께 만들었습니다.

절차는 구현했습니다. 하지만 작은 제목 생성 실험에서 세 번 수정한 뒤에도 목표를 달성하지 못했어요. 새 버전은 채택하지 않았습니다.

사람이 리뷰하면 지침이 따라 바뀌게

처음 요청은 이랬어요.

결과물을 만드는 스킬을 사람 평가 → 개선까지 해서 스스로 개선되는 스킬로 새로운 버전을 만들어 내는 그 과정을 해주는 스킬을 만들고 싶은거야.

원본은 보존하고 새 버전에서 생성 지침만 고치도록 했습니다. 평가 기준과 AI 심판, 평가 자료를 함께 바꾸면 무엇 때문에 결과가 달라졌는지 알기 어려우니까요. 반복 횟수도 미리 정했습니다.

원본을 보존하고 사람 리뷰에서 생성 지침 수정과 고정 자료 평가로 이어지는 개선 절차

이건 모델의 가중치를 학습시키는 기능은 아닙니다. 에이전트가 지침을 수정하고 결과를 다시 만들며 별도 도구가 버전과 점수·중단 조건을 기록하는 방식이에요. 설치만으로 백그라운드에서 개선이 시작되지는 않습니다.

가장 쉬워 보이는 제목 6개로 시작

처음부터 채용 업무 전체로 시험하지는 않았습니다. 공개된 title-generator 스킬을 바탕으로 짧은 글에서 한국어 제목 하나를 만드는 예제로 줄였어요. 제목은 공백과 문장부호를 포함해 30자 이하로 정했습니다.

가상의 글 10개를 준비해 개발용 6개와 최종 확인용 4개로 먼저 나눴습니다. 저는 최초 제목 6개를 리뷰했고 1개를 실패로 봤어요.

도서관 안내 원문에는 토요일 오후 6시까지 운영 시간을 늘린다는 내용과 일요일·공휴일 휴관 조건이 함께 있었습니다. AI가 만든 제목은 다음과 같았어요.

작은도서관 토요일 오후 6시까지 운영

저는 휴관 조건이 빠져서 실패라고 했습니다. 나머지 5개는 성공으로 봤어요. 그런데 AI 심판은 이 제목을 통과시키고 제가 성공으로 본 다른 제목을 실패로 골랐습니다.

성공률과 심판 정확도를 섞고 있었어요

사람도 AI도 성공이 5/6이었습니다. 숫자만 보면 비슷하게 평가한 것 같지만 같은 판정을 한 것은 4/6뿐이었어요.

사람과 AI가 각각 5개를 성공으로 봤지만 1번과 6번에서 불일치해 심판 일치율이 4/6인 구조

처음에는 제가 제시한 식에서도 생성 결과의 성공 비율과 심판의 정확도가 섞여 있었습니다. 이 식을 AI가 검토하면서 지표를 분리해 준 점이 이번 작업에서 가장 도움이 됐어요.

  • Q: 결과 중 성공으로 판정한 비율. 사람 Q와 AI Q를 구분합니다.

  • th: 같은 결과에 대해 사람과 AI가 판정을 일치시킨 비율입니다.

  • TPR: 사람이 성공으로 본 것 중 AI도 성공으로 본 비율입니다.

  • TNR: 사람이 실패로 본 것 중 AI도 실패로 본 비율입니다.

식은 th = (p+f)/(P+F) = k/m으로 정리했습니다. P와 F는 사람의 성공·실패 수, p와 f는 각각 그 안에서 AI도 같은 판정을 한 수입니다. TPR = p/P, TNR = f/F입니다.

이번에는 th = 4/6 = 66.7%, TPR = 4/5 = 80%, TNR = 0/1 = 0%였습니다. 다만 사람이 실패로 본 표본이 1개뿐이므로 일반적인 심판 정확도라고 말할 수는 없습니다.

하나를 고치니 다른 문제가 나왔습니다

목표는 개발용 6개가 AI 평가에서 모두 성공하고 중대 오류가 없는 상태였습니다. 생성 지침은 최대 3회 수정하기로 했어요.

첫 수정에서는 핵심 예외와 제안·확정 수준을 보존하도록 했습니다. 휴관 조건은 들어갔지만 다른 제목에서 새 실패가 생겼어요. 성공 수는 여전히 5/6이었습니다. AI가 지적한 중대 오류가 없어져 이 버전을 잠정 최선으로 남겼습니다.

두 번째 수정에서는 관찰 범위와 부위를 보존하도록 했지만 중대 오류가 생겼습니다. 세 번째는 두 번째가 아닌 잠정 최선 버전에서 다시 시작했어요.

v0에서 v1을 만든 뒤 v1에서 v2와 v3가 각각 분기하고 목표 미달로 채택하지 않은 버전 기록

세 번째 버전에서는 평가 1건이 정해진 응답 형식을 지키지 못했습니다. 한 번 재시도해도 필수 판정 항목이 빠졌어요. 이를 성공으로 채우거나 분모에서 빼지 않고 미완료로 남겼습니다.

더 눈에 띈 건 도서관 제목이었어요. 중간 버전에서는 들어갔던 공휴일 휴관 조건이 마지막 버전에서 다시 빠졌습니다. 지침에 피드백을 적어두는 것만으로 재발을 막지는 못했어요.

수정 한도에 도달해 중단했습니다. 최종 확인용 글 4개는 열거나 실행하지 않았고 새 버전도 채택하지 않았습니다. 수정본은 제가 다시 리뷰하지 않았으므로 사람 기준의 품질 향상은 미측정입니다.

이번에 만든 것과 아직 못 만든 것

원본 보존, 사람 리뷰 기록, 버전별 수정과 평가, 실패 기록 유지, 한도 중단은 실제로 실행했습니다. 관련 기능을 검사하는 계약 테스트 34개도 통과했어요. 이 테스트 통과를 제목 품질의 성공으로 세지는 않았습니다.

반면 사람 리뷰만 하면 품질이 계속 좋아지는 상태까지는 만들지 못했습니다. 다음 실험에서는 심판이 사람 기준을 재현하는지 먼저 확인하고 사람이 지적한 문제가 새 버전에서도 재발하는지 검사하려고 합니다. 평가 응답 형식을 제한하는 보완도 필요해요. 세 가지 모두 아직 구현 전입니다.

비슷한 시도를 한다면 처음부터 업무 전체를 맡기기보다, 성공·실패 이유를 직접 설명할 수 있는 작은 결과물부터 시험해 볼 만합니다. 시작 요청은 이렇게 쓸 수 있어요.

[기존 결과 생성 스킬]을 사람 리뷰와 반복 개선이 포함된 별도 스킬로 만들어줘. 원본은 보존하고 성공 기준, 평가 자료, 수정 범위와 반복 한도를 먼저 정해줘. 사람 판정과 AI 판정이 다르면 보여주고, 목표 미달이나 평가 미완료면 멈춰줘. 공개 게시나 발송은 하지 마.

AI 평가 자동화에서 제가 먼저 확인해야 할 것은 성공 개수만이 아니었어요. 무엇을 성공으로 봤는지까지 비교해야 했습니다. 이번에는 더 나은 스킬을 채택하지 못했지만 어디서 멈췄고 다음에 무엇을 검증해야 하는지는 기록으로 남겼습니다.

1
1개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 아침,
읽고 바로 써먹을 AI 소식만