UI에서 데이터셋 생성·관리하기

UI에서 데이터셋 생성·관리하기

UI에서 데이터셋을 만들고 관리하는 다양한 방법을 알려드릴게요.

데이터셋은 일관된 데이터를 사용해 시간 경과에 따라 반복 가능한 평가를 실행하게 합니다. 데이터셋은 입력, 출력, 선택적으로 참조 출력을 저장하는 예제로 구성됩니다.

이 페이지는 생성관리의 다양한 방법을 설명합니다.

출처: 문서

본문

데이터셋 및 예제 생성

다음 섹션은 LangSmith에서 데이터셋과 예제를 만드는 다양한 방법을 설명합니다. 워크플로에 따라 예제를 수동으로 큐레이션하거나, 트레이싱에서 자동 캡처하거나, 파일을 가져오거나, 합성 데이터를 생성할 수 있습니다:

트레이싱 프로젝트에서 수동으로

데이터셋을 구성하는 일반적인 패턴은 애플리케이션의 주목할 만한 트레이스를 데이터셋 예제로 변환하는 것입니다. 이 접근 방식은 LangSmith에 트레이싱을 구성했어야 합니다.

확인: 데이터셋을 구축하는 기법은 가장 흥미로운 트레이스(예: 좋지 않은 사용자 피드백으로 태그된 트레이스)를 필터링해 데이터셋에 추가하는 것입니다. 트레이스 필터링 팁은 트레이스 필터링 가이드를 참고하세요.

트레이싱 프로젝트에서 데이터셋으로 수동으로 데이터를 추가하는 방법은 세 가지입니다. Tracing Projects로 이동해 프로젝트를 선택합니다.

  1. 실행 테이블에서 실행을 다중 선택합니다. Runs 탭에서 실행을 다중 선택하고, 페이지 하단의 Add to Dataset을 클릭합니다.
  2. Runs 탭에서 테이블에서 실행을 선택합니다. 개별 실행 세부정보 페이지에서 오른쪽 위의 Add to -> Dataset을 선택합니다. 실행 세부정보 페이지에서 데이터셋을 선택하면 변환이 적용되었는지 또는 스키마 검증이 실패했는지 알려주는 모달이 나타납니다. 그런 다음 선택적으로 데이터셋에 추가하기 전에 실행을 편집할 수 있습니다.
  3. 스레드 테이블에서 스레드를 다중 선택합니다. Threads 탭에서 스레드를 다중 선택하고, 페이지 하단의 Add to Dataset을 클릭합니다. 한 번의 작업으로 최대 100개 스레드를 추가할 수 있습니다. 스레드를 새 데이터셋으로 보내려면 데이터셋 선택기에서 New Dataset을 클릭합니다. 이 창은 처음부터 데이터셋을 만들 뿐 스키마 편집기를 제공하지 않습니다.

스레드를 데이터셋에 추가하는 것은 실행 추가와 다릅니다:

  • 스레드당 예제 하나: 각 스레드의 전체 대화가 하나의 예제로 저장됩니다. 스레드에서 실행을 추가하면 각 실행이 별도 예제가 됩니다.
  • 참조 출력 없음: 스레드 예제는 대화를 입력으로만 포함합니다. 참조 출력은 포함하지 않습니다.

트레이싱 프로젝트에서 자동으로

자동화 규칙을 사용해 지정된 조건을 충족할 때 트레이스를 데이터셋에 자동으로 추가합니다. 예를 들어 특정 사용 사례에 대해 태그로 표시된 트레이스나 낮은 피드백 점수가 있는 트레이스를 추가합니다.

규칙의 항목 유형은 무엇을 추가하는지 제어합니다. Runs 항목 유형의 규칙은 일치하는 각 트레이스에 대해 예제 하나를 추가합니다. Threads 항목 유형의 규칙은 대화가 유휴 상태가 될 때까지 기다렸다가 일치하는 각 스레드에 대해 예제 하나를 추가합니다.

