Marco Serafini - Homepage

Systems for Machine Learning, Machine Learning for Systems (COMPSCI 692S)

Machine learning is employed in an increasingly wide range of applications. Using ML entails developing end-to-end pipelines to collect data, clean it, and run learning and inference algorithms in a scalable manner. This results in computationally intense workloads and complex software pipelines. Systems for ML help users organize their data and scale these computationally intense problems to larger and larger datasets. At the same time, ML is having an increasing impact on systems design. Fine-tuned analytical heuristics and cost models are being replaced by learned models, following trends observed in other fields. This seminar will review cutting-edge research on these topics and allow students to work on a hands-on project. This course will primarily involve reading, presenting, and discussing papers (1 credit), and a final project building an end-to-end machine learning pipeline (3 credits).

Class meetings: Wednesday 11:15 AM-1:15 PM, CS 142


1 credit: Students will attend the class and read the research papers discussed in the class. They will have to prepare a presentation on one of the papers. They will also prepare a final presentation on a topic agreed with the instructor. This will be individual work.

3 credits Same work as for 1 credit but excluding the final essay. Students (in groups of 2) will also have to pick either (1) a systems problem that can benefit from the use of ML algorithms, or (2) a use case ML application that requires systems support for data collection, data cleaning, machine learning, inference, or a pipeline composing these steps. The choice will be agreed upon with the instructor.

Students will then prepare a “problem statement” report where they describe the application and identify challenges in terms of scalability, reducing running time, and/or usability. Students will also propose a solution, its target goals, and intermediate milestones. The claims need to be validated experimentally. The report will be presented in class.

Students will then implement the solution and finally write a report describing it. The final report will validate the system design through performance measurements and/or user studies. There will be a final presentation for all projects.