Skip to content

Multi Process Scheduler Implementation, Benchmarker, and Report Generation Refactor #96

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 43 commits into from
Apr 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
1e21612
Adds aiohttp backend
anmarques Dec 6, 2024
ce0c3c5
quality fixes
anmarques Sep 5, 2024
8cb9876
Quality fixes
anmarques Sep 6, 2024
039900a
Rework for OpenAI backend to use native http requests with httpx and …
markurtz Mar 6, 2025
2b82bd5
Finalize implementation, fix bugs, and ensure unit tests are passing …
markurtz Mar 8, 2025
a01db7d
Initial state for Scheduling system rework. Still needs testing and f…
markurtz Mar 10, 2025
85dee09
Enable temp testing script to work, refactor strategy to be more gene…
markurtz Mar 10, 2025
fb3fdd7
Polishing for scheduler
markurtz Mar 15, 2025
12835e0
styling fixes
markurtz Mar 15, 2025
65869d7
initial groundwork for new benchmark package and classes along with r…
markurtz Mar 17, 2025
53e0943
finalize benchmark model objects
markurtz Mar 17, 2025
faacb63
Latest state with datasets and benchmarker created
markurtz Mar 22, 2025
34f851c
latest working state with data loaders and benchmarking API
markurtz Mar 28, 2025
cfdc2ed
Working clis and entrypoints
markurtz Apr 2, 2025
d4f8c1a
Fixes for bugs surfaced from testing and enhancements to features bas…
markurtz Apr 9, 2025
0a6230b
Update src/guidellm/scheduler/scheduler.py
markurtz Apr 9, 2025
62cd7e9
Fix synthetic data generation edge case where text is much larger tha…
markurtz Apr 9, 2025
94efbd4
Update src/guidellm/dataset/synthetic.py
markurtz Apr 10, 2025
a3e86d8
Update src/guidellm/benchmark/benchmark.py
markurtz Apr 10, 2025
c7476ab
Update src/guidellm/benchmark/benchmark.py
markurtz Apr 10, 2025
3d8cd62
Update src/guidellm/benchmark/benchmark.py
markurtz Apr 10, 2025
dbc4789
Update src/guidellm/benchmark/benchmark.py
markurtz Apr 10, 2025
649a86d
Updates for pydantic export with polymorphism and general cleanup
markurtz Apr 10, 2025
4183512
Fixes for json / yaml output
markurtz Apr 10, 2025
f8161ed
Ensure style and types pass, remove tests that are no longer relevant…
markurtz Apr 11, 2025
3b821c8
Move metrics to subobject in output
sjmonson Apr 11, 2025
5e63061
Move requests to subobject in output
sjmonson Apr 11, 2025
82a381f
Replace Request breakdown with generic class
sjmonson Apr 11, 2025
31adea4
Define sampling sizes and counts as StatusBreakdowns
sjmonson Apr 11, 2025
f8c5e7a
Set a default type for SuccessfulT
sjmonson Apr 11, 2025
93f0fd1
Fix case chnage on requests_per_second
sjmonson Apr 11, 2025
00a210d
Plumb output changes though progress and summary
sjmonson Apr 11, 2025
cf160b6
Pluralization is hard
sjmonson Apr 11, 2025
2bedc6d
Fix changes after rebase
sjmonson Apr 11, 2025
331978b
Fix/ignore linting errors due to line length changes
sjmonson Apr 11, 2025
c449bde
Fix double quotes inside a double qoute f-string
sjmonson Apr 11, 2025
4cd904d
importlib.resources.files requires valid module
sjmonson Apr 11, 2025
48098fc
Fix for restructuring of output and general simplification based on f…
markurtz Apr 11, 2025
0263361
Fix quality, unit, integration, and e2e tests
markurtz Apr 11, 2025
b164b4b
Just kidding, let's try that again and hopefully fix quality and tests
markurtz Apr 11, 2025
b411db3
Trying one more time for quality
markurtz Apr 11, 2025
d0d31d3
Bump min python to 3.9
sjmonson Apr 11, 2025
70aa669
Revert "Bump min python to 3.9"
sjmonson Apr 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/development.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ jobs:
strategy:
matrix:
python:
- "3.12"
- "3.8"
- "3.13"
- "3.9"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -29,8 +29,8 @@ jobs:
strategy:
matrix:
python:
- "3.12"
- "3.8"
- "3.13"
- "3.9"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ jobs:
strategy:
matrix:
python:
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -31,11 +31,11 @@ jobs:
strategy:
matrix:
python:
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -52,11 +52,11 @@ jobs:
strategy:
matrix:
python:
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
strategy:
matrix:
python:
- "3.12"
- "3.8"
- "3.13"
- "3.9"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -32,8 +32,8 @@ jobs:
strategy:
matrix:
python:
- "3.12"
- "3.8"
- "3.13"
- "3.9"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -52,7 +52,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.8"
python-version: "3.9"
- name: Install pre-commit
run: pip install pre-commit
- name: Run pre-commit checks
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ jobs:
strategy:
matrix:
python:
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -32,11 +32,11 @@ jobs:
strategy:
matrix:
python:
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand All @@ -53,11 +53,11 @@ jobs:
strategy:
matrix:
python:
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
steps:
- uses: actions/checkout@v4
- name: Set up Python
Expand Down
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ where = ["src"]
include = ["*"]

[tool.setuptools.package-data]
guidellm = ["*"]
"guidellm.data" = ["*.gz"]


# ************************************************
Expand All @@ -32,6 +32,7 @@ dependencies = [
"loguru",
"numpy",
"pillow",
"protobuf",
"pydantic>=2.0.0",
"pydantic-settings>=2.0.0",
"pyyaml>=6.0.0",
Expand Down Expand Up @@ -77,7 +78,7 @@ dev = [


[project.entry-points.console_scripts]
guidellm = "guidellm.main:generate_benchmark_report_cli"
guidellm = "guidellm.__main__:cli"
guidellm-config = "guidellm.config:print_config"


Expand Down
16 changes: 12 additions & 4 deletions src/guidellm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,22 @@
# flake8: noqa

import os
import transformers # type: ignore
import logging
import contextlib

os.environ["TOKENIZERS_PARALLELISM"] = "false" # Silence warnings for tokenizers
transformers.logging.set_verbosity_error() # Silence warnings for transformers

with open(os.devnull, "w") as devnull, contextlib.redirect_stderr(
devnull
), contextlib.redirect_stdout(devnull):
from transformers.utils import logging as hf_logging # type: ignore[import]

# Set the log level for the transformers library to ERROR
# to ignore None of PyTorch, TensorFlow found
os.environ["TOKENIZERS_PARALLELISM"] = "false" # Silence warnings for tokenizers
hf_logging.set_verbosity_error()
logging.getLogger("transformers").setLevel(logging.ERROR)

from .config import settings
from .logger import configure_logger, logger
from .main import generate_benchmark_report

__all__ = ["configure_logger", "logger", "settings", "generate_benchmark_report"]
Loading