コンテンツにスキップ

設定リファレンス

注意: このAPIはプレビュー版であり、変更される可能性があります。

モデルがモデルビルダーで生成された場合、genai_config.jsonという名前の設定ファイルが自動的に生成されます。独自のモデルを提供する場合、以下の例をコピーしてシナリオに合わせて変更できます。

以下は、デコーダーのみのスタイルのモデルのgenai_config.jsonの例です。

{
"model": {
"bos_token_id": 199999,
"context_length": 131072,
"decoder": {
"session_options": {
"log_id": "onnxruntime-genai",
"provider_options": []
},
"filename": "model.onnx",
"head_size": 128,
"hidden_size": 3072,
"inputs": {
"input_ids": "input_ids",
"attention_mask": "attention_mask",
"past_key_names": "past_key_values.%d.key",
"past_value_names": "past_key_values.%d.value"
},
"outputs": {
"logits": "logits",
"present_key_names": "present.%d.key",
"present_value_names": "present.%d.value"
},
"num_attention_heads": 24,
"num_hidden_layers": 32,
"num_key_value_heads": 8
},
"eos_token_id": [
200020,
199999
],
"pad_token_id": 199999,
"type": "phi3",
"vocab_size": 200064
},
"search": {
"diversity_penalty": 0.0,
"do_sample": false,
"early_stopping": true,
"length_penalty": 1.0,
"max_length": 131072,
"min_length": 0,
"no_repeat_ngram_size": 0,
"num_beams": 1,
"num_return_sequences": 1,
"past_present_share_buffer": true,
"repetition_penalty": 1.0,
"temperature": 1.0,
"top_k": 1,
"top_p": 1.0
}
}

設定ファイルは、modelsearchの2つの主要なセクションを持つJSONオブジェクトとして構成されています。


トップレベルの設定オブジェクト。

  • config_path: (文字列, 内部) 設定ディレクトリへのパス(JSONには含まれません)。

  • model: (オブジェクト) モデルアーキテクチャとONNXモデル設定。

  • search: (オブジェクト) 生成/検索パラメータ。


