> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/models/ko/train/train-a-model.md).

# 모델 학습

## 소개

Roboflow 인터페이스에서 컴퓨터 비전 모델을 학습할 수 있습니다.

Roboflow는 두 가지 학습 옵션을 제공합니다:

* Roboflow Custom Train: 프로덕션용 모델을 만드는 데 적합한, 우리의 대표 학습 서비스입니다.
* [Neural Architecture Search](/models/ko/train/neural-architecture-search.md): 새로운 모델 아키텍처를 탐색하고 동시에 미세 조정할 수 있습니다.

또한, 이미지 주석의 첫 번째 배치를 승인하면, **Roboflow Instant Model** 이 모델은 자동으로 학습됩니다. 이 모델은 자동 라벨링이나 배포에 즉시 사용할 수 있습니다.

Roboflow에서 학습한 모델은 온디바이스 추론 서버인 Inference로 배포하거나, 클라우드에서 Workflows가 포함된 Serverless Hosted API, Workflows의 Batch Processing, 또는 모델 API 엔드포인트를 사용해 배포할 수 있습니다.

{% hint style="info" %}
자세한 내용은 [라이선스 가이드](https://roboflow.com/licensing) 를 읽어 Roboflow에서 학습한 모델의 라이선스 방식에 대해 자세히 알아보세요.
{% endhint %}

## 웹 앱

### 모델 학습

컴퓨터 비전 모델을 학습하려면 프로젝트 내비게이션에서 "Train"을 방문하세요.

<figure><img src="/files/e049c6d0f4f32d8102b57c5ffb6ea799e74b1c0c" alt=""><figcaption></figcaption></figure>

"Custom Training" 버튼을 클릭하여 학습 작업 구성을 시작하세요:

<figure><img src="/files/558fad11a59a91105155956235f5e1d9e46a4ffd" alt=""><figcaption></figcaption></figure>

#### Neural Architecture Search (NAS)

객체 탐지 및 인스턴스 세분화 프로젝트에서는 다음을 사용할 수 있습니다: **Neural Architecture Search (NAS)** 단일 모델 아키텍처를 선택하는 대신 사용할 수 있습니다. NAS는 여러 모델 구성을 자동으로 학습하고 평가한 다음, 정확도와 지연 시간 요구 사항에 따라 최적의 구성을 추천합니다.

NAS를 사용하려면 학습 엔진을 선택할 때 NAS 옵션을 선택하세요. NAS는 최소 15장의 검증 이미지를 필요로 합니다.

NAS 학습 차트에 대한 자세한 내용은 다음을 참조하세요: [학습 결과 보기](/models/ko/evaluate/training-results.md#nas-training-charts).

#### 모델 아키텍처 선택

다음으로 모델 아키텍처와 크기를 선택해야 합니다. 이는 모델을 학습하는 데 사용되는 머신러닝 기술입니다.

학습할 수 있는 모델 아키텍처는 설정한 프로젝트 유형에 따라 다릅니다. 다음을 참조하세요: [지원되는 모델 표](/models/ko/supported-models.md) 학습 호환성에 대한 자세한 내용은.

객체 탐지에서는 RF-DETR이 가장 높은 정확도를 제공합니다. 인스턴스 세분화에서는 RF-DETR Seg (Preview)가 가장 높은 정확도를 제공합니다. 키포인트 탐지용으로는 RF-DETR Keypoint (Preview)도 사용할 수 있습니다.

모델 크기는 선택한 모델의 아키텍처에 따라 달라집니다. 예를 들어, 최첨단 객체 탐지 모델인 RF-DETR은 Nano, Small, Medium, Base를 제공합니다. Medium, Large, Extra Large는 유료 사용자에게만 제공됩니다. 학습하는 [SAM3](/models/ko/supported-models/sam3.md) 모델은 다음이 포함된 유료 요금제에서 사용할 수 있습니다 [사용량 기반 청구](https://docs.roboflow.com/platform/billing-and-plans/credits). 그러면 SAM3가 아키텍처 목록에 "Request Feature" 버튼과 함께 표시되며, 이를 사용해 접근 권한을 요청할 수 있습니다.

프로젝트 유형에 사용할 수 있는 아키텍처를 선택한 다음 "Continue"를 클릭하세요:

<figure><img src="/files/0a6d136dcd83098581c2866532245acfba78df5c" alt=""><figcaption></figcaption></figure>

#### 체크포인트 선택

학습 옵션을 선택하면 체크포인트에서 학습할지 여부를 묻게 됩니다. 아래 탭에는 각 모델 유형의 구성 옵션이 표시됩니다.

{% tabs %}
{% tab title="객체 감지" %}
세 가지 옵션이 있습니다:

* **이전 체크포인트에서 학습:** 이미 작동하는 모델이 있고 이를 개선하고 싶을 때 적합합니다.
* **공개 체크포인트에서 학습:** 첫 번째 모델을 학습할 때, 또는 이전 학습 실행이 기대한 결과를 얻지 못했을 때 적합합니다.
* **랜덤 초기화에서 학습:** **고급 사용자만**, 이 옵션은 학습을 시작할 수 있는 빈 상태를 제공합니다. 대부분의 사용자는 이 옵션을 사용할 때 더 나쁜 결과를 얻습니다.
  {% endtab %}

{% tab title="분류/시맨틱 세분화" %}
분류 및 시맨틱 세분화 모델에는 하나의 체크포인트만 사용할 수 있습니다.
{% endtab %}
{% endtabs %}

<details>

<summary>어떤 학습 옵션을 선택해야 하나요?</summary>

새 객체 탐지 프로젝트에는 공개 체크포인트에서 학습하는 것을 권장합니다. 기본적으로 Microsoft COCO 데이터셋으로 학습된 모델에서 학습할 수 있도록 제공합니다. 분류 및 시맨틱 세분화의 경우 ImageNet에서의 학습만 지원합니다.

Universe에 호스팅된 프로젝트를 기반으로 한 체크포인트에서 학습할 수 있습니다(객체 탐지 전용). 그렇게 하려면 먼저 [Universe에서 프로젝트에 별표를 표시하세요](https://blog.roboflow.com/launch-universe-model-checkpoint/). 그러면 해당 프로젝트가 Roboflow 웹 애플리케이션에서 학습 체크포인트로 사용할 수 있게 됩니다.

또한 모델의 이전 버전을 기반으로 한 체크포인트에서 학습할 수 있습니다(객체 탐지, 인스턴스 세분화, 키포인트 탐지 전용). 이 방법은 더 빠른 학습 과정을 가능하게 합니다. 모델이 충분히 좋은 성능을 낼 경우에만 이전 체크포인트에서 학습하는 것을 권장합니다).

체크포인트에서 학습한다는 것은 다음을 사용한다는 의미입니다 [전이 학습](https://blog.roboflow.com/what-is-transfer-learning/). 전이 학습은 선택한 모델을 기반으로 모델 학습을 초기화합니다. 이는 학습 시간을 줄이고 학습 점수를 향상시키는 데 도움이 될 수 있습니다.

처음부터 학습한다는 것은 다음을 의미합니다 *아님* 전이 학습을 사용하는 것입니다. 이렇게 하면 모델 가중치의 초기값이 무작위로 설정된 상태에서 모델 학습이 시작됩니다.

</details>

#### 학습 작업 시작

학습할 체크포인트를 선택한 후 Start Training을 클릭하세요.

그러면 데이터셋이 압축(zip)되어 Roboflow 클라우드에서 학습할 수 있도록 준비됩니다.

학습이 시작되기 전에 학습 요약에 예상 소요 시간과 크레딧 비용이 표시됩니다:

<figure><img src="/files/c7a2546b589a488032385d2321d8c3e7fdb881d0" alt=""><figcaption></figcaption></figure>

데이터셋이 클수록, 그리고 데이터셋의 이미지 크기가 클수록 모델 학습에 더 오래 걸립니다.

학습 프로세스가 끝나면 이메일을 받게 됩니다. 대부분의 경우 24시간 이내입니다.

#### 가격

Roboflow에서의 학습 비용은 학습 작업 시간에 따라 책정됩니다. 자세한 내용은 저희의 [크레딧 페이지](https://www.roboflow.com/credits).

학생이나 연구자이며 진행 중인 프로젝트에 필요한 크레딧이 있다면, [추가 크레딧을 신청할 수 있습니다](https://roboflow.com/contribute).

### Agent에서 학습

동일한 학습 실행을 다음에서 시작할 수 있습니다 [Roboflow Agent](https://docs.roboflow.com/agents/agents/roboflow-agent) 채팅을 나가지 않고도 가능합니다. Agent에서 프로젝트 탭을 열고 "Train"을 클릭하세요. 학습 단계가 탭 안에 열립니다: 학습 엔진을 선택한 다음 아키텍처와 크기를 선택하고, 그다음 데이터셋 버전을 선택하세요.

선택한 버전이 아직 내보내기되지 않았다면 Agent가 먼저 내보내기를 준비하고 진행 상황을 표시합니다. 내보내기가 준비되면 학습이 시작됩니다. 프로젝트에 버전이 없으면 같은 화면에서 하나를 만들 수 있습니다.

이 방식으로 학습하려면 Train Model 및 List Versions 권한이 필요합니다.

### 버전에서 여러 모델 학습

동일한 데이터로 아키텍처나 크기를 비교하기 위해 동일한 데이터셋 버전에서 둘 이상의 모델을 학습할 수 있습니다. 각 학습은 독립적으로 실행되고 평가되며, 버전 페이지에는 모든 학습이 나열되어 있어 서로 전환할 수 있습니다.

## HTTP API

프로젝트에 생성된 데이터셋 버전이 있으면, 호스팅된 모델을 생성하는 학습 작업을 예약할 수 있습니다.

### 학습 작업 시작

데이터셋 버전에서 학습 실행을 시작하세요. 데이터셋 버전은 URL 경로의 일부입니다.

```url
POST https://api.roboflow.com/:workspace/:project/:version/train
```

**본문**

<table data-search="false"><thead><tr><th width="180">이름</th><th width="140">유형</th><th>설명</th><th data-type="checkbox">필수</th></tr></thead><tbody><tr><td><code>model_type</code></td><td>문자열</td><td>아키텍처 식별자(예: <code>rfdetr-nano</code>, <code>yolov8</code>, <code>yolov11</code>). 잘못된 값을 전달하면 전체 목록이 오류로 반환됩니다.</td><td>true</td></tr><tr><td><code>체크포인트</code></td><td>문자열</td><td>학습을 이어갈 선택적 체크포인트입니다.</td><td>false</td></tr><tr><td><code>에포크</code></td><td>정수</td><td>에포크 수입니다.</td><td>false</td></tr><tr><td><code>속도</code></td><td>문자열</td><td><code>빠름</code> (기본값) 또는 <code>정확함</code>. <code>정확함</code> 는 유료 기능입니다.</td><td>false</td></tr></tbody></table>

```bash
curl "https://api.roboflow.com/my-workspace/my-detector/3/train?api_key=$ROBOFLOW_API_KEY" \\
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"model_type": "rfdetr-base"}'
```

학습은 비동기적으로 실행됩니다. 응답은 작업이 완료되었음을 의미하는 것이 아니라 대기열에 추가되었음을 확인해 줍니다. 진행 상황을 확인하려면 다음을 폴링하세요 [학습 결과](/models/ko/evaluate/training-results.md) 또는 버전의 `model` 필드에 학습된 모델이 나타나는지 확인하세요.

요금제 제한은 웹 앱과 동일하게 적용됩니다. 요청한 아키텍처가 요금제에 포함되어 있지 않으면 요청은 다음을 반환합니다 `400` 이며 작업은 시작되지 않습니다: `nas_not_available_for_plan` 에 대한 [NAS](/models/ko/train/neural-architecture-search.md) 모델 유형, `sam3_not_available_for_plan` 에 대한 [SAM3](/models/ko/supported-models/sam3.md) 모델 유형.

호출하는 API 키에는 `trainingJob:create` 스코프.

## Python SDK

`Version.train()` Roboflow 플랫폼에서 학습을 예약합니다. 호출은 작업이 대기열에 들어가면 반환되며, 실제 학습은 비동기적으로 실행됩니다.

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace().project("my-detector")

# 아직 버전이 없다면 전처리와 증강이 포함된 버전을 만듭니다.
new_version = project.generate_version({
    "preprocessing": {
        "auto-orient": True,
        "resize": {"width": 640, "height": 640, "format": "늘려 맞춤"},
    },
    "augmentation": {},
})
version = project.version(new_version)

# 학습을 예약합니다.
model = version.train(
    model_type="rfdetr-nano",   # 잘못된 값을 전달하면 전체 목록이 오류로 반환됩니다
    checkpoint=None,             # 선택 사항: 이전 체크포인트에서 이어서 학습
    epochs=100,                  # 선택 사항: 기본값은 모델 유형에 따라 다릅니다
    plot_in_notebook=False,      # 학습 진행 그래프를 표시합니다(노트북 전용)
)
```

### 매개변수

* `model_type` (str) - 아키텍처 식별자. 일반적인 값: `rfdetr-nano`, `rfdetr-base`, `yolov8`, `yolov11`. 프로젝트 유형에 따라 다릅니다. 잘못된 값을 전달하면 전체 목록이 오류로 반환됩니다.
* `속도` (str, 선택 사항) - `"빠름"` (기본값) 또는 `"정확함"`. 정확한 학습은 유료 기능입니다.
* `체크포인트` (str, 선택 사항) - 이어서 학습할 체크포인트의 ID입니다.
* `에포크` (int, 선택 사항) - 에포크 수입니다. 기본값은 모델 유형에 따라 다릅니다.
* `plot_in_notebook` (bool, 기본값 `False`) - 학습 진행 상황을 인라인으로 표시합니다(노트북 전용).

### 학습 후

학습이 완료되면 `버전`의 `.model` 속성은 호스팅된 모델을 반환합니다:

```python
predictions = version.model.predict("photo.jpg", confidence=40, overlap=30).json()
```

다음을 참조하세요 [이미지에서 모델 실행](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api#python-sdk) 전체 추론 참고 자료를 확인하세요.

## CLI

명령줄에서 모델 학습을 시작할 수 있습니다. 학습은 Roboflow의 클라우드 인프라에서 실행됩니다.

### 명령

```bash
roboflow train start -p <project> -v <version> -t <model-type>
```

또는 다음 축약형을 사용할 수 있습니다( `start`):

```bash
roboflow train -p <project> -v <version> -t <model-type>
```

#### 옵션

| 플래그               | 설명                                 |
| ----------------- | ---------------------------------- |
| `-p`, `--project` | 프로젝트 ID(필수)                        |
| `-v`, `--version` | 버전 번호(필수)                          |
| `-t`, `--type`    | 모델 유형, 예: `yolov8n`, `rfdetr-nano` |
| `--checkpoint`    | 학습을 이어갈 체크포인트                      |
| `--speed`         | 학습 속도 프리셋                          |
| `--epochs`        | 학습 에포크 수                           |

### 예시

특정 모델 유형으로 학습을 시작하세요:

```bash
roboflow train start -p my-detector -v 3 -t yolov8n
```

체크포인트에서 이어서 학습:

```bash
roboflow train start -p my-detector -v 3 -t yolov8n --checkpoint my-checkpoint
```

### JSON 출력

```bash
roboflow train start -p my-detector -v 3 -t yolov8n --json
```

```json
{
  "status": "training_started",
  "project": "my-detector",
  "version": 3
}
```

## 다음 단계

* [학습 작업 중지 또는 취소](/models/ko/train/cancel-a-training-job.md).
* 모델 성능을 검토하고 학습 실행을 비교하세요. 다음을 참조하세요 [학습된 모델 평가](/models/ko/evaluate/evaluate-trained-models.md).
* 모델을 호스팅된 API로 배포하세요. 다음을 참조하세요 [서버리스 API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api).
