Inspiration

A duck walked up to the lemonade stand and said to the man… Many small to medium-sized businesses struggle with challenges that could be addressed effectively with AI. However, many simply lack the in-house expertise to fully utilize the advantages of modern ML techniques. We wanted to build something that makes it easier for these businesses to integrate AI into their workflow by using the competitive aspect of programming.

What it does

AquaDuck opens an entire machine learning pipeline to the world. From labeling data to training and hosting models, we provide a complete process for companies (clients) in need of additional expertise. This is done through a competitive pipeline where businesses post ML tasks for anyone to tackle. This allows clients to outsource the technically challenging aspects of integrating AI while still getting the best value for their money.

Our pipeline consists of four major components: 1) Defining the task. 2) Data labeling, cleaning and augmentation. 3) Model training and benchmarking. 4) Deployment

Clients simply have to provide the dataset with a markdown containing the instructions pertaining to labelling and training. We then open the labelling to qualified users and employ techniques to ensure the labelling accuracy. Once we have the labelled data, it is available to programmers worldwide to train a model on. Put simply, the best model in X days gets the reward. Lastly, using inference we provide a cloud service platform for our clients to run the model on.

To remain profitable, we have adopted a credit-based system. Users receive credits for labelling and training and companies spend credits to run the model. There is also a fixed cost associated with the tasks that

How we built it

Frontend: React with Tailwind CSS served by our Spring Boot API and hosted on our Azure system resources. Backend: Spring Boot API running on Azure services (VM, MySQL, File Storage); Docker for test containers.

We drew up a flowchart focusing on the different requirements the frontend and backend must meet. Based on that we drew up tasks and implemented a basic functioning product. Once we had that, we worked on improving the UI considering user experience. We also tested the code through different cases ensuring seamless functioning.

Challenges we ran into

The primary challenge we ran into was dealing with unstable backend resources. There were a few occurrences of our mounted drive, which contained our datasets and models, refusing to connect for hours at a time. This severely delayed our backend development time, however we were able to weather the storm, regain access, and continue development.

We also ran into problems setting up Docker containers for running Python programs. The issues mostly consisted of improper configurations that happened due to differences between Windows (development machines) and Linux (VM) file systems.

Lastly, we ran into an issue provisioning desired resources on Azure. To put it simply, quite a few attempts had to be made to spin up some resources for Azure’s quota and capacity policies.

Accomplishments that we're proud of

We are very proud we finished it. What seemed quite ambitious Friday night came to life almost as good as we envisioned it in the best case scenario. Nonetheless, we didn’t waddle away from any challenges, and as a result built something we loved.

What we learned

We learned that selecting appropriate sizes for all Azure resources early on will help development in the future by minimizing the need to reprevision resources. Additionally using WSL as a primary development platform when working from Windows can improve our efficiency and reduce development time.

What's next for AquaDuck

To get AquaDuck industry ready, we plan to take the following steps: Enhanced confidentiality: By using encrypted vaults and NDA-based contracts, we plan to ensure that the client data remains confidential and only verified users can access it. Expertise Build Up: We plan to include badges and verify expertise for all domains from Medicine to Autonomous vehicles to get AquaDuck ready for industry use. Payment Processing: Incorporate popular existing solutions into our platform to make it as easy as possible for all users to add/withdraw credit funds to/from the account. Mobile App: We plan to introduce a mobile app so users can label data with more ease.

Share this project:

Updates