モデルアーキテクチャ、ファイル、トークン化について説明します。

  • type: (文字列) モデルのタイプ。

    デコーダーのみのLLMの場合、このタイプは「decoder」、または以下の特定のタイプのいずれかになります。

    • chatglm
    • gemma
    • gemma2
    • gemma3_text
    • granite
    • llama
    • mistral
    • nemotron
    • olmo
    • phi
    • phimoe
    • phi3
    • phi3small
    • qwen2
    • qwen3

    モデルのパイプラインに分割されたデコーダーのみのLLMの場合は、「decoder-pipeline」を使用します。

    エンコーダー-デコーダーモデルの場合:

    • whisper
    • marian-ssru

    マルチモーダルモデルタイプの場合:

    • phi3v
    • phi4mm
    • gemma3
  • pad_token_id: (整数) パディングトークンのID。

  • eos_token_id: (整数または整数の配列) シーケンス終了トークンのID。

  • bos_token_id: (整数) シーケンス開始トークンのID。

  • sep_token_id: (整数, オプション) 分離トークンのID。

  • decoder_start_token_id: (整数, オプション) デコーダー開始トークンのID(エンコーダー-デコーダーモデル用)。

  • vocab_size: (整数) 語彙のサイズ。

  • context_length: (整数) モデルが処理できるシーケンスの最大長。コンテキスト長には、入力トークン(モデルへの入力であるプロンプト)と出力トークン(モデルによって生成される応答)が含まれます。これはモデルのプロパティです。

  • encoder: (オブジェクト, オプション) Whisperのようなモデル用。エンコーダーを参照してください。

  • embedding: (オブジェクト, オプション) 埋め込みサブモジュールを持つモデル用。埋め込みを参照してください。

  • vision: (オブジェクト, オプション) ビジョンサブモジュールを持つモデル用。ビジョンを参照してください。

  • speech: (オブジェクト, オプション) スピーチサブモジュールを持つモデル用。スピーチを参照してください。

  • decoder: (オブジェクト) デコーダーONNXモデルと設定。デコーダーを参照してください。


  • filename: (文字列) エンコーダーONNXファイルへのパス。

  • hidden_size: (整数) エンコーダーの隠れ層のサイズ。

  • num_key_value_heads: (整数) キー-値ヘッドの数。

  • num_hidden_layers: (整数) 隠れ層の数。

  • head_size: (整数) 各アテンションヘッドのサイズ。

  • inputs: (オブジェクト)

    • input_features: (文字列) 入力特徴テンソルの名前。
    • input_ids: (文字列) 入力IDテンソルの名前。
    • attention_mask: (文字列) アテンションマスクテンソルの名前。
  • outputs: (オブジェクト)

    • encoder_outputs: (文字列) エンコーダー出力テンソルの名前。

  • filename: (文字列) 埋め込みONNXファイルへのパス。

  • inputs: (オブジェクト)

    • input_ids: (文字列) 入力IDテンソルの名前。
    • image_features: (文字列) 画像特徴テンソルの名前。
    • audio_features: (文字列) 音声特徴テンソルの名前。
  • outputs: (オブジェクト)

    • embeddings: (文字列) 埋め込み出力テンソルの名前。

  • filename: (文字列) ビジョンONNXファイルへのパス。

  • config_filename: (文字列, オプション) ビジョンプロセッサ設定ファイルへのパス。

  • adapter_filename: (文字列, オプション) ビジョンアダプターファイルへのパス。

  • inputs: (オブジェクト)

    • pixel_values: (文字列) ピクセル値テンソルの名前。
    • image_sizes: (文字列) 画像サイズテンソルの名前。
    • attention_mask: (文字列) 画像アテンションマスクテンソルの名前。
  • outputs: (オブジェクト)

    • image_features: (文字列) 画像特徴出力テンソルの名前。

  • filename: (文字列) 音声ONNXファイルへのパス。

  • config_filename: (文字列, オプション) 音声プロセッサ設定ファイルへのパス。

  • adapter_filename: (文字列, オプション) 音声アダプターファイルへのパス。

  • inputs: (オブジェクト)

    • audio_embeds: (文字列) 音声埋め込みテンソルの名前。
    • attention_mask: (文字列) 音声アテンションマスクテンソルの名前。
    • audio_sizes: (文字列) 音声サイズテンソルの名前。
    • audio_projection_mode: (文字列) 音声射影モードテンソルの名前。
  • outputs: (オブジェクト)

    • audio_features: (文字列) 音声特徴出力テンソルの名前。

  • filename: (文字列) デコーダーONNXファイルへのパス。

  • session_options: (オブジェクト) SessionOptionsを参照してください。

  • hidden_size: (整数) 隠れ層のサイズ。

  • num_attention_heads: (整数) アテンションヘッドの数。

  • num_key_value_heads: (整数) キー-値ヘッドの数。

  • num_hidden_layers: (整数) 隠れ層の数。

  • head_size: (整数) 各アテンションヘッドのサイズ。

  • sliding_window: (オブジェクト, オプション) スライディングウィンドウ推論のパラメータ。

    • window_size: (整数) ウィンドウのサイズ。
    • pad_value: (整数) 非アクティブなトークンのパディング値。
    • alignment: (文字列) 「left」または「right」。
    • slide_key_value_cache: (ブール値) キー-値キャッシュをスライドさせるかどうか。
  • inputs: (オブジェクト)

    • input_ids: (文字列) 入力IDテンソルの名前。
    • embeddings: (文字列) 埋め込みテンソルの名前。
    • position_ids: (文字列) 位置IDテンソルの名前。
    • attention_mask: (文字列) アテンションマスクテンソルの名前。
    • past_key_names: (文字列) 過去のキーテンソルの名前パターン。
    • past_value_names: (文字列) 過去の値テンソルの名前パターン。
    • past_names: (文字列, オプション) 結合されたキー/値ペアの名前。
    • cross_past_key_names: (文字列, オプション) クロスアテンションの過去のキーテンソルの名前。
    • cross_past_value_names: (文字列, オプション) クロスアテンションの過去の値テンソルの名前。
    • current_sequence_length: (文字列) 現在のシーケンス長テンソルの名前。
    • past_sequence_length: (文字列) 過去のシーケンス長テンソルの名前。
    • past_key_values_length: (文字列) 過去のキー値長テンソルの名前。
    • total_sequence_length: (文字列) 合計シーケンス長テンソルの名前。
    • encoder_hidden_states: (文字列) エンコーダー隠れ状態テンソルの名前。
    • rnn_prev_states: (文字列, オプション) 前のRNN状態テンソルの名前。
    • encoder_attention_mask: (文字列, オプション) エンコーダーアテンションマスクテンソルの名前。
  • outputs: (オブジェクト)

    • logits: (文字列) ロジット出力テンソルの名前。
    • present_key_names: (文字列) 現在のキーテンソルの名前パターン。
    • present_value_names: (文字列) 現在の値テンソルの名前パターン。
    • present_names: (文字列, オプション) 結合された現在のキー/値ペアの名前。
    • cross_present_key_names: (文字列, オプション) クロスアテンションの現在のキーテンソルの名前。
    • cross_present_value_names: (文字列, オプション) クロスアテンションの現在の値テンソルの名前。
    • rnn_states: (文字列, オプション) RNN状態出力テンソルの名前。
  • pipeline: (配列, オプション) パイプラインモデルの場合、独自のファイル名、セッションオプション、入力、出力を持つサブモデルのリスト。


  • model_id: (文字列) パイプラインモデルの識別子。

  • filename: (文字列) ONNXファイルへのパス。

  • session_options: (オブジェクト, オプション) このパイプラインモデルのセッションオプション。

  • inputs: (文字列の配列) 入力テンソル名のリスト。

  • outputs: (文字列の配列) 出力テンソル名のリスト。

  • output_names_forwarder: (オブジェクト) 転送する出力名のマッピング。

  • run_on_prompt: (ブール値) プロンプトでこのモデルを実行するかどうか。

  • run_on_token_gen: (ブール値) トークン生成中にこのモデルを実行するかどうか。

  • reset_session_idx: (整数) メモリ管理のためにリセットするセッションのインデックス。


