Skip to content

Update evaluate.md to add options to avoid [429] Too Many Requests errors#1056

Merged
rapids-bot[bot] merged 2 commits intoNVIDIA:release/1.3from
yczhang-nv:yuchen-update-eval-doc
Oct 21, 2025
Merged

Update evaluate.md to add options to avoid [429] Too Many Requests errors#1056
rapids-bot[bot] merged 2 commits intoNVIDIA:release/1.3from
yczhang-nv:yuchen-update-eval-doc

Conversation

@yczhang-nv
Copy link
Contributor

@yczhang-nv yczhang-nv commented Oct 21, 2025

Description

Closes nvbugs-5438561
Closes AIQ-1793

By Submitting this PR I confirm:

  • I am familiar with the Contributing Guidelines.
  • We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
    • Any contribution which contains commits that are not Signed-Off will not be accepted.
  • When the PR is ready for review, new or existing tests cover these changes.
  • When the PR is ready for review, the documentation is up to date with these changes.

Summary by CodeRabbit

  • Documentation

    • Added guidance on handling rate limiting when evaluating workflows, with two approaches: reduce concurrency via config or deploy a local model endpoint, plus configuration examples.
  • Chores

    • Updated example evaluation configs to add max_concurrency: 1, ensuring evaluation runs default to single-concurrency for affected examples.

Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
@yczhang-nv yczhang-nv self-assigned this Oct 21, 2025
@yczhang-nv yczhang-nv requested a review from a team as a code owner October 21, 2025 17:08
@yczhang-nv yczhang-nv added doc Improvements or additions to documentation non-breaking Non-breaking change labels Oct 21, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 21, 2025

Walkthrough

Adds guidance in the evaluation docs about handling rate limits (reduce eval concurrency or use a local NVIDIA NIM endpoint) and updates multiple example evaluation configs to set max_concurrency: 1 under eval.general, serializing evaluation runs.

Changes

Cohort / File(s) Summary
Documentation: Rate limiting guidance
docs/source/workflows/evaluate.md
Adds a user-facing note describing two approaches to handle rate limiting during evaluation (reduce concurrency or deploy local NVIDIA NIM) and includes a YAML snippet for configuring a local NIM LLM endpoint.
Example configs: set max_concurrency to 1
examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml, .../config-sizing-calc.yml, .../config-tunable-rag-eval.yml, .../config-with-custom-post-process.yml
Inserted max_concurrency: 1 under eval.general to limit evaluation concurrency to a single concurrent task.
Example configs: web query evals set max_concurrency to 1
examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml, .../eval_config_llama31.yml, .../eval_config_llama33.yml, .../eval_config_openai.yml, .../eval_only_config.yml, .../eval_upload.yml
Inserted max_concurrency: 1 under eval.general to serialize evaluation runs; no other structural changes.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant User
    participant EvalOrchestrator as Orchestrator
    participant LLM

    Note over Orchestrator: Config: max_concurrency: 1
    User->>Orchestrator: Start evaluation (N tasks)
    loop serialized runs (concurrency = 1)
      Orchestrator->>LLM: Send task request
      LLM-->>Orchestrator: Response
      Orchestrator->>User: Record result
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Pre-merge checks and finishing touches

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)
Check name Status Explanation Resolution
Title Check ❌ Error The pull request title "Update evaluate.md to add options to avoid [429] Too Many Requests errors" is descriptive, uses imperative mood, and accurately reflects the primary change documented in the changeset. The title clearly communicates that the PR updates evaluate.md documentation to address rate limiting errors. However, the title is 77 characters long, which exceeds the specified maximum of approximately 72 characters by 5 characters.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Member

@willkill07 willkill07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we also update the following configs to specify max_concurrency: 1 ?

  • examples/evaluation_and_profiling/simple_web_query_eval/configs/*.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/configs/*.yml

Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml (1)

1-29: Remove duplicate Apache License header.

The file contains two complete Apache License headers (lines 1-14 and 16-29). Keep only one header at the top of the file.

 # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
 # SPDX-License-Identifier: Apache-2.0
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
-# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
-# SPDX-License-Identifier: Apache-2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml (1)

1-29: Remove duplicate Apache License header.

The file contains two complete Apache License headers (lines 1-14 and 16-29). Keep only one header at the top of the file.

 # SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
 # SPDX-License-Identifier: Apache-2.0
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
 # http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
-# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
-# SPDX-License-Identifier: Apache-2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
🧹 Nitpick comments (1)
examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml (1)

61-61: Consider adding a comment explaining the rate-limit mitigation purpose.

The max_concurrency: 1 setting addresses the PR's goal of avoiding [429] Too Many Requests errors. Adding a brief inline comment would help users reading this example understand the rationale.

  general:
+   # Set max_concurrency to 1 to serialize evaluation runs and avoid rate limit errors (HTTP 429)
    max_concurrency: 1
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6dbb56e and 0362da9.

📒 Files selected for processing (10)
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-with-custom-post-process.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml (2 hunks)
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama31.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama33.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_openai.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_only_config.yml (1 hunks)
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-with-custom-post-process.yml
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{yaml,yml}

📄 CodeRabbit inference engine (.cursor/rules/nat-test-llm.mdc)

In workflow/config YAML, set llms.._type: nat_test_llm to stub responses.

Files:

  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama33.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_openai.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_only_config.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama31.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml
**/*.{py,yaml,yml}

