Hello! This guide will assist you in getting started with Continual. It will show you how to to go from zero to a continually maintained predictive model in under 10 minutes.
Registering an account¶
To get started, navigate to Continual and fill in your user details to register an account. Continual has a free 14-day trial and no credit card is required.
Before continuing you will need to verify your email address. If you don't get a verification email within a few minutes, check your Spam folder and email email@example.com if you don't find anything. If your link expires, you can log back into your account to send a new verification email.
Creating an organization¶
If you have not been invited to an organization already, you'll need to create an organization. Organizations allow you to share projects within a company and collaborate with team members under a shared billing account.
Creating your first project¶
Once you have created your organization, you will see your organization's project dashboard. Since you don't have any existing projects, you'll be prompted to create your first one:
Click Create Your First Project and choose a project name. Projects provide isolated workspaces for your feature and models and connect bi-directionally with your data warehouse.
After creating a project, you'll land in your first empty project!
Connecting your data warehouse¶
The next step is to connect to your data warehouse. Each project connects bi-directionally to one data warehouse. Continual maintains the tables and views for all for your feature sets and models, as well as all predictions made by your models, inside a schema in this data warehouse. This makes it easy to build models from your existing data and consume the predictions Continual maintains using your existing tools.
See data warehouse overview for more information.
After selecting your data warehouse type, you'll be asked to configure the connection. Simply add the required information, as shown below:
Finally, Continual will test the connection to your data warehouse. Any connection errors will be reported here. If all is well, you'll see an confirmation that the project is ready to be created.
Congratulations, you're ready to get started building your first predictive model!
Creating your first model¶
Continual is a declarative operational AI platform. You can interact with Continual by defining feature sets and models declaratively and pushing them into the system. You can do this either via the Web UI, CLI, or dbt integration.
Although we can create all project artifacts via the Continual Web UI, production jobs will most likely be initiated via the command line interface (CLI) or dbt. Let's install the CLI first to see how it all comes together. We can then return to the Web UI to illustrate how Continual's declarative foundation enables parity between these two ways of working. Finally, dbt integration deserves a more extended discussion.
Installing the CLI¶
To get started with the CLI based approach, you can install the Continual CLI from PyPi by executing the following:
pip3 install continual
Continual supports Python 3.8+. If you do not already have pip installed, please refer to the installation instructions. We highly recommend using a virtualenv.
Logging in to Continual¶
After the client is installed, you can login to Continual via:
If you are not installing the Continual CLI in a virtual environment, you may get an error here that
command not found: continual. This will happen if the continual is not installed in a directory that is on your
$PATH environment variable. You can locate continual via
find / -name continual an ensure that this directory is listed in your
$PATH environment variable. Typically, continual should get installed in
/home/<user>/.local/bin, but its locaiton may vary depending on system settings. As always, contact support if you have any issues.
You'll then be prompted to authenticate into Continual, as well as select a default project:
Once you have successfully authenticated, you'll be able to start interacting your previously created project.
See the CLI Reference for more information on using the CLI or run
Seeding an example table¶
For purposes of this example, we'll create a example quick table from csv file.
Continual has a built in
seed function that allows us to quickly create tables
in our data warehouse from csv files.
To get started, let's download the following file using the command below or via this link:
Now we can upload this csv to our data warehouse with the following
continual projects seed ./bank_train.csv
continual projects seed is meant for demo/development purposes only and is not meant to replace your normal data pipelines for uploading data to your data warehouse.
seed command will upload the csv into your feature store schema via
<feature_store>.<project_name>.<file_name>. In our case, this is
brain_of_anton.son_of_anton.bank_train. We can quickly verify the upload
succeeded by running the following query in our data warehouse:
select * from brain_of_anton.son_of_anton.bank_train;
Great, we now have a table in our database that we can use to build a predictive model.
Defining a model in YAML¶
Below is a sample YAML file that we'll use as our first example. In this demo
use case, we'll look at some data from a bank's marketing department to see if
we can predict if a campaign will be successful in getting customers to
subscribe to a
term deposit. This is a
simple model that is self-contained -- i.e. it doesn't contain any
associated feature sets. Copy the following into a file
term_deposit.yaml on your host.
type: Model name: term_deposit description: Bank Marketing Term Deposit index: id target: converted query: | select * from brain_of_anton.son_of_anton.bank_train
The YAML file instructs Continual how to build this model. The following fields are important to understand. We'll cover them more in the Feature Set Guide, but as a quick primer:
- type: The resource that is being built, either
- name: The name of the resource.
- target: The column in the table that corresponds to the value you wish to predict.
- index: The column in the table that uniquely identifies a record in the data.
- query: A SQL query that will generate data for the model or feature set.
Now we can instruct Continual to build this model via the following command:
continual push term_deposit.yaml
The response we get back tells us what Continual plans to do:
In particular, we can see that the following operations will be performed:
- Continual will create the model
- Continual will profile the model
- Continual will train the model
- Continual will promote the model
- Continual will deploy the model
The link has the ID for this change:
c3iimjhr52g2f7mbsca0 (Note: your id will
be different!). It also provides a direct link the Web UI, but for our purposes
now, we can simply check on the status of the change by executing:
continual changes get c3iimjhr52g2f7mbsca0
And this will give us the current status of each operation:
In our case, we see that our model is still building. This is normal. Generally, model training is the slowest part of the workflow, but this gives us a good opportunity to familiarize ourselves with the Web UI, which is a great place to monitor and track your AI workflow. You can operate with Continual solely with the CLI, but the Web UI is a great place to quickly understand the state of the system via visualizations and more.
Using the Web UI¶
As you begin executing many use cases and deploying lots of models in Continual, the Web UI is a great place to review what the system has been doing. Whenever you execute a push, Continual will give you back a link to that change, but it's also easy to browse your project and find what you need.
Log into Continual and open your project.
Navigate to Changes in the menu to the left. Changes track all the modifications to feature sets and models executed by users (via push). Currently, you should only have one change in the system, corresponding to the push we just did above. Click it to open it.
Here we see a graphical representation of the push, which should look exactly like the response we received from the CLI. For each action here, you can click the associated button to drill into that particular resource. For our purposes, let's say that we're mainly just interested in consuming the predictions that our model makes; we can find that information by clicking on the "View Batch Predicition" button. Do that now.
This will take you to a summary page for the batch prediction job. You'll be able to see duration of the job, how many predictions were made, and which model verison was used for the job. On the bottom, a query is provided that you can run in your data warehouse to view the predictions for this job.
You can also switch to the Data Preview tab to get a view into the predictions created for this job. When making predictions, Continual manages all historical predicitons, but it also has a view that contains the latest predictions. This is often what downstream users want access to. Now we'll query our data warehouse to see our predictions. In general, Continual always stores your predictions in
<data_store>.<project_name>.model_<model_name>_predictions. The historical predictions are kept in the
model_<model_name>_predictions_history table, and the current view is kept in the view
model_<model_name>_predictions (Learn more about prediction table naming conventions in our predictions docs. You can directly query either in your data warehouse. In our case, our query is:
select * from brain_of_anton.son_of_anton.model_term_deposit_predictions;
In this example, we can see that every row has a prediction, as well as a row containing all the features for that id at the time of prediction. For classification problems, you'll also receive a column that contains the weights for each class.
By setting our predictions on a schedule, Continual will continue to make predictions for this model as new data accumulates in our cloud data warehouse. Scheduling is outside the scope of the quickstart, but we'll cover it in the batch prediction section.
If you're a dbt user, you're probably asking: "What about dbt?" We've got you covered. You don't need to know anything about our intermediate YAML format or even touch the Web UI. To see how this works, read dbt integration section.