Skip to content

ci(benchmarks): add Devstral 2 to H100 nightly benchmarks#1069

Open
smfirmin wants to merge 6 commits intolightseekorg:mainfrom
smfirmin:ci/devstral-2-nightly-benchmark
Open

ci(benchmarks): add Devstral 2 to H100 nightly benchmarks#1069
smfirmin wants to merge 6 commits intolightseekorg:mainfrom
smfirmin:ci/devstral-2-nightly-benchmark

Conversation

@smfirmin
Copy link
Copy Markdown
Contributor

@smfirmin smfirmin commented Apr 8, 2026

Description

Summary

Add mistralai/Devstral-2-123B-Instruct-2512 to the nightly benchmark coverage on H100 for both sglang and vllm.

Changes

  • add Devstral 2 to MODEL_SPECS with nightly benchmark metadata
  • set Devstral 2 tensor parallelism to 4
  • register nightly benchmark test classes for Devstral 2
  • add Devstral 2 to the single-worker-h100 workflow matrix
  • place the workflow entry immediately after the commented-out minimax-m2 benchmark entry

Notes

  • this enables nightly H100 runs for both sglang and vllm

Summary by CodeRabbit

  • New Features

    • Added support for mistralai/Devstral-2-123B-Instruct-2512 with chat, streaming, function-calling, and reasoning.
  • Tests

    • Integrated the new model into nightly performance and benchmark tests (single-worker) for HTTP and gRPC backends.
  • Chores

    • Updated nightly benchmark configuration to include the new model and its startup/timeout settings.

@github-actions github-actions bot added ci CI/CD configuration changes tests Test changes labels Apr 8, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 8, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds mistralai/Devstral-2-123B-Instruct-2512 to nightly benchmarking by updating the CI job matrix, the nightly benchmark model list, and model_specs with TPU, features, startup timeout, and backend args. No other workflow triggers or job conditions were changed.

Changes

Cohort / File(s) Summary
CI workflow
\.github/workflows/nightly-benchmark.yml
Added mistralai/Devstral-2-123B-Instruct-2512 entry to the single-worker job matrix (slug + test_class). No other workflow triggers or job conditions modified.
Nightly tests
e2e_test/benchmarks/test_nightly_perf.py
Appended Devstral-2 model config to _NIGHTLY_MODELS (http/grpc backends, multi_workers=1); minor formatting whitespace change only.
Model specs
e2e_test/infra/model_specs.py
Added MODEL_SPECS["mistralai/Devstral-2-123B-Instruct-2512"] with _resolve_model_path(...), tp: 4, features: ["chat","streaming","function_calling","reasoning"], startup_timeout: 1200, and sglang_args/vllm_args: ["--trust-remote-code"].

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • CatherineSue
  • XinyueZhang369

Poem

🐇 I hopped through code with eager cheer,

A new Devstral model now appears,
Specs in place and tests aligned,
Nightly gardens grow, well-timed,
A tiny hop, CI smiles near.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary change: adding Devstral 2 model to H100 nightly benchmarks. It is concise, clear, and specific about what was added and where.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds the Devstral-2-123B-Instruct-2512 model to the nightly performance benchmarks and infrastructure configurations. It also introduces a mechanism to skip redundant multi-worker test variants for specific models. The reviewer suggests simplifying the test generation logic by checking if _multi_workers > 1 instead of using a hardcoded exclusion set, which would more generically handle models that only require a single worker.

Copy link
Copy Markdown

@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: 1

Caution

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

⚠️ Outside diff range comments (1)
e2e_test/benchmarks/test_nightly_perf.py (1)

176-188: 🧹 Nitpick | 🔵 Trivial

Clean up _variants from module namespace for consistency.

Line 188 cleans loop temporaries, but _variants is now also a module-level temporary and should be deleted too.

Suggested small cleanup
-del _model_id, _name, _multi_workers, _backends, _extra, _suffix, _count, _cls_name, _cls
+del _model_id, _name, _multi_workers, _backends, _extra, _variants, _suffix, _count, _cls_name, _cls
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@e2e_test/benchmarks/test_nightly_perf.py` around lines 176 - 188, The
module-level temporary _variants is left behind after the loop and should be
removed with the other temporaries; add _variants to the cleanup deletion so the
trailing line becomes del _model_id, _name, _multi_workers, _backends, _extra,
_suffix, _count, _cls_name, _cls, _variants to avoid leaking the variable from
the loop that builds test classes in the block using _NIGHTLY_MODELS and
_make_test_class.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/nightly-benchmark.yml:
- Line 353: The YAML flow-mapping on the line containing the mapping with id:
mistralai/Devstral-2-123B-Instruct-2512, slug:
mistralai-Devstral-2-123B-Instruct-2512, and test_class:
TestNightlyDevstral2Single violates the `braces` rule due to spaces immediately
inside `{ }`; remove the space after `{` and before `}` so the mapping becomes
brace-adjacent (e.g. `{id: ..., slug: ..., test_class: ...}`) to satisfy
yamlint.

---

Outside diff comments:
In `@e2e_test/benchmarks/test_nightly_perf.py`:
- Around line 176-188: The module-level temporary _variants is left behind after
the loop and should be removed with the other temporaries; add _variants to the
cleanup deletion so the trailing line becomes del _model_id, _name,
_multi_workers, _backends, _extra, _suffix, _count, _cls_name, _cls, _variants
to avoid leaking the variable from the loop that builds test classes in the
block using _NIGHTLY_MODELS and _make_test_class.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 419636fa-5ef2-4f14-a65a-ea79ac9fe15d

📥 Commits

Reviewing files that changed from the base of the PR and between 9516b44 and 537f571.

📒 Files selected for processing (3)
  • .github/workflows/nightly-benchmark.yml
  • e2e_test/benchmarks/test_nightly_perf.py
  • e2e_test/infra/model_specs.py

@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Apr 8, 2026

Hi @smfirmin, the DCO sign-off check has failed. All commits must include a Signed-off-by line.

To fix existing commits:

# Sign off the last N commits (replace N with the number of unsigned commits)
git rebase HEAD~N --signoff
git push --force-with-lease

To sign off future commits automatically:

  • Use git commit -s every time, or
  • VSCode: enable Git: Always Sign Off in Settings
  • PyCharm: enable Sign-off commit in the Commit tool window

@smfirmin smfirmin force-pushed the ci/devstral-2-nightly-benchmark branch from efd72de to 34a818c Compare April 8, 2026 22:42
@smfirmin smfirmin changed the title ci(benchmarks): add Devstral 2 to H200 nightly benchmarks ci(benchmarks): add Devstral 2 to H100 nightly benchmarks Apr 9, 2026
@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Apr 9, 2026

Hi @smfirmin, the DCO sign-off check has failed. All commits must include a Signed-off-by line.

To fix existing commits:

# Sign off the last N commits (replace N with the number of unsigned commits)
git rebase HEAD~N --signoff
git push --force-with-lease

To sign off future commits automatically:

  • Use git commit -s every time, or
  • VSCode: enable Git: Always Sign Off in Settings
  • PyCharm: enable Sign-off commit in the Commit tool window

@smfirmin smfirmin force-pushed the ci/devstral-2-nightly-benchmark branch from c06ba3b to ad7d542 Compare April 9, 2026 19:42
@github-actions github-actions bot removed the tests Test changes label Apr 9, 2026
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ad7d5426f5

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@smfirmin smfirmin force-pushed the ci/devstral-2-nightly-benchmark branch from ad7d542 to 7562d29 Compare April 9, 2026 19:46
@github-actions github-actions bot added the tests Test changes label Apr 9, 2026
@smfirmin smfirmin force-pushed the ci/devstral-2-nightly-benchmark branch from 7562d29 to dbcf595 Compare April 9, 2026 19:49
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dbcf595cc9

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Signed-off-by: Sydney Firmin <sydney.firmin@oracle.com>
@smfirmin smfirmin force-pushed the ci/devstral-2-nightly-benchmark branch from dbcf595 to 2d532b4 Compare April 9, 2026 19:54
Copy link
Copy Markdown

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/nightly-benchmark.yml:
- Line 124: The Devstral 2 matrix entry was added to the wrong job matrix; move
the matrix entry referencing id "mistralai/Devstral-2-123B-Instruct-2512" (slug
"mistralai-Devstral-2-123B-Instruct-2512", test_class
"TestNightlyDevstral2Single") out of the H100 "single-worker" matrix and add it
to the "single-worker-h200" matrix (the block after the paused MiniMax line) so
the nightly run targets H200; ensure you remove it from the original
"single-worker" list to avoid duplicate runs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0fd3306b-dc8f-4f27-97e2-262b0d008a06

📥 Commits

Reviewing files that changed from the base of the PR and between c06ba3b and 8d0dd73.

📒 Files selected for processing (3)
  • .github/workflows/nightly-benchmark.yml
  • e2e_test/benchmarks/test_nightly_perf.py
  • e2e_test/infra/model_specs.py

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: efa7376600

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown

@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: 1

♻️ Duplicate comments (1)
.github/workflows/nightly-benchmark.yml (1)

125-125: ⚠️ Potential issue | 🟠 Major

Fix YAML flow-mapping brace spacing to avoid lint failure.

Line [125] uses spaces inside { ... }, which violates the configured braces lint rule.

Lint-safe fix
-          - { id: mistralai/Devstral-2-123B-Instruct-2512, slug: mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single }
+          - {id: mistralai/Devstral-2-123B-Instruct-2512, slug: mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/nightly-benchmark.yml at line 125, The flow-mapping entry
containing the mapping with keys id, slug, and test_class (the line with id:
mistralai/Devstral-2-123B-Instruct-2512, slug:
mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single)
uses spaces inside the braces; remove the inner spaces so the mapping is
brace-lint-safe (e.g., change "{ id: ..., slug: ..., test_class: ... }" to "{id:
...,slug: ...,test_class: ...}"). Ensure the updated single-line flow mapping
preserves the same keys/values and passes the `braces` lint rule.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/nightly-benchmark.yml:
- Line 230: The jobs "multi-worker" and "single-worker-h200" are unintentionally
disabled by an unconditional `if: false`; update their job-level `if` condition
(the `if:` line inside the job definitions for multi-worker and
single-worker-h200) to `if: ${{ !cancelled() }}` to re-enable them, or if
disabling was intentional add a clear comment above each job explaining the
rationale; ensure you change both occurrences (the `if:` line for the
multi-worker job and the `if:` line for the single-worker-h200 job).

---

Duplicate comments:
In @.github/workflows/nightly-benchmark.yml:
- Line 125: The flow-mapping entry containing the mapping with keys id, slug,
and test_class (the line with id: mistralai/Devstral-2-123B-Instruct-2512, slug:
mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single)
uses spaces inside the braces; remove the inner spaces so the mapping is
brace-lint-safe (e.g., change "{ id: ..., slug: ..., test_class: ... }" to "{id:
...,slug: ...,test_class: ...}"). Ensure the updated single-line flow mapping
preserves the same keys/values and passes the `braces` lint rule.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: fbcca510-37e6-4135-9284-e4487924360b

📥 Commits

Reviewing files that changed from the base of the PR and between 8d0dd73 and efa7376.

📒 Files selected for processing (1)
  • .github/workflows/nightly-benchmark.yml

@key4ng
Copy link
Copy Markdown
Collaborator

key4ng commented Apr 15, 2026

This reverts commit efa7376.

Signed-off-by: key4ng <rukeyang@gmail.com>
Copy link
Copy Markdown

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/nightly-benchmark.yml:
- Line 124: The flow-mapping on the line containing the mapping for id:
mistralai/Devstral-2-123B-Instruct-2512, slug:
mistralai-Devstral-2-123B-Instruct-2512, and test_class:
TestNightlyDevstral2Single has spaces after the opening brace and before the
closing brace; remove those spaces so the mapping uses "{id: ..., slug: ...,
test_class: ...}" (no space immediately after "{" and no space immediately
before "}") to satisfy yamlint’s braces rule.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 160c8a8b-e79b-4091-be58-9e677f4feca4

📥 Commits

Reviewing files that changed from the base of the PR and between efa7376 and 8ccc25c.

📒 Files selected for processing (1)
  • .github/workflows/nightly-benchmark.yml

- { id: Qwen/Qwen2.5-7B-Instruct, slug: Qwen-Qwen2.5-7B-Instruct, test_class: TestNightlyQwen7bSingle }
- { id: Qwen/Qwen3-30B-A3B, slug: Qwen-Qwen3-30B-A3B, test_class: TestNightlyQwen30bSingle }
- { id: openai/gpt-oss-20b, slug: openai-gpt-oss-20b, test_class: TestNightlyGptOss20bSingle }
- { id: mistralai/Devstral-2-123B-Instruct-2512, slug: mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single }
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Confirm TestNightlyDevstral2Single exists in the test generator configuration

# Check the model definition and generated test class naming pattern
rg -A 2 'mistralai/Devstral-2-123B-Instruct-2512' e2e_test/benchmarks/test_nightly_perf.py

# Verify the test class generation loop and naming pattern
rg -B 3 -A 5 'TestNightly.*Single.*=' e2e_test/benchmarks/test_nightly_perf.py

# Confirm the pattern: TestNightly{fragment}{Single|Multi}
ast-grep --pattern $'for $_ in $_:
    $$$
    _cls_name = f"TestNightly{$_}{$_}"
    $$$'

Repository: lightseekorg/smg

Length of output: 712


Fix YAML flow-mapping brace spacing to pass yamlint checks.

The flow-mapping on line 124 has spaces after { and before }, which violates the braces rule in yamlint and will fail CI linting. The test class name TestNightlyDevstral2Single is correctly generated from the test framework pattern.

🔧 Lint-compliant fix
-          - { id: mistralai/Devstral-2-123B-Instruct-2512, slug: mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single }
+          - {id: mistralai/Devstral-2-123B-Instruct-2512, slug: mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- { id: mistralai/Devstral-2-123B-Instruct-2512, slug: mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single }
- {id: mistralai/Devstral-2-123B-Instruct-2512, slug: mistralai-Devstral-2-123B-Instruct-2512, test_class: TestNightlyDevstral2Single}
🧰 Tools
🪛 YAMLlint (1.38.0)

[error] 124-124: too many spaces inside braces

(braces)


[error] 124-124: too many spaces inside braces

(braces)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/nightly-benchmark.yml at line 124, The flow-mapping on the
line containing the mapping for id: mistralai/Devstral-2-123B-Instruct-2512,
slug: mistralai-Devstral-2-123B-Instruct-2512, and test_class:
TestNightlyDevstral2Single has spaces after the opening brace and before the
closing brace; remove those spaces so the mapping uses "{id: ..., slug: ...,
test_class: ...}" (no space immediately after "{" and no space immediately
before "}") to satisfy yamlint’s braces rule.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD configuration changes tests Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants