Skip to content

Refactor of the Scheduler package to enable or setup for: distributed benchmarks, multi-turn requests, advanced stopping criteria, large concurrency, multi modality, evaluations #251

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

Draft
wants to merge 18 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
9eaa565
Initial state for new refactor of scheduler
markurtz Jul 31, 2025
218cdfc
Implement SchedulingStrategy and derivative classes so they work with…
markurtz Jul 31, 2025
a5ccd70
Finalize adapting scheduler strategies to new refactor logic, additio…
markurtz Jul 31, 2025
4926284
Initial refactoring of backend and generation objects to work with ne…
markurtz Aug 1, 2025
4a789bc
Finalize refactoring of backend package to work with new scheduler re…
markurtz Aug 1, 2025
d8858b6
Refactors to simplify and enable benchmark profiles
markurtz Aug 4, 2025
8098f33
Finalize refactor of profile, refactor benchmarker
markurtz Aug 5, 2025
6ea2396
Refactor benchmark object, benchmarker, and introduce aggregators as …
markurtz Aug 6, 2025
764ea4a
Refactor entyrpoints and benchmark pathways for new scheduler and ben…
markurtz Aug 7, 2025
92b41e4
Refactor and updates for progress and outputs to work with the new st…
markurtz Aug 9, 2025
8c70303
Latest state with the bulk of tests for the scheduler and bug fixes
markurtz Aug 11, 2025
78a0258
Tests and fixes for WorkerProcess and supporting changes
markurtz Aug 12, 2025
fcd79dc
Fix for inheritance chain in backend ABC
sjmonson Aug 13, 2025
d67119e
Update backend component unit tests
sjmonson Aug 13, 2025
1b2c185
Backend typing cleanup
sjmonson Aug 13, 2025
b5f510e
Add tests for openai completion code
sjmonson Aug 13, 2025
0c0a8f2
Implement worker group and worker tests, fix any bugs/issues that pop…
markurtz Aug 13, 2025
0c6f679
Implement tests and fixes for scheduler to finish of scheduler packag…
markurtz Aug 14, 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
Empty file added example_usage.py
Empty file.
17 changes: 11 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,13 @@ keywords = [
]
dependencies = [
"click>=8.0.0,<8.2.0",
"culsans~=0.9.0",
"datasets",
"eval_type_backport",
"ftfy>=6.0.0",
"httpx[http2]<1.0.0",
"loguru",
"msgpack",
"numpy",
"pillow",
"protobuf",
Expand Down Expand Up @@ -139,6 +142,7 @@ ignore_missing_imports=true


[tool.ruff]
target-version = "py39"
line-length = 88
indent-width = 4
exclude = ["build", "dist", "env", ".venv"]
Expand All @@ -149,15 +153,16 @@ indent-style = "space"

[tool.ruff.lint]
ignore = [
"PLR0913",
"TC001",
"COM812",
"ISC001",
"TC002",
"COM812", # ignore trailing comma errors due to older Python versions
"PD011", # ignore .values usage since ruff assumes it's a Pandas DataFrame
"PLR0913", # ignore too many arguments in function definitions
"PLW1514", # allow Path.open without encoding
"RET505", # allow `else` blocks
"RET506", # allow `else` blocks
"PD011", # ignore .values usage since ruff assumes it's a Pandas DataFrame
"S311", # allow standard pseudo-random generators
"TC001", # ignore imports used only for type checking
"TC002", # ignore imports used only for type checking
"TC003", # ignore imports used only for type checking
]
select = [
# Rules reference: https://docs.astral.sh/ruff/rules/
Expand Down
27 changes: 14 additions & 13 deletions src/guidellm/backend/__init__.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
"""
Backend infrastructure for GuideLLM language model interactions.

Provides abstract base classes, implemented backends, request/response objects,
and timing utilities for standardized communication with LLM providers.
"""

from .backend import (
Backend,
BackendType,
)
from .openai import CHAT_COMPLETIONS_PATH, TEXT_COMPLETIONS_PATH, OpenAIHTTPBackend
from .response import (
RequestArgs,
ResponseSummary,
StreamingResponseType,
StreamingTextResponse,
from .objects import (
GenerationRequest,
GenerationRequestTimings,
GenerationResponse,
)

__all__ = [
"CHAT_COMPLETIONS_PATH",
"TEXT_COMPLETIONS_PATH",
"Backend",
"BackendType",
"OpenAIHTTPBackend",
"RequestArgs",
"ResponseSummary",
"StreamingResponseType",
"StreamingTextResponse",
"GenerationRequest",
"GenerationRequestTimings",
"GenerationResponse",
]
Loading
Loading