diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 23b921309f..5501c295eb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,19 +1,22 @@ -name: Deploy to GitHub Pages +name: Deploy to gh-pages on: - # Trigger the workflow every time you push to the `main` branch - # Using a different branch name? Replace `main` with your branch’s name + # Trigger the workflow if any web/** files are modified push: - branches: [ main ] - # Allows you to run this workflow manually from the Actions tab on GitHub. + branches: + - "main" + - "2.5" + paths: + - 'web/**' workflow_dispatch: env: site_path: ./web + version_path: / # Allow this job to clone the repo and create a page deployment permissions: - contents: read + contents: write pages: write id-token: write @@ -21,7 +24,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout your repository using git + - name: Update version_path for non-main branches + if: ${{ github.ref_type == 'branch' && github.ref_name != 'main'}} + run: echo version_path=/version/${{ github.ref_name }}/ >> $GITHUB_ENV + + - name: Checkout your repository uses: actions/checkout@v4 - name: Setup Node @@ -31,28 +38,20 @@ jobs: cache: npm cache-dependency-path: "${{ env.site_path }}/package-lock.json" - - name: Install - shell: "bash" - working-directory: ${{ env.site_path }} + - name: Install dependencies run: npm install - - - name: Build - shell: "bash" working-directory: ${{ env.site_path }} + + - name: Build project run: npm run build + env: + PUBLIC_GH_BRANCH: ${{ github.ref_name }} + working-directory: ${{ env.site_path }} - - name: Upload Pages Artifact - uses: actions/upload-pages-artifact@v3 + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4.6.4 with: - path: "${{ env.site_path }}/dist/" - - deploy: - needs: build - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + branch: gh-pages + folder: ${{ env.site_path }}/dist + target-folder: ${{ env.version_path }} + clean-exclude: version diff --git a/web/astro.config.mjs b/web/astro.config.mjs index 32414d4b29..1efb442010 100644 --- a/web/astro.config.mjs +++ b/web/astro.config.mjs @@ -1,8 +1,10 @@ import { defineConfig } from "astro/config"; import tailwind from "@astrojs/tailwind"; +const branch = process.env.PUBLIC_GH_BRANCH; + export default defineConfig({ site: "https://nvidia.github.io", - base: "/NVFlare", + base: branch === 'main' ? '/NVFlare' : `/NVFlare/version/${branch}`, integrations: [tailwind()], }); diff --git a/web/src/components/code.astro b/web/src/components/code.astro index 58bc6bb585..36c92fdad0 100644 --- a/web/src/components/code.astro +++ b/web/src/components/code.astro @@ -15,6 +15,8 @@ import 'prismjs/plugins/line-numbers/prism-line-numbers.css' import GoogleColab from '../images/google_colab.svg.png' +const gh_branch = import.meta.env.PUBLIC_GH_BRANCH; + // PyTorch Code Sections -------------------------------------------------- const installCode_pt = ` @@ -625,8 +627,8 @@ python3 fedavg_cifar10_tf_job.py const frameworks = [ { id: "pytorch", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/getting_started/pt/nvflare_pt_getting_started.ipynb", - github_link: "https://github.com/NVIDIA/NVFlare/blob/main/examples/getting_started/pt/nvflare_pt_getting_started.ipynb", + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/pt/nvflare_pt_getting_started.ipynb`, + github_link: `https://github.com/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/pt/nvflare_pt_getting_started.ipynb`, sections: [ { id: "install-pytorch", @@ -679,8 +681,8 @@ const frameworks = [ }, { id: "lightning", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/getting_started/pt/nvflare_lightning_getting_started.ipynb", - github_link: "https://github.com/NVIDIA/NVFlare/blob/main/examples/getting_started/pt/nvflare_lightning_getting_started.ipynb", + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/pt/nvflare_lightning_getting_started.ipynb`, + github_link: `https://github.com/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/pt/nvflare_lightning_getting_started.ipynb`, sections: [ { id: "install-lightning", @@ -733,8 +735,8 @@ const frameworks = [ }, { id: "tensorflow", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/getting_started/tf/nvflare_tf_getting_started.ipynb", - github_link: "https://github.com/NVIDIA/NVFlare/blob/main/examples/getting_started/tf/nvflare_tf_getting_started.ipynb", + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/tf/nvflare_tf_getting_started.ipynb`, + github_link: `https://github.com/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/tf/nvflare_tf_getting_started.ipynb`, sections: [ { id: "install-tensorflow", @@ -838,7 +840,7 @@ const frameworks = [ - + NVIDIA logo @@ -848,7 +850,7 @@ const frameworks = [ - +
- + NVIDIA logo NVIDIA FLARE diff --git a/web/src/components/gettingStarted.astro b/web/src/components/gettingStarted.astro index f9101ca406..1738f9a651 100644 --- a/web/src/components/gettingStarted.astro +++ b/web/src/components/gettingStarted.astro @@ -1,4 +1,6 @@ --- +const gh_branch = import.meta.env.PUBLIC_GH_BRANCH; + const walkthrough = [ { id: "step1", @@ -17,7 +19,7 @@ const walkthrough = [ description: "Use the ModelController API to write a federated control flow for FedAvg.", button_text: "View Source", - link: "https://github.com/NVIDIA/NVFlare/blob/main/nvflare/app_common/workflows/fedavg.py", + link: `https://github.com/NVIDIA/NVFlare/blob/${gh_branch}/nvflare/app_common/workflows/fedavg.py`, video: "https://developer.download.nvidia.com/assets/Clara/flare/Flare%202.5.0%20Getting%20Started%20-%20Part%202%20-%20Server.mp4", }, { @@ -27,7 +29,7 @@ const walkthrough = [ description: "Use the Client API to write local training code for a PyTorch CIFAR-10 trainer.", button_text: "View Source", - link: "https://github.com/NVIDIA/NVFlare/blob/main/examples/getting_started/pt/src/cifar10_fl.py", + link: `https://github.com/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/pt/src/cifar10_fl.py`, video: "https://developer.download.nvidia.com/assets/Clara/flare/Flare%202.5.0%20Getting%20Started%20-%20Part%203%20-%20Client.mp4", }, { @@ -37,7 +39,7 @@ const walkthrough = [ description: "Formulate the NVIDIA FLARE job and simulate a federated run with the multi-process simulator.", button_text: "View Notebook", - link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/getting_started/pt/nvflare_pt_getting_started.ipynb", + link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/getting_started/pt/nvflare_pt_getting_started.ipynb`, video: "https://developer.download.nvidia.com/assets/Clara/flare/Flare%202.5.0%20Getting%20Started%20-%20Part%204%20-%20Job.mp4", }, { @@ -47,7 +49,7 @@ const walkthrough = [ description: "Learn more about NVIDIA FLARE and taking federated learning from simulation to the real world.", button_text: "Tutorial Catalog", - link: "/NVFlare/catalog", + link: "catalog", video: "https://developer.download.nvidia.com/assets/Clara/flare/Flare%202.5.0%20Getting%20Started%20-%20Part%205%20-%20Next%20Steps.mp4", }, ]; @@ -70,7 +72,7 @@ const km = [ description: "What is Kaplan-Meier Analysis and how can we adapt it to a federated setting?", button_text: "View Source", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/kaplan-meier-he", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/kaplan-meier-he`, video: "https://developer.download.nvidia.com/assets/Clara/flare/Flare%202.5.0%20KM%20-%20Part%202%20-%20Kaplan%20Meier.mp4", }, { @@ -80,7 +82,7 @@ const km = [ description: "Dive into an end-to-end implementation of federated Kaplan-Meier.", button_text: "View Source", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/kaplan-meier-he/src", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/kaplan-meier-he/src`, video: "https://developer.download.nvidia.com/assets/Clara/flare/Flare%202.5.0%20KM%20-%20Part%203%20-%20Implementation.mp4", }, ]; diff --git a/web/src/components/hero.astro b/web/src/components/hero.astro index f03a253016..e55fd687cd 100644 --- a/web/src/components/hero.astro +++ b/web/src/components/hero.astro @@ -1,6 +1,9 @@ --- import NvidiaLogo from '../images/nvidia_eye.png' import NvflareAnimation from '../images/nvflare_graphic_animation.mp4' + +const gh_branch = import.meta.env.PUBLIC_GH_BRANCH; +const base_url = import.meta.env.BASE_URL; ---
@@ -9,6 +12,29 @@ import NvflareAnimation from '../images/nvflare_graphic_animation.mp4'
+ + + + + + + @@ -22,7 +48,7 @@ import NvflareAnimation from '../images/nvflare_graphic_animation.mp4' class="inline-flex space-x-6"> - Just shipped v2.5.0 + Just Released Documentation Tutorial Catalog diff --git a/web/src/components/overview.astro b/web/src/components/overview.astro index 164d60a43b..582791c3c3 100644 --- a/web/src/components/overview.astro +++ b/web/src/components/overview.astro @@ -9,7 +9,7 @@ const features = [ `, description: "Provides user-friendly APIs for client and server programming. Use the Simulator and POC modes to quickly simulate a federated learning application.", - link:"/NVFlare/research", + link:"research", }, { id: "framework-agnostic", @@ -20,7 +20,7 @@ const features = [ `, description: "Designed as a federated computing platform agnostic to frameworks, workloads, datasets, and domains. Federated learning apps are built on this foundation.", - link: "/NVFlare/agnostic", + link: "agnostic", }, { id: "open-arch", @@ -42,7 +42,7 @@ const features = [ `, description: "Prioritizes security with secure provisioning, event-based security plugins, authorization control, data filtering, audit logs, and advanced privacy-preserving algorithms.", - link: "/NVFlare/security", + link: "security", }, { id: "integration", diff --git a/web/src/components/series.astro b/web/src/components/series.astro index eb1b0d3fc7..2e83dd5a00 100644 --- a/web/src/components/series.astro +++ b/web/src/components/series.astro @@ -1,4 +1,6 @@ --- +const gh_branch = import.meta.env.PUBLIC_GH_BRANCH; + const series_100 = { id: "100", title: "FLARE 100: Core", @@ -12,7 +14,7 @@ const series_100 = { title: "Getting Started", tags: ["beg.", "pytorch", "lightning", "sklearn", "tensorflow"], description: "Getting started examples using the Client API, Model Controller API, and Job API for different frameworks.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/getting_started" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/getting_started` }, { title: "Client API", @@ -36,19 +38,19 @@ const series_100 = { title: "ML/DL to FL", tags: ["beg.", "numpy", "pytorch", "lightning", "tensorflow"], description: "Example for converting Deep Learning (DL) code to Federated Learning (FL) using the Client API. Configurations for numpy, pytorch, lighting, and tensorflow.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/ml-to-fl" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/ml-to-fl` }, { title: "Hello FedAvg", tags: ["beg.", "pytorch"], description: "Demonstrate flexibility of the ModelController API, and show how to write a Federated Averaging workflow with early stopping, model selection, and saving and loading.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-fedavg/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-fedavg/README.md` }, { title: "Job API Examples", tags: ["int.", "pytorch", "lightning", "sklearn", "tensorflow"], description: "Various examples using the Job API for different workflows and frameworks.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/job_api" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/job_api` }, ] }, @@ -61,21 +63,21 @@ const series_100 = { title: "Intro to the FL Simulator", tags: ["beg.", "tools"], description: "Use the NVIDIA FLARE Simulator to run a local simulation with multi-process settings within a single computer, offering quick response and debugging.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/tutorials/flare_simulator.ipynb", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/tutorials/flare_simulator.ipynb" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/tutorials/flare_simulator.ipynb`, + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/tutorials/flare_simulator.ipynb` }, { title: "POC Mode", tags: ["beg.", "tools"], description: "Proof-of-concept mode to simulate real-world deployment on a local host with different processes represent server, clients, and an admin console.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/tutorials/setup_poc.ipynb" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/tutorials/setup_poc.ipynb` }, { title: "FLARE API", tags: ["beg.", "tools"], description: "Manage system and jobs programmatically with the python FLARE API.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/tutorials/flare_api.ipynb", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/tutorials/flare_api.ipynb" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/tutorials/flare_api.ipynb`, + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/tutorials/flare_api.ipynb` }, { title: "Operating NVIDIA FLARE: Admin Client, Commands, FLARE API", @@ -151,55 +153,55 @@ const series_200 = { title: "Step-by-Step CIFAR10 Examples", tags: ["beg.", "algorithm", "pytorch", "dl"], description: "Step-by-step examples series with CIFAR-10 (image data) to showcase different NVIDIA FLARE features, workflows, and APIs.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/step-by-step/cifar10" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/step-by-step/cifar10` }, { title: "Step-by-Step HIGGS Examples", tags: ["beg.", "algorithm", "pandas", "sklearn", "xgboost"], description: "Step-by-step examples series with HIGGS (tabular data) to showcase different NVIDIA FLARE features, workflows, and APIs.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/step-by-step/higgs" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/step-by-step/higgs` }, { title: "Hello FedAvg", tags: ["beg.", "algorithm", "pytorch", "dl"], description: "Example using the FedAvg workflow to implement Federated Averaging.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-fedavg/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-fedavg/README.md` }, { title: "Hello Numpy Cross-Site Validation", tags: ["beg.", "algorithm", "numpy"], description: "Example using the CrossSiteEval workflow for cross site evaluation. Demonstrate option to use previous results without training workflow.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-numpy-cross-val/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-numpy-cross-val/README.md` }, { title: "Hello Cyclic Weight Transfer", tags: ["beg.", "algorithm", "tensorflow", "dl"], description: "Example using the CyclicController workflow to implement Cyclic Weight Transfer.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-cyclic/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-cyclic/README.md` }, { title: "Simulated Federated Learning with CIFAR-10", tags: ["int.", "algorithm", "simulator", "pytorch", "dl"], description: "Running FedAvg, FedProx, FedOpt, and SCAFFOLD algorithms using the FL simulator.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/cifar10/cifar10-sim/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/cifar10/cifar10-sim/README.md` }, { title: "TensorFlow Algorithms and Examples", tags: ["adv.", "algorithm", "tensorflow"], description: "FedOpt, FedProx, Scaffold implementations for Tensorflow.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/job_api/tf" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/job_api/tf` }, { title: "Financial Application with Federated XGBoost Methods", tags: ["adv.", "algorithm", "xgboost", "finance"], description: "Example using XGBoost in vertical and horizontal approaches to train a federated model to perform fraud detection with a finance dataset.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/finance" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/finance` }, { title: "Federated Learning Research", tags: ["adv.", "algorithm"], description: "Collection of research work for Federated Learning algorithms implemented with FLARE.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research` }, ] }, @@ -212,43 +214,43 @@ const series_200 = { title: "BioNemo example for Drug Discovery", tags: ["adv.", "algorithm", "nemo", "healthcare"], description: "Running BioNeMo (NVIDIA's generative AI platform for drug discovery) in a federated learning environment using NVIDIA FLARE.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/bionemo" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/bionemo` }, { title: "Federated Learning for Prostate Segmentation from Multi-source Data", tags: ["adv.", "algorithm", "healthcare", "monai", "dl"], description: "Example of training a multi-institutional prostate segmentation model using FedAvg, FedProx, and Ditto.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/prostate/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/prostate/README.md` }, { title: "NVFlare + MONAI integration", tags: ["adv.", "algorithm", "healthcare", "monai", "dl"], description: "Using NVIDIA FLARE to train a 3D medical image analysis model using federated averaging (FedAvg) and MONAI Bundle.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/integration/monai/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/integration/monai/README.md` }, { title: "Federated Learning with Differential Privacy for BraTS18 segmentation", tags: ["adv.", "algorithm", "healthcare", "dp", "monai", "dl"], description: "Illustrates the use of differential privacy for training brain tumor segmentation models using federated learning.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/brats18/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/brats18/README.md` }, { title: "Federated GNN: Protein Classification", tags: ["adv.", "algorithm", "healthcare", "pytorch", "dl"], description: "Example using GNNs for Protein Classification using PPI dataset using GraphSAGE.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning` }, { title: "End-to-End Federated XGBoost for Financial Credit Card Detection", tags: ["adv.", "algorithm", "xgboost", "finance"], description: "Show the end-to-end process of feature engineering, pre-processing and training in federated settings. You can use FLARE to perform federated ETL and then training.", - link: "https://github.com/NVIDIA/NVFlare/tree/5fc5ff31f35be63330dec38e1c4e80a6f84586ed/examples/advanced/finance-end-to-end" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/finance-end-to-end` }, { title: "Federated GNN: Financial Transaction Classification", tags: ["adv.", "algorithm", "finance", "pytorch", "dl"], description: "Example using GNNs for Financial Transaction Classification with Elliptic++ dataset using GraphSAGE.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning` }, ] }, @@ -269,26 +271,26 @@ const series_200 = { tags: ["int.", "algorithm", "healthcare", "he", "analytics"], description: "Kaplan-Meier survival analysis in federated setting without and with secure features via time-binning and Homomorphic Encryption (HE).", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/kaplan-meier-he", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/kaplan-meier-he`, }, { title: "Federated Learning with Differential Privacy for BraTS18 segmentation", tags: ["adv.", "algorithm", "healthcare", "dp", "monai", "dl"], description: "Illustrates the use of differential privacy for training brain tumor segmentation models using federated learning.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/brats18/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/brats18/README.md` }, { title: "Real-world Federated Learning with CIFAR-10", tags: ["int.", "algorithm", "poc", "pytorch", "learner", "dl", "he"], description: "Provisioning secure workspace and running FedAvg with streaming of TensorBoard metrics to the server during training and homomorphic encryption.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/cifar10/cifar10-real-world/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/cifar10/cifar10-real-world/README.md` }, { title: "Secure Federated XGBoost with Homomorphic Encryption", tags: ["adv.", "algorithm", "xgboost", "he"], description: "Federated secure training with XGBoost using homomorphic encryption.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/xgboost_secure", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/xgboost_secure`, }, ] } @@ -412,7 +414,7 @@ const series_list = [ To dive deeper into what NVIDIA FLARE has to offer, explore our full catalog of various tutorials and examples showcasing everything from the core features to advanced applications.

-->
Tutorial Catalog -> diff --git a/web/src/components/tutorials.astro b/web/src/components/tutorials.astro index d763e831c4..b3a0ea51f3 100644 --- a/web/src/components/tutorials.astro +++ b/web/src/components/tutorials.astro @@ -1,38 +1,40 @@ --- import GoogleColab from '../images/google_colab.svg.png' +const gh_branch = import.meta.env.PUBLIC_GH_BRANCH; +const base_url = import.meta.env.BASE_URL; const highlights = [ { title: "LLM Tuning via HuggingFace SFT Trainer", tags: ["adv.", "algorithm", "huggingface", "llm"], description: "Example for using NVIDIA FLARE with a HuggingFace trainer for LLM tuning tasks.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/llm_hf" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/llm_hf` }, { title: "Survival Analysis with Federated Kaplan-Meier", tags: ["int.", "algorithm", "healthcare", "client-api", "model-controller", "he", "analytics"], description: "Kaplan-Meier survival analysis in federated setting without and with secure features via time-binning and Homomorphic Encryption (HE).", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/kaplan-meier-he", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/kaplan-meier-he`, }, { title: "Real-world Federated Learning with CIFAR-10", tags: ["int.", "algorithm", "poc", "pytorch", "learner", "dl", "he"], description: "Provisioning secure workspace and running FedAvg with streaming of TensorBoard metrics to the server during training and homomorphic encryption.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/cifar10/cifar10-real-world/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/cifar10/cifar10-real-world/README.md` }, { title: "Financial Application with Federated XGBoost Methods", tags: ["adv.", "algorithm", "xgboost", "finance"], description: "Example using XGBoost in vertical and horizontal approaches to train a federated model to perform fraud detection with a finance dataset.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/finance" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/finance` }, { title: "Parameter Efficient Fine Turning", tags: ["adv.", "algorithm", "nemo", "llm"], description: "Example utilizing NeMo's PEFT methods to adapt a LLM to a downstream task.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/integration/nemo/examples/peft" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/integration/nemo/examples/peft` }, ] @@ -41,28 +43,28 @@ const tutorials = [ title: "Intro to the FL Simulator", tags: ["beg.", "tools"], description: "Use the NVIDIA FLARE Simulator to run a local simulation with multi-process settings within a single computer, offering quick response and debugging.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/tutorials/flare_simulator.ipynb", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/tutorials/flare_simulator.ipynb" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/tutorials/flare_simulator.ipynb`, + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/tutorials/flare_simulator.ipynb` }, { title: "POC Mode", tags: ["beg.", "tools"], description: "Proof-of-concept mode to simulate real-world deployment on a local host with different processes represent server, clients, and an admin console.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/tutorials/setup_poc.ipynb" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/tutorials/setup_poc.ipynb` }, { title: "FLARE API", tags: ["beg.", "tools"], description: "Manage system and jobs programmatically with the python FLARE API.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/tutorials/flare_api.ipynb", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/tutorials/flare_api.ipynb" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/tutorials/flare_api.ipynb`, + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/tutorials/flare_api.ipynb` }, { title: "Job CLI", tags: ["beg.", "tools"], description: "Job CLI for options to create and submit jobs from a command line interface in POC or production environments.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/tutorials/job_cli.ipynb", - colab_link: "https://colab.research.google.com/github/NVIDIA/NVFlare/blob/main/examples/tutorials/job_cli.ipynb" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/tutorials/job_cli.ipynb`, + colab_link: `https://colab.research.google.com/github/NVIDIA/NVFlare/blob/${gh_branch}/examples/tutorials/job_cli.ipynb` }, { title: "Operating NVIDIA FLARE: Admin Client, Commands, FLARE API", @@ -75,19 +77,19 @@ const tutorials = [ title: "FL Experiment Tracking with TensorBoard Streaming", tags: ["int.", "tools", "pytorch"], description: "Example integrating NVIDIA FLARE with TensorBoard streaming capability from clients to the server.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/experiment-tracking/tensorboard/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/experiment-tracking/tensorboard/README.md` }, { title: "FL Experiment Tracking with MLflow", tags: ["int.", "tools", "pytorch"], description: "Example integrating NVIDIA FLARE with MLflow streaming capability from clients to the server.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/experiment-tracking/mlflow/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/experiment-tracking/mlflow/README.md` }, { title: "FL Experiment Tracking with Weights and Biases", tags: ["int.", "tools", "pytorch"], description: "Example integrating NVIDIA FLARE with Weights and Biases streaming capability from clients to the server.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/experiment-tracking/wandb/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/experiment-tracking/wandb/README.md` }, { title: "Containerized Deployment with Docker", @@ -142,328 +144,328 @@ const tutorials = [ title: "Federated Policies", tags: ["adv.", "deployment"], description: "Example to demonstrate the federated site policies for authorization, resource and data privacy management.", - link: "https://github.com/NVIDIA/NVFlare/blob/main/examples/advanced/federated-policies/README.rst" + link: `https://github.com/NVIDIA/NVFlare/blob/${gh_branch}/examples/advanced/federated-policies/README.rst` }, { title: "Custom Authentication", tags: ["adv.", "deployment"], description: "Example to demonstrate the custom authentication policy and secure mode.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/custom_authentication/README.rst" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/custom_authentication/README.rst` }, { title: "Job-Level Authorization", tags: ["adv.", "deployment"], description: "Example to demonstrate the job-level authorization policy and secure mode.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/job-level-authorization/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/job-level-authorization/README.md` }, { title: "Federated Learning Hub", tags: ["adv.", "deployment"], description: "Allow hierarchical interaction between several levels of NVIDIA FLARE FL systems, e.g. Tier-1 (hub) and Tier-2 (sub-systems).", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/fl_hub/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/fl_hub/README.md` }, { title: "Getting Started", tags: ["beg.", "algorithm", "client-api", "model-controller", "job-api", "pytorch", "lightning", "sklearn", "tensorflow"], description: "Getting started examples using the Client API, Model Controller API, and Job API for different frameworks.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/getting_started" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/getting_started` }, { title: "Step-by-Step CIFAR10 Examples", tags: ["beg.", "algorithm", "pytorch", "dl"], description: "Step-by-step examples series with CIFAR-10 (image data) to showcase different NVIDIA FLARE features, workflows, and APIs.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/step-by-step/cifar10" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/step-by-step/cifar10` }, { title: "Step-by-Step HIGGS Examples", tags: ["beg.", "algorithm", "pandas", "sklearn", "xgboost"], description: "Step-by-step examples series with HIGGS (tabular data) to showcase different NVIDIA FLARE features, workflows, and APIs.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/step-by-step/higgs" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/step-by-step/higgs` }, { title: "ML/DL to FL", tags: ["beg.", "algorithm", "client-api", "numpy", "pytorch", "lightning", "tensorflow"], description: "Example for converting Deep Learning (DL) code to Federated Learning (FL) using the Client API. Configurations for numpy, pytorch, lighting, and tensorflow.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/ml-to-fl" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/ml-to-fl` }, { title: "Hello FedAvg", tags: ["beg.", "algorithm", "pytorch", "model-controller"], description: "Example using the FedAvg workflow to implement Federated Averaging.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-fedavg/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-fedavg/README.md` }, { title: "Hello Numpy Cross-Site Validation", tags: ["beg.", "algorithm", "numpy", "model-controller"], description: "Example using the CrossSiteEval workflow for cross site evaluation. Demonstrate option to use previous results without training workflow.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-numpy-cross-val/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-numpy-cross-val/README.md` }, { title: "Hello Cyclic Weight Transfer", tags: ["beg.", "algorithm", "tensorflow", "model-controller", "dl"], description: "Example using the CyclicController workflow to implement Cyclic Weight Transfer.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-cyclic/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-cyclic/README.md` }, { title: "Hello PyTorch", tags: ["beg.", "algorithm", "pytorch", "model-controller", "dl"], description: "Example of an image classifier with FedAvg using PyTorch as the deep learning training framework.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-pt/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-pt/README.md` }, { title: "Hello TensorFlow", tags: ["beg.", "algorithm", "tensorflow", "model-controller", "dl"], description: "Example of an image classifier with FedAvg using TensorFlow as the deep learning training framework.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-tf/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-tf/README.md` }, { title: "Job API Examples", tags: ["int.", "algorithm", "job-api", "pytorch", "lightning", "sklearn", "tensorflow"], description: "Various examples using the Job API for different workflows and frameworks.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/job_api" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/job_api` }, { title: "Simulated Federated Learning with CIFAR-10", tags: ["int.", "algorithm", "simulator", "pytorch", "learner", "model-controller", "dl"], description: "Running FedAvg, FedProx, FedOpt, and SCAFFOLD algorithms using the FL simulator.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/cifar10/cifar10-sim/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/cifar10/cifar10-sim/README.md` }, { title: "Real-world Federated Learning with CIFAR-10", tags: ["int.", "algorithm", "poc", "pytorch", "learner", "dl", "he"], description: "Provisioning secure workspace and running FedAvg with streaming of TensorBoard metrics to the server during training and homomorphic encryption.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/cifar10/cifar10-real-world/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/cifar10/cifar10-real-world/README.md` }, { title: "Logistic Regression with Newton-Raphton", tags: ["int.", "algorithm", "client-api", "model-controller", "ml"], description: "Federated binary classification via logistic regression with second-order Newton-Raphson optimization.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/lr-newton-raphson", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/lr-newton-raphson`, }, { title: "Survival Analysis with Federated Kaplan-Meier", tags: ["int.", "algorithm", "healthcare", "client-api", "model-controller", "he", "analytics"], description: "Kaplan-Meier survival analysis in federated setting without and with secure features via time-binning and Homomorphic Encryption (HE).", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/kaplan-meier-he", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/kaplan-meier-he`, }, { title: "Swarm Learning", tags: ["int.", "algorithm", "pytorch", "learner", "dl"], description: "Example using Swarm Learning and Client-Controlled Cross-site Evaluation workflows.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/swarm_learning", + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/swarm_learning`, }, { title: "Federated Linear Model with Scikit-learn", tags: ["int.", "algorithm", "sklearn", "ml"], description: "Using scikit-learn for federated linear model learning on tabular data.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/sklearn-linear/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/sklearn-linear/README.md` }, { title: "Federated K-Means Clustering with Scikit-learn", tags: ["int.", "algorithm", "sklearn", "ml"], description: "Using scikit-learn and k-Means for federated clustering on tabular data.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/sklearn-kmeans/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/sklearn-kmeans/README.md` }, { title: "Federated SVM with Scikit-learn", tags: ["int.", "algorithm", "sklearn", "ml"], description: "Using scikit-learn and SVM for federated model learning on tabular data.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/sklearn-svm/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/sklearn-svm/README.md` }, { title: "Histogram-based FL for XGBoost", tags: ["adv.", "algorithm", "xgboost", "ml"], description: "Histogram-based algorithm for XGBoost.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/xgboost/histogram-based/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/xgboost/histogram-based/README.md` }, { title: "Tree-based Federated Learning for XGBoost", tags: ["adv.", "algorithm", "xgboost", "ml"], description: "Tree-based algorithms including bagging and cyclic approaches for XGBoost.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/xgboost/tree-based/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/xgboost/tree-based/README.md` }, { title: "Federated Learning for Random Forest based on XGBoost", tags: ["adv.", "algorithm", "xgboost", "ml"], description: "Example of using NVIDIA FLARE with scikit-learn and Random Forest.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/random_forest/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/random_forest/README.md` }, { title: "Federated Vertical XGBoost", tags: ["adv.", "algorithm", "xgboost", "ml"], description: "Example using Private Set Intersection and XGBoost on vertically split HIGGS data.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/vertical_xgboost/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/vertical_xgboost/README.md` }, { title: "NVFlare + MONAI integration", tags: ["adv.", "algorithm", "healthcare", "monai", "dl"], description: "Using NVIDIA FLARE to train a 3D medical image analysis model using federated averaging (FedAvg) and MONAI Bundle.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/integration/monai/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/integration/monai/README.md` }, { title: "Federated Learning with Differential Privacy for BraTS18 segmentation", tags: ["adv.", "algorithm", "healthcare", "dp", "monai", "dl"], description: "Illustrates the use of differential privacy for training brain tumor segmentation models using federated learning.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/brats18/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/brats18/README.md` }, { title: "Federated Learning for Prostate Segmentation from Multi-source Data", tags: ["adv.", "algorithm", "healthcare", "monai", "dl"], description: "Example of training a multi-institutional prostate segmentation model using FedAvg, FedProx, and Ditto.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/prostate/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/prostate/README.md` }, { title: "Federated Statistics for Images", tags: ["adv.", "algorithm", "pandas", "analytics"], description: "Example of gathering local image histogram to compute the global dataset histograms.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/federated-statistics/image_stats/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/federated-statistics/image_stats/README.md` }, { title: "Federated Statistics for DataFrame", tags: ["adv.", "algorithm", "pandas", "analytics"], description: "Example of gathering local statistics summary from Pandas DataFrame to compute the global dataset statistics.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/federated-statistics/df_stats/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/federated-statistics/df_stats/README.md` }, { title: "MONAI & NVIDIA FLARE Integration with Experiment Tracking", tags: ["adv.", "algorithm", "experiment-tracking", "monai"], description: "Example using NVIDIA FLARE and MONAI integration with experiment tracking streaming from clients to server.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/integration/monai/examples/spleen_ct_segmentation_local/README.md#51-experiment-tracking-with-mlflow" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/integration/monai/examples/spleen_ct_segmentation_local/README.md#51-experiment-tracking-with-mlflow` }, { title: "KeyCloak Site Authentication Integration", tags: ["adv.", "algorithm", "security"], description: "Demonstrate KeyCloak integration for supporting site-specific authentication.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/keycloak-site-authentication/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/keycloak-site-authentication/README.md` }, { title: "NLP-NER", tags: ["adv.", "algorithm", "huggingface", "dl"], description: "Illustrates both BERT and GPT-2 models from Hugging Face on a Named Entity Recognition (NER) task using the NCBI disease dataset.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/nlp-ner/README.md" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/nlp-ner/README.md` }, { title: "Parameter Efficient Fine Turning", tags: ["adv.", "algorithm", "nemo", "llm"], description: "Example utilizing NeMo's PEFT methods to adapt a LLM to a downstream task.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/integration/nemo/examples/peft" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/integration/nemo/examples/peft` }, { title: "Prompt-Tuning Example", tags: ["adv.", "algorithm", "nemo", "llm"], description: "Example for using NVIDIA FLARE with NeMo for LLM prompt learning.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/integration/nemo/examples/prompt_learning" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/integration/nemo/examples/prompt_learning` }, { title: "Supervised Fine Tuning (SFT)", tags: ["adv.", "algorithm", "nemo", "llm"], description: "Example to fine-tune all parameters of a LLM on supervised data.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/integration/nemo/examples/supervised_fine_tuning" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/integration/nemo/examples/supervised_fine_tuning` }, { title: "LLM Tuning via HuggingFace SFT Trainer", tags: ["adv.", "algorithm", "huggingface", "llm"], description: "Example for using NVIDIA FLARE with a HuggingFace trainer for LLM tuning tasks.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/llm_hf" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/llm_hf` }, { title: "Federated GNN: Protein Classification", tags: ["adv.", "algorithm", "healthcare", "pytorch", "dl"], description: "Example using GNNs for Protein Classification using PPI dataset using GraphSAGE.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning` }, { title: "Federated GNN: Financial Transaction Classification", tags: ["adv.", "algorithm", "finance", "pytorch", "dl"], description: "Example using GNNs for Financial Transaction Classification with Elliptic++ dataset using GraphSAGE.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/gnn#federated-gnn-on-graph-dataset-using-inductive-learning` }, { title: "Financial Application with Federated XGBoost Methods", tags: ["adv.", "algorithm", "xgboost", "finance"], description: "Example using XGBoost in vertical and horizontal approaches to train a federated model to perform fraud detection with a finance dataset.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/finance" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/finance` }, { title: "BioNemo example for Drug Discovery", tags: ["adv.", "algorithm", "nemo", "healthcare"], description: "Running BioNeMo (NVIDIA's generative AI platform for drug discovery) in a federated learning environment using NVIDIA FLARE.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/bionemo" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/bionemo` }, { title: "Hierarchical Federated Statistics", tags: ["adv.", "algorithm", "analytics"], description: "Show to generate hierarchical statistics for data that can be represented as Pandas Data Frame.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/federated-statistics/hierarchical_stats" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/federated-statistics/hierarchical_stats` }, { title: "FedAvg Early Stopping", tags: ["int.", "algorithm", "model-controller", "pytorch"], description: "Demonstrate flexibility of the ModelController API, and show how to write a Federated Averaging workflow with early stopping, model selection, and saving and loading.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/hello-world/hello-fedavg" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/hello-world/hello-fedavg` }, { title: "TensorFlow Algorithms and Examples", tags: ["adv.", "algorithm", "model-controller", "tensorflow"], description: "FedOpt, FedProx, Scaffold implementations for Tensorflow.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/job_api/tf" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/job_api/tf` }, { title: "End-to-End Federated XGBoost for Financial Credit Card Detection", tags: ["adv.", "algorithm", "xgboost", "finance"], description: "Show the end-to-end process of feature engineering, pre-processing and training in federated settings. You can use FLARE to perform federated ETL and then training.", - link: "https://github.com/NVIDIA/NVFlare/tree/5fc5ff31f35be63330dec38e1c4e80a6f84586ed/examples/advanced/finance-end-to-end" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/examples/advanced/finance-end-to-end` }, { title: "Auto-FedRL", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Efficient reinforcement learning (RL)-based federated hyperparameter optimization algorithm.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/auto-fed-rl" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/auto-fed-rl` }, { title: "ConDistFL", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Conditional Distillation for Federated Learning from Partially Annotated Data.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/condist-fl" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/condist-fl` }, { title: "FedBN", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Federated Learning on Non-IID Features via Local Batch Normalization designed to address the feature shift problem when aggregating models across different data distributions.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/fed-bn" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/fed-bn` }, { title: "FedBPT", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Efficient Federated Black-box Prompt Tuning for Large Language Models.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/fed-bpt" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/fed-bpt` }, { title: "FedCE", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Fair Federated Medical Image Segmentation via Client Contribution Estimation.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/fed-ce" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/fed-ce` }, { title: "FedSM", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Personalized Federated Learning with FedSM Alogithrm. Closing the Generalization Gap of Cross-silo Federated Medical Image Segmentation.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/fed-sm" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/fed-sm` }, { title: "One-shot Vertical Federated Learning", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Solve the communication bottleneck and the problem of limited overlapping samples simultaneously based on semi-supervised learning.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/one-shot-vfl" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/one-shot-vfl` }, { title: "Quantifying Data Leakage in Federated Learning", tags: ["adv.", "algorithm", "research", "pytorch"], description: "Present new ways to measure and visualize potential data leakage in FL.", - link: "https://github.com/NVIDIA/NVFlare/tree/main/research/quantifying-data-leakage" + link: `https://github.com/NVIDIA/NVFlare/tree/${gh_branch}/research/quantifying-data-leakage` }, ] @@ -518,7 +520,7 @@ const tag_list = [
- + Back to home @@ -535,7 +537,7 @@ const tag_list = [ To read more, visit our documentation and - GitHub. + GitHub.

diff --git a/web/src/pages/404.astro b/web/src/pages/404.astro index 7cd6ab2cdc..be1263507c 100644 --- a/web/src/pages/404.astro +++ b/web/src/pages/404.astro @@ -1,5 +1,7 @@ --- import Layout from "@layouts/Layout.astro"; + +const base_url = import.meta.env.BASE_URL; --- @@ -53,7 +55,7 @@ import Layout from "@layouts/Layout.astro";
- + Back to home diff --git a/web/src/pages/agnostic.astro b/web/src/pages/agnostic.astro index 62e9f739a8..2e3abca5fb 100644 --- a/web/src/pages/agnostic.astro +++ b/web/src/pages/agnostic.astro @@ -2,6 +2,7 @@ import Layout from "@layouts/Layout.astro"; import FrameworkAgnostic from '../images/framework_agnostic.png' +const base_url = import.meta.env.BASE_URL; --- @@ -11,7 +12,7 @@ import FrameworkAgnostic from '../images/framework_agnostic.png'
- + Back to home @@ -22,7 +23,7 @@ import FrameworkAgnostic from '../images/framework_agnostic.png'

NVIDIA FLARE is designed as a federated computing platform that is agnostic to frameworks, workloads, datasets, and domains. - View the Tutorial Catalog to see different examples in these categories. + View the Tutorial Catalog to see different examples in these categories.

framework agnostic diff --git a/web/src/pages/research.astro b/web/src/pages/research.astro index 795a92f8da..b67860330a 100644 --- a/web/src/pages/research.astro +++ b/web/src/pages/research.astro @@ -7,6 +7,8 @@ import MammographyGraphs from '../images/research/mammography_graphs.jpg' import Pancreas from '../images/research/pancreas.jpg' import Sun from '../images/research/sun.jpg' +const gh_branch = import.meta.env.PUBLIC_GH_BRANCH; +const base_url = import.meta.env.BASE_URL; const case_studies = [ { @@ -72,7 +74,7 @@ const case_studies = [
- + Back to home @@ -149,7 +151,7 @@ const case_studies = [

NVIDIA FLARE offers a lot of state of art research work, here is a quick view of the recent work. - Learn more in the research directory in our GitHub and view our list of Publications. + Learn more in the research directory in our GitHub and view our list of Publications.

NVFLARE research diff --git a/web/src/pages/security.astro b/web/src/pages/security.astro index fac52bac78..4152e620fc 100644 --- a/web/src/pages/security.astro +++ b/web/src/pages/security.astro @@ -3,6 +3,8 @@ import Layout from "@layouts/Layout.astro"; import DataPrivacy from '../images/data_privacy_arch.png' import FedAuth from '../images/fed_auth_arch.png' +const base_url = import.meta.env.BASE_URL; + --- @@ -10,7 +12,7 @@ import FedAuth from '../images/fed_auth_arch.png'