Skip to content

A hands-on tutorial for building your first Quantum Machine Learning (QML) model with Python and PennyLane. Create a simple quantum classifier and learn key QML concepts.

Notifications You must be signed in to change notification settings

ksupasate/Quantum-AI-Python-Tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

How to Build a Quantum AI Model with Python

PyCon Thailand 2025 Workshop

A comprehensive hands-on workshop exploring Quantum Machine Learning, comparing Quantum vs Classical AI, and benchmarking Python, C++, and Rust implementations.

Quantum AI Python C++ Rust

🎯 Workshop Overview

This workshop provides a complete journey through Quantum Machine Learning:

  1. Understanding Quantum AI - Does it exist? Is it better?
  2. Building Quantum Classifiers - Hands-on with PennyLane
  3. Quantum vs Classical Comparison - Head-to-head performance analysis
  4. Multi-Language Benchmarking - Python, C++, and Rust implementations

πŸš€ Quick Start

Prerequisites

  • Python 3.9 or higher
  • (Optional) C++ compiler with C++17 support
  • (Optional) Rust 1.70 or higher

Installation

# Clone the repository
git clone https://github.com/yourusername/pyconth-2025.git
cd pyconth-2025

# Install Python dependencies
cd python
pip install -r requirements.txt

# Verify installation
python -c "import pennylane; print('PennyLane version:', pennylane.__version__)"

Run Your First Quantum Classifier

cd python
python quantum_classifier.py

Compare Quantum vs Classical AI

python compare_models.py

πŸ“š Project Structure

pyconth-2025/
β”œβ”€β”€ python/                      # Python implementations
β”‚   β”œβ”€β”€ quantum_classifier.py   # Quantum ML model (PennyLane)
β”‚   β”œβ”€β”€ classical_classifier.py # Classical ML model (PyTorch)
β”‚   β”œβ”€β”€ compare_models.py       # Direct comparison
β”‚   β”œβ”€β”€ benchmark_quantum.py    # Python benchmarks
β”‚   β”œβ”€β”€ utils/                  # Data generation & visualization
β”‚   └── requirements.txt
β”œβ”€β”€ cpp/                         # C++ high-performance simulator
β”‚   β”œβ”€β”€ quantum_simulator.cpp
β”‚   β”œβ”€β”€ CMakeLists.txt
β”‚   └── README.md
β”œβ”€β”€ rust/                        # Rust safe quantum simulator
β”‚   β”œβ”€β”€ src/main.rs
β”‚   β”œβ”€β”€ Cargo.toml
β”‚   └── README.md
β”œβ”€β”€ notebooks/                   # Jupyter workshop notebooks
β”‚   β”œβ”€β”€ 01_introduction.ipynb
β”‚   β”œβ”€β”€ 02_quantum_workshop.ipynb
β”‚   β”œβ”€β”€ 03_classical_vs_quantum.ipynb
β”‚   └── 04_language_benchmark.ipynb
β”œβ”€β”€ results/                     # Output directory
β”‚   β”œβ”€β”€ plots/                   # Visualizations
β”‚   └── benchmarks/              # Performance data
└── docs/                        # Additional documentation

πŸ§ͺ Workshop Content

Part 1: Introduction - Does Quantum AI Actually Exist?

Topics:

  • What is Quantum Machine Learning?
  • Current state of Quantum AI (NISQ era)
  • Quantum advantage vs quantum supremacy
  • Why learn quantum ML today?

Notebook: 01_introduction.ipynb

Part 2: Building a Quantum Classifier

Topics:

  • Data encoding with AngleEmbedding
  • Variational quantum circuits
  • Hybrid quantum-classical training
  • Evaluating quantum models

Files:

What You'll Build:

from quantum_classifier import QuantumClassifier

# Create quantum classifier
qc = QuantumClassifier(n_qubits=4, n_layers=3)

# Train on data
qc.fit(X_train, y_train, n_epochs=100)

# Make predictions
predictions = qc.predict(X_test)

Part 3: Quantum vs Classical AI Comparison

Topics:

  • Training both models on the same dataset
  • Performance metrics comparison
  • When does quantum help?
  • Current limitations

Files:

Results:

  • Decision boundary visualizations
  • Training curves comparison
  • Accuracy and timing metrics

Part 4: Language Comparison

Topics:

  • Python: Orchestration and prototyping
  • C++: High-performance simulation
  • Rust: Safe and fast systems
  • Benchmark results

Files:

πŸ”¬ Running Benchmarks

Python Benchmark

cd python
python benchmark_quantum.py

C++ Benchmark

cd cpp
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
./bin/quantum_simulator

Rust Benchmark

cd rust
cargo run --release

πŸ“Š Example Results

Quantum vs Classical Comparison

Model Test Accuracy Training Time Parameters
Quantum 0.95 45.2s 36
Classical 0.93 12.3s 186

Results may vary based on hardware and configuration

Language Performance (4 qubits, 3 layers, 100 executions)

Language Avg Time/Exec Speedup Memory
Python 1.2ms 1x ~50MB
C++ 0.015ms 80x ~1MB
Rust 0.016ms 75x ~1MB

πŸŽ“ Learning Path

Beginner

  1. Start with Part 1 (Introduction) to understand fundamentals
  2. Follow Part 2 (Quantum Workshop) to build your first model
  3. Use the interactive notebooks in Jupyter

Intermediate

  1. Experiment with different datasets and architectures
  2. Compare Part 3 results with your own experiments
  3. Modify the quantum circuit structure

Advanced

  1. Implement custom quantum gates
  2. Build Part 4 benchmarks for different circuit depths
  3. Explore C++ and Rust implementations
  4. Try real quantum hardware (IBM Quantum, AWS Braket)

πŸ› οΈ Key Technologies

Quantum ML

  • PennyLane: Quantum machine learning framework
  • NumPy: Numerical computing
  • Matplotlib: Visualization

Classical ML

  • PyTorch: Neural networks
  • Scikit-learn: Classical ML algorithms

Performance

  • C++17: High-performance computing
  • Rust: Memory-safe systems programming

πŸ“– Additional Resources

Documentation

Online Courses

Community

🀝 Contributing

This is an educational workshop project. Feel free to:

  • Report issues
  • Suggest improvements
  • Share your experiments
  • Create pull requests

⚠️ Important Notes

Current Limitations

  1. Quantum Simulators: We use classical computers simulating quantum behavior
  2. NISQ Era: Real quantum computers are noisy and limited
  3. No Proven Advantage: Quantum ML hasn't shown clear advantage for practical problems yet
  4. Research Field: Technology is rapidly evolving

Best Practices

  • Start with small circuits (4-8 qubits)
  • Use simulators for learning
  • Focus on understanding concepts
  • Experiment with different architectures
  • Compare with classical baselines

πŸ“„ License

This project is created for educational purposes for PyCon Thailand 2025.

πŸ™ Acknowledgments

  • PennyLane team for the excellent quantum ML framework
  • PyCon Thailand 2025 organizers
  • Quantum computing research community

πŸ“§ Contact

For questions or feedback about this workshop:

  • Create an issue in this repository
  • Contact the workshop organizers

Built with ❀️ for PyCon Thailand 2025

Start your quantum computing journey today! πŸš€

🎯 Key Takeaways

  1. βœ… Quantum AI exists but is in early research stage
  2. βœ… Python is the best language to start learning QML
  3. βœ… Hybrid approaches combine quantum and classical strengths
  4. βœ… C++ and Rust provide performance for production systems
  5. βœ… Now is the time to learn - be ready for the quantum future!

About

A hands-on tutorial for building your first Quantum Machine Learning (QML) model with Python and PennyLane. Create a simple quantum classifier and learn key QML concepts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published