Inspiration

As someone that loves AI and everything about it, it can sometimes be time-consuming to implement an AI model, even if you know exactly how to do it. Skynet is a solution for data scientists to quickly draft, train, and implement an AI model with just a few simple commands, putting efficiency and speed over size mismatching errors.

What it does

Skynet does lots of things to make your life as an AI developer a lot easier -- Skynet:

  • Automatically loads popular AI models, such as EfficientNet and VGG19

  • Gives you the ability to automatically search, download, and extract a dataset using Kaggle's Python API -- with just one keyword

  • Automatically trains your model of choice for you

  • Allows you to instantly test your trained model right after its finished: just type implement and feed it some input

How we built it

Skynet was built with Python -- it primarily uses popular AI and Scientific Computing libraries, such as PyTorch, numpy, pandas, and PIL. All models that can be loaded are found in the "preloads" directory in the GitHub repository. All CNN architectures were built using the papers that describe them, with the exception of the Linear Regression model and the CNN model.

Challenges we ran into

There were a lot of bugs and technicalities that hindered the development of Skynet, here are a few:

  • Directory errors - With the nature of Skynet's dataset finder, it can be difficult to track down the actual dataset in the Skynet directory when you take into account subfolders, files, and the extracted file going under a different alias than its zip. An algorithm implemented to fix this was loop over all subfolders in Skynet's directory -- if Skynet found a subfolder called "train", a very common name in AI datasets, it will automatically use that. Otherwise, it looks for subfolders that do not contain model parameters or preloaded AI models.

  • Implementing a Dataset finding algorithm - Web scraping was considered as a possible solution in the initial stages of development, but the ease and simplicity of Kaggle's API was unbeatable.

  • Implementing the EfficientNet-B4 - The EfficientNet-B4 is one of the most complicated architectures in Skynet's arsenal -- I got by with PyTorch documentation and the research paper that described EfficientNet

Accomplishments that we're proud of

  • Ease of finding, downloading, and extracting a dataset in Skynet, something which can take a while to do solo

  • Ease of customization and configuration of a model

  • Algorithms such as ones mentioned in Challenges

What we learned

Skynet was a very fun learning project for me, but the two biggest takeaways from the project were how to use Kaggle's API and how to effectively implement a wide variety of CNN architectures.

What's next for Skynet

Skynet still has a long way to go -- it only supports 5 AI models, a fraction of the models available. In the near future, I seek to implement a Transformer model in Skynet, which will be used for natural language processing and more. I also seek to improve Skynet's variety of configuration: some aspects of models can not be configured, like the image resolution they take as input (not a problem functionally for the user, since all images fed in the model are resized beforehand anyways), and the loss functions that each model architecture uses.

Built With

Share this project:

Updates