Fastai Study Group Guide

(Pierre Guillou) #1

Fastai Study Group Guide

Credit & Update

This guide has been done by fastai participants that sent feedbacks into the thread “Feedbacks from existing study groups”. Its version v1 was edited on the 1st of April 2019 (and it is not a joke :slight_smile: ).

Feel free to update it from your own experience!
Simply edit this post… and just do it :slight_smile: : making corrections and/or adding relevant information.
Then, do not forget to post in this thread a message explaining the changes you did in this post.
Thank you! :slight_smile:

Overview

By this post (October 2018), Jeremy Howard (fast.ai) facilitated the creation of local fastai Part 1 (2018) study groups. While groups continue to be created in the world, it became interesting to collect feedbacks from the organizers and participants of these groups in order to list the best practices and avoid some gaps inside an online guide.

Table of contents

  • Deep Learning with fast.ai
    • The Power of Deep Learning
    • Deep Learning issues
    • Fastai objectives
    • About fast.ai
  • Prerequisites for participants
  • Advice for organizers
  • Challenges of organizing a fastai study group
  • Before the first meeting
  • The first meeting
  • Teaching practices
  • Participant Guidelines
  • Course success survey

Deep Learning with fast.ai

The power of Deep Learning

(source) Deep learning has great potential for good. It is being used by fast.ai students and teachers to diagnose cancer, stop deforestation of endangered rain-forests, provide better crop insurance to farmers in India (who otherwise have to take predatory loans from thugs, which have led to high suicide rates), help Urdu speakers in Pakistan, develop wearable devices for patients with Parkinson’s disease, and much more. Deep learning could address the global shortage of doctors, provide more accurate medical diagnoses, improve energy efficiency, increase farm yields, and reduce pesticide use.

Deep Learning issues

(source) However, there is also great potential for harm. We are worried about unethical uses of data science, and about the ways that society’s racial and gender biases (summary here) are being encoded into our machine learning systems. We are concerned that an extremely homogeneous group is building technology that impacts everyone. People can’t address problems that they’re not aware of, and with more diverse practitioners, a wider variety of important societal problems will be tackled.

Fastai objectives

(source) We want to get deep learning into the hands of as many people as possible, from as many diverse backgrounds as possible. People with different backgrounds have different problems they’re interested in solving. The traditional approach is to start with an AI expert and then give them a problem to work on; at fast.ai we want people who are knowledgeable and passionate about the problems they are working on, and we’ll teach them the deep learning they need.

People sometimes ask if I think it’s risky for everyone to have access to AI. I think it’s MORE risky for an exclusive & homogeneous group alone to develop tech that impacts us all. https://t.co/0jRfmgXGDJ

— Rachel Thomas (@math_rachel) March 28, 2018

While some people worry that it’s risky for more people to have access to AI; I (ie, Jeremy Howard) believe the opposite. We’ve already seen the harm wreaked by elite and exclusive companies such as Facebook, Palantir, and YouTube/Google. Getting people from a wider range of backgrounds involved can help us address these problems.

About fast.ai

(source) Deep learning is transforming the world. We are making deep learning easier to use and getting more people from all backgrounds involved through our:

The world needs everyone involved with AI, no matter how unlikely your background.

Prerequisites for participants

(source) Deep Learning Part 1 covers the use of deep learning for image recognition, recommendation systems, sentiment analysis, and time-series prediction. Wondering if you’re qualified? The only requirements are:

  • Ability in English (oral and written comprehension)
  • At least 1 year of coding experience (the course is taught in Python)
  • At least 8 hours a week to commit to the course (includes time for homework)
  • Curiosity and a willingness to work hard
  • Be available to attend in-person one meeting per week

Advice for organizers

Even if the knowledge of fastai courses and library would be an advantage for the organizers, it is optional as well as a basic knowledge of didactics and experience of conferences and training. The key point is acting with good will.

  • Endorsement of the fastai objectives (see paragraph “Fastai objectives”), and in particular, good to keep track of how many women and URGs (under-represented groups) join, and how you can make your groups welcoming for them.
  • Commitment to train participants on all fastai lessons.
  • Support from a group of experts in Deep Learning and / or experienced people on fastai.
  • Starting with a small team and ask for volunteers to join the organization at each meeting.
  • Using an online channel to exchange ideas, schedule meetings and prepare teaching materials (WhatsApp, telegram, etc.)
  • Preparation time: rotating hosts helps share preparation work
  • Keep learning with fun : do a group project together to learn and have fun and after meeting, go out to continue nerd-chat for example
  • Growing of the study group: get one or more local sponsor in order to help with venue larger, food and drinks, and even cloud computing credits.

