Bea

Hi, I’m Bea Stollnitz, and I’m a principal developer advocate at Microsoft, focusing on Azure ML.

All code in this blog is made available under the MIT license.

  • Large Language Models

    • How GPT models work: accessible to everyone

      This post explains the basics of how GPT models work. My goal is for it to be accessible to everyone, even for those of you without a programming background.
      How GPT models work: accessible to everyone
    • How GPT models work: for data scientists and ML engineers

      This post explains the basics of how GPT models work. The target audience is data scientists, ML engineers, and anyone with a machine learning background.
      How GPT models work: for data scientists and ML engineers
    • The Transformer architecture of GPT models

      This post explains in detail the Transformer architecture used by GPT models. The target audience includes data scientists and ML engineers with a strong technical background.
      The Transformer architecture of GPT models
    • Retrieval-Augmented Generation (RAG)

      This post explains how you can add your own data to a pre-trained LLM, such as a GPT model, using Retrieval-Augmented Generation (RAG). The target audience is data scientists and developers working with AI.
      Retrieval-Augmented Generation (RAG)
  • Azure ML: from beginner to pro

    • Introduction to Azure ML

      This post is a great starting point if you’re new to Azure ML. It will give you a succinct high-level overview of the concepts that make up Azure ML, and provide structure for the technical articles that will follow in this series.
      Introduction to Azure ML
    • How to train and deploy in Azure ML

      In this post, you’ll learn how to train a simple machine learning model in the cloud, and how to deploy it using a managed endpoint. I assume familiarity with machine learning, but no knowledge of Azure or Azure ML.
      How to train and deploy in Azure ML
    • How to train using pipelines and components in Azure ML

      In this post, I’ll discuss how to break up your training code into Azure ML components, and how to connect those components into an Azure ML pipeline. I assume that you read my blog post on how to do basic training in Azure ML, or that you have equivalent experience.
      How to train using pipelines and components in Azure ML
    • Mixing methods for creating Azure ML resources

      This post demonstrates how to mix the three main methods for creating Azure ML resources (CLI, SDK and Studio) in a single project. I recommend that you already have some familiarity with these different methods, either from your own experience or by reading my introductory and basic training posts.
      Mixing methods for creating Azure ML resources
    • How to do hyperparameter tuning using Azure ML

      This post shows how to use an Azure ML Sweep Job to do hyperparameter tuning. I assume understanding of hyperparameter tuning, and familiarity with training models in the cloud using Azure ML.
      How to do hyperparameter tuning using Azure ML
    • Creating managed online endpoints in Azure ML

      In this post, you’ll learn how to create endpoints on Azure ML that enable real-time predictions using your MLflow model. I assume familiarity with machine learning concepts, such as training and prediction, but no knowledge of Azure.
      Creating managed online endpoints in Azure ML
    • Creating managed online endpoints in Azure ML without using MLflow

      In this post, you’ll learn how to create endpoints on Azure ML that enable real-time predictions for a non-MLflow model. Before you read this blog post, I suggest that you read my post on “Creating managed online endpoints in Azure ML,” which explains how to deploy an MLflow model using the same type of endpoint.
      Creating managed online endpoints in Azure ML without using MLflow
    • Creating batch endpoints in Azure ML

      In this post, you’ll learn how to create endpoints on Azure ML that enable asynchronous batch predictions using your MLflow model. I assume familiarity with machine learning concepts, such as training and prediction, but no knowledge of Azure.
      Creating batch endpoints in Azure ML
    • Creating batch endpoints in Azure ML without using MLflow

      In this post, you’ll learn how to create endpoints on Azure ML that enable asynchronous batch predictions using a model that has not been saved using MLflow. Before you read this post, I suggest that you read my blog post on “Creating batch endpoints in Azure ML,” which explains how to create similar endpoints for MLflow models.
      Creating batch endpoints in Azure ML without using MLflow
    • Choosing the compute for Azure ML resources

      When creating Azure ML resources you often have to decide which compute to use to run your code. This post will help you understand how to make the right choice for your scenario. I assume some familiarity with Azure ML in order to follow along.
      Choosing the compute for Azure ML resources
    • Choosing the environment for Azure ML resources

      In this post, you will learn about the different types of environments you can choose from when creating a new Azure ML resource. I assume some familiarity with Azure ML in order to follow along.
      Choosing the environment for Azure ML resources
    • How to use Azure ML registries to share models, components, and environments

      In this post, you’ll learn how you can easily share your Azure ML assets (models, components, environments) with other users in your organization, using Azure ML registries. I assume that you have basic familiarity on how to train and deploy models in Azure ML.
      How to use Azure ML registries to share models, components, and environments
  • Azure ML + PyTorch: better together

  • Development tools

    • Configuring your Linux terminal on GitHub Codespaces

      In this post, you’ll learn how to configure your Linux terminal using dotfiles, which will enable you to quickly set up local and remote environments with all the settings you’re familiar with. This is especially useful if you’re using Codespaces, so this post focuses on configuring your Linux terminal for Codespaces.
      Configuring your Linux terminal on GitHub Codespaces
    • Configuring your Windows development machine for data science

      In this post, you’ll learn how to configure your Windows development machine to work on data science projects. I’ll cover how to install and configure VS Code, WSL, Ubuntu, Zsh, Miniconda, Git, and the terminal.
      Configuring your Windows development machine for data science
    • How to structure your machine learning projects using GitHub and VS Code

      In this post, I’ll explain how I organize the files in my machine learning projects, and I’ll share with you the GitHub template I use. Most aspects of the guidance in this article are relevant regardless of the editor you use, but some are specific to VS Code.
      How to structure your machine learning projects using GitHub and VS Code
  • Scientific ML techniques

    • Creating spectrograms and scaleograms for signal classification

      In this post, I’ll explain how to convert time-series signals into spectrograms and scaleograms. In a future post, we’ll use the images created here to classify the signals. I assume that you have basic math skills and are familiar with basic machine learning concepts.
      Creating spectrograms and scaleograms for signal classification
    • Discovering equations from data using SINDy

      In this post, I’ll discuss the 2016 paper “Discovering Governing Equations from Data by Sparse Identification of Nonlinear Dynamical Systems” by Brunton et al. I’ll explain the main concepts of the paper in an accessible way, and I’ll show how we can use its novel approach to discover the Lorenz system of equations from data. I assume basic familiarity with ordinary differential equations and dynamical systems.
      Discovering equations from data using SINDy
    • Using PySINDy to discover equations from experimental data

      In this post, I will use the PySINDy Python package to discover a system of ordinary differential equations that best represents my experimental data. I assume that you read my post “Discovering equations from data using SINDy,” and that you have basic familiarity with ordinary differential equations and dynamical systems.
      Using PySINDy to discover equations from experimental data
  • Deep learning frameworks

    • Introduction to PyTorch

      This post introduces PyTorch concepts through the creation of a basic neural network using the Fashion MNIST dataset as a data source. I assume that you have a basic conceptual understanding of neural networks, and that you’re comfortable with Python, but I assume no knowledge of PyTorch.
      Introduction to PyTorch
    • Introduction to TensorFlow using Keras

      This post provides all the concepts and practical knowledge you need to get started with TensorFlow. We’ll explore Keras, a high-level API released as part of TensorFlow, and we’ll use it to build a basic neural network using the Fashion MNIST dataset as a data source. I assume that you have a basic conceptual understanding of neural networks, and that you’re comfortable with Python, but I assume no knowledge of TensorFlow or Keras.
      Introduction to TensorFlow using Keras
    • Going beyond Keras - customizing with TensorFlow

      In this blog post, we’ll re-implement parts of the code from my earlier Keras post, but this time we’ll use lower-level TensorFlow concepts. I assume that you completed my tutorial on Keras or that you have a solid knowledge of Keras, but I assume no knowledge of TensorFlow.
      Going beyond Keras - customizing with TensorFlow
    • Comparing PyTorch and TensorFlow implementations

      How do PyTorch code and TensorFlow code compare? Maybe you’re in the beginning phases of your machine learning journey and deciding which framework to embrace, or maybe you’re an experienced ML practicioner considering a change of framework. Either way, you’re in the right place. Drawing from my previous posts, I’ll compare the PyTorch and TensorFlow versions of the code used to classify images in the Fashion MNIST dataset.
      Comparing PyTorch and TensorFlow implementations