- Deploy it on different hardware and with different concurrency.
- Replace a dependency (e.g. silence detection in audio files) with a different implementation of that step - while keeping all other processing the same.
- Deploy the same inference flow, but exchange the model weights used. E.g. for
a large and small version of an LLM or different model weights fine-tuned to
domains. - Add an adapter to convert between a different input/output schema.
Example base class
Adapter for different I/O
The base classMyBaseChainlet works with integer inputs and returns floats. If
you want to reuse the computation, but provide an alternative interface (e.g.
for a different client with different request/response schema), you can create
a subclass which does the I/O conversion. The actual computation is delegated to
the base classes above.
Chain with substituted dependency
The base classMyBaseChainlet uses preprocessing that doubles the input. If
you want to use a different variant of preprocessing - while keeping
MyBaseChainlet.run_remote and everything else as is - you can define a shallow
subclass of MyBaseChainlet where you use a different dependency
Preprocess8x, which multiplies by 8 instead of 2.
Override remote config.
If you want to re-deploy a chain, but change some deployment options, e.g. run on different hardware, you can create a subclass and overrideremote_config.