NVIDIA
NVIDIA
NVIDIA NIM for YOLOX Model
Helm Chart
NVIDIA
NVIDIA
NVIDIA NIM for YOLOX Model

Helm Chart for NeMo Retriever YOLOX NIM

Subscribe to get accessSubscribe to the product below to access this premium content:
NVIDIA NeMo Microservices
NVIDIA NeMo MicroservicesNeMo provides microservices that simplify the generative AI development and deployment process at scale, allowing organizations to connect LLMs to their enterprise data sources.
Note: You can gain access to hundreds more GPU-optimized artifacts by creating a free NGC account.
Already Subscribed?Log in
Subscribe Now

NVIDIA NIM for Yolox

Setup Environment

First create your namespace and your secrets


NAMESPACE=nvidia-nims
DOCKER_CONFIG='{"auths":{"nvcr.io":{"username":"$oauthtoken", "password":"'${NGC_API_KEY}'" }}}'
echo -n $DOCKER_CONFIG | base64 -w0
NGC_REGISTRY_PASSWORD=$(echo -n $DOCKER_CONFIG | base64 -w0 )

kubectl create namespace ${NAMESPACE}
kubectl apply -n ${NAMESPACE} -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
  name: nvcrimagepullsecret
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: ${NGC_REGISTRY_PASSWORD}
EOF
kubectl create -n ${NAMESPACE} secret generic ngc-api --from-literal=NGC_API_KEY=${NGC_API_KEY}

Install the chart

helm upgrade \
    --install \
    --username '$oauthtoken' \
    --password "${NGC_API_KEY}" \
    -n ${NAMESPACE} \
    yolox-nim \
    https://helm.ngc.nvidia.com/ohlfw0olaadg/ea-participants/charts/yolox-nim-0.2.0.tgz

Set the Container Image

Add the following to update the container image for the helm chart:

--set image.repository="nvcr.io/ohlfw0olaadg/ea-participants/nv-yolox-page-elements-v1" \
--set image.tag="0.1.0" \

Parameters

Deployment parameters

NameDescriptionValue
affinity[default: {}] Affinity settings for deployment.{}
containerSecurityContextSets privilege and access control settings for container (Only affects the main container, not pod-level){}
customCommandOverrides command line options sent to the NIM with the array listed here.[]
customArgsOverrides command line arguments of the NIM container with the array listed here.[]
envVarsAdds arbitrary environment variables to the main container using key-value pairs, for example NAME: value{}
extraVolumesAdds arbitrary additional volumes to the deployment set definition{}
extraVolumeMountsSpecify volume mounts to the main container from extraVolumes{}
image.repositoryNIM Image Repository""
image.tagImage tag or version""
image.pullPolicyImage pull policy""
imagePullSecretsSpecify list of secret names that are needed for the main container and any init containers.
initContainersSpecify init containers, if needed.initContainers are defined as an object with the name of the container as the key. All other elements of the initContainer definition are the value.{}
nodeSelectorSets node selectors for the NIM -- for example nvidia.com/gpu.present: "true"{}
podAnnotationsSets additional annotations on the main deployment pods{}
podSecurityContextSpecify privilege and access control settings for pod
podSecurityContext.runAsUserSpecify user UID for pod.1000
podSecurityContext.runAsGroupSpecify group ID for pod.1000
podSecurityContext.fsGroupSpecify file system owner group id.1000
replicaCountSpecify static replica count for deployment.1
resourcesSpecify resources limits and requests for the running service.
resources.limits.nvidia.com/gpuSpecify number of GPUs to present to the running service.1
serviceAccount.createSpecifies whether a service account should be created.false
serviceAccount.annotationsSets annotations to be added to the service account.{}
serviceAccount.nameSpecifies the name of the service account to use. If it is not set and create is true, a name is generated using a fullname template.""
statefulSet.enabledEnables statefulset deployment. Enabling statefulSet allows PVC templates for scaling. If using central PVC with RWX accessMode, this isn't needed.false
tolerationsSpecify tolerations for pod assignment. Allows the scheduler to schedule pods with matching taints.

Autoscaling parameters

Values used for creating a Horizontal Pod Autoscaler. If autoscaling is not enabled, the rest are ignored. NVIDIA recommends usage of the custom metrics API, commonly implemented with the prometheus-adapter. Standard metrics of CPU and memory are of limited use in scaling NIM.

NameDescriptionValue
autoscaling.enabledEnables horizontal pod autoscaler.false
autoscaling.minReplicasSpecify minimum replicas for autoscaling.1
autoscaling.maxReplicasSpecify maximum replicas for autoscaling.10
autoscaling.metricsArray of metrics for autoscaling.[]

Ingress parameters

NameDescriptionValue
ingress.enabledEnables ingress.false
ingress.classNameSpecify class name for Ingress.""
ingress.annotationsSpecify additional annotations for ingress.{}
ingress.hostsSpecify list of hosts each containing lists of paths.
ingress.hosts[0].hostSpecify name of host.chart-example.local
ingress.hosts[0].paths[0].pathSpecify ingress path./
ingress.hosts[0].paths[0].pathTypeSpecify path type.ImplementationSpecific
ingress.tlsSpecify list of pairs of TLS secretName and hosts.[]

Probe parameters

