Remote Run: Run your code remotely
It is now possible to run your code remotely using Inferless. This feature is extremely useful when you want to run your code partly or entirely on a remote server. By introducing a few annotations in your code, you can run your code on a remote server with the command inferless remote-run app.py -c config.yaml.
Runtime Configuration
You can configure the runtime for remote run using a configuration file. The configuration file is a YAML file through which you can specify custom packages that you want to install on the remote server.
You can specify system packages (packages installed using apt-get
) python packages (packages installed using pip
) and run commands (shell commands) that you want to configure on the remote server.
Annotations
You can use the following annotations to specify the code that you want to run on the remote server.
The annotations accept a gpu
parameter which specifies the GPU that you want to use on the remote server.
Currently, the supported GPUs are T4
& A10
@inferless.method
Use this annotation to specify the function that you want to run on the remote server.
@inferless.Cls
Use this annotation to specify the class that you want to run on the remote server. Cls
contains two sub annotations @Cls.load
and @Cls.infer
.
@Cls.load
is used to specify the function that you want to run before the inference.
@Cls.infer
is used to specify the function that you want to run for inference.
Examples
This section contains working examples of how to use the remote-run
command.
Example 1 - Run a function on a remote server
run command inferless remote-run app.py -c runtime.yaml
In this example, only the test_gpt_neo
function will run on the remote server. The post_process
function will run on the local machine.
As you can see, the transformers
is imported inside the function which means it is not required to install the transformers package on the local machine.
Example 2 - Run a class on a remote
run command inferless remote-run app.py -c runtime.yaml
In this example, when the infer
function is called, the initialize
function will run first. The initialize
function will load the model and tokenizer. The infer
function will run the inference on the remote server.
Replace <HF_TOKEN>
with your Hugging Face token.
Working Directory
By default, the files from the working directory are copied to the server excluding: “.git”, “*.pyc”, “pycache”
If a .gitignore
file is present in the working directory, the files mentioned in the .gitignore
file will not be copied to the server.
You can also specify a custom ignore file using the --exclude
-e
option.
inferless remote-run app.py -c runtime.yaml -e custom_ignore_file.txt