어노테이션 큐의 예제에서

확인: 주제 전문가에게 의존해 의미 있는 데이터셋을 구축한다면 어노테이션 큐를 사용해 검토자에게 간소화된 뷰를 제공하세요. 인간 검토자는 데이터셋에 추가되기 전에 트레이스의 입력/출력/참조 출력을 선택적으로 수정할 수 있습니다.

어노테이션 큐의 실행 항목에 기본 데이터셋을 설정할 수 있습니다. 스레드 항목은 기본 데이터셋을 지원하지 않습니다. 실행 또는 스레드를 다른 데이터셋에 추가하려면 데이터셋 스위처를 사용하세요. 데이터셋을 선택한 뒤 Add to Dataset을 클릭하거나 D를 누릅니다. 실행 항목은 실행을 추가하고, 스레드 항목은 전체 대화를 하나의 예제로 추가합니다.

어노테이션 큐에서 실행에 대한 변경(메타데이터 포함)은 데이터셋에 복사됩니다. 스레드 항목은 편집할 수 없습니다. 트레이싱된 그대로 추가됩니다.

참고: 기본 데이터셋은 스레드 항목에 사용할 수 없습니다.

팁: 자동화 규칙을 사용해 특정 기준을 충족하는 실행 또는 스레드를 어노테이션 큐에 추가하세요.

Playground에서

Playground 페이지에서:

  1. Set up Evaluation을 선택합니다.
  2. 새 데이터셋을 시작한다면 +New를 클릭하거나 기존 데이터셋에서 선택합니다.

    참고: 중첩 키가 있는 데이터셋은 Playground에서 인라인 데이터셋 생성을 지원하지 않습니다. 중첩 키로 예제를 추가/편집하려면 데이터셋 페이지에서 편집해야 합니다.

  3. 예제를 편집합니다:
    • +Row를 사용해 데이터셋에 새 예제를 추가합니다.
    • 표 오른쪽의 드롭다운으로 예제를 삭제합니다.
    • 참조 없는 데이터셋을 만들고 있다면 열의 x 버튼으로 Reference Output 열을 제거합니다. 이 작업은 되돌릴 수 없습니다.

CSV 또는 JSONL 파일에서 데이터셋 가져오기

Datasets & Experiments 페이지에서 +New Dataset을 클릭한 다음 CSV 또는 JSONL 파일에서 기존 데이터셋을 Import합니다.

Datasets & Experiments 페이지에서 새 데이터셋 만들기

  1. 왼쪽 메뉴에서 Datasets & Experiments 페이지로 이동합니다.
  2. + New Dataset을 클릭합니다.
  3. New Dataset 페이지에서 Create from scratch 탭을 선택합니다.
  4. 데이터셋의 이름과 설명을 추가합니다.
  5. (선택) 데이터셋을 검증하기 위해 데이터셋 스키마를 만듭니다.
  6. Create를 클릭해 빈 데이터셋을 만듭니다.
  7. 인라인으로 예제를 추가하려면 데이터셋 페이지에서 Examples 탭으로 이동합니다. + Example을 클릭합니다.
  8. JSON으로 예제를 정의하고 Submit을 클릭합니다. 데이터셋 스플릿에 대한 자세한 내용은 데이터셋 스플릿 생성·관리를 참고하세요.

LLM이 생성한 합성 예제 추가

기존 예제와 데이터셋에 정의된 스키마가 있다면 + Example을 클릭할 때 Add AI-Generated Examples 옵션이 있습니다. 이는 LLM을 사용해 합성 예제를 만듭니다.

