A tutorial to introduce Physicists to the idea of using Neural Networks for parameterizing wave functions. In our scenario, we combine variational monte carlo approach with a neural quantum state to search for the ground state of a 2D lattice of Rydberg atoms
The following resources were consulted for this tutorial. You can consult them for further knowledge.
- Sprague and Czischek, 2024
- Zhang and Ventra, 2023
- Czischek et. al., 2022
- Hibat-Allah et. al., 2020
- Deep Learning Tutorial
- QuCumber
With permission, code in the APRIQUOT repository was used in the transformer training
Check how to use for usage on different platforms
Let us consider the physics of the problem.
- We are looking at a 2D lattice of Rydberg atoms
- We will be using the Rydberg Hamiltonian
- We are assuming all-to-all interaction between all lattice sites
The learning objectives include
- Seeing a deep learning model combined with variational ansatz to search for ground state
- Learning how the Hamiltonian of the problem slots into a machine learning framework. Our loss function would be the expectation of the Hamiltonian
- Using a trained network to compute observables of a system
- Recurrent Neural Network (Gated Recurrent Unit)
- Transformer (with Multihead Self-Attention)
You should have both of the following installed on your local machine one way or the other
- Python3
- Git (You may need to download the folders as a compressed folder if you do not have git installed)
Follow these instructions for usage. Max/Unix, Windows, Makefile
-
Clone the repository:
git clone https://github.com/lere01/tutorial_nqs.git
-
Change directory:
cd tutorial_nqs
-
Run the setup script:
bash run.sh
Remember to run chmod +x run.sh
to make the script executable before running. Some unix based systems allow you to simply double-click on the file.
-
Clone the repository:
git clone https://github.com/lere01/tutorial_nqs.git
-
Change directory:
cd tutorial_nqs
-
Run the setup script:
run.bat
Note that opening the root directory in Windows Explorer and double clicking run.bat
can also achieve the same thing.
The advantage of the Make commands is the fine grained control you get over running/stopping the app and cleaning your environment. So if you already have make
setup on your PC/Mac, then using the following commands would serve better.
-
Run the setup and start the application:
make run
-
To stop the application:
make stop
-
To clean up the environment:
make clean
These steps will ensure that the virtual environment is created, dependencies are installed, and the application is run, all with a single command, making it easier for you to get started.