Challenges of organizing a fastai study group

  • Participants
    • Empowerment of participants (weekly participation and stay until the end)
    • Different levels of knowledge (beginner, intermediate, advanced)
    • Different personal goals
    • Different learning speeds
    • Too much to learn for the participants (DL theory and fastai library)
    • Temporal variability at which participants can attend
  • Organizers
    • Too much preparation time for a single organizer
    • Logistic (classroom, communication channels, etc.)
    • Stay on schedule
    • Build a healthy supportive culture from start and have fun
    • Focus on learning objectives one at a time
  • Follow up or professional projects
    • Did you try to organize special interest groups around topics (eg to deoldify pictures, analyze tabular data, language topics) to deep dive and prototype apps?
    • Weekly coworking sessions ?
  • Collaborations & Communication
    • with local companies and if yes, how?
    • with local universities or schools and if yes, how?
    • with initiatives like City AI 3, AI saturdays 1, meetups or others and what would be the benefit?
    • Be part of a bigger communities in your local area (for example, do presentations in local research institute and universities)
  • Communication
    • It is important to find talents in the group who have the ability to publicize the existence of the group and its achievements in social media networks, ensuring that the new courses have more and more participants for example.
    • The organizers are also expected to publicize the group at seminars and lectures of artificial intelligence events in the city.

Before the first meeting

This paragraph answers all questions about “How do I create a local study group?”.

  • Organizers: see the paragraph “Prerequisites for organizers”.
  • Participants: no selection but some prerequisites (see the paragraph “Prerequisites for participants”).
  • Average number of participants: there is no limit but of course, check the possibility of the meeting room.
  • Registration method (online registration form, etc.): create an online form to be filled in by each participant about the challenges, for example in Google Forms (answers could help create small study groups).
  • Number of meetings per week: commit to meet on regular basis (minimum once a week).
  • Duration of a meeting: not more than 3 hours by meeting (90 minutes of class + 10 minute break + 80 minutes of exercise).
  • Infrastructure: classroom, air conditioning, projector with a big screen, wi-fi network, electric extensions, microphones (if necessary), camera to post live/recorded video on youtube (and restrooms !)
  • Online communication channel: site / Medium / blog / Facebook page / twitter / Meetup for the study group… In order to communicate on the study group activity, blogs / projects produced by participants of the study group, people getting jobs, workshops given, speaking at conferences, etc. (this online communication channel acts as an impact report that can also be used to obtain sponsorship, particularly funding of meetup dues).
  • Online working channel: any (free) online working channel (fastai forum, slack, telegram, whatsapp, Google Group, newsletter, etc.) (fastai forum + Slack seems to be a winning combination for most study groups)
  • Online shared documents: any cloud storage in order to put online all documents created in the study group (slides, guides, notebooks, etc.) (ex: a shared Google Drive with all reading/writing rights for all)
  • Definition of a course objective: number of meetings, creation of a notebook, creation of projects, pourcentage of participants until the end, creation of a community, etc.

