# How to Run AI-For-Beginners Notebooks: Binder vs GitHub Codespaces vs Local Setup

> Learn to run AI-For-Beginners notebooks in Binder, GitHub Codespaces, or local setup. Explore YAML configuration for easy execution in three environments.

- Repository: [Microsoft/AI-For-Beginners](https://github.com/microsoft/AI-For-Beginners)
- Tags: how-to-guide
- Published: 2026-08-06

---

**The Microsoft AI-For-Beginners curriculum supports three distinct execution environments—local conda installations, cloud-based GitHub Codespaces, and ephemeral Binder containers—each configured via specific YAML files in the repository root.**

The Microsoft `AI-For-Beginners` repository provides hundreds of Jupyter notebooks covering artificial intelligence fundamentals. You can launch these notebooks using local Python installations, cloud-hosted development environments, or temporary containerized sessions depending on your hardware constraints and persistence requirements. Each method relies on environment definitions stored in the repository's configuration files.

## Local Setup: Full Control and Performance

Running notebooks locally provides the fastest execution and complete hardware access, including GPU acceleration when available. This method requires cloning the repository and creating a conda environment using the [`environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/environment.yml) file located in the repository root.

To set up locally:

1. Clone the repository and navigate to the directory:

   ```bash
   git clone https://github.com/microsoft/AI-For-Beginners.git
   cd AI-For-Beginners
   ```

2. Create and activate the conda environment defined in [`environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/environment.yml):

   ```bash
   conda env create -f environment.yml
   conda activate ai4beg
   ```

3. Launch Jupyter:

   ```bash
   jupyter notebook
   # Or for the newer interface:

   jupyter lab
   ```

The [`environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/environment.yml) specifies the complete Python stack including TensorFlow, PyTorch, and scientific computing libraries. Detailed instructions appear in [`lessons/0-course-setup/how-to-run.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/lessons/0-course-setup/how-to-run.md), which covers troubleshooting dependency conflicts and GPU configuration.

## GitHub Codespaces: Zero-Install Cloud Development

**GitHub Codespaces** offers a browser-based Visual Studio Code instance pre-configured with the curriculum's dependencies. This option eliminates local installation while providing persistent cloud storage for your work.

According to the [`AGENTS.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/AGENTS.md) file in the repository root, you can launch a Codespace by:

1. Opening the repository on GitHub
2. Clicking **Code → Codespaces → Create codespace on main**

The environment automatically activates the conda configuration, making the terminal ready for Jupyter commands. Once loaded, start the notebook server:

```bash
jupyter notebook

```

Alternatively, use VS Code's built-in Jupyter view for an integrated editing experience. Codespaces supports GPU-enabled virtual machines through configuration upgrades, though the default instance runs on standard cloud CPUs.

## Binder: Ephemeral Demo Environment

**Binder** provides temporary, read-only Jupyter servers ideal for quick demonstrations or when you lack installation privileges. The repository includes a [`binder/environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/binder/environment.yml) file (mirroring the local environment) that Binder uses to construct a containerized runtime.

To launch via Binder:

1. Click the Binder badge in the repository's [`README.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/README.md)
2. Wait for the container build process (this imports the same dependencies as the local [`environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/environment.yml))

Binder serves notebooks at URLs following this pattern:

```

https://mybinder.org/v2/gh/microsoft/ai-for-beginners/HEAD?filepath=lessons/3-NeuralNetworks/03-Perceptron/Perceptron.ipynb

```

**Critical limitations** exist when running notebooks in Binder. As documented in [`lessons/0-course-setup/how-to-run.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/lessons/0-course-setup/how-to-run.md), Binder blocks certain external downloads to prevent abuse, offers limited compute resources (basic CPU only), and destroys all session data after timeout. You cannot save work between sessions.

## Comparing Execution Modes

Each method trades convenience against control and persistence:

- **Compute Power**: Local environments offer native hardware acceleration (CPU/GPU), Codespaces provides configurable cloud VMs, while Binder restricts users to shared basic CPUs
- **Persistence**: Local installations and Codespaces retain installed packages and downloaded datasets; Binder discards all changes when the session terminates
- **Network Access**: Local setups and Codespaces maintain full internet access for model downloads; Binder restricts external URLs

## Summary

- **Local setup** requires cloning the repository and running `conda env create -f environment.yml` to install TensorFlow, PyTorch, and dependencies defined in the root configuration file
- **GitHub Codespaces** provides browser-based development with pre-activated environments accessible via the Codespaces button in the repository interface
- **Binder** offers temporary, badge-activated sessions configured via [`binder/environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/binder/environment.yml), though with restricted downloads and no persistence
- The [`lessons/0-course-setup/how-to-run.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/lessons/0-course-setup/how-to-run.md) file contains authoritative setup instructions for all three execution modes
- Choose local execution for GPU-intensive training, Codespaces for cloud-based persistence, and Binder for quick, disposable previews

## Frequently Asked Questions

### Can I use GPU acceleration with all three execution methods?

Local setups automatically detect CUDA-capable GPUs when you install the appropriate drivers alongside the conda environment. GitHub Codespaces supports GPU instances through machine type selection during codespace creation, though this consumes compute credits. Binder exclusively provides CPU-only containers and cannot access GPU resources for deep learning training.

### Why does Binder block certain downloads while the other methods work fine?

Binder operates on shared public infrastructure and implements network restrictions to prevent abuse and cryptocurrency mining. According to the configuration in [`lessons/0-course-setup/how-to-run.md`](https://github.com/microsoft/AI-For-Beginners/blob/main/lessons/0-course-setup/how-to-run.md), Binder specifically blocks URLs commonly associated with large model downloads. Local environments and Codespaces face no such restrictions, allowing direct downloads from TensorFlow Hub, Hugging Face, or other model repositories.

### How do I save my work when using Binder versus the other options?

Binder sessions are completely ephemeral—any notebooks you modify or datasets you download disappear when the container times out, typically after 10 minutes of inactivity. You must manually download files to your local machine before the session ends. In contrast, GitHub Codespaces commits changes to cloud storage persistently, and local setups write directly to your machine's filesystem.

### Is the Python environment identical across all three execution modes?

Yes. The local [`environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/environment.yml) and [`binder/environment.yml`](https://github.com/microsoft/AI-For-Beginners/blob/main/binder/environment.yml) define matching dependency sets including specific TensorFlow and PyTorch versions. GitHub Codespaces uses the same configuration during initialization, ensuring consistent package availability whether you run locally, in the cloud, or via temporary containers.