📄 CodeRabbit inference engine (.cursor/rules/nat-test-llm.mdc)

**/*.{py,yaml,yml}: Configure response_seq as a list of strings; values cycle per call, and [] yields an empty string.
Configure delay_ms to inject per-call artificial latency in milliseconds for nat_test_llm.

Files:

  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama33.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_openai.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_only_config.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama31.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml
**/configs/**

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Configuration files consumed by code must be stored next to that code in a configs/ folder

Files:

  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama33.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_openai.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_only_config.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama31.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml
**/*

⚙️ CodeRabbit configuration file

**/*: # Code Review Instructions

  • Ensure the code follows best practices and coding standards. - For Python code, follow
    PEP 20 and
    PEP 8 for style guidelines.
  • Check for security vulnerabilities and potential issues. - Python methods should use type hints for all parameters and return values.
    Example:
    def my_function(param1: int, param2: str) -> bool:
        pass
  • For Python exception handling, ensure proper stack trace preservation:
    • When re-raising exceptions: use bare raise statements to maintain the original stack trace,
      and use logger.error() (not logger.exception()) to avoid duplicate stack trace output.
    • When catching and logging exceptions without re-raising: always use logger.exception()
      to capture the full stack trace information.

Documentation Review Instructions - Verify that documentation and comments are clear and comprehensive. - Verify that the documentation doesn't contain any TODOs, FIXMEs or placeholder text like "lorem ipsum". - Verify that the documentation doesn't contain any offensive or outdated terms. - Verify that documentation and comments are free of spelling mistakes, ensure the documentation doesn't contain any

words listed in the ci/vale/styles/config/vocabularies/nat/reject.txt file, words that might appear to be
spelling mistakes but are listed in the ci/vale/styles/config/vocabularies/nat/accept.txt file are OK.

Misc. - All code (except .mdc files that contain Cursor rules) should be licensed under the Apache License 2.0,

and should contain an Apache License 2.0 header comment at the top of each file.

  • Confirm that copyright years are up-to date whenever a file is changed.

Files:

  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama33.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_openai.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_only_config.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama31.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml
examples/**/*

⚙️ CodeRabbit configuration file

examples/**/*: - This directory contains example code and usage scenarios for the toolkit, at a minimum an example should
contain a README.md or file README.ipynb.

  • If an example contains Python code, it should be placed in a subdirectory named src/ and should
    contain a pyproject.toml file. Optionally, it might also contain scripts in a scripts/ directory.
  • If an example contains YAML files, they should be placed in a subdirectory named configs/. - If an example contains sample data files, they should be placed in a subdirectory named data/, and should
    be checked into git-lfs.

Files:

  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama33.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_openai.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_only_config.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml
  • examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama31.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml
  • examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml
🔇 Additional comments (9)
examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-tunable-rag-eval.yml (1)

75-75: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency to serialize execution, which helps avoid rate-limiting errors as described in the PR objectives.

examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-custom-dataset-format.yml (1)

57-57: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency to serialize execution.

examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_openai.yml (1)

62-62: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency.

examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config.yml (1)

55-55: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency.

examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-sizing-calc.yml (1)

66-66: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency.

examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama31.yml (1)

62-62: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency.

examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_only_config.yml (1)

30-30: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency.

examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_config_llama33.yml (1)

62-62: Config change looks good.

The addition of max_concurrency: 1 under eval.general correctly constrains evaluation concurrency.

examples/evaluation_and_profiling/simple_web_query_eval/src/nat_simple_web_query_eval/configs/eval_upload.yml (1)

1-14: License header and copyright years are correct.

The Apache 2.0 header is properly in place with up-to-date copyright years (2024-2025).

@willkill07
Copy link
Member

/merge

@rapids-bot rapids-bot bot merged commit 5173df6 into NVIDIA:release/1.3 Oct 21, 2025
17 checks passed
@yczhang-nv yczhang-nv deleted the yuchen-update-eval-doc branch December 24, 2025 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Improvements or additions to documentation non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants