평가기 관리

평가기 관리 (Manage evaluators)

LangSmith에서 워크스페이스 수준으로 평가기를 보고 관리할 수 있어요.

LangSmith의 평가기(Evaluators)워크스페이스 수준 리소스입니다. 단일 평가기를 여러 추적 프로젝트데이터셋에 연결할 수 있어서, 매번 다시 만들지 않고도 작업 전반에 일관된 평가 로직을 적용할 수 있습니다.

평가기 점수는 LangSmith Engine의 우선순위가 높은 신호예요. Engine은 분석할 항목을 선택할 때 낮은 점수의 트레이스를 가져오므로, 프로젝트에 평가기를 연결하면 Engine이 그곳에서 찾는 문제를 선명하게 해줍니다.

출처: 문서

본문

평가기 보기 (View evaluators)

LangSmith UI에서 왼쪽 사이드바의 평가기(Evaluators) 를 선택하면 워크스페이스의 모든 평가기를 볼 수 있습니다.

평가기 테이블에는 다음 열이 표시됩니다:

열 (Column) 설명
이름 (Name) 평가기 이름
유형 (Type) LLM as a judge 또는 Code. 복합 점수 평가기는 개별 추적 프로젝트와 데이터셋으로 범위가 한정되어 여기에 표시되지 않는다.
피드백 키 (Feedback Key) 평가기가 생성하는 피드백 키
프로젝트 및 데이터셋 (Projects & Datasets) 이 평가기가 연결된 추적 프로젝트와 데이터셋
평가기 트레이스 수 (이번 주) (Evaluator Trace Count (this week)) 지난 주에 이 평가기가 실행한 트레이스 수. 지출 추적이 활성화된 경우에만 표시; 코드 평가기 또는 연결된 규칙이 없는 평가기는 표시.
지출 (이번 주) (Spend (this week)) 지난 주 이 평가기의 예상 USD 지출. 지출 추적이 활성화된 경우에만 표시; 코드 평가기 또는 연결된 규칙이 없는 평가기는 표시.
지출 상태 (Spend Status) 평가기가 한도 미만(Under limits), 무제한(Unlimited), 또는 하나 이상의 구성된 지출 한도에 도달했는지 여부. 지출 추적이 활성화된 경우에만 표시; 코드 평가기는 표시.
생성자 (Created By) 평가기를 생성한 워크스페이스 멤버
업데이트 시각 (Updated At) 평가기가 마지막으로 수정된 시각
생성 시각 (Created At) 평가기가 생성된 시각

평가기 생성하기 (Create an evaluator)

LangSmith UI에서 또는 SDK로 프로그래밍 방식으로 평가기를 만들 수 있습니다. 어느 쪽으로든 생성된 평가기는 평가기(Evaluators) 테이블에 나타나는 워크스페이스 수준 리소스입니다.

UI에서 평가기 생성하기 (Create an evaluator in the UI)

  1. LangSmith UI에서 왼쪽 사이드바의 평가기(Evaluators) 를 선택합니다.
  2. + 평가기(+ Evaluator) 를 클릭해 새 평가기 패널을 엽니다.
  3. 패널에서 다음을 할 수 있습니다:
    • 처음부터 만들기 (Create from scratch): 새 LLM-as-a-Judge 또는 코드(Code) 평가기를 구축.

    • LangChain Tuned Evaluator 추가하기: LangChain이 관리하는 특수 심사자를 호환되는 추적 프로젝트에 연결 — 프롬프트, 모델, API 키를 구성하지 않아도 됨.

    • 템플릿에서 만들기 (Create from a template): 일반적인 평가 패턴을 위한 미리 만들어진 평가기(사전 구축 평가기라고도 함)에서 시작. 추천(Recommended) 섹션이 인기 템플릿을 먼저 표시하고, 그다음 다음 카테고리로 구성된 템플릿이 표시됩니다:

      카테고리 (Category) 설명
      보안 (Security) 유출, 주입, 적대적 입력 감지.
      안전 (Safety) 콘텐츠 안전성과 모더레이션 평가.
      품질 (Quality) 출력 품질과 정확도 측정.
      대화 (Conversation) 대화 품질과 사용자 경험 평가.
      경로 (Trajectory) 에이전트 도구 사용과 결정 경로 평가.
      이미지 평가 (Image Evaluations) 이미지 콘텐츠 품질과 안전성 평가.
      음성 평가 (Voice Evaluation) 음성 및 오디오 상호작용 품질 평가.

추적 프로젝트 또는 데이터셋에서 직접 평가기를 추가할 수도 있습니다. 해당 흐름에서는 워크스페이스에서 기존 평가기 연결 을 추가하거나, 복합(Composite) 평가기를 만들 수 있습니다. LLM-as-a-judge 온라인 평가기 설정실험에서 자동으로 평가기 실행을 참고하세요.

SDK로 평가기 생성하기 (Create an evaluator with the SDK)

LangSmith SDK를 사용해 평가기를 프로그래밍 방식으로 생성하세요. SDK는 PythonTypeScript에서 사용할 수 있으며, SDK로 생성된 평가기는 UI에서 생성된 것과 함께 평가기(Evaluators) 테이블에 나타납니다.

SDK를 통한 평가기 관리는 langsmith>=0.9.8(Python, PyPI) 또는 langsmith>=0.7.16(TypeScript, npm)이 필요합니다.

import asyncio

from langsmith import Client


async def main():
    client = Client()

    created = await client.evaluators.create(
        name="Correctness evaluator",
        type="code",
        code_evaluator={
            "code": "def perform_eval(run, example):\n    return {'score': 1}",
            "language": "python",
        },
    )
    print("Created evaluator:", created.evaluator.id)


asyncio.run(main())
import { Client } from "langsmith";

const client = new Client();

const created = await client.evaluators.create({
  name: "Correctness evaluator",
  type: "code",
  code_evaluator: {
    code: "def perform_eval(run, example):\n    return {'score': 1}",
    language: "python",
  },
});
console.log("Created evaluator:", created.evaluator?.id);

LLM-as-a-judge 평가기 생성 및 평가기 검색, 업데이트, 목록, 삭제는 SDK로 평가기 관리하기를 참고하세요.

평가기 상세 보기 (View evaluator details)

테이블에서 평가기를 클릭하면 상세 보기가 열립니다. 상세 보기에는 네 개의 탭이 있습니다:

  • 개요(Overview): 평가기의 피드백 구성과 프롬프트 또는 코드 정의.
  • 트레이스(Traces): 이 평가기가 모든 연결된 리소스에서 처리한 트레이스.
  • 로그(Logs): 이 평가기의 모든 연결된 리소스 실행 로그.
  • 프로젝트 및 데이터셋(Projects & Datasets): 이 평가기가 연결된 추적 프로젝트와 데이터셋, 각 연결의 주간 지출 및 한도.

평가기 편집하기 (Edit an evaluator)

평가기를 엽니다. 개요(Overview) 탭에서 평가기 편집(Edit evaluator) 아이콘을 클릭해 평가기 구성(Configure Evaluator) 패널을 엽니다. 평가기의 구성을 업데이트합니다. 저장(Save) 을 클릭합니다.

평가기는 공유되므로 변경 사항은 연결된 모든 추적 프로젝트와 데이터셋에 적용됩니다.

평가기 트레이스 보존 관리하기 (Manage evaluator trace retention)

온라인 평가기가 트레이스를 점수 매기면 트레이스에 피드백을 연결합니다. 이로 인해 평가기의 보존 설정에 따라 트레이스가 확장 보존(extended retention)으로 자동 업그레이드될 수 있습니다. 확장 보존은 트레이스를 더 오래 유지하지만 비용이 더 듭니다. 추적 프로젝트에서 온라인 평가기를 설정할 때 이 업그레이드를 옵트아웃하여 점수 매겨진 트레이스가 프로젝트의 기본 보존에 머물도록 할 수 있습니다.

이 제어는 프로젝트의 기본 보존기본 등급일 때만 사용할 수 있습니다. 프로젝트가 확장 보존을 기본으로 하는 경우(프로젝트 또는 워크스페이스 수준에서 설정), 평가기가 점수 매긴 트레이스는 해당 기본값을 따르며 옵션이 잠깁니다.

