There should be an entrypoint to serve an HTTP API that can accept two kinds of requests:
Request specifies a spatiotemporal window. The server should ingest images corresponding to that window, and then run the model on the ingested images.
Request provides the images directly. Then the server should just apply the model on those images.
It should support gridded inference option which should have an abstraction to specify how to merge the results across the grid cells.
The entrypoint should probably take a dataset configuration file (JSON) along with model config file (YAML) as arguments. There may be more configuration too.
Then a Dockerfile should be included making it easy to build Docker container around the entrypoint.
How will this work for Satlas models (which may need additional post-processing of the outputs like Viterbi smoothing)?
Point/polygon prediction: I think these are relatively straightforward. The deployed model can be used to populate a global layer of points/polygons for the current timestamp. Then we can easily post-process that with a single machine.
Segmentation: more challenging since post-processing can't run on a single machine. I guess we will also deploy endpoint to compute the smoothed output from the initial one. And then can just call that just like how we would be calling the model.
There should be an entrypoint to serve an HTTP API that can accept two kinds of requests:
It should support gridded inference option which should have an abstraction to specify how to merge the results across the grid cells.
The entrypoint should probably take a dataset configuration file (JSON) along with model config file (YAML) as arguments. There may be more configuration too.
Then a Dockerfile should be included making it easy to build Docker container around the entrypoint.