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-artand its dependencies - Initializes a 
LocalBackendinstance with vLLM and a training server (unsloth or torchtune) - Registers the 
LocalBackendinstance 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.