Skip to content

VW arguments JSON format

Jack Gerrits edited this page Feb 3, 2022 · 2 revisions

This was file generated using: https://github.com/VowpalWabbit/vowpal_wabbit/tree/master/utl/dump_options

{
    "version_info": {
        "version": "9.0.0",
        "git_commit": "179593717"
    },
    "option_groups": [
        {
            "name": "Logging Options",
            "options": [
                {
                    "name": "quiet",
                    "help": "Don't output diagnostics and progress updates. Supplying this implies --log_level off and --driver_output_off. Supplying this overrides an explicit log_level argument.",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "driver_output_off",
                    "help": "Disable output for the driver",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "driver_output",
                    "help": "Specify the stream to output driver output to",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "stderr",
                    "one_of": [
                        "stderr",
                        "stdout"
                    ]
                },
                {
                    "name": "log_level",
                    "help": "Log level for logging messages. Specifying this wil override --quiet for log output",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "info",
                    "one_of": [
                        "critical",
                        "error",
                        "info",
                        "off",
                        "warn"
                    ]
                },
                {
                    "name": "log_output",
                    "help": "Specify the stream to output log messages to. In the past VW's choice of stream for logging messages wasn't consistent. Supplying compat will maintain that old behavior. Compat is now deprecated so it is recommended that stdout or stderr is chosen.",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "stdout",
                    "one_of": [
                        "compat",
                        "stderr",
                        "stdout"
                    ]
                },
                {
                    "name": "limit_output",
                    "help": "Avoid chatty output. Limit total printed lines. 0 means unbounded",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                }
            ]
        },
        {
            "name": "Parser Options",
            "options": [
                {
                    "name": "ring_size",
                    "help": "Size of example ring",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 256
                },
                {
                    "name": "example_queue_limit",
                    "help": "Max number of examples to store after parsing but before the learner has processed. Rarely needs to be changed.",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 256
                },
                {
                    "name": "strict_parse",
                    "help": "Throw on malformed examples",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Weight Options",
            "options": [
                {
                    "name": "initial_regressor",
                    "help": "Initial regressor(s)",
                    "short_name": "i",
                    "keep": false,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "initial_weight",
                    "help": "Set all weights to an initial value of arg",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "random_weights",
                    "help": "Make initial weights random",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "normal_weights",
                    "help": "Make initial weights normal",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "truncated_normal_weights",
                    "help": "Make initial weights truncated normal",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "sparse_weights",
                    "help": "Use a sparse datastructure for weights",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "input_feature_regularizer",
                    "help": "Per feature regularization input file",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Parallelization Options",
            "options": [
                {
                    "name": "span_server",
                    "help": "Location of server for setting up spanning tree",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "unique_id",
                    "help": "Unique id used for cluster parallel jobs",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "total",
                    "help": "Total number of nodes used in cluster parallel job",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "node",
                    "help": "Node number in cluster parallel job",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "span_server_port",
                    "help": "Port of the server for setting up spanning tree",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 26543
                }
            ]
        },
        {
            "name": "Diagnostic Options",
            "options": [
                {
                    "name": "version",
                    "help": "Version information",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "audit",
                    "help": "Print weights of features",
                    "short_name": "a",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "progress",
                    "help": "Progress update frequency. int: additive, float: multiplicative",
                    "short_name": "P",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "dry_run",
                    "help": "Parse arguments and print corresponding metadata. Will not execute driver",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "help",
                    "help": "More information on vowpal wabbit can be found here https://vowpalwabbit.org",
                    "short_name": "h",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Randomization Options",
            "options": [
                {
                    "name": "random_seed",
                    "help": "Seed random number generator",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                }
            ]
        },
        {
            "name": "Feature Options",
            "options": [
                {
                    "name": "hash",
                    "help": "How to hash the features",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "strings",
                    "one_of": [
                        "all",
                        "strings"
                    ]
                },
                {
                    "name": "hash_seed",
                    "help": "Seed for hash function",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "ignore",
                    "help": "Ignore namespaces beginning with character <arg>",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "ignore_linear",
                    "help": "Ignore namespaces beginning with character <arg> for linear terms only",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "keep",
                    "help": "Keep namespaces beginning with character <arg>",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "redefine",
                    "help": "Redefine namespaces beginning with characters of std::string S as namespace N. <arg> shall be in form 'N:=S' where := is operator. Empty N or S are treated as default namespace. Use ':' as a wildcard in S.",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "bit_precision",
                    "help": "Number of bits in the feature table",
                    "short_name": "b",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "noconstant",
                    "help": "Don't add a constant feature",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "constant",
                    "help": "Set initial value of constant",
                    "short_name": "C",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "ngram",
                    "help": "Generate N grams. To generate N grams for a single namespace 'foo', arg should be fN",
                    "keep": false,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "skips",
                    "help": "Generate skips in N grams. This in conjunction with the ngram tag can be used to generate generalized n-skip-k-gram. To generate n-skips for a single namespace 'foo', arg should be fN.",
                    "keep": false,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "feature_limit",
                    "help": "Limit to N unique features per namespace. To apply to a single namespace 'foo', arg should be fN",
                    "keep": false,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "affix",
                    "help": "Generate prefixes/suffixes of features; argument '+2a,-3b,+1' means generate 2-char prefixes for namespace a, 3-char suffixes for b and 1 char prefixes for default namespace",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "spelling",
                    "help": "Compute spelling features for a give namespace (use '_' for default namespace)",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "dictionary",
                    "help": "Read a dictionary for additional features (arg either 'x:file' or just 'file')",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "dictionary_path",
                    "help": "Look in this directory for dictionaries; defaults to current directory or env{PATH}",
                    "keep": false,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "interactions",
                    "help": "Create feature interactions of any level between namespaces",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "experimental_full_name_interactions",
                    "help": "EXPERIMENTAL: Create feature interactions of any level between namespaces by specifying the full name of each namespace.",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "permutations",
                    "help": "Use permutations instead of combinations for feature interactions of same namespace",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "leave_duplicate_interactions",
                    "help": "Don't remove interactions with duplicate combinations of namespaces. For ex. this is a duplicate: '-q ab -q ba' and a lot more in '-q ::'.",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "quadratic",
                    "help": "Create and use quadratic features",
                    "short_name": "q",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "cubic",
                    "help": "Create and use cubic features",
                    "keep": true,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Example Options",
            "options": [
                {
                    "name": "testonly",
                    "help": "Ignore label information and just test",
                    "short_name": "t",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "holdout_off",
                    "help": "No holdout data in multiple passes",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "holdout_period",
                    "help": "Holdout period for test only",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 10
                },
                {
                    "name": "holdout_after",
                    "help": "Holdout after n training examples, default off (disables holdout_period)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "early_terminate",
                    "help": "Specify the number of passes tolerated when holdout loss doesn't decrease before early termination",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 3
                },
                {
                    "name": "passes",
                    "help": "Number of Training Passes",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "initial_pass_length",
                    "help": "Initial number of examples per pass. -1 for no limit",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": -1
                },
                {
                    "name": "examples",
                    "help": "Number of examples to parse. -1 for no limit",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": -1
                },
                {
                    "name": "min_prediction",
                    "help": "Smallest prediction to output",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "max_prediction",
                    "help": "Largest prediction to output",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "sort_features",
                    "help": "Turn this on to disregard order in which features have been defined. This will lead to smaller cache sizes",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "loss_function",
                    "help": "Specify the loss function to be used, uses squared by default",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "squared",
                    "one_of": [
                        "classic",
                        "hinge",
                        "logistic",
                        "poisson",
                        "quantile",
                        "squared"
                    ]
                },
                {
                    "name": "quantile_tau",
                    "help": "Parameter \\tau associated with Quantile loss. Defaults to 0.5",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "l1",
                    "help": "L_1 lambda",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "l2",
                    "help": "L_2 lambda",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "no_bias_regularization",
                    "help": "No bias in regularization",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "named_labels",
                    "help": "Use names for labels (multiclass, etc.) rather than integers, argument specified all possible labels, comma-sep, eg \"--named_labels Noun,Verb,Adj,Punc\"",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Output Model Options",
            "options": [
                {
                    "name": "final_regressor",
                    "help": "Final regressor",
                    "short_name": "f",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "readable_model",
                    "help": "Output human-readable final regressor with numeric features",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "invert_hash",
                    "help": "Output human-readable final regressor with feature names.  Computationally expensive",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "predict_only_model",
                    "help": "Do not save extra state for learning to be resumed. Stored model can only be used for prediction",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "save_resume",
                    "help": "This flag is now deprecated and models can continue learning by default",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "preserve_performance_counters",
                    "help": "Reset performance counters when warmstarting",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "save_per_pass",
                    "help": "Save the model after every pass over data",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "output_feature_regularizer_binary",
                    "help": "Per feature regularization output file",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "output_feature_regularizer_text",
                    "help": "Per feature regularization output file, in text",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "id",
                    "help": "User supplied ID embedded into the final regressor",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Update Options",
            "options": [
                {
                    "name": "learning_rate",
                    "help": "Set learning rate",
                    "short_name": "l",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "power_t",
                    "help": "T power value",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "decay_learning_rate",
                    "help": "Set Decay factor for learning_rate between passes",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "initial_t",
                    "help": "Initial t value",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "feature_mask",
                    "help": "Use existing regressor to determine which parameters may be updated.  If no initial_regressor given, also used for initial weights.",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Prediction Output Options",
            "options": [
                {
                    "name": "predictions",
                    "help": "File to output predictions to",
                    "short_name": "p",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "raw_predictions",
                    "help": "File to output unnormalized predictions to",
                    "short_name": "r",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Count label Options",
            "options": [
                {
                    "name": "dont_output_best_constant",
                    "help": "Don't track the best constant used in the output",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Debug Metrics Options",
            "options": [
                {
                    "name": "extra_metrics",
                    "help": "Specify filename to write metrics to. Note: There is no fixed schema",
                    "keep": false,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Audit Regressor Options",
            "options": [
                {
                    "name": "audit_regressor",
                    "help": "Stores feature names and their regressor values. Same dataset must be used for both regressor training and this mode.",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Search Options",
            "options": [
                {
                    "name": "search",
                    "help": "Use learning to search, argument=maximum action id or 0 for LDF",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "search_task",
                    "help": "The search task (use \"--search_task list\" to get a list of available tasks)",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false,
                    "one_of": [
                        "argmax",
                        "dep_parser",
                        "entity_relation",
                        "graph",
                        "hook",
                        "list",
                        "multiclasstask",
                        "sequence",
                        "sequence_ctg",
                        "sequence_demoldf",
                        "sequencespan"
                    ]
                },
                {
                    "name": "search_metatask",
                    "help": "The search metatask (use \"--search_metatask list\" to get a list of available metatasks Note: a valid search_task needs to be supplied in addition for this to output.)",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "search_interpolation",
                    "help": "At what level should interpolation happen? [*data|policy]",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "search_rollout",
                    "help": "How should rollouts be executed",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false,
                    "one_of": [
                        "learn",
                        "mix",
                        "mix_per_roll",
                        "mix_per_state",
                        "none",
                        "oracle",
                        "policy",
                        "ref"
                    ]
                },
                {
                    "name": "search_rollin",
                    "help": "How should past trajectories be generated",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false,
                    "one_of": [
                        "learn",
                        "mix",
                        "mix_per_roll",
                        "mix_per_state",
                        "oracle",
                        "policy",
                        "ref"
                    ]
                },
                {
                    "name": "search_passes_per_policy",
                    "help": "Number of passes per policy (only valid for search_interpolation=policy)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "search_beta",
                    "help": "Interpolation rate for policies (only valid for search_interpolation=policy)",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "search_alpha",
                    "help": "Annealed beta = 1-(1-alpha)^t (only valid for search_interpolation=data)",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.000000013351432e-10
                },
                {
                    "name": "search_total_nb_policies",
                    "help": "If we are going to train the policies through multiple separate calls to vw, we need to specify this parameter and tell vw how many policies are eventually going to be trained",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "search_trained_nb_policies",
                    "help": "The number of trained policies in a file",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "search_allowed_transitions",
                    "help": "Read file of allowed transitions [def: all transitions are allowed]",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "search_subsample_time",
                    "help": "Instead of training at all timesteps, use a subset. if value in (0,1), train on a random v%. if v>=1, train on precisely v steps per example, if v<=-1, use active learning",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "search_neighbor_features",
                    "help": "Copy features from neighboring lines. argument looks like: '-1:a,+2' meaning copy previous line namespace a and next next line from namespace _unnamed_, where ',' separates them",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "search_rollout_num_steps",
                    "help": "How many calls of \"loss\" before we stop really predicting on rollouts and switch to oracle (default means \"infinite\")",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "search_history_length",
                    "help": "Some tasks allow you to specify how much history their depend on; specify that here",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "search_no_caching",
                    "help": "Turn off the built-in caching ability (makes things slower, but technically more safe)",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "search_xv",
                    "help": "Train two separate policies, alternating prediction/learning",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "search_perturb_oracle",
                    "help": "Perturb the oracle on rollin with this probability",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "search_linear_ordering",
                    "help": "Insist on generating examples in linear order (def: hoopla permutation)",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "search_active_verify",
                    "help": "Verify that active learning is doing the right thing (arg = multiplier, should be = cost_range * range_c)",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "search_save_every_k_runs",
                    "help": "Save model every k runs",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                }
            ]
        },
        {
            "name": "[Reduction] Experience Replay / replay_c Options",
            "options": [
                {
                    "name": "replay_c",
                    "help": "Use experience replay at a specified level [b=classification/regression, m=multiclass, c=cost sensitive] with specified buffer size",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "replay_c_count",
                    "help": "How many times (in expectation) should each example be played (default: 1 = permuting)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                }
            ]
        },
        {
            "name": "[Reduction] Offset Tree Options",
            "options": [
                {
                    "name": "ot",
                    "help": "Offset tree with <k> labels",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit: cb -> cb_adf Options",
            "options": [
                {
                    "name": "cb_to_cbadf",
                    "help": "Flag is unused and has no effect. It should not be passed. The cb_to_cbadf reduction is automatically enabled if cb, cb_explore or cbify are used. This flag will be removed in a future release but not the functionality.",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "cb",
                    "help": "Maps cb_adf to cb. Disable with cb_force_legacy",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "cb_explore",
                    "help": "Translate cb explore to cb_explore_adf. Disable with cb_force_legacy",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "cbify",
                    "help": "Translate cbify to cb_adf. Disable with cb_force_legacy",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "cb_force_legacy",
                    "help": "Default to non-adf cb implementation (cb_algs)",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Make csoaa_ldf into Contextual Bandit Options",
            "options": [
                {
                    "name": "cbify_ldf",
                    "help": "Convert csoaa_ldf into a contextual bandit problem",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "loss0",
                    "help": "Loss for correct label",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "loss1",
                    "help": "Loss for incorrect label",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                }
            ]
        },
        {
            "name": "[Reduction] CBify Options",
            "options": [
                {
                    "name": "cbify",
                    "help": "Convert multiclass on <k> classes into a contextual bandit problem",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "cbify_cs",
                    "help": "Consume cost-sensitive classification examples instead of multiclass",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cbify_reg",
                    "help": "Consume regression examples instead of multiclass and cost sensitive",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cats",
                    "help": "Continuous action tree with smoothing",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "cb_discrete",
                    "help": "Discretizes continuous space and adds cb_explore as option",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "min_value",
                    "help": "Minimum continuous value",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "max_value",
                    "help": "Maximum continuous value",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "loss_option",
                    "help": "Loss options for regression - 0:squared, 1:absolute, 2:0/1",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "loss_report",
                    "help": "Loss report option - 0:normalized, 1:denormalized",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "loss_01_ratio",
                    "help": "Ratio of zero loss for 0/1 loss",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "loss0",
                    "help": "Loss for correct label",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "loss1",
                    "help": "Loss for incorrect label",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "flip_loss_sign",
                    "help": "Flip sign of loss (use reward instead of loss)",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Continuous Actions Tree with Smoothing Options",
            "options": [
                {
                    "name": "cats",
                    "help": "Number of discrete actions <k> for cats",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "min_value",
                    "help": "Minimum continuous value",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "max_value",
                    "help": "Maximum continuous value",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "bandwidth",
                    "help": "Bandwidth (radius) of randomization around discrete actions in terms of continuous range. By default will be set to half of the continuous action unit-range resulting in smoothing that stays inside the action space unit-range:\nunit_range = (max_value - min_value)/num-of-actions\ndefault bandwidth = unit_range / 2.0",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Continuous Actions: Sample Pdf Options",
            "options": [
                {
                    "name": "sample_pdf",
                    "help": "Sample a pdf and pick a continuous valued action",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Continuous Action Tree with Smoothing with Full Pdf Options",
            "options": [
                {
                    "name": "cats_pdf",
                    "help": "Number of tree labels <k> for cats_pdf",
                    "keep": true,
                    "necessary": true,
                    "type": "int",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Continuous Actions: cb_explore_pdf Options",
            "options": [
                {
                    "name": "cb_explore_pdf",
                    "help": "Sample a pdf and pick a continuous valued action",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.05000000074505806
                },
                {
                    "name": "min_value",
                    "help": "Min value for continuous range",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "max_value",
                    "help": "Max value for continuous range",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "first_only",
                    "help": "Use user provided first action or user provided pdf or uniform random",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Convert Discrete PMF into Continuous PDF Options",
            "options": [
                {
                    "name": "pmf_to_pdf",
                    "help": "Number of discrete actions <k> for pmf_to_pdf",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "min_value",
                    "help": "Minimum continuous value",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "max_value",
                    "help": "Maximum continuous value",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "bandwidth",
                    "help": "Bandwidth (radius) of randomization around discrete actions in terms of continuous range. By default will be set to half of the continuous action unit-range resulting in smoothing that stays inside the action space unit-range:\nunit_range = (max_value - min_value)/num-of-actions\ndefault bandwidth = unit_range / 2.0",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "first_only",
                    "help": "Use user provided first action or user provided pdf or uniform random",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Continuous Actions: Convert to Pmf Options",
            "options": [
                {
                    "name": "get_pmf",
                    "help": "Convert a single multiclass prediction to a pmf",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Warm start contextual bandit Options",
            "options": [
                {
                    "name": "warm_cb",
                    "help": "Convert multiclass on <k> classes into a contextual bandit problem",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "warm_cb_cs",
                    "help": "Consume cost-sensitive classification examples instead of multiclass",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "loss0",
                    "help": "Loss for correct label",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "loss1",
                    "help": "Loss for incorrect label",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "warm_start",
                    "help": "Number of training examples for warm start phase",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "interaction",
                    "help": "Number of examples for the interactive contextual bandit learning phase",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 4294967295
                },
                {
                    "name": "warm_start_update",
                    "help": "Indicator of warm start updates",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "interaction_update",
                    "help": "Indicator of interaction updates",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "corrupt_type_warm_start",
                    "help": "Type of label corruption in the warm start phase (1: uniformly at random, 2: circular, 3: replacing with overwriting label)",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 1,
                    "one_of": [
                        1,
                        2,
                        3
                    ]
                },
                {
                    "name": "corrupt_prob_warm_start",
                    "help": "Probability of label corruption in the warm start phase",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "choices_lambda",
                    "help": "The number of candidate lambdas to aggregate (lambda is the importance weight parameter between the two sources)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "lambda_scheme",
                    "help": "The scheme for generating candidate lambda set (1: center lambda=0.5, 2: center lambda=0.5, min lambda=0, max lambda=1, 3: center lambda=epsilon/(1+epsilon), 4: center lambda=epsilon/(1+epsilon), min lambda=0, max lambda=1); the rest of candidate lambda values are generated using a doubling scheme",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 1,
                    "one_of": [
                        1,
                        2,
                        3,
                        4
                    ]
                },
                {
                    "name": "overwrite_label",
                    "help": "The label used by type 3 corruptions (overwriting)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "sim_bandit",
                    "help": "Simulate contextual bandit updates on warm start examples",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Slates Options",
            "options": [
                {
                    "name": "slates",
                    "help": "Enable slates reduction",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Conditional Contextual Bandit Exploration with ADF Options",
            "options": [
                {
                    "name": "ccb_explore_adf",
                    "help": "Do Conditional Contextual Bandit learning with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "all_slots_loss",
                    "help": "Report average loss from all slots",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "no_predict",
                    "help": "Do not do a prediction when training",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cb_type",
                    "help": "Contextual bandit method to use",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "mtr",
                    "one_of": [
                        "dm",
                        "dr",
                        "ips",
                        "mtr",
                        "sm"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Automl Options",
            "options": [
                {
                    "name": "automl",
                    "help": "Experimental: Set number of live configs",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 3
                },
                {
                    "name": "global_lease",
                    "help": "Set initial lease for automl interactions",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 10
                },
                {
                    "name": "cm_type",
                    "help": "Set type of config manager",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "interaction",
                    "one_of": [
                        "interaction"
                    ]
                },
                {
                    "name": "priority_type",
                    "help": "Set function to determine next config",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "none",
                    "one_of": [
                        "least_exclusion",
                        "none"
                    ]
                },
                {
                    "name": "priority_challengers",
                    "help": "Set number of priority challengers to use",
                    "keep": true,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": -1
                },
                {
                    "name": "keep_configs",
                    "help": "Keep all configs after champ change",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "verbose_metrics",
                    "help": "Extended metrics for debugging",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "oracle_type",
                    "help": "Set oracle to generate configs",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "one_diff",
                    "one_of": [
                        "one_diff",
                        "rand"
                    ]
                },
                {
                    "name": "automl_alpha",
                    "help": "Set confidence interval for champion change",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.05000000074505806
                },
                {
                    "name": "automl_tau",
                    "help": "Time constant for count decay",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.9990000128746033
                }
            ]
        },
        {
            "name": "[Reduction] Explore Evaluation Options",
            "options": [
                {
                    "name": "explore_eval",
                    "help": "Evaluate explore_eval adf policies",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "multiplier",
                    "help": "Multiplier used to make all rejection sample probabilities <= 1",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] CB Sample Options",
            "options": [
                {
                    "name": "cb_sample",
                    "help": "Sample from CB pdf and swap top action",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] CB Distributionally Robust Optimization Options",
            "options": [
                {
                    "name": "cb_dro",
                    "help": "Use DRO for cb learning",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cb_dro_alpha",
                    "help": "Confidence level for cb dro",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.05000000074505806
                },
                {
                    "name": "cb_dro_tau",
                    "help": "Time constant for count decay for cb dro",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.9990000128746033
                },
                {
                    "name": "cb_dro_wmax",
                    "help": "Maximum importance weight for cb_dro",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": "inf"
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (bagging) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "bag",
                    "help": "Bagging-based exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "greedify",
                    "help": "Always update first policy once in bagging",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "first_only",
                    "help": "Only explore the first action in a tie-breaking event",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (online cover) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cover",
                    "help": "Online cover based exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "psi",
                    "help": "Disagreement parameter for cover",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "nounif",
                    "help": "Do not explore uniformly on zero-probability actions in cover",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "first_only",
                    "help": "Only explore the first action in a tie-breaking event",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cb_type",
                    "help": "Contextual bandit method to use",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "mtr",
                    "one_of": [
                        "dr",
                        "ips",
                        "mtr"
                    ]
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.05000000074505806
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (tau-first) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "first",
                    "help": "Tau-first exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (synthetic cover) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "synthcover",
                    "help": "Use synthetic cover exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "synthcoverpsi",
                    "help": "Exploration reward bonus",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "synthcoversize",
                    "help": "Number of policies in cover",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 100
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (SquareCB) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "squarecb",
                    "help": "SquareCB exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "gamma_scale",
                    "help": "Sets SquareCB greediness parameter to gamma=[gamma_scale]*[num examples]^1/2",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 10.0
                },
                {
                    "name": "gamma_exponent",
                    "help": "Exponent on [num examples] in SquareCB greediness parameter gamma",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "elim",
                    "help": "Only perform SquareCB exploration over plausible actions (computed via RegCB strategy)",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "mellowness",
                    "help": "Mellowness parameter c_0 for computing plausible action set. Only used with --elim",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0010000000474974514
                },
                {
                    "name": "cb_min_cost",
                    "help": "Lower bound on cost. Only used with --elim",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "cb_max_cost",
                    "help": "Upper bound on cost. Only used with --elim",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "cb_type",
                    "help": "Contextual bandit method to use. SquareCB only supports supervised regression (mtr)",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "mtr",
                    "one_of": [
                        "mtr"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (RegCB) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "regcb",
                    "help": "RegCB-elim exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "regcbopt",
                    "help": "RegCB optimistic exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "mellowness",
                    "help": "RegCB mellowness parameter c_0. Default 0.1",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "cb_min_cost",
                    "help": "Lower bound on cost",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "cb_max_cost",
                    "help": "Upper bound on cost",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "first_only",
                    "help": "Only explore the first action in a tie-breaking event",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cb_type",
                    "help": "Contextual bandit method to use. RegCB only supports supervised regression (mtr)",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "mtr",
                    "one_of": [
                        "mtr"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (rnd) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Minimum exploration probability",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "rnd",
                    "help": "Rnd based exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "rnd_alpha",
                    "help": "CI width for rnd (bigger => more exploration on repeating features)",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "rnd_invlambda",
                    "help": "Covariance regularization strength rnd (bigger => more exploration on new features)",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (softmax) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "softmax",
                    "help": "Softmax exploration",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "lambda",
                    "help": "Parameter for softmax",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration with ADF (greedy) Options",
            "options": [
                {
                    "name": "cb_explore_adf",
                    "help": "Online explore-exploit for a contextual bandit problem with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.05000000074505806
                },
                {
                    "name": "first_only",
                    "help": "Only explore the first action in a tie-breaking event",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Exploration Options",
            "options": [
                {
                    "name": "cb_explore",
                    "help": "Online explore-exploit for a <k> action contextual bandit problem",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "first",
                    "help": "Tau-first exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "epsilon",
                    "help": "Epsilon-greedy exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.05000000074505806
                },
                {
                    "name": "bag",
                    "help": "Bagging-based exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "cover",
                    "help": "Online cover based exploration",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "nounif",
                    "help": "Do not explore uniformly on zero-probability actions in cover",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "psi",
                    "help": "Disagreement parameter for cover",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                }
            ]
        },
        {
            "name": "[Reduction] Baseline challenger Options",
            "options": [
                {
                    "name": "baseline_challenger_cb",
                    "help": "Experimental: Build a CI around the baseline action and use it instead of the model if it's perfoming better",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cb_c_alpha",
                    "help": "Confidence level for baseline",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.05000000074505806
                },
                {
                    "name": "cb_c_tau",
                    "help": "Time constant for count decay",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.9990000128746033
                }
            ]
        },
        {
            "name": "[Reduction] CATS Tree Options",
            "options": [
                {
                    "name": "cats_tree",
                    "help": "CATS Tree with <k> labels",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "tree_bandwidth",
                    "help": "Tree bandwidth for continuous actions in terms of #actions",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "link",
                    "help": "The learner in each node must return a prediction in range [-1,1], so only glf1 is allowed",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": false,
                    "one_of": [
                        "glf1"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Multiworld Testing Options",
            "options": [
                {
                    "name": "multiworld_test",
                    "help": "Evaluate features as a policies",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "learn",
                    "help": "Do Contextual Bandit learning on <n> classes",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "exclude_eval",
                    "help": "Discard mwt policy features before learning",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Interaction Grounded Learning Options",
            "options": [
                {
                    "name": "experimental_igl",
                    "help": "Experimental: Do Interaction Grounding with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit with Action Dependent Features Options",
            "options": [
                {
                    "name": "cb_adf",
                    "help": "Do Contextual Bandit learning with multiline action dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "rank_all",
                    "help": "Return actions sorted by score order",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "no_predict",
                    "help": "Do not do a prediction when training",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "clip_p",
                    "help": "Clipping probability in importance weight. Default: 0.f (no clipping)",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "cb_type",
                    "help": "Contextual bandit method to use",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "mtr",
                    "one_of": [
                        "dm",
                        "dr",
                        "ips",
                        "mtr",
                        "sm"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Contextual Bandit Options",
            "options": [
                {
                    "name": "cb",
                    "help": "Use contextual bandit learning with <k> costs",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "cb_type",
                    "help": "Contextual bandit method to use",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "dr",
                    "one_of": [
                        "dm",
                        "dr",
                        "ips",
                        "mtr",
                        "sm"
                    ]
                },
                {
                    "name": "eval",
                    "help": "Evaluate a policy rather than optimizing",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cb_force_legacy",
                    "help": "Default to non-adf cb implementation (cb_to_cb_adf)",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Cost Sensitive One Against All with Label Dependent Features Options",
            "options": [
                {
                    "name": "csoaa_ldf",
                    "help": "Use one-against-all multiclass learning with label dependent features",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "ldf_override",
                    "help": "Override singleline or multiline from csoaa_ldf or wap_ldf, eg if stored in file",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "csoaa_rank",
                    "help": "Return actions sorted by score order",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "probabilities",
                    "help": "Predict probabilities of all classes",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Cost Sensitive Weighted All-Pairs with Label Dependent Features Options",
            "options": [
                {
                    "name": "wap_ldf",
                    "help": "Use weighted all-pairs multiclass learning with label dependent features. Specify singleline or multiline.",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Interact via Elementwise Multiplication Options",
            "options": [
                {
                    "name": "interact",
                    "help": "Put weights on feature products from namespaces <n1> and <n2>",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Cost Sensitive One Against All Options",
            "options": [
                {
                    "name": "csoaa",
                    "help": "One-against-all multiclass with <k> costs",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "indexing",
                    "help": "Choose between 0 or 1-indexing",
                    "keep": true,
                    "necessary": false,
                    "type": "int",
                    "has_default": false,
                    "one_of": [
                        0,
                        1
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Cost Sensitive Active Learning Options",
            "options": [
                {
                    "name": "cs_active",
                    "help": "Cost-sensitive active learning with <k> costs",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "simulation",
                    "help": "Cost-sensitive active learning simulation mode",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "baseline",
                    "help": "Cost-sensitive active learning baseline",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "domination",
                    "help": "Cost-sensitive active learning use domination",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "mellowness",
                    "help": "Mellowness parameter c_0",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "range_c",
                    "help": "Parameter controlling the threshold for per-label cost uncertainty",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "max_labels",
                    "help": "Maximum number of label queries",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 18446744073709551615
                },
                {
                    "name": "min_labels",
                    "help": "Minimum number of label queries",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 18446744073709551615
                },
                {
                    "name": "cost_max",
                    "help": "Cost upper bound",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "cost_min",
                    "help": "Cost lower bound",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "csa_debug",
                    "help": "Print debug stuff for cs_active",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Probabilistic Label Tree Options",
            "options": [
                {
                    "name": "plt",
                    "help": "Probabilistic Label Tree with <k> labels",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "kary_tree",
                    "help": "Use <k>-ary tree",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 2
                },
                {
                    "name": "threshold",
                    "help": "Predict labels with conditional marginal probability greater than <thr> threshold",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "top_k",
                    "help": "Predict top-<k> labels instead of labels above threshold",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                }
            ]
        },
        {
            "name": "[Reduction] Multilabel One Against All Options",
            "options": [
                {
                    "name": "multilabel_oaa",
                    "help": "One-against-all multilabel with <k> labels",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "probabilities",
                    "help": "Predict probabilities of all classes",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "link",
                    "help": "Specify the link function",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "identity",
                    "one_of": [
                        "glf1",
                        "identity",
                        "logistic",
                        "poisson"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction]  Importance Weight Classes Options",
            "options": [
                {
                    "name": "classweight",
                    "help": "Importance weight multiplier for class",
                    "keep": false,
                    "necessary": true,
                    "type": "list[str]",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Memory Tree Options",
            "options": [
                {
                    "name": "memory_tree",
                    "help": "Make a memory tree with at most <n> nodes",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "max_number_of_labels",
                    "help": "Max number of unique label",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 10
                },
                {
                    "name": "leaf_example_multiplier",
                    "help": "Multiplier on examples per leaf (default = log nodes)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "alpha",
                    "help": "Alpha",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "dream_repeats",
                    "help": "Number of dream operations per example (default = 1)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "top_K",
                    "help": "Top K prediction error",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "learn_at_leaf",
                    "help": "Enable learning at leaf",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "oas",
                    "help": "Use oas at the leaf",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "dream_at_update",
                    "help": "Turn on dream operations at reward based update as well",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "online",
                    "help": "Turn on dream operations at reward based update as well",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Recall Tree Options",
            "options": [
                {
                    "name": "recall_tree",
                    "help": "Use online tree for multiclass",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "max_candidates",
                    "help": "Maximum number of labels per leaf in the tree",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "bern_hyper",
                    "help": "Recall tree depth penalty",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "max_depth",
                    "help": "Maximum depth of the tree, default log_2 (#classes)",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "node_only",
                    "help": "Only use node features, not full path features",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "randomized_routing",
                    "help": "Randomized routing",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Logarithmic Time Multiclass Tree Options",
            "options": [
                {
                    "name": "log_multi",
                    "help": "Use online tree for multiclass",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "no_progress",
                    "help": "Disable progressive validation",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "swap_resistance",
                    "help": "Higher = more resistance to swap, default=4",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 4
                }
            ]
        },
        {
            "name": "[Reduction] Error Correcting Tournament Options",
            "options": [
                {
                    "name": "ect",
                    "help": "Error correcting tournament with <k> labels",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "error",
                    "help": "Errors allowed by ECT",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 0
                },
                {
                    "name": "link",
                    "help": "Specify the link function",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "identity",
                    "one_of": [
                        "glf1",
                        "identity",
                        "logistic",
                        "poisson"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Boosting Options",
            "options": [
                {
                    "name": "boosting",
                    "help": "Online boosting with <N> weak learners",
                    "keep": true,
                    "necessary": true,
                    "type": "int",
                    "has_default": false
                },
                {
                    "name": "gamma",
                    "help": "Weak learner's edge (=0.1), used only by online BBM",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "alg",
                    "help": "Specify the boosting algorithm: BBM (default), logistic (AdaBoost.OL.W), adaptive (AdaBoost.OL)",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "BBM",
                    "one_of": [
                        "BBM",
                        "adaptive",
                        "logistic"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] One Against All Options",
            "options": [
                {
                    "name": "oaa",
                    "help": "One-against-all multiclass with <k> labels",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "oaa_subsample",
                    "help": "Subsample this number of negative examples when learning",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "probabilities",
                    "help": "Predict probabilities of all classes",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "scores",
                    "help": "Output raw scores per class",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "indexing",
                    "help": "Choose between 0 or 1-indexing",
                    "keep": true,
                    "necessary": false,
                    "type": "int",
                    "has_default": false,
                    "one_of": [
                        0,
                        1
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Top K Options",
            "options": [
                {
                    "name": "top",
                    "help": "Top k recommendation",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Experience Replay / replay_m Options",
            "options": [
                {
                    "name": "replay_m",
                    "help": "Use experience replay at a specified level [b=classification/regression, m=multiclass, c=cost sensitive] with specified buffer size",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "replay_m_count",
                    "help": "How many times (in expectation) should each example be played (default: 1 = permuting)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                }
            ]
        },
        {
            "name": "[Reduction] Binary Loss Options",
            "options": [
                {
                    "name": "binary",
                    "help": "Report loss as binary classification on -1,1",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Bootstrap Options",
            "options": [
                {
                    "name": "bootstrap",
                    "help": "K-way bootstrap by online importance resampling",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "bs_type",
                    "help": "Prediction type",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "mean",
                    "one_of": [
                        "mean",
                        "vote"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Continuous Action Contextual Bandit using Zeroth-Order Optimization Options",
            "options": [
                {
                    "name": "cbzo",
                    "help": "Solve 1-slot Continuous Action Contextual Bandit using Zeroth-Order Optimization",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "policy",
                    "help": "Policy/Model to Learn",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "linear"
                },
                {
                    "name": "radius",
                    "help": "Exploration Radius",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                }
            ]
        },
        {
            "name": "[Reduction] Latent Dirichlet Allocation Options",
            "options": [
                {
                    "name": "lda",
                    "help": "Run lda with <int> topics",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "lda_alpha",
                    "help": "Prior on sparsity of per-document topic weights",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "lda_rho",
                    "help": "Prior on sparsity of topic distributions",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.10000000149011612
                },
                {
                    "name": "lda_D",
                    "help": "Number of documents",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 10000.0
                },
                {
                    "name": "lda_epsilon",
                    "help": "Loop convergence threshold",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0010000000474974514
                },
                {
                    "name": "minibatch",
                    "help": "Minibatch size, for LDA",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "math-mode",
                    "help": "Math mode: 0=simd, 1=accuracy, 2=fast-approx",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 0,
                    "one_of": [
                        0,
                        1,
                        2
                    ]
                },
                {
                    "name": "metrics",
                    "help": "Compute metrics",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Scorer Options",
            "options": [
                {
                    "name": "link",
                    "help": "Specify the link function",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "identity",
                    "one_of": [
                        "glf1",
                        "identity",
                        "logistic",
                        "poisson"
                    ]
                }
            ]
        },
        {
            "name": "[Reduction] Stagewise Polynomial Options",
            "options": [
                {
                    "name": "stage_poly",
                    "help": "Use stagewise polynomial feature learning",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "sched_exponent",
                    "help": "Exponent controlling quantity of included features",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "batch_sz",
                    "help": "Multiplier on batch size before including more features",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1000
                },
                {
                    "name": "batch_sz_no_doubling",
                    "help": "Batch_sz does not double",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Low Rank Quadratics FA Options",
            "options": [
                {
                    "name": "lrqfa",
                    "help": "Use low rank quadratic features with field aware weights",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Low Rank Quadratics Options",
            "options": [
                {
                    "name": "lrq",
                    "help": "Use low rank quadratic features",
                    "keep": true,
                    "necessary": true,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "lrqdropout",
                    "help": "Use dropout training for low rank quadratic features",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Autolink Options",
            "options": [
                {
                    "name": "autolink",
                    "help": "Create link function with polynomial d",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Marginal Options",
            "options": [
                {
                    "name": "marginal",
                    "help": "Substitute marginal label estimates for ids",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "initial_denominator",
                    "help": "Initial denominator",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "initial_numerator",
                    "help": "Initial numerator",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.5
                },
                {
                    "name": "compete",
                    "help": "Enable competition with marginal features",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "update_before_learn",
                    "help": "Update marginal values before learning",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "unweighted_marginals",
                    "help": "Ignore importance weights when computing marginals",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "decay",
                    "help": "Decay multiplier per event (1e-3 for example)",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                }
            ]
        },
        {
            "name": "[Reduction] Neural Network Options",
            "options": [
                {
                    "name": "nn",
                    "help": "Sigmoidal feedforward network with <k> hidden units",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "inpass",
                    "help": "Train or test sigmoidal feedforward network with input passthrough",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "multitask",
                    "help": "Share hidden layer across all reduced tasks",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "dropout",
                    "help": "Train or test sigmoidal feedforward network using dropout",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "meanfield",
                    "help": "Train or test sigmoidal feedforward network using mean field",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Confidence Options",
            "options": [
                {
                    "name": "confidence",
                    "help": "Get confidence for binary predictions",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "confidence_after_training",
                    "help": "Confidence after training",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Active Learning with Cover Options",
            "options": [
                {
                    "name": "active_cover",
                    "help": "Enable active learning with cover",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "mellowness",
                    "help": "Active learning mellowness parameter c_0",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 8.0
                },
                {
                    "name": "alpha",
                    "help": "Active learning variance upper bound parameter alpha",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "beta_scale",
                    "help": "Active learning variance upper bound parameter beta_scale",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 3.1622776985168459
                },
                {
                    "name": "cover",
                    "help": "Cover size",
                    "keep": true,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 12
                },
                {
                    "name": "oracular",
                    "help": "Use Oracular-CAL style query or not",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Active Learning Options",
            "options": [
                {
                    "name": "active",
                    "help": "Enable active learning",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "simulation",
                    "help": "Active learning simulation mode",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "mellowness",
                    "help": "Active learning mellowness parameter c_0. Default 8",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 8.0
                }
            ]
        },
        {
            "name": "[Reduction] Experience Replay / replay_b Options",
            "options": [
                {
                    "name": "replay_b",
                    "help": "Use experience replay at a specified level [b=classification/regression, m=multiclass, c=cost sensitive] with specified buffer size",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "replay_b_count",
                    "help": "How many times (in expectation) should each example be played (default: 1 = permuting)",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                }
            ]
        },
        {
            "name": "[Reduction] Baseline Options",
            "options": [
                {
                    "name": "baseline",
                    "help": "Learn an additive baseline (from constant features) and a residual separately in regression",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "lr_multiplier",
                    "help": "Learning rate multiplier for baseline model",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "global_only",
                    "help": "Use separate example with only global constant for baseline predictions",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "check_enabled",
                    "help": "Only use baseline when the example contains enabled flag",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Generate Interactions Options",
            "options": [
                {
                    "name": "leave_duplicate_interactions",
                    "help": "Don't remove interactions with duplicate combinations of namespaces. For ex. this is a duplicate: '-q ab -q ba' and a lot more in '-q ::'.",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Matrix Factorization Reduction Options",
            "options": [
                {
                    "name": "new_mf",
                    "help": "Rank for reduction-based matrix factorization",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] OjaNewton Options",
            "options": [
                {
                    "name": "OjaNewton",
                    "help": "Online Newton with Oja's Sketch",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "sketch_size",
                    "help": "Size of sketch",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 10
                },
                {
                    "name": "epoch_size",
                    "help": "Size of epoch",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "alpha",
                    "help": "Mutiplicative constant for indentiy",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "alpha_inverse",
                    "help": "One over alpha, similar to learning rate",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "learning_rate_cnt",
                    "help": "Constant for the learning rate 1/t",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 2.0
                },
                {
                    "name": "normalize",
                    "help": "Normalize the features or not",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "random_init",
                    "help": "Randomize initialization of Oja or not",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Conjugate Gradient Options",
            "options": [
                {
                    "name": "conjugate_gradient",
                    "help": "Use conjugate gradient based optimization",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] LBFGS and Conjugate Gradient Options",
            "options": [
                {
                    "name": "bfgs",
                    "help": "Use conjugate gradient based optimization",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "hessian_on",
                    "help": "Use second derivative in line search",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "mem",
                    "help": "Memory in bfgs",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 15
                },
                {
                    "name": "termination",
                    "help": "Termination threshold",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0010000000474974514
                }
            ]
        },
        {
            "name": "[Reduction] Noop Base Learner Options",
            "options": [
                {
                    "name": "noop",
                    "help": "Do no learning",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Print Psuedolearner Options",
            "options": [
                {
                    "name": "print",
                    "help": "Print examples",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Gradient Descent Matrix Factorization Options",
            "options": [
                {
                    "name": "rank",
                    "help": "Rank for matrix factorization",
                    "keep": true,
                    "necessary": true,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "bfgs",
                    "help": "Option not supported by this reduction",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "conjugate_gradient",
                    "help": "Option not supported by this reduction",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        },
        {
            "name": "Network sending Options",
            "options": [
                {
                    "name": "sendto",
                    "help": "Send examples to <host>",
                    "keep": true,
                    "necessary": true,
                    "type": "str",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Stochastic Variance Reduced Gradient Options",
            "options": [
                {
                    "name": "svrg",
                    "help": "Streaming Stochastic Variance Reduced Gradient",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "stage_size",
                    "help": "Number of passes per SVRG stage",
                    "keep": false,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 1
                }
            ]
        },
        {
            "name": "[Reduction] FreeGrad Options",
            "options": [
                {
                    "name": "freegrad",
                    "help": "Diagonal FreeGrad Algorithm",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "restart",
                    "help": "Use the FreeRange restarts",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "project",
                    "help": "Project the outputs to adapt to both the lipschitz and comparator norm",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "radius",
                    "help": "Radius of the l2-ball for the projection. If not supplied, an adaptive radius will be used",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "fepsilon",
                    "help": "Initial wealth",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                }
            ]
        },
        {
            "name": "[Reduction] Follow the Regularized Leader - FTRL Options",
            "options": [
                {
                    "name": "ftrl",
                    "help": "FTRL: Follow the Proximal Regularized Leader",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "ftrl_alpha",
                    "help": "Learning rate for FTRL optimization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "ftrl_beta",
                    "help": "Learning rate for FTRL optimization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Follow the Regularized Leader - Pistol Options",
            "options": [
                {
                    "name": "pistol",
                    "help": "PiSTOL: Parameter-free STOchastic Learning",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "ftrl_alpha",
                    "help": "Learning rate for FTRL optimization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "ftrl_beta",
                    "help": "Learning rate for FTRL optimization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Follow the Regularized Leader - Coin Options",
            "options": [
                {
                    "name": "coin",
                    "help": "Coin betting optimizer",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "ftrl_alpha",
                    "help": "Learning rate for FTRL optimization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                },
                {
                    "name": "ftrl_beta",
                    "help": "Learning rate for FTRL optimization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": false
                }
            ]
        },
        {
            "name": "[Reduction] Kernel SVM Options",
            "options": [
                {
                    "name": "ksvm",
                    "help": "Kernel svm",
                    "keep": true,
                    "necessary": true,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "reprocess",
                    "help": "Number of reprocess steps for LASVM",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "pool_greedy",
                    "help": "Use greedy selection on mini pools",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "para_active",
                    "help": "Do parallel active learning",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "pool_size",
                    "help": "Size of pools for active learning",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "subsample",
                    "help": "Number of items to subsample from the pool",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": true,
                    "default_value": 1
                },
                {
                    "name": "kernel",
                    "help": "Type of kernel",
                    "keep": true,
                    "necessary": false,
                    "type": "str",
                    "has_default": true,
                    "default_value": "linear",
                    "one_of": [
                        "linear",
                        "poly",
                        "rbf"
                    ]
                },
                {
                    "name": "bandwidth",
                    "help": "Bandwidth of rbf kernel",
                    "keep": true,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                },
                {
                    "name": "degree",
                    "help": "Degree of poly kernel",
                    "keep": true,
                    "necessary": false,
                    "type": "int",
                    "has_default": true,
                    "default_value": 2
                }
            ]
        },
        {
            "name": "[Reduction] Gradient Descent Options",
            "options": [
                {
                    "name": "sgd",
                    "help": "Use regular stochastic gradient descent update",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "adaptive",
                    "help": "Use adaptive, individual learning rates",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "adax",
                    "help": "Use adaptive learning rates with x^2 instead of g^2x^2",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "invariant",
                    "help": "Use safe/importance aware updates",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "normalized",
                    "help": "Use per feature normalized updates",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "sparse_l2",
                    "help": "Degree of l2 regularization applied to activated sparse parameters",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "l1_state",
                    "help": "Amount of accumulated implicit l1 regularization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 0.0
                },
                {
                    "name": "l2_state",
                    "help": "Amount of accumulated implicit l2 regularization",
                    "keep": false,
                    "necessary": false,
                    "type": "float",
                    "has_default": true,
                    "default_value": 1.0
                }
            ]
        },
        {
            "name": "Input Options",
            "options": [
                {
                    "name": "data",
                    "help": "Example set",
                    "short_name": "d",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "daemon",
                    "help": "Persistent daemon mode on port 26542",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "foreground",
                    "help": "In persistent daemon mode, do not run in the background",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "port",
                    "help": "Port to listen on; use 0 to pick unused port",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "num_children",
                    "help": "Number of children for persistent daemon mode",
                    "keep": false,
                    "necessary": false,
                    "type": "uint",
                    "has_default": false
                },
                {
                    "name": "pid_file",
                    "help": "Write pid file in persistent daemon mode",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "port_file",
                    "help": "Write port used in persistent daemon mode",
                    "keep": false,
                    "necessary": false,
                    "type": "str",
                    "has_default": false
                },
                {
                    "name": "cache",
                    "help": "Use a cache.  The default is <data>.cache",
                    "short_name": "c",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "cache_file",
                    "help": "The location(s) of cache_file",
                    "keep": false,
                    "necessary": false,
                    "type": "list[str]",
                    "has_default": false
                },
                {
                    "name": "json",
                    "help": "Enable JSON parsing",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "dsjson",
                    "help": "Enable Decision Service JSON parsing",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "kill_cache",
                    "help": "Do not reuse existing cache: create a new one always",
                    "short_name": "k",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "compressed",
                    "help": "use gzip format whenever possible. If a cache file is being created, this option creates a compressed cache file. A mixture of raw-text & compressed inputs are supported with autodetection.",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "no_stdin",
                    "help": "Do not default to reading from stdin",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "no_daemon",
                    "help": "Force a loaded daemon or active learning model to accept local input instead of starting in daemon mode",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "chain_hash",
                    "help": "Enable chain hash in JSON for feature name and string feature value. e.g. {'A': {'B': 'C'}} is hashed as A^B^C.",
                    "keep": true,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                },
                {
                    "name": "flatbuffer",
                    "help": "Data file will be interpreted as a flatbuffer file",
                    "keep": false,
                    "necessary": false,
                    "type": "bool",
                    "has_default": false
                }
            ]
        }
    ]
}
Clone this wiki locally