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 ).
Feel free to update it from your own experience!
Simply edit this post… and just do it : 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!
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://twitter.com/techreview/status/978770405455482886
— 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: Code of Conduct for the NumFOCUS Community - NumFOCUS).
- 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
- Create a Participant Guidelines with installation advises, course content, list of resources and how to study at home (see How to do fastai - Study plans & Learning strategies).
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?