{
  "$schema": "https://json-schema.org/draft-07/schema#",
  "properties": {
    "wandb": {
      "description": "Configures how WandB behaves",
      "properties": {
        "secretValue": {
          "type": ["string", "null"],
          "pattern": "^(|[a-zA-Z0-9]{32})$"
        }
      },
      "required": []
    },
    "customizerConfig": {
      "description": "Configures how Customizer behaves",
      "properties": {
        "training": {
          "properties": {
            "training_timeout": {
              "description": "The timeout in seconds for training.",
              "minimum": 1,
              "type": "integer"
            }
          }
        },
        "models": {
          "description": "A map of model name to model configuration",
          "patternProperties": {
            ".*": {
              "properties": {
                "model_uri": {
                  "description": "The URI to download the model from to hydrate the model cache for training jobs. To configure downloading the model from NGC, follow the URI format ngc://org/optional-team/model-name:version. The team and version are optional. To configure downloading the model from NeMo Data Store, follow the URI format `hf://namespace/model-name@version`. The version is optional and will default to `main`.",
                  "type": "string"
                },
                "model_path": {
                  "description": "The file path to the model accessible by the training job.",
                  "type": "string"
                },
                "training_options": {
                  "description": "Resource configuration for the training option",
                  "type": "array",
                  "items": {
                    "required": ["training_type", "finetuning_type", "num_gpus"],
                    "type": "object",
                    "properties": {
                      "training_type": {
                        "description": "the objective",
                        "type": "string",
                        "enum": ["sft"]
                      },
                      "finetuning_type": {
                        "description": "Training optimization",
                        "type": "string",
                        "enum": ["lora", "p_tuning", "all_weights"]
                      },
                      "num_gpus": {
                        "description": "The minimum number of GPUs per node to train a model for the training option.",
                        "minimum": 1,
                        "type": "integer"
                      },
                      "num_nodes": {
                        "description": "The minimum number of nodes to train a model for the training option.",
                        "minimum": 1,
                        "type": "integer"
                      },
                      "tensor_parallel_size": {
                        "description": "The number of GPUs which a tensor or layer in a neural network is split across.",
                        "minimum": 1,
                        "type": "integer"
                      }
                    }
                  }
                },
                "micro_batch_size": {
                  "description": "The number of examples processed per data parallel rank during training",
                  "minimum": 1,
                  "type": "integer"
                },
                "max_seq_length": {
                  "description": "The maximum sequence length supported by the model (2048, 4096, etc.)",
                  "minimum": 2048,
                  "type": "integer"
                },
                "sequence_packing": {
                  "description": "Sequence Packing Parameters",
                  "type": "object",
                  "properties": {
                    "pack_size": {
                      "description": "Max length of packed sequence",
                      "minimum": 1,
                      "type": "integer"
                    }
                  }
                }
              },
              "type": "object",
              "required": ["model_path", "training_options", "max_seq_length"]
            }
          },
          "type": "object"
        },
        "openTelemetry": {
          "properties": {
            "enabled": {
              "type": "boolean",
              "default": true
            },
            "tracesExporter": {
              "type": "string",
              "enum": ["otlp", "console", "none"]
            },
            "metricsExporter": {
              "type": "string",
              "enum": ["otlp", "console", "none"]
            },
            "logsExporter": {
              "type": "string",
              "enum": ["otlp", "console", "none"]
            },
            "exporterOtlpEndpoint": {
              "type": "string"
            }
          }
        }
      },
      "type": "object"
    }
  },
  "title": "Values",
  "type": "object"
}
