# 마법사로 실행 시작

> 작업부터 계약 검사까지 제출 마법사의 각 단계.

제출 마법사는 실행을 설정하고 시작합니다. 마법사에는 **작업**, **입력**, **옵티마이저**, **메트릭 및 실행**의 네 단계가 있습니다. 각 단계에는 화면이 하나 이상 있습니다. 이 가이드는 작업부터 계약 검사와 실행 시작까지 각 화면을 설명합니다.

> [!NOTE]
> 마법사는 경험 수준(**가이드**, **표준**, **전문가**)에 따라 더 많거나 더 적은 설정을 보여 줍니다. 기본값은 가이드입니다. 수준은 **설정 → 계정**의 **표시할 내용의 양**에서 바꿉니다. 가이드 수준에서는 일부 라벨이 더 간단합니다. 이 가이드는 표준 및 전문가 라벨을 사용하며, 가이드 라벨이 다를 때는 괄호 안에 적습니다.

## 1단계: 작업

### 무엇을 최적화하시겠어요?

**작업 인터뷰** 채팅에서 어시스턴트에게 작업을 설명합니다. 어시스턴트가 두 필드를 대신 작성합니다.

- **목표**(가이드: **목적**): 최적화된 아티팩트가 잘해야 하는 일.
- **배경**(가이드: **추가 맥락**): 맥락, 제약 조건, 좋은 결과의 모습.

두 필드 모두 편집할 수 있습니다. 어시스턴트는 내가 편집한 내용을 덮어쓰지 않습니다.

### 최적화할 대상

**아티팩트 유형**을 선택합니다.

| 아티팩트 유형 | 변경되는 부분                                 |
| ------------- | --------------------------------------------- |
| 프롬프트      | 언어 모델에 보내는 지시문                     |
| 코드          | 프로그램의 소스                               |
| DSPy 프로그램 | DSPy 모듈의 예측기 지시문                     |
| 텍스트        | 그 밖의 모든 텍스트(예: 문서나 템플릿)        |

그런 다음 **시작 버전**(가이드: **출발점**)을 제공합니다. 현재 버전을 붙여 넣거나 어시스턴트에게 초안을 작성하게 하세요.

### 리포지토리 최적화하기

리포지토리의 코드도 최적화할 수 있습니다. 다음 필드를 설정합니다.

- **저장소**: 리포지토리를 고르거나 `owner/name` 형식으로 입력합니다.
- **커밋**: 40자 SHA입니다. 브랜치의 최신 커밋을 사용하려면 비워 둡니다.
- **옵티마이저가 변경할 수 있는 경로**: 한 줄에 파일이나 폴더 하나씩 적습니다. 점(.)은 리포지토리 전체를 뜻합니다.
- **설정 명령**: 채점 전에 새로 체크아웃할 때마다 실행됩니다. 비워 두면 Skynet이 명령을 찾습니다.

## 2단계: 입력

### 데이터

실행에 사용할 케이스를 추가합니다. 다음을 할 수 있습니다.

- CSV, JSON 또는 Excel 파일을 업로드합니다.
- 라이브러리에서 데이터셋을 고릅니다.

[데이터셋과 분할](/docs/ko/concepts/datasets)과 [데이터셋 준비](/docs/ko/guides/datasets)를 읽어 보세요.

### 데이터를 읽는 방식

어시스턴트가 데이터를 읽고 사용 방법을 제안합니다. 어시스턴트의 선택을 확인하세요.

- 각 열을 입력, 기대 출력, 무시 중 하나로 표시합니다.
- 출력 열이 없으면 Skynet은 첫 번째 행을 입력 하나로 사용합니다.
- 학습, 검증, 테스트 세트로의 분할을 설정합니다. 분할의 합은 1이어야 합니다.

> [!WARNING]
> **입력** 단계에 문제가 있는 동안에는 이후 단계를 열 수 없습니다. 마법사가 보여 주는 문제를 고친 다음 계속하세요.

## 3단계: 옵티마이저

표준 수준에서 이 단계는 화면 하나입니다. 옵티마이저, 예산, 그리고 필요하면 모델을 보여 줍니다. 가이드와 전문가 수준에서는 **옵티마이저**, **모델**, **예산**의 세 화면이 있습니다.

### 옵티마이저

