Choose a notebook solution
This page describes the differences between Vertex AI's notebook environment options so that you can choose the best one for your project.
Vertex AI provides two notebook environment solutions:
Colab Enterprise: A collaborative, managed notebook environment with the security and compliance capabilities of Google Cloud. If your project's priorities are to collaborate with others and to avoid spending time managing infrastructure, Colab Enterprise might be the best option for you. See the following Colab Enterprise section.
Vertex AI Workbench: A Jupyter notebook-based environment provided through virtual machine (VM) instances with features that support the entire data science workflow. If your project's priorities are control and customizability, Vertex AI Workbench might be the best option for you. See the following Vertex AI Workbench section.
Colab Enterprise
Learn about a few of Colab Enterprise's strengths in the sections that follow. For more information, see Introduction to Colab Enterprise.
Share and collaborate
Colab Enterprise lets you share notebooks and collaborate with others. You can share a notebook with a single user, Google group, or Google Workspace domain. You control this access through Identity and Access Management (IAM).
Managed compute
Colab Enterprise lets you work in notebooks without having to manage infrastructure. Colab Enterprise provisions a runtime for you when you need it. If you want to, you can configure runtimes for specific needs, but Colab Enterprise starts them for you and shuts them down when you no longer need them.
Integrated into the Google Cloud console
Colab Enterprise's integrations with Google Cloud services make it easier to use notebooks that interact with those services. You can use Colab Enterprise from within the Google Cloud console, with features built into both Vertex AI and BigQuery.
Write code with Gemini assistance
You can use Gemini in Vertex AI, which is a product in the Gemini for Google Cloud portfolio, to help you write and generate code in a Vertex AI notebook. Gemini in Vertex AI can generate code completion suggestions while you type in a code cell. You can also use the Help me code tool to generate code based on a description of what you want. To learn more, see Write code with Gemini assistance.
Vertex AI Workbench
Learn about a few of Vertex AI Workbench's strengths in the sections that follow. For more information, see Introduction to Vertex AI Workbench.
Instance types
Vertex AI Workbench provides several Jupyter notebook-based instance types for your data science workflow:
Vertex AI Workbench instances: An option that combines the workflow-oriented integrations of a managed notebooks instance with the customizability of a user-managed notebooks instance.
Vertex AI Workbench managed notebooks (deprecated): Google-managed environments with integrations and features that help you set up and work in an end-to-end notebook-based production environment.
Vertex AI Workbench user-managed notebooks (deprecated): Deep Learning VM Images instances that are heavily customizable and are therefore ideal for users who need a lot of control over their environment.
All of the Vertex AI Workbench options provide the following:
- Prepackaged with JupyterLab.
- A preinstalled suite of deep learning packages, including support for the TensorFlow and PyTorch frameworks.
- Support for GPU accelerators.
- The ability to sync with a GitHub repository.
- Google Cloud authentication and authorization.
Vertex AI Workbench instances
Vertex AI Workbench instances might be a good choice if you need the workflow-oriented integrations of managed notebooks and the customizability of user-managed notebooks.
Add conda environments
Vertex AI Workbench instances use kernels based on conda environments. You can add a conda environment to your Vertex AI Workbench instance, and the environment appears as a kernel in your instance's JupyterLab interface.
Adding conda environments lets you use kernels that aren't available in the default Vertex AI Workbench instance. For example, you can add conda environments for R and Apache Beam. Or you can add conda environments for specific earlier versions of the available frameworks, such as TensorFlow, PyTorch, or Python.
For more information, see Add a conda environment.
Access to data
You can work more efficiently by accessing your data without leaving the JupyterLab interface.
From within JupyterLab's navigation menu on a Vertex AI Workbench instance, you can use the Cloud Storage integration to browse data and other files that you have access to.
Also from within the navigation menu, you can use the BigQuery integration to browse tables that you have access to, write queries, preview results, and load data into your notebook.
Automated notebook runs
You can set a notebook to run on a recurring schedule. Even while your instance is shut down, Vertex AI Workbench will run your notebook file and save the results for you to look at and share with others.
Automated shutdown for idle instances
To help manage costs, you can set your Vertex AI Workbench instance to shut down after being idle for a specific time period. For more information, see Idle shutdown.
Custom containers
You can create a Vertex AI Workbench instance based on a custom container. Start with a Google-provided base container image, and modify it for your needs. Then create an instance based on your custom container.
For more information, see Create an instance using a custom container.
Use third party credentials
You can create and manage Vertex AI Workbench instances with third party credentials provided by Workforce Identity Federation. Workforce Identity Federation uses your external identity provider (IdP) to grant a group of users access to Vertex AI Workbench instances through a proxy.
For more information, see Create an instance with third party credentials.
Health status monitoring
To help ensure that your Vertex AI Workbench instance is working properly, you can monitor the health status.
Editable Deep Learning VM instances
Vertex AI Workbench provides API methods for modifying the underlying VM through the Notebooks API.
Vertex AI Workbench managed notebooks
Managed notebooks are usually a good choice if you want to use a notebook for data exploration, analysis, modeling, or as part of an end-to-end data science workflow.
Managed notebooks instances let you perform workflow-oriented tasks without leaving the JupyterLab interface. They also have many integrations and features for implementing your data science workflow.
The following are some of the integrations and features that are included in managed notebooks.
Control your hardware and framework from JupyterLab
In a managed notebooks instance, your JupyterLab interface is where you specify what compute resources your code will run on, for example, how many vCPUs or GPUs and how much RAM, and what framework you want to run the code in. You can write your code first, and then choose how to run it without leaving JupyterLab or restarting your instance. For quick tests of your code, you can scale your hardware down and then scale it back up to run your code against more data.
Custom containers
Your managed notebooks instance includes many common data science frameworks to choose from, such as TensorFlow and PyTorch, but you can also add custom Docker container images to your instance. Your custom containers appear as kernels in your instance's JupyterLab interface.
For more information, see Add a custom container to a managed notebooks instance.
Access to data
You can access your data without leaving the JupyterLab interface.
From within JupyterLab's navigation menu on a managed notebooks instance, you can use the Cloud Storage integration to browse data and other files that you have access to.
Also from within the navigation menu, you can use the BigQuery integration to browse tables that you have access to, write queries, preview results, and load data into your notebook.
Automated notebook runs
You can set a notebook to run on a recurring schedule. Even while your instance is shut down, Vertex AI Workbench will run your notebook file and save the results for you to look at and share with others.
Dataproc integration
You can process data quickly by running a notebook on a Dataproc cluster. After your cluster is set up, you can run a notebook file on it without leaving the JupyterLab interface.
Automated shutdown for idle instances
To help manage costs, you can set your managed notebooks instance to shut down after being idle for a specific time period. For more information, see Idle shutdown.
Vertex AI Workbench user-managed notebooks
User-managed notebooks can be a good choice for users who require extensive customization or who need a lot of control over their environment.
Customizable Deep Learning VM instances
User-managed notebooks instances are Deep Learning VM instances. You choose specific details about your virtual machine (VM) instance when you create your user-managed notebooks instance. For example, you select your machine type and the framework for your user-managed notebooks instance when you create it. You can change your instance's machine type after creation, though this requires a restart of your instance.
On your user-managed notebooks instance, you can make manual modifications like updating software and package versions. Changing the framework on your instance is a more involved process.
Because user-managed notebooks instances are exposed as Compute Engine instances, you can customize them in the same ways that you can customize Compute Engine instances. For more information, see the Compute Engine documentation.
Networking and security
For users who have specific networking and security needs, user-managed notebooks can be the best option.
Both user-managed notebooks and managed notebooks support VPC Service Controls, but you have more control over a user-managed notebooks instance's VM. This makes it easier to configure user-managed notebooks instances manually to satisfy some specific networking and security needs.
Health status monitoring
To help ensure that your user-managed notebooks instance is working properly, you can monitor the health status.
What's next
To get started, create one of the following: