Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ services:
- "6379:6379"

page-elements:
image: ${YOLOX_IMAGE:-nvcr.io/nim/nvidia/nemoretriever-page-elements-v3}:${YOLOX_TAG:-1.7.0}
shm_size: 16gb
ports:
- "8000:8000"
Expand Down Expand Up @@ -46,7 +45,6 @@ services:
runtime: nvidia

graphic-elements:
image: ${YOLOX_GRAPHIC_ELEMENTS_IMAGE:-nvcr.io/nim/nvidia/nemoretriever-graphic-elements-v1}:${YOLOX_GRAPHIC_ELEMENTS_TAG:-1.6.0}
shm_size: 16gb
ports:
- "8003:8000"
Expand All @@ -71,7 +69,6 @@ services:
runtime: nvidia

table-structure:
image: ${YOLOX_TABLE_STRUCTURE_IMAGE:-nvcr.io/nim/nvidia/nemoretriever-table-structure-v1}:${YOLOX_TABLE_STRUCTURE_TAG:-1.6.0}
shm_size: 16gb
ports:
- "8006:8000"
Expand All @@ -96,7 +93,6 @@ services:
runtime: nvidia

ocr:
image: ${OCR_IMAGE:-nvcr.io/nim/nvidia/nemoretriever-ocr-v1}:${OCR_TAG:-1.2.1}
shm_size: 16gb
ports:
- "8009:8000"
Expand All @@ -121,7 +117,6 @@ services:

embedding:
# NIM ON
image: ${EMBEDDING_IMAGE:-nvcr.io/nim/nvidia/llama-3.2-nv-embedqa-1b-v2}:${EMBEDDING_TAG:-1.10.1}
shm_size: 16gb
ports:
- "8012:8000"
Expand All @@ -146,7 +141,6 @@ services:

reranker:
# NIM ON
image: ${RERANKER_IMAGE:-nvcr.io/nim/nvidia/llama-3.2-nv-rerankqa-1b-v2}:${RERANKER_TAG:-1.8.0}
shm_size: 16gb
ports:
- "8020:8000"
Expand All @@ -167,7 +161,6 @@ services:
- reranker

nemotron-parse:
image: ${NEMOTRON_PARSE_IMAGE:-nvcr.io/nim/nvidia/nemotron-parse}:${NEMOTRON_PARSE_TAG:-1.5.0}
shm_size: 16gb
ports:
- "8015:8000"
Expand All @@ -190,7 +183,6 @@ services:
- nemotron-parse

vlm:
image: ${VLM_IMAGE:-nvcr.io/nim/nvidia/nemotron-nano-12b-v2-vl}:${VLM_TAG:-1.5.0}
shm_size: 16gb
ports:
- "8018:8000"
Expand All @@ -215,7 +207,6 @@ services:
- vlm

