As part of the application for the programme, you will be asked to select two projects that you'd be interested in working on. Below you can find the proposals for all of the available projects.
Project supervisor: Dr Soumya Banerjee
Essential knowledge, skills and attributes:
Programming experience in Python, knowledge of LLMs and a lot of curiosity!
Project description:
For half a century, artificial intelligence research has attempted to reproduce the human qualities of abstraction and reasoning - creating computer systems that can learn new concepts from a minimal set of examples, in settings where humans find this easy. While specific neural networks are able to solve an impressive range of problems, broad generalization to situations outside their training data has proved elusive. In this work, we will look at several novel approaches for solving the Abstraction & Reasoning Corpus (ARC), a dataset of abstract visual reasoning tasks introduced to test algorithms on broad generalization [1, 2, 3].
It has been suggested that large language models cannot reason. This project will infuse some reasoning/priors into large language models and apply them to a large reasoning corpus (Abstraction and Reasoning Corpus).
We will:
- Build agents to solve the ARC-AGI 3.0 challenge [4]
- Apply large language models and large vision models/multimodal models to these problems
- Augment human performance with LLMs (using a recent database of how humans solve ARC problems)
For more information, please see the following: https://arxiv.org/pdf/2402.03507.
References:
[1] https://github.com/fchollet/ARC
[2] https://blog.jovian.ai/finishing-2nd-in-kaggles-abstraction-and-reasoning-challenge-24e59c07b50a
[3] https://github.com/alejandrodemiquel/ARC_Kaggle
[4] https://arcprize.org/arc-agi/3/
Project supervisors: Jessica Montgomery & Ryan Daniels
Essential knowledge, skills and attributes:
You should have a good understanding of data analysis with Python.
- Essential: Python, Pandas, Numpy
- Nice to have: Machine learning knowledge, experience with scikit-learn and experience with LLMs
- You should be interested in AI in general
We welcome applicants from all academic disciplines.
Project description:At the Accelerate Programme for Scientific Discovery, we engage with hundreds of people across the University of Cambridge – from historians to theoretical physicists. This project aims to analyze the data that we collect to map the landscape of AI adoption and implementation across the university with a particular focus on generative AI methods such as Large Language Models. Through this work, we aim to generate insights that will inform future AI training and support initiatives across the university. The successful candidate will gain hands-on experience working with real-world AI implementation data, exposure to diverse AI applications across academic disciplines, and the opportunity to contribute to shaping AI strategy at a leading university.
Project supervisors: Jessica Montgomery & Ryan Daniels
Essential knowledge, skills and attributes:
- Proficiency in data visualisation libraries (e.g., D3.js, Plotly, or Altair)
- Web development skills (HTML/CSS/JavaScript, React or similar framework)
- Experience with data manipulation in Python (pandas, numpy)
- UI/UX awareness for creating intuitive interfaces
- Interest in science communication and making data accessible
Project description:This project will create a beta version of an interactive dashboard visualising AI adoption across scientific disciplines. You will: (1) design user interfaces showing temporal trends, disciplinary patterns, and geographical distributions; (2) implement interactive filtering and drill-down capabilities; (3) create compelling visualisations such as heat maps, network graphs, and timeline animations; and (4) integrate with backend data sources. The dashboard should enable researchers, policymakers, and the public to explore how AI is being adopted across the sciences.
Project supervisor: Dr Sam Nallaperuma-Herzberg
Co-supervisors: Professor Pietro Lio and Professor Neil Lawrence
Essential knowledge, skills and attributes:
General experience programming in Python or similar language. Having studied artificial intelligence (AI) and/or neuroscience subjects during their undergraduate degree would be an advantage however, it's not essential.
Project description:
You will have the opportunity to conduct a literature survey with the aim of choosing a suitable database, fine-tuning techniques and research in the most effective foundation models for music generation. Using these existing foundational models with effective text conditioning, music feature based conditioning, real time inferencing and music style transfer techniques will be investigated. Moreover, if interested, the student will have the opportunity to extend this research further to develop foundation models to provide music therapeutic support for neurodiverse and neurodevelopmental conditions.
Project supervisor: Dr Sam Nallaperuma-Herzberg
Co-supervisors: Professor Pietro Lio and Professor Neil Lawrence
Essential knowledge, skills and attributes:
General experience programming in Python or similar language. Having studied artificial intelligence (AI) and/or neuroscience subjects during their undergraduate degree would be an advantage however, it's not essential.
Project description:
During this project, the efficacy of pre-trained language models (PLM) such as Llama, BART and Chat-GPT will be investigated for producing Cognitive Stimulation Therapy (CST) considering the aspects of reality orientation, prompting with cues and problem-solving tasks. The approaches to curate CST datasets using existing content as well as domain expert input will be considered. Moreover, techniques to finetune the PLMs using techniques such as low rank adaptation (LoRA) and retrieval augmented generation (RAG) will be investigated. Interested students will have the opportunity to extend this research further to multimodal models combining vision language models (VLMs).
Project supervisor: Dr Sam Nallaperuma-Herzberg
Co-supervisors: Professor Pietro Lio and Professor Neil Lawrence
Essential knowledge, skills and attributes:
General experience programming in Python or similar language. Having studied artificial intelligence (AI) and/or neuroscience subjects during their undergraduate degree would be an advantage however, it's not essential.
Project description:
This project is expected to develop an early diagnostic model for neurodegeneration (Alzheimer' and other dementias), which integrates foundational brain models from existing literature and graph-based learning aspects from AI to learn from data collected through EEG sensors. Furthermore, this model will be extended to other modalities such as text and speech which have been evident in neurodegenerative conditions. Some previous background in computational neuroscience will be beneficial for this project. Nevertheless, it's not compulsory as any additional knowledge can be acquired throughout the project.
Project supervisor: Dr Eiko Yoneki
Essential knowledge, skills and attributes:
Strong interest in tensor programs. Some knowledge/interest in GPUs (including CUDA). And experience with programming in Python.
Project description:
M
odern GPUs deliver extraordinary performance, but how GPUs are used with optimal performance and optimise requires understanding how applications use the hardware.
This project explores a study of ML Compiler (i.e. TVM, Ansor [1,2]) as an example, where NVIDIA's profiling and debugging tools help to identify bottlenecks and optimise GPU workloads. Specifically using NVIDIA Nsight, you will study performance analysis.
A previous project on TVM by a former ACS project [3] can be used as a platform of benchmarking with ResNet and Bert using CPU and GPU (possibly using a few different types of GPU).
References:
[1] TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
[2] Ansor: Generating High-Performance Tensor Programs for Deep Learning
[3] Discovering Performant Tensor Programs with Bayesian Optimization (TVM project)
Project supervisor: Dr Eiko Yoneki
Essential knowledge, skills and attributes:
Proficiency in Python programming, preferably CUDA/C++ programming and an understanding of Large Language Model (LLM) inference and serving.
Project description:
Serving multiple LLMs (such as GPT, Llama, OPT, Falcon etc.) efficiently in heterogeneous clusters presents unique challenges due to varying computational power, communication bandwidth, memory bandwidth, and memory limits across different types of GPUs [1]. The project aims to extend the capabilities of multi-model serving [2] to heterogeneous clusters effectively. The initial phase involves setting up a benchmarking suite to evaluate different model-serving frameworks like vLLM [3] and DistServe [4] on various cluster configurations. Subsequently, the project will focus on designing a custom LLM serving framework that leverages dynamic resource allocation to optimize for throughput and latency across heterogeneous environments. This involves developing algorithms for intelligent job scheduling and resource management that consider the unique characteristics of each cluster node. The goal is to enhance the efficiency and scalability of serving multiple models in diverse computing environments, which is critical for applications in areas like autonomous driving and real-time data analytics. There is an ongoing project in our group on the above topic, and you can take advantage of the platform built already and focus on benchmarking tasks and an extension of scheduling algorithms.
References:
[1] Jiang, Youhe, et al. "HexGen: Generative Inference of Large Language Model over Heterogeneous Environment." Forty-first International Conference on Machine Learning.
[2] Duan, Jiangfei, et al. "MuxServe: Flexible Spatial-Temporal Multiplexing for Multiple LLM Serving." Forty-first International Conference on Machine Learning.
[3] Kwon, Woosuk, et al. "Efficient memory management for large language model serving with paged attention." Proceedings of the 29th Symposium on Operating Systems Principles. 2023.
[4] Zhong, Yinmin, et al. "{DistServe}: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving." 18th USENIX Symposium on Operating Systems Design and Implementation (OSDI 24). 2024.
Project supervisor: Dr Eiko Yoneki
Essential knowledge, skills and attributes:
An interest in Bayesian optimisation and basic knowledge of LLM scheduling.
Project description:
In our project BOUTE, we have used Multi-Objective Bayesian Optimisation for our framework to co-optimise the routing strategy and model deployment, thereby maximising the cost efficiency of the serving system while guaranteeing response quality. Because the parameter dimensionality is high and complex, we have incorporated several types of structural information based on algorithmic properties, system constraints, and empirical observations to deal with it via BoTorch.
In this project the discretisation of the search space will be explored potentially using Optuna.
References:
[1] [1] BOUTE: Cost-Efficient LLM Serving with Heterogeneous LLMs and GPUs via Multi-Objective Bayesian Optimization
[2] Balandat, M. et al. Botorch: A framework for efficient monte-carlo bayesian optimization. Advances in neural information processing systems, 33:21524–21538, 2020.
Project supervisor: Dr Eiko Yoneki
Essential knowledge, skills and attributes:
Strong interest in tensor program optimisation. Some knowledge/interest in Bayesian Optimisation, and Python.
Project description:
Tensor codes are run on massively parallel hardware. When generating tensor code (also called auto-scheduling), TVM Compiler [1] needs to search through many parameters. A State-of-the-art auto-scheduler is Ansor [2], which applies rule-based mutation to generate tensor code templates and then fine-tunes those templates via Evolutionary Search. We think Bayesian Optimisation (BayesOpt) [3] could be a better approach to efficiently search the tensor code templates than Evolutionary Search.
At first, TVM is set up for benchmarking with ResNet and Bert using CPU and GPU (possibly a few different types of GPU). Next the same benchmarking with NVIDIA's Compiler Cutlass should be experimented. Afterwards, exploring using BayesOpt for high-performance tensor code generation, and benchmark black-box algorithms for tensor code generation. The main interface for tensor code generation in TVM will be through MetaScheduler [6], which provides a fairly simple Python interface for various search methodologies [7]. We also have a particular interest in tensor code generation for tensor cores, which are equipped by the recent generation of GPUs (since the Turing micro-architectures) as domain-specific architectures to massively accelerate tensor programs. The project can take advantage of former ACS student's work [9][10], and set the focus on the performance improvement on GPU, Multi-objective BO, and scalability.
References:
[1] TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
[2] Ansor: Generating High-Performance Tensor Programs for Deep Learning
[3] A Tutorial on Bayesian Optimization
[4] HEBO Pushing The Limits of Sample-Efficient Hyperparameter Optimisation
[5] Are Random Decompositions all we need in High Dimensional Bayesian Optimisation?
[6] Tensor Program Optimization with Probabilistic Programs
[7] https://github.com/apache/tvm/blob/4267fbf6a173cd742acb293fab4f77693dc4b887/python/tvm/meta_schedule/search_strategy/search_strategy.py#L238.
[8] NVIDIA Compiler
[9] https://github.com/hgl71964/unity-tvm
[10] Discovering Performant Tensor Programs with Bayesian Optimization
Project supervisors: Dominic Friend, Yiannos Stathopoulos, Ryan Daniels
Essential knowledge, skills and attributes:
You should ideally have: a strong grasp of Python and data analysis; an interest in software engineering, MLOps, systems architecture; and an interest in how large-scale web services operate.
- Essential: Python, Data visualization (e.g. with Matplotlib), Linux / CLI, basic familiarity with LLMs
- Nice to have: Familiarity with web infrastructure (e.g., Nginx, REST APIs); knowledge of LLM inference metrics; experience with Docker/Containers; interest in High-Performance Computing (HPC); familiarity with vLLM, LiteLLM, Prometheus/Grafana.
- You should be interested in AI in general
We welcome applicants from all academic disciplines.
Project description:
Research Computing Services in collaboration with the Accelerate Programme for Scientific Discovery, operates a centralized service providing Large Language Models (LLMs) to researchers across the University. With the service fully operational, we are generating significant amounts of telemetry and usage data.
This project focuses on analyzing this real-world data to understand how the research community engages with LLM resources. You will investigate usage patterns, system load, and inference performance across our infrastructure. The goal is to derive actionable insights that will drive resource allocation and service optimization. This is a unique opportunity to move beyond theoretical models and gain hands-on experience in MLOps and Production Engineering, building critical infrastructure that will support AI research across the entire university.
