設定リファレンス
設定リファレンス
Section titled “設定リファレンス”注意: この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 }}設定ファイルは、modelとsearchの2つの主要なセクションを持つJSONオブジェクトとして構成されています。
トップレベルの設定オブジェクト。
-
config_path: (文字列, 内部) 設定ディレクトリへのパス(JSONには含まれません)。
-
model: (オブジェクト) モデルアーキテクチャとONNXモデル設定。
-
search: (オブジェクト) 生成/検索パラメータ。
Config::Model
Section titled “Config::Model”モデルアーキテクチャ、ファイル、トークン化について説明します。
-
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モデルと設定。デコーダーを参照してください。
Model::Encoder
Section titled “Model::Encoder”-
filename: (文字列) エンコーダーONNXファイルへのパス。
-
hidden_size: (整数) エンコーダーの隠れ層のサイズ。
-
num_key_value_heads: (整数) キー-値ヘッドの数。
-
num_hidden_layers: (整数) 隠れ層の数。
-
head_size: (整数) 各アテンションヘッドのサイズ。
-
inputs: (オブジェクト)
- input_features: (文字列) 入力特徴テンソルの名前。
- input_ids: (文字列) 入力IDテンソルの名前。
- attention_mask: (文字列) アテンションマスクテンソルの名前。
-
outputs: (オブジェクト)
- encoder_outputs: (文字列) エンコーダー出力テンソルの名前。
Model::Embedding
Section titled “Model::Embedding”-
filename: (文字列) 埋め込みONNXファイルへのパス。
-
inputs: (オブジェクト)
- input_ids: (文字列) 入力IDテンソルの名前。
- image_features: (文字列) 画像特徴テンソルの名前。
- audio_features: (文字列) 音声特徴テンソルの名前。
-
outputs: (オブジェクト)
- embeddings: (文字列) 埋め込み出力テンソルの名前。
Model::Vision
Section titled “Model::Vision”-
filename: (文字列) ビジョンONNXファイルへのパス。
-
config_filename: (文字列, オプション) ビジョンプロセッサ設定ファイルへのパス。
-
adapter_filename: (文字列, オプション) ビジョンアダプターファイルへのパス。
-
inputs: (オブジェクト)
- pixel_values: (文字列) ピクセル値テンソルの名前。
- image_sizes: (文字列) 画像サイズテンソルの名前。
- attention_mask: (文字列) 画像アテンションマスクテンソルの名前。
-
outputs: (オブジェクト)
- image_features: (文字列) 画像特徴出力テンソルの名前。
Model::Speech
Section titled “Model::Speech”-
filename: (文字列) 音声ONNXファイルへのパス。
-
config_filename: (文字列, オプション) 音声プロセッサ設定ファイルへのパス。
-
adapter_filename: (文字列, オプション) 音声アダプターファイルへのパス。
-
inputs: (オブジェクト)
- audio_embeds: (文字列) 音声埋め込みテンソルの名前。
- attention_mask: (文字列) 音声アテンションマスクテンソルの名前。
- audio_sizes: (文字列) 音声サイズテンソルの名前。
- audio_projection_mode: (文字列) 音声射影モードテンソルの名前。
-
outputs: (オブジェクト)
- audio_features: (文字列) 音声特徴出力テンソルの名前。
Model::Decoder
Section titled “Model::Decoder”-
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::Decoder::PipelineModel
Section titled “Model::Decoder::PipelineModel”-
model_id: (文字列) パイプラインモデルの識別子。
-
filename: (文字列) ONNXファイルへのパス。
-
session_options: (オブジェクト, オプション) このパイプラインモデルのセッションオプション。
-
inputs: (文字列の配列) 入力テンソル名のリスト。
-
outputs: (文字列の配列) 出力テンソル名のリスト。
-
output_names_forwarder: (オブジェクト) 転送する出力名のマッピング。
-
run_on_prompt: (ブール値) プロンプトでこのモデルを実行するかどうか。
-
run_on_token_gen: (ブール値) トークン生成中にこのモデルを実行するかどうか。
-
reset_session_idx: (整数) メモリ管理のためにリセットするセッションのインデックス。
SessionOptions
Section titled “SessionOptions”モデル実行のために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: (文字列, オプション) グラフ最適化レベル。
ProviderOptions
Section titled “ProviderOptions”-
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ファイル、セッションオプション、入力/出力マッピングを持つサブモデルのパイプラインを指定できます。
検索の組み合わせ
Section titled “検索の組み合わせ”-
ビームサーチ
num_beams > 1do_sample = falsepast_present_share_buffer = false
-
貪欲検索
num_beams = 1do_sample = false
-
トップP/トップKによるランダムサンプリング
do_sample = true