META: FastAI Community Project Collaboration

Hey FastAI Family,

I’ve been noodling around with a “meta” project idea I wanted to float out to the community and get some thoughts / discussion going. I want to explore what we could do to help answer the question:

"Who should I connect with, and how should I connect with them for shared interests in potential projects".

The first thing I want to say is that we have one of the absolute BEST online communities that’s out there for machine learning. I’m sure most of you have spend time on HackerNews, r/MachineLearning, and engaged with enough internet trolls on Twitter to understand how toxic and negative a community can become. I am continually so impressed and grateful for the positive, helpful, and just flat out amazing community we have. It’s amazing to see so many people learn REALLY difficult things incredibly quickly, build outstanding products, produce fascinating (and often state-of-the-art) research, make amazing career changes, and most importantly give back to the community (blog posts, paper implementations, fastai codebase, answering forum questions, etc.). @jeremy and @rachel are doing a really tremendous job helping this community to scale well, and it is extremely difficult to scale things that are good. You can tell they’ve put a ton of thought into this – a few concrete examples of this are them keeping the class size relatively small (for a MOOC) and curated, the top down teaching / learning style they’ve implemented, and even how the fastai software library is designed to be extremely approachable but infinitely hackable.

I think there is an opportunity to improve on our ability to collaborate / learn together – especially as the overall size of the community grows and expertise levels diverge. I recently worked on a little project to tag social media links on the “Introductions” thread, and I was blown away the potential of everyone in that thread. We have medical doctors, data scientists, entrepreneurs, graduate students, psychologists, and everything else you could imagine. We have members in Kenya, Brazil, Portugal, India, Australia, etc. We have learners taking this course for the first time, and we have learners taking this course for the fourth time! Everyone here seems hungry to learn, eager to build something cool, and motivated to contribute.

Few premises that I’m taking for granted (feel free to push back on any of these):

  1. We have to write code in order to really learn and master practical deep learning
  2. We’re most motivated to write code if we have a compelling research area or practical project to work on
  3. Working with others as we learn / write code will drastically improve learning efficiency and overall productivity
  4. Collaborating with a diverse (fastai expertise, domain knowledge, backgrounds, life experiences, etc.) team that’s aligned on a research / project goal will act as a catalyst to further improve understanding and productivity
  5. We don’t do a great job of facilitating collaboration (and this is especially difficult with everything going on right now)

We have some senior members with really deep levels of expertise in practical deep learning, the internals of the software library, and established connections in the community. At the same time, we have newcomers joining the community with varying degrees of deep learning / fastai expertise, but rich and diverse backgrounds / experiences. There seems to be a strong opportunity to create synergy by getting the right people connected and working together.

Project Goal:

  • Make it easier to see similar interests / goals
  • Make it easier to solve technical challenges
  • Make it easier to propose and collaborate on research / practical projects
  • Make it easier to build groups for research / projects
    • (i.e. Daniel, Andrew, and Mary are all interested in FinTech, and have a good diversity of experience / backgrounds)
  • Help users discover each other and connect (i.e. “David is also interested in FinTech, you two should connect!”)

Few Ideas:

  • Add Discourse Q&A plugin for technical challenges
  • Pull forum data (users, posts, etc.) via Discourse API / web scraping
  • Build recommender system / optimization algorithm for discovering users / projects
  • Create a more structured mechanism to propose projects and discover them / engage with them.

It’s absolutely possible that this is not really a solvable problem, or that attempting to improve it with some sort of algorithm / technology solution may yield unintended consequences / negative feedback loops. Maybe the best answer is to do nothing, but I wanted to share my thoughts and see if they resonated with anyone else (and I really hope I’m not overstepping) :slight_smile:

Thanks!

Daniel

8 Likes

Hey Daniel,

Thanks so much for putting together such a well written and considered proposal.

I certainly share the need to figure out how to connect to people to collaborate with. I’m very interested in NLP, in music, and transfer learning. I’ve just read the Zeiler and Fergus paper that Jeremy referenced in Lesson 2. I’d love to understand what they did, and how they did it, and try to come up with additional multilayer visualization techniques. I have some ideas about using a library like three.js for this.

They write: "The visualization technique we propose uses a multi-layered Deconvolutional Network (deconvnet), as proposed by (Zeiler et al., 2011), to project the feature activations back to the input pixel space. "

I don’t know what that means. But I’d like to find out and to find some others who might be able to help deconstruct that sentence, or have skills in 3d modeling, or javascript, or 3DStudioMax or Rhinoceros, or who just want to take the plunge into the unknown.

The scope of what you’re proposing looks to me like it would itself be a project. Is that what you have in mind?

Best,

David

1 Like