> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 상황별 정밀 득점자 그만큼`createContextPrecisionScorer()`함수는 검색된 컨텍스트 조각이 예상 출력을 생성하는 데 얼마나 적절하고 위치가 잘 잡혀 있는지 평가하는 채점자를 생성합니다. 그것은 사용한다**평균 평균 정밀도(MAP)**시퀀스의 앞부분에 관련 컨텍스트를 배치하는 시스템에 보상을 제공합니다. 다음과 같은 사용 사례에 특히 유용합니다. ## RAG 시스템 평가 다음과 같은 경우 RAG 파이프라인에서 검색된 컨텍스트를 평가하는 데 적합합니다. - Model 성능에 대한 컨텍스트 순서가 중요합니다. - 기본적인 관련성을 넘어서 검색 품질을 측정해야 합니다. - 초기 관련 컨텍스트가 이후 관련 컨텍스트보다 더 가치가 있습니다. ## 컨텍스트 창 최적화 다음에 대한 컨텍스트 선택을 최적화할 때 사용합니다. - 제한된 컨텍스트 창 - 토큰 예산 제약 - 다단계 추론 작업 ## 매개변수 **model** (`MastraModelConfig`): 컨텍스트 관련성 평가에 사용할 언어 Model입니다. **options** (`ContextPrecisionMetricOptions`): 채점기의 구성 옵션입니다. `context` 또는 `contextExtractor` 중 하나를 제공해야 합니다. 둘 다 제공하면 `contextExtractor`가 우선합니다. ## `.run()`보고 **score** (`number`): 0과 scale 사이의 평균 정밀도 점수입니다(기본값 0\~1). **reason** (`string`): 컨텍스트 정밀도 평가에 대한 사람이 읽기 쉬운 설명입니다. ## 채점 세부정보 ### 평균 평균 정밀도(MAP) 컨텍스트 정밀도는 \*\*평균 정밀도(Mean Average Precision)\*\*를 사용하여 관련성과 위치를 모두 평가합니다. 1. **맥락 평가**: 각 컨텍스트 조각은 예상 출력을 생성하기 위해 관련성 또는 관련성이 없는 것으로 분류됩니다. 2. **정밀 계산**: 위치의 각 관련 컨텍스트에 대해`i`, precision = `relevant_items_so_far / (i + 1)` 3. **평균 정밀도**: 모든 정밀도 값을 합산하여 전체 해당 항목으로 나눕니다. 4. **최종 점수**: 축척계수를 곱하고 소수점 이하 2자리로 반올림 ### 채점 공식 ```text MAP = (Σ Precision@k) / R Where: - Precision@k = (relevant items in positions 1...k) / k - R = total number of relevant items - Only calculated at positions where relevant items appear ``` ### 점수 해석 - **0.9-1.0**: 뛰어난 정밀도 - 시퀀스 초기에 관련된 모든 컨텍스트 - **0.7-0.8**: 좋은 정밀도 - 가장 관련성이 높은 컨텍스트가 잘 배치되어 있음 - **0.4-0.6**: 적당한 정밀도 - 관련 문맥과 관련 없는 문맥이 혼합되어 있음 - **0.1-0.3**: 정밀도가 낮음 - 관련 컨텍스트가 거의 없거나 위치가 잘못됨 - **0.0**: 관련 컨텍스트를 찾을 수 없습니다. ### 이유분석 이유 필드는 다음을 설명합니다. - 어떤 맥락 부분이 관련성/부적절하다고 간주되었는지 - 위치 지정이 MAP 계산에 미치는 영향 - 평가에 사용되는 특정 관련성 기준 ### 최적화 통찰력 결과를 사용하여 다음을 수행합니다. - **검색 개선**: 순위를 매기기 전에 관련 없는 컨텍스트를 필터링합니다. - **순위 최적화**: 관련 컨텍스트 표면을 조기에 확보합니다. - **청크 크기 조정**: 컨텍스트 세부정보와 관련성 정확성의 균형을 유지하세요. - **임베딩 평가**: 더 나은 검색을 위해 다양한 임베딩 Model을 테스트합니다. ### 계산 예 문맥:`[relevant, irrelevant, relevant, irrelevant]` - 위치 0: 관련성 → 정밀도 = 1/1 = 1.0 - 위치 1: 건너뛰기(관련 없음) - 위치 2: 관련성 → 정밀도 = 2/3 = 0.67 - 위치 3: 건너뛰기(관련 없음) MAP = (1.0 + 0.67) / 2 = 0.835 ≒**0.83** ## 득점자 구성 ### 동적 컨텍스트 추출 ```typescript const scorer = createContextPrecisionScorer({ model: 'openai/gpt-5.6-sol', options: { contextExtractor: (input, output) => { // Extract context dynamically based on the query const query = input?.inputMessages?.[0]?.content || '' // Example: Retrieve from a vector database const searchResults = vectorDB.search(query, { limit: 10 }) return searchResults.map(result => result.content) }, scale: 1, }, }) ``` ### 대규모 컨텍스트 평가 ```typescript const scorer = createContextPrecisionScorer({ model: 'openai/gpt-5.6-sol', options: { context: [ // Simulate retrieved documents from vector database 'Document 1: Highly relevant content...', 'Document 2: Somewhat related content...', 'Document 3: Tangentially related...', 'Document 4: Not relevant...', 'Document 5: Highly relevant content...', // ... up to dozens of context pieces ], }, }) ``` ## 예 다양한 쿼리에 대한 RAG 시스템 컨텍스트 검색 정밀도를 평가합니다. ```typescript import { runEvals } from '@mastra/core/evals' import { createContextPrecisionScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createContextPrecisionScorer({ model: 'openai/gpt-5.6-sol', options: { contextExtractor: (input, output) => { // Extract context from agent's retrieved documents return output.metadata?.retrievedContext || [] }, }, }) const result = await runEvals({ data: [ { input: 'How does photosynthesis work in plants?', }, { input: 'What are the mental and physical benefits of exercise?', }, ], scorers: [scorer], target: myAgent, onItemComplete: ({ scorerResults }) => { console.log({ score: scorerResults[scorer.id].score, reason: scorerResults[scorer.id].reason, }) }, }) console.log(result.scores) ``` `runEvals`에 관한 자세한 내용은 [runEvals 레퍼런스](https://mastra.zisheng.pro/ko/reference/evals/run-evals)를 참조하세요. 이 득점자를 Agent에 추가하려면 다음을 참조하세요.[Scorers overview](https://mastra.zisheng.pro/ko/docs/evals/overview) guide. ## 문맥 관련성과 비교 귀하의 필요에 맞는 채점자를 선택하십시오: | 사용 사례 | 컨텍스트 관련성 | 컨텍스트 정밀도 | | ----------- | ------------ | ---------------- | | **RAG 평가** | 사용 여부가 중요할 때 | 순위가 중요할 때 | | **컨텍스트 품질** | 세분화된 수준 | 이진 관련성 | | **누락 감지** | ✓ 누락을 식별함 | ✗ 평가하지 않음 | | **사용 추적** | ✓ 활용도를 추적함 | ✗ 고려하지 않음 | | **위치 민감도** | ✗ 위치와 무관함 | ✓ 앞쪽 배치에 가점을 부여함 | ## 관련된 - [답변 관련성 득점자](https://mastra.zisheng.pro/ko/reference/evals/answer-relevancy): 답변이 질문에 대한 답변인지 평가합니다. - [성실성 득점자](https://mastra.zisheng.pro/ko/reference/evals/faithfulness): 문맥에 따른 답변 근거성을 측정합니다. - [맞춤 채점자](https://mastra.zisheng.pro/ko/docs/evals/custom-scorers): 나만의 평가 지표 만들기