Use vetiver_pin_write()
to pin a trained model to a board of models,
along with an input prototype for new data and other model metadata. Use
vetiver_pin_read()
to retrieve that pinned object.
Usage
vetiver_pin_write(board, vetiver_model, ..., check_renv = FALSE)
vetiver_pin_read(board, name, version = NULL, check_renv = FALSE)
Arguments
- board
A pin board, created by
board_folder()
,board_connect()
,board_url()
or anotherboard_
function.- vetiver_model
A deployable
vetiver_model()
object- ...
Additional arguments passed on to methods for a specific board.
- check_renv
Use renv to record the packages used at training time with
vetiver_pin_write()
and check for differences withvetiver_pin_read()
. Defaults toFALSE
.- name
Pin name.
- version
Retrieve a specific version of a pin. Use
pin_versions()
to find out which versions are available and when they were created.
Value
vetiver_pin_read()
returns a vetiver_model()
; vetiver_pin_write()
returns the name of the new pin, invisibly.
Details
These functions read and write a vetiver_model()
pin on the
specified board
containing the model object itself and other elements
needed for prediction, such as the model's input data prototype or which
packages are needed at prediction time. You may use pins::pin_read()
or
pins::pin_meta()
to handle the pin, but vetiver_pin_read()
returns a
vetiver_model()
object ready for deployment.
Examples
library(pins)
model_board <- board_temp()
cars_lm <- lm(mpg ~ ., data = mtcars)
v <- vetiver_model(cars_lm, "cars_linear")
vetiver_pin_write(model_board, v)
#> Creating new version '20241009T170843Z-7301a'
#> Writing to pin 'cars_linear'
model_board
#> Pin board <pins_board_folder>
#> Path: '/tmp/RtmpCt0heI/pins-19de3ecc5e30'
#> Cache size: 0
vetiver_pin_read(model_board, "cars_linear")
#>
#> ── cars_linear ─ <butchered_lm> model for deployment
#> An OLS linear regression model using 10 features
# can use `version` argument to read a specific version:
pin_versions(model_board, "cars_linear")
#> # A tibble: 1 × 3
#> version created hash
#> <chr> <dttm> <chr>
#> 1 20241009T170843Z-7301a 2024-10-09 17:08:43 7301a
# can store an renv lockfile as part of the pin:
vetiver_pin_write(model_board, v, check_renv = TRUE)
#> Error in pin_store(board, name, path, meta, versioned = versioned, x = x, ...): The new version "20241009T170843Z-7301a" is the same as the most
#> recent version.
#> ℹ Did you try to create a new version with the same timestamp as the last
#> version?