Remote or local training
ART provides two backend classes,LocalBackend
and SkyPilotBackend
. If your agent is already running on a machine equipped with an advanced GPU and you want to run training on the same machine, use LocalBackend
. If your agent is running on a machine without an advanced GPU (this includes most personal computers and production servers), use SkyPilotBackend
instead.
Both LocalBackend
and SkyPilotBackend
implement the art.Backend
class, and once initialized, the client interacts with them in the exact same way. Under the hood, SkyPilotBackend
configures a remote machine equipped with a GPU to run LocalBackend
, and forwards requests from the client to the remote instance.
LocalBackend
TheLocalBackend
class runs a vLLM server and either an Unsloth or torchtune instance on whatever machine your agent itself is executing. This is a good fit if you’re already running your agent on a machine with a GPU.
To declare a LocalBackend
instance, follow the code sample below:
SkyPilotBackend
To use SkyPilotBackend, you’ll need to install the optional dependency:SkyPilotBackend
instance is initialized, it does a few things:
- Provisions a remote machine with an advanced GPU (by default on RunPod)
- Installs
openpipe-art
and its dependencies - Initializes a
LocalBackend
instance with vLLM and a training server (unsloth or torchtune) - Registers the
LocalBackend
instance to forward requests to it over http
SkyPilotBackend
instance, follow the code sample below:
Using a backend
Once initialized, a backend can be used in the same way regardless of whether it runs locally or remotely.LocalBackend
and SkyPilotBackend
in action, try the examples below.