Skip to content

ClasCat® AI Research

クラスキャット – 生成 AI, AI エージェント, MCP

Menu
  • ホーム
    • ClassCat® AI Research ホーム
    • クラスキャット・ホーム
  • OpenAI API
    • OpenAI Python ライブラリ 1.x : 概要
    • OpenAI ブログ
      • GPT の紹介
      • GPT ストアの紹介
      • ChatGPT Team の紹介
    • OpenAI platform 1.x
      • Get Started : イントロダクション
      • Get Started : クイックスタート (Python)
      • Get Started : クイックスタート (Node.js)
      • Get Started : モデル
      • 機能 : 埋め込み
      • 機能 : 埋め込み (ユースケース)
      • ChatGPT : アクション – イントロダクション
      • ChatGPT : アクション – Getting started
      • ChatGPT : アクション – アクション認証
    • OpenAI ヘルプ : ChatGPT
      • ChatGPTとは何ですか?
      • ChatGPT は真実を語っていますか?
      • GPT の作成
      • GPT FAQ
      • GPT vs アシスタント
      • GPT ビルダー
    • OpenAI ヘルプ : ChatGPT > メモリ
      • FAQ
    • OpenAI ヘルプ : GPT ストア
      • 貴方の GPT をフィーチャーする
    • OpenAI Python ライブラリ 0.27 : 概要
    • OpenAI platform
      • Get Started : イントロダクション
      • Get Started : クイックスタート
      • Get Started : モデル
      • ガイド : GPT モデル
      • ガイド : 画像生成 (DALL·E)
      • ガイド : GPT-3.5 Turbo 対応 微調整
      • ガイド : 微調整 1.イントロダクション
      • ガイド : 微調整 2. データセットの準備 / ケーススタディ
      • ガイド : 埋め込み
      • ガイド : 音声テキスト変換
      • ガイド : モデレーション
      • ChatGPT プラグイン : イントロダクション
    • OpenAI Cookbook
      • 概要
      • API 使用方法 : レート制限の操作
      • API 使用方法 : tiktoken でトークンを数える方法
      • GPT : ChatGPT モデルへの入力をフォーマットする方法
      • GPT : 補完をストリームする方法
      • GPT : 大規模言語モデルを扱う方法
      • 埋め込み : 埋め込みの取得
      • GPT-3 の微調整 : 分類サンプルの微調整
      • DALL-E : DALL·E で 画像を生成して編集する方法
      • DALL·E と Segment Anything で動的マスクを作成する方法
      • Whisper プロンプティング・ガイド
  • Gemini API
    • Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
    • (2) マルチモーダル入力 / 日本語チャット
    • (3) 埋め込みの使用
    • (4) 高度なユースケース
    • クイックスタート with Node.js
    • クイックスタート with Dart or Flutter (1) 日本語動作確認
    • Gemma
      • 概要 (README)
      • Tutorials : サンプリング
      • Tutorials : KerasNLP による Getting Started
  • Keras 3
    • 新しいマルチバックエンド Keras
    • Keras 3 について
    • Getting Started : エンジニアのための Keras 入門
    • Google Colab 上のインストールと Stable Diffusion デモ
    • コンピュータビジョン – ゼロからの画像分類
    • コンピュータビジョン – 単純な MNIST convnet
    • コンピュータビジョン – EfficientNet を使用した微調整による画像分類
    • コンピュータビジョン – Vision Transformer による画像分類
    • コンピュータビジョン – 最新の MLPモデルによる画像分類
    • コンピュータビジョン – コンパクトな畳込み Transformer
    • Keras Core
      • Keras Core 0.1
        • 新しいマルチバックエンド Keras (README)
        • Keras for TensorFlow, JAX, & PyTorch
        • 開発者ガイド : Getting started with Keras Core
        • 開発者ガイド : 関数型 API
        • 開発者ガイド : シーケンシャル・モデル
        • 開発者ガイド : サブクラス化で新しい層とモデルを作成する
        • 開発者ガイド : 独自のコールバックを書く
      • Keras Core 0.1.1 & 0.1.2 : リリースノート
      • 開発者ガイド
      • Code examples
      • Keras Stable Diffusion
        • 概要
        • 基本的な使い方 (テキスト-to-画像 / 画像-to-画像変換)
        • 混合精度のパフォーマンス
        • インペインティングの簡易アプリケーション
        • (参考) KerasCV – Stable Diffusion を使用した高性能画像生成
  • TensorFlow
    • TF 2 : 初級チュートリアル
    • TF 2 : 上級チュートリアル
    • TF 2 : ガイド
    • TF 1 : チュートリアル
    • TF 1 : ガイド
  • その他
    • 🦜️🔗 LangChain ドキュメント / ユースケース
    • Stable Diffusion WebUI
      • Google Colab で Stable Diffusion WebUI 入門
      • HuggingFace モデル / VAE の導入
      • LoRA の利用
    • Diffusion Models / 拡散モデル
  • クラスキャット
    • 会社案内
    • お問合せ
    • Facebook
    • ClassCat® Blog