モデル実行のためにONNX Runtimeに渡されるオプション。

  • intra_op_num_threads: (整数, オプション) 演算内並列処理に使用するスレッド数。

  • inter_op_num_threads: (整数, オプション) 演算間並列処理に使用するスレッド数。

  • enable_cpu_mem_arena: (ブール値, オプション) CPUメモリアリーナを有効/無効にします。

  • enable_mem_pattern: (ブール値, オプション) メモリパターン最適化を有効/無効にします。

  • disable_cpu_ep_fallback: (ブール値, オプション) CPU実行プロバイダーへのフォールバックを無効にします。

  • disable_quant_qdq: (ブール値, オプション) 量子化QDQを無効にします。

  • enable_quant_qdq_cleanup: (ブール値, オプション) 量子化QDQクリーンアップを有効にします。

  • ep_context_enable: (ブール値, オプション) 実行プロバイダーコンテキストを有効にします。

  • ep_context_embed_mode: (文字列, オプション) 実行プロバイダーコンテキストの埋め込みモード。

  • ep_context_file_path: (文字列, オプション) 実行プロバイダーコンテキストファイルへのパス。

  • log_id: (文字列, オプション) ログ記録のプレフィックス。

  • log_severity_level: (整数, オプション) ログ記録の重大度レベル。

  • enable_profiling: (文字列, オプション) プロファイリングを有効にします。

  • custom_ops_library: (文字列, オプション) カスタム演算子ライブラリへのパス。

  • use_env_allocators: (ブール値) 環境アロケータを使用します。

  • config_entries: ([文字列, 文字列]ペアの配列) 追加の設定エントリ。

  • provider_options: (ProviderOptionsの配列) プロバイダーオプションのリスト。

  • providers: (文字列の配列) ランタイムで使用するプロバイダーのリスト。

  • graph_optimization_level: (文字列, オプション) グラフ最適化レベル。


  • name: (文字列) プロバイダー名。次のいずれか:

    • cuda
    • DML
    • NvTensorRtRtx
    • OpenVINO
    • QNN
    • rocm
    • WebGPU
    • VitisAI

    このオプションが指定されていない場合、プロバイダーはデフォルトでCPUになります。

  • options: ([文字列, 文字列]ペアの配列) プロバイダー固有のオプション。


生成/検索パラメータについて説明します。

  • do_sample: (ブール値) ランダムサンプリング(トップk/トップp)を使用するか、決定論的(貪欲)検索を使用するか。

  • min_length: (整数) プロンプト+生成されたシーケンスの構成された最小長。0からモデルのコンテキスト長の範囲内。

  • max_length: (整数) プロンプト+生成されたシーケンスの構成された最大長。0からモデルのコンテキスト長の範囲内。設定またはユーザーによって指定されていない場合、この値はモデルのコンテキスト長に設定されます。max_lengthは、KVキャッシュに割り当てられるメモリ量を決定します。

  • batch_size: (整数) 並行して生成するシーケンスの数。

  • num_beams: (整数) ビームサーチのビーム数。1はビームサーチなしを意味します。

  • num_return_sequences: (整数) 返すシーケンスの数。

  • repetition_penalty: (浮動小数点数) トークンを繰り返すことに対するペナルティ。1.0はペナルティなしを意味します。

  • top_k: (整数) トップKサンプリングパラメータ。

  • top_p: (浮動小数点数) トップP(核)サンプリングパラメータ。

  • temperature: (浮動小数点数) サンプリング温度。

  • early_stopping: (ブール値) ビームサーチを早期に停止するかどうか。

  • no_repeat_ngram_size: (整数) 繰り返すべきでないn-gramのサイズ。

  • diversity_penalty: (浮動小数点数) サポートされていません。

  • length_penalty: (浮動小数点数) 出力の長さを制御します。>1.0はより長いシーケンスを奨励し、<1.0はより短いシーケンスを奨励します。

  • past_present_share_buffer: (ブール値) trueの場合、過去と現在のバッファが効率のために共有されます。詳細な説明については、過去現在共有バッファを参照してください。

  • random_seed: (整数) 乱数ジェネレータのシード。-1はランダムデバイスの使用を意味します。


  • session_options:
    スレッド化、メモリアリーナ、量子化、プロファイリング、カスタム演算子などの高度なONNX Runtimeオプションをサポートします。すべての可能なフィールドについては、C++ SessionOptions構造体を参照してください。

  • inputs/outputs:
    ここでの名前とパターンは、実際のONNXモデルグラフと一致する必要があります。

  • pipeline:
    高度なモデルの場合、それぞれ独自のONNXファイル、セッションオプション、入力/出力マッピングを持つサブモデルのパイプラインを指定できます。


  1. ビームサーチ

    • num_beams > 1
    • do_sample = false
    • past_present_share_buffer = false
  2. 貪欲検索

    • num_beams = 1
    • do_sample = false
  3. トップP/トップKによるランダムサンプリング

    • do_sample = true