# 빠른 시작

> 약 10분 만에 첫 최적화 실행을 시작합니다.

이 페이지는 약 10분 만에 첫 실행을 시작하는 방법을 보여 줍니다. 로그인하고, 작은 데이터셋을 업로드하고, 마법사의 네 단계를 채운 뒤 실행을 시작합니다. 예제는 지원 메시지를 라벨로 분류하는 프롬프트를 개선합니다.

## 시작하기 전에

다음이 필요합니다.

- Skynet 계정.
- CSV, JSON 또는 Excel 파일(`.csv`, `.json`, `.xlsx` 또는 `.xls`). 각 행이 하나의 케이스입니다.
- 하나 이상의 입력 열(예: `message`).
- 하나의 기대 출력 열(예: `label`).

> [!TIP]
> 최소 5개 행을 사용하세요. 쌍이 5개보다 적으면 Skynet은 테스트 세트를 따로 두지 않으므로, 최종 점수는 옵티마이저가 이미 사용한 케이스에서 나옵니다.

## 1. 로그인

Skynet에 로그인합니다. 그런 다음 `/submit`에서 제출 페이지를 엽니다.

> [!NOTE]
> 이 페이지는 **표준** 수준의 라벨을 사용합니다. **가이드** 수준은 더 간단한 라벨을 사용하고, 옵티마이저 단계를 건너뛰며, **Auto**를 자동으로 선택합니다. 수준은 설정에서 바꿀 수 있습니다.

## 2. 작업

첫 번째 단계는 **작업**입니다. 이 단계는 "무엇을 최적화하시겠어요?"라고 묻습니다.

1. **목표**에 좋은 결과가 무엇인지 적습니다. 쉬운 말로 적으세요. 예: "각 지원 메시지를 billing, bug, other 중 하나로 분류합니다."
2. 선택 사항: **배경**에 옵티마이저에 도움이 되는 맥락을 추가합니다.
3. **아티팩트 유형**에서 **프롬프트**를 선택합니다.
4. **시작 버전**에 현재 프롬프트를 붙여 넣습니다.

## 3. 입력

두 번째 단계는 **입력**입니다.

1. **CSV, JSON 또는 Excel 파일 업로드**를 선택하거나, 저장된 데이터셋을 쓰려면 **라이브러리에서 선택**을 선택합니다.
2. **데이터를 읽는 방식**에서 각 열에 역할을 지정합니다.
   - **입력**: 실행 코드가 이 열을 받습니다.
   - **출력**: 기댓값입니다. 메트릭이 이 열을 받습니다.
   - **건너뛰기**: Skynet이 이 열을 사용하지 않습니다.
3. 분할은 **추천 사용**을 유지합니다. 대부분의 데이터셋에서 분할은 학습 70%, 검증 15%, 테스트 15%입니다.

전체 규칙은 [데이터셋과 분할](/docs/ko/concepts/datasets)을 읽어 보세요.

## 4. 옵티마이저

세 번째 단계는 **옵티마이저**("옵티마이저, 모델, 예산")입니다.

- 옵티마이저는 **Auto**로 둡니다.
- **리플렉션 모델**을 선택합니다. 옵티마이저는 이 모델로 새 버전을 작성합니다. 이 모델은 필수입니다.
- 선택 사항: **작업 모델**을 선택합니다. 실행 코드가 이 모델을 사용합니다.
- **예산**에서 **최대 스코어러 실행 횟수**를 기본값 200으로 둡니다.

특정 엔진을 고르려면 [엔진](/docs/ko/concepts/engines)을 읽어 보세요.

## 5. 메트릭 및 실행

마지막 단계는 **메트릭 및 실행**("코드와 메트릭")입니다. 파일 두 개를 작성합니다.

```python tab="run.py"
from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input["message"])
```

```python tab="metric.py"
def score(input, output, expected=None):
    want = expected["label"].strip().lower()
    got = str(output).strip().lower()
    if got == want:
        return 1.0, {"feedback": "Correct label."}
    return 0.0, {"feedback": f"Expected '{want}', got '{got}'."}
```

`artifact`는 프롬프트의 현재 버전입니다. `input`에는 케이스 하나의 입력 열이 들어 있습니다. `expected`에는 출력 열이 열 이름을 키로 해서 들어 있습니다.

그런 다음 **계약 검사**에서 **검사**를 선택합니다. 검사는 샌드박스에서 샘플 케이스 3개로 코드와 메트릭을 실행합니다. 검사 항목은 다음과 같습니다.

| 검사                   | 실패 조건                                                              |
| ---------------------- | ---------------------------------------------------------------------- |
| 실행 코드 시그니처     | `run.py`가 `run(artifact, input)`을 정의하지 않음                      |
| 메트릭 시그니처        | `metric.py`가 `score(input, output, expected=None)`을 정의하지 않음    |
| 메트릭 모델            | 메트릭 모델을 사용할 수 없음                                           |
| 샘플에서 실행 코드     | 실행 코드가 샘플 케이스에서 오류를 발생시킴                            |
| 메트릭 반환값          | `score`가 유효한 점수와 피드백을 반환하지 않음                         |

> [!NOTE]
> 계약 검사를 통과한 후에만 실행을 시작할 수 있습니다.

## 6. 시작하고 지켜보기

요약 화면에 "실행 준비 완료"가 표시됩니다. 탭은 일반, 데이터, 모델, 예산, 보상입니다. 설정을 확인한 다음 최적화를 시작합니다.

실행을 지켜보려면 최적화 목록에서 실행을 엽니다. 점수와 우승 버전을 이해하려면 [결과 읽기](/docs/ko/guides/results)를 읽어 보세요.

## 다음 단계

- 더 나은 메트릭 작성하기: [지표와 채점기](/docs/ko/concepts/scorers).
- 아티팩트에 맞는 엔진 알아보기: [최적화의 작동 방식](/docs/ko/concepts/optimization).
- 실행 비용 알아보기: [예산과 결제](/docs/ko/concepts/billing).

---

Source: https://staging.skynetml.com/docs/ko/quickstart
