Skip to content

GSoC 2023 project ideas

vfdev edited this page Feb 1, 2023 · 1 revision

Google Summer of Code 2023 project ideas for PyTorch-Ignite

What is GSoC

During Google Summer of Code, participating contributors are paired with mentors from open source organizations, gaining exposure to real-world software development techniques. Contributors will learn from experienced open source developers while writing code for real-world projects! A small stipend is provided as an incentive.

Participating organizations use the program to identify and bring in new, excited developers. Many of those new developers will continue to contribute to their new communities and open source long after GSoC is over.

Getting started

Thank you for your interest in applying for Google Summer of Code with PyTorch-Ignite ! We are definitely looking for new developers who will contribute and continue to contribute to their new communities and open source.

There are few basic requirements for new contributors. They have to accomplish the following steps:

To be considered as a GSoC student, it is necessary to have at least 3 accepted PRs to the project. Please, see help wanted issues. For specific questions and details please reach out to us on Discord, #start-contributing channel

Projects


Examples and integrations (175 hours)

According to our Roadmap, we would like to provide more integrations with other tools to simplify Machine/Deep Learning end-to-end applications.

In this project we would like to provide more examples of PyTorch-Ignite using other tools bringing new features or insights, e.g. federated learning, interpretability, hyper-parameter tuning, etc.

  • (medium) Code an example for federated learning with PySift or any other equivalent tool (openfl, ...). #1378

  • (medium) Code an example of hyper-parameters tuning using Ray tune, #1735

  • (medium) Code an example using ffcv : https://ffcv.io/

  • (hard) Port Detectron2 training script and use ignite instead of custom trainer.

  • (hard) Define a scope and code an example using pytorch Distributed RPC framework.

We can discuss and add other integrations during the GSoC program if needed.

We may decide later about example format: a tutorial or plain script or a template to our code-generator. Writing tutorials may be more time expensive but better for visibilty. Minimal requirement is a python script. Providing a code-generator template is desirable.

Expected outcome

We would expect at least 4 medium items (hard item == 2 medium) from the above list to be done for this project. In addition, it would be nice to have a short blog post communicating about the work done.

Required skills

  • Intermediate level for Python and Git
  • Intermediate knowledge of PyTorch
  • Beginner knowledge of PyTorch-Ignite codebase

Preferred skills and mindset

  • Fluent with Python
  • Already trained neural networks with PyTorch
  • Willing to maintain AI-related open-source project
  • Curiosity and motivation to learn new technical things

Complexity rating

4 / 5 or medium

Expected project size

175 hours

Potential mentors:


Code-generator templates (175 hours)

We are providing to PyTorch-Ignite's community a code-generator tool, a web application built with Vue.js 3 to quickly produce quick-start python code for common training tasks in deep learning. Code is using PyTorch framework and PyTorch-Ignite library and it can be configured in the UI.

This tools can be helpful to start working on a task without rewriting everything from scratch: Kaggle competition, client prototype project, etc.

The idea is to provide more valuable templates: object detection, RL, knowledge distillation, active learning, few-shot learning, unsupervised learning, diffusion etc

In addition to that we need to improve the current state of the templates, the application and the its code.

We are thinking of the following work plan:

  • (easy) Review all existing templates and improve their readmes and the learning curve

  • (medium) Add a reinforcement learning template based on pytorch-ignite's example

  • (medium) Add an object detection template

  • (hard) Add a template on one of the following topics: knowledge distillation, active learning, few-shot learning, unsupervised learning, diffusion

Expected outcome

We would expect all easy and at least 3 medium items (hard item == 2 medium) from the above list to be done for this project. In addition, it would be nice to have a short blog post communicating about the work done.

Required skills

  • Intermediate level for Python and Git
  • Basic understanding how to write Javascript code
  • Intermediate knowledge of PyTorch
  • Beginner knowledge of PyTorch-Ignite codebase

Preferred skills and mindset

  • Fluent with Python
  • Already trained neural networks with PyTorch
  • Willing to maintain AI-related open-source project
  • Curiosity and motivation to learn new technical things

Complexity rating

4 / 5 or medium

Expected project size

175 hours

Potential mentors: