평가 모음 구성하기
평가 모음은 평가 대상 함수, 사례와 평가 함수(Evaluator)를 묶습니다. 실행 시 사례마다 대상 함수를 호출하고 연결한 평가 함수로 결과를 측정합니다.
대상 함수 선택
AIP Logic은 Evals 패널에서 모음을 만듭니다. 챗봇은 먼저 함수로 게시한 뒤 Chatbot Studio 왼쪽 Evaluation에서 만듭니다. 코드 함수는 Code Repositories > Code > Functions > Published에서 모음을 만들거나 엽니다.
같은 사례로 여러 구현을 비교하려면 AIP Evals에서 Add target function을 선택합니다. 각 대상은 서로 다른 입출력 시그니처를 가질 수 있고 평가 함수도 대상별로 구성합니다. 실행 시 포함할 대상을 고릅니다.
사례와 열 구성
Edit test case parameters에서 열과 자료형을 추가, 제거하거나 순서를 바꿉니다. 수동 사례와 객체 집합 기반 사례를 한 모음에 함께 넣을 수 있습니다.
Add test case로 이름, 입력과 기대값을 직접 지정합니다. AIP 별 아이콘은 입력에서 이름을 제안합니다. 수동 사례는 경계 조건이나 실제 데이터에 드문 상황을 정밀하게 구성할 때 적합합니다.
Add object set은 선택한 집합의 객체 하나를 사례 하나로 사용합니다. 집합과 사용할 속성을 선택하고 여러 집합을 추가할 수 있습니다. Edit object set configuration에서 기반 집합을 변경하거나 열 머리글에서 속성을 개별 편집합니다.
열에는 기반 객체, 그 속성, 링크로 연결된 객체 또는 객체 집합, 모든 행에 적용할 정적 값을 제공할 수 있습니다. 연결된 객체나 객체 집합의 속성을 직접 제공하는 기능은 Object Storage v2에서만 지원합니다.
평가 함수와 통과 목표
평가 함수가 없어도 여러 시나리오의 출력을 수동으로 검토할 수 있습니다. 자동 비교와 집계를 하려면 표 위 + Add에서 내장 또는 사용자 정의 평가 함수를 선택하고 추가합니다. 대상 함수 출력은 Actual value, 사례의 기대값은 Expected value에 매핑합니다.
불리언은 통과해야 하는 값을 지정합니다. 숫자는 maximize 또는 minimize 방향을 지정하고 선택적으로 임계값을 둡니다. maximize는 최소 기준, minimize는 최대 기준입니다. 예를 들어 점수가 최소 10이거나 오차가 최대 0.05여야 한다고 정합니다.
한 반복의 모든 지표가 목표를 충족해야 그 반복이 통과합니다. 여러 번 반복하는 사례는 모든 반복이 통과해야 전체 사례가 통과합니다.
내장 평가 함수
| 평가 함수 | 비교 조건 |
|---|---|
| Exact boolean match | 실제 불리언과 기대 불리언의 완전 일치. |
| Exact Boolean array match | 같은 불리언 원소 배열인지 비교하며 기본은 순서를 고려합니다. 순서 조건은 변경할 수 있습니다. |
| Exact string match | 기본은 대소문자와 공백을 포함한 완전 일치이며 조건을 조정할 수 있습니다. |
| Exact string array match | 기본은 순서, 대소문자와 공백을 고려하며 조건을 조정할 수 있습니다. |
| Regex match | 기대 정규표현식과 실제 문자열의 일치. |
| Levenshtein distance | 문자열을 같게 만드는 최소 단일 문자 삽입, 삭제 또는 치환 횟수. |
| String length | 문자열 길이가 기대 범위 안인지 비교. |
| Keyword checker | 지정 키워드 포함 여부. |
| Exact object match | 실제 객체와 기대 객체의 일치. |
| Object set contains | 실제 객체가 대상 집합의 객체 중 하나와 일치하는지 비교. |
| Object set size range | 객체 집합 크기가 범위 안인지 비교. |
| Integer range | 정수 값의 범위. 정수만 지원합니다. |
| Exact numeric match | integer, long, float, double, short의 완전 일치. |
| Exact numeric array match | 위 숫자형 배열의 원소 비교. 기본은 순서를 고려하며 변경할 수 있습니다. |
| Floating-point range | 숫자 값의 범위. 매개변수로 모든 숫자형을 지원합니다. |
| Temporal range | Date, Timestamp의 범위. |
| Generic exact match | 숫자형과 날짜/타임스탬프를 강제 변환하여 비교합니다. 객체와 객체 집합은 참조, 구조체와 맵은 순서 없는 키-값 쌍, 목록은 순서 있는 원소, 모델은 식별자와 매개변수로 비교합니다. 자료형 전용 평가 함수가 있으면 세부 설정과 타입 안전성을 위해 그 함수를 우선 사용합니다. |
| LLM-as-a-judge | 명확하고 검증 가능한 조건 문장을 모델이 판정하여 불리언을 반환합니다. 객체 locator, 객체 RID, 객체 집합, 모델 같은 참조형은 실제 값으로 받을 수 없습니다. 사용 가능한 평가 모델이 필요합니다. |
| ROUGE score | 생성 텍스트와 기대 텍스트의 표현 중첩을 precision, recall, f-measure로 측정합니다. 각 값은 0~1이며 높을수록 일치도가 높습니다. 요약이나 번역 비교에 사용할 수 있습니다. |
사용자 정의 평가 함수
Code Repositories나 AIP Logic에서 게시한 함수를 선택합니다. 지표로 불리언 또는 숫자를 하나 이상 반환해야 합니다. 여러 지표는 이 자료형들로 구성한 struct로 반환할 수 있습니다. 함께 반환한 문자열은 점수 대신 Debug outputs에 표시되어 판단 근거나 중간값을 조사하는 데 사용합니다.
블록 중간 결과는 중간 매개변수, 생성 및 수정 결과는 온톨로지 편집 평가를 사용합니다.