Skip to content

til-ai/til-26

Repository files navigation

DSTA BrainHack TIL-AI 2026

Contents

  1. DSTA BrainHack TIL-AI 2026
    1. Get started
    2. Understanding this repo
    3. Build, test, and submit
      1. Build
      2. Test
      3. Submit
    4. Links

Get started

Here's a quick overview of the initial setup instructions. You can find a more detailed tutorial, including advanced usage for power users, in the Wiki.

Use this repository as a template to create your own, and clone it into your GCP Workbench instance. You'll want to keep your repository private, so you'll need to create a GitHub Personal Access Token.

You'll also need to initialize the Git submodules:

git submodule update --init

This repository requires Python 3.10 or newer to work. While it should theoretically all work fine with all packages installed directly into your base Python environment, it is likely a best practice to you create isolated virtual environments for each task. You can use any tool you'd like to do this; virtualenv, venv, poetry, etc. The competition instance on GCP comes with conda installed, allowing you to create and activate a new virtual environment with the following steps:

conda create --name til-asr python=3.13
conda activate til-asr

Finally, install the development dependencies into your newly created virtual environment.

pip install -r requirements-dev.txt

You should also considering using uv for python versioning and dependency management all in one.

Understanding this repo

There's a subdirectory for each challenge: asr/, cv/ and its subcategory noise/, nlp/, and ae/. Each contains:

  • A src/ directory, where your code lives.
    • *_manager.py, which manages your model. This is where your inference and computation takes place.
    • *_server.py, which runs a local web server that talks to the rest of the competition infrastructure.
  • Dockerfile, which is used to build your Docker image for each model.
  • requirements.txt, which lists the dependencies you need to have bundled into your Docker image.
  • README.md, which contains specifications for the format of each challenge.

You should also see another subdirectory, test/. This contains tools to test and score your model locally, and are automatically run when you use the til test TASK command on your GCP Workbench instance.

There are also two Git submodules, til-26-finals and til-26-ae. til-26-finals contains code that will be pulled into your repo for Semifinals and Finals. til-26-ae contains the til_environment package, which will allow you to train and test your AE model, and is installed by pip during setup. Don't delete or modify the contents of til-26-finals/, til-26-ae/, or .gitmodules.

Build, test, and submit

Submitting your model for evaluation is simple: just build your Docker image, test it, and submit. You can find a more detailed tutorial, including advanced usage for power users, in the Wiki.

On the GCP Workbench instance, your environments come pre-set up with a command line utility til that will help you build, test, and submit your trained model containers. If you encounter any issues, look through #hackoverflow on Discord to see if anyone has encountered your problem; if not, post a new question.

tl;dr:

til build asr
til test asr
til submit asr

Done!

Build

You can build your containers using til build CHALLENGE [tag]. For example:

til build asr
til build ae algo-update

The script first runs cd into the directory of the model you want to build (e.g. /asr). Then, it builds the image using Docker, automatically adhering to the required naming scheme TEAM_ID-CHALLENGE:TAG using any Docker tag you give it, defaulting to latest if not provided. You should then test your model using til test before using til submit to submit your image for evaluation.

# cd into the directory. For example, `cd ./asr/`
cd CHALLENGE

# Build your image. Remember the . at the end.
docker build -t TEAM_ID-CHALLENGE:TAG .

Test

You can test your containers locally using til test CHALLENGE [tag]. For example:

til test cv
til test noise extra-noisy

This will deploy your container on a local Docker network without internet access, and test querying it with all the training data in your track directory (either /home/jupyter/novice or /home/jupyter/advanced). For all the details, check out the Wiki.

Submit

You can submit your containers for automated evaluation using til submit CHALLENGE [tag]. For example:

til submit nlp
til submit cv epoch-100

For all the details of what the submission command does, check out the Wiki.

Links


Code in this repo is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages