Documentation
Create your own algorithm¶
This guide will instruct you on how to deploy your algorithm on the Arise Challenge platform. Your algorithm will be executed to conduct inference on test data from challenges or on external data provided by other researchers.
Core Principle¶
At Arise Challenge, we execute algorithms within a self-contained software environment known as a Docker container. This container encapsulates all necessary libraries and dependencies, ensuring your algorithm operates seamlessly on a system other than your own. Consider elements like the operating system, NVIDIA drivers, Python editions, and all the required library and package versions for your algorithm's execution: they are all integrated within a Docker container.
The tutorial will guide you through the process of configuring your algorithm within a Docker container, ensuring it meets the platform's specifications. On Arise Challenge, your algorithm's container is designed to handle a single image per operation. The platform does not inherently support batch processing, and this practice is recommended against. Only one image at a time. Batched inputs are not natively supported, and should be avoided.
Prepare your code for containerization¶
Outlined above are the proposed paths that you can take to configure your algorithm inside a docker container to allow the algorithm to be run when uploaded to the platform. As you can see, the first step toward deploying your algorithm is to prepare a code base that Docker can use to build a container. We recommend you use the provided baseline repository that has all the basics for working with our platform.
1.a [Recommended] Clone a repository from a Challenge baseline Algorithm¶
Git clone the baseline repository:
git clone https://gitlab.com/arise-biodiversity/DSI/algorithms/arise-challenge-algorithm-template
Read the README.md
to learn how to set up your algorithm to be uploaded to arise challenge.
1.b Handle the processing of inputs and outputs yourself¶
You can follow this guide, if you want to have more control over the processing.
2. Install Docker / Podman¶
For Arise Challenges to automatically evaluate your algorithm, it needs to be packaged inside a container.
It has to be uploaded to Arise challenges as <image_name>.tar.gz
, and to achieve that the previous linked repository has scripts mentioned in the README.md for taking care of this.
Caveat: from Docker v25.0.0 until latest (currently), docker save <image>
command does not work well with Arise challenges, follow the README.md in the repository for instructions.
3. Build and test¶
For instructions on building and testing, check out the README.md in the previous linked repository.
4. Uploading to Arise Challenges¶
Adding an algorithm to Arise Challenges¶
Head to the algorithm creation for the challenge page and create an algorithm:
- choose a title
<team_name>-<task_name>-diopsis
- uncheck “GPU supported”
- set Memory Requirement 4GB
Then click on “Upload a Container”, and if you followed the README.md
you should have a <image>.tar.gz
file already. Go ahead and start the upload on this page, wait for it to finish uploading, then click on “save”.
Try out the algorithm¶
A container will be created from the container image whenever you create a job for your algorithm. You can use the “Try Out Algorithm” button to test your container on the platform with your own data.
Any output for both stdout and stderr is captured. The output for stderr gets marked as a warning in the job's result. If an algorithm does not properly run, it should exit with a non-zero exit code. The job for the algorithm then gets marked as failed. Runtime metrics are available on the logs page of your job.
Submit the algorithm¶
Go to the challenge page, then click on “Submit”. Within the tabs, choose the correct phase. Under the “Algorithm image” field, select the algorithm you want to submit and click on “save”. You can follow the status of the evaluation under the “Your submissions” tab.