Skip to content

Actuators overview

An actuator is a code module that provides experiment protocols that can measure properties of entities. See actuators for more details on what an actuator is and read discoveryspaces to learn how they are used to create discoveryspaces.

This section covers how you install and configure actuators, create new actuators to extend ado as well as specific documentation for various actuators available.

You can also add your own custom experiments using the special actuator custom_experiments

Info

Most actuators are plugins. They are pieces of code that can be installed independently from ado and that ado can dynamically discover. Custom experiments are also plugins.

Listing available Actuators

To see a list of available actuators execute

ado get actuators

to see the experiments each provides

ado get actuators --details

Special actuators: replay and custom_experiments

ado has two special builtin actuators: custom_experiments and replay.

custom_experiments allows users to create experiments from python functions without having to write a full Actuator. The creating custom experiments page describes this in detail.

The replay actuator allows you to use property values from experiments that were performed outside of ado i.e. no Actuator exists to measure them. Often you might want to perform some analysis on a discoveryspace using these values or to perform a search using an objective-function defined on these values. See the replay actuator page to learn more about how to do this.

Actuator Plugins

Anyone can extend ado with actuator plugins. All actuator plugins are python packages (see creating actuator classes) and can be installed in the usual ways with pip.

Actuator plugins distributed with ado

The following actuators are distributed with ado:

  • SFTTrainer: An actuator for testing foundation model fine-tuning performance
  • vllm_performance: An actuator for testing foundation model inference performance

Installing actuator plugins

See our installing plugins documentation.

Dynamic installation of actuators on a remote Ray cluster

If you are running ado operations on a remote ray cluster, as ray job, you may want, or need, to dynamically install an actuator plugin or its latest version. This is described in the running ado on a remote ray cluster.

Some additional notes about this process when you are developing an actuator:

  • Make sure plugin code changes are committed (if using setuptools_scm for versioning)
    • If they are not committed then the version of the built wheel will not change i.e. it will be same as for a wheel built before the changes
    • If a wheel with this version was already installed in ray cluster by a previous job, ray will use the cached version, and not your new version
  • Make sure new files you want to package with the wheel are committed
    • The setup.py for the plugins only adds committed non-python files

What's next