AI에게 점수 매기는 법 가르치기: 역채점 문항, 방향성, 그리고 지식과 실행 사이의 간극
요약
AI가 '역채점(reverse scoring)'이라는 모호한 개념을 심리측정학적 기법과 혼동하여 잘못된 결과를 도출하는 사례를 분석합니다. 이를 해결하기 위해 텍스트, 점수, 척도 방향을 명확히 구분하여 지시하는 프롬프팅 전략을 제시합니다.
핵심 포인트
- AI는 역채점을 선택지 라벨 변경과 점수 매핑 반전 사이에서 혼동할 수 있음
- 역채점, 텍스트 반전, 척도 방향의 개념적 차이를 명확히 인지해야 함
- 모호한 용어 대신 '부정적 방향' 등 명시적인 지시어를 사용하는 것이 중요함
- 문항 수준이 아닌 척도 수준에서의 점수 처리 방식을 구체적으로 정의해야 함
Claude는 역채점 문항 (reverse-scored item)이 무엇인지 알고 있습니다. 만약
그 'supports label:score'라는 설명 하나만으로 충분했습니다. Claude는 나머지를 스스로 파악해냈습니다.
Claude가 잘못 이해한 점
문제는 채점 자체가 아니었습니다. 총점 계산이 문제였습니다. 양식을 만든 후, 저는 Claude에게
field_add --app <appId> --id w1 --type radio --title "I have felt cheerful and in good spirits" --options "At no time:0,Some of the time:1,Less than half:2,About half:3,More than half:4,All of the time:5"
5개 항목 모두, 정확한 채점 방식입니다. 그런 다음 저는 물었습니다: "만약 누군가가 모두 5점을 받는다면, 그 사람의 웰빙(wellbeing) 백분율은 얼마인가요?"
Claude는 다음과 같이 답했습니다: "100%입니다. 원점수(Raw score) 25점에 4를 곱하면 100이 됩니다."
맞습니다. 그다음 저는 진짜 질문을 던졌습니다: "이 척도(scale)의 역채점(reverse-scored) 버전을 어떻게 설정하시겠습니까?"
Claude의 답변: "역채점 항목에 대해서는 점수를 부정(negate)하겠습니다. '나는 활기차다고 느꼈다'라는 항목의 경우, 방향을 반대로 하여 5점=At no time, 0=All of the time으로 점수를 매기겠습니다."
잠깐만요. Claude는 모든 선택지(options)의 점수를 뒤집었습니다. 즉, 모든 선택지에서 0과 5를 맞바꾼 것입니다. 그것은 역채점(reverse scoring)이 아닙니다. 역채점이란 특정 항목에 대해 응답자가 답변을 한 '후'에 점수를 반전시키는 것을 의미합니다. 선택지 라벨은 그대로 유지하되, 점수 매핑(score mapping)을 뒤집는 것입니다.
Claude의 방식은 만약 항목이 부정문으로 작성되었다면 작동했을 것입니다. 하지만 WHO-5 항목들은 모두 긍정문으로 작성되었습니다. 긍정문으로 작성된 항목에는 역채점을 적용하지 않습니다. Claude는 "선택지 점수를 반전시키는 것"과 "심리측정학적 기법으로서의 역채점(reverse scoring)"을 혼동했습니다.
혼란이 발생하는 이유
이러한 혼란은 이해할 수 있습니다. "역채점(Reverse scoring)"은 모호한 용어입니다:
- 텍스트 반전 (Textual reversal) — 항목을 부정문으로 재구성하는 것 ("나는 활기차다고 느끼지 않는다")
- 점수 반전 (Score reversal) — 특정 항목에 대해 수치 점수를 반전시키는 것 (항목 점수 = 최댓값 + 최솟값 - 원점수)
- 척도 방향 (Scale direction) — 총점이 높을수록 좋은 것인지(양의 방향) 아니면 총점이 높을수록 나쁜 것인지(음의 방향)의 문제
Claude는 이 세 가지를 모두 뒤섞었습니다. Claude는 "역채점"이 선택지 점수를 바꾸는 것(2번 방식)이라고 생각했는데, 이는 항목이 부정문으로 작성되었을 때만(1번 방식) 의미가 있습니다. 또한 척도의 전체적인 방향(3번 방식)은 고려하지 않았습니다.
해결책: 명시적인 지시 (Explicit Instructions)
핵심은 제가 의도하는 "역채점 (reverse)"이 어떤 종류인지 매우 명시적으로 표현하는 것이라는 점을 발견했습니다. 이제는 "역채점 문항을 추가하세요"라고 말하는 대신 다음과 같이 말합니다.
"문항 q9를 추가하세요: '나는 차라리 죽는 게 낫겠다는 생각을 한다.' 이 문항은 부정적 방향(negative direction)입니다. 즉, 점수가 높을수록 결과가 더 나쁩니다. 선택지 점수는 다른 문항과 동일하게 0=전혀 그렇지 않다, 3=거의 매일로 매기세요. 역채점 처리는 문항 수준이 아닌 척도 수준 (scale level)에서 이루어집니다."
제가 이처럼 "다른 문항과 동일하게" 그리고 "척도 수준에서 처리"된다고 명시적으로 표현하면, Claude는 선택지 점수를 반전시키려 시도하는 것을 멈추고 필드를 정상적으로 생성합니다.
field_set_property 우회 방법
당시 MCP 도구들이 척도 수준의 채점 (scale-level scoring)을 구성할 수 없었기 때문에, 저는 선택지 수준의 점수 오류를 수정하기 위한 우회 방법으로 field_set_property를 사용하기 시작했습니다.
만약 Claude가 잘못된 점수로 라디오 버튼 필드 (radio field)를 생성한다면, 필드를 다시 만들지 않고도 개별 선택지 점수를 수정할 수 있습니다.
# 인덱스 2번 선택지의 점수 수정
field_set_property --app <appId> --id q3 --property options.2.score --value 2
이 명령은 정확히 하나의 선택지 점수만 업데이트합니다. 이는 척도 수준의 채점은 아니지만, Claude가 채점 방향을 오해하여 발생하는 선택지별 채점 실수를 바로잡을 수 있게 해줍니다.
진짜 교훈: 평가 이론 (Assessment Theory)은 어렵다
여기서 얻은 더 깊은 교훈은 MCP 도구나 스키마 설명에 관한 것이 아닙니다. 평가 이론은 진정으로 복잡하며, LLM은 이에 대해 표면적인 이해만을 가지고 있어 예외적인 상황(edge cases)에서 한계를 드러낸다는 점입니다.
Claude가 알고 있는 것:
- 리커트 척도 (Likert scale)가 무엇인지 ✅
- 역채점 (reverse scoring)이 무엇을 의미하는지 (개념적으로) ✅
label:score형식의 선택지를 구성하는 방법 ✅- 라디오 버튼 (radio) 필드와 척도 (scale) 필드를 언제 사용할지 ✅
Claude가 확실히 알지 못하는 것:
- 어떤 문항이 역채점되어야 하는지, 아니면 단순히 부정문으로 작성되어야 하는지 ❌
- 문항 수준의 반전 (item-level reversal)과 척도 수준의 반전 (scale-level reversal)의 차이 ❌
- 높은 점수가 더 좋은 것을 의미하는지 아니면 더 나쁜 것을 의미하는지 (척도 방향) ❌
- 차원 채점 (dimensional scoring)을 구성하는 방법 (MCP를 통해 노출되지 않음) ❌
이것은 Claude에 국한된 한계가 아닙니다. 이는 개념을 아는 것과 특정 도구의 맥락에서 이를 적용하는 것 사이의 간극입니다. 동일한 간극은 모든 도메인에 존재합니다. 예를 들어, AI는 데이터베이스 인덱스 (database index)가 무엇인지 알지만, 잘못된 컬럼에 인덱스를 생성할 수도 있습니다.
이를 해결하기 위해 제가 하고 있는 일
저는 MCP 도구 설명에 더 많은 맥락을 추가하고 있습니다. field_add의 경우, options 파라미터는 이제 다음과 같이 작성됩니다:
options: z.string().optional().describe('옵션 목록, 쉼표로 구분, label:score 형식을 지원함. 점수가 매겨지는 척도(scored scales)의 경우 label:score 형식을 사용하십시오. 높은 점수는 구성 개념의 방향(construct direction)과 일치해야 합니다 — 만약 척도가 우울증을 측정한다면, 높은 점수 = 더 심한 우울증을 의미해야 합니다.'),
그리고 점수 관련 필드의 경우:
score: z.number().optional().describe('문항 점수 가중치. 총점에 더 많이 또는 더 적게 기여해야 하는 항목에 사용하십시오. 기본값은 1(동일 가중치)입니다.'),
이러한 설명들이 Claude를 심리측정학 (psychometrics) 전문가로 만들어주지는 않을 것입니다. 하지만 Claude를 올바른 방향으로 유도할 수는 있습니다. "높은 점수는 구성 개념의 방향과 일치해야 한다"라고 명시적으로 언급함으로써 가장 흔한 실수(척도가 이미 올바른 방향일 때 점수를 반대로 뒤집는 것)를 방지할 수 있습니다.
나머지 요소들 — 차원별 그룹화 (dimensional grouping), 절단 점수 (cutoff scores), 보고서 템플릿 (report templates) — 은 제가 MCP를 통해 Scale 모듈을 노출할 때 구현될 것입니다. 그것이 다음 주요 작업입니다. 그때까지 AI는 양식을 만들 수 있고, 점수 계산은 제가 수동으로 처리합니다.
formlm-cli MCP 서버는 label:score 형식을 통한 옵션별 점수 매기기를 지원합니다. github.com/formlm/cli에서 오픈 소스로 제공됩니다 — formlm.me에서 플랫폼을 체험해 보세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기