Visit Lightning AI
University of British Columbia uses

Solving Complex Macroeconomic Problems With Machine Learning

The Project:

Jesse Perla is an Associate Professor of Economics at The University of British Columbia, where he focuses on macroeconomics and machine learning. While using the open source PyTorch Lightning project to reduce boilerplate in his code, he found

Macroeconomics examines the decisions of large numbers of workers, firms, and policymakers interacting through financial, labor, and other markets. Due to the complexity of solving these models and bringing them to data, macroeconomists are increasingly focusing on machine learning tools to expand the scale of models economists can estimate and solve.

Professor Perla’s team is working on these topics from several directions. One set of projects uses deep learning with PyTorch Lightning to solve high-dimensional macroeconomic models that would not otherwise be feasible. The second set of projects uses new techniques in Bayesian optimization with the Julia programming language to estimate more traditional macroeconomic models from data, increasing performance by several orders of magnitude.

The Challenge:

Before discovering Grid, the data science team had to engage experts outside their competency area, and managing this infrastructure took time away from their research questions.

They also tried running more complicated models on available clusters, which was only possible because of their institutional backing. Despite these additional resources, however, the difficulty in setting up these models meant they often ended up using their own laptops. Machine learning tools require a vast amount of CPU, GPU, RAM, and storage in order to run.

Even in cases where the models could be run on a desktop computer, the inability to run a huge number of small variations of the model and parameters (i.e., a hyperparameter sweep) significantly slowed development.

The Solution:

Grid allowed the team to leverage processing power on the cloud, from their laptops, with no additional setup. The code running on a laptop is the same that runs on the cloud. 

The team was able to quickly train models and obtain results faster than ever before. They simply pointed to their GitHub repo, pushed a button, and their work would begin through the Grid platform. 

Using Grid did not require them to learn Linux, AWS, Kubernetes or other time-intensive DevOps roles that are generally required to generally required to train models and get them ready for production. Grid also mirrors versioning on GitHub, which allows you to track your work as it progresses, something that is unavailable to those running models on their own.

This led to another benefit of using Grid: enabling students to collaborate by sharing the results of their work. Professor Perla appreciated how everything in Grid is reproducible, simple and clean. There was no need to rely on something that a grad student may have run on their personal laptop, or other work that would have been impractical to reproduce. They were able to get a model running locally and scale it straight to Runs. Those Runs were then available in the Grid dashboard for everyone on the team to see and manage.

Grid Runs - Tensorboard

Finally, Grid gave the team flexibility to work within different environments. Researchers from a wide variety of specializations use various languages and frameworks to work with data that is specific to their work. The team, for instance, relies heavily on the Julia programming language for some of its projects, which Grid also supports.

Grid is working well, my students are happy, and they’re writing code and running it, and that gives me great joy. Jesse Perla, Associate Professor of Economics, University of British Columbia


Grid Artifacts

The team benefited from:

  • Easy scalability – If it works on a laptop, it scales to the cloud without having to change any code 
  • Reproducibility – Easy to regenerate figures and visualizations 
  • Outstanding support from the Grid team 
  • Grid tying cleanly into the git versioning
  • Consistent uptime considering the complexity of the models they run
  • Ability to use the same cloud environment for different programming languages and platforms

Getting Started with Grid:

Interested in learning more about how Grid can help you manage machine learning model development for your next project? Get started with Grid’s free community tier account (and get $25 in free credits!) by clicking here. Also, explore our documentation and join the Slack community to learn more about what the Grid platform can do for you.