- Overview
- Downloading the IBM Z Accelerated for Snap ML container image
- Container Image Contents
- Snap ML Usage
- A Look into the Acceleration
- Security and Deployment Guidelines
- Using the Code Samples
- Frequently Asked Questions
- Technical Support
- Versioning Policy and Release Cadence
- Licenses
Snap ML is a library that provides high-speed training and inference of popular machine learning models on modern computing systems.
On IBM® z16™ and later (running Linux on IBM Z or IBM® z/OS® Container Extensions (IBM zCX)), for certain models, Snap ML can leverage new inference acceleration capabilities that transparently target the IBM Integrated Accelerator for AI through the IBM z Deep Neural Network (zDNN) library. The IBM zDNN library contains a set of primitives that support Deep Neural Networks. These primitives transparently target the IBM Integrated Accelerator for AI on IBM z16 and later. No changes to the original model are needed to take advantage of the new inference acceleration capabilities.
Note. When using IBM Z Accelerated for Snap ML on either an IBM z15® or an IBM z14®, Snap ML will transparently target the CPU with no changes to the model.
Downloading the IBM Z Accelerated for Snap ML container image requires credentials for the IBM Z and IBM® LinuxONE Container Registry, icr.io.
Documentation on obtaining credentials to icr.io
is located
here.
Once credentials to icr.io
are obtained and have been used to login to the
registry, you may pull (download) the IBM Z Accelerated for Snap ML container
image with the following code block:
# Replace X.Y.Z with the desired version to pull, or remove to fetch the latest.
docker pull icr.io/ibmz/ibmz-accelerated-for-snapml:X.Y.Z
In the docker pull
command illustrated above, the version specified above is
X.Y.Z
. This is based on the version available in the
IBM Z and LinuxONE Container Registry.
To remove the IBM Z Accelerated for Snap ML container image, please follow the commands in the code block:
# Find the Image ID from the image listing
docker images
# Remove the image
docker rmi <IMAGE ID>
*Note. This documentation will refer to image/containerization commands in
terms of Docker. If you are utilizing Podman, please replace docker
with
podman
when using our example code snippets.
To view a brief overview of the operating system version, software versions and
content installed in the container, as well as any release notes for each
released container image version, please visit the releases
section of this
GitHub Repository, or you can click
here.
For documentation on how to train and run inferences on models with Snap ML please visit the official Snap ML documentation.
On IBM z16 and later, Snap ML provides accelerated inference for tree-ensemble models via the IBM Integrated Accelerator for AI. These models can either be trained using Snap ML, or trained using external software frameworks (such as scikit-learn, XGBoost or LightGBM) and then imported into Snap ML. For more information on exactly which models and frameworks are supported, please see the model import documentation.
When importing models, if the tree_format
parameter is set to auto
, Snap ML
will automatically detect whether the IBM Integrated Accelerator for AI is
available. If it is available, Snap ML will optimize the model for execution on
the IBM Integrated Accelerator for AI. If not, Snap ML will optimize the model
for execution on the CPU.
- For security and deployment best practices, please visit the common AI Toolkit documentation found here.
Extensive code samples, in the form of Jupyter notebooks, can be found in our examples repository. In particular, an example of accelerated inference for a Random Forest model can be found here.
Please visit this link here. Or read the section titled Downloading the IBM Z Accelerated for Snap ML container image.
You may run the IBM Z Accelerated for Snap ML container image on IBM Linux on Z or IBM® z/OS® Container Extensions (IBM zCX).
Note. The IBM Z Accelerated for Snap ML will transparently target the IBM Integrated Accelerator for AI on IBM z16 and later. However, if using the IBM Z Accelerated for Snap ML on either an IBM z15 or an IBM z14, Snap ML will transparently target the CPU with no changes to the model.
Information regarding technical support can be found here.
IBM Z Accelerated for Snap ML will follow the semantic versioning guidelines with a few deviations. Overall IBM Z Accelerated for Snap ML follows a continuous release model with a cadence of 1-2 minor releases per year. In general, bug fixes will be applied to the next minor release and not back ported to prior major or minor releases. Major version changes are not frequent and may include features supporting new IBM Z hardware.
Each release version of IBM Z Accelerated for Snap ML has the form MAJOR.MINOR.PATCH (X.Y.Z). For example, IBM Z Accelerated for Snap ML version 1.2.3 has MAJOR version 1, MINOR version 2, and PATCH version 3. Changes to each number have the following meaning:
All releases with the same major version number will have API compatibility. Major version numbers will remain stable. For instance, 1.Y.Z may last 1 year or more. It will potentially have backwards incompatible changes. Code and data that worked with a previous major release will not necessarily work with the new release.
Minor releases will typically contain new backward compatible features, improvements, and bug fixes.
Maintenance releases will occur more frequently and depend on specific patches introduced (e.g. bug fixes) and their urgency. In general, these releases are designed to patch bugs.
Feature releases for IBM Z Accelerated for Snap ML occur about every 6 months in general. Hence, IBM Z Accelerated for Snap ML X.3.0 would generally be released about 6 months after X.2.0. Maintenance releases happen as needed in between feature releases. Major releases do not happen according to a fixed schedule.
The International License Agreement for Non-Warranted Programs (ILAN) agreement can be found here)
The registered trademark Linux® is used pursuant to a sublicense from the Linux Foundation, the exclusive licensee of Linus Torvalds, owner of the mark on a worldwide basis.
IBM, the IBM logo, and ibm.com, IBM z16, IBM z15, IBM z14 are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. The current list of IBM trademarks can be found here.
For additional disclaimers, please visit the general AI Toolkit documentation found here.