점수 매겨진 트레이스의 보존 확장을 옵트아웃하려면:

  1. 온라인 평가기를 생성하거나 편집할 때 소스를 데이터셋이 아닌 추적 프로젝트로 설정합니다.
  2. 평가기 구성 패널에서 고급(Advanced) 섹션을 펼칩니다.
  3. 트레이스 보존 확장(Extend trace retention) 을 해제합니다.

변경 사항은 평가기를 저장한 후 점수 매겨진 트레이스에 적용됩니다. 기존 점수 매겨진 트레이스는 현재 보존 등급을 유지합니다.

위에서 설명한 트레이스 보존 확장(Extend trace retention) 토글은 트레이스 수준 및 스레드 수준(다중 턴) 온라인 평가기 모두에 적용됩니다. 다중 턴 평가기에 대한 자세한 내용은 다중 턴 온라인 평가기 설정을 참고하세요.

확장 통계 포함하기 (Include extended stats)

실행 수준 평가기에서 확장 통계 포함(Include extended stats (feedback, costs, tokens)) 를 사용해 실행의 피드백 통계, 토큰 사용량 또는 비용 데이터를 평가합니다. feedback_stats 필드에는 피드백 통계가 포함되며, 각 피드백 키의 수와 평균이 포함됩니다. 이 옵션은 다중 턴(스레드 수준) 평가기에서는 사용할 수 없습니다.

LangSmith는 이 옵션이 활성화된 평가기에 대해 추가 데이터를 가져옵니다. 평가 로직이나 프롬프트에 이러한 필드가 필요할 때만 활성화하세요.

확장 통계를 포함하려면:

  1. 실행 수준 평가기를 생성하거나 편집할 때 평가기 구성 패널에서 고급(Advanced) 섹션을 펼칩니다.
  2. 확장 통계 포함(Include extended stats (feedback, costs, tokens)) 를 선택합니다.

확장 통계 접근하기 (Access extended stats)

코드 평가기feedback_stats, total_tokens, total_cost를 포함한 이러한 필드를 run 객체에서 받습니다. 또한 확장 통계를 활성화했는지와 관계없이 개별 피드백 레코드run["feedback"]에서 받습니다. LLM-as-a-judge 평가기의 경우 해당 run.* 필드를 프롬프트 변수에 매핑합니다. 예를 들어 {{correctness_average}}run.feedback_stats.correctness.avg에 매핑하면 프롬프트에 correctness 피드백 평균을 포함할 수 있습니다. 사용 가능한 run.* 필드에는 프롬프트 및 완성 토큰, 비용, 세부 필드도 포함됩니다. 전체 실행 데이터 스키마는 실행 데이터 형식을 참고하세요.

평가기 체이닝 (Chain evaluators)

확장 통계를 사용해 평가기를 체이닝할 수 있습니다. 여기서 코드 평가기는 다른 평가기가 이미 생성한 점수를 읽습니다. 첫 번째 평가기의 피드백 키로 두 번째 평가기를 필터링하고(예: has(feedback_key, "answer_usefulness")), 확장 통계를 활성화합니다. 필터 덕분에 점수가 생성된 후에만 코드 평가기가 실행되고, 확장 통계 덕분에 점수를 run["feedback_stats"]["answer_usefulness"]["avg"]에서 읽을 수 있습니다.

필터는 평가기를 생성한 평가기가 아닌 피드백 키와 일치하므로, 해당 키를 가진 모든 소스의 피드백이 코드 평가기를 트리거합니다. 필터 구성은 평가기를 트리거하는 실행에 필터 적용을 참고하세요.

평가기 삭제하기 (Delete an evaluator)

평가기가 추적 프로젝트 또는 데이터셋에 연결되어 있는 동안에는 삭제할 수 없습니다. 평가기를 삭제하려면:

  1. LangSmith UI에서 왼쪽 사이드바의 평가기(Evaluators) 를 선택합니다.
  2. 삭제할 평가기를 선택합니다.
  3. 프로젝트 및 데이터셋(Projects & Datasets) 탭을 엽니다. 각 연결된 추적 프로젝트와 데이터셋에 대해 행 오른쪽의 작업(Actions) 메뉴에서 분리(Detach) 를 선택합니다.
  4. 평가기(Evaluators) 페이지로 돌아가 페이지 상단의 삭제(Delete) 를 클릭합니다.

더 알아보기 (Learn more)