The first meeting

  • Course organization: presentation of the course objectives, the organizers, the material and the course schedule.
  • AI history and course content: presentation of the history of Deep Learning, key applications and fastai (course + framework + Jeremy Howard / Rachel Thomas).
  • Code of conduct: presentation of the Include a code of conduct on what behavior is acceptable and what is not (ex: https://numfocus.org/code-of-conduct).
  • Teachings:
    • how to use and install a Jupyter notebook
    • the basics of python, numpy, pandas
    • how to install a DL environment (GPU in laptop (Windows, Apple, Linux) / cloud)
  • Groups:
    • Help to group participants by level (beginners and advanced) or create 2 groups (concepts and coding) and let participants choose.
    • Help to create groups of students to study outside of meetings.
  • Homework:
    • Give as an objective for the participants to get a fastai environment ready for the next meeting.
    • Ask volunteers to be referents in the installation of a DL environment during the following week and in the next meeting in order to help the others

Teaching practices

  • Lesson review: each course should have a lesson review (of the precedent lesson as a reminder, of the objectives of the current meeting and at the end in order to fix new contents in mind).
  • Lesson slides: creation of slides by using @hiromi notes.
  • Practical coding exercise: each course should get a time for practice.
    • Objective: get a better accuracy than a published jupyter notebook using fastai
    • Take a jupyter notebook published in the fastai forum thread “Share your work here”.
    • Improve it and put it into production (for example, by creating a Web app).
    • Delete some code and ask the participants to find the missing one.
    • Ask participants to run the notebook and what they could do to improve.
    • Display in the projector the results of the participants notebooks.
    • Summarize the issues and key points.
  • Teaching methodology:
    • an instructor presents the key points / no teaching but watch fastai videos / walking through the notebooks on a different dataset, sharing the learnings and discuss with the group how it can make it even better / other)
  • Watching the fastai video in meetings: select sections of the lesson video (20-25 minutes) followed by 5-10 minutes to answer questions and/or share ideas (option: ask a participant to summarize the key points).
  • Initiatives: mini-presentations of 10-30 minutes are welcomed (it encourages more participation and offer a refresher of the course details or projects fastai-based) to mix with fastai lessons to meet our diverse audiences needs:
    • winning solutions of long-term hackathons,
    • implementing papers,
    • transitional ML techniques, explainable AI, etc.
    • projects to solve real problems of local public or private companies.
  • Homework:
    • Review the lesson, slides and notes.
    • Watch the fastai video of the next lesson.
    • Tell participants use the group working channel for asking if needed.
    • Making of personal notebooks with different datasets and posting links to them.
    • Posting on Internet (medium.com for example) articles about one point (or more) of the lesson.
    • Proposition of Kaggle challenges to groups.
  • Practical laboratory: every two video meetings, you could organize a practical laboratory to do a step-by-step coding exercise prepared by some volunteer of the course or by an organizer. This practice is highly recommended as it allows students to execute the codes and bring different datasets for application of the theory with their company’s data or study at the university.
  • Between 2 courses: the forum (or the online service chosen as slack, etc.) could be used to discuss specific topics.
  • (option) Attendance control of participants: control through QrCode associated with google spreadsheets or through Kahoot, a gaming-based learning platform.

Participant Guidelines

Course success survey

  • Get some parameters/numbers/quality evaluation to estimate the success of a fastai study group (evolution of number of participants, number of presentations by participants, number of blog posts, number of published notebooks, satisfaction survey, etc.)
    – How are the participants involved? (weekly presentations, etc.)
    – Which percentage of participants stayed until the end?
    – How many posts from participants published?
    – How many projects launched?
    – How many notebooks published?
    – Quality survey completed by the participants?
6 Likes

[ closed ] Feedbacks from existing study groups
Please help organize study groups! :)
[ closed ] Feedbacks from existing study groups
[ closed ] Feedbacks from existing study groups
Atlanta Study Group
(Pierre Guillou) #2

Hello. As Jeremy suggested, it would be nice to add at the beginning of this guide a paragraph about How do I create a study group?.

Indeed, in the “Before the first meeting” paragraph, there is a short information (see below) on this subject but it needs to be developed.

Registration method (online registration form, etc.): create an online form to be filled in by each participant about the challenges, for example in Google Forms (answers could help create small study groups).

Who wants to start writing this paragraph? Simply edit the first post of this topic and do it :slight_smile:

1 Like

(Fernando Melo) #3

Hi @pierreguillou and @jeremy,
Fastai Study Group Experience
My name is Fernando Melo, Co-organizer of Fastai Study Groups in Brasília-Brazil.
Here are some tips to successfully organize Fastai study groups:

We are the organizers of the largest Fastai community in Brazil and we are located in Brasilia, the capital of the country. We also manage the biggest Meetup group of Machine Learning Brasília.
We have already set up many Fastai courses, completely free and open to the community, about machine learning and deep learning in the last two years.

Based on my experience in organizing 4 face-to-face study group courses(more than 50 group meetings), involving from 30 to 100 students each, I believe that the main points for success in organizing Fastai study groups are:

