Value of algorithms-as-a-service
From survey and routine surveillance data, through to satellite imagery and cell phone data records, there is a vast, and growing, amount of data which could benefit health programs. In industry, the application of machine learning and AI is becoming an indispensable tool to extract useful information from data. However, most global health programs don’t have similar access to the resources and expertise required to implement these kinds of solutions. As such, opportunities to use data to improve the performance of health programs are missed.
We believe that the provision of algorithms-as-a-service (AaaS) offers an opportunity to address this gap. Briefly, AaaS is the provision of automated algorithms that can be run 'on-demand', typically over the web. Making algorithms available over the web helps to standardize the way they are used and allows them to be integrated more easily into software. For example, a researcher may have written a clever algorithm in R that is able to predict a patient's outcomes based on a set of risk factors. If someone wants to use this algorithm, they have to contact the algorithm developer, send them data, wait for the algorithm developer to run their script in R and return the output. With an AaaS approach, the develop could host the algorithm on a server so that users can pass in data over the web (via an HTTP request or an interface) and receive back a result. The user never has to open R, or even understand R, to interact with the algorithm. Such an approach removes barriers to entry, allowing disease programs with limited expertise in data science to apply algorithms to their data and gain otherwise unobtainable insights.
For a further discussion of the technical and institutional considerations related to the development of AaaS for global health, see our (draft) article here.
The DiSARM team used an open source project called OpenFaaS, which aims to make it simple to deploy functions to the cloud. It includes everything needed to package and deploy algorithms and functions. We found that we were able to use the
faas-clicommand-line application, along with the watchdog, to package algorithms as standalone containers, which we could then run as standard Docker containers. The documentation is excellent.