Project¶
The project of the class requires original work and is intended to give an introduction to the research process in ML systems. We would like you to start early, send updates often to the instructor, and manage the project to finish by the end of the term.
Research project¶
A project can be a proof of concept of a novel system, an extension of existing work, or any research project that you could realistically extend to a conference-quality paper. You will have to complete substantive work on an instructor-approved problem and have original contribution. Surveys are not permitted as projects; instead, each project must contain a survey of background and related work.
Much of this project is intentionally underspecified, and you should pick a project that you have sufficient time and experience to accomplish. Depending on what you propose, your project could require modifying a ML framework, using a profiler, implementing a custom simulator, learning a new language, proving an interesting new result, or coordinating a software development effort across multiple group members. You will likely need to read research papers outside of the class reading list. (Check the references of any paper for the most closely related prior work, and read or skim the prior work!)
For a new sytem, here are questions you would want to answer:
How and why did you design the system the way you did?
How does the system perform in comparison with prior work in similar areas?
Why does it perform as it does (i.e., which design decisions account for what benefits)?
What are the system’s weaknesses and limitations?
Final report¶
Your final deliverable will be a 8 page report about your project. To prepare your report, please use the LaTeX style files provided at: SML2020style.tar.gz
You will be expected to:
Introduce the project, placing it in context, giving an overview, and summarizing your major contributions or findings.
Discuss prior work and the landscape of the area.
Explain your methods and/or the design of your system.
Present the experimental setup in detail (assuming there are experiments, rather than proofs).
Describe the results in figures and text.
Discuss the meaning of the results and what the reader should take away.
Describe the limitations and weaknesses of your system, measurement, or approach.
Propose a plan for future work in the area. What would you do next if you had more time?
Be wise and mindful of your (other) deadlines and other commitments before you decide your deliverable.
Milestones and deliverables¶
You must meet the following milestones (unless otherwise specified in future announcements) to ensure a high-quality project at the end of the semester:
Turn in a 2-page draft proposal (including references) by September 28.
Before you submit your proposal, we encourage you to talk to us (e.g. in office hours, or in lecture).
Pick either an original project idea
Write a proposal describing:
Who is in your group. Remember to include the names and KAUST email addresses of the group members.
The overall goal of your original project.
Details about what you will do.
A brief outline of incremental steps you will need to do to finish the project as well as a timeline. The goal here is to convince both us and yourself that your project is neither too small nor too big.
To prepare your proposal, please use the LaTeX style files provided at: SML2020style.tar.gz
Keep revising your initial idea and incorporate instructor feedback. However, your team and project proposal must be finalized and approved on or before October 6.
Each group must present mid-semester progress during class hours on November 1.
The presentation should address the following points:
Motivate the project and provide background.
Explain the difference between this project and related work.
Present the high level idea, approach, and/or insight (using examples, whenever appropriate).
Discuss technical details so that one can understand the key aspects of the project.
Report on early results as appropriate.
Recap the status of the project.
Illustrate the plan for the remaining time.
The slides for the presentation must be emailed to the instructor prior to the class.
Each group must present their final results during a presentation or poster session during the week of December 6.
Each group must turn in an 8-page final report and their code via email on or before 11:59PM on December 9.
The report must be submitted as a PDF file, with formatting similar to that of the papers you’ve read in the class. Please use the LaTeX style files provided at: SML2020style.tar.gz
The self-contained (i.e., include ALL dependencies) code must be submitted as a zip file. Each zip file containing the code must include a README file with a step-by-step guide on how to compile and run the provided code.
Regular check-ins and meetings¶
During the course of the project, you’ll have one mandatory meeting with the us around the time the milestone is due. The goal is to make sure you’re on track to complete the project. In addition, we will expect you to send an update (via Piazza) each week to the intructor describing:
what you did this week,
which papers you read this week, and
what you need to do next week to stay on track.
These updates will not be graded; the idea is to make sure you are making incremental progress. You may also visit the instructor by appointment.
Grading¶
You’ll be graded out of 50 points total. The grades will be based on the following:
15% Research proposal
35% Final report
More than the success of the final results, we look for how thorough your efforts have been.
The project presentations (mid-semester and final) will each count 7.5% of the total grade.
Searching for interesting papers¶
We recommend searching for interesting papers published in recent years in top ML and systems conferences, or by searching through the references section of another paper in the field. Relevant venues include:
MLSys: Systems and Machine Learning conference
Systems for ML and Open Source Software: workshop at NeurIPS 2018 with exciting but half-baked ideas
Marco’s SysML reading list
OSDI: major conference in computer systems
SOSP: alternates years with OSDI
NeurIPS: major conference in machine learning
ICML: major conference in machine learning
NSDI: networking and systems (overlap with OSDI)
USENIX ATC: conference in computer systems
EuroSys: conference in computer systems
ICLR: conference in machine learning
AAAI: conference in machine learning
Other places would be the website of authors whose papers you’ve read in class and liked.