Release notes for new versions of Truss, in reverse chronological order.
This release updates the model invocation interface in Truss templates, affecting only newly created Trusses.
Until now, when creating a Truss, the predict()
function expected a dictionary with the key inputs
and a value to give the model as input. This default behavior was due to a legacy requirement in Baseten that was removed months ago.
Now, the default behavior is to use the input of predict()
directly, which can be anything JSON-serializable: string, number, list, dictionary, etc. If you want, you can modify the predict()
function to expect a dictionary with inputs
like the old spec.
Before (sklearn iris):
model.predict({"inputs": [[0, 0, 0, 0]]})
Now (sklearn iris):
model.predict([[0, 0, 0, 0]])
This change does not affect existing Trusses. Only new Trusses created on this version (i.e. by running truss.create()
or truss init
) will use the updated templates.
This version was created to support blueprint.
With this release, a minor version increment recognizes the overall progress made on Truss since its initial release in Summer 2022. And simplified naming for key functions improves Truss' developer experience, while carefully considered warnings and a long deprecation period ensure nothing breaks.
- In the Python client,
truss.create()
replacestruss.mk_truss()
. - In the Python client,
truss.load()
replacestruss.from_directory()
. - In the Truss handle,
truss.predict()
offers a shorter alternative totruss.server_predict()
. To use in place oftruss.docker_predict()
, pass the optional kwarguse_docker=True
. - In the command-line interface, the behavior of
truss predict
has been updated to match the Python client.- Previously,
truss predict
ran on Docker by default, which could be overriden withRUN_LOCAL=true
. - Now,
truss predict
runs without Docker by default, which can be overriden withUSE_DOCKER=true
.
- Previously,
These interface changes are intended to improve Truss' developer experience, not cause unnecessary trouble. As such, the old mk_truss()
and from_directory()
functions, while marked with a deprecation warning, will not be removed until the next major version update. And both server_predict()
and docker_predict()
will be supported in the Truss handle indefinitely.
This release adds the live_reload
option. This feature makes it faster to run a Truss in Docker in some situations, letting you develop your Truss without waiting for Docker to rebuild between changes.
With this release, the live reload option supports changes to model code. In the future, we will support other changes, like changes to environment variables and Python dependencies.
This release adds support for MLflow. Package your MLflow model by following this documentation.
This release patches a bug from 0.1.2, no new features.
This release adds support for more flexible model-to-truss method (via in-memory function).
This release:
- Fixes inference in iPython environments
- Prints Truss handle errors in notebooks
- Adds
spec_version
flag (only relevant for using Truss with Baseten) - Improves codespace developer experience
This release introduces Truss, and as such everything is new!