점수 조합
복잡한 판단을 원자적 점수로 분해하고, 코드에서 완전히 통제하는 가중치로 병합하세요.
이 문서는 zh-CN에서 기계 번역되었으며 교정되지 않았습니다. 빠른 참고용으로만 사용하세요.

이 패턴이 해결하는 문제
우리는 종종 여러 차원(multiple dimensions)에 따라 한 무리의 항목을 정렬해야 합니다. ’종합 점수’를 하나의 질문으로 직접 작성하는 것은 좋지 않습니다. 모델이 제공하는 점수는 설명할 수 없으며, 왜 그렇게 정렬되었는지 알 수 없습니다.
조합 점수(Composite Score) 방식은 판단을 독립적인 차원으로 분리하여 각각 개별적으로 점수를 매기고, 코드에서 당신이 통제하는 가중치로 병합합니다.
예시: 이력서 필터링
엔지니어링 직군의 이력서를 처리하고 있으며, 여러 기준에 따라 후보자를 정렬하여 상위 X명을 다음 라운드로 진출시키고 싶다고 가정해 봅시다.
1단계: 각 차원에 대해 독립적으로 점수 매기기
한 번의 호출에서 네 가지 Score(python_depth, team_leadership, system_design, generalist)를 요청하고, 각 차원마다 자체적인 등급 정의(grading rubric)를 사용합니다.
2단계: 가중치를 사용하여 병합
py = response.answers["python_depth"].score / 4
lead = response.answers["team_leadership"].score / 4
arch = response.answers["system_design"].score / 4
general = response.answers["generalist"].score / 4
# Senior IC (시니어 개인 기여자)
ic_score = (0.40 * py) + (0.10 * lead) + (0.40 * arch) + (0.10 * general)
# Engineering Manager (엔지니어링 매니저)
em_score = (0.15 * py) + (0.40 * lead) + (0.20 * arch) + (0.25 * general)
각 차원은 먼저 0–1로 정규화(normalize)된 후 가중치가 적용됩니다.
이 패턴의 진정한 가치
가중치를 통해 정렬 결과를 얻는 것은 표면적인 이점일 뿐입니다. 진정한 가치는 설명 가능성(interpretability)에 있습니다.
위의 두 가지 다른 직군에서 동일한 점수 세트를 사용하되 다른 가중치를 적용했습니다. 이는 다음과 같은 의미를 가집니다.
- 한 번의 호출로 두 가지 채용 방향을 동시에 처리할 수 있으므로 비용이 두 배로 증가하지 않습니다.
- 순위 결과가 기대와 다를 경우, 프롬프트를 다시 조정할 필요 없이 가중치만 직접 조정하면 됩니다.
- “왜 이 후보자가 1위인가?“라는 질문이 있을 때, 각 차원의 점수 분포와 가중치를 보여줄 수 있습니다.
각 차원의 세부 사항이 손실되지 않습니다. Python 실력은 뛰어나지만 팀 리더십이 약한 후보자는 IC 직군에서는 상위권에, EM 직군에서는 하위권에 랭크됩니다. 이 차이는 모델이 다시 판단한 것이 아니라 가중치에 인코딩된 것입니다.
중단점 디버깅(Breakpoint Debugging)
가중치에는 또 다른 실용적인 이점이 있습니다. 개별 차원별로 정렬하여 이상 현상을 추적할 수 있습니다. 종합 순위가 이상해 보인다면, 먼저 python_depth만 별도로 정렬하여 직관과 일치하는지 확인합니다. 만약 일치하지 않는다면, 문제는 가중치가 아니라 해당 차원의 등급 정의에 있습니다. 이러한 분해 가능성은 “하나의 큰 문제를 모델에 직접 묻는 방식”으로는 달성할 수 없습니다.
어떤 차원의 구별력(discrimination)이 부족하여(모두가 동일한 등급에 집중됨) 발견된다면, 가중치를 조정하는 것이 아니라 등급 정의를 다시 작성해야 합니다.
신뢰도(Confidence)와의 협력
각 차원의 Score는 confidence를 포함합니다. 신뢰도가 낮은 차원은 신호입니다: 등급 정의에 모호함이 있거나, state에 판단 근거가 부족함을 의미합니다.
실용적인 접근 방식은 다음과 같습니다. 높은 가중치를 가진 차원의 신뢰도가 임계값보다 낮다면, 신뢰할 수 없는 점수가 순위를 지배하도록 하기보다 해당 후보자를 “수동 검토 필요(manual review required)“로 표시합니다.
설계 핵심 사항
차원은 직교(orthogonal)해야 합니다. 두 차원이 높은 상관관계를 가진 경우(예: ’Python 깊이’와 ‘프로그래밍 능력’), 가중치를 적용하면 동일한 사항을 중복 계산하게 됩니다. 차원을 설계할 때 스스로에게 물어보십시오: 이 차원은 독립적으로 변할 수 있는가?
가중치는 합이 1이 되도록 정규화합니다. 이해와 조정이 용이합니다.
먼저 정규화한 후 가중치를 적용합니다. 서로 다른 차원의 등급 수는 일반적으로 다르며, 정규화하지 않으면 등급 수가 많은 차원이 불균형하게 큰 영향을 미치게 됩니다.
가중치는 비즈니스 결정이지 기술적 결정이 아닙니다. IC 직군과 EM 직군의 가중치 차이를 결정하는 사람은 누구여야 할까요? 엔지니어가 아니라 채용 담당자여야 합니다. 가중치를 구성 가능한 항목으로 만드십시오.
관련 항목
- Score — 본 패턴의 기본 원시 데이터
- Fan-out 병렬 처리 — 한 번의 호출로 모든 차원 질문하기
- Confidence — 신뢰할 수 없는 차원 점수 처리