From 7d998ceb0387ed024fe9ef9b82f70c9b4f491c72 Mon Sep 17 00:00:00 2001 From: Syakyr Surani Date: Thu, 4 Jan 2024 16:49:58 +0800 Subject: [PATCH 1/4] Added YAML subsection --- .../docs/guide-for-user/04-dev-wksp.md | 111 +++++++++++++----- .../06-data-storage-versioning.md | 6 + .../guide-for-user/07-job-orchestration.md | 35 ++++++ 3 files changed, 122 insertions(+), 30 deletions(-) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md index c43f536..b330d07 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md @@ -79,7 +79,7 @@ either method to gain access to a remote VSCode developer workspace. ![Run:ai - VSCode Server Welcome](assets/screenshots/runai-vscode-server-welcome.png) -=== "Run:ai" +=== "Run:ai Workspaces" Every end-user of Run:ai would be able to quickly spin up a VSCode server workspace using prebuilt blocks. While the @@ -103,6 +103,24 @@ either method to gain access to a remote VSCode developer workspace. ![Run:ai Dashboard - Workspaces Page Post VSCode](assets/screenshots/runai-dashboard-workspaces-page-post-vscode.png) +=== "Run:ai YAML" + + You can create a VSCode workspace with the YAML file + `aisg-context/runai/02-vscode.yml`. But before that, you would need + to prepare the workspace to spin it up with: + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/01-workspace-prep.yml + ``` + + After that, you can spin up the workspace with: + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/02-vscode.yml + ``` + Once the workspace is active (indicated by a green status), you may access the workspace by clicking on the `CONNECT` button and choosing `VSCode`. This will open up a new browser tab for the @@ -150,6 +168,11 @@ either method to gain access to a remote VSCode developer workspace. ### Persistent Workspaces +!!! warning "Attention" + If you have spun up using the Run:ai YAML method, then you can + skip this step since you've already prepared your workspace prior + to spinning it up. + As mentioned, a PVC should be attached to the workspaces to persist changes to the filesystems. If a PVC is attached, the usual path to access it would be `/`. For example, if the name of @@ -196,22 +219,31 @@ Now, let's clone your repository from the remote: $ cd {{cookiecutter.repo_name}} ``` +=== "Run:ai YAML" + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/03-repo-download.yml + ``` + ### Extensions for VSCode You can install a multitude of extensions for your VSCode service but there are a couple that would be crucial for your workflow, especially if you intend to use Jupyter notebooks within the VSCode environment. -- [`ms-python.python`](https://marketplace.visualstudio.com/items?itemName=ms-python.python): - Official extension by Microsoft for rich support for many things - Python. -- [`ms-toolsai.jupyter`](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter): - Official extension by Microsoft for Jupyter support. +- [`ms-python.python`][vsx-python]: Official extension by Microsoft for + rich support for many things Python. +- [`ms-toolsai.jupyter`][vsx-jy]: Official extension by Microsoft + for Jupyter support. !!! warning "Attention" - Do head over [here](./05-virtual-env.md#jupyter-kernel-for-vscode) - on how to enable the usage of virtual `conda` environments within - VSCode. + Do head over [here][jy-vscode] on how to enable the usage of + virtual `conda` environments within VSCode. + +[vsx-python]: https://marketplace.visualstudio.com/items?itemName=ms-python.python +[vsx-jy]: https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter +[jy-vscode]: ./05-virtual-env.md#jupyter-kernel-for-vscode ### Customising VSCode Server @@ -266,29 +298,48 @@ custom image: While Jupyter Notebooks are viewable, editable and executable within a VSCode environment, most are still more familiar with Jupyter's -interface for interacting with or editing notebooks. We can spin up -a JupyterLab using the following recommended blocks: +interface for interacting with or editing notebooks. -- __Workspace name:__ `-jupyterlab` -- __Environment:__ `aisg-jupyterlab-server-0-1-0` -- __Compute Resource:__ `cpu-mid` -- __Data Source:__ The PVC that is dedicated to your project. For a - sample project, you may make use of `sample-project-pvc`. +=== "Run:ai Workspaces" + We can spin up a JupyterLab using the following recommended blocks: -!!! warning "Attention" - Under the `Environment` block, there is an expandable section called - `More settings`. Under this section, you can provide more arguments - for a container that will be spun up for the workspace. For the - JupyterLab interface to be able to access any PVC mounted to the - container, you should include the following argument: - `--NotebookApp.notebook_dir="/path/to/pvc"`. - -Once you have selected the blocks, you can proceed to create the -workspace and you will be redirected to the workspaces page. On this -page, you may view the status of the workspace that you have just -created. - -![Run:ai Dashboard - Workspaces Page Post JupyterLab](assets/screenshots/runai-dashboard-workspaces-page-post-jupyterlab.png) + - __Workspace name:__ `-jupyterlab` + - __Environment:__ `aisg-jupyterlab-server-0-1-0` + - __Compute Resource:__ `cpu-mid` + - __Data Source:__ The PVC that is dedicated to your project. For a + sample project, you may make use of `sample-project-pvc`. + + !!! warning "Attention" + Under the `Environment` block, there is an expandable section + called `More settings`. Under this section, you can provide more + arguments for a container that will be spun up for the + workspace. For the JupyterLab interface to be able to access any + PVC mounted to the container, you should include the following argument: `--NotebookApp.notebook_dir="/path/to/pvc"`. + + Once you have selected the blocks, you can proceed to create the + workspace and you will be redirected to the workspaces page. On this + page, you may view the status of the workspace that you have just + created. + + ![Run:ai Dashboard - Workspaces Page Post JupyterLab](assets/screenshots/runai-dashboard-workspaces-page-post-jupyterlab.png) + +=== "Run:ai YAML" + + You can also create a Jupyter workspace with the YAML file + `aisg-context/runai/02b-jupyterlab.yml`. But before that, you would + need to prepare the workspace to spin it up with: + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/01-workspace-prep.yml + ``` + + After that, you can spin up the workspace with: + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/02b-jupyterlab.yml + ``` Once the workspace is active (indicated by a green status), you may access the workspace by clicking on the `CONNECT` button and choosing diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/06-data-storage-versioning.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/06-data-storage-versioning.md index 7cd452f..fd18f70 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/06-data-storage-versioning.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/06-data-storage-versioning.md @@ -16,6 +16,12 @@ at hand within our VSCode server workspace. $ unzip mnist-pngs-data-aisg.zip ``` +=== "Run:ai YAML" + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/03b-data-download.yml + ``` + !!! info The sample data for this guide's problem statement is made accessible to the public. Hence any team or individual can download diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md index 2347f0a..a0a4a68 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md @@ -63,6 +63,13 @@ provided in this template: $ docker push {{cookiecutter.registry_project_path}}/data-prep:0.1.0 ``` +=== "Run:ai YAML" + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/04-docker-build-dataprep.yml + ``` + Now that we have the Docker image pushed to the registry, we can submit a job using that image to Run:ai\: @@ -92,6 +99,13 @@ a job using that image to Run:ai\: --command -- "/bin/bash -c 'source activate {{cookiecutter.repo_name}} && python src/process_data.py process_data.raw_data_dir_path=//workspaces//data/mnist-pngs-data-aisg process_data.processed_data_dir_path=//workspaces//data/processed/mnist-pngs-data-aisg-processed'" ``` +=== "Run:ai YAML" + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/05-dataprep.yml + ``` + After some time, the data processing job should conclude and we can proceed with training the predictive model. The processed data is exported to the directory @@ -159,6 +173,13 @@ we need to build the Docker image to be used for it: $ docker push {{cookiecutter.registry_project_path}}/model-training:0.1.0 ``` +=== "Run:ai YAML" + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/06-docker-build-modeltraining.yml + ``` + Now that we have the Docker image pushed to the registry, we can run a job using it: @@ -198,6 +219,13 @@ we can run a job using it: --command -- "/bin/bash -c 'source activate {{cookiecutter.repo_name}} && python src/train_model.py train_model.data_dir_path=//workspaces//data/processed/mnist-pngs-data-aisg-processed train_model.setup_mlflow=true train_model.mlflow_tracking_uri= train_model.mlflow_exp_name= train_model.model_checkpoint_dir_path=//workspaces//{{cookiecutter.repo_name}}/models train_model.epochs=3'" ``` +=== "Run:ai YAML" + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/07-modeltraining.yml + ``` + Once you have successfully run an experiment, you may inspect the run on the MLflow Tracking server. Through the MLflow Tracking server interface, you can view the metrics and parameters logged for the run, @@ -366,6 +394,13 @@ by default. --command -- "/bin/bash -c 'source activate {{cookiecutter.repo_name}} && python src/train_model.py --multirun train_model.data_dir_path=//workspaces//data/processed/mnist-pngs-data-aisg-processed train_model.setup_mlflow=true train_model.mlflow_tracking_uri= train_model.mlflow_exp_name= train_model.model_checkpoint_dir_path=//workspaces//{{cookiecutter.repo_name}}/models train_model.epochs=3'" ``` +=== "Run:ai YAML" + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/08-modeltraining-hp.yml + ``` + ![MLflow Tracking Server - Hyperparameter Tuning Runs](assets/screenshots/mlflow-tracking-hptuning-runs.png) __Reference(s):__ From 1946ffc770e64104d1e0e6ee454343e96c84a5bf Mon Sep 17 00:00:00 2001 From: Syakyr Surani Date: Thu, 4 Jan 2024 16:52:33 +0800 Subject: [PATCH 2/4] Added extra subheader --- .../guide-site/docs/guide-for-user/05-virtual-env.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md index 267141d..c81bebb 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md @@ -1,5 +1,7 @@ # Virtual Environment +## Creating Persistent `conda` Environments in the Workspace + While the Docker images you will be using to run experiments on Run:ai would contain the `conda` environments you would need, you can also create these virtual environments within your development environment, From cbad5793c2c159964fa3d54a6a86ad9e24c0a360 Mon Sep 17 00:00:00 2001 From: Syakyr Surani Date: Thu, 4 Jan 2024 17:17:25 +0800 Subject: [PATCH 3/4] Fixed section issue --- .../docs/guide-for-user/04-dev-wksp.md | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md index b330d07..e552dc5 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md @@ -79,47 +79,49 @@ either method to gain access to a remote VSCode developer workspace. ![Run:ai - VSCode Server Welcome](assets/screenshots/runai-vscode-server-welcome.png) -=== "Run:ai Workspaces" +=== "Run:ai" - Every end-user of Run:ai would be able to quickly spin up a VSCode - server workspace using prebuilt blocks. While the - [steps for creating a workspace][workspace] are detailed on - Run:ai's documentation, listed below are the recommended - environment, compute resource, and data source that you may make - use of to spin up your first VSCode workspace, in the context of AI - Singapore's infrastructure. + === "Workspaces" - - __Workspace name:__ `-vscode` - - __Environment:__ `aisg-vscode-server-v4-16-1` - - __Compute Resource:__ `cpu-mid` - - __Data Source:__ The persistent volume claim (PVC) that is - dedicated to your project. For a project named `sample-project`, - you may make use of `sample-project-pvc`. + Every end-user of Run:ai would be able to quickly spin up a VSCode + server workspace using prebuilt blocks. While the + [steps for creating a workspace][workspace] are detailed on + Run:ai's documentation, listed below are the recommended + environment, compute resource, and data source that you may make + use of to spin up your first VSCode workspace, in the context of AI + Singapore's infrastructure. - Once you have selected the blocks, you can proceed to create the - workspace and you will be redirected to the workspaces page. On - this page, you may view the status of the workspace that you have - just created. + - __Workspace name:__ `-vscode` + - __Environment:__ `aisg-vscode-server-v4-16-1` + - __Compute Resource:__ `cpu-mid` + - __Data Source:__ The persistent volume claim (PVC) that is + dedicated to your project. For a project named `sample-project`, + you may make use of `sample-project-pvc`. - ![Run:ai Dashboard - Workspaces Page Post VSCode](assets/screenshots/runai-dashboard-workspaces-page-post-vscode.png) + Once you have selected the blocks, you can proceed to create the + workspace and you will be redirected to the workspaces page. On + this page, you may view the status of the workspace that you have + just created. -=== "Run:ai YAML" + ![Run:ai Dashboard - Workspaces Page Post VSCode](assets/screenshots/runai-dashboard-workspaces-page-post-vscode.png) - You can create a VSCode workspace with the YAML file - `aisg-context/runai/02-vscode.yml`. But before that, you would need - to prepare the workspace to spin it up with: + === "YAML" - ```bash - # Change the values within the file if any before running this - kubectl apply -f aisg-context/runai/01-workspace-prep.yml - ``` + You can create a VSCode workspace with the YAML file + `aisg-context/runai/02-vscode.yml`. But before that, you would need + to prepare the workspace to spin it up with: - After that, you can spin up the workspace with: + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/01-workspace-prep.yml + ``` - ```bash - # Change the values within the file if any before running this - kubectl apply -f aisg-context/runai/02-vscode.yml - ``` + After that, you can spin up the workspace with: + + ```bash + # Change the values within the file if any before running this + kubectl apply -f aisg-context/runai/02-vscode.yml + ``` Once the workspace is active (indicated by a green status), you may access the workspace by clicking on the `CONNECT` button and From ebfbe9fe3bd0fc18456913d9dd9d1b89e3848894 Mon Sep 17 00:00:00 2001 From: Syakyr Surani Date: Thu, 4 Jan 2024 17:17:49 +0800 Subject: [PATCH 4/4] Changed to the new formatting for references --- .../docs/guide-for-user/04-dev-wksp.md | 12 ++++---- .../docs/guide-for-user/05-virtual-env.md | 12 ++++---- .../guide-for-user/07-job-orchestration.md | 24 ++++++++-------- .../docs/guide-for-user/08-deployment.md | 14 +++++----- .../guide-site/docs/guide-for-user/10-cicd.md | 28 +++++++++---------- .../docs/guide-for-user/11-documentation.md | 6 ++-- 6 files changed, 48 insertions(+), 48 deletions(-) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md index e552dc5..d4864a2 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/04-dev-wksp.md @@ -164,9 +164,9 @@ either method to gain access to a remote VSCode developer workspace. [workspace]: https://docs.run.ai/v2.13/Researcher/user-interface/workspaces/create/workspace - __Reference(s):__ + ??? info "Reference Link(s)" - - [Kubernetes Docs - Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes) + - [Kubernetes Docs - Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes) ### Persistent Workspaces @@ -381,9 +381,9 @@ directed to a view like such: ![Run:ai - JupyterLab Server Welcome](assets/screenshots/runai-jupyterlab-server-launcher.png) -__Reference(s):__ +??? info "Reference Link(s)" -- [Jupyter Server Docs - Config file and command line options](https://jupyter-server.readthedocs.io/en/stable/other/full-config.html#other-full-config) + - [Jupyter Server Docs - Config file and command line options](https://jupyter-server.readthedocs.io/en/stable/other/full-config.html#other-full-config) !!! Info Do head over @@ -426,6 +426,6 @@ server as well as any associated files can be found under themselves is not feasible by default and while possible, should be avoided. -__Reference(s):__ +??? info "Reference Link(s)" -- [Using Docker-in-Docker for your CI or testing environment? Think twice. - jpetazzo](https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/) + - [Using Docker-in-Docker for your CI or testing environment? Think twice. - jpetazzo](https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md index c81bebb..32d5b41 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/05-virtual-env.md @@ -49,11 +49,11 @@ workspace directory: `pip install` executions. However, there's no similar flag for `conda` at the moment so the above is a blanket solution. -__Reference(s):__ +??? info "Reference Link(s)" -- [`conda` Docs - Managing environments](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-from-an-environment-yml-file) -- [StackOverflow - "Pip install killed - out of memory - how to get around it?"](https://stackoverflow.com/questions/57058641/pip-install-killed-out-of-memory-how-to-get-around-it) -- [phoenixNAP - Linux alias Command: How to Use It With Examples](https://phoenixnap.com/kb/linux-alias-command#:~:text=In%20Linux%2C%20an%20alias%20is,and%20avoiding%20potential%20spelling%20errors.) + - [`conda` Docs - Managing environments](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-from-an-environment-yml-file) + - [StackOverflow - "Pip install killed - out of memory - how to get around it?"](https://stackoverflow.com/questions/57058641/pip-install-killed-out-of-memory-how-to-get-around-it) + - [phoenixNAP - Linux alias Command: How to Use It With Examples](https://phoenixnap.com/kb/linux-alias-command#:~:text=In%20Linux%2C%20an%20alias%20is,and%20avoiding%20potential%20spelling%20errors.) ## Jupyter Kernel for VSCode @@ -148,6 +148,6 @@ within your `conda` environment. - Test out the kernel by running the cells in the sample notebook. -__Reference(s):__ +??? info "Reference Link(s)" -- [Jupyter Docs - Kernels (Programming Languages)](https://docs.jupyter.org/en/latest/projects/kernels.html) + - [Jupyter Docs - Kernels (Programming Languages)](https://docs.jupyter.org/en/latest/projects/kernels.html) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md index a0a4a68..1c15905 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/07-job-orchestration.md @@ -32,9 +32,9 @@ the CLI. [Hydra](https://hydra.cc/)'s concepts before you move on. -__Reference(s):__ +??? info "Reference Link(s)" -- [Hydra Docs - Basic Override Syntax](https://hydra.cc/docs/advanced/override_grammar/basic/) + - [Hydra Docs - Basic Override Syntax](https://hydra.cc/docs/advanced/override_grammar/basic/) ## Data Preparation & Preprocessing @@ -143,10 +143,10 @@ To log and upload artifacts to ECS buckets through MLflow, you need to ensure that the client has access to the credentials of an account that can write to a bucket. -__Reference(s):__ +??? info "Reference Link(s)" -- [MLflow Docs - Tracking](https://www.mlflow.org/docs/latest/tracking.html#) -- [MLflow Docs - Tracking (Artifact Stores)](https://www.mlflow.org/docs/latest/tracking.html#artifact-stores) + - [MLflow Docs - Tracking](https://www.mlflow.org/docs/latest/tracking.html#) + - [MLflow Docs - Tracking (Artifact Stores)](https://www.mlflow.org/docs/latest/tracking.html#artifact-stores) ### Container for Experiment Job @@ -246,10 +246,10 @@ bucket. You can also compare runs with each other. specific Run:ai job by using MLflow's search filter expressions and API. - __Reference(s):__ + ??? info "Reference Link(s)" - - [Run:ai Docs - Environment Variables inside a Run:ai Workload](https://docs.run.ai/v2.9/Researcher/best-practices/env-variables/) - - [MLflow Docs - Search Runs](https://mlflow.org/docs/latest/search-runs.html) + - [Run:ai Docs - Environment Variables inside a Run:ai Workload](https://docs.run.ai/v2.9/Researcher/best-practices/env-variables/) + - [MLflow Docs - Search Runs](https://mlflow.org/docs/latest/search-runs.html) !!! info If your project has GPU quotas assigned to it, you can make use of @@ -403,8 +403,8 @@ by default. ![MLflow Tracking Server - Hyperparameter Tuning Runs](assets/screenshots/mlflow-tracking-hptuning-runs.png) -__Reference(s):__ +??? info "Reference Link(s)" -- [Run:ai Docs - Environment Variables inside a Run:ai Workload](https://docs.run.ai/v2.9/Researcher/best-practices/env-variables/) -- [Hydra Docs - Optuna Sweeper Plugin](https://hydra.cc/docs/plugins/optuna_sweeper/) -- [MLflow Docs - Search Syntax](https://www.mlflow.org/docs/latest/search-syntax.html) + - [Run:ai Docs - Environment Variables inside a Run:ai Workload](https://docs.run.ai/v2.9/Researcher/best-practices/env-variables/) + - [Hydra Docs - Optuna Sweeper Plugin](https://hydra.cc/docs/plugins/optuna_sweeper/) + - [MLflow Docs - Search Syntax](https://www.mlflow.org/docs/latest/search-syntax.html) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/08-deployment.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/08-deployment.md index afc4d2d..de2735c 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/08-deployment.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/08-deployment.md @@ -12,9 +12,9 @@ our REST API. Popular examples include resort to the well-known [FastAPI](https://fastapi.tiangolo.com/) (which is based on Starlette itself). -__Reference(s):__ +??? info "Reference Link(s)" -- [IBM Technology - What is a REST API? (Video)](https://www.youtube.com/watch?v=lsMQRaeKNDk) + - [IBM Technology - What is a REST API? (Video)](https://www.youtube.com/watch?v=lsMQRaeKNDk) ## Model Artifacts @@ -286,9 +286,9 @@ such: ![FastAPI - OpenAPI Docs](assets/screenshots/fastapi-openapi-docs.png) -__Reference(s):__ +??? info "Reference Link(s)" -- [PyTorch Tutorials - Saving and Loading Models](https://pytorch.org/tutorials/beginner/saving_loading_models.html) -- [FastAPI Docs](https://fastapi.tiangolo.com) -- [Pydantic Docs - Settings Management](https://pydantic-docs.helpmanual.io/usage/settings/) -- [`curl` tutorial](https://curl.se/docs/manual.html) + - [PyTorch Tutorials - Saving and Loading Models](https://pytorch.org/tutorials/beginner/saving_loading_models.html) + - [FastAPI Docs](https://fastapi.tiangolo.com) + - [Pydantic Docs - Settings Management](https://pydantic-docs.helpmanual.io/usage/settings/) + - [`curl` tutorial](https://curl.se/docs/manual.html) diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/10-cicd.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/10-cicd.md index 826ab46..27b4e98 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/10-cicd.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/10-cicd.md @@ -106,10 +106,10 @@ into a CI/CD environment variable of type `File` ![GitLab UI - Set File Variable under CI/CD Settings](assets/screenshots/gitlab-settings-cicd-set-file-var.png) -__Reference(s):__ +??? info "Reference Link(s)" -- [GitLab Docs - GitLab CI/CD variables](https://docs.gitlab.com/ee/ci/variables/) -- [Docker Docs - Configuration files](https://docs.docker.com/engine/reference/commandline/cli/#configuration-files) + - [GitLab Docs - GitLab CI/CD variables](https://docs.gitlab.com/ee/ci/variables/) + - [Docker Docs - Configuration files](https://docs.docker.com/engine/reference/commandline/cli/#configuration-files) ## Stages & Jobs @@ -214,11 +214,11 @@ The job would have to succeed before moving on to the `build` stage. Otherwise, no Docker images will be built. This is so that source code that fail tests would never be packaged. -__Reference(s):__ +??? info "Reference Link(s)" -- [GitLab Docs - Predefined variables reference](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html) -- [Real Python - Effective Python Testing With Pytest](https://realpython.com/pytest-python-testing/) -- [VSCode Docs - Linting Python in Visual Studio Code](https://code.visualstudio.com/docs/python/linting) + - [GitLab Docs - Predefined variables reference](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html) + - [Real Python - Effective Python Testing With Pytest](https://realpython.com/pytest-python-testing/) + - [VSCode Docs - Linting Python in Visual Studio Code](https://code.visualstudio.com/docs/python/linting) ## Automated Builds @@ -293,10 +293,10 @@ Images built through the pipeline will be tagged with the commit hashes associated with the commits that triggered it. This is seen through the usage of the predefined variable `CI_COMMIT_SHORT_SHA`. -__Reference(s):__ +??? info "Reference Link(s)" -- [GitLab Docs - Use kaniko to build Docker images](https://docs.gitlab.com/ee/ci/docker/using_kaniko.html) -- [GitLab Docs - Use Docker to build Docker images](https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker) + - [GitLab Docs - Use kaniko to build Docker images](https://docs.gitlab.com/ee/ci/docker/using_kaniko.html) + - [GitLab Docs - Use Docker to build Docker images](https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-in-docker) ## Tagging @@ -332,11 +332,11 @@ to the default branch before this. ... ``` -__Reference(S):__ +??? info "Reference Link(s)" -- [GitHub Docs - GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow) -- [GitLab Docs - GitLab Flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html) -- [`go-containerregistry` GitHub - `crane`](https://github.com/google/go-containerregistry/blob/main/cmd/crane/README.md) + - [GitHub Docs - GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow) + - [GitLab Docs - GitLab Flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html) + - [`go-containerregistry` GitHub - `crane`](https://github.com/google/go-containerregistry/blob/main/cmd/crane/README.md) ## Conclusion diff --git a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/11-documentation.md b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/11-documentation.md index 0d2bd30..985162f 100644 --- a/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/11-documentation.md +++ b/{{cookiecutter.repo_name}}/aisg-context/guide-site/docs/guide-for-user/11-documentation.md @@ -58,7 +58,7 @@ The documentation page is viewable through the following convention: `.gitlab.aisingapore.net/` or `.gitlab.aisingapore.net//`. -__Reference(s):__ +??? info "Reference Link(s)" -- [GitLab Docs - Pages domain names, URLs, and base URLs](https://docs.gitlab.com/ee/user/project/pages/getting_started_part_one.html) -- [GitLab Docs - Namespaces](https://docs.gitlab.com/ee/user/group/#namespaces) + - [GitLab Docs - Pages domain names, URLs, and base URLs](https://docs.gitlab.com/ee/user/project/pages/getting_started_part_one.html) + - [GitLab Docs - Namespaces](https://docs.gitlab.com/ee/user/group/#namespaces)