Combining your efforts, expertise and resources.
Collaboration is a vital aspect of any MLOps team, as it often requires bringing together individuals with diverse skills and expertise to create a cohesive and effective workflow for machine learning projects. A successful MLOps team needs seamless collaboration between data scientists, engineers, and DevOps professionals to develop, train, deploy, and maintain machine learning models. This can be challenging, as it requires coordination across various tools, processes, and frameworks.
This is where ZenML excels: providing a collaborative platform that goes beyond your team and includes the community. With ZenML, you can effortlessly work together with others, sharing resources and insights to achieve your shared goals. Removing barriers to collaboration enables teams to iterate on ideas and problems more efficiently, leading to faster results.
- With a deployed ZenML instance, users can create their own teams and project structures. They can easily share pipelines, runs, stacks, and other resources, streamlining the workflow and promoting teamwork.
- On the other hand, there's the ZenML Hub. Here, you can browse a collection of community-driven solutions, share your own code, and collaborate with fellow community members.
This section will center on managing users, their roles, and permissions within a deployed ZenML instance, while the ZenML Hub
After you have deployed ZenML and connected your local client with the deployment, you can go ahead and start adding your teammates as users.
By default, all users have
Administratorpermissions throughout the ZenML dashboard. However, one user can always choose to share or not share their stacks.
You can go to the settings page from the bottom of the sidebar or top right of the header, and edit your details below:
In the project settings, you can see a list of users who are invited or signed up for this ZenML deployment. You can invite a new user here with a unique username. The dashboard will generate a new token for you in the form of a URL that you can copy and send to your teammate.
You can also mimic this behavior in a connected ZenML with the following commands:
zenml user create USERNAME
This creates a new user. If an empty password is configured, an activation token is generated and a link to the dashboard is provided where the user can sign up. d
From the invitation URL, a user can sign up as expected:
And that's it 🚀. We went from a simple ZenML pip install to a fully-fledged multi-user, cloud deployment of ZenML.
Now, the next steps are to create stacks with components from the component gallery, or dive into advanced topics to learn about the inner workings of ZenML!
The following global permissions are available within ZenML.
read: Read permission on all resources. write: Write permission on all resources. me: Permission for a user to edit their own user metadata (username, password, etc.)
To view the available permissions through the CLI simply run:
zenml permission list
Users are granted Permissions through Roles. You can list all roles with their associated permissions by running.
zenml role list
By default, ZenML comes with two roles.
admin: The admin role grants all permissions globally. (Permissions: read, write, me )
guest: The guest role lets users change their own user data and grants general global read access. (Permissions: read, me )
You can also create your own roles through the CLI:
zenml role create <ROLE_NAME> -p read -p write -p me
Roles can be assigned to users through the CLI:
zenml role assign <ROLE_NAME> --user <USER_NAME>
alternatively, this can also be done during user creation
zenml user create <USER_NAME> --role <ROLE_NAME>
By default, user creation through the UI will grant the user
adminrights. This default behavior will change in the next iteration of the Dashboard as the role will be selectable during user creation and in the User settings menu.
If you want to inspect which roles have been assigned to which users, simply run:
zenml role assignment list
- Permissions and roles only become relevant if you are running through a deployed ZenML Server. In local settings with a direct connection to a SQLite Database user access is not limited/granted by roles.