> 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/roboflow/roboflow-ko/train/neural-architecture-search.md).

# 신경망 아키텍처 탐색

<figure><img src="/files/20c79eed4a4dfc30b91f0d77f06009a8926d8646" alt="NAS results page showing a Pareto frontier of trained models plotted across latency and accuracy."><figcaption><p>NAS 결과 페이지에는 속도-정확도 파레토 프런티어를 따라 학습된 모든 모델이 표시됩니다.</p></figcaption></figure>

Roboflow의 Neural Architecture Search(NAS)는 데이터셋에서 수십 개의 모델 아키텍처를 자동으로 학습하고, 속도-정확도 트레이드오프 곡선을 따라 최적의 옵션을 제시하는 강력한 새 기능으로, 기존 모델 학습 전략보다 모델당 비용이 더 낮은 상태에서 선택할 수 있는 많은 모델 옵션을 생성합니다.

앞서 설명한 바와 같이 [RF-DETR 논문에서](https://arxiv.org/html/2511.09554v2), 이 Neural Architecture Search 전략이 RF-DETR의 SOTA 모델 아키텍처를 만들어낸 것입니다. Roboflow는 이 전략을 모든 Roboflow 고객에게 제공하여 누구나 자신의 사용 사례에 맞는 SOTA 모델을 만들 수 있게 합니다.

Neural Architecture Search:

* 데이터 특성에 기반하여 사용 사례에 가장 적합한 모델 아키텍처를 식별합니다
* 해당 아키텍처를 데이터에 맞게 파인튜닝합니다
* 5,000개 이상의 구성을 테스트하여, 각 지연 시간 지점마다 정확도에 최적화된 10\~100개의 학습된 모델을 생성합니다.

{% embed url="<https://youtu.be/ZtGXkuo1qiE>" %}

## Neural Architecture Search를 사용할 때

프로덕션으로 보낼 모델을 선택할 때는 NAS를 실행하는 것이 거의 항상 가치가 있습니다. 파레토 프런티어의 모든 탐색된 모델은 데이터에 대해 완전히 학습되므로, 단순히 크기만 고르는 것이 아니라 특정 배포 대상에 가장 적합한 속도/정확도 트레이드오프를 고르게 됩니다. 실제 고객 실행에서 NAS는 같은 지연 시간의 단일 RF-DETR Medium 파인튜닝보다 꾸준히 더 나은 성능을 보이며, 종종 큰 차이로 앞섭니다.

다음과 같은 경우 NAS를 선택하세요:

* 주어진 지연 시간 예산에서 더 높은 정확도가 필요하거나, 주어진 정확도 목표에서 더 낮은 지연 시간이 필요할 때.
* 모델을 프로덕션용으로 준비하면서 속도/정확도 곡선을 따라 옵션을 비교하고 싶을 때.
* 그렇지 않으면 하이퍼파라미터 스윕을 수행하거나 여러 모델 크기를 연달아 학습해야 할 때.
* 최고 수준의 성능이 필요할 때.

다음의 경우 NAS는 과할 수 있습니다:

* 사용 사례가 단순하고 "충분히 괜찮은" 모델이면 충분할 때(예: 밝은 환경에서 사람 감지). 탐색 단계이거나 초기 단계 프로젝트에서는 보통 단일 파인튜닝이 적절합니다.
* 가장 큰 RF-DETR 체크포인트(예: RF-DETR XXL)만 원하고, 더 작은 트레이드오프 지점에는 관심이 없을 때.

## 비용, 크레딧, 플랜 이용 가능 여부

NAS는 사용량 기반 과금이 포함된 모든 유료 Roboflow 플랜에서 이용할 수 있습니다. Trial, Free, Public 플랜 사용자는 NAS에 접근할 수 없습니다. 사용량 기반 과금이 없는 기존 플랜은 NAS 실행을 시작하기 전에 이를 활성화하라는 안내를 받게 됩니다.

NAS 실행은 Roboflow의 표준 학습 요율로 청구됩니다 — **학습 시간 30분당 1크레딧** — 다른 모든 학습 작업과 동일한 시간당 요율입니다. 한 번의 실행으로 수십 개의 학습된 모델이 생성되므로, 비용은 *모델당* 개별적으로 각각 학습하는 것보다 낮지만, 단일 NAS 작업의 총 크레딧 소모는 단일 파인튜닝보다 높습니다.

계획할 때 참고할 일반적인 범위:

* 약 2,500장 규모의 object detection 데이터셋은 보통 약 18시간(\~36크레딧)이 걸립니다.
* **Instance Segmentation NAS** 는 object detection NAS보다 GPU 사용량이 더 높습니다. 실행 시간이 대략 1.5\~2배 더 길다고 예상하세요.

Train UI는 시작 전에 예상 소요 시간과 크레딧 비용을 보여줍니다. 예상치가 1일 이상의 학습 시간을 초과하면 작업을 시작하기 전에 확인을 요청받게 됩니다.

{% hint style="warning" %}
workspace에서 flex billing이 비활성화되어 있고 포함된 크레딧이 실행 도중 소진되면 NAS는 자동으로 중지됩니다. 포함된 크레딧 잔액과 관계없이 실행을 완료하려면 시작하기 전에 flex billing을 활성화하세요.
{% endhint %}

## NAS vs. YOLO-NAS

{% hint style="info" %}
여기서 설명하는 "Neural Architecture Search" 엔진은 다음과 같은 것과 동일하지 않습니다: **YOLO-NAS**, Roboflow 모델 목록에도 표시되는 단일 YOLO 기반 아키텍처입니다. NAS를 사용하기 위해 업그레이드한 경우, Train 페이지에서 **신경망 아키텍처 검색** 엔진을 선택하고 있는지 확인하세요 — YOLO-NAS 모델 아키텍처가 아닙니다.
{% endhint %}

Roboflow NAS는 RF-DETR을 사용해 더 강력한 기반에서 시작하며, 이를 통해 백본에 더 많은 세계 지식을 통합합니다. 이후 NAS는 아키텍처를 데이터셋에 맞게 조정합니다. 예를 들어 데이터가 디코더 레이어가 더 적은 모델에서 더 좋은 성능을 내면, NAS가 해당 아키텍처를 자동으로 찾아 제공할 수 있습니다.

## 지원되는 작업 및 알려진 제한 사항

NAS는 현재 다음을 지원합니다:

* 객체 탐지
* 인스턴스 세그멘테이션

기타 현재 제한 사항:

* 원시 가중치(`.pt`, `.onnx`, 등)는 타사 추론 서버에서 사용하기 위해 다운로드할 수 없습니다. NAS 모델은 Roboflow Serverless Hosted API, Dedicated Deployments, Workflows, Batch Processing, 그리고 self-hosted에서 실행됩니다 [Roboflow Inference](https://inference.roboflow.com/install/). NAS 가중치를 다운로드하여 실행하려면 Roboflow Inference를 권장합니다.
* NAS로 발견된 모델 가중치는 Roboflow의 [Platform Model License](https://roboflow.com/platform-model-license-1-0), 유효한 상태의 Roboflow 계정을 보유해야 합니다.

## NAS 학습 실행 시작

{% stepper %}
{% step %}
**Train 탭을 열고 Neural Architecture Search 엔진을 선택하세요**

프로젝트의 Train 탭을 여세요( `https://app.roboflow.com/YOUR_WORKSPACE/YOUR_PROJECT_NAME/train`)에서 다음을 선택하세요 **신경망 아키텍처 검색** 엔진.

<figure><img src="/files/83093586d53fcb7eb825ae7ec8f875e944ea2e51" alt="Train tab engine selector with Neural Architecture Search highlighted."><figcaption><p>Train 탭에서 Neural Architecture Search 엔진을 선택하세요.</p></figcaption></figure>
{% endstep %}

{% step %}
**백본 선택**

여러 모델 변형이 있는 프로젝트 유형(예: object detection은 Fast, Standard, Plus 제공)에서는 계속하기 전에 백본을 선택해야 합니다. 사용 사례에 맞는 변형을 클릭하세요. 단일 변형만 있는 프로젝트 유형(예: instance segmentation)에서는 이 항목이 자동으로 선택됩니다.
{% endstep %}

{% step %}
**데이터셋 버전을 선택하거나 생성하세요**

기존 데이터셋 버전을 선택하거나 새로 만드세요. 몇 가지 팁:

* NAS 학습용으로 데이터셋에 augmentation을 추가하는 것은 권장하지 않습니다.
* validation 분할에는 최소 **15장의 이미지**. NAS가 안정적인 파레토 프런티어를 발견하려면 충분한 validation 데이터가 필요합니다. API는 validation 이미지가 15장 미만인 학습 요청을 거부합니다.

<figure><img src="/files/1ad56ae60490f1e50979798860875905b8613733" alt="Dataset version selector for a NAS training run."><figcaption><p>NAS 실행을 위한 데이터셋 버전을 선택하거나 만드세요.</p></figcaption></figure>
{% endstep %}

{% step %}

#### 백본 선택(object detection 전용)

object detection 프로젝트에서는 세 가지 백본 옵션 중에서 선택할 수 있습니다:

* **Fast** - 가장 빠른 학습으로, 지연 시간이 가장 낮은 모델을 찾습니다. 추론 속도가 최우선인 CPU 또는 edge 배포에 가장 적합합니다.
* **표준** - 균형 잡힌 학습 시간으로, 넓은 지연 시간 범위의 모델을 찾습니다. 좋은 속도/정확도 트레이드오프를 원하는 edge 또는 GPU 배포에 가장 적합합니다.
* **Plus** - 가장 정확한 모델을 찾습니다. 지연 시간보다 정확도가 더 중요한 cloud GPU 배포에 가장 적합합니다.

Instance segmentation 프로젝트는 단일 백본을 사용하므로 이 단계를 건너뜁니다.
{% endstep %}

{% step %}
**학습 시작**

클릭하세요 **Start Training** 을 눌러 실행을 시작하세요.

<figure><img src="/files/e5f906568ac04eb54087ddfe982e8e9b8600a731" alt="Start Training button on the NAS configuration page."><figcaption><p>구성 페이지에서 NAS 실행을 시작하세요.</p></figcaption></figure>
{% endstep %}
{% endstepper %}

## NAS 결과 페이지 읽기

<figure><img src="/files/20c79eed4a4dfc30b91f0d77f06009a8926d8646" alt="NAS results page with purple dots representing trained models along the Pareto frontier."><figcaption><p>각 보라색 점은 배포 가능한 완전 학습된 모델입니다.</p></figcaption></figure>

결과 페이지에는 NAS가 데이터에서 탐색하고 학습한 모든 모델이 파레토 프런티어를 따라 표시됩니다. 이는 각 지연 시간 지점에서 발견된 최적의 모델입니다. 각 보라색 점은 배포할 수 있는 완전 학습된 모델입니다. 프런티어는 탐색이 진행되는 동안 실시간으로 업데이트되므로, 전체 실행이 완료되기 전에 후보를 평가하기 시작할 수 있습니다.

**메트릭 선택.** F1, mAP\@50, mAP\@50:95 사이를 전환하여 사용 사례에 중요한 메트릭 기준으로 프런티어를 평가하세요. 메트릭에 따라 프런티어에 표시되는 모델이 달라질 수 있으며, 이는 정상입니다. 프로덕션에서 모델을 판단하는 방식을 가장 잘 반영하는 메트릭을 선택한 다음, 목표 지연 시간에서 가장 좋은 모델을 고르세요. 대부분의 사용 사례에서는 F1을 권장합니다.

**모델에 별표 표시하기.** 사용하려는 모델에 별표를 표시하세요. 별표 표시된 모델은 Workflow 모델 선택기에 나타나고, 별표가 없는 모델은 결과 페이지에는 남아 있지만 선택기에서는 숨겨져 화면이 깔끔하게 유지됩니다. 원하는 만큼 많이 또는 적게 별표를 표시할 수 있으며, 별표 표시는 무료이고 되돌릴 수 있습니다.

**별표 표시된 모델 사용하기.** 다른 Roboflow 모델과 마찬가지로 Workflow의 모델 블록을 사용해 선택하세요.

실행 중 NAS가 표시하는 실시간 학습 차트(Training Progress Band 및 Epoch Snapshot 보기)에 대한 자세한 내용은 [학습 결과 보기](/roboflow/roboflow-ko/train/training-results.md).

## NAS 실행 중지하기

NAS 작업에는 두 단계가 있습니다 — **training** 및 **마이닝** — 이 두 단계는 동일한 작업에서 연달아 실행됩니다. 실행을 중지하는 방법은 두 가지입니다:

* **조기 중지** (현재 프런티어에 만족할 때 권장). 단계에 따라 "Stop Training Early" 또는 "Stop Mining"을 클릭하세요. 그 시점까지 탐색된 모델은 유지되며 배포할 수 있습니다. 완료된 작업에 사용된 크레딧은 청구됩니다. 자세한 내용은 [Early Stopping](/roboflow/roboflow-ko/train/stop-training-early.md) 에서 확인하세요.
* **취소** (실행을 완전히 중단하려는 경우). "Cancel Training"을 클릭하세요. 가중치는 저장되지 않지만, 작업 초기에 취소하면 크레딧이 환불됩니다. 자세한 내용은 [학습 작업 취소](/roboflow/roboflow-ko/train/cancel-a-training-job.md).

{% hint style="info" %}
모델이 수렴할 때, 즉 모든 목표 epoch가 끝나기 전에 최고 성능에 도달하면 NAS 실행도 자동으로 중지됩니다. 결과 페이지의 배너가 이 상황을 알립니다. 별도의 조치는 필요하지 않습니다.
{% endhint %}

## NAS로 발견된 모델 배포하기

NAS로 발견된 모델은 다른 Roboflow 학습 모델과 마찬가지로 배포할 수 있습니다. 다음 환경에서 실행할 수 있습니다:

* **Roboflow Serverless Hosted API** (아래 코드 예시를 참조하세요).
* **Dedicated Deployments** 더 높은 처리량 또는 예약 용량을 위해.
* **Workflows** 및 **Batch Processing** 비전 파이프라인을 구축하고 실행하기 위해.
* **Self-hosted** [**Roboflow Inference**](https://inference.roboflow.com/install/) 자체 하드웨어(Docker, edge 또는 cloud)에서.

### Roboflow Inference로 NAS 모델을 로컬에서 실행하기

설치하고 시작하세요 [Roboflow Inference](https://inference.roboflow.com/install/) 를 하드웨어에 설치한 다음 `inference-sdk` 에 `http://localhost:9001` 에 연결한 뒤, 다른 Roboflow 모델과 똑같이 NAS 모델 ID로 호출하세요. 아래 코드 예시는 호스팅된 엔드포인트와 로컬 Inference 서버 모두에서 작동합니다 — 단지 `api_url`.

### Roboflow Serverless Hosted API

{% tabs %}
{% tab title="Python (requests)" %}

```python
import base64

import requests

API_KEY = "roboflow-API-KEY"
MODEL_ID = "your-workspace/the-model-id-here"
IMAGE_PATH = "your_image_path.png"

with open(IMAGE_PATH, "rb") as f:
    image_data = base64.b64encode(f.read()).decode("utf-8")

response = requests.post(
    f"https://serverless.roboflow.com/{MODEL_ID}",
    params={"api_key": API_KEY},
    headers={"Content-Type": "application/x-www-form-urlencoded"},
    data=image_data,
)

print(response.json())
```

{% endtab %}

{% tab title="Python (inference-sdk)" %}
의존성을 설치하려면, `pip install inference-sdk`.

```python
from inference_sdk import InferenceHTTPClient

CLIENT = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key="roboflow-API-KEY"
)

result = CLIENT.infer("your_image_path.png", model_id="your-workspace/the-model-id-here")
print(result)
```

{% endtab %}

{% tab title="cURL" %}
**Linux 또는 MacOS**

다음이라는 로컬 파일에 대한 JSON 예측 결과를 가져오기 `your_image_path.png`:

```bash
base64 your_image_path.png | curl -d @- \\
"https://serverless.roboflow.com/your-workspace/the-model-id-here?api_key=roboflow-API-KEY"
```

URL을 통해 웹의 다른 곳에 호스팅된 이미지에서 추론할 때는 (잊지 말고 [URL 인코딩하세요](https://www.urlencoder.org/)):

```bash
curl -X POST "https://serverless.roboflow.com/your-workspace/the-model-id-here?\\
api_key=roboflow-API-KEY&\\
image=https%3A%2F%2Fi.imgur.com%2FPEEvqPN.png"
```

{% endtab %}

{% tab title="Javascript" %}
**Node.js**

이 예제에서는 POST 요청을 수행하기 위해 [axios](https://github.com/axios/axios) 를 사용하고 있으므로 먼저 다음을 실행하세요. `npm install axios` 의존성을 설치합니다.

**로컬 이미지에서 추론**

```javascript
const axios = require("axios");
const fs = require("fs");

const image = fs.readFileSync("your_image_path.png", {
    encoding: "base64"
});

axios({
    method: "POST",
    url: "https://serverless.roboflow.com/your-workspace/the-model-id-here",
    params: {
        api_key: "roboflow-API-KEY"
    },
    data: image,
    headers: {
        "Content-Type": "application/x-www-form-urlencoded"
    }
})
.then(function(response) {
    console.log(response.data);
})
.catch(function(error) {
    console.log(error.message);
});
```

**URL을 통해 웹의 다른 곳에 호스팅된 이미지에서 추론**

```javascript
const axios = require("axios");

axios({
    method: "POST",
    url: "https://serverless.roboflow.com/your-workspace/the-model-id-here",
    params: {
        api_key: "roboflow-API-KEY",
        image: "https://i.imgur.com/PEEvqPN.png"
    }
})
.then(function(response) {
    console.log(response.data);
})
.catch(function(error) {
    console.log(error.message);
});
```

{% endtab %}
{% endtabs %}
