Ultralytics YOLO ような機械学習モデルを特定のタスク用に微調整します。方法、アプリケーション、ベストプラクティスについてはこちらをご覧ください!
ファインチューニングは機械学習(ML)における基本的なプロセスであり、事前学習済みモデルを特定のタスクやデータセットに適応させることを含む。膨大なデータ、時間、計算能力を必要とするゼロからの学習ではなく、開発者は既に大規模データセット(例:ImageNet)から一般的な特徴を学習済みの「基盤モデル」を起点とする。 ImageNetといった膨大なデータセットから一般的な特徴を学習済みの「基盤モデル」を起点とします。この手法は転移学習の実践的応用であり、AIシステムがニッチな問題に対して、大幅に少ないリソースで高い性能を達成することを可能にします。
微調整の核心的な考え方は、モデルが既に獲得した「知識」を活用することにある。 ベースモデルは通常、エッジ、テクスチャ、形状といった基本的な視覚要素に対する強固な理解を備えている。 微調整プロセスでは、モデルのパラメータ(重み)をわずかに調整し、新たな専門的なデータのニュアンスに対応させる。
この調整は通常、低い学習率を用いた 勾配降下法によって達成される。 保守的な学習率は、初期の事前学習で習得された 有用な特徴が破壊されるのではなく 洗練されることを保証する。多くのコンピュータビジョン(CV)ワークフローでは、 エンジニアはバックボーンの初期層(普遍的な特徴detect )を固定し、 より深い層と最終的なクラス予測を行う検出ヘッドのみを更新することがある。
微調整は、汎用AIの能力と特定の業界要件との間のギャップを埋める。これにより汎用モデルが専門的なエキスパートへと進化する。
微調整と完全なトレーニングを区別することは、それぞれのアプローチをいつ使用すべきかを理解するのに役立つ。
現代のフレームワークはこのプロセスを容易にします。例えば、 Ultralytics データセット管理とクラウドトレーニングを 自動的に処理することでワークフローを簡素化します。 ただし、開発者はPythonを使用してローカルでモデルを微調整することも可能です。
以下の例は、事前学習済みモデルを微調整する方法を示しています。
YOLO26 カスタムデータセットでモデルを学習させます。注意:読み込むのは
yolo26n.pt (事前学習済み重み)ではなく簡略化された設定ファイルを使用することで、ライブラリに転移学習を開始するよう指示する。
from ultralytics import YOLO
# Load a pre-trained YOLO26 model (n=nano size)
# This automatically loads weights trained on COCO
model = YOLO("yolo26n.pt")
# Fine-tune the model on a custom dataset (e.g., 'coco8.yaml')
# The 'epochs' argument determines how many passes over the data occur
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# The model is now fine-tuned and ready for specific inference tasks
最良の結果を得るには、新規データセットの品質が最も重要です。データ拡張ツールを使用することで、画像の回転・反転・輝度調整により小規模データセットを人工的に拡張し、過学習を防止できます。さらに、検証損失 や平均精度(mAP)などの指標を監視することで、モデルが見たことのないデータに対しても良好な汎化性能を発揮することを保証します。
複雑なワークフローを管理する方にとって、 MLOps戦略や実験追跡ツールの活用は、 異なる微調整された反復処理に対するバージョン管理を維持するのに役立ちます。 物体検出であれインスタンスセグメンテーションであれ、 効果的なAIソリューションを展開する業界標準として、 微調整は依然として不可欠な手法です。