{"id":26415606,"url":"https://github.com/vessl-ai/tvault","last_synced_at":"2025-09-04T07:42:32.337Z","repository":{"id":153590444,"uuid":"627321718","full_name":"vessl-ai/tvault","owner":"vessl-ai","description":"Quickly compare PyTorch models in a local, lightweight registry","archived":false,"fork":false,"pushed_at":"2023-04-27T04:26:56.000Z","size":92,"stargazers_count":23,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-17T07:17:02.642Z","etag":null,"topics":["deep-learning","machine-learning","mlops","pytorch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vessl-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-13T08:19:13.000Z","updated_at":"2024-04-16T12:51:33.000Z","dependencies_parsed_at":"2023-05-20T07:00:31.130Z","dependency_job_id":null,"html_url":"https://github.com/vessl-ai/tvault","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vessl-ai%2Ftvault","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vessl-ai%2Ftvault/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vessl-ai%2Ftvault/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vessl-ai%2Ftvault/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vessl-ai","download_url":"https://codeload.github.com/vessl-ai/tvault/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244041957,"owners_count":20388334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","machine-learning","mlops","pytorch"],"created_at":"2025-03-18T00:53:53.836Z","updated_at":"2025-03-18T00:53:54.738Z","avatar_url":"https://github.com/vessl-ai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/97027715/232697803-3571bd58-8d4a-4c42-adba-96f300ef72c4.png\" width=\"35%\"\u003e\n    \u003cimg alt=\"tvault\" src=\"https://user-images.githubusercontent.com/97027715/232697811-f0a666a6-acbd-43a9-8af9-dea3e7cc0936.png\" width=\"35%\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca target=\"_blank\" href=\"https://www.linkedin.com/company/vesslai\"\u003e\u003cimg src=\"https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn\u0026logo=linkedin\u0026style=social\"\u003e\u003c/a\u003e\u0026nbsp;\n    \u003ca target=\"_blank\" href=\"https://vesslai.medium.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/style--5eba00.svg?label=Medium\u0026logo=medium\u0026style=social\"\u003e\u003c/a\u003e\u0026nbsp;\n    \u003ca target=\"_blank\" href=\"https://www.youtube.com/@vesslai4254\"\u003e\u003cimg src=\"https://img.shields.io/badge/style--5eba00.svg?label=YouTube\u0026logo=youtube\u0026style=social\"\u003e\u003c/a\u003e\u0026nbsp;\n    \u003ca target=\"_blank\" href=\"https://join.slack.com/t/vessl-ai-community/shared_invite/zt-1a6schu04-NyjRKE0UMli58Z_lthBICA\"\u003e\u003cimg src=\"https://img.shields.io/badge/Slack-Join-4A154B?logo=slack\u0026style=social\"\u003e\u003c/a\u003e\u0026nbsp;  \n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\n    Quickly compare PyTorch models in a local, lightweight registry\n\u003c/h3\u003e\n\n----\n\n`tvault` is designed to help academic researchers iterate their models faster without logging overheads. \n\nMany of the academic researchers we encounter simply want to *get going* with minimum setup and configurations. This often means using local codebase as opposed to integrating tools like [VESSL Experiments](https://docs.vessl.ai/api-reference/python-sdk/utils/vessl.log) and Weights \u0026 Biases to git-committed codes. \n\n`tvault` is \"git diff for machine learning\" \u0026mdash; a simple, lightweight framework for quickly tracking and comparing ML experiments in a local model registry. \n\n* Track and version models locally with `tvault.log_all()`\n* Get a birds-eye differences of two experiments with `tvault --diff_flag`\n\n\u003cimg alt=\"tvault-diff\" src=\"https://user-images.githubusercontent.com/97027715/232963478-b4dbed5a-b380-4929-b71b-c01121899574.gif\"\u003e\n\nGet started with pip install:\n```\npip install tvault\n```\n\nFor those who are already using [VESSL Python SDK and CLI](https://docs.vessl.ai/api-reference/what-is-the-vessl-cli-sdk),\n```\npip install \"vessl[tvault]\"\n```\n\nFollow our guide below with our [MNIST example code](https://github.com/vessl-ai/tvault/blob/1a6b5e038ff3fd4780a186bec7a555215a5e3c31/assets/mnist-train.py).\n\n----\n\u003cbr\u003e\n\n## Getting started with `tvault.log()`\n\nInsert `tvault.log()` in your code's training loop with the metrics you want to track as tags.\nhttps://github.com/vessl-ai/tvault/blob/4bebfe48594b00597889b2696dcec532d72b33d4/assets/mnist-train.py#L145-L146\n\n`tvault.log()` will automatically create the following:\n\n* A folder `model_log` under your current directory - a tracking dashboard or model registry for your code\n* A unique hash for the model and model ID for each training run with the key metrics\n\n\u003cimg alt=\"tvault-model\" src=\"https://user-images.githubusercontent.com/97027715/232966704-b01ae877-a39e-4f9e-be19-148c69259485.gif\"\u003e\n\n## Look up experiments with `tvault --find_flag`\n\n`tvault`'s `find_flag` option allows you to look up different experiments with a simple CLI command. `find_flag` offers three different ways of exploring results:\n\n  1. Search by hash \u0026mdash; The command below shows all experiments with the hash value of  `2ba4adf`. \n```\ntvault --find_flag --condition hash --hash 2ba4adf\n```\n\u003cimg alt=\"tvault-diff-hash\" src=\"https://user-images.githubusercontent.com/97027715/232963946-ca830858-c215-4c6c-a798-3266df76ba37.gif\"\u003e\n\n  2. Search by result \u0026mdash; The command below shows all experiments with the result between `50` and `100`.\n```\ntvault --find_flag --condition result --min 90 --max 100\n```\n\u003cimg alt=\"tvault-diff-result\" src=\"https://user-images.githubusercontent.com/97027715/232963947-4f8b222c-b573-4cb4-aabe-5a4589614ec8.gif\"\u003e\n\n  3. Search by tags \u0026mdash; The command below shows all experiments tagged as `0.5x`.\n```\ntvault --find_flag --condition tag --tag_type size --tag 0.5x\n```\n\u003cimg alt=\"tvault-diff-tag\" src=\"https://user-images.githubusercontent.com/97027715/232963949-57cc88de-f5a9-440e-a447-8a8d412e8a5b.gif\"\u003e\n\n## Compare models with `tvault --diff_flag`\n\n`tvault`'s `diff_flag` option allows you to look up the difference of two models by specifying the model hash and index. `tvault` automatically detects and displays the changes in functions while removing git diffs that are not related to the model.\n\nThis is useful when you have a baseline model that you want to iterate with different hyperparameters and higher-level architectures without digging through your code line-by-line. `tvault` can also get the diff related to the optimizers.\n```\ntvault --diff_flag --sha1 f407ed0 --index1 0 --sha2 737b47a --index2 0\n```\n\u003cimg alt=\"tvault-diff\" src=\"https://user-images.githubusercontent.com/97027715/232963478-b4dbed5a-b380-4929-b71b-c01121899574.gif\"\u003e\n\n## Issues, feature requests, and questions\n\nWe are excited to hear your feedback!\n* For issues and feature requests, please open a GitHub issue.\n* For questions, please use GitHub Discussions.\n* For general discussions, join our community Slack.\n\n## VESSL for Academics\n\n\u003cimg alt=\"vessl-for-academics\" src=\"https://user-images.githubusercontent.com/97027715/232964554-6af7dabe-8409-4158-bafb-97e19441fac6.jpeg\"\u003e\n\nOur free academic plan is dedicated to help graduate students set up a modern ML research workflow with zero maintenance overheads. [Learn more](https://vesslai.notion.site/VESSL-for-Academics-fa47bf5e69b44e92b5daaead758cb057) about VESSL's full-fledged, fully-managed job scheduler and experiment tracking.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvessl-ai%2Ftvault","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvessl-ai%2Ftvault","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvessl-ai%2Ftvault/lists"}