1 - Organizers
A qualified group of organizers who know the material and are committed to the principles of the Fastai Institute, such as empowering the largest number of people and showing that AI and deep learning can and should be developed by ordinary people, with little experience in coding.
The main organizers of the study groups are myself (Fernando Melo) and Erick Muzart and we have the support of several veterans of the previous courses, among which I highlight Pierre Guillou. It is very important to maintain a team of experienced veterans to support the group, especially in practical classes and extra-class projects.
The organizers have to communicate efficiently and might have a group in whatsapp or telegram to exchange ideas, plan meetings and prepare class material.
It is desirable that the organizers have basic knowledge of didactics and experience in lectures and trainings.

2 - Infrastructure
The physical space: classroom, furniture, air conditioning, big screen, wi-fi network, microphones and bathrooms are a big part of success.
Our meeting place is a training center of excellence, newly built, one of the most complete in the city: Instituto Serzedello Correa- TCU.
People want to meet and, also, have a pleasant experience. Our meetings are 3 hours long and they need to have a minimum of comfort, so that the learning process happens easily with no distractions.
A Good infrastructure will motivate students to attend and continue to strive to learn.

3 - Communication
Communication is key! Communication should be fast and efficient, both between the organizers and the students( here is where they post questions and get help from organizers or classmates).
In our case we use several communication resources: We have a general deep learning group in the Telegram and we create groups in whatsapp / telegram / slack for each course.
We also use the Machine Learning Brasilia meetup to manage the meetings and communicate when will be the next meetings.

4 - Meetings
The meetings are planned in advance, where sections of the video from Jeremy’s class are selected. These sessions usually last 20-25 minutes (based on the Pomodoro technique), followed by 5-10 minutes to answer questions and/or share ideas. Students should be encouraged to pay attention to the video and take note of the doubts, as well as not try to execute the code during the videos.
We control the students presence through QrCode associated with google spreadsheets or, more recently, Kahoot, a gaming-based learning platform.
The three hours of the meeting are divided this way: 90 minutes of class + 10 minute break + 80 minutes of exercise.
Every two video meetings, we have a class that we call a practical laboratory, where we do a step-by-step coding exercise prepared by some volunteer of the course or by an organizer. This practice is highly recommended as it allows students to execute the codes and bring different datasets for application of the theory with their company’s data or study at the university.

5 - Projects
Experienced students organize themselves into groups to execute projects to solve real problems of local public or private companies.
These projects are presented in specific meetings as a way of exercise the practical application of knowledge and recognizing the participants’ efforts.

6 - Marketing
It is important to find talents in the group who have the ability to publicize the existence of the group and its achievements in social media networks, ensuring that the new courses have more and more participants.
The organizers are also expected to publicize the group at seminars and lecture at artificial intelligence events in the city. This is another important form of marketing study group.

I believe these are some important points that are key to success in organizing Fastai study groups. I hope these ideas can help colleagues around the world to create a competent community in the practice of deep learning. It is important to emphasize that much of our success with the community comes from the excellent material created by Jeremy Howard and the entire Fastai team.

I wish everyone a huge success!

2 Likes

[ closed ] Feedbacks from existing study groups
(Pierre Guillou) #4

Thank you @NandoBr!
I did my best to incorporate your comments/tips/advice into the existing guide when relevant information was missing.

0 Likes

(Pierre Guillou) #5

I wrote new paragraphs today into the guide to present Deep Learning and its issues, fastai and its objectives, prerequisites for participants and advice for organizers. The titles of the new paragraphs are:

  • Deep Learning with fast.ai
    • The Power of Deep Learning
    • Deep Learning issues
    • Fastai objectives
    • About fast.ai
  • Prerequisites for participants
  • Advice for organizers

A reminder: feel free to update the guide from your own experience!
Simply edit it… and just do it :slight_smile: : making corrections and/or adding relevant information.
Then, do not forget to post in this thread a message explaining the changes you did.
Thank you! :slight_smile:

0 Likes

(Pierre Guillou) #6

Hi. I just added the following phrase in the paragraph “Prerequisites for participants” of the guide:
Ability in English (oral and written comprehension)

1 Like