curl --request POST \
--url https://training-suite.app.simplismart.ai/job/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form org=0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f \
--form experiment_name=launch-simplismart-causal_lm-lora \
--form 'dataset_config={
"preprocessing": {
"lazy_tokenize": true,
"streaming": false,
"prompt": {
"system": null,
"max_length": 4096,
"template": null
}
},
"split": {
"type": "random",
"ratios": [0.9, 0.1]
}
}
' \
--form 'model_details={
"base_model": "meta-llama/Llama-3.2-1B-Instruct",
"ownership": "public",
"source_type": "hf",
"model_type": "llm",
"quantization": {
"quant_bits": 4
}
}
' \
--form 'train_config={
"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"
}
}
' \
--form 'dataset_details={
"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"
}
' \
--form 'infra_config={
"gpu_type": "h100",
"gpu_count": 2,
"infra_type": "simplismart",
"node_count": 2
}
'import requests
url = "https://training-suite.app.simplismart.ai/job/"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('org', '0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f');
form.append('experiment_name', 'launch-simplismart-causal_lm-lora');
form.append('dataset_config', '{
"preprocessing": {
"lazy_tokenize": true,
"streaming": false,
"prompt": {
"system": null,
"max_length": 4096,
"template": null
}
},
"split": {
"type": "random",
"ratios": [0.9, 0.1]
}
}
');
form.append('model_details', '{
"base_model": "meta-llama/Llama-3.2-1B-Instruct",
"ownership": "public",
"source_type": "hf",
"model_type": "llm",
"quantization": {
"quant_bits": 4
}
}
');
form.append('train_config', '{
"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"
}
}
');
form.append('dataset_details', '{
"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"
}
');
form.append('infra_config', '{
"gpu_type": "h100",
"gpu_count": 2,
"infra_type": "simplismart",
"node_count": 2
}
');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://training-suite.app.simplismart.ai/job/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://training-suite.app.simplismart.ai/job/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://training-suite.app.simplismart.ai/job/"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://training-suite.app.simplismart.ai/job/")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://training-suite.app.simplismart.ai/job/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"message": "<string>",
"experiment_name": "<string>"
}Start a new LLM/VLM training job
Submit a new training job with the specified configuration, training data, and metadata.
curl --request POST \
--url https://training-suite.app.simplismart.ai/job/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form org=0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f \
--form experiment_name=launch-simplismart-causal_lm-lora \
--form 'dataset_config={
"preprocessing": {
"lazy_tokenize": true,
"streaming": false,
"prompt": {
"system": null,
"max_length": 4096,
"template": null
}
},
"split": {
"type": "random",
"ratios": [0.9, 0.1]
}
}
' \
--form 'model_details={
"base_model": "meta-llama/Llama-3.2-1B-Instruct",
"ownership": "public",
"source_type": "hf",
"model_type": "llm",
"quantization": {
"quant_bits": 4
}
}
' \
--form 'train_config={
"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"
}
}
' \
--form 'dataset_details={
"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"
}
' \
--form 'infra_config={
"gpu_type": "h100",
"gpu_count": 2,
"infra_type": "simplismart",
"node_count": 2
}
'import requests
url = "https://training-suite.app.simplismart.ai/job/"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('org', '0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f');
form.append('experiment_name', 'launch-simplismart-causal_lm-lora');
form.append('dataset_config', '{
"preprocessing": {
"lazy_tokenize": true,
"streaming": false,
"prompt": {
"system": null,
"max_length": 4096,
"template": null
}
},
"split": {
"type": "random",
"ratios": [0.9, 0.1]
}
}
');
form.append('model_details', '{
"base_model": "meta-llama/Llama-3.2-1B-Instruct",
"ownership": "public",
"source_type": "hf",
"model_type": "llm",
"quantization": {
"quant_bits": 4
}
}
');
form.append('train_config', '{
"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"
}
}
');
form.append('dataset_details', '{
"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"
}
');
form.append('infra_config', '{
"gpu_type": "h100",
"gpu_count": 2,
"infra_type": "simplismart",
"node_count": 2
}
');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://training-suite.app.simplismart.ai/job/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://training-suite.app.simplismart.ai/job/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://training-suite.app.simplismart.ai/job/"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://training-suite.app.simplismart.ai/job/")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://training-suite.app.simplismart.ai/job/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"org\"\r\n\r\n0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"experiment_name\"\r\n\r\nlaunch-simplismart-causal_lm-lora\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_config\"\r\n\r\n{\r\n \"preprocessing\": {\r\n \"lazy_tokenize\": true,\r\n \"streaming\": false,\r\n \"prompt\": {\r\n \"system\": null,\r\n \"max_length\": 4096,\r\n \"template\": null\r\n }\r\n },\r\n \"split\": {\r\n \"type\": \"random\",\r\n \"ratios\": [0.9, 0.1]\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model_details\"\r\n\r\n{\r\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\r\n \"ownership\": \"public\",\r\n \"source_type\": \"hf\",\r\n \"model_type\": \"llm\",\r\n \"quantization\": {\r\n \"quant_bits\": 4\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"train_config\"\r\n\r\n{\r\n \"type\": \"sft\",\r\n \"torch_dtype\": \"bfloat16\",\r\n \"task_type\": \"causal_lm\",\r\n \"train_type\": \"lora\",\r\n \"tuner_backend\": \"simplismart\",\r\n \"hyperparameters\": {\r\n \"num_epochs\": 1,\r\n \"per_device_train_batch_size\": 8,\r\n \"per_device_eval_batch_size\": 8,\r\n \"gradient_checkpointing\": true,\r\n \"save_steps\": 500,\r\n \"save_total_limit\": 2,\r\n \"eval_steps\": 500,\r\n \"logging_steps\": 5,\r\n \"learning_rate\": 0.0001,\r\n \"dataloader_num_workers\": 1\r\n },\r\n \"adapter_config\": {\r\n \"r\": 16,\r\n \"alpha\": 16,\r\n \"dropout\": 0.1,\r\n \"targets\": [\"all-linear\"]\r\n },\r\n \"distributed\": {\r\n \"type\": \"ddp\"\r\n }\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"dataset_details\"\r\n\r\n{\r\n \"dataset_name\": \"dataset-name\",\r\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\r\n \"dataset_description\": \"\",\r\n \"dataset_type\": \"jsonl\",\r\n \"dataset_format\": \"sharegpt\",\r\n \"source_type\": \"s3\",\r\n \"ownership\": \"private\",\r\n \"secret_id\": \"<your-secret-key>\",\r\n \"region\": \"us-west-2\"\r\n}\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"infra_config\"\r\n\r\n{\r\n \"gpu_type\": \"h100\",\r\n \"gpu_count\": 2,\r\n \"infra_type\": \"simplismart\",\r\n \"node_count\": 2\r\n}\r\n\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"message": "<string>",
"experiment_name": "<string>"
}Authorizations
JWT token for authentication
Headers
Bearer token for authentication and authorization.
Body
Organization ID associated with the training job.
"0bf00b43-430a-4ca3-a8b3-b13cc8dc6d4f"
Name assigned to the training experiment.
"launch-simplismart-causal_lm-lora"
JSON-formatted string containing dataset preprocessing and split configuration.
"{\n \"preprocessing\": {\n \"lazy_tokenize\": true,\n \"streaming\": false,\n \"prompt\": {\n \"system\": null,\n \"max_length\": 4096,\n \"template\": null\n }\n },\n \"split\": {\n \"type\": \"random\",\n \"ratios\": [0.9, 0.1]\n }\n}\n"
JSON-formatted string containing model configuration including base model, quantization, and ownership details.
"{\n \"base_model\": \"meta-llama/Llama-3.2-1B-Instruct\",\n \"ownership\": \"public\",\n \"source_type\": \"hf\",\n \"model_type\": \"llm\",\n \"quantization\": {\n \"quant_bits\": 4\n }\n}\n"
JSON-formatted string containing training configuration including hyperparameters, adapter settings, and distributed training options.
"{\n \"type\": \"sft\",\n \"torch_dtype\": \"bfloat16\",\n \"task_type\": \"causal_lm\",\n \"train_type\": \"lora\",\n \"tuner_backend\": \"simplismart\",\n \"hyperparameters\": {\n \"num_epochs\": 1,\n \"per_device_train_batch_size\": 8,\n \"per_device_eval_batch_size\": 8,\n \"gradient_checkpointing\": true,\n \"save_steps\": 500,\n \"save_total_limit\": 2,\n \"eval_steps\": 500,\n \"logging_steps\": 5,\n \"learning_rate\": 0.0001,\n \"dataloader_num_workers\": 1\n },\n \"adapter_config\": {\n \"r\": 16,\n \"alpha\": 16,\n \"dropout\": 0.1,\n \"targets\": [\"all-linear\"]\n },\n \"distributed\": {\n \"type\": \"ddp\"\n }\n}\n"
JSON-formatted string containing dataset information including path, format, and access credentials.
"{\n \"dataset_name\": \"dataset-name\",\n \"dataset_path\": \"s3://training-dev-datasets/ds/sharegpt_ds_half.jsonl\",\n \"dataset_description\": \"\",\n \"dataset_type\": \"jsonl\",\n \"dataset_format\": \"sharegpt\",\n \"source_type\": \"s3\",\n \"ownership\": \"private\",\n \"secret_id\": \"<your-secret-key>\",\n \"region\": \"us-west-2\"\n}\n"
JSON-formatted string containing infrastructure requirements including GPU type, count, and node configuration.
"{\n \"gpu_type\": \"h100\",\n \"gpu_count\": 2,\n \"infra_type\": \"simplismart\",\n \"node_count\": 2\n}\n"
Response
Training job submitted successfully.
Was this page helpful?