개념: 쌍별 평가
evaluate()를 사용하여 평가자를 정의하고 쌍별 평가를 실행합니다. 마지막으로 LangSmith UI를 사용하여 쌍별 실험을 확인합니다.
사전 요구사항
- 아직 비교할 실험을 생성하지 않은 경우, 빠른 시작 또는 사용 방법 가이드를 확인하여 평가를 시작하세요.
- 이 가이드는
langsmithPython 버전>=0.2.0또는 JS 버전>=0.2.9가 필요합니다.
두 개 이상의 기존 실험에서
evaluate_comparative()를 사용할 수도 있습니다.evaluate() 비교 인수
가장 간단하게, evaluate / aevaluate 함수는 다음 인수를 받습니다:
| 인수 | 설명 |
|---|---|
target | 서로 평가하고자 하는 두 개의 기존 실험 목록입니다. uuid 또는 실험 이름이 될 수 있습니다. |
evaluators | 이 평가에 연결하려는 쌍별 평가자 목록입니다. 이를 정의하는 방법은 아래 섹션을 참조하세요. |
| 인수 | 설명 |
|---|---|
randomize_order / randomizeOrder | 각 평가에 대해 출력 순서를 무작위로 지정할지 여부를 나타내는 선택적 불리언 값입니다. 이는 프롬프트에서 위치 편향을 최소화하기 위한 전략입니다. 종종 LLM은 순서에 따라 응답 중 하나에 편향되는 경향이 있습니다. 이는 주로 프롬프트 엔지니어링을 통해 해결해야 하지만, 이것은 또 다른 선택적 완화 방법입니다. 기본값은 False입니다. |
experiment_prefix / experimentPrefix | 쌍별 실험 이름의 시작 부분에 붙일 접두사입니다. 기본값은 None입니다. |
description | 쌍별 실험에 대한 설명입니다. 기본값은 None입니다. |
max_concurrency / maxConcurrency | 실행할 최대 동시 평가 수입니다. 기본값은 5입니다. |
client | 사용할 LangSmith 클라이언트입니다. 기본값은 None입니다. |
metadata | 쌍별 실험에 첨부할 메타데이터입니다. 기본값은 None입니다. |
load_nested / loadNested | 실험에 대한 모든 하위 실행을 로드할지 여부입니다. False인 경우, 루트 추적만 평가자에 전달됩니다. 기본값은 False입니다. |
쌍별 평가자 정의
쌍별 평가자는 예상되는 시그니처를 가진 함수일 뿐입니다.평가자 인수
사용자 정의 평가자 함수는 특정한 인수 이름을 가져야 합니다. 다음 인수의 하위 집합을 받을 수 있습니다:inputs: dict: 데이터셋의 단일 예제에 해당하는 입력의 딕셔너리입니다.outputs: list[dict]: 주어진 입력에 대해 각 실험이 생성한 딕셔너리 출력의 두 항목 목록입니다.reference_outputs/referenceOutputs: dict: 사용 가능한 경우 예제와 연결된 참조 출력의 딕셔너리입니다.runs: list[Run]: 주어진 예제에 대해 두 실험이 생성한 전체 Run 객체의 두 항목 목록입니다. 각 실행에 대한 중간 단계나 메타데이터에 액세스해야 하는 경우 사용하세요.example: Example: 예제 입력, 출력(사용 가능한 경우), 메타데이터(사용 가능한 경우)를 포함한 전체 데이터셋 Example입니다.
inputs, outputs, reference_outputs / referenceOutputs만 필요합니다. runs와 example은 애플리케이션의 실제 입력 및 출력 외부의 추가 추적 또는 예제 메타데이터가 필요한 경우에만 유용합니다.
평가자 출력
사용자 정의 평가자는 다음 유형 중 하나를 반환해야 합니다: Python 및 JS/TS-
dict: 다음 키를 가진 딕셔너리:key, 로그될 피드백 키를 나타냅니다scores, 실행 ID에서 해당 실행의 점수로의 매핑입니다.comment, 문자열입니다. 모델 추론에 가장 일반적으로 사용됩니다.
list[int | float | bool]: 두 항목의 점수 목록입니다. 목록은runs/outputs평가자 인수와 동일한 순서를 가진다고 가정합니다. 평가자 함수 이름이 피드백 키로 사용됩니다.
pairwise_ 또는 ranked_ 접두사를 붙이는 것을 권장합니다.
쌍별 평가 실행
다음 예제는 두 AI 어시스턴트 응답 중 어느 것이 더 나은지 LLM에게 결정하도록 요청하는 프롬프트를 사용합니다. 구조화된 출력을 사용하여 AI의 응답(0, 1 또는 2)을 파싱합니다.아래 Python 예제에서는 LangChain Hub에서 이 구조화된 프롬프트를 가져와 LangChain 채팅 모델 래퍼와 함께 사용하고 있습니다.LangChain 사용은 완전히 선택 사항입니다. 이 점을 설명하기 위해, TypeScript 예제에서는 OpenAI SDK를 직접 사용합니다.
- Python:
langsmith>=0.2.0필요 - TypeScript:
langsmith>=0.2.9필요
쌍별 실험 확인
데이터셋 페이지에서 “Pairwise Experiments” 탭으로 이동하세요:


Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.