Menu

Auto ML : NNI Tutorials : チューナー (1) 組み込みチューナー

Posted on 03/01/2019 by Sales Information

Auto ML : NNI Tutorials : チューナー (1) 組み込みチューナー (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/01/2019

* 本ページは、NNI の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

  • https://nni.readthedocs.io/en/latest/tuners.html
  • https://nni.readthedocs.io/en/latest/Builtin_Tuner.html

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

NNI Tutorials : チューナー

NNI はパラメータ調整アルゴリズムをセットアップするアプローチを採用するための簡単な方法を提供します、それらをチューナーと呼びます。

チューナーは、特定のパラメータ/アーキテクチャ構成のパフォーマンスを評価するためにトライアルからメトリクスを受け取ります。

NNI では、チューナーを設定するために 2 つのアプローチをサポートします : 1 番目は nni sdk により提供される組み込みチューナーを直接的に使用します、2 番目は貴方自身でチューナーファイルをカスタマイズします。チューナー & アセッサーの機能を結合する Advisor もまた持ちます。

 

NNI Tutorials : 組み込みチューナー

NNI は組み込みチューナーとして最先端チューニングアルゴリズムを提供してそれらを使用することを容易にしています。下は現時点での NNI 組み込みチューナーの簡潔な要約です。

現在以下のアルゴリズムをサポートしています :

  • TPE
    TPE (Tree-structured Parzen Estimator, 木構造 Parzen 推定器) は SMBO (sequential model-based optimization, シーケンシャル・モデルベースの最適化) アプローチです。SMBO 法は計測履歴に基づきハイパーパラメータのパフォーマンスを見積もるためにモデルをシーケンシャルに構築し、それから続いてこのモデルに基づいてテストするために新しいパラメータを選択します。
    参照ペーパー

  • ランダム探索 (Random Search)
    ハイパーパラメータ最適化のためのランダム探索ではランダム探索が驚くほど単純で効果的であるかもしれないことを示します。ハイパーパラメータの事前分布について知識を持たないときにはベースラインとしてランダム探索を使用できることを提案します。
    参照ペーパー

  • 焼きなまし (Anneal)
    この単純なアニーリング・アルゴリズムは事前分布からサンプリングすることにより開始しますが、点からのサンプリングは時間とともに (観測される) 最善のものにどんどん近づいていく傾向があります。このアルゴリズムは応答曲面 (= response surface) の滑らかさを活用するランダム探索の単純なバリエーションです。annealing rate は adaptive ではありません。

  • Naive Evolution
    Naive Evolution は “Large-Scale Evolution of Image Classifiers” に由来します。それはランダムに探索空間上 population-based を初期化します。各世代 (= generation) について、それは次の世代を得るためにより良いものを選択してその上で何某かの変更 (= mutation) (e.g., ハイパーパラメータを変更する、一つの層を追加/除去する) を行ないます。Naive Evolution は動作するために多くのトライアルを要求しますが、新しい特徴を拡張することは非常に単純で容易です。
    参照ペーパー

  • SMAC
    SMAC は SMBO (Sequential Model-Based Optimization) に基づいています。カテゴリカル・パラメータを扱うために、それは最も卓越した以前に使用されたモデルクラス (ガウス確率過程モデル) を適合させてランダムフォレストのモデルクラスを SMBO に導入します。nni によりサポートされる SMAC は SMAC3 Github repo 上のラッパーです。注意してください、SMAC は nnictl パッケージコマンドによりインストールされる必要があります。
    参照ペーパー, Github Repo

  • バッチ・チューナー (Batch tuner)
    バッチ・チューナーはユーザにトライアルコードのために様々な configuration (i.e., ハイパーパラメータの選択) を単純に提供することを可能にします。総ての configuration を終了後、実験は完了します。バッチ・チューナーは探索空間 spec で型 (= type) choice をサポートするだけです。

  • グリッドサーチ
    グリッドサーチは searchspace で定義されたハイパーパラメータ空間の手動で指定されたサブセットを通してしらみつぶし探索 (= exhaustive searching) を遂行します。受け入れ可能な探索空間の型は choice, quniform, qloguniform だけであることに注意してください。quniform と qloguniform の数字 q は特別な意味を持ちます (探索空間 spec の spec とは異なります)。範囲 low と high から公平にサンプリングされる値の数を意味します。

  • Hyperband
    Hyperband は多くの configuration をできるかぎり調査するために限定されたリソースを利用しようとして最終結果を得るために有望なもの達を見出します。基本的なアイデアは多くの configuration を生成して有望な一つを見い出すために少数の STEPs の間それらを実行して、それから幾つかのより有望なものを選択するために更にそれらの有望なもの達を訓練します。
    参照ペーパー

  • Network Morphism
    Network Morphism は深層学習モデルのアーキテクチャを自動的に探索するための機能を提供します。総てのチャイルドネットワークはその親ネットワークから知識を継承して多様なネットワークのタイプに変形 (=morph) します、深さ、幅とスキップコネクションを含みます。次に、それは履歴アーキテクチャとメトリックペアを使用してチャイルドネットワークの値を推定します。それからそれは訓練するために最も有望なものを選択します。
    参照ペーパー

  • Metis チューナー
    Metis はそれがチューニング・パラメータになるとき次の恩恵を与えます : 多くのツールが最適な configuration を予測だけをする一方で、Metis は 2 つの出力を貴方に与えます : (a) 最適な configuration の現在の予測、そして (b) 次のトライアルのための提案です。それ以上の当て推量はありません。殆どのツールが訓練データセットがノイズのあるデータを持たないことを仮定する一方で、Metis は実際には特定のハイパーパラメータを再サンプリングする必要があるかを知らせます。
    参照ペーパー

 

組み込みチューナーの使用方法

NNI SDK により提供される組み込みチューナーの利用は config.yml ファイルで builtinTunerName と classArgs を宣言することを必要とします。このパートでは、推奨シナリオ (= suggested scenarios)、classArg 要件と各チューナーのサンプルについての詳細な使用方法を紹介します。

Note: 貴方の config.yml ファイルを書く時フォーマットに従ってください。SMAC のように、幾つかの組み込みチューナーは nnictl パッケージによりインストールされる必要があります。

 

組み込みチューナー名 : TPE

推奨シナリオ

TPE は、ブラックボックスな最適化として、様々なシナリオで使用することができて一般に良いパフォーマンスを示します。特に、制限された計算リソースを持ち少数のトライアルを試すことだけができるときです。巨大な数の実験から、TPE がランダム探索よりも遥かに良いことを見い出せました。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: TPE
  classArgs:
    optimize_mode: maximize

 

組み込みチューナー名 : Random

推奨シナリオ

ランダム探索は各トライアルがそれほど長くはかからず (e.g., 各トライアルがすぐに完了できる、あるいはアセッサーにより迅速に早期に停止される)、そして十分な計算リソースを持つときに提案されます。あるいは探索空間を一様に調査することを望むでしょう。ランダム探索は探索アルゴリズムのベースラインとして考えることができます。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: Random
  classArgs:
    optimize_mode: maximize

 

組み込みチューナー名 : Anneal

推奨シナリオ

アニールは各トライアルがそれほど長くはかからず、そして十分な計算リソースを持つときに提案されます (ランダム探索と殆ど同じです)。あるいは探索空間の変数がある事前分布からサンプリングできるでしょう。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: Anneal
  classArgs:
    optimize_mode: maximize

 

組み込みチューナー名 : Evolution

推奨シナリオ

その計算リソースの要件は比較的高いです。特に、局所的な最適条件にはまることを回避するためにそれは巨大な初期個体群 (= population) を必要とします。貴方のトライアルが短いかアセッサーを活用するのであれば、このチューナーは良い選択です。そして、貴方のトライアルコードが weight transfer をサポートする、つまり、トライアルは converged weights をその親から継承できるときにより提案されます。これは訓練進捗を大いにスピードアップできます。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: Evolution
  classArgs:
    optimize_mode: maximize

 

組み込みチューナー名 : SMAC

インストール

SMAC は最初の使用前に次のコマンドによりインストールされる必要があります。

nnictl package install --name=SMAC

 
推奨シナリオ

TPE と類似して、SMAC もまた様々なシナリオで試せるブラックボック・チューナーで、計算リソースが制限されているときに提案されます。それは離散的なハイパーパラメータのために最適化され、従って貴方のハイパーパラメータの多くが離散的であるときに提案されます。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: SMAC
  classArgs:
    optimize_mode: maximize

 

組み込みチューナー名 : BatchTuner

推奨シナリオ

試すことを望む configuration が決定すれば、それらを (choice を使用して) searchspace ファイルでリストしてそれらをバッチ・チューナーを使用して実行できます。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: BatchTuner

BatchTuner がサポートする探索空間は次のようなものであることに注意してください :

{
    "combine_params":
    {
        "_type" : "choice",
        "_value" : [{"optimizer": "Adam", "learning_rate": 0.00001},
                    {"optimizer": "Adam", "learning_rate": 0.0001},
                    {"optimizer": "Adam", "learning_rate": 0.001},
                    {"optimizer": "SGD", "learning_rate": 0.01}, 
                    {"optimizer": "SGD", "learning_rate": 0.005}, 
                    {"optimizer": "SGD", "learning_rate": 0.0002}]
    }
}

この探索空間ファイルは高位キー combine_params を含みます。探索空間の params の type は choice でなければなりませんそして値は総て combined-params 値を含みます。

 

組み込みチューナー名 : Grid Search

推奨シナリオ

受け入れ可能な探索空間の型は choice, quniform, qloguniform だけであることに注意してください。quniform と qloguniform の数字 q は特別な意味を持ちます (探索空間 spec の spec とは異なります)。範囲 low と high から公平にサンプリングされる値の数を意味します。

それは探索空間が小さいときに提案され、総ての探索空間をしらみつぶしに sweep することに適しています。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: GridSearch

 

組み込みチューナー名 : Hyperband

推奨シナリオ

それは制限された計算リソースを持ちながら比較的巨大な探索空間を持つときに提案されます。中間結果 (e.g. 精度) が良いまたは悪い最終結果 (e.g. 精度) をある程度反映できるシナリオで上手く動作します。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

  • R (int, optional, default = 60) – トライアルの割り当てられる最大 STEPs (ミニバッチかエポックの数であり得ます)。各トライアルはそれがどのくらい長く実行されるかを制御するために STEPS を使用するべきです。
  • eta (int, optional, default = 3) – (eta-1)/eta は破棄されるトライアルの割合です。

 
使用例 :

# config.yml
advisor:
  builtinAdvisorName: Hyperband
  classArgs:
    optimize_mode: maximize
    R: 60
    eta: 3

 

組み込みチューナー名 : NetworkMorphism

インストール

NetworkMorphism は pyTorch を必要としますので、ユーザはそれを最初にインストールするべきです。

 
推奨シナリオ

深層学習メソッドを貴方のタスク (貴方自身のデータセット) に適用することを望むがしかしネットワークをどのように選択して設計するかのアイデアを持たないことが提示されます。貴方自身のデータセットと貴方自身のデータ増強メソッドに fit させるために サンプル を変更します。バッチサイズ、学習率や optimizer を変更することもできます。良いネットワーク・アーキテクチャを見つけるための異なるタスクにも適します。今はこのチューナーはコンピュータビジョン・ドメインをサポートするだけです。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

  • task ((‘cv’), optional, default = ‘cv’) – 実験のドメイン、今のところは、このチューナーはコンピュータ・ビジョン (cv) ドメインをサポートするだけです。
  • input_width (int, optional, default = 32) – 入力画像幅
  • input_channel (int, optional, default = 3) – 入力画像チャネル
  • n_output_node (int, optional, default = 10) – クラス数

 
使用例 :

# config.yml
tuner:
  builtinTunerName: NetworkMorphism
    classArgs:
      optimize_mode: maximize
      task: cv
      input_width: 32
      input_channel: 3
      n_output_node: 10

 

組み込みチューナー名 : MetisTuner

探索空間の受け入れる型は choice, quniform, uniform と randint だけであることに注意してください。

 
インストール

Metis チューナーは sklearn を必要としますので、ユーザは最初にそれをインストールするべきです。ユーザはそれをインストールするために “pip3 install sklearn” を使用できるでしょう。

 
推奨シナリオ

TPE と SMAC に類似して、Metis はブラックボックス・チューナーです。貴方のシステムが各トライアルを終えるのに時間がかかるのであれば、Metis はランダム探索のような他のアプローチよりも好ましいでしょう。更に、Metis は続くトライアルのガイダンスを提供します。ユーザは精度のような最終結果を nni SDK を呼び出すことによりチューナーに送る必要があるだけです。

 
classArg の要件

  • optimize_mode (maximize または minimize, optional, default = maximize) –
    ‘maximize’ の場合、チューナーはより大きな expectation でハイパーパラメータ・セットを返します。
    ‘minimize’ の場合、チューナーはより小さな expectation でハイパーパラメータ・セットを返します。

 
使用例 :

# config.yml
tuner:
  builtinTunerName: MetisTuner
  classArgs:
    optimize_mode: maximize
 

以上






クラスキャット

最近の投稿

  • LangGraph on Colab : エージェント型 RAG
  • LangGraph : 例題 : エージェント型 RAG
  • LangGraph Platform : Get started : クイックスタート
  • LangGraph Platform : 概要
  • LangGraph : Prebuilt エージェント : ユーザインターフェイス

タグ

AutoGen (13) ClassCat Press Release (20) ClassCat TF/ONNX Hub (11) DGL 0.5 (14) Eager Execution (7) Edward (17) FLUX.1 (16) Gemini (20) HuggingFace Transformers 4.5 (10) HuggingFace Transformers 4.6 (7) HuggingFace Transformers 4.29 (9) Keras 2 Examples (98) Keras 2 Guide (16) Keras 3 (10) Keras Release Note (17) Kubeflow 1.0 (10) LangChain (45) LangGraph (22) MediaPipe 0.8 (11) Model Context Protocol (16) NNI 1.5 (16) OpenAI Agents SDK (8) OpenAI Cookbook (13) OpenAI platform (10) OpenAI platform 1.x (10) OpenAI ヘルプ (8) TensorFlow 2.0 Advanced Tutorials (33) TensorFlow 2.0 Advanced Tutorials (Alpha) (15) TensorFlow 2.0 Advanced Tutorials (Beta) (16) TensorFlow 2.0 Guide (10) TensorFlow 2.0 Guide (Alpha) (16) TensorFlow 2.0 Guide (Beta) (9) TensorFlow 2.0 Release Note (12) TensorFlow 2.0 Tutorials (20) TensorFlow 2.0 Tutorials (Alpha) (14) TensorFlow 2.0 Tutorials (Beta) (12) TensorFlow 2.4 Guide (24) TensorFlow Deploy (8) TensorFlow Get Started (7) TensorFlow Graphics (7) TensorFlow Probability (9) TensorFlow Programmer's Guide (22) TensorFlow Release Note (18) TensorFlow Tutorials (33) TF-Agents 0.4 (11)
2019年3月
月 火 水 木 金 土 日
 123
45678910
11121314151617
18192021222324
25262728293031
« 2月   4月 »
© 2025 ClasCat® AI Research | Powered by Minimalist Blog WordPress Theme