> ## Documentation Index
> Fetch the complete documentation index at: https://docs.simplismart.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Start a new LLM/VLM training job

> Submit a new training job with the specified configuration, training data, and metadata.



## OpenAPI

````yaml openapi-specs/playground/llm-training.yaml POST /job/
openapi: 3.1.0
info:
  title: LLM/VLM Training API
  description: API endpoints for training, monitoring, and managing LLM/VLM models
  version: 2.0.0
servers:
  - url: https://training-suite.app.simplismart.ai
    description: Training Suite Production Server
security:
  - BearerAuth: []
tags:
  - name: Training
    description: LLM/VLM model training endpoints
paths:
  /job/:
    post:
      tags:
        - Training
      summary: Start a new LLM/VLM training job
      description: >-
        Submit a new training job with dataset configuration, model details,
        training configuration, and infrastructure requirements.
      operationId: createTrainingJob
      parameters:
        - in: header
          name: Authorization
          schema:
            type: string
          required: true
          description: Bearer token for authentication and authorization.
          example: Bearer <jwt-token>
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                org:
                  type: string
                  description: Organization ID associated with the training job.
                  example: 0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f
                experiment_name:
                  type: string
                  description: Name assigned to the training experiment.
                  example: launch-simplismart-causal_lm-lora
                dataset_config:
                  type: string
                  description: >-
                    JSON-formatted string containing dataset preprocessing and
                    split configuration.
                  example: |
                    {
                      "preprocessing": {
                        "lazy_tokenize": true,
                        "streaming": false,
                        "prompt": {
                          "system": null,
                          "max_length": 4096,
                          "template": null
                        }
                      },
                      "split": {
                        "type": "random",
                        "ratios": [0.9, 0.1]
                      }
                    }
                model_details:
                  type: string
                  description: >-
                    JSON-formatted string containing model configuration
                    including base model, quantization, and ownership details.
                  example: |
                    {
                      "base_model": "meta-llama/Llama-3.2-1B-Instruct",
                      "ownership": "public",
                      "source_type": "hf",
                      "model_type": "llm",
                      "quantization": {
                        "quant_bits": 4
                      }
                    }
                train_config:
                  type: string
                  description: >-
                    JSON-formatted string containing training configuration
                    including hyperparameters, adapter settings, and distributed
                    training options.
                  example: |
                    {
                      "type": "sft",
                      "torch_dtype": "bfloat16",
                      "task_type": "causal_lm",
                      "train_type": "lora",
                      "tuner_backend": "simplismart",
                      "hyperparameters": {
                        "num_epochs": 1,
                        "per_device_train_batch_size": 8,
                        "per_device_eval_batch_size": 8,
                        "gradient_checkpointing": true,
                        "save_steps": 500,
                        "save_total_limit": 2,
                        "eval_steps": 500,
                        "logging_steps": 5,
                        "learning_rate": 0.0001,
                        "dataloader_num_workers": 1
                      },
                      "adapter_config": {
                        "r": 16,
                        "alpha": 16,
                        "dropout": 0.1,
                        "targets": ["all-linear"]
                      },
                      "distributed": {
                        "type": "ddp"
                      }
                    }
                dataset_details:
                  type: string
                  description: >-
                    JSON-formatted string containing dataset information
                    including path, format, and access credentials.
                  example: |
                    {
                      "dataset_name": "dataset-name",
                      "dataset_path": "s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl",
                      "dataset_description": "",
                      "dataset_type": "jsonl",
                      "dataset_format": "sharegpt",
                      "source_type": "s3",
                      "ownership": "private",
                      "secret_id": "<your-secret-key>",
                      "region": "us-west-2"
                    }
                infra_config:
                  type: string
                  description: >-
                    JSON-formatted string containing infrastructure requirements
                    including GPU type, count, and node configuration.
                  example: |
                    {
                      "gpu_type": "h100",
                      "gpu_count": 2,
                      "infra_type": "simplismart",
                      "node_count": 2
                    }
              required:
                - org
                - experiment_name
                - dataset_config
                - model_details
                - train_config
                - dataset_details
                - infra_config
      responses:
        '200':
          description: Training job submitted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingJobResponse'
        '400':
          description: Invalid request, such as missing or incorrect parameters.
        '401':
          description: Unauthorized access due to invalid or missing authorization token.
        '500':
          description: Internal server error while creating the training job.
components:
  schemas:
    TrainingJobResponse:
      type: object
      properties:
        request_id:
          type: string
          description: Unique identifier for the training job request
        status:
          type: string
          description: Initial status of the training job
          enum:
            - QUEUED
            - RUNNING
            - COMPLETED
            - FAILED
            - CANCELED
        message:
          type: string
          description: Additional information about the job submission
        experiment_name:
          type: string
          description: Name of the training experiment
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token for authentication

````