Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.
Pydantic model for training request validation.
This version consolidates all model name and parameter logic into a single
validator to prevent redundant operations and fix the duplicate suffix bug.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"phospho","colors":{"primary":"#00FF00","light":"#00FF00","dark":"#1E1E1E"},"favicon":"/favicon.svg","logo":null,"api":{"openapi":"openapi.yml"},"appearance":{"default":"dark","strict":true},"navbar":{"links":[{"label":"Contact us","href":"mailto:contact@phospho.ai"}],"primary":{"type":"button","label":"Get hardware","href":"https://robots.phospho.ai?utm_source=docs"}},"seo":{"metatags":{"og:site_name":"docs.phospho.ai","og:title":"phospho starter pack documentation","og:description":"The toolkit for AI robotics","og:url":"https://docs.phospho.ai","og:image":"/logo/light.svg","og:logo":"/logo/logo.svg","twitter:title":"phospho starter pack documentation","twitter:description":"The toolkit for AI robotics","twitter:url":"https://docs.phospho.ai","twitter:image":"/logo/light.svg","twitter:site":"@phospho_ai"},"indexing":"navigable"},"footer":{"socials":{"twitter":"https://twitter.com/phospho_ai","github":"https://github.com/phospho-app/phosphobot","youtube":"https://www.youtube.com/@phospho_ai","website":"https://robots.phospho.ai?utm_source=docs","linkedin":"https://www.linkedin.com/company/phospho-app/","discord":"https://discord.gg/cbkggY6NSK"}},"integrations":{"posthog":{"apiKey":"phc_EesFKS4CVoyc0URzJN0FOETpg7KipCBEpRvHEvv5mDF","apiHost":"https://app.posthog.com"}},"navigation":{"global":{"tabs":[{"tab":"phospho pro","href":"https://phospho.ai/pro?utm_source=docs"},{"tab":"Github","href":"https://github.com/phospho-app/phosphobot"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"phospho","hasAudioNarration":false,"actualSubdomain":"phospho","customDomains":["docs.phospho.ai"],"gitSource":{"type":"github","owner":"phospho-app","repo":"docs","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21e614a8fc07c2afd36d73","collectionId":"c0f5cd35-0e4f-49a0-aa0e-c2273ca7c742","schemaVersion":"v2"},"feedback":{"thumbs":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6a21e614a8fc07c2afd36d73:success","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Documentation","count":51},{"language":"default","tag":"API Reference","count":25},{"language":"default","tag":"Control","count":15},{"language":"default","tag":"Learn about AI and robotics","count":9},{"language":"default","tag":"phosphobot Basic Usage","count":6},{"language":"default","tag":"AI model","count":4},{"language":"default","tag":"Examples","count":4},{"language":"default","tag":"Hardware","count":4},{"language":"default","tag":"Camera","count":3},{"language":"default","tag":"Recording","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"ai-training/start-training","slug":"/ai-training/start-training","pageMetadata":{"openapi":"post /training/start","title":"Start training a model","description":"Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.","href":"/ai-training/start-training"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /training/start","title":"Start training a model","description":"Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.","href":"/ai-training/start-training"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.","operationId":"start_training_training_start_post","requestBody":"f8b0d967-1f35-4c2c-95d6-987cb02a48f1","responses":{"200":"ad0636b6-a64f-42c8-9263-e780640180f7","422":"28df6df2-3380-48ad-8c31-0152b826c286"},"summary":"Start training a model","tags":["training"],"method":"post","type":"path","servers":[],"security":[],"path":"/training/start","baseUrlOptions":[],"title":"Start training a model","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"description":"Pydantic model for training request validation.\nThis version consolidates all model name and parameter logic into a single\nvalidator to prevent redundant operations and fix the duplicate suffix bug.","properties":{"dataset_name":{"description":"Dataset repository ID on Hugging Face, should be a public dataset","title":"Dataset Name","type":"string","isRequired":true,"uniqueKey":"dataset_name","typeLabel":"string"},"model_type":{"description":"Type of model to train, supports 'ACT', 'gr00t', and 'pi0'","enum":["ACT","ACT_BBOX","gr00t","pi0","custom"],"title":"Model Type","type":"string","isRequired":true,"uniqueKey":"model_type","typeLabel":"enum\u003cstring>"},"model_name":{"oneOf":[{"type":"string","title":"Model Name","description":"Name of the trained model to upload to Hugging Face, should be in the format phospho-app/\u003cmodel_name> or \u003cmodel_name>","uniqueKey":"model_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Name","description":"Name of the trained model to upload to Hugging Face, should be in the format phospho-app/\u003cmodel_name> or \u003cmodel_name>","uniqueKey":"model_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"model_name","typeLabel":"string | null"},"private_mode":{"default":false,"description":"Whether to use private training (PRO users only)","title":"Private Mode","type":"boolean","uniqueKey":"private_mode","typeLabel":"boolean"},"training_params":{"oneOf":[{"type":"object","title":"TrainingParamsAct","description":"Training parameters are left to None by default and are set depending on the dataset in the training pipeline.","properties":{"batch_size":{"oneOf":[{"type":"integer","title":"Batch Size","description":"Batch size for training, we run this on an A10G. Leave it to None to auto-detect based on your dataset","maximum":150,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"training_params.oneOf.0.batch_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Batch Size","description":"Batch size for training, we run this on an A10G. Leave it to None to auto-detect based on your dataset","uniqueKey":"training_params.oneOf.0.batch_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.0.batch_size","typeLabel":"integer | null"},"save_freq":{"default":5000,"description":"Number of steps between saving the model.","exclusiveMinimum":0,"maximum":1000000,"title":"Save Freq","type":"integer","uniqueKey":"training_params.oneOf.0.save_freq","typeLabel":"integer"},"steps":{"oneOf":[{"type":"integer","title":"Steps","description":"Number of training steps. Leave it to None to auto-detect based on your dataset","maximum":1000000,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"training_params.oneOf.0.steps.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Steps","description":"Number of training steps. Leave it to None to auto-detect based on your dataset","uniqueKey":"training_params.oneOf.0.steps.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.0.steps","typeLabel":"integer | null"}},"additionalProperties":true,"uniqueKey":"training_params.oneOf.0","typeLabel":"TrainingParamsAct · object"},{"type":"object","title":"TrainingParamsActWithBbox","description":"Training parameters for ACT with bounding box","properties":{"batch_size":{"oneOf":[{"type":"integer","title":"Batch Size","description":"Batch size for training, we run this on an A10G. Leave it to None to auto-detect based on your dataset","maximum":150,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"training_params.oneOf.1.batch_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Batch Size","description":"Batch size for training, we run this on an A10G. Leave it to None to auto-detect based on your dataset","uniqueKey":"training_params.oneOf.1.batch_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.1.batch_size","typeLabel":"integer | null"},"image_key":{"default":"main","description":"Key for the image to run detection on, e.g. 'main' or 'images.main'","examples":["main","images.main"],"minLength":1,"title":"Image Key","type":"string","uniqueKey":"training_params.oneOf.1.image_key","typeLabel":"string"},"image_keys_to_keep":{"description":"Optional list of image keys to keep. If none, all image keys will be dropped.","items":{"type":"string","uniqueKey":"training_params.oneOf.1.image_keys_to_keep.items.[INDEX]","typeLabel":"string"},"title":"Image Keys To Keep","type":"array","uniqueKey":"training_params.oneOf.1.image_keys_to_keep","typeLabel":"string[]"},"save_freq":{"default":5000,"description":"Number of steps between saving the model.","exclusiveMinimum":0,"maximum":1000000,"title":"Save Freq","type":"integer","uniqueKey":"training_params.oneOf.1.save_freq","typeLabel":"integer"},"steps":{"oneOf":[{"type":"integer","title":"Steps","description":"Number of training steps. Leave it to None to auto-detect based on your dataset","maximum":1000000,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"training_params.oneOf.1.steps.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Steps","description":"Number of training steps. Leave it to None to auto-detect based on your dataset","uniqueKey":"training_params.oneOf.1.steps.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.1.steps","typeLabel":"integer | null"},"target_detection_instruction":{"default":"e.g.: green lego brick, red ball, blue plushy...","description":"Instruction for the target object to detect, e.g. 'red/orange lego brick'","examples":["red/orange lego brick","brown plushy","blue ball"],"minLength":4,"title":"Target Detection Instruction","type":"string","uniqueKey":"training_params.oneOf.1.target_detection_instruction","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"training_params.oneOf.1","typeLabel":"TrainingParamsActWithBbox · object"},{"type":"object","title":"TrainingParamsGr00T","description":"Training parameters for the model.","properties":{"batch_size":{"oneOf":[{"type":"integer","title":"Batch Size","description":"Batch size for training. Decrease it if you get an Out Of Memory (OOM) error","default":64,"maximum":128,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"training_params.oneOf.2.batch_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Batch Size","description":"Batch size for training. Decrease it if you get an Out Of Memory (OOM) error","default":64,"uniqueKey":"training_params.oneOf.2.batch_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.2.batch_size","typeLabel":"integer | null"},"data_dir":{"default":"data/","description":"The directory to save the dataset to","title":"Data Dir","type":"string","uniqueKey":"training_params.oneOf.2.data_dir","typeLabel":"string"},"learning_rate":{"default":0.0001,"description":"Learning rate for training.","exclusiveMinimum":0,"maximum":1,"title":"Learning Rate","type":"number","uniqueKey":"training_params.oneOf.2.learning_rate","typeLabel":"number"},"num_epochs":{"default":10,"description":"Number of epochs to train for.","exclusiveMinimum":0,"maximum":100,"title":"Num Epochs","type":"integer","uniqueKey":"training_params.oneOf.2.num_epochs","typeLabel":"integer"},"output_dir":{"default":"outputs/","description":"The directory to save the model to","title":"Output Dir","type":"string","uniqueKey":"training_params.oneOf.2.output_dir","typeLabel":"string"},"save_steps":{"default":1000,"description":"Number of steps between saving the model.","exclusiveMinimum":0,"maximum":100000,"title":"Save Steps","type":"integer","uniqueKey":"training_params.oneOf.2.save_steps","typeLabel":"integer"},"validation_data_dir":{"oneOf":[{"type":"string","title":"Validation Data Dir","description":"Optional directory to save the validation dataset to. If None, validation is not run.","uniqueKey":"training_params.oneOf.2.validation_data_dir.oneOf.0","typeLabel":"string"},{"type":"null","title":"Validation Data Dir","description":"Optional directory to save the validation dataset to. If None, validation is not run.","uniqueKey":"training_params.oneOf.2.validation_data_dir.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.2.validation_data_dir","typeLabel":"string | null"},"validation_dataset_name":{"oneOf":[{"type":"string","title":"Validation Dataset Name","description":"Optional dataset repository ID on Hugging Face to use for validation","uniqueKey":"training_params.oneOf.2.validation_dataset_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Validation Dataset Name","description":"Optional dataset repository ID on Hugging Face to use for validation","uniqueKey":"training_params.oneOf.2.validation_dataset_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.2.validation_dataset_name","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"training_params.oneOf.2","typeLabel":"TrainingParamsGr00T · object"},{"type":"object","title":"TrainingParamsPi0","description":"Training parameters for Pi0 model","properties":{"batch_size":{"oneOf":[{"type":"integer","title":"Batch Size","description":"Batch size for training, leave it to None to auto-detect based on your dataset","maximum":128,"minimum":0,"exclusiveMinimum":true,"uniqueKey":"training_params.oneOf.3.batch_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Batch Size","description":"Batch size for training, leave it to None to auto-detect based on your dataset","uniqueKey":"training_params.oneOf.3.batch_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.3.batch_size","typeLabel":"integer | null"},"data_dir":{"default":"data/","description":"The directory to save the dataset to","title":"Data Dir","type":"string","uniqueKey":"training_params.oneOf.3.data_dir","typeLabel":"string"},"epochs":{"default":10,"description":"Number of epochs to train for, default is 10","exclusiveMinimum":0,"maximum":50,"title":"Epochs","type":"integer","uniqueKey":"training_params.oneOf.3.epochs","typeLabel":"integer"},"learning_rate":{"default":0.0001,"description":"Learning rate for training, default is 0.0001","exclusiveMinimum":0,"maximum":1,"title":"Learning Rate","type":"number","uniqueKey":"training_params.oneOf.3.learning_rate","typeLabel":"number"},"output_dir":{"default":"outputs/","description":"The directory to save the model to","title":"Output Dir","type":"string","uniqueKey":"training_params.oneOf.3.output_dir","typeLabel":"string"},"path_to_pi0_repo":{"default":".","description":"The path to the openpi repo. If not provided, will assume we are in the repo.","title":"Path To Pi0 Repo","type":"string","uniqueKey":"training_params.oneOf.3.path_to_pi0_repo","typeLabel":"string"},"train_test_split":{"default":1,"description":"Train test split ratio, default is 1.0 (no split), should be between 0 and 1","exclusiveMinimum":0,"maximum":1,"title":"Train Test Split","type":"number","uniqueKey":"training_params.oneOf.3.train_test_split","typeLabel":"number"},"validation_dataset_name":{"oneOf":[{"type":"string","title":"Validation Dataset Name","description":"Optional dataset repository ID on Hugging Face to use for validation","uniqueKey":"training_params.oneOf.3.validation_dataset_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Validation Dataset Name","description":"Optional dataset repository ID on Hugging Face to use for validation","uniqueKey":"training_params.oneOf.3.validation_dataset_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"training_params.oneOf.3.validation_dataset_name","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"training_params.oneOf.3","typeLabel":"TrainingParamsPi0 · object"},{"type":"null","title":"Training Params","description":"Training parameters for the model.","uniqueKey":"training_params.oneOf.4","typeLabel":"null"}],"uniqueKey":"training_params","typeLabel":"TrainingParamsAct · object | TrainingParamsActWithBbox · object | TrainingParamsGr00T · object | TrainingParamsPi0 · object | null"},"user_hf_token":{"oneOf":[{"type":"string","title":"User Hf Token","description":"User's personal HF token for private training","uniqueKey":"user_hf_token.oneOf.0","typeLabel":"string"},{"type":"null","title":"User Hf Token","description":"User's personal HF token for private training","uniqueKey":"user_hf_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"user_hf_token","typeLabel":"string | null"},"wandb_api_key":{"oneOf":[{"type":"string","title":"Wandb Api Key","description":"WandB API key for tracking training, you can find it at https://wandb.ai/authorize","uniqueKey":"wandb_api_key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Wandb Api Key","description":"WandB API key for tracking training, you can find it at https://wandb.ai/authorize","uniqueKey":"wandb_api_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"wandb_api_key","typeLabel":"string | null"}},"required":["model_type","dataset_name"],"title":"TrainingRequest","type":"object","uniqueKey":"","typeLabel":"TrainingRequest · object"},"examples":{"Example":{"title":"Example","value":{"dataset_name":"\u003cstring>","model_name":"\u003cstring>","private_mode":false,"training_params":{"batch_size":75,"save_freq":5000,"steps":500000},"user_hf_token":"\u003cstring>","wandb_api_key":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"ad0636b6-a64f-42c8-9263-e780640180f7":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"training_id":{"oneOf":[{"type":"integer","title":"Training Id","description":"ID of the training to start. This is the ID returned by the training request.","isRequired":true,"uniqueKey":"training_id.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Training Id","description":"ID of the training to start. This is the ID returned by the training request.","isRequired":true,"uniqueKey":"training_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"training_id","typeLabel":"integer | null"},"message":{"oneOf":[{"type":"string","title":"Message","uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","title":"Message","uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"model_url":{"oneOf":[{"type":"string","title":"Model Url","description":"URL to the Hugging Face model card.","uniqueKey":"model_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model Url","description":"URL to the Hugging Face model card.","uniqueKey":"model_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"model_url","typeLabel":"string | null"},"status":{"default":"ok","enum":["ok","error"],"title":"Status","type":"string","uniqueKey":"status","typeLabel":"enum\u003cstring>"}},"required":["training_id"],"title":"StartTrainingResponse","type":"object","uniqueKey":"","typeLabel":"StartTrainingResponse · object"},"examples":{"Example":{"title":"Example","value":{"training_id":123,"message":"\u003cstring>","model_url":"\u003cstring>","status":"ok"}}},"exampleType":"generated"}},"description":"Successful Response","exampleType":"generated"},"28df6df2-3380-48ad-8c31-0152b826c286":{"content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"title":"Location","type":"array","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"title":"Error Type","type":"string","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"title":"Detail","type":"array","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"title":"HTTPValidationError","type":"object","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"description":"Validation Error","exampleType":"generated"}},"security":{},"servers":{}},"originalFileLocation":"openapi.yml"},"subdomain":"phospho","siteName":"phospho","title":"phospho starter pack documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-08-08T09:23:13.855Z","originalFileLocation":"ai-training/start-training.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.\">\u003cmeta data-mint-head name=\"application-name\" content=\"phospho\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"phospho starter pack documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"The toolkit for AI robotics\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"docs.phospho.ai\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.phospho.ai/ai-training/start-training\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://phospho.mintlify.app/logo/light.svg\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"phospho starter pack documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The toolkit for AI robotics\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://phospho.mintlify.app/logo/light.svg\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/phospho/Dndv_TrG-FsEA7uE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"phospho\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00FF00\">\u003cmeta data-mint-head name=\"og:logo\" content=\"/logo/logo.svg\">\u003cmeta data-mint-head name=\"twitter:url\" content=\"https://docs.phospho.ai\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.phospho.ai/ai-training/start-training\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ai-training/start-training.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.phospho.ai/#organization\",\"name\":\"phospho\",\"url\":\"https://docs.phospho.ai\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.phospho.ai#website\",\"name\":\"phospho\",\"url\":\"https://docs.phospho.ai\",\"publisher\":{\"@id\":\"https://docs.phospho.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.phospho.ai/ai-training/start-training#webpage\",\"url\":\"https://docs.phospho.ai/ai-training/start-training\",\"name\":\"Start training a model\",\"description\":\"Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.\",\"dateModified\":\"2025-08-08T09:23:13.855Z\",\"isPartOf\":{\"@id\":\"https://docs.phospho.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.phospho.ai/ai-training/start-training#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.phospho.ai/ai-training/start-training#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.phospho.ai/control/calibration-sequence\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start training a model\",\"item\":\"https://docs.phospho.ai/ai-training/start-training\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.phospho.ai/ai-training/start-training#apireference\",\"headline\":\"Start training a model\",\"name\":\"Start training a model\",\"description\":\"Start training an ACT or gr00t model on the specified dataset. This will upload a trained model to the Hugging Face Hub using the main branch of the specified dataset.\",\"url\":\"https://docs.phospho.ai/ai-training/start-training\",\"mainEntityOfPage\":{\"@id\":\"https://docs.phospho.ai/ai-training/start-training#webpage\"},\"image\":\"https://docs.phospho.ai/logo/light.svg\",\"dateModified\":\"2025-08-08T09:23:13.855Z\",\"publisher\":{\"@id\":\"https://docs.phospho.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.phospho.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"phospho\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"phospho","nav":{"global":{"tabs":[{"tab":"phospho pro","href":"https://phospho.ai/pro?utm_source=docs"},{"tab":"Github","href":"https://github.com/phospho-app/phosphobot"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to phosphobot","href":"/welcome"},{"title":"Install phosphobot","href":"/installation"}]},{"group":"phosphobot Basic Usage","pages":[{"title":"Control your robot arm","href":"/basic-usage/teleop"},{"title":"Record a robotics dataset","href":"/basic-usage/dataset-recording"},{"title":"Manipulate LeRobot datasets","href":"/basic-usage/dataset-operations"},{"title":"Train a robotics AI model","href":"/basic-usage/training"},{"title":"Control robot with AI models","href":"/basic-usage/inference"},{"title":"VR Control with a Meta Quest","href":"/examples/teleop"}]},{"group":"Learn about AI and robotics","pages":[{"title":"Core Robotics Concepts","href":"/learn/overview"},{"title":"Kinematics","href":"/learn/kinematics"},{"title":"LeRobot Dataset Format","href":"/learn/lerobot-dataset"},{"title":"How to train a good AI model","href":"/learn/improve-robotics-ai-model"},{"title":"Train robotics AI models","href":"/learn/ai-models"},{"title":"Train SmolVLA","href":"/learn/train-smolvla"},{"title":"Policies in AI Robotics","href":"/learn/policies"},{"title":"Gravity Compensation","href":"/learn/gravity-compensation"},{"title":"Cameras","href":"/learn/cameras"}]},{"group":"Hardware","pages":[{"title":"Starter pack unboxing (DK2)","href":"/unboxings/dk2"},{"title":"SO-101 Quickstart Guide","href":"/so-101/quickstart"},{"title":"SO-100 quickstart guide","href":"/so-100/quickstart"},{"title":"Dev kit unboxing (DK1)","href":"/unboxings/dk1"}]},{"group":"API Reference","pages":[{"group":"Control","icon":"robot","pages":[{"openapi":"post /calibrate","title":"Calibrate Robot","href":"/control/calibration-sequence"},{"openapi":"post /move/init","title":"Initialize Robot","href":"/control/move-init"},{"openapi":"post /move/teleop","title":"Teleoperation Control","href":"/control/move-teleoperation"},{"icon":"socks","title":"Teleoperation Control (WebSocket)","href":"/control/move-teleoperation-ws"},{"openapi":"post /move/absolute","title":"Move to Absolute Position","href":"/control/move-absolute-position"},{"openapi":"post /move/relative","title":"Move to Relative Position","href":"/control/move-relative-position"},{"openapi":"post /move/leader/start","title":"Use the leader arm to control the follower arm","href":"/control/move-leader-start"},{"openapi":"post /move/leader/stop","title":"Stop the leader-follower control","href":"/control/move-leader-stop"},{"openapi":"post /end-effector/read","title":"Read End-Effector Position","href":"/control/end-effector-state"},{"openapi":"post /torque/read","title":"Read Torque","href":"/control/read-torques"},{"openapi":"post /torque/toggle","title":"Toggle Torque","href":"/control/turn-torque"},{"openapi":"post /joints/read","title":"Read Joint Positions","href":"/control/read-joints"},{"openapi":"post /joints/write","title":"Write Joint Positions","href":"/control/write-joints"},{"openapi":"post /temperature/read","title":"Read Temperature","href":"/control/read-temperature"},{"openapi":"post /temperature/write","title":"Write the Maximum Temperature for Joints","href":"/control/write-temperature"}]},{"group":"Recording","icon":"database","pages":[{"openapi":"post /recording/start","title":"Start Recording Episode","href":"/recording/start-recording-episode"},{"openapi":"post /recording/stop","title":"Stop Recording Episode","href":"/recording/stop-recording-episode"},{"openapi":"post /recording/play","title":"Play Recording","description":"Play a recorded episode.","href":"/recording/play-recording"}]},{"group":"AI model","icon":"brain","pages":[{"openapi":"post /training/start","title":"Start training a model","href":"/ai-training/start-training"},{"openapi":"post /training/cancel","title":"Cancel Training","description":"Cancel a training job","href":"/ai-training/cancel-training"},{"openapi":"post /ai-control/start","title":"Start the auto control by AI","href":"/ai-training/ai-control-start"},{"openapi":"post /ai-control/stop","title":"Stop the auto control by AI","href":"/ai-training/ai-control-stop"}]},{"group":"Camera","icon":"camera","pages":[{"openapi":"get /video/{camera_id}","title":"Video Feed For Camera","href":"/camera/video-feed-for-camera"},{"openapi":"get /frames","title":"Get All Camera Frames","href":"/camera/frames"},{"openapi":"post /cameras/refresh","title":"Refresh Camera List","href":"/camera/cameras-refresh"}]}]},{"group":"Examples","pages":[{"title":"Simple controls","href":"/examples/control"},{"title":"Computer vision","href":"/examples/vision"},{"title":"VR Control from anywhere in the world","href":"/examples/teleop-from-anywhere"},{"title":"MCP Robotics: Controlling Robots with LLMs using phosphobot MCP","href":"/examples/mcp-for-robotics"}]},{"group":"Other","pages":[{"title":"Frequently Asked Questions","href":"/faq"}]}]}]},"title":"phospho starter pack documentation","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}