Project

Requirement

A main component of the course is a semester-long, research-oriented project on using AI techniques to address a systems problem. You will work as a team of 2-3 students. The project should identify a clear problem, motivate why that problem is important and why existing solutions are insufficient, propose an idea to address the problem, implement a prototype, and demonstrate the idea’s efficacy through experiments and comparisons with existing solutions. In the end, you will write up a project report about your work, just like the research papers you read in the class.

A project generally takes one of three forms:

  • Build. Design and implement a new learning-enabled system component.
  • Reproduce and extend. Reproduce a result from a research paper and then push it somewhere new: a different workload, a different system, or a weakness the original did not address.
  • Measure. Conduct a measurement or empirical study of existing solutions. This route still requires you to build the measurement tooling.

Whichever form you choose, the project is expected to produce new insights and artifacts in this space.

Please use the USENIX conference paper template to format your project proposal and report.

Expectations

A great outcome is that the project will be suitable for publication at a major systems or MLSys venue (OSDI, SOSP, EuroSys, NSDI, ASPLOS, USENIX ATC, MLSys). Additional work after the course is often needed to reach publication quality, but the course project should establish the core idea, a working prototype, and a credible initial evaluation.

The minimum expectations for the project are: (1) it should be interesting! (2) it should produce a software artifact. In other words, even if the project does not yield a real publication, it should have intellectual depth and something that the readers can learn from. For (2), the resulting software artifact should be usable.

A survey of existing literature will not be suitable for the course project. Simply fine-tuning an off-the-shelf model on a systems dataset, or applying a standard model to a standard benchmark without a systems insight, is also not sufficient. The systems contribution must be real.

  Evaluation Pitfalls

Learning-based systems introduce several evaluation pitfalls. Plan for them early and use the following guidance:

  • Weak baselines: Compare against relevant, well-tuned learned and non-learned approaches. Document how each baseline was configured.
  • Data leakage and overfitting: Separate training and test data by workload, time, environment, or system configuration when appropriate. Include held-out and out-of-distribution tests.
  • Hidden costs: Report data collection and labeling, training and tuning time, inference latency, memory use, and compute cost, not only the performance improvement.
  • Unrealistic workloads or metrics: Use representative workloads and end-to-end system metrics. Show that better model metrics produce a meaningful system-level benefit.
  • Selective or unstable results: Run multiple trials, report variability, and discuss negative results, failure cases, and the conditions under which the approach stops working.

Topics and Tips

I will provide a list of suggested topics, but you are encouraged to come up with your own!

  Tips
  • When reading the papers in this course, try to identify (sub-)problems that are related but unsolved, limitations of the proposed solution, a possible better way to address the problem, or whether the paper's insights or techniques are applicable in a different problem domain. Thinking along those lines can give you inspiration about potential project topics.
  • A productive pattern in this area is to take a system component whose policy is currently a hand-tuned heuristic, understand why the heuristic is inadequate, and only then ask what a learned policy would need to look like. Starting from the technique rather than the problem usually leads to a solution in search of a problem.
  • Besides reading papers, your own experiences can also be a source to brainstorm project topics. For example, you encountered annoying performance issues in system software and were frustrated that the existing profilers could not pinpoint the root causes; so a potential project is to identify the limitations in existing profilers and propose a solution to address them.
  • Think about data early. Many promising ideas in this space die because no one can obtain a realistic trace or workload. Identify your data source before you commit to a direction.
  • Form the project team as soon as possible and start the project early. Systems projects take time, even for a course project. If you start late, it is likely that you will not be able to finish the project in time.
  • While you are encouraged to be ambitious, make sure the project is manageable, such that you have something to present at the end.

I will regularly meet with each team to help brainstorm ideas, refine the project scope, and provide guidance. I will always be available for project discussions.

Milestones

Date Milestone
Thu 09/10Team formation
Thu 09/24Proposal due
Tue 09/29Proposal pitches in class
Thu 10/22Project hack day; Progress #1 report due
Thu 11/05Project progress presentations in class
Tue 11/24Progress #2 report due
Tue 12/08Project hack day
Thu 12/10Final presentations; slides due 24 hours before
Fri 12/18Final report and source code due

Note these dates are tentative and will be confirmed on the Schedule page.

Deliverable #1: Proposal

In the proposal, briefly describe the following elements:

  • the problem you plan to tackle, and why the problem is important
  • the state of the art for solving this problem, and why the current solution is insufficient
  • the approach/idea you propose
  • what data or workloads you will use, and where they will come from
  • the objectives/expected outcomes, and how you will evaluate them
  • the potential challenges
  • the timeline and milestones
  • division of work among the team members
  • a list of related work that you plan to read

The proposal should be around 2 pages and include your group members’ names and emails. The proposal only needs to be submitted by one of the group members. Each team will also give a short proposal pitch in class.

Deliverable #2: Progress Reports and Presentation

Submit two progress reports, each around 3 pages. Each report should describe the current status of your project, the solution you have built so far, initial results, new challenges, and any adjustments to your approach or timeline. The second report should explain what has changed since the first report, address feedback, summarize evaluation progress, and identify the remaining work and risks. Each team will also give a short mid-semester progress presentation in class between the two reports.

Deliverable #3: Final Report

The final report should look like a research paper. It motivates the importance of the problem with concrete evidence or data points. It explains why existing solutions do not solve the problem well. Then it describes the insights and ideas of your work, the challenges you needed to address, how you addressed them, why your idea is better, and what your system design and implementation are. Then it shows the experiment results, interprets the results, describes the observations and implications, and concludes whether or how the results demonstrate your solution’s superiority over the state-of-the-art solution. Lastly, include a related work section to compare and contrast with your solution.

There are no hard restrictions on the page limit for the final report, because papers do not need to be long to be good! But your final report must comprehensively cover all the points mentioned above. The rule of thumb is that when it does so, the report is around 6 to 10 pages.

Deliverable #4: Final Presentation

Each project team will be given a slot to give a conference-style talk in class to showcase your ideas and results. A live demo of the system you developed would be a nice element of the presentation. We might host a poster session in Tishman Hall if conditions allow. Presentation slides are due 24 hours before the scheduled presentation.

Deliverable #5: Source Code and Artifacts

You will be required to turn in your source code along with a detailed README and scripts for grading. The software artifact should be runnable by the instructor. For learning-based components, also include your training and evaluation scripts, model checkpoints (or a script that reproduces them), and a pointer to the datasets or traces you used.

Individual Contributions

Each student is expected to make substantial and clearly identifiable technical contributions. At each major milestone, you will submit an individual contribution summary describing what you personally did. Significant imbalance in contribution will result in different grades among members of the same team.