diff --git a/.vscode/extensions.json b/.1st_setup/.vscode/extensions.json
similarity index 100%
rename from .vscode/extensions.json
rename to .1st_setup/.vscode/extensions.json
diff --git a/.1st_setup/README.md b/.1st_setup/README.md
index 93ba935..9f33f89 100644
--- a/.1st_setup/README.md
+++ b/.1st_setup/README.md
@@ -3,7 +3,7 @@
This document lists different approaches for setting up your machine and using the code in this repository. I recommend browsing through the different sections from top to bottom and then deciding which approach best suits your needs.
-
+
## Quickstart
@@ -13,7 +13,7 @@ If you already have a Python installation on your machine, the quickest way to g
pip install -r requirements.txt
```
-
+
## Setting up Python
@@ -25,7 +25,7 @@ If you don't have Python set up on your machine yet, I have written about my per
-
+
## Using Google Colab
@@ -44,13 +44,19 @@ You can optionally run the code on a GPU by changing the *Runtime* as illustrate
-
+
## Using DevContainers
Alternatively, If you prefer a development setup that isolates a project's dependencies and configurations, using Docker is a highly effective solution. This approach eliminates the need to manually install software packages and libraries and ensures a consistent development environment. You can find more instructions for setting up Docker and using a DevContainer here in [../appendix-A/04_optional-docker-environment](../appendix-A/04_optional-docker-environment).
-
+
+
+## VSCode extensions
+
+If you are using Visual Studio Code (VSCode) as your primary code editor, you can find recommended extensions in the `.vscode` subfolder. To install these, open the `extensions.json` file in VSCode and click the "Install" button in the pop-up menu on the lower right.
+
+
## Questions?
diff --git a/.devcontainer/Dockerfile b/appendix-A/04_optional-docker-environment/.devcontainer/Dockerfile
similarity index 100%
rename from .devcontainer/Dockerfile
rename to appendix-A/04_optional-docker-environment/.devcontainer/Dockerfile
diff --git a/.devcontainer/README.md b/appendix-A/04_optional-docker-environment/.devcontainer/README.md
similarity index 60%
rename from .devcontainer/README.md
rename to appendix-A/04_optional-docker-environment/.devcontainer/README.md
index 2155b5a..7afbf48 100644
--- a/.devcontainer/README.md
+++ b/appendix-A/04_optional-docker-environment/.devcontainer/README.md
@@ -1,3 +1,3 @@
# Optional Docker Environment
-This is an optional Docker environment for those users who prefer Docker. For more instructions, see the *Docker Environment Setup Guide* in [../appendix-A/04_optional-docker-environment](../appendix-A/04_optional-docker-environment).
\ No newline at end of file
+This is an optional Docker environment for those users who prefer Docker. For more instructions, see the *Docker Environment Setup Guide* in [appendix-A/04_optional-docker-environment](../).
\ No newline at end of file
diff --git a/.devcontainer/devcontainer.json b/appendix-A/04_optional-docker-environment/.devcontainer/devcontainer.json
similarity index 100%
rename from .devcontainer/devcontainer.json
rename to appendix-A/04_optional-docker-environment/.devcontainer/devcontainer.json
diff --git a/appendix-A/04_optional-docker-environment/README.md b/appendix-A/04_optional-docker-environment/README.md
index c2bc0c5..a8208d6 100644
--- a/appendix-A/04_optional-docker-environment/README.md
+++ b/appendix-A/04_optional-docker-environment/README.md
@@ -27,10 +27,16 @@ git clone https://github.com/rasbt/LLMs-from-scratch.git
cd LLMs-from-scratch
```
-2. In Docker Desktop, make sure that ***desktop-linux* builder** is running and will be used to build the Docker container (see *Docker Desktop* -> *Change settings* -> *Builders* -> *desktop-linux* -> *...* -> *Use*)
+2. Move the `.devcontainer` file to the main `LLMs-from-scratch` project directory.
-3. If you have a [CUDA-supported GPU](https://developer.nvidia.com/cuda-gpus), you can speed up the training and inference:
-
+```bash
+mv appendix-A/04_optional-docker-environment/.devcontainer ./
+```
+
+3. In Docker Desktop, make sure that ***desktop-linux* builder** is running and will be used to build the Docker container (see *Docker Desktop* -> *Change settings* -> *Builders* -> *desktop-linux* -> *...* -> *Use*)
+
+4. If you have a [CUDA-supported GPU](https://developer.nvidia.com/cuda-gpus), you can speed up the training and inference:
+
3.1 Install **NVIDIA Container Toolkit** as described [here](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-apt). NVIDIA Container Toolkit is supported as written [here](https://docs.nvidia.com/cuda/wsl-user-guide/index.html#nvidia-compute-software-support-on-wsl-2).
3.2 Add *nvidia* as runtime in Docker Engine daemon config (see *Docker Desktop* -> *Change settings* -> *Docker Engine*). Add these lines to your config:
@@ -61,15 +67,15 @@ cd LLMs-from-scratch
```
and restart Docker Desktop.
-4. Type `code .` in the terminal to open the project in VS Code. Alternatively, you can launch VS Code and select the project to open from the UI.
+5. Type `code .` in the terminal to open the project in VS Code. Alternatively, you can launch VS Code and select the project to open from the UI.
-5. Install the **Remote Development** extension from the VS Code *Extensions* menu on the left-hand side.
+6. Install the **Remote Development** extension from the VS Code *Extensions* menu on the left-hand side.
-6. Open the DevContainer.
+7. Open the DevContainer.
Since the `.devcontainer` folder is present in the main `LLMs-from-scratch` directory (folders starting with `.` may be invisible in your OS depending on your settings), VS Code should automatically detect it and ask whether you would like to open the project in a devcontainer. If it doesn't, simply press `Ctrl + Shift + P` to open the command palette and start typing `dev containers` to see a list of all DevContainer-specific options.
-7. Select **Reopen in Container**.
+8. Select **Reopen in Container**.
Docker will now begin the process of building the Docker image specified in the `.devcontainer` configuration if it hasn't been built before, or pull the image if it's available from a registry.
@@ -80,7 +86,7 @@ Once completed, VS Code will automatically connect to the container and reopen t
> [!WARNING]
> If you are encountering an error during the build process, this is likely because your machine does not support NVIDIA container toolkit because your machine doesn't have a compatible GPU. In this case, edit the `devcontainer.json` file to remove the `"runArgs": ["--runtime=nvidia", "--gpus=all"],` line and run the "Reopen Dev Container" procedure again.
-8. Finished.
+9. Finished.
Once the image has been pulled and built, you should have your project mounted inside the container with all the packages installed, ready for development.