마법사는 작업과 입력에 맞는 옵티마이저만 나열합니다. **Auto**가 미리 선택되어 있습니다. 원하면 다른 옵티마이저를 선택하세요. [엔진](/docs/ko/concepts/engines)과 [최적화의 작동 방식](/docs/ko/concepts/optimization)을 읽어 보세요.

### 모델

- **작업 모델**: 실행 코드가 호출하는 모델입니다. 실행 코드가 모델을 호출하지 않으면 비워 둡니다. DSPy 프로그램에는 작업 모델이 반드시 있어야 합니다.
- **리플렉션 모델**: 점수와 피드백을 읽고 다음 후보를 작성하는 모델입니다. 코딩 에이전트 옵티마이저에서는 이 모델이 에이전트의 모델입니다.

### 예산

실행이 얼마나 오래 시도할 수 있는지, 얼마나 지출할 수 있는지 설정합니다.

- **최대 스코어러 실행 횟수**(가이드: **최대 시도 횟수**): Skynet이 채점하는 후보의 최대 수입니다. 일부 옵티마이저에는 최소 횟수가 필요합니다.
- **이 점수에서 중지**(가이드: **점수가 이 값에 도달하면 일찍 중지**): 버전이 이 점수에 도달하면 실행이 멈춥니다.
- **최대 반복 횟수**(가이드: **최대 라운드 수**): 이 설정을 지원하는 옵티마이저에서 표시됩니다.
- **지출 한도**: 실행이 쓸 수 있는 최대 금액입니다. 기본값은 $5이며, **시작에 필요한 금액**이 더 크면 그 금액입니다. **한도 없음**을 선택할 수도 있습니다.

한도나 잔액이 시작에 필요한 금액보다 적으면 마법사에서 계속할 수 없습니다. [예산과 결제](/docs/ko/concepts/billing)를 읽어 보세요.

## 4단계: 메트릭 및 실행

### 코드와 메트릭

파일 두 개를 작성합니다.

- `run.py`: 케이스 하나에서 아티팩트를 실행하는 실행 코드.
- `metric.py`: 출력을 채점하고 피드백을 작성하는 메트릭.

**코딩 에이전트**가 어떤 파일이든 대신 작성하고 수정할 수 있습니다. 에이전트는 코드를 검사하고 실패한 부분을 고칩니다. 추가 파일은 최대 20개까지 넣을 수 있습니다. [지표와 채점기](/docs/ko/concepts/scorers)를 읽어 보세요.

메트릭이 `llm()`을 호출하면 **메트릭 모델**을 설정하세요. 기본적으로 리플렉션 모델을 사용합니다.

### 계약 검사

**계약 검사**(가이드: **테스트 실행**)는 샌드박스에서 샘플 케이스 3개로 코드와 메트릭을 실행합니다. 다음을 검사합니다.

- 실행 코드 시그니처,
- 메트릭 시그니처,
- 메트릭 모델,
- 샘플에서의 실행 코드,
- 메트릭 반환값.

**검사**(가이드: **테스트하기**)를 선택합니다. 검사를 통과해야 실행을 시작할 수 있습니다. 통과한 뒤 코드나 설정을 바꾸면 검사를 다시 실행하세요.

> [!TIP]
> 각 샘플을 열어 입력, 출력, 피드백을 확인하세요. 좋은 피드백은 점수만 있을 때보다 옵티마이저가 활용할 정보를 더 많이 줍니다.

### 예약 실행

실행이 성공한 후 일정에 따라 최적화를 다시 실행할 수 있습니다. 기본값은 **꺼짐**입니다.

### 실행 준비 완료

마지막 화면은 다섯 탭(**일반**, **데이터**, **모델**, **예산**, **보상**)으로 요약을 보여 줍니다. 설정을 확인한 다음 최적화를 시작합니다.

요약에는 실행의 공개 범위도 표시됩니다. 새 실행은 기본적으로 공개입니다. 나중에 실행 페이지의 **공유 및 개인정보** 대화상자에서 바꿀 수 있습니다. [공유 및 게시](/docs/ko/guides/sharing)를 읽어 보세요.

> [!NOTE]
> 리포지토리 실행은 이 단계에 **코드와 메트릭** 화면과 요약만 있습니다. Skynet은 실행을 시작할 때 리포지토리를 기준으로 설정을 검사합니다.

## 시작한 후

실행 페이지가 열립니다. [실행](/docs/ko/concepts/runs)과 [결과 읽기](/docs/ko/guides/results)를 읽어 보세요.

---

Source: https://staging.skynetml.com/docs/ko/guides/submit