NameDescriptionValue
livenessProbe.enabledEnables `livenessProbe``true
livenessProbe.path`LivenessProbe`` endpoint path/v1/health/live
livenessProbe.initialDelaySecondsInitial delay seconds for livenessProbe15
livenessProbe.timeoutSecondsTimeout seconds for livenessProbe1
livenessProbe.periodSecondsPeriod seconds for livenessProbe10
livenessProbe.successThresholdSuccess threshold for livenessProbe1
livenessProbe.failureThresholdFailure threshold for livenessProbe3
readinessProbe.enabledEnables readinessProbetrue
readinessProbe.pathReadiness Endpoint Path/v1/health/ready
readinessProbe.initialDelaySecondsInitial delay seconds for readinessProbe15
readinessProbe.timeoutSecondsTimeout seconds for readinessProbe1
readinessProbe.periodSecondsPeriod seconds for readinessProbe10
readinessProbe.successThresholdSuccess threshold for readinessProbe1
readinessProbe.failureThresholdFailure threshold for readinessProbe3
startupProbe.enabledEnables startupProbetrue
startupProbe.pathStartupProbe Endpoint Path/v1/health/ready
startupProbe.initialDelaySecondsInitial delay seconds for startupProbe40
startupProbe.timeoutSecondsTimeout seconds for startupProbe1
startupProbe.periodSecondsPeriod seconds for startupProbe10
startupProbe.successThresholdSuccess threshold for startupProbe1
startupProbe.failureThresholdFailure threshold for startupProbe180

Metrics parameters

NameDescriptionValue
metrics.portFor NIMs with a separate metrics port, this opens that port on the container0
serviceMonitorOptions for serviceMonitor to use the Prometheus Operator and the primary service object.
metrics.serviceMonitor.enabledEnables serviceMonitor creation.false
metrics.serviceMonitor.additionalLabelsSpecify additional labels for ServiceMonitor.{}

NIM parameters

NameDescriptionValue
nim.nimCachePath to mount writeable storage or pre-filled model cache for the NIM""
nim.modelNameOptionally specifies the name of the model in the API. This can be used in helm tests.""
nim.ngcAPISecretName of pre-existing secret with a key named NGC_API_KEY that contains an API key for NGC model downloads""
nim.ngcAPIKeyNGC API key literal to use as the API secret and image pull secret when set""
nim.openaiPortSpecify Open AI Port, for NIM.0
nim.httpPortSpecify HTTP Port.8000
nim.grpcPortSpecify GRPC Port.0
nim.labelsSpecify extra labels to be add to on deployed pods.{}
nim.jsonLoggingWhether to enable JSON lines logging. Defaults to true.true
nim.logLevelLog level of NIM service. Possible values of the variable are TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL.INFO

Storage parameters

NameDescriptionValue
persistenceSpecify settings to modify the path /model-store if model.legacyCompat is enabled else /.cache volume where the model is served from.
persistence.enabledEnables the use of persistent volumes.false
persistence.existingClaimSpecifies an existing persistent volume claim. If using existingClaim, run only one replica or use a ReadWriteMany storage setup.""
persistence.storageClassSpecifies the persistent volume storage class. If set to "-", this disables dynamic provisioning. If left undefined or set to null, the cluster default storage provisioner is used.""
persistence.accessModeSpecify accessMode. If using an NFS or similar setup, you can use ReadWriteMany.ReadWriteOnce
persistence.stsPersistentVolumeClaimRetentionPolicy.whenDeletedSpecifies persistent volume claim retention policy when deleted. Only used with Stateful Set volume templates.Retain
persistence.stsPersistentVolumeClaimRetentionPolicy.whenScaledSpecifies persistent volume claim retention policy when scaled. Only used with Stateful Set volume templates.Retain
persistence.sizeSpecifies the size of the persistent volume claim (for example 40Gi).50Gi
persistence.annotationsAdds annotations to the persistent volume claim.{}
hostPathConfigures model cache on local disk on the nodes using hostPath -- for special cases. You should understand the security implications before using this option.
hostPath.enabledEnable hostPath.false
hostPath.pathSpecifies path on the node used as a hostPath volume./model-store
nfsConfigures the model cache to sit on shared direct-mounted NFS. NOTE: you cannot set mount options using direct NFS mount to pods without a node-intalled nfsmount.conf. An NFS-based PersistentVolumeClaim is likely better in most cases.
nfs.enabledEnable direct pod NFS mountfalse
nfs.pathSpecify path on NFS server to mount/exports
nfs.serverSpecify NFS server addressnfs-server.example.com
nfs.readOnlySet to true to mount as read-onlyfalse

Service parameters

NameDescriptionValue
service.typeSpecifies the service type for the deployment.ClusterIP
service.nameOverrides the default service name""
service.openaiPortSpecifies the OpenAI API Port for the service.0
service.httpPortSpecifies the HTTP Port for the service.8000
service.grpcPortSpecifies the GRPC Port for the service.0
service.metricsPortSpecifies the metrics port on the main service object. Some NIMs do not use a separate port.0
service.annotationsSpecify additional annotations to be added to service.{}
service.labelsSpecifies additional labels to be added to service.{}
Publisher
NVIDIA
NVIDIA
Latest Version0.2.0
UpdatedDecember 30, 2024 UTC
Compressed Size99.84 KB