Generate examples에서 다음을 수행합니다:

  1. 창 오른쪽 위의 API Key를 클릭해 OpenAI API 키를 워크스페이스 시크릿으로 설정합니다. 워크스페이스에 이미 OpenAI API 키가 설정되어 있다면 이 단계를 건너뛸 수 있습니다.
  2. few-shot 예제를 선택합니다: Automatic 또는 Manual 참조 예제를 토글합니다. 데이터셋에서 수동으로 선택하거나 자동 선택 옵션을 사용할 수 있습니다.
  3. 생성할 합성 예제 수를 입력합니다.
  4. Generate를 클릭합니다.
  5. 예제가 Select generated examples 페이지에 나타납니다. 데이터셋에 추가할 예제를 선택하고, 확정 전에 편집할 수 있는 옵션이 있습니다. Save Examples를 클릭합니다.
  6. 각 예제는 지정한 데이터셋 스키마에 대해 검증되고 소스 메타데이터에서 synthetic으로 태그됩니다.

데이터셋 관리

데이터셋 스키마 만들기

LangSmith 데이터셋은 임의의 JSON 객체를 저장합니다. 특정 JSON 스키마를 준수하도록 데이터셋의 스키마를 정의할 것을 권장합니다(필수는 아님). 데이터셋 스키마는 표준 JSON schema로 정의되며, 메시지와 도구 같은 일반 프리미티브를 더 쉽게 타이핑하는 몇 가지 사전 구축 유형이 추가됩니다.

스키마의 특정 필드에는 + Transformations 옵션이 있습니다. 변환은 활성화되면 데이터셋에 추가할 때 예제를 업데이트하는 전처리 단계입니다. 예를 들어 convert to OpenAI messages 변환은 LangChain 메시지 같은 메시지형 객체를 OpenAI 메시지 형식으로 변환합니다.

사용 가능한 전체 변환 목록은 데이터셋 변환 레퍼런스를 참고하세요.

참고: LangChain ChatModels 또는 LangSmith OpenAI 래퍼를 사용한 OpenAI 호출에서 프로덕션 트레이스를 데이터셋에 수집할 계획이라면, 메시지와 도구를 어떤 모델로든 다운스트림 테스트에 사용할 수 있는 표준 openai 형식으로 변환하는 사전 구축 Chat Model 스키마를 제공합니다. 템플릿 설정을 사용 사례에 맞게 커스터마이즈할 수도 있습니다.

자세한 내용은 데이터셋 변환 레퍼런스를 참고하세요.

데이터셋 스플릿 생성·관리

스플릿을 언제, 왜 사용하는지에 대한 개요는 데이터셋 구성을 참고하세요.

UI에서 스플릿을 만들고 관리하려면:

  1. 데이터셋에서 예제를 선택합니다.
  2. Add to Split을 클릭합니다.
  3. 나타나는 팝업 메뉴에서 선택한 예제에 대한 스플릿을 선택·해제하거나 새 스플릿을 만들 수 있습니다.

예제 메타데이터 편집

예제에 메타데이터를 추가하려면:

  1. 예제를 클릭한 다음 팝오버 오른쪽 위의 Edit을 클릭합니다.
  2. 이 페이지에서 기존 메타데이터를 업데이트·삭제하거나 새 메타데이터를 추가합니다.

이를 사용해 태그나 버전 정보 같은 예제 정보를 저장할 수 있으며, 실험 결과를 분석할 때 그룹화하거나 SDK에서 list_examples를 호출할 때 필터링할 수 있습니다.

예제 필터링

스플릿, 메타데이터 키/값으로 예제를 필터링하거나 예제에 대해 전체 텍스트 검색을 수행할 수 있습니다. 이 필터링 옵션은 예제 테이블 왼쪽 위에서 사용할 수 있습니다:

  • Filter by split: 스플릿 선택 > 필터링할 스플릿 선택.
  • Filter by metadata: Filters > 드롭다운에서 Metadata 선택 > 필터링할 메타데이터 키와 값 선택.
  • Full-text search: Filters > 드롭다운에서 Full Text 선택 > 검색 기준 입력.

여러 필터를 추가할 수 있으며, 모든 필터를 충족하는 예제만 테이블에 표시됩니다.

더 알아보기