Package: mlsync
Sync your ML data seamlessly with productivity tools you loveWebsite•Installation•Docs•Examples•ContributingOverviewWhat is MLSync?MLSync is a Python library that acts as a bridge between your ML workflow and your project planning and management tools.InstallationpipinstallmlsyncWhy MLSync?Developing ML projects is a lot of fun, but they are also hard to plan and manage.
While the ML community has built several tools for developers to better track and visualize their ML workflow data,
there is a disconnect between ML workflow data and the tools that are used for project management.
MLSync is designed to bridge this gap.How Does it Work?There are four main aspects of MLSync:MLSync interfaces with modern ML experiment tracking tools such asMLflowand imports the raw data.Raw data from ML experiment tracking tools are converted to MLSync internal data format (user-defined) and stored in a database.MLSync engine processes this raw data and generates consolidated insights for your project.The insights are then converted to suitable formats and sent to your project planning and management tools such asNotion.We are actively building MLSync with the vision to become a one-stop standard interface to map data from ML experiments to project management tools.
The above figure shows the  high-level architecture of MLSync.
All the functionality is not yet available; please refer to theRoadmapfor the current status.
If you would like to contribute to MLSync, please refer to theContributingsection.ExampleIn this example, we will sync your machine learning experiments to Notion in three simple steps!1. Install MLSyncpipinstallmlsync2. Setup the Examplegit clone https://github.com/paletteml/mlsync.git: Checkout the MLSync repository.cd mlsync/examples/mlflow-notion/: Change directory to the example directorypip install -r requirements.txt: Install the requirements for this example.Note that the above step installs Pytorch. If you run into issues, please refer to thePytorchdocumentation for more information.Run example training usingpython mlflow_pytorch.py --run-name <name>. Make sure it runs (Need not complete the run).3. Notion SetupLet us now link Notion to MLSync. This is required only for the first time you run MLSync.Create anew integrationto Notion.Visitnotion.so/my-integrationsClick the+ New Integrationbutton.Name it asMLSyncand hit submit.Copy your "Internal Integration Token" from your Notion integration page.Open the.envfile in your path and update the Notion token.NOTION_TOKEN=secret_0000000000000000000000000000000000000000000Create anew pagein Notion. This will serve as the root page for your MLFlow runs.Let us name the page asDemo.Click the Share button on the top right corner of the page.Click the Invite button and then chooseMLSyncintegration.All DoneYou are now all set! Now let us sync your MLFlow runs to Notion.mlsync--configconfig.yaml{% note %}Note:First time you run, you will be prompted to choose a page to sync to.
From the options, choose the page you created in the previous step (Demo).{% endnote %}That's it! You can now view your MLFlow runs in Notion. As long as mlsync is running in the background,
all your future experiments and runs in this directory should appear in the selected Notion page.TroubleshootingIf you are getting an error related to theNOTION_TOKENnot being found, you can pass the--notion-tokenflag tomlsyncto specify the token.If you are having trouble with MNIST dataflow download, you can try to download the data manually fromhere.Pleasecontact usfor any other issues.Please raise an issue, or reach out if you have any other errors.AdvancedYou can override the Notion page id, token, and other configurations by either modifying theconfig.yamlfile or by passing the arguments to themlsynccommand. Runmlsync --helpto see the available arguments.Custom Report Formats:mlsyncallows you to customize the report much further. You can customize the report by adding your ownformat.yamlfile. Read documentationhereto learn more.Custom Refresh Rates: You can control the refresh rate of the report by setting therefresh_ratefield in the configuration file.Restarting mlsync: You can restart mlsync any time without losing earlier runs.Enjoy! If you have any further questions, pleasecontact us.RoadmapWe want to support different training environments and different productivity tools.Productivity ToolsNotion:SupportedTrello: PlannedConfluence:In progressJira: PlannedMonitoring FrameworksMLFlow:SupportedTensorBoard:In progressClearML: PlannedProgrammatic APIPlannedDo you have other tools/frameworks you would like to see supported? Let us know!ContributingWe welcome contributions from the community. Please feel free to open an issue or pull request. Or, if you are interested in working closely with us, pleasecontact usdirectly. We will be happy to talk to you!