
Create a vetiver object for deployment of a trained model
Source:R/vetiver-model.R
vetiver_model.Rd
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()
Usage
vetiver_model(
model,
model_name,
...,
description = NULL,
metadata = list(),
save_ptype = TRUE,
versioned = NULL
)
new_vetiver_model(model, model_name, description, metadata, ptype, versioned)
Arguments
- model
A trained model, such as an
lm()
model or a tidymodelsworkflows::workflow()
.- model_name
Model name or ID.
- ...
Other method-specific arguments passed to
vetiver_ptype()
to compute an input data prototype, such asptype_data
(a sample of training features).- description
A detailed description of the model. If omitted, a brief description of the model will be generated.
- metadata
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.- save_ptype
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.- versioned
Should the model object be versioned when stored with
vetiver_pin_write()
? The default,NULL
, will use the default for theboard
where you store the model.- ptype
An input data prototype. If
NULL
, there is no checking of new data at prediction time.
Details
You can provide your own data to save_ptype
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.
Examples
cars_lm <- lm(mpg ~ ., data = mtcars)
vetiver_model(cars_lm, "cars_linear", pins::board_temp())
#>
#> ── cars_linear ─ <butchered_lm> model for deployment
#> An OLS linear regression model using 10 features