Skip to main content

View on Github

In this example, we build a Truss with a model that requires specific system packages. To add system packages to your Truss, you can add a system_packages key to your config.yaml file, for instance: To add system packages to your model serving environment, open config.yaml and update the system_packages key with a list of apt-installable Debian packages:
config.yaml
For this example, we use the LayoutLM Document QA model, a multimodal model that answers questions about provided invoice documents. This model requires a system package, tesseract-ocr, which needs to be included in the model serving environment.

Setting up the model.py

For this model, we use the HuggingFace transformers library, and the document-question-answering task.
model/model.py

Setting up the config.yaml file

The main items that need to be configured in the config.yaml file are requirements and system_packages sections.
config.yaml
Specify the versions of the Python requirements that are needed.
Always pin exact versions for your Python dependencies. The ML/AI space moves fast, so you want to have an up-to-date version of each package while also being protected from breaking changes.
config.yaml
The system_packages section is the other important bit here, you can add any package that’s available via apt on Debian.
config.yaml

Deploy the model

You can then invoke the model with: