A vetiver_model() object collects the information needed to store, version,
and deploy a trained model. Once your vetiver_model() object has been
created, you can:
store and version it as a pin with vetiver_pin_write()
create an API endpoint for it with vetiver_api()
vetiver_model(
model,
model_name,
...,
description = NULL,
metadata = list(),
save_prototype = TRUE,
save_ptype = deprecated(),
versioned = NULL
)new_vetiver_model(
model,
model_name,
description,
metadata,
prototype,
versioned
)
A new vetiver_model object.
A trained model, such as an lm() model or a tidymodels
workflows::workflow().
Model name or ID.
Other method-specific arguments passed to vetiver_ptype()
to compute an input data prototype, such as prototype_data (a sample of
training features).
A detailed description of the model. If omitted, a brief description of the model will be generated.
A list containing additional metadata to store with the pin.
When retrieving the pin, this will be stored in the user key, to
avoid potential clashes with the metadata that pins itself uses.
Should an input data prototype be stored with the model?
The options are TRUE (the default, which stores a zero-row slice of the
training data), FALSE (no input data prototype for visual documentation or
checking), or a dataframe to be used for both checking at prediction time
and examples in API visual documentation.
Should the model object be versioned when stored with
vetiver_pin_write()? The default, NULL, will use the default for the
board where you store the model.
An input data prototype. If NULL, there is no checking of
new data at prediction time.
You can provide your own data to save_prototype to use as examples in the
visual documentation created by vetiver_api(). If you do this,
consider checking that your input data prototype has the same structure
as your training data (perhaps with hardhat::scream()) and/or simulating
data to avoid leaking PII via your deployed model.
Some models, like ranger::ranger(), keras,
and luz (torch),
require that you pass in example training data as prototype_data
or else explicitly set save_prototype = FALSE. For non-rectangular data
input to models, such as image input for a keras or torch model, we currently
recommend that you turn off prototype checking via save_prototype = FALSE.
cars_lm <- lm(mpg ~ ., data = mtcars)
vetiver_model(cars_lm, "cars-linear")
Run the code above in your browser using DataLab