CodaLab Competitions is a powerful open source framework for running competitions that involve result or code submission. You can either participate in an existing competition or host a new competition. Most competitions hosted on Codalab are machine learning (data science) competitions, but Codalab is NOT limited to this application domain. It can accommodate any problem for which a solution can be provided in the form of a zip archive containing a number of files to be evaluated quantitatively by a scoring program (provided by the organizers). The scoring program must return a numeric score, which is displayed on a leaderboard where the performances of participants are compared.
Release notes v1.5:
- Participants: can join competition-specific teams.
- Organizers: can enable/monitor competition-specific teams; can run competitions in their own docker; can launch their own compute workers (to process participants' submissions) without needing to run their own Codalab instance; can provide an ingestion program to receive/parse participants' submissions; can dump their competition bundle (to save changes made with the editor); can run their own instance in "single competition mode".
- Developers: can run Codalab in dockers.
Default docker: if not special docker is specified, submissions are run in
codalab/codalab-legacythe default docker, which can be found on Github.
- User Settings
- List of Current Competitions
- Participating in a Competition
- Joining a Team
- Frequently Asked Questions (FAQ)
2.1) Organizers using the public Codalab instance
The public instance of Codalab may be used to organize research or education competitions within the limits of our hosting capabilities. For code submission competitions, please contact us: you may have to supplement Codalab with additional computer workers.
- What does it take to organize a competition? (ChaLearn tips)
- ChaLab Wizard. For standard users only needing 2-phase competitions with results or code submission, and a single "metric", see instructions.
- Codalab competition roadmap. For advanced users desiring more flexibility, Codalab competition bundles allow arbitrary number of phases and metrics, use of customized ingestion and scoring programs, and more...
- Large datasets and hot changes of data and code during competitions.
- Leaderboard features and public submissions.
- Automatic code forward: The last submission of one phase becomes the first one of the next phase.
- Dockers: Run your competition in a specific docker.
- Audit trail
- Chagrade Features
- Contacting your participants
- Accessing Codalab from your own website with Codalab REST API
2.2) Organizers providing custom "compute workers"
If your competition needs extra computational power, you can easily add to the backend of the public Codalab instance your own server(s) to process participant submissions.
- Understanding the Codalab architecture
- Using your own compute workers
- Protocol for testing queues
- Administering compute workers using Fabric
2.3) Organizers who want to run their own instance
This section explains how to run your own Codalab instance (front-end and back-end). This allows you to customize Codalab and have full control and full privacy. We prepared for you a re-usable AWS virtual machine image (called AMI), already pre-configured, thus easier to install. You can also install Codalab from scratch on your own server. Before you venture into doing this, check "Customizing your website" in section 2.1 and the previous section, which may suffice to customize Codalab for your needs.
a) RUNNING CODALAB INSTANCE
Use a pre-setup image:
(OR, if you do not want to use our AMI) Configure CodaLab from scratch (harder)
- Enable SSL
- E-mail notification
- Configure for single competition (disable hosting other competitions)
- Minio Storage (self-hosting storage)
- Putting Codalab into Maintenance mode
- Instance Admin: Setting up Scheduled VM Backups on Google Cloud
- Instance Admin: Restoring from VM Backups on Google Cloud
- Instance Admin: Creating GPU Workers on Google Cloud
- Instance Admin: Setting up Static IPs on Google Cloud
Developers should first go through section 2.3.
- Execution environment
- Developer Guidelines
- Executing jobs
- Codalab development
- Configure CodaLab to work with Visual Studio
- Configure settings
- Groups and Permissions
- Database migration
- Code checker
- Developer/Instance Host Command & Ref Guide
- Developer reference manual: work in progress, will be ready for v2.
- Server list
- Production Server Settings
- Disaster recovery instructions [Production server]
4) How you can contribute
- Use CodaLab Competitions by either participating in a competition or hosting a new competition.
- Find a bug? Got a feature request? Submit a GitHub issue. Follow the Process for Bugs and Issues.
- Submit pull requests on GitHub to implement new features or fix bugs. Follow the Developer Guidelines.
- Improve this documentations. Follow these instructions to add images.
- Let others know about CodaLab!
5) How to contact us
- The preferred way is via posting a GitHub issue. See instructions.
- In case of emergency, contact us directly.