NGC_API_KEY
|
是 |
无 |
您必须将此变量设置为您的个人 NGC API 密钥的值。 |
NIM_CACHE_PATH
|
否 |
/opt/nim/.cache
|
容器缓存模型工件的位置(在容器中)。 |
NIM_DISABLE_LOG_REQUESTS
|
否 |
1
|
设置为 0 以查看请求日志。默认情况下,发送到 v1/completions 和 v1/chat/completions 的请求详细信息的日志被禁用。这些日志包含请求的敏感属性,包括 prompt 、sampling_params 和 prompt_token_ids 。用户应注意,启用此参数后,这些属性将暴露于容器日志。 |
NIM_JSONL_LOGGING
|
否 |
0
|
设置为 1 以启用 JSON 格式的日志。默认情况下启用可读文本日志。 |
NIM_LOG_LEVEL
|
否 |
DEFAULT
|
NIM for LLMs 服务的日志级别。该变量的可能值为 DEFAULT、TRACE、DEBUG、INFO、WARNING、ERROR、CRITICAL。大多数情况下,DEBUG、INFO、WARNING、ERROR、CRITICAL 的效果在 Python 3 日志记录 文档 中进行了描述。TRACE 日志级别启用了在 TRT-LLM 和 uvicorn 中打印用于调试目的的诊断信息。当 NIM_LOG_LEVEL 为 DEFAULT 时,将所有日志级别设置为 INFO ,但 TRT-LLM 日志级别除外,后者等于 ERROR 。当 NIM_LOG_LEVEL 为 CRITICAL 时,TRT-LLM 日志级别为 ERROR 。 |
NIM_SERVER_PORT
|
否 |
8000
|
将 NIM 服务发布到容器内指定的端口。确保调整传递给 docker run 的 -p/--publish 标志的端口以反映这一点(例如:-p $NIM_SERVER_PORT:$NIM_SERVER_PORT )。此 : 的左侧是您的主机地址:端口,并且不必与 $NIM_SERVER_PORT 匹配。此 : 的右侧是容器内的端口,该端口必须与 NIM_SERVER_PORT (或未设置时的 8000 )匹配。 |
NIM_MODEL_PROFILE
|
否 |
无 |
通过指定位于 /opt/nim/etc/default/model_manifest.yaml 的清单中的配置文件 ID,覆盖自动选择的 NIM 优化配置文件。如果未指定,NIM 将尝试选择与可用 GPU 兼容的最佳配置文件。可以通过在 docker run 命令末尾附加 list-model-profiles 来获取兼容配置文件的列表。使用配置文件名称 default 将选择最大程度兼容的配置文件,但可能不是您硬件的最佳配置文件。 |
NIM_MANIFEST_ALLOW_UNSAFE
|
否 |
0
|
如果设置为 1 ,则启用选择未包含在原始 model_manifest.yaml 中的模型配置文件。如果设置,您还必须将 NIM_MODEL_NAME 设置为模型目录的 **路径** 或 NGC 路径。 |
NIM_MODEL_NAME
|
否 |
“模型名称” |
仅当 NIM_MANIFEST_ALLOW_UNSAFE 设置为 1 时才必须设置。这必须是模型目录的路径或 NGC 路径,格式为 ngc://<org>/<team>/<model_name>:<version> 。示例:ngc://nim/meta/llama3-8b-instruct:hf 。 |
NIM_PEFT_SOURCE
|
否 |
|
如果您想使用本地 PEFT 模块启用 PEFT 推理,则设置 NIM_PEFT_SOURCE 环境变量并将其传递到运行容器命令中。如果您的 PEFT 源是 LOCAL_PEFT_DIRECTORY 中的本地目录,请将您的本地 PEFT 目录挂载到由 NIM_PEFT_SOURCE 设置的容器的 PEFT 源。确保您的目录仅包含基础 NIM 的 PEFT 模块。还要确保 PEFT 目录及其中的所有内容都可被 NIM 读取。 |
NIM_MAX_LORA_RANK
|
否 |
32
|
设置最大 LoRA 秩。 |
NIM_MAX_GPU_LORAS
|
否 |
8
|
设置可以容纳在 GPU PEFT 缓存中的 LoRA 数量。这是单个批次中可以使用的最大 LoRA 数量。 |
NIM_MAX_CPU_LORAS
|
否 |
16
|
设置可以容纳在 CPU PEFT 缓存中的 LoRA 数量。这应设置为 >= 最大并发数或您正在服务的 LoRA 数量,以较小者为准。如果您的并发 LoRA 请求多于 NIM_MAX_CPU_LORAS ,您可能会看到“缓存已满”错误。此值必须 >= NIM_MAX_GPU_LORAS。 |
NIM_PEFT_REFRESH_INTERVAL
|
否 |
无
|
检查 NIM_PEFT_SOURCE 以查找新模型的时间间隔(秒)。如果未设置,PEFT 缓存将不会刷新。如果您选择通过设置此 ENV 变量来启用 PEFT 刷新,我们建议将该数字设置为大于 30。 |
NIM_SERVED_MODEL_NAME
|
否 |
无
|
API 中使用的模型名称。如果提供了多个名称(以逗号分隔),服务器将响应任何提供的名称。响应的模型字段中的模型名称将是此列表中的第一个名称。如果未指定,模型名称将从位于 /opt/nim/etc/default/model_manifest.yaml 的清单中推断出来。请注意,此名称也将用于 Prometheus 指标的 model_name 标签内容中,如果提供了多个名称,则指标标签将采用第一个名称。 |
NIM_CUSTOM_MODEL_NAME
|
否 |
无
|
赋予本地构建引擎的模型名称。如果设置,本地构建的引擎将命名为 NIM_CUSTOM_MODEL_NAME ,并以相同的名称缓存在 NIM 缓存中。此名称必须与其他缓存的自定义引擎不重复。此缓存的引擎也将通过 list-model-profiles 命令以相同的名称可见,并且行为将与其他每个配置文件类似。在后续的 docker 运行中,本地缓存的引擎将优先于每种其他类型的配置文件。您还可以将 NIM_MODEL_PROFILE 设置为特定的自定义模型名称,以强制 NIM LLM 服务于该缓存的引擎。 |
NIM_LOW_MEMORY_MODE
|
否 |
0
|
将此标志设置为 1 以启用将本地构建的 TRTLLM 引擎卸载到磁盘。这降低了运行时主机内存需求,但可能会增加启动时间和磁盘使用量。 |
NIM_ENABLE_OTEL
|
否 |
0
|
将此标志设置为 1 以在 NIM 中启用 OpenTelemetry instrumentation。 |
NIM_OTEL_TRACES_EXPORTER
|
否 |
console
|
指定用于跟踪的 OpenTelemetry 导出器。将此标志设置为 otlp 以使用 OpenTelemetry 协议导出跟踪。将其设置为 console 以将跟踪打印到标准输出。 |
NIM_OTEL_METRICS_EXPORTER
|
否 |
console
|
类似于 NIM_OTEL_TRACES_EXPORTER ,但用于指标。 |
NIM_OTEL_EXPORTER_OTLP_ENDPOINT
|
否 |
无
|
OpenTelemetry Collector 正在侦听 OTLP 数据的端点。调整 URL 以匹配您的 OpenTelemetry Collector 的配置。 |
NIM_OTEL_SERVICE_NAME
|
否 |
无
|
设置您的服务名称,以帮助识别和分类数据。 |
NIM_TOKENIZER_MODE
|
否 |
auto
|
分词器模式。auto 将在可用时使用快速分词器。slow 将始终使用慢速分词器。 |
NIM_ENABLE_KV_CACHE_REUSE
|
否 |
0
|
设置为 1 以启用自动前缀缓存/ KV 缓存重用。适用于频繁出现大型提示的用例,并且跨请求的 KV 缓存缓存将加速推理。 |
NIM_RELAX_MEM_CONSTRAINTS
|
否 |
0
|
如果设置为 1 且未指定 NIM_NUM_KV_CACHE_SEQ_LENS ,则 NIM_NUM_KV_CACHE_SEQ_LENS 将自动设置为 1 。否则,如果设置为 1 ,将使用从 NIM_NUM_KV_CACHE_SEQ_LENS 提供的值。NIM LLM 的建议默认值是所有 GPU 都具有 >= 95% 的可用内存。将此变量设置为 true 将覆盖此默认值,并将运行模型,而无需考虑内存约束。它还将使用启发式方法来确定 GPU 是否可能满足或未满足内存要求,并在适用时提供警告。 |
NIM_NUM_KV_CACHE_SEQ_LENS
|
否 |
无
|
必须将 NIM_RELAX_MEM_CONSTRAINTS 设置为 1 ,此环境变量才会生效。设置为大于或等于 1 的值,以覆盖 NIM LLM 的默认 KV 缓存内存分配设置。提供的值将用于确定 KV 缓存中可以容纳的最大序列长度(例如 2 或 3.75)。最大序列长度是模型的上下文大小。 |
NIM_MAX_MODEL_LEN
|
否 |
无
|
模型上下文长度。如果未指定,将从模型配置自动派生。请注意,此设置仅对在 vLLM 后端上运行的模型以及所选配置文件的 trtllm-buildable 等于 true 的模型有效。在 trtllm-buildable 等于 true 的情况下,TRT-LLM 构建参数 max_seq_len 将设置为此值。 |
NIM_REPOSITORY_OVERRIDE
|
否 |
无
|
如果设置为非空字符串,则 NIM_REPOSITORY_OVERRIDE 值将替换存储库的硬编码位置以及访问存储库的协议。此环境变量的值的结构如下:<repository type>://<repository location> 。请注意,仅支持协议 ngc:// 、s3:// 和 https:// ,并且仅替换 URI 的第一个组件。例如 - 如果清单中的 URI 是 ngc://org/meta/llama3-8b-instruct:hf?file=config.json 且 NIM_REPOSITORY_OVERRIDE=ngc://myrepo.ai/ ,则 API 端点的域名设置为 myrepo.ai 。 - 如果 NIM_REPOSITORY_OVERRIDE=s3://mybucket/ ,则替换结果将为 s3://mybucket/nim%2Fmeta%2Fllama3-8b-instruct%3Ahf%3Ffile%3Dconfig.json 。 - 如果 NIM_REPOSITORY_OVERRIDE=https://mymodel.ai/some_path_optional ,则替换结果将为 https://mymodel.ai/some_path/nim%2Fmeta%2Fllama3-8b-instruct%3Ahf%3Ffile%3Dconfig.json 。
此存储库覆盖功能支持基本身份验证机制 - https 假定使用 Authorization 标头和 NIM_HTTPS_CREDENTIAL 中的凭据值进行授权。 - ngc 需要 NGC_API_KEY 环境变量中的凭据。 - s3 需要环境变量 AWS_ACCESS_KEY_ID 、AWS_SECRET_ACCESS_KEY 和(如果使用临时凭据)AWS_SESSION_TOKEN 。 |
NIM_GUIDED_DECODING_BACKEND
|
否 |
"outlines"
|
要使用的引导解码后端。可以是 "fast_outlines" (自定义 NIM 加速版本的 outlines)、"outlines" 或 "lm-format-enforcer" 之一。 |