> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# 데이터셋 버전

> 데이터셋은 바뀝니다. 시뮬레이션 결과를 견줄 수 있게 버전을 남깁니다

데이터셋은 자랍니다. 예시를 더하고, 주석을 고치고, 태그를 다듬죠. 시뮬레이션 결과가 특정 데이터셋 상태에 묶여 있으면, 데이터셋이 커져도 시간에 걸쳐 결과를 견줄 수 있습니다.

## 버전이 도는 방식

데이터셋에 "의미 있는" 변경이 생길 때마다 새 버전이 만들어집니다.

* 예시 추가.
* 예시 삭제.
* 주석 편집.
* 홀드아웃으로 분할.

메타데이터만 고치는 것(이름 변경, 태깅)은 버전을 만들지 않습니다.

버전에는 번호(v1, v2, …)가 붙고, 행위자, 시각, 변경 요약이 찍힙니다.

## 시뮬레이션을 버전에 묶기

시뮬레이션은 실행마다 쓴 데이터셋 버전을 기록합니다. 두 실행을 견줄 때는 이렇습니다.

* 같은 데이터셋 버전을 썼으면 결과를 바로 견줍니다.
* 다른 버전을 썼으면 Nora가 diff(더해진/빠진/바뀐 예시)를 보여줘, 무엇이 흘러갔는지 이해하게 합니다.

시뮬레이션을 특정 데이터셋 버전에 고정할 수도 있습니다(기본은 최신).

## 버전 이력

Datasets → **Versions** 탭입니다. 이렇게 보여줍니다.

* 버전마다 번호, 시각, 작성자.
* 변경 요약(예시 X개 추가, 주석 Y개 편집).
* 어느 시뮬레이션이 이 버전을 썼는지.
* 어느 개선이 이 버전에 걸렸는지.

버전을 누르면 그때 상태를 봅니다. 잘못된 편집이 들어갔으면 이전 버전으로 되돌립니다.

## 언제 새 버전, 언제 그 자리 편집

의미 있는 변경에는 자동으로 새 버전이 붙습니다. 더 세밀하게 정할 수도 있습니다.

* **새 버전 강제** 크게 손볼 참이라면, 늘 돌아갈 기준점이 있도록 지금 상태를 스냅샷합니다.
* **그 자리 편집(패치)** 이전 시뮬레이션을 무효로 만들면 안 되는 오타 수정이나 사소한 주석 다듬기. 아껴 쓰세요.

## Flow 버전과 교차 참조

개선 플로우가 매트릭스를 보여줍니다. Flow 버전 × 데이터셋 버전이고, 각 칸이 시뮬레이션 결과입니다. 이런 물음에 좋습니다.

* "지금 데이터셋에서는 어느 Flow 버전이 가장 높나?"
* "같은 Flow 버전 점수가 데이터셋이 커지면서 바뀌었나?"

두 축 다 중요합니다. 작은 데이터셋에서 잘 나오는 Flow가 더 크고 다양한 데이터셋에서는 고전할 수 있습니다.

## 불변성

시뮬레이션 결과는 바뀌지 않고, 특정 데이터셋 + Flow 버전에 묶입니다. 그래서 이렇습니다.

* 데이터셋 버전을 물려도 옛 결과는 그대로 유효합니다.
* 이력 비교를 믿을 수 있습니다. 숫자가 새 데이터로 다시 계산되지 않습니다.

## 버전 삭제

버전은 영구적입니다. 보관할 수는 있지만(기본 뷰에서 숨김) 지울 수는 없습니다. 그걸 쓴 시뮬레이션이 무효가 될 테니까요.

저장 공간이 걱정이면 버전을 **압축** 할 수 있습니다. 전체 상태는 마일스톤 버전에만 저장하고, 중간 버전은 diff로 저장합니다. 실행은 그대로 되고, 옛 중간 버전만 불러오는 데 살짝 더 걸립니다.

## 내보내기 / 들여오기

어느 버전이든 JSONL로 내보낼 수 있고(`nora datasets export <slug>@v3 > snapshot.jsonl`), 다른 워크스페이스로 들여올 수 있습니다. 환경 사이(스테이징 → 프로덕션)나 팀 사이에서 데이터셋을 나눌 때 좋습니다.
