Advanced Configuration for NeMo Evaluator#
This guide provides advanced configuration options for the NeMo Evaluator microservice, such as connecting to external dependencies, customizing workflow orchestration, and enabling advanced monitoring.
Before You Start#
Complete the Helm Chart deployment before using these advanced options. This article assumes you have a working NeMo Evaluator deployment and want to customize or extend it for production or advanced use cases.
Externalizing Dependencies#
By default, the Helm chart deploys all required dependencies. For production or custom environments, you may wish to use your own Milvus, or PostgreSQL instances.
External Dependency Configuration#
milvus:
enabled: false
external:
milvus:
endpoint: "<url to the pre-installed milvus>"
By default, the NeMo Entity Store Helm chart uses the Bitnami PostgreSQL chart. To use an external PostgreSQL database, set the appropriate values and see the PostgreSQL section for details.
Data Store Integration#
To use a custom or external Data Store, specify the endpoint in your custom-values.yaml:
external:
dataStore:
endpoint: "http://<nemo-data-store-service>.<nemo-data-store-namespace>.svc.cluster.local:8000"
Milvus#
For Retriever and RAG evaluations with large datasets, you may want to tune Milvus storage or use your own instance. Example for default Milvus install:
milvus:
enabled: true
serviceName: milvus
cluster:
enabled: false
etcd:
enabled: false
pulsar:
enabled: false
minio:
enabled: false
tls:
enabled: false
standalone:
persistence:
enabled: true
persistentVolumeClaim:
size: 100Gi
storageClass: standard
extraEnv:
- name: LOG_LEVEL
value: error
extraConfigFiles:
user.yaml: |+
etcd:
use:
embed: true
data:
dir: /var/lib/milvus/etcd
common:
storageType: local
Tip
For large datasets, set storage size to at least 100Gi. For production, use an external Milvus as described above.
Monitoring & Telemetry#
NeMo Evaluator is instrumented with OpenTelemetry. To enable exporters and customize telemetry:
otelExporterEnabled: true
otelEnvVars:
OTEL_EXPORTER_OTLP_ENDPOINT: "http://<otel-collector>:4317"
OTEL_SERVICE_NAME: "nemo-evaluator"
OTEL_TRACES_EXPORTER: otlp
OTEL_METRICS_EXPORTER: otlp
OTEL_LOGS_EXPORTER: otlp
OTEL_PROPAGATORS: "tracecontext,baggage"
OTEL_RESOURCE_ATTRIBUTES: "deployment.environment=$(NAMESPACE)"
OTEL_PYTHON_EXCLUDED_URLS: "health"
OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED: "true"
opentelemetry-collector:
enabled: true
zipkin:
enabled: true
Name |
Description |
Value |
|---|---|---|
|
Deploy Zipkin for metrics. |
|
|
Deploy OpenTelemetry Collector for metrics. |
|
|
OpenTelemetry Collector configurations. |
|
|
Enable OpenTelemetry exporters for Evaluator. |
|
|
Environment variables to configure OpenTelemetry for Evaluator. |
|
|
Log level for both OTLP and console exporters. |
|
See also: Open Telemetry Setup
Port Forwarding & Access#
To access the Evaluator microservice locally for testing or debugging:
kubectl -n <NAMESPACE> port-forward service/myrelease-nemo-evaluator 7331:7331
After port-forwarding, your data scientists can use the local host URL to access the NeMo Evaluator microservice APIs.