> 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/ja/xue-xi/neural-architecture-search.md).

# ニューラルアーキテクチャ探索

<figure><img src="/files/345b5aca4942c55a2b13f4fb3d5ecce2326ea778" 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）は、データセット上で数十種類のモデルアーキテクチャを自動的に学習し、速度対精度のトレードオフ曲線に沿って最適な विकल्पを提示する強力な新機能です。従来のモデル学習戦略よりも1モデルあたりのコストを抑えつつ、選択肢となる多数のモデルを生成します。

で説明されているように [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クレジット** - これは他の学習ジョブと同じ時間単価です。1回の実行で数十個の学習済みモデルが生成されるため、 *1モデルあたりの* コストは個別に学習するより低くなりますが、単一のNASジョブに必要な総クレジットは1回の微調整より高くなります。

目安となる典型的な範囲:

* 約2,500枚の画像を含む物体検出データセットでは、一般的に約18時間（約36クレジット）かかります。
* **インスタンスセグメンテーションNAS** は物体検出NASよりGPU負荷が高く、概ね1.5〜2倍長い実行時間を見込んでください。

Train UIでは、開始前に推定所要時間とクレジットコストが表示されます。推定が1日分の学習時間を超える場合は、ジョブ開始前に確認を求められます。

{% hint style="warning" %}
ワークスペースでflex billingが無効になっていて、含まれるクレジットが実行途中で尽きた場合、NASは自動的に停止します。含まれるクレジット残高に関係なく最後まで実行させたい場合は、開始前にflex billingを有効にしてください。
{% endhint %}

## NASとYOLO-NAS

{% hint style="info" %}
ここで説明している「Neural Architecture Search」エンジンは、 **YOLO-NAS**とは同じではありません。YOLOベースの単一アーキテクチャで、Roboflowのモデル一覧にも表示されます。NASを使うためにアップグレードした場合は、Trainページで **Neural Architecture Search** エンジンを選択していることを確認してください。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://docs.roboflow.com/deployment/self-hosted/self-hosted)で実行されます。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`）、 **Neural Architecture Search** エンジンを選択します。

<figure><img src="/files/94f1759ba4c2191b2de74647113cdeb9160baf4d" alt="Train tab engine selector with Neural Architecture Search highlighted."><figcaption><p>TrainタブでNeural Architecture Searchエンジンを選択します。</p></figcaption></figure>
{% endstep %}

{% step %}
**バックボーンを選択する**

複数のモデルバリアントがあるプロジェクトタイプ（例: 物体検出ではFast、Standard、Plus）では、続行する前にバックボーンを選択する必要があります。自分のユースケースに合うバリアントをクリックしてください。単一バリアントのプロジェクトタイプ（例: インスタンスセグメンテーション）では、これは自動的に選択されます。
{% endstep %}

{% step %}
**データセットのバージョンを選択または作成する**

既存のデータセットバージョンを選ぶか、新しいものを作成してください。いくつかのヒント:

* NAS学習では、データセットに拡張を追加することは推奨しません。
* 検証分割には少なくとも **15枚の画像**が必要です。NASが安定したパレートフロンティアを発見するには十分な検証データが必要で、15枚未満の検証画像ではAPIが学習要求を拒否します。

<figure><img src="/files/eca85107fb7ece30a37e4414080e04c89047d11d" alt="Dataset version selector for a NAS training run."><figcaption><p>NAS実行用のデータセットバージョンを選択または作成してください。</p></figcaption></figure>
{% endstep %}

{% step %}

#### バックボーンを選択する（物体検出のみ）

物体検出プロジェクトでは、次の3つのバックボーンから選べます:

* **Fast** - 最速の学習で、最も低レイテンシーなモデルを発見します。推論速度が最優先のCPUやエッジデプロイに最適です。
* **Standard** - バランスの取れた学習時間で、広いレイテンシー範囲にわたるモデルを発見します。良い速度/精度のトレードオフを求めるエッジやGPUデプロイに最適です。
* **Plus** - 最も高精度なモデルを発見します。レイテンシーより精度が重要なクラウドGPUデプロイに最適です。

インスタンスセグメンテーションプロジェクトでは単一のバックボーンを使用するため、この手順は省略されます。
{% endstep %}

{% step %}
**学習を開始する**

クリック **Start Training** して実行を開始します。

<figure><img src="/files/7df6d570d9db4977eb75e84a362641f6a680a273" alt="Start Training button on the NAS configuration page."><figcaption><p>設定ページからNAS実行を開始します。</p></figcaption></figure>
{% endstep %}
{% endstepper %}

## NASの結果ページを読む

<figure><img src="/files/345b5aca4942c55a2b13f4fb3d5ecce2326ea778" 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ビュー）について詳しくは、 [学習結果を表示](/models/ja/ping-si/training-results.md).

## NAS実行を停止する

NASジョブには2つのフェーズがあります - **学習** と **探索** - これらが同じジョブ内で連続して実行されます。停止方法は2つあります:

* **早期停止** （現在のフロンティアに満足している場合に推奨）。フェーズに応じて「Stop Training Early」または「Stop Mining」をクリックします。その時点までに探索されたモデルは保持され、デプロイできます。完了済みの作業に使われたクレジットは請求されます。詳しくは [学習ジョブを停止またはキャンセルする](/models/ja/xue-xi/cancel-a-training-job.md) をご覧ください。
* **キャンセル** （実行を完全に破棄したい場合）。「Cancel Training」をクリックします。重みは保存されませんが、ジョブの早い段階でキャンセルした場合はクレジットが返金されます。詳しくは [学習ジョブを停止またはキャンセルする](/models/ja/xue-xi/cancel-a-training-job.md).

{% hint style="info" %}
NAS実行は、モデルが収束したとき、つまり全ターゲットエポックが終了する前にピーク性能に達したときにも自動的に停止します。結果ページのバナーでそれが示されます。あなたが行う操作はありません。
{% endhint %}

## NASで発見されたモデルのデプロイ

NASで発見されたモデルは、他のRoboflowで学習したモデルと同様にデプロイできます。以下で実行できます:

* **Roboflow Serverless Hosted API** （以下のコード例を参照）。
* **専用デプロイメント** より高いスループットまたは予約済みキャパシティのために。
* **Workflows** と **Batch Processing** ビジョンパイプラインの構築と実行に。
* **Self-hosted** [**Roboflow Inference**](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 自分のハードウェア上で（Docker、エッジ、またはクラウド）。

### Roboflow InferenceでNASモデルをローカル実行する

インストールして起動する [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/inference-server/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**

この例では [axios](https://github.com/axios/axios) を使ってPOSTリクエストを実行するので、まず `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 %}
