From 7539f9df8fdb8b70d177071ba58a0f5ae83954f6 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Nov 2024 16:30:09 +0000 Subject: [PATCH] Auto-generated: README.md and related content --- .static/_static/nvwb_mount_nim.png | Bin 17539 -> 0 bytes .static/_static/nvwb_mount_varrun.png | Bin 17623 -> 0 bytes README.md | 138 +++++++++++--------------- 3 files changed, 60 insertions(+), 78 deletions(-) delete mode 100644 .static/_static/nvwb_mount_nim.png delete mode 100644 .static/_static/nvwb_mount_varrun.png diff --git a/.static/_static/nvwb_mount_nim.png b/.static/_static/nvwb_mount_nim.png deleted file mode 100644 index bfbe2e71400fac03a82536e3c79fa3d2fd2124b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17539 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 Ogu&C*&t;ucLK6V(q<{PX diff --git a/README.md b/README.md index d0b9589..b83ad37 100644 --- a/README.md +++ b/README.md @@ -382,57 +382,22 @@ section. ## Configure this project -The project must be configured to work with local machine resources. +The project must be configured to work with your NGC API key.
Expand this section for a details on configuring this project. -1. Before running for the first time, project specific configuration - must be provided. Project configuration is done using the - *Environment* tab from the left-hand panel. +1. Before running for the first time, your NGC personal key must be + configured in Workbench. This is done using the *Environment* tab + from the left-hand panel. ![AI Workbench Side Menu](.static/_static/nvwb_left_menu.png) -2. Scroll down to the **Variables** section and find *NGC_HOME* entry. - It should be set to something like `~/.cache/nvidia-nims`. The value - here is used by workbench. This same location also appears in the - **Mounts** section that mounts this directory into the container. - -3. Scroll down to the **Secrets** section and find the *NGC_API_KEY* +2. Scroll down to the **Secrets** section and find the *NGC_API_KEY* entry. Press *Configure* and provide the personal key for NGC that - as generated earlier. - -4. Scroll down to the **Mounts** section. Here, there are two mounts to - configure. - - a\. Find the mount for /var/host-run. This is used to allow the - development environment to access the host’s Docker daemon in a - pattern called Docker out of Docker. Press **Configure** and provide - the directory `/var/run`. - - ![AI Workbench Mount Menu](.static/_static/nvwb_mount_varrun.png) - - b\. Find the mount for /home/workbench/.cache/nvidia-nims. This - mount is used as a runtime cache for NIMs where they can cache model - files. Sharing this cache with the host reduces disk usage and - network bandwidth. - - ![AI Workbench Mount Menu](.static/_static/nvwb_mount_nim.png) - - If you don't already have a nim cache, or you aren't sure, use the - following commands to create one at `/home/USER/.cache/nvidia-nims`. - - ``` bash - mkdir -p ~/.cache/nvidia-nims - chmod 2777 ~/.cache/nvidia-nims - ``` - -5. A rebuild will occur after these settings have been changed. - -6. Once the build completes with a *Build Ready* message, all - applications will be made available to you. + was generated earlier.
@@ -451,43 +416,60 @@ development environments. > **HINT:** For each application, the debug output can be monitored in > the UI by clicking the Output link in the lower left corner, selecting -> the dropdown menu, and choosing the application of interest. - -1. All applications bundled in this workspace can be controlled by - navigating to **Environment** \> **Applications**. - -2. First, toggle on *Milvus Vector DB* and *Redis*. Milvus is used as - an unstructured knowledge base and Redis is used to store - conversation histories. - -3. Once these services have been started, the *Chain Server* can safely - be started. This contains the custom LangChain code for performing - our reasoning chain. By default, it will use the local Milvus and - Redis, but use *ai.nvidia.com* for LLM and Embedding model - inferencing. - -4. **\[OPTIONAL\]:** Next, start the *LLM NIM*. The first time the LLM - NIM is started, it will take some time to download the image and the - optimized models. - - a\. During a long start, to confirm the LLM NIM is starting, the - progress can be observed by viewing the logs by using the *Output* - pane on the bottom left of the UI. - - b\. If the logs indicate an authentication error, that means the - provided *NGC_API_KEY* does not have access to the NIMs. Please - verify it was generated correctly and in an NGC organization that - has NVIDIA AI Enterprise support or trial. - - c\. If the logs appear to be stuck on `..........: Pull complete`. - `..........: Verifying complete`, or - `..........: Download complete`; this is all normal output from - Docker that the various layers of the container image have been - downloaded. - - d\. Any other failures here need to be addressed. - -5. Once the *Chain Server* is up, the *Chat Interface* can be started. +> the dropdown menu, and choosing the application of interest, or +> *Compose* for applications started via compose. + +1. The applications bundled in this workspace can be controlled by + navigating to two tabs: + + - **Environment** \> **Applications** + - **Environment** \> **Compose**. + +2. First, navigate to the **Environment** \> **Compose** tab. Using the + dropdown menu, select the option according to your GPU + configuration. All options, even 0 GPUs, will be able to run this + project succesfully. Below is an outline of the available options as + well as which services they will start up locally: + + - 0 GPUs + - *Milvus Vector DB* and *Redis*. Milvus is used as an + unstructured knowledge base and Redis is used to store + conversation histories. + - 1 GPU + - Everything from 0 GPUs + + - *LLM NIM*. The first time the LLM NIM is started, it will take + some time to download the image and the optimized models. a. + During a long start, to confirm the LLM NIM is starting, the + progress can be observed by viewing the logs by using the + *Output* pane on the bottom left of the UI. + + b\. If the logs indicate an authentication error, that means the + provided *NGC_API_KEY* does not have access to the NIMs. Please + verify it was generated correctly and in an NGC organization + that has NVIDIA AI Enterprise support or trial. + + c\. If the logs appear to be stuck on + `..........: Pull complete`. `..........: Verifying complete`, + or `..........: Download complete`; this is all normal output + from Docker that the various layers of the container image have + been downloaded. + + d\. Any other failures here need to be addressed. + - 2 GPU + - Everything from 0 and 1 GPUs + - *Embedding NIM* + - 3+ GPUs + - Everything from 0, 1, and 2 GPUs + - *Reranking NIM* + +3. Once the compose services have been started, the *Chain Server* can + safely be started. This contains the custom LangChain code for + performing our reasoning chain. By default, it will use the local + Milvus and Redis, but use *ai.nvidia.com* for LLM, Embedding, and + Reranking model inferencing. + +4. Once the *Chain Server* is up, the *Chat Frontend* can be started. Starting the interface will automatically open it in a browser window.