audio:
image: ${AUDIO_IMAGE:-nvcr.io/nim/nvidia/parakeet-1-1b-ctc-en-us}:${AUDIO_TAG:-1.4.0}
shm_size: 2gb
ports:
- "8021:50051" # grpc
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/extraction/audio.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Use the following procedure to run the NIM locally.
3. Start the nv-ingest services with the `audio` profile. This profile includes the necessary components for audio processing. Use the following command. The `--profile audio` flag ensures that speech-specific services are launched. For more information, refer to [Profile Information](quickstart-guide.md#profile-information).

```shell
docker compose --profile retrieval --profile audio up
docker compose -f docker-compose.yaml -f release.yaml --profile retrieval --profile audio up
```

4. After the services are running, you can interact with nv-ingest by using Python.
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/extraction/nemoretriever-parse.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Use the following procedure to run the NIM locally.
- The --profile nemotron-parse flag ensures that vision-language retrieval services are launched. For more information, refer to [Profile Information](quickstart-guide.md#profile-information).

```shell
docker compose --profile nemotron-parse up
docker compose -f docker-compose.yaml -f release.yaml --profile nemotron-parse up
```

2. After the services are running, you can interact with nv-ingest by using Python.
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/extraction/nv-ingest-python-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ ingestor = ingestor.store(
```bash
# Set DATASET_ROOT before starting services
export DATASET_ROOT=/raid/my-project/nv-ingest-data
docker compose up -d
docker compose -f docker-compose.yaml -f release.yaml up -d
```

```python
Expand Down
12 changes: 9 additions & 3 deletions docs/docs/extraction/quickstart-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,14 @@ If you prefer, you can run on Kubernetes by using [our Helm chart](https://githu

`sudo nvidia-ctk runtime configure --runtime=docker --set-as-default`

6. Start core services. This example uses the retrieval profile. For more information about other profiles, see [Profile Information](#profile-information).
6. Start core services. This example uses the retrieval profile. For more information about other profiles, see [Profile Information](#profile-information).

`docker compose --profile retrieval up`
```shell
docker compose \
-f docker-compose.yaml \
-f release.yaml \
--profile retrieval up
```

!!! tip

Expand All @@ -61,12 +66,13 @@ If you prefer, you can run on Kubernetes by using [our Helm chart](https://githu
The default configuration may not fit on a single GPU for some hardware targets. If you are running on any of the following GPUs, use a `docker compose` override file to reduce VRAM usage:
- A100-SXM4-40GB
- A10G
Override files typically lower per-service memory allocation, batch sizes, or concurrency. This trades peak throughput for making the full pipeline runnable on the available GPU. To use an override file, include it in your `docker compose up` command by using a second `-f` flag after the base `docker-compose.yaml` file. The settings in the second file override the values that are set in the first file.
Override files typically lower per-service memory allocation, batch sizes, or concurrency. This trades peak throughput for making the full pipeline runnable on the available GPU. To use an override file, include it in your `docker compose up` command by adding an additional `-f` flag after `release.yaml`. The settings in later files override the values that are set in earlier files.

The following example uses an override file that contains settings that are optimized for an NVIDIA A100 GPU with 40GB of VRAM.
```shell
docker compose \
-f docker-compose.yaml \
-f release.yaml \
-f docker-compose.a100-40gb.yaml \
--profile retrieval up
```
Expand Down
22 changes: 17 additions & 5 deletions docs/docs/extraction/vlm-embed.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,30 @@ The model supports images that contain text, tables, charts, and infographics.

Use the following procedure to configure and run the multimodal embedding NIM locally.

1. Set the embedding model in your .env file. This tells NeMo Retriever extraction to use the Llama 3.2 Multimodal model instead of the default text-only embedding model.
1. Set the embedding model name in your `.env` file. This tells NeMo Retriever extraction to use the Llama 3.2 Multimodal model instead of the default text-only embedding model.

```
EMBEDDING_IMAGE=nvcr.io/nvidia/nemo-microservices/llama-3.2-nemoretriever-1b-vlm-embed-v1
EMBEDDING_TAG=1.7.0
EMBEDDING_NIM_MODEL_NAME=nvidia/llama-3.2-nemoretriever-1b-vlm-embed-v1
```

2. Start the NeMo Retriever extraction services. The multimodal embedding service is included by default.
2. Create a Docker Compose override file to swap the embedding NIM image.

Create `docker-compose.vlm-embed.yaml` with the following contents:

```yaml
services:
embedding:
image: nvcr.io/nvidia/nemo-microservices/llama-3.2-nemoretriever-1b-vlm-embed-v1:1.7.0
```

3. Start the NeMo Retriever extraction services.

```
docker compose --profile retrieval up
docker compose \
-f docker-compose.yaml \
-f release.yaml \
-f docker-compose.vlm-embed.yaml \
--profile retrieval up
```


Expand Down
31 changes: 31 additions & 0 deletions helm/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,34 @@ Create secret to access docker registry
{{- define "nv-ingest.ngcApiSecret" }}
{{- printf "%s" .Values.ngcApiSecret.password }}
{{- end }}

{{/*
Resolve NIM image ref/repo/tag from release.yaml.

release.yaml is intended to be passed as a Helm values file and contains:
x-nv-ingest-release:
nim:
<nimOperatorKey>:
ref: "repo:tag"
*/}}

{{- define "nv-ingest.release.nimRef" -}}
{{- $root := .root -}}
{{- $key := .key -}}
{{- $release := index $root.Values "x-nv-ingest-release" -}}
{{- if and $release (hasKey $release "nim") (hasKey (index $release "nim") $key) (hasKey (index (index $release "nim") $key) "ref") -}}
{{- index (index (index $release "nim") $key) "ref" -}}
{{- else -}}
{{- fail (printf "Missing required release.yaml value: x-nv-ingest-release.nim.%s.ref (pass -f release.yaml)" $key) -}}
{{- end -}}
{{- end -}}

{{- define "nv-ingest.release.nimRepository" -}}
{{- $ref := include "nv-ingest.release.nimRef" . -}}
{{- regexReplaceAll ":([^:]*)$" $ref "" -}}
{{- end -}}

{{- define "nv-ingest.release.nimTag" -}}
{{- $ref := include "nv-ingest.release.nimRef" . -}}
{{- regexReplaceAll "^.*:" $ref "" -}}
{{- end -}}
8 changes: 4 additions & 4 deletions helm/templates/audio.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.audio.image.repository }}:{{ .Values.nimOperator.audio.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "audio") }}"
pullSecret: "{{ index .Values.nimOperator.audio.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.audio.authSecret }}
storage:
Expand All @@ -24,16 +24,16 @@ metadata:
name: audio
spec:
image:
repository: {{ .Values.nimOperator.audio.image.repository }}
tag: {{ .Values.nimOperator.audio.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "audio") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "audio") }}
pullPolicy: IfNotPresent
pullSecrets:
{{ toYaml .Values.nimOperator.audio.image.pullSecrets | nindent 6 }}
authSecret: {{ .Values.nimOperator.audio.authSecret }}
storage:
nimCache:
name: audio
replicas: {{ .Values.nimOperator.nemotron_parse.replicas }}
replicas: {{ .Values.nimOperator.audio.replicas }}
resources:
{{ toYaml .Values.nimOperator.audio.resources | nindent 4 }}
tolerations:
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/llama-3.2-nv-embedqa-1b-v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.embedqa.image.repository }}:{{ .Values.nimOperator.embedqa.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "embedqa") }}"
pullSecret: "{{ index .Values.nimOperator.embedqa.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.embedqa.authSecret }}
storage:
Expand All @@ -24,8 +24,8 @@ metadata:
name: llama-32-nv-embedqa-1b-v2
spec:
image:
repository: {{ .Values.nimOperator.embedqa.image.repository }}
tag: {{ .Values.nimOperator.embedqa.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "embedqa") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "embedqa") }}
pullPolicy: {{ .Values.nimOperator.embedqa.image.pullPolicy }}
pullSecrets:
{{ toYaml .Values.nimOperator.embedqa.image.pullSecrets | nindent 6 }}
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/llama-3.2-nv-rerankqa-1b-v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.image.repository }}:{{ .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "llama_3_2_nv_rerankqa_1b_v2") }}"
pullSecret: "{{ index .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.authSecret }}
storage:
Expand All @@ -24,8 +24,8 @@ metadata:
name: llama-32-nv-rerankqa-1b-v2
spec:
image:
repository: {{ .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.image.repository }}
tag: {{ .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "llama_3_2_nv_rerankqa_1b_v2") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "llama_3_2_nv_rerankqa_1b_v2") }}
pullPolicy: {{ .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.image.pullPolicy }}
pullSecrets:
{{ toYaml .Values.nimOperator.llama_3_2_nv_rerankqa_1b_v2.image.pullSecrets | nindent 6 }}
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/nemoretriever-graphic-elements-v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.graphic_elements.image.repository }}:{{ .Values.nimOperator.graphic_elements.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "graphic_elements") }}"
pullSecret: "{{ index .Values.nimOperator.graphic_elements.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.graphic_elements.authSecret }}
storage:
Expand All @@ -24,8 +24,8 @@ metadata:
name: nemoretriever-graphic-elements-v1
spec:
image:
repository: {{ .Values.nimOperator.graphic_elements.image.repository }}
tag: {{ .Values.nimOperator.graphic_elements.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "graphic_elements") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "graphic_elements") }}
pullPolicy: {{ .Values.nimOperator.graphic_elements.image.pullPolicy }}
pullSecrets:
{{ toYaml .Values.nimOperator.graphic_elements.image.pullSecrets | nindent 6 }}
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/nemoretriever-ocr-v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.nemoretriever_ocr_v1.image.repository }}:{{ .Values.nimOperator.nemoretriever_ocr_v1.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "nemoretriever_ocr_v1") }}"
pullSecret: "{{ index .Values.nimOperator.nemoretriever_ocr_v1.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.nemoretriever_ocr_v1.authSecret }}
storage:
Expand All @@ -24,8 +24,8 @@ metadata:
name: nemoretriever-ocr-v1
spec:
image:
repository: {{ .Values.nimOperator.nemoretriever_ocr_v1.image.repository }}
tag: {{ .Values.nimOperator.nemoretriever_ocr_v1.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "nemoretriever_ocr_v1") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "nemoretriever_ocr_v1") }}
pullPolicy: {{ .Values.nimOperator.nemoretriever_ocr_v1.image.pullPolicy }}
pullSecrets: {{ toYaml .Values.nimOperator.nemoretriever_ocr_v1.image.pullSecrets | nindent 6 }}
authSecret: {{ .Values.nimOperator.nemoretriever_ocr_v1.authSecret }}
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/nemoretriever-page-elements-v3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.page_elements.image.repository }}:{{ .Values.nimOperator.page_elements.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "page_elements") }}"
pullSecret: "{{ index .Values.nimOperator.page_elements.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.page_elements.authSecret }}
storage:
Expand All @@ -25,8 +25,8 @@ metadata:
name: nemoretriever-page-elements-v3
spec:
image:
repository: {{ .Values.nimOperator.page_elements.image.repository }}
tag: {{ .Values.nimOperator.page_elements.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "page_elements") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "page_elements") }}
pullPolicy: {{ .Values.nimOperator.page_elements.image.pullPolicy }}
pullSecrets: {{ toYaml .Values.nimOperator.page_elements.image.pullSecrets | nindent 6 }}
authSecret: {{ .Values.nimOperator.page_elements.authSecret }}
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/nemoretriever-table-structure-v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.table_structure.image.repository }}:{{ .Values.nimOperator.table_structure.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "table_structure") }}"
pullSecret: "{{ index .Values.nimOperator.table_structure.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.table_structure.authSecret }}
storage:
Expand All @@ -24,8 +24,8 @@ metadata:
name: nemoretriever-table-structure-v1
spec:
image:
repository: {{ .Values.nimOperator.table_structure.image.repository }}
tag: {{ .Values.nimOperator.table_structure.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "table_structure") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "table_structure") }}
pullPolicy: {{ .Values.nimOperator.table_structure.image.pullPolicy }}
pullSecrets:
{{ toYaml .Values.nimOperator.table_structure.image.pullSecrets | nindent 6 }}
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/nemotron-nano-12b-v2-vl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.nemotron_nano_12b_v2_vl.image.repository }}:{{ .Values.nimOperator.nemotron_nano_12b_v2_vl.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "nemotron_nano_12b_v2_vl") }}"
pullSecret: "{{ index .Values.nimOperator.nemotron_nano_12b_v2_vl.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.nemotron_nano_12b_v2_vl.authSecret }}
storage:
Expand All @@ -24,8 +24,8 @@ metadata:
name: nemotron-nano-12b-v2-vl
spec:
image:
repository: {{ .Values.nimOperator.nemotron_nano_12b_v2_vl.image.repository }}
tag: {{ .Values.nimOperator.nemotron_nano_12b_v2_vl.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "nemotron_nano_12b_v2_vl") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "nemotron_nano_12b_v2_vl") }}
pullPolicy: IfNotPresent
pullSecrets:
{{ toYaml .Values.nimOperator.nemotron_nano_12b_v2_vl.image.pullSecrets | nindent 6 }}
Expand Down
6 changes: 3 additions & 3 deletions helm/templates/nemotron-parse.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
spec:
source:
ngc:
modelPuller: "{{ .Values.nimOperator.nemotron_parse.image.repository }}:{{ .Values.nimOperator.nemotron_parse.image.tag }}"
modelPuller: "{{ include "nv-ingest.release.nimRef" (dict "root" . "key" "nemotron_parse") }}"
pullSecret: "{{ index .Values.nimOperator.nemotron_parse.image.pullSecrets 0 }}"
authSecret: {{ .Values.nimOperator.nemotron_parse.authSecret }}
storage:
Expand All @@ -24,8 +24,8 @@ metadata:
name: nemotron-parse
spec:
image:
repository: {{ .Values.nimOperator.nemotron_parse.image.repository }}
tag: {{ .Values.nimOperator.nemotron_parse.image.tag }}
repository: {{ include "nv-ingest.release.nimRepository" (dict "root" . "key" "nemotron_parse") }}
tag: {{ include "nv-ingest.release.nimTag" (dict "root" . "key" "nemotron_parse") }}
pullPolicy: IfNotPresent
pullSecrets:
{{ toYaml .Values.nimOperator.nemotron_parse.image.pullSecrets | nindent 6 }}
Expand Down
Loading
Loading