> 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: 프로덕션 준비가 된 모델을 만드는 데 이상적인, 우리의 대표 학습 서비스입니다.
* [신경망 아키텍처 탐색](/models/ko/train/neural-architecture-search.md): 새로운 모델 아키텍처를 발견하고 동시에 미세 조정할 수 있습니다.

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

Roboflow에서 학습된 모델은 온디바이스 추론 서버인 Inference로 배포하거나, Serverless Cloud 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>

#### 신경망 아키텍처 탐색(NAS)

객체 탐지 및 인스턴스 분할 프로젝트의 경우, **신경망 아키텍처 탐색(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(미리보기)가 가장 높은 정확도를 제공합니다. 키포인트 탐지의 경우 RF-DETR Keypoint(미리보기)도 사용할 수 있습니다.

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

프로젝트 유형에서 사용할 수 있는 아키텍처를 선택한 다음 "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>

#### 크레딧 상한 설정

하나의 학습 실행이 사용할 수 있는 크레딧 수를 제한할 수 있습니다. 학습 옵션의 "Credit Cap"에 숫자를 입력하거나, 상한 없이 실행하려면 비워 두세요. 상한을 사용하려면 다음이 포함된 요금제가 필요합니다. [사용량 기반 청구](https://docs.roboflow.com/platform/billing-and-plans/credits).

실행이 상한에 도달하면 Roboflow는 이를 중지하고 모델 가중치를 유지합니다. 이는 [조기 학습 중지](/models/ko/train/cancel-a-training-job.md)와 동일합니다. 작업이 실행되는 동안 학습은 상한 크레딧 중 얼마나 사용했는지 보여줍니다.

각 모델에는 입력 아래에 표시되는 최소 상한이 있습니다. 최소값은 여전히 모델을 생성할 수 있는 가장 짧은 실행의 비용이므로, 더 작은 상한은 거부됩니다. 비용 추정치보다 낮은 상한은 허용되지만, 실행이 완료되기 전에 중단될 가능성이 높습니다.

[신경망 아키텍처 탐색](/models/ko/train/neural-architecture-search.md) 는 학습과 아키텍처 탐색을 별도로 청구하므로 두 개의 상한이 있습니다: "Training Credit Cap"과 "Search Credit Cap". 하나를 설정하면 다른 단계에는 상한이 적용되지 않습니다.

상한이 있는 실행이 크레딧을 남기고 중지되면, 계속 진행할 수 있습니다. 새 실행은 상한 내에 남아 있는 크레딧을 사용할 수 있습니다. 남은 크레딧이 모델의 최소값보다 적다면, 대신 새 학습을 시작하세요.

#### 학습 작업 시작

학습할 체크포인트를 선택한 후 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/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>string</td><td>아키텍처 식별자(예: <code>rfdetr-nano</code>, <code>yolov8</code>, <code>yolov11</code>). 잘못된 값을 전달하면 전체 목록이 오류로 반환됩니다.</td><td>true</td></tr><tr><td><code>checkpoint</code></td><td>string</td><td>학습을 계속할 선택적 체크포인트입니다.</td><td>false</td></tr><tr><td><code>epochs</code></td><td>integer</td><td>에폭 수입니다.</td><td>false</td></tr><tr><td><code>speed</code></td><td>string</td><td><code>fast</code> (기본값) 또는 <code>accurate</code>. <code>accurate</code> 는 유료 기능입니다.</td><td>false</td></tr><tr><td><code>trainingCreditCap</code></td><td>number</td><td>학습이 중지되기 전에 사용할 수 있는 최대 크레딧 수입니다. 모델의 최소값 이상이어야 합니다.</td><td>false</td></tr><tr><td><code>nasMiningCreditCap</code></td><td>number</td><td>NAS 아키텍처 탐색이 사용할 수 있는 최대 크레딧 수입니다. NAS 모델 유형에만 유효합니다.</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) 버전의 `모델` 필드에서 학습된 모델이 나타나는지 확인하세요.

버전이 학습할 준비가 되지 않았다면, 요청은 `400` 와 함께 `코드` 와 `해결 방법` 필드를 반환합니다. 해결 방법에는 수정 사항의 이름이 포함되므로, 스크립트나 에이전트가 메시지를 읽을 필요가 없습니다: `재균형` (이미지는 충분하지만 잘못된 분할에 있음), `업로드` (데이터셋에 더 많은 이미지가 필요함), `주석 달기` (이미지에 레이블이 필요함), `재생성` (버전 생성에 실패했으므로 새 버전을 생성), 또는 `대기` (재균형 또는 생성이 아직 실행 중). 데이터와 관련 없는 오류, 예를 들어 요금제 제한에는 해결 방법이 없습니다. `해결 방법`.

요금제 제한은 웹 앱과 마찬가지로 여기에도 적용됩니다. 요금제에 요청한 아키텍처가 포함되어 있지 않으면, 요청은 `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) 모델 유형.

모델의 최소값보다 낮은 크레딧 상한, 또는 크레딧 기반으로 청구하지 않는 워크스페이스의 모든 상한은 `400` 를 코드 `invalid_credit_cap`와 함께 반환합니다. 오류 메시지에는 최소값이 표시됩니다.

호출한 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": "Stretch to"},
    },
    "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`. 프로젝트 유형에 따라 다릅니다. 잘못된 값을 전달하면 전체 목록이 오류로 반환됩니다.
* `speed` (str, optional) - `"fast"` (기본값) 또는 `"accurate"`. 정확한 학습은 유료 기능입니다.
* `checkpoint` (str, optional) - 재개할 체크포인트의 ID입니다.
* `epochs` (int, optional) - 에폭 수입니다. 기본값은 모델 유형에 따라 다릅니다.
* `plot_in_notebook` (bool, default `False`) - 학습 진행 상황을 인라인으로 표시합니다(노트북에서만).

### 학습 후

학습이 완료되면, `Version`의 `.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
없이)
```

#### 옵션

| 플래그               | 설명                                 |
| ----------------- | ---------------------------------- |
| `-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
}
```

## MCP 서버

AI 에이전트를 [MCP 서버](https://docs.roboflow.com/agents/mcp-server) 에 연결하면 다음 도구를 사용해 모델을 학습할 수 있습니다:

<table data-search="false"><thead><tr><th width="290">도구</th><th>설명</th></tr></thead><tbody><tr><td><code>trainings_describe_recipe</code></td><td>모델 유형의 조정 옵션을 설명하고 바로 제출 가능한 레시피를 반환합니다.</td></tr><tr><td><code>trainings_create</code></td><td>데이터셋 버전에서 학습 실행을 시작합니다.</td></tr><tr><td><code>trainings_get</code></td><td>학습 상태, 생성된 모델, 메트릭을 가져옵니다.</td></tr><tr><td><code>trainings_list</code></td><td>데이터셋 버전의 학습 실행을 나열합니다.</td></tr></tbody></table>

## 다음 단계

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