Repository navigation
Document custom training containers - #5407
Merged
Jeremy Rose (jeremyrose-viam) merged 3 commits intoOct 13, 2026
Merged
Conversation
Add a page on registering and training with custom training containers, document `train containers register`/`delete` and `list --org-id`, add a `training-script test-local` reference section, and replace `--container-version` with `--container-id` across the CLI and custom training script docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✅ Deploy Preview for viam-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
- Explain how Arguments reach the training script - Move the local-testing rationale and no-GPU caveat to the test-local section, and link to it from the custom containers page - Point the custom containers page at the existing submit and monitor steps instead of repeating them - Trim repeated list, permission, and description text - Drop the hyperparameter tuning limitation Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ers-docs-b3a2f5 # Conflicts: # docs/cli/reference.md # docs/train/custom-training-scripts.md
Eliza Farley (elizafarley)
requested a review
from Lillian Hwang-Geddes (lvhg)
October 12, 2026 19:47
Jeremy Rose (jeremyrose-viam)
approved these changes
Oct 13, 2026
Jeremy Rose (jeremyrose-viam)
removed the request for review
from Lillian Hwang-Geddes (lvhg)
October 13, 2026 21:58
Jeremy Rose (jeremyrose-viam)
marked this pull request as ready for review
October 13, 2026 21:58
Jeremy Rose (jeremyrose-viam)
deleted the
claude/custom-containers-docs-b3a2f5
branch
October 13, 2026 21:58
|
🔎💬 Inkeep AI search and chat service is syncing content for source 'Viam Docs' |
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Note
The CLI change this PR documents is released. rdk #6566 and #6571 shipped in CLI v1.12.0 (released 2026-10-13), which replaces
--container-versionwith--container-id. Users on v1.11.x or earlier still have the old flag.Summary
Documents custom training containers: public Docker Hub images an org registers with Viam so custom training jobs run in a prebuilt environment instead of pip-installing heavy dependencies on billed GPU time.
docs/train/custom-containers.md: what custom containers are, requirements, a security caution, how to build and push an image, register (CLI/Python) with the errors registration can return, list and delete containers, and limitations. For testing locally, submitting, and monitoring, it links to the existing sections on the custom training scripts page instead of repeating them. HTML comments mark where to add Web UI tabs for register, list, and delete once that UI exists.docs/train/custom-training-scripts.md(keeps the premium GPU billing sentence from Update custom training docs for premium GPU billing #5406): jobs run in a Viam-managed or custom container,--container-idintest-localandsubmit, the Container version dropdown lists both Viam-managed and custom containers, the Arguments step explains how arguments reach the script,test-localexplains why to test locally and that it runs without a GPU, the API tab points tosubmit_custom_training_jobwithcontainer_id, and the job details panel shows the container.docs/cli/reference.md: builds on thetrain containers list/register/deletesections that Update CLI reference for viam train containers register, delete and list --org-id #5397 added: links them to the new page, addsIDusage notes, and notes that deleting a container doesn't affect running jobs. Newtraining-script test-localsection.--container-idreplaces--container-versionin bothsubmit customtables and examples.docs/cli/datasets-and-training.md:--container-idthroughout and a short "Manage training containers" section (register and delete commands) that links to the new page.docs/train/overview.md: card for the new page.CLI versions
Every
--container-idusage ontrain submit custom from-registry/with-uploadandtraining-script test-localrequires CLI v1.12.0. Register, delete, andlist --org-idshipped in CLI v1.11.0.Verified against code (2026-10-12,
main)RoleOrganizationOwnerhaswrite_training_containers(viam-appauth/models/models.go), and it's checked for both register and delete. The docs say "organization owner". The scope doc said owner or operator, but the code doesn't match that.viam-appmltraining/ml_training_service.go(Docker Hub only, must exist and be public, linux/amd64).--key=value(viam-appmltraining/vertex.go).test-localrunsdocker runwithout--gpus, so local runs are CPU-only.register_custom_training_container,list_containers,delete_custom_training_container,submit_custom_training_job(container_id=...). TypeScript and Go have no container support, so they aren't documented.For reviewers
static/include/app/apis/generated/mltraining.md) listsdescriptionas optional forregister_custom_training_container, following the SDK signature, but the server rejects an empty description (errNoDescriptionSpecified). The Python example passesdescription. A follow-up could fix the SDK docstring and default upstream.docker.io/<your-username>/<image>:<tag>placeholders.Jira
DOCS-4913 (epic), DOCS-5009, DOCS-4994, DOCS-5013, DOCS-5011, DOCS-5010, DOCS-5017, DOCS-5018. DOCS-5002 and DOCS-5005 are already covered by the generated Python API reference.
Test plan
prettier@3.2.5,markdownlint-cli, andvale3.12.0 (pinned) on the changed files: no errorspython3 scripts/frontmatter_rules.pymake build-prod#train-containers-register,#train-containers-delete,#training-script-test-local, API anchors)🤖 Generated with Claude Code