<!--
Keywords: machine learning course, deep learning tutorial, llm tutorial, rag tutorial, ai agents, prompt engineering, python ai, pytorch tutorial, transformers, openai api, fine-tuning, mlops, vector databases, nlp, computer vision, data science course, artificial intelligence guide, full stack ai, generative ai course, build ai applications, learn ai from scratch
-->

# Zero to AI - Free AI/ML Course: Python, LLMs, RAG, Agents & Deep Learning

Zero to AI is a free, open-source AI course and machine learning curriculum for learning Python, data science, deep learning, large language models (LLMs), retrieval-augmented generation (RAG), AI agents, prompt engineering, fine-tuning, and MLOps through 950+ hands-on Jupyter notebooks.

Use the live site for the guided learning experience at [zero-to-ai.dev](https://zero-to-ai.dev/), and use this GitHub repo as the source curriculum, notebook library, and contribution hub.

Quick links: [Website](https://zero-to-ai.dev/) • [Course Setup](https://zero-to-ai.dev/00-course-setup) • [Glossary](https://zero-to-ai.dev/23-glossary/01_GLOSSARY) • [GitHub Repo](https://github.com/PavanMudigonda/zero-to-ai)

[![GitHub license](https://img.shields.io/github/license/PavanMudigonda/zero-to-ai.svg)](https://github.com/PavanMudigonda/zero-to-ai/blob/main/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/PavanMudigonda/zero-to-ai.svg)](https://GitHub.com/PavanMudigonda/zero-to-ai/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/PavanMudigonda/zero-to-ai.svg)](https://GitHub.com/PavanMudigonda/zero-to-ai/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/PavanMudigonda/zero-to-ai.svg)](https://GitHub.com/PavanMudigonda/zero-to-ai/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)

[![GitHub watchers](https://img.shields.io/github/watchers/PavanMudigonda/zero-to-ai.svg?style=social&label=Watch)](https://GitHub.com/PavanMudigonda/zero-to-ai/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/PavanMudigonda/zero-to-ai.svg?style=social&label=Fork)](https://GitHub.com/PavanMudigonda/zero-to-ai/network/)
[![GitHub stars](https://img.shields.io/github/stars/PavanMudigonda/zero-to-ai.svg?style=social&label=Star)](https://GitHub.com/PavanMudigonda/zero-to-ai/stargazers/)

---

[![Open in Browser](https://img.shields.io/badge/Open%20in-Browser-F38020?style=flat&logo=cloudflare)](https://zero-to-ai.dev/)
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/PavanMudigonda/zero-to-ai/blob/main)
[![Open in Replit](https://img.shields.io/badge/Open%20in-Replit-blue?style=flat&logo=replit)](https://replit.com/github/PavanMudigonda/zero-to-ai)
[![Open in Kaggle](https://img.shields.io/badge/Open%20in-Kaggle-20BEFF?style=flat&logo=kaggle)](https://www.kaggle.com/code)
[![Open in SageMaker Studio Lab](https://img.shields.io/badge/Open%20in-SageMaker%20Studio%20Lab-orange?style=flat&logo=amazon-aws)](https://studiolab.sagemaker.aws/import/github/PavanMudigonda/zero-to-ai)
[![Open in Codespaces](https://img.shields.io/badge/Open%20in-Codespaces-black?style=flat&logo=github)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=PavanMudigonda/zero-to-ai)
[![github.dev](https://img.shields.io/badge/Open%20in-github.dev-black?style=flat&logo=github)](https://github.dev/PavanMudigonda/zero-to-ai)

**Click any badge above to start coding in seconds!**

---

## 📊 Course Overview

> **From Zero to AI Mastery** is still evolving. The core path is already usable, and feedback is welcome as later phases continue to grow.

This repository is best used as a guided curriculum, not as a directory to browse at random. Some phases are mature and portfolio-ready today, while a few later phases are still being filled in.

### What You'll Learn

| Area | Topics | Notebooks |
|------|--------|-----------|
| **Python & Data Science** | NumPy, Pandas, Matplotlib, Scikit-learn | 278+ |
| **Mathematics for ML** | Linear algebra, calculus, statistics, optimization | 40+ |
| **Tokenization & Embeddings** | tiktoken, SentencePiece, OpenAI, HuggingFace | 20+ |
| **Deep Learning** | Neural networks, CNNs, RNNs, Transformers from scratch | 45+ |
| **LLMs & RAG** | Retrieval-Augmented Generation, vector databases, chunking | 20+ |
| **AI Agents** | Function calling, MCP, OpenAI Agents SDK, LangGraph, multi-agent | 11+ |
| **Prompt & Context Engineering** | Chain-of-thought, structured outputs, DSPy | 6+ |
| **Fine-Tuning** | LoRA, QLoRA, PEFT, GRPO, DPO | 12+ |
| **MLOps & Serving** | Deployment, monitoring, vLLM, quantization | 15+ |
| **Evaluation & Safety** | LLM-as-judge, red teaming, bias, fairness | 12+ |
| **Advanced Topics** | GANs, VAEs, RL, causal inference, time series | 60+ |

## ✅ Start Here

The canonical reading experience is the live site at [zero-to-ai.dev](https://zero-to-ai.dev/). The GitHub repo is the source of the curriculum (notebooks + MDX).

**Zero install path:** every notebook can run **directly in your browser** on the live site via Pyodide — no Python install, no credit card, works on a school laptop or a phone. Just open a phase and run the cells.

If you are new, use this order:

1. Open [zero-to-ai.dev/00-course-setup](https://zero-to-ai.dev/00-course-setup) for orientation.
2. Skim [zero-to-ai.dev/23-glossary/01_GLOSSARY](https://zero-to-ai.dev/23-glossary/01_GLOSSARY) once before diving in.
3. Pick a path below, then a phase from the site sidebar.

If you are completely new to Python, begin with [zero-to-ai.dev/01-python](https://zero-to-ai.dev/01-python).

---

## 🌍 Choose Your Path

Don't try to read all 33 phases. Pick one of these tracks based on your goal:

### "I just want to use LLMs like ChatGPT effectively" — 4-6 weeks
[01-python](https://zero-to-ai.dev/01-python) → [04-token](https://zero-to-ai.dev/04-token) → [11-prompt-engineering](https://zero-to-ai.dev/11-prompt-engineering) → [05-embeddings](https://zero-to-ai.dev/05-embeddings) → [08-rag](https://zero-to-ai.dev/08-rag) → [15-ai-agents](https://zero-to-ai.dev/15-ai-agents)

### "I want a data science / ML job" — 4-6 months
[01-python](https://zero-to-ai.dev/01-python) → [02-data-science](https://zero-to-ai.dev/02-data-science) → [03-maths](https://zero-to-ai.dev/03-maths) → [06-neural-networks](https://zero-to-ai.dev/06-neural-networks) → [09-mlops](https://zero-to-ai.dev/09-mlops) → [28-practical-data-science](https://zero-to-ai.dev/28-practical-data-science) → [16-model-evaluation](https://zero-to-ai.dev/16-model-evaluation)

### "I want to build production AI apps" — 3-4 months
[11-prompt-engineering](https://zero-to-ai.dev/11-prompt-engineering) → [07-vector-databases](https://zero-to-ai.dev/07-vector-databases) → [08-rag](https://zero-to-ai.dev/08-rag) → [15-ai-agents](https://zero-to-ai.dev/15-ai-agents) → [14-local-llms](https://zero-to-ai.dev/14-local-llms) → [12-llm-finetuning](https://zero-to-ai.dev/12-llm-finetuning) → [09-mlops](https://zero-to-ai.dev/09-mlops)

### "I'm a complete beginner, where do I start?" — start small
[01-python](https://zero-to-ai.dev/01-python) (run cells in browser on the live site, no install). When you finish Python, come back and pick one of the tracks above.

### "I have a slow laptop / limited internet" — works for you too
Run everything on [zero-to-ai.dev](https://zero-to-ai.dev/) directly. No GPU, no install, no Anaconda download. The browser does the work. For heavier notebooks (fine-tuning, large models), open them in **Google Colab** (most globally accessible free GPU).

---

## 🌱 Getting Started

This comprehensive AI/ML curriculum uses progressive numbered modules covering everything from Python fundamentals to cutting-edge AI systems and advanced research topics. Each module includes hands-on notebooks, projects, and practical applications.

Important context for learners:
- The live site at [zero-to-ai.dev](https://zero-to-ai.dev/) is the canonical guided reading experience.
- Source content lives in two parallel trees: `next-docs/src/app/<phase>/` (MDX, what the site renders) and `jupyter-notebooks/<phase>/` (executable notebooks).
- Not every late-stage phase is equally complete yet. Phases such as `30-inference-optimization/` are still actively being built out.
- `next-docs/.next/`, `next-docs/out/`, and other generated folders are build artifacts, not the source curriculum.

**Don't forget to:**
- ⭐ [Star this repo](https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars) to find it easily later
- 🍴 [Fork this repo](https://github.com/PavanMudigonda/zero-to-ai/fork) to track your personal progress

---

## 🚀 Quick Start

For most learners, the fastest low-friction path is:

1. Install dependencies (see options below).
2. Open the site at [zero-to-ai.dev](https://zero-to-ai.dev/) and pick a phase from the sidebar.
3. Open the matching notebook under `jupyter-notebooks/<phase>/` and work through it.

### What You Actually Need
- Basic Python knowledge (or start with [zero-to-ai.dev/01-python](https://zero-to-ai.dev/01-python)).
- High school maths is enough for most of the course. Phases 3, 24, 25, and 27 go deeper if you want.
- **Compute** — pick whichever applies:
  - **No laptop or low-spec laptop?** Run notebooks in the browser on [zero-to-ai.dev](https://zero-to-ai.dev/). Works on Chromebooks and phones. No GPU. No install.
  - **8 GB RAM, any OS?** Fine for Phases 1-11 locally. Use Colab/Kaggle for the heavier later phases.
  - **16 GB+ RAM, any OS?** Comfortable for most of the curriculum locally. Windows, macOS, and Linux all work — pyproject.toml documents the platform-specific install notes.
  - **GPU?** Optional. Needed only for local fine-tuning (Phases 12, 14, 24) and large inference (Phase 30). Free cloud GPUs cover those.
- **Time:** 3-5 hours/week if you're learning casually, 10-15 hours/week if you're studying for a job.

### Installation (Choose One)

#### Option 1: UV - Fast & Recommended
```bash
# Clone the repository
git clone https://github.com/PavanMudigonda/zero-to-ai.git
cd zero-to-ai

# Install dependencies with UV (fastest!)
./install_dependencies.sh

# Start learning
jupyter notebook
```

Optional developer tooling for Phase 31:

```bash
# Install Node-based coding tools such as OpenCode
npm install

# Install the dedicated AI developer tools environment
# (used for OpenHands because it currently needs Python 3.12)
INSTALL_AI_DEV_TOOLS=1 ./install_dependencies.sh
```

#### Option 2: Conda - Best for ML/Data Science
```bash
# Clone the repository
git clone https://github.com/PavanMudigonda/zero-to-ai.git
cd zero-to-ai

# Create conda environment
conda env create -f environment.yml
conda activate aiml-learning

# Start learning
jupyter notebook
```

#### Option 3: Cloud (No Installation!)

Listed by **global accessibility** — the higher entries are easiest to use no matter where you are.

- **Run on the live site** (most accessible — no account, no credit card, no install, works on phones): Open any phase on [zero-to-ai.dev](https://zero-to-ai.dev/) and run the cells in-browser via Pyodide. No GPU; not every Python package has a Pyodide wheel. Best for early phases (Python, data science, prompt engineering) and any notebook that doesn't need PyTorch on a GPU.

- **Google Colab** (free, works in most countries, no credit card): Click [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/PavanMudigonda/zero-to-ai/blob/main) - then run this in the first cell:
  ```python
  !pip install -q -r https://raw.githubusercontent.com/PavanMudigonda/zero-to-ai/main/colab_requirements.txt
  ```
  Free GPU is available but rate-limited.

- **Kaggle** (free GPU, requires phone verification): Click [![Open in Kaggle](https://img.shields.io/badge/Open%20in-Kaggle-20BEFF?logo=kaggle)](https://www.kaggle.com/code) and create a **New Notebook**, enable **Internet** in notebook settings, then run:
  ```python
  !git clone https://github.com/PavanMudigonda/zero-to-ai.git
  %cd zero-to-ai
  !pip install -q -r https://raw.githubusercontent.com/PavanMudigonda/zero-to-ai/main/kaggle_requirements.txt
  ```
  Phone verification is restricted in some regions — try Colab first if Kaggle won't verify your number.

- **GitHub Codespaces** (free monthly hours, requires GitHub account): Click [![Open in Codespaces](https://img.shields.io/badge/Open%20in-Codespaces-black?logo=github)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=PavanMudigonda/zero-to-ai). All dependencies install via `install_dependencies.sh`. No GPU on the free plan.

- **Replit** (free tier, browser-based): Click [![Open in Replit](https://img.shields.io/badge/Open%20in-Replit-blue?logo=replit)](https://replit.com/github/PavanMudigonda/zero-to-ai). Packages auto-install on first run via `requirements-replit.txt`.

- **SageMaker Studio Lab** (free, US-friendly verification): Click [![Open in SageMaker Studio Lab](https://img.shields.io/badge/Open%20in-SageMaker%20Studio%20Lab-orange?logo=amazon-aws)](https://studiolab.sagemaker.aws/import/github/PavanMudigonda/zero-to-ai), sign up at [studiolab.sagemaker.aws](https://studiolab.sagemaker.aws/), then run:
  ```python
  !pip install -q -r requirements.txt
  ```
  Account approval can take days and is harder outside the US/EU — use Colab first if you need to start today.

- **github.dev** (browser editor, no execution): Click [![github.dev](https://img.shields.io/badge/Open%20in-github.dev-black?logo=github)](https://github.dev/PavanMudigonda/zero-to-ai). Good for reading and writing code, not running it.

---

## 📂 Repository Structure

The curriculum lives in two parallel trees, one numbered phase per topic:

```
zero-to-ai/
├── next-docs/                          # Next.js (Nextra) docs site → published to zero-to-ai.dev
│   ├── src/app/<phase>/page.mdx        # MDX pages, one per phase + per lesson
│   ├── next.config.mjs
│   └── package.json
├── jupyter-notebooks/                  # Executable curriculum content
│   ├── 00-course-setup/                ⭐ Setup & orientation
│   ├── 01-python/                       Python fundamentals
│   ├── 02-data-science/                 NumPy, Pandas, Scikit-learn (278+ notebooks)
│   ├── 03-maths/                        Linear algebra, calculus, statistics (40+ notebooks)
│   │   ├── foundational/
│   │   ├── mml-book/
│   │   ├── islp-book/
│   │   ├── cs229-course/
│   │   └── advanced/
│   ├── 04-token/                        Tokenization (tiktoken, sentencepiece, HF)
│   ├── 05-embeddings/                   Text, multimodal, retrieval embeddings
│   ├── 06-neural-networks/              Deep learning from scratch to Transformers
│   ├── 07-vector-databases/             Chroma, Qdrant, Weaviate, Milvus, pgvector
│   ├── 08-rag/                          Retrieval-Augmented Generation
│   ├── 09-mlops/                        Deployment, monitoring, optimization
│   ├── 10-specializations/              AI Agents, Computer Vision, NLP
│   ├── 11-prompt-engineering/           Advanced prompting, context engineering
│   ├── 12-llm-finetuning/               LoRA, QLoRA, PEFT fine-tuning
│   ├── 13-multimodal/                   Vision, audio, video, realtime multimodal AI
│   ├── 14-local-llms/                   Ollama, llama.cpp, MLX, local serving
│   ├── 15-ai-agents/                    Function calling, MCP, Agents SDK, LangGraph
│   ├── 16-model-evaluation/             Metrics, fairness, LLM-as-judge
│   ├── 17-debugging-troubleshooting/    Profiling, data issues, debugging
│   ├── 18-low-code-ai-tools/            Gradio, Streamlit, Flowise, Langflow, AutoML
│   ├── 19-ai-safety-redteaming/         Security, bias, red teaming
│   ├── 20-real-time-streaming/          Streaming AI, WebSockets, WebRTC
│   ├── 21-quizzes/                      Self-check questions
│   ├── 22-references/                   Papers, repos, external materials
│   ├── 23-glossary/                     AI/ML terminology & concepts
│   ├── 24-advanced-deep-learning/       GANs, VAEs, NeRF, Diffusion, BNNs
│   ├── 25-reinforcement-learning/       MDP, Q-Learning, Policy Gradients, Actor-Critic
│   ├── 26-time-series-analysis/         ARIMA, Prophet, LSTM, Transformer forecasting
│   ├── 27-causal-inference/             DAGs, Experimental Design, Observational Methods
│   ├── 28-practical-data-science/       Interview prep & hands-on practice
│   ├── 29-ai-hardware-llm-validation/   Silicon validation for AMD, NVIDIA, Qualcomm, TPU, Apple Silicon
│   ├── 30-inference-optimization/       KV cache, vLLM, TensorRT-LLM, quantization
│   ├── 31-ai-powered-dev-tools/         VS Code AI setup, MCP deep dive, tool workflows
│   ├── 32-cheatsheets/                  Quick references across tooling/cloud/AI/ML
│   └── 33-roadmaps/                     Suggested learning roadmaps
├── scripts/                            # Utility scripts (notebook sync, MCP server, scrapers)
├── pyproject.toml                      # Primary Python deps (uv-managed)
├── requirements*.txt                   # Per-target deps (Colab, Kaggle, Replit, AI dev tools)
├── environment.yml                     # Conda alternative
└── install_dependencies.sh             # One-shot installer (UV-based)
```

Each phase under `next-docs/src/app/` mirrors the same phase under `jupyter-notebooks/`. The site renders MDX; the notebooks are runnable.

## 📌 Completion Notes

- Mature core path: `02-data-science/` through `19-ai-safety-redteaming/`
- Strong advanced depth: `24-advanced-deep-learning/`, `28-practical-data-science/`
- Still being expanded: `20-real-time-streaming/`, `21-quizzes/`, `22-references/`, `30-inference-optimization/`
- Build artifacts (not source): `next-docs/.next/`, `next-docs/out/`, `node_modules/`, `.venv/`

## What Comes Next

Once you have oriented yourself:

1. Open the live site at [zero-to-ai.dev](https://zero-to-ai.dev/) and pick a phase from the sidebar.
2. Open the matching notebook under `jupyter-notebooks/<phase>/` to run it locally.
3. Pair the two: read the explanation on the site, execute the notebook beside it.

---

## 🤝 Contributing

We welcome contributions from the community! Here's how you can help:

### Ways to Contribute

- **🐛 Report Issues**: Found a bug or error? [Open an issue](https://github.com/PavanMudigonda/zero-to-ai/issues)
- **✨ Suggest Features**: Have an idea? Share it in [Discussions](https://github.com/PavanMudigonda/zero-to-ai/discussions)
- **📝 Improve Documentation**: Fix typos, clarify explanations
- **💻 Add Examples**: Contribute new notebooks or examples
- **🌍 Translations**: Help translate content to other languages

### Contribution Guidelines

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide, including how to keep `jupyter-notebooks/` and `next-docs/` in sync, and a note on translations. For larger changes, please [open an issue](https://github.com/PavanMudigonda/zero-to-ai/issues) first to discuss the approach.

This project follows a [Code of Conduct](CODE_OF_CONDUCT.md). By participating you agree to uphold it.

---

## 🙏 Acknowledgments

This learning path is inspired by and integrates content from:

- **Microsoft Learn** - Official AI/ML curriculum
- **Microsoft for Beginners Series** - AI, ML, GenAI, Agents courses
- **Stanford University** - CS229, CS224N, CS231N courses
- **3Blue1Brown** - Visual mathematics explanations
- **Andrej Karpathy** - Neural networks from scratch
- **DeepLearning.AI** - Practical AI courses
- **Fast.ai** - Practical deep learning approach

**Special Thanks** to all contributors, educators, and the open-source community!

---

## 📜 License

This project is licensed under the MIT License.

---

**🚀 From Zero to AI - Your Journey Starts Here!**

> "The best time to start learning AI was yesterday. The second best time is now."


---

**Questions?** Open an [issue](https://github.com/PavanMudigonda/zero-to-ai/issues) or start a [discussion](https://github.com/PavanMudigonda/zero-to-ai/discussions)!

**Found this helpful?** ⭐ Star this repo and share it with others!
