평가 기준표 기반 점수 매기기 프롬프트
정확성, 유창성, 관련성, 안전성을 구조화된 평가 기준으로 다룹니다(1~5점 척도).
평가 기준표 기반 점수 매기기 프롬프트은(는) CoddyKit의 무료 AI Prompt Engineering 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Prompt Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.
평가 기준표 기반 채점이란 무엇입니까?
평가 기준표 기반 채점에서는 LLM 심사자에게 각 점수 수준에 대한 명시적 정의가 포함된 구조화된 기준 집합을 제공합니다. ‘이 응답은 얼마나 좋은가?’라고 묻는 대신, ‘이 응답은 다음의 구체적인 각 평가 차원에서 몇 점인가?’라고 묻는 것입니다.
평가 기준표는 편향을 줄이고 일관성을 높이며, 평가 결과를 해석하고 실제 조치로 이어지게 합니다.
채점 평가 기준표의 구성
잘 설계된 평가 기준표에는 세 가지 구성 요소가 있습니다:
- 기준 이름: 평가할 차원(정확성, 완전성, 명확성)
- 점수 기준점: 해당 기준에서 각 점수가 의미하는 바에 대한 명시적 정의
- 가중치 또는 우선순위: 이 사용 사례에서 어떤 기준이 가장 중요한지
각 구성 요소는 평가자의 작업을 더 제한적이고 재현 가능하게 만듭니다.
세 가지 기준을 사용하는 평가 기준표 프롬프트
다음은 정확성, 완전성, 명확성을 기준으로 인공지능 응답을 평가하기 위한 구체적인 평가 기준표 프롬프트 템플릿입니다. 평가자는 기준별 점수가 포함된 구조화된 JSON을 반환합니다.
import anthropic
import json
client = anthropic.Anthropic(api_key='sk-ant-...')
RUBRIC_PROMPT = (
'Score this response on a scale of 1-5 for each criterion:\n\n'
'ACCURACY: Is the response factually correct?\n'
' 1=Contains significant factual errors\n'
' 3=Mostly correct with minor inaccuracies\n'
' 5=Completely accurate with no errors\n\n'
'COMPLETENESS: Did it answer everything asked?\n'
' 1=Missed most of the question\n'
' 3=Answered the main question but missed sub-parts\n'
' 5=Addressed every part of the question\n\n'
'CLARITY: Is it easy to understand?\n'
' 1=Confusing, hard to follow\n'
' 3=Understandable but could be clearer\n'
' 5=Exceptionally clear and well-organized\n\n'
'Question: {question}\n'
'Response: {response}\n\n'
'Return JSON: {{"accuracy": N, "completeness": N, "clarity": N, '
'"overall": N, "notes": "one sentence"}}'
)
def rubric_judge(question, response):
prompt = RUBRIC_PROMPT.format(question=question, response=response)
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{'role': 'user', 'content': prompt}]
)
return json.loads(r.content[0].text)
result = rubric_judge(
question='What is a REST API?',
response='A REST API is a way for applications to communicate over HTTP.'
)
print(result)가중 채점
모든 기준이 똑같이 중요한 것은 아닙니다. 고객 지원 봇에서는 문학적 문체보다 유용성이 더 중요합니다. 가중 채점을 사용하면 최종 점수 계산에서 이러한 우선순위를 표현할 수 있습니다.
import anthropic
import json
client = anthropic.Anthropic(api_key='sk-ant-...')
def weighted_rubric_judge(question, response, weights):
"""
weights: dict of criterion -> weight (should sum to 1.0)
Example: {'accuracy': 0.5, 'completeness': 0.3, 'clarity': 0.2}
"""
RUBRIC = (
'Score this response 1-5 on:\n'
'Accuracy: Is it factually correct?\n'
'Completeness: Does it cover the full question?\n'
'Clarity: Is it easy to understand?\n\n'
'Q: {q}\nA: {a}\n\n'
'Return JSON: {{"accuracy":N,"completeness":N,"clarity":N}}'
)
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=100,
messages=[{'role': 'user', 'content': RUBRIC.format(q=question, a=response)}]
)
scores = json.loads(r.content[0].text)
# Calculate weighted average
weighted_score = sum(
scores[criterion] * weight
for criterion, weight in weights.items()
if criterion in scores
)
print(f'Individual scores: {scores}')
print(f'Weighted score: {weighted_score:.2f}/5')
return weighted_score
weighted_rubric_judge(
'How do I reverse a string in Python?',
'Use slicing: s[::-1]',
weights={'accuracy': 0.5, 'completeness': 0.3, 'clarity': 0.2}
)기준: 사실 정확성
사실 정확성은 지식 집약적 작업에서 가장 중요한 기준입니다. 전용 정확성 평가 기준표는 평가자에게 잘못된 사실, 오래된 정보, 근거 없는 주장을 구체적으로 확인하도록 지시합니다.
ACCURACY_RUBRIC = (
'Evaluate FACTUAL ACCURACY of the following response.\n\n'
'Score 1-5:\n'
'1 = Multiple factual errors that fundamentally mislead the reader\n'
'2 = At least one significant factual error (wrong date, number, or core fact)\n'
'3 = Factually correct but includes minor imprecisions or over-generalizations\n'
'4 = Factually correct with appropriate hedging of uncertain claims\n'
'5 = Factually precise, no errors, and correctly acknowledges uncertainty where present\n\n'
'Check specifically for:\n'
'- Wrong dates, statistics, or numerical values\n'
'- Misattributed quotes or inventions\n'
'- Outdated information presented as current\n'
'- Claims stated with false confidence (should be hedged)\n\n'
'Q: {question}\nA: {response}\n\n'
'Score and list any errors found:'
)
print(ACCURACY_RUBRIC[:400])기준: 완전성
완전성은 응답이 여러 부분으로 이루어진 질문의 모든 부분을 다루는지 확인합니다. 이 기준은 첫 번째 질문에는 답하지만 후속 질문은 무시하거나, 구체적인 내용이 요청되었는데도 높은 수준의 답변만 제공하는 응답을 찾아냅니다.
COMPLETENESS_RUBRIC = (
'Evaluate COMPLETENESS of this response.\n\n'
'First, list every distinct question or requirement in the original query.\n'
'Then, check whether the response addressed each one.\n\n'
'Score 1-5:\n'
'1 = Only addressed 0-20% of what was asked\n'
'2 = Addressed 20-50% — missed major components\n'
'3 = Addressed 50-80% — answered main question but missed sub-parts\n'
'4 = Addressed 80-95% — minor omissions only\n'
'5 = Addressed 100% — every requirement was met\n\n'
'Q: {question}\nA: {response}\n\n'
'Requirements checklist and completeness score:'
)
# This rubric forces the judge to decompose the question first,
# which is much more reliable than asking 'was it complete?'
print(COMPLETENESS_RUBRIC[:400])기준: 명확성
명확성 평가는 가독성, 구조, 그리고 응답이 실제로 대상 독자에게 의미를 전달하는지를 확인합니다. 이 기준은 기술적으로는 정확하지만 설명이 부실한 응답을 찾아냅니다.
CLARITY_RUBRIC = (
'Evaluate CLARITY of this response for a {audience} audience.\n\n'
'Score 1-5:\n'
'1 = Incomprehensible — cannot extract meaning\n'
'2 = Very hard to follow — excessive jargon, poor structure\n'
'3 = Understandable with effort — some confusing parts\n'
'4 = Clear and well-organized — easy to read\n'
'5 = Exceptionally clear — ideal structure, appropriate vocabulary, '
'no unnecessary complexity\n\n'
'Consider:\n'
'- Is the vocabulary appropriate for the audience?\n'
'- Is the response logically organized?\n'
'- Are sentences a readable length?\n'
'- Is the main point stated early and clearly?\n\n'
'Q: {question}\nA: {response}\n\n'
'Clarity score and key issues:'
)
# Parameterize the audience for context-aware clarity assessment
print(CLARITY_RUBRIC.format(
audience='non-technical business stakeholder',
question='What is an API?',
response='REST APIs use HTTP to transfer data between client and server.'
)[:300])작업별 평가 기준표
일반적인 정확성·완전성·명확성 평가 기준표는 폭넓게 사용할 수 있지만, 작업별 평가 기준표는 특수한 사용 사례에서 더 나은 평가 결과를 냅니다. 실제로 애플리케이션에서 중요한 요소에 맞게 기준을 맞춤 설정하십시오.
# Customer support response rubric
SUPPORT_RUBRIC = (
'Evaluate this customer support response:\n\n'
'EMPATHY (1-5): Does it acknowledge the customer emotion?\n'
'RESOLUTION (1-5): Does it provide a clear solution or next step?\n'
'TONE (1-5): Is it professional, warm, and not condescending?\n'
'EFFICIENCY (1-5): Does it avoid unnecessary words or boilerplate?\n\n'
'Customer message: {customer_message}\n'
'Support response: {support_response}\n\n'
'Scores and notes (JSON):'
)
# Code review rubric
CODE_REVIEW_RUBRIC = (
'Evaluate this code explanation:\n\n'
'CORRECTNESS (1-5): Is the code technically correct?\n'
'EDGE_CASES (1-5): Does it handle edge cases (empty input, errors)?\n'
'EFFICIENCY (1-5): Is it reasonably efficient (no obvious O(n^2) where O(n) is easy)?\n'
'READABILITY (1-5): Is the code easy to read and understand?\n\n'
'Task: {task}\n'
'Code: {code}\n\n'
'Scores and notes (JSON):'
)
print('Specialized rubrics produce better signal for your domain')평가 기준표 일관성 검증
약간씩 다른 프롬프트 문구로 같은 응답을 다섯 번 보내고 점수가 안정적으로 유지되는지 확인하여 평가 기준표의 일관성을 검증하십시오. 분산이 크다면 평가 기준표의 정의가 불충분하다는 의미입니다.
import anthropic
import json
import statistics
client = anthropic.Anthropic(api_key='sk-ant-...')
def test_rubric_consistency(rubric_prompt, question, response, n_trials=5):
scores = []
for i in range(n_trials):
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=100,
messages=[{'role': 'user', 'content': rubric_prompt.format(
question=question, response=response
)}]
)
try:
data = json.loads(r.content[0].text)
overall = data.get('overall', sum(data.values()) / len(data))
scores.append(overall)
except Exception:
scores.append(None)
valid = [s for s in scores if s is not None]
if valid:
print(f'Scores: {valid}')
print(f'Mean: {statistics.mean(valid):.2f}')
print(f'Std dev: {statistics.stdev(valid):.2f}')
if statistics.stdev(valid) > 0.5:
print('WARNING: High variance — rubric may be underspecified')
return valid평가자가 JSON 반환하기
평가 기준표를 사용하는 평가자에게는 항상 구조화된 JSON을 반환하도록 요청하십시오. 이렇게 하면 점수를 기계가 읽을 수 있고, 자동 집계가 가능하며, 처리 과정에서 무시되는 자유 형식 서술 속에 평가자가 중요한 뉘앙스를 숨기지 못하게 할 수 있습니다.
import anthropic
import json
client = anthropic.Anthropic(api_key='sk-ant-...')
def structured_rubric_judge(question, response):
prompt = (
'Score this response 1-5 on three criteria and return JSON.\n\n'
'Q: {q}\nA: {a}\n\n'
'Return ONLY this JSON structure (no other text):\n'
'{{\n'
' "accuracy": <1-5>,\n'
' "completeness": <1-5>,\n'
' "clarity": <1-5>,\n'
' "overall": <1-5>,\n'
' "primary_issue": "<what most needs improvement>",\n'
' "primary_strength": "<what the response does best>"\n'
'}}'
).format(q=question, a=response)
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{'role': 'user', 'content': prompt}]
)
text = r.content[0].text.strip()
# Strip markdown code fences if present
if text.startswith('###'):
text = text.split('###')[1]
if text.startswith('json'):
text = text[4:]
return json.loads(text.strip())
result = structured_rubric_judge(
'Explain big O notation.',
'Big O describes algorithm time complexity.'
)
print(json.dumps(result, indent=2))평가 기준표 설계 반복 개선
평가 기준표가 제대로 작동하려면 반복적인 개선이 필요합니다. 간단한 세 가지 기준의 평가 기준표로 시작하여 20~30개의 검증 사례에 적용하고 사람의 평가 점수와 비교하십시오. 평가자와 사람이 가장 크게 불일치하는 부분의 기준 정의를 개선하십시오.
일반적인 개선 필요 사항은 다음과 같습니다. 정확성 기준이 너무 광범위한 경우(사실 정확성과 논리적 일관성으로 나누기), 명확성 기준이 가독성과 간결성을 뒤섞는 경우(분리하기), 또는 3점 수준의 기준점이 불분명한 경우(대부분의 응답이 모호하게 그 수준에 몰림)입니다.
지식 확인: 평가 기준점
채점 평가 기준표에 각 점수 수준의 의미를 명시적으로 설명하는 내용(점수 기준점)을 포함해야 하는 이유는 무엇입니까?
복습: 평가 기준표 기반 채점 프롬프트
평가 기준표 기반 채점은 여러 개의 이름이 지정된 기준(정확성, 완전성, 명확성)에 따라 응답을 평가하며, 각 점수 수준의 의미를 정의하는 명시적 점수 기준점을 사용합니다. 기준점은 점수 부풀림을 줄이고 일관성을 높입니다. 사용 사례에서 가장 중요한 기준을 우선시하려면 가중 채점을 사용하십시오. 작업별 평가 기준표(지원, 코드, 창작)는 전문적인 애플리케이션에서 일반적인 평가 기준표보다 더 나은 성능을 냅니다. 기계가 읽을 수 있는 결과를 얻으려면 평가자는 항상 JSON을 반환해야 합니다. 같은 평가를 여러 번 실행하여 평가 기준표의 일관성을 검증하십시오. 표준 편차가 높다면 평가 기준표의 정의가 불충분하여 개선이 필요하다는 신호입니다.
AI 튜터와 함께 AI Prompt Engineering을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 53
- 레슨
- 199
자주 묻는 질문
“평가 기준표 기반 점수 매기기 프롬프트” 강의는 무료인가요?
네 — “평가 기준표 기반 점수 매기기 프롬프트” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Prompt Engineering 강의 전체를 잠금 해제할 수 있습니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.
“평가 기준표 기반 점수 매기기 프롬프트”에서 뭘 배우나요?
정확성, 유창성, 관련성, 안전성을 구조화된 평가 기준으로 다룹니다(1~5점 척도). 브라우저에서 직접 실행하는 실습 코드로 AI Prompt Engineering을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Prompt Engineering을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Prompt Engineering은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“평가 기준표 기반 점수 매기기 프롬프트” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Prompt Engineering 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Prompt Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- LLM을 사용해 LLM 출력 평가하기
- 평가 기준표 기반 점수 매기기 프롬프트
- 비교 심사: A와 B
- LLM 심사자의 보정과 편향