레이블이 부족할 때 최적화(Optimization)를 성공시키는 방법 [R]
요약
레이블이 매우 부족한 환경에서 프롬프트와 분류기를 개선하는 자율 모델 엔지니어 Gnosys를 소개합니다. Gnosys는 기존의 GEPA 방식보다 뛰어난 성능을 보이며, 희소한 데이터 환경에서도 목적 함수를 직접 설계하여 최적화를 수행합니다.
핵심 포인트
- Gnosys는 레이블 희소성 문제를 해결하는 자율 모델 엔지니어링 도구임
- 기존 GEPA 및 초기 분류기 대비 높은 유해성 포착 성능을 입증함
- 단순 최적화를 넘어 최적화 대상인 목적 함수(objective)를 직접 설계함
- 데이터가 적을 때 발생하는 노이즈 피팅 문제를 극복하는 데 집중함
Gnosys는 자율 모델 엔지니어(autonomous model engineer)입니다. 이는 기존의 최적화(optimization)를 수행하기에는 정답(ground truth)이 너무 희소할 때 프롬프트(prompts)와 분류기(classifiers)를 개선합니다. 공공 안전 벤치마크인 ToxicChat에서, 현실적인 레이블 희소성(label scarcity) 조건 하에 Gnosys는 현재 방식의 두 차례 실행을 통해, 팀의 시작점과 GEPA(표준 프롬프트 최적화 도구)를 모두 뛰어넘어 분류기를 개선했습니다. 이 노트는 우리가 무엇을 했는지, 무엇을 발견했는지, 그리고 해당 방식이 성능이 저하된 지점이 어디인지를 설명합니다.
결과 (Results)
우리는 포착된 유해성(harm caught)을 보고합니다. 이는 모든 방식에 대해 오탐률(false positive rate)을 5%(20개 중 1개)로 고정했을 때 플래그가 지정된 유해 메시지의 비율입니다. 따라서 차이는 임계값(threshold)의 변화가 아니라 동일한 비용에서 추가로 포착된 유해성을 반영합니다. 아래의 두 실행 모두 시스템이 한 번도 보지 못한 홀드아웃 세트(held-out set)를 기준으로 점수가 매겨졌습니다.
| 헤드라인 실행 (3,000) | 이전 실행 (1,000) | |
|---|---|---|
| Gnosys | 0.777 | 0.909 |
| 시작 분류기 (Starting classifier) | 0.731 | 0.788 |
| GEPA | 0.702 | 0.848 |
두 실행 모두에서 Gnosys는 시작 분류기와 GEPA보다 개선된 성능을 보였습니다. 헤드라인 실행에서 GEPA는 Gnosys에 뒤처졌을 뿐만 아니라 시작 분류기보다도 낮은 성능을 보였습니다 (0.731에서 0.702로). 이전 실행에서는 시작점보다 개선되었습니다. 이러한 불일치는 희소한 레이블(sparse labels) 환경에서의 핵심적인 어려움입니다. 최적화는 때때로 도움이 되기도 하고 때때로 해가 되기도 하며, 신뢰할 수 있는 측정 없이는 어떤 일이 일어났는지 알 방법이 없습니다.
이 비교는 의도적으로 보수적입니다. 두 접근 방식 모두 동일한 기본 최적화 도구(optimizer)를 사용합니다. 유일한 차이점은 Gnosys가 최적화 도구가 작동하는 대상인 목적 함수(objective)를 설계(engineers)한다는 점입니다.
문제 (The problem)
콘텐츠 중재(content moderation), 사기(fraud), 보험 청구 검토(claims review), 리스크 점수 산정(risk scoring) 등 이해관계가 큰 AI 분류기를 운영하는 팀들은 한 가지 제약 조건을 공유합니다. 그들이 필요로 하는 정답(ground truth)은 인간의 판단이며, 이는 비용이 많이 들고 느리며 때로는 영영 도착하지 않기도 합니다. 그들은 아주 적은 수의 예시만을 검증할 수 있는 반면, 결정은 그 외의 모든 것에 대해 축적됩니다.
가지고 있는 소수의 레이블을 대상으로 모델을 튜닝(Tuning)하는 과정에서 어려움이 집중됩니다.
여기서 "적은(few)"이라는 표현은 문자 그대로입니다. 수천 개의 레이블이 없는 메시지들에 비해, 검증된 레이블은 약 200개뿐이었으며, 그중 실제 유해(harm) 사례는 대략 8개에 불과했습니다. 이렇게 적은 검증 신호(verified signal)를 가지고 있으면, 옵티마이저(optimizer)는 기저에 깔린 패턴(underlying pattern)을 학습하기보다는 해당 예시들의 노이즈(noise)에 맞춰 피팅(fitting)하게 되며, 모델이 이동하는 방향은 우연히 받은 소수의 레이블이 무엇인지에 따라 결정됩니다.
Gnosys가 다른 점
GEPA는 주어진 어떤 평가 신호(evaluation signal)든 개선합니다. 그것이 GEPA의 역할이며, 이를 잘 수행하고, Gnosys 또한 이를 사용합니다. 하지만 Gnosys는 그보다 더 나아갑니다. 자율적인 모델 엔지니어(autonomous model engineer)로서, Gnosys는 가용 신호가 최적화(optimization)를 수행할 만큼 충분히 신뢰할 수 있는지 판단합니다. 신뢰할 수 없다면 희소한 레이블(sparse labels)로부터 더 나은 목적 함수(objective)를 설계하고, 해당 목적 함수에 맞춰 프롬프트(prompt)와 분류기(classifier)를 다시 작성합니다.
프롬프트 최적화(Prompt optimization)는 이 루프(loop)의 한 단계일 뿐입니다. Gnosys는 전체 엔지니어링 사이클(engineering cycle)을 자동화합니다.
Gnosys는 소수의 레이블을 직접 신뢰하는 대신, 소수의 검증된 세트와 대규모의 레이블 없는 풀(unlabeled pool)을 결합하여 보정된 품질 추정치(calibrated estimate of quality)를 생성합니다. 여기에는 슬라이스별 보정(per-slice calibration)과 신호가 행동에 옮길 만큼 충분히 신뢰할 수 없을 때 이를 표시하는 명시적인 체크 기능이 포함됩니다. 두 번의 실행 모두에서, 이 보정된 목적 함수(calibrated objective)를 대상으로 최적화했을 때, 동일한 레이블을 사용한 초기 분류기 및 GEPA보다 성능이 향상되었습니다.
슬라이스별 증거
아래 수치들은 실제 배포 환경에서는 가질 수 없는 완전한 정답(ground truth)인 홀드아웃 테스트 레이블(held-out test labels)을 기준으로 계산되었습니다. 이는 작은 양성 하위 집합(positive subsets)에 대한 점 추정치(point estimates)이므로, 각 수치 옆에 개수를 함께 보고하며, 이는 시스템이 희소한 레이블로부터 생성한 추정치가 아닙니다. 단일 집계 수치는 관심 있는 특정 카테고리 내의 성능 저하(regression)를 숨길 수 있기 때문에, 손실(losses)을 포함한 모든 슬라이스(slice)를 보고합니다. 모든 수치는 메인 실행(headline run)에서 Gnosys를 GEPA와 비교한 결과입니다.
메시지 길이별 (테스트 세트의 완전한 분할):
길이 유해 사례 vs
GEPA
짧음 (~80자 미만) 81 −18.5 pts
중간 51 +21.6 pts
길음 / 다단계 (200자 이상) 106 +20.8 pts
유해 콘텐츠 카테고리별 (안전 팀의 작업 슬라이스):
카테고리 유해 사례 vs GEPA
폭력 관련 21 +23.8 pts
탈옥 시도 (독립적으로 검증됨) 49 +8.2 pts
성적 콘텐츠 63 −7.9 pts
성능 향상은 콘텐츠를 판단하는 데 가장 많은 추론 (Reasoning)이 필요한 영역, 즉 폭력적 의도, 의도적인 탈옥, 그리고 희소한 레이블 (Thin labels)로 인해 표준 모델이 추측에 의존해야 하는 긴 다단계 메시지 영역에 집중되었습니다. 두 개의 슬라이스는 서로 다른 이유로 반대 방향으로 움직였습니다.
짧은 메시지(가장 큰 슬라이스)는 모델의 실패가 아니었습니다: Gnosys는 짧은 형식의 유해성을 GEPA만큼 혹은 그보다 더 잘 순위 매깁니다. 낮은 재현율 (Recall)은 작동 지점 (Operating point)이 제 역할을 수행하고 있는 결과입니다. 단일 오탐 (False positive) 예산 하에서, 전체 최적화 임계값 (Aggregate-optimal threshold)은 유해성이 가장 밀집된 곳, 즉 더 긴 메시지 쪽으로 경보를 모읍니다. 세그먼트별로 예산을 설정하면 짧은 메시지의 재현율을 약 0.90까지 높일 수 있지만, 전체 재현율은 0.78에서 0.71로 낮아집니다.
성적 콘텐츠는 실제적인 한계였습니다: 이 작은 슬라이스(77개 메시지 중 63개의 유해 사례)에서 모델의 순위가 더 낮았으며, 슬라이스 로컬 임계값 (Slice-local threshold)을 사용하더라도 이를 회복할 수 없었습니다.
이러한 퇴보 (Regressions)는 향후 최적화를 위한 명확한 방향을 제시하며, 이는 바로 이 시스템이 배포 전에 노출하도록 설계된 슬라이스 수준의 실패 (Slice-level failures) 유형입니다.
(혐오 표현 및 코딩 관련은 이번 실행에서 유해 사례가 각각 3개와 6개뿐이었으므로 추정하기에는 너무 적어 제외했습니다.)
적용 분야
우리가 안전 (Safety)을 선택한 이유는 ToxicChat이 깨끗하고 외부적이며 이해관계가 큰 벤치마크이기 때문이지만, 이 방법론이 안전 분야에만 국한된 것은 아닙니다. 최적화의 대상이 되는 정답 (Truth)이 희소하거나, 비용이 많이 들거나, 지연되는 상황에서 모델을 최적화해야 하는 동일한 제약 조건은 사기 탐지 (Fraud detection), 보험금 심사 (Claims adjudication), 컴플라이언스 검토 (Compliance review), 신용 및 리스크 점수 산정 (Credit and risk scoring), 지원 라우팅 (Support routing), 그리고 추천 (Recommendation) 분야에서도 반복됩니다.
이러한 도메인 전반에 걸쳐 수행하는 작업은 동일합니다: 신뢰할 수 있는 목적 함수 (Objective)를 설계하고, 이를 바탕으로 모델을 개선하며, 결과를 검증하고, 이를 반복하는 것입니다. Gnosys는 바로 이 과정을 자동화합니다.
방법론 (Methodology). 결과는 공개 안전 벤치마크인 ToxicChat을 대상으로 하며, 시스템이 한 번도 본 적 없는 홀드아웃 데이터 (Held-out data)에서 측정되었고, 오탐률 (False positive rate)은 5%로 고정되었습니다. 캘리브레이션 (Calibration) 세트와 테스트 (Test) 세트는 서로 분리되어 있으며, 캘리브레이션 데이터가 평가 단계로 유출되지 않도록 분할 간의 정확히 중복되는 메시지는 제거되었습니다. 세 가지 방식의 결과 모두 단일 시드 (Single-seed)이며 현재 시스템의 초기 실행 결과 중 하나입니다: 3,000개의 메시지로 구성된 홀드아웃 세트에서의 주요 실행 결과 (0.731 / 0.702 / 0.777)와 1,000개의 메시지 분할에 대한 별도의 실행 결과 (0.788 / 0.848 / 0.909)가 그것입니다. 신뢰 구간 (Confidence intervals)을 설정하기 위한 다중 시드 (Multi-seed) 실험이 진행 중입니다. 슬라이스 수준 (Slice-level)의 수치는 주요 실행 결과에서 Gnosys를 GEPA와 비교한 것이며, 추정을 위해 충분한 양의 양성 (Positives) 사례가 있는 모든 슬라이스를 포함합니다. 이 정도 규모에서는 수치가 방향성을 나타내기 때문에 개수 (Counts)를 함께 표시했습니다.
submitted by /u/Kody--- to r/MachineLearning
[link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기