dspy.evaluate.answer_exact_match
dspy.evaluate.answer_exact_match
dspy.evaluate.answer_exact_match(example, pred, trace=None, frac=1.0)
example/prediction 쌍에 대해 정확 일치(exact match) 또는 F1 임계값 일치를 평가해요.
example.answer가 문자열이면 pred.answer를 그것과 비교해요. 리스트면 참조 중 아무거나와 비교하죠. frac >= 1.0(기본)이면 EM을 쓰고, 그 외엔 참조들 사이 최대 F1이 적어도 frac일 것을 요구해요.
| 이름 | 타입 | 설명 | 기본값 |
|---|---|---|---|
example |
answer 필드(str 또는 list[str])가 있는 dspy.Example 객체 |
필수 | |
pred |
answer 필드(str)가 있는 dspy.Prediction 객체 |
필수 | |
trace |
사용 안 함. 호환성용 예약 | None |
|
frac |
float |
[0.0, 1.0]의 임계값. 1.0이면 EM | 1.0 |
반환:
| 이름 | 타입 | 설명 |
|---|---|---|
bool |
일치 조건이 성립하면 True, 아니면 False |
예시:
import dspy
example = dspy.Example(answer=["Eiffel Tower", "Louvre"])
pred = dspy.Prediction(answer="The Eiffel Tower")
answer_exact_match(example, pred, frac=1.0) # equivalent to EM, True
answer_exact_match(example, pred, frac=0.5) # True
소스: dspy/evaluate/metrics.py
answer가 문자열이면 _answer_match(pred.answer, [example.answer], frac=frac)을, 리스트면 _answer_match(pred.answer, example.answer, frac=frac)을 호출해요. 그 외 타입이면 ValueError가 나요.
출처: 공식문서
더 알아보기 (Learn more)
- 메트릭과 평가 — 내장 문자열 메트릭이 공유하는
normalize_text정규화와 메트릭 계약. - 통합 평가 도구 dspy.Evaluate