From b01477499a103fecab86d35df271bb1f3a69cd55 Mon Sep 17 00:00:00 2001 From: faresobeid <111092724+faresobeid@users.noreply.github.com> Date: Sun, 18 Oct 2026 13:34:33 +0000 Subject: [PATCH 1/3] Bump vLLM to 0.32.0 --- .../src/prime_rl/utils/parsers.py | 4 +- pyproject.toml | 28 +- src/prime_rl/inference/patches.py | 196 +---- src/prime_rl/inference/vllm/serving_tokens.py | 11 +- src/prime_rl/orchestrator/clients.py | 6 +- .../deepseek_v4/configuration_deepseek_v4.py | 16 +- src/prime_rl/utils/transformers_compat.py | 32 - .../unit/inference/test_routed_experts_pd.py | 1 + tests/unit/inference/test_serving_tokens.py | 8 +- tests/unit/test_parsers.py | 4 +- uv.lock | 672 ++++-------------- 11 files changed, 196 insertions(+), 782 deletions(-) delete mode 100644 src/prime_rl/utils/transformers_compat.py diff --git a/packages/prime-rl-configs/src/prime_rl/utils/parsers.py b/packages/prime-rl-configs/src/prime_rl/utils/parsers.py index 7ff04b99647..b22d247f65a 100644 --- a/packages/prime-rl-configs/src/prime_rl/utils/parsers.py +++ b/packages/prime-rl-configs/src/prime_rl/utils/parsers.py @@ -36,8 +36,8 @@ (re.compile(r"^poolside/Laguna"), "poolside_v1"), (re.compile(r"^PrimeIntellect/INTELLECT-3"), "deepseek_r1"), (re.compile(r"^nvidia/NVIDIA-Nemotron-3-Super"), "nemotron_v3"), - (re.compile(r"^nvidia/NVIDIA-Nemotron-3-Nano"), "nano_v3"), - (re.compile(r"^nvidia/NVIDIA-Nemotron-3\.5"), "nano_v3"), + (re.compile(r"^nvidia/NVIDIA-Nemotron-3-Nano"), "nemotron_v3"), + (re.compile(r"^nvidia/NVIDIA-Nemotron-3\.5"), "nemotron_v3"), (re.compile(r"^stepfun-ai/Step-3\.5"), "step3p5"), # Only Qwen3 Thinking models reason — Instruct/base models do not. (re.compile(r"^Qwen/Qwen3-.*Thinking"), "deepseek_r1"), diff --git a/pyproject.toml b/pyproject.toml index 52a18fe03bc..b8554e4ae46 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ "jaxtyping>=0.3.2", "loguru>=0.7.3", "numpy>=2.2.6", - "transformers==5.6.2", + "transformers==5.19.0", "wandb>=0.26.1", "wandb-workspaces>=0.4.3", "prime>=0.8.0", @@ -55,7 +55,7 @@ gpu = [ "torchvision ; sys_platform == 'linux'", "torchaudio ; sys_platform == 'linux'", "torchdata>=0.11.0 ; sys_platform == 'linux'", - "vllm>=0.31.0 ; sys_platform == 'linux'", + "vllm>=0.32.0 ; sys_platform == 'linux'", "mooncake-transfer-engine>=0.3.10.post2 ; sys_platform == 'linux'", "ring-flash-attn>=0.1.8 ; sys_platform == 'linux'", "torchtitan ; sys_platform == 'linux'", @@ -149,10 +149,9 @@ override-dependencies = [ # Shared by vLLM, TileLang, and the pinned FlashAttention 4 runtime. "apache-tvm-ffi==0.1.11", "nvidia-cudnn-cu13>=9.15 ; sys_platform == 'linux'", - # vLLM 0.31.0 requires this exact CUTLASS DSL version and quack-kernels 0.6.5. + # vLLM 0.32.0 requires this exact CUTLASS DSL version and quack-kernels 0.6.5. # Keep this pin aligned with quack-kernels and the flash-attn-4 revision below. - "nvidia-cutlass-dsl==4.7.1", - "transformers==5.6.2", + "nvidia-cutlass-dsl==4.8.0", "torch>=2.13.0", "openenv-core", ] @@ -176,9 +175,11 @@ members = [ ] # Tau tasksets require litellm<1.82.7, while Harbor requires litellm>=1.92.0. # Apex pins a verifiers git revision instead of the editable workspace member. -# ALE CLI requires numpy>=2.4.4, while vLLM 0.31.0 (via mistral-common) requires numpy<2.4. +# ALE CLI requires numpy>=2.4.4, while vLLM 0.32.0 (via mistral-common) requires numpy<2.4. +# IFBench requires setuptools<78, while vLLM 0.32.0 requires setuptools>=78.1.1. # A workspace shares one lock, so these packages need separate environments. exclude = [ + "deps/prime-envs/environments/if/ifbench", "deps/prime-envs/environments/office/ale_cli", "deps/prime-envs/environments/tool_use/tau2_bench", "deps/prime-envs/environments/tool_use/tau2_synth", @@ -222,10 +223,10 @@ requires-dist = ["nixl-cu13==0.10.1"] # so resolve that variant without installing both runtime packages. [[tool.uv.dependency-metadata]] name = "nvidia-cutlass-dsl" -version = "4.7.1" +version = "4.8.0" requires-dist = [ - "nvidia-cutlass-dsl-libs-base==4.7.1", - "nvidia-cutlass-dsl-libs-cu13==4.7.1", + "nvidia-cutlass-dsl-libs-base==4.8.0", + "nvidia-cutlass-dsl-libs-cu13==4.8.0", ] [tool.uv.exclude-newer-package] @@ -233,8 +234,11 @@ requires-dist = [ # bounded cutoff mirroring the one in deps/verifiers/pyproject.toml harbor = "2026-10-08T00:00:00Z" tokenspeed-mla = false -# vLLM 0.31.0 pins flashinfer-python 0.7.0.post1, published inside the rolling window +# vLLM 0.32.0 pins flashinfer-python 0.7.0.post1, published inside the rolling window flashinfer-python = false +# vLLM 0.32.0 pins these, published inside the rolling window +instanttensor = false +humming-kernels = false fastokens = false flash_attn_3 = false # PrimeIntellect-published packages in this project's dependency closure — @@ -284,8 +288,8 @@ vllm-router = [ { url = "https://github.com/PrimeIntellect-ai/router/releases/download/v0.2.3/vllm_router-0.2.3-cp38-abi3-manylinux_2_28_aarch64.whl", marker = "platform_machine == 'aarch64'" }, ] vllm = [ - { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_x86_64.whl", marker = "platform_machine == 'x86_64'" }, - { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_aarch64.whl", marker = "platform_machine == 'aarch64'" }, + { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_x86_64.whl", marker = "platform_machine == 'x86_64'" }, + { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_aarch64.whl", marker = "platform_machine == 'aarch64'" }, ] deep-ep = [ { url = "https://github.com/PrimeIntellect-ai/prime-kernels/releases/download/v0.1.1/deep_ep-1.2.1+29d31c0-cp312-cp312-linux_x86_64.whl", marker = "platform_machine == 'x86_64'" }, diff --git a/src/prime_rl/inference/patches.py b/src/prime_rl/inference/patches.py index bdc4e8c8ad8..9af3142ea81 100644 --- a/src/prime_rl/inference/patches.py +++ b/src/prime_rl/inference/patches.py @@ -16,16 +16,12 @@ def apply_shared_vllm_patches(): patch_gpt_oss_weight_loading() patch_qwen38_weight_loading() - monkey_patch_shm_buffer_ownership() _patch_lora_key_prefix() _patch_qwen35_moe_lora_format() - monkey_patch_nano_v3_reasoning_parser() monkey_patch_minimax_m2_think_end_passthrough() monkey_patch_routed_experts_with_pd_connectors() monkey_patch_kv_xfer_finished_tolerate_freed() monkey_patch_online_fp8_parameter_cast() - monkey_patch_deepseek_v4_allowed_layer_types() - monkey_patch_tokenize_params_validation() monkey_patch_strip_routed_experts_from_chat() monkey_patch_dp_coordinator_startup_timeout() monkey_patch_minimax_m2_for_lora() @@ -37,65 +33,6 @@ def apply_shared_vllm_patches(): monkey_patch_deepseek_v4_attn_sink_loading() -def monkey_patch_shm_buffer_ownership(): - """Own out-of-band buffers before releasing a reusable vLLM SHM slot.""" - import pickle - - import zmq - from vllm.distributed.device_communicators import shm_broadcast - - # Backport https://github.com/vllm-project/vllm/pull/61000; remove when our - # minimum vLLM version includes it. Retained routed-expert arrays otherwise - # alias ring slots that subsequent messages can overwrite. - MessageQueue = shm_broadcast.MessageQueue - if getattr(MessageQueue.dequeue, "_prime_rl_owns_shm_buffers", False): - return - - def dequeue(self, timeout: float | None = None, indefinite: bool = False): - if self._is_local_reader: - with self.acquire_read(timeout, indefinite) as buf: - overflow = buf[0] == 1 - if not overflow: - offset = 3 - buf_count = shm_broadcast.from_bytes_big(buf[1:offset]) - all_buffers = [] - for i in range(buf_count): - buf_offset = offset + 4 - buf_len = shm_broadcast.from_bytes_big(buf[offset:buf_offset]) - offset = buf_offset + buf_len - buffer = buf[buf_offset:offset] - all_buffers.append(buffer if i == 0 else bytearray(buffer)) - obj = pickle.loads(all_buffers[0], buffers=all_buffers[1:]) - if overflow: - obj = MessageQueue.recv(self.local_socket, timeout) - elif self._is_remote_reader: - obj = MessageQueue.recv(self.remote_socket, timeout) - else: - raise RuntimeError("Only readers can dequeue") - return obj - - def _rebuild_tensor(buf, shape: tuple[int, ...], dtype_str: str) -> torch.Tensor: - dtype = getattr(torch, dtype_str) - assert isinstance(dtype, torch.dtype) - if isinstance(buf, zmq.Frame): - try: - return torch.frombuffer(buf, dtype=torch.uint8).view(dtype).view(shape) - except ValueError: - pass - raw = buf if isinstance(buf, bytearray) else bytearray(buf) - if not raw: - assert 0 in shape - return torch.empty(shape, dtype=dtype) - return torch.frombuffer(raw, dtype=torch.uint8).view(dtype).view(shape) - - # Pickle resolves this reducer by its module and name in receiving processes. - _rebuild_tensor.__module__ = shm_broadcast.__name__ - _rebuild_tensor.__qualname__ = "_rebuild_tensor" - dequeue._prime_rl_owns_shm_buffers = True - shm_broadcast._rebuild_tensor = _rebuild_tensor - MessageQueue.dequeue = dequeue - - @dataclass class PackedSamplingMask: """A finished request's sampling masks in CSR form: ``ids[sum(counts[:i]):][:counts[i]]`` @@ -147,27 +84,10 @@ def _new_completion_output(self, token_ids, finish_reason, stop_reason): RequestState._new_completion_output = _new_completion_output -def monkey_patch_deepseek_v4_allowed_layer_types(): - """Let vLLM's `DeepseekV4Config` construct under a transformers pin below 5.15. - - `vllm/transformers_utils/configs/deepseek_v4.py` leaves `layer_types` to - `PretrainedConfig`, whose validator checks it against a vocabulary that only gained V4's - compressed attention names in transformers 5.15, so `AutoConfig.from_pretrained` on any - DeepSeek V4 checkpoint raises. vLLM declares `transformers>=5.5.3`, so this is a gap in - upstream's own version floor rather than something prime-rl introduced. - - `EngineArgs.__post_init__` loads general plugins before `create_model_config`, which is why - patching here is early enough. The trainer applies the same shim on its own import path. - """ - from prime_rl.utils.transformers_compat import allow_deepseek_v4_layer_types - - allow_deepseek_v4_layer_types() - - def monkey_patch_deepseek_v4_c128_boundary(): """Fix DeepSeek V4 long-context KV corruption under piecewise CUDA graphs. - On vLLM 0.30+, including the pinned 0.31.0, the piecewise CUDA graphs are captured on a step + On vLLM 0.30+, including the pinned 0.32.0, the piecewise CUDA graphs are captured on a step that skips writing C128 compressed KV, so every replay skips it too. Mixed batches of up to 512 tokens never store their C128 entries, later queries attend over stale compressed KV, and long-context rollouts drift from the trainer, inflating mismatch KL. @@ -294,6 +214,7 @@ def monkey_patch_kv_xfer_finished_tolerate_freed(): """ from vllm.logger import init_logger from vllm.v1.core.sched.scheduler import Scheduler + from vllm.v1.metrics.stats import KV_FETCH_COMPLETED_WAITING from vllm.v1.request import RequestStatus logger = init_logger("vllm.v1.core.sched.scheduler") @@ -314,6 +235,7 @@ def _update_from_kv_xfer_finished(self, kv_connector_output): req = self.requests[req_id] if req.status == RequestStatus.WAITING_FOR_REMOTE_KVS: self.finished_recving_kv_req_ids.add(req_id) + self._set_kv_fetch_stage(req, KV_FETCH_COMPLETED_WAITING) else: assert RequestStatus.is_finished(req.status) self._free_blocks(self.requests[req_id]) @@ -330,23 +252,6 @@ def _update_from_kv_xfer_finished(self, kv_connector_output): logger.warning("Patched Scheduler._update_from_kv_xfer_finished to tolerate freed (aborted) KV-transfer reqs.") -def monkey_patch_nano_v3_reasoning_parser(): - from vllm.reasoning.abs_reasoning_parsers import ReasoningParserManager - from vllm.reasoning.deepseek_r1_reasoning_parser import DeepSeekR1ReasoningParser - - class NanoV3ReasoningParser(DeepSeekR1ReasoningParser): - def extract_reasoning(self, model_output, request): - reasoning_content, final_content = super().extract_reasoning(model_output, request) - chat_template_kwargs = getattr(request, "chat_template_kwargs", None) - - if chat_template_kwargs and chat_template_kwargs.get("enable_thinking") is False and final_content is None: - reasoning_content, final_content = final_content, reasoning_content - - return reasoning_content, final_content - - ReasoningParserManager.register_module("nano_v3", module=NanoV3ReasoningParser) - - def monkey_patch_minimax_m2_think_end_passthrough(): """Keep the literal ```` in MiniMax-M2 content on tool-calling turns. @@ -384,7 +289,7 @@ def _patched_config(): def monkey_patch_routed_experts_with_pd_connectors(): """Let vLLM's routed-experts capture (AuxOutput connector) run on NIXL P/D instances. - vLLM 0.31 rejects routed-experts capture with P/D connectors, because a decode instance never + vLLM (0.32 included) rejects routed-experts capture with P/D connectors, because a decode instance never computes a remotely prefilled prompt, so it has no rows for it. This carries our upstream fix (AuxOutput patch 02): a request on a decode instance emits rows only from its first forward on this instance, and the worker does not buffer the @@ -544,7 +449,7 @@ def _patch_qwen35_moe_lora_format(): def _patch_lora_key_prefix(): """Accept both bare-suffix and fully-qualified expert module names in LoRA adapters. - Copy of vLLM 0.24.0's ``LoRAModel.from_local_checkpoint`` with one change: the + Copy of vLLM 0.32.0's ``LoRAModel.from_local_checkpoint`` with one change: the ``.experts`` branch of ``check_unexpected_modules`` accepts either the bare suffix (``down_proj``) or the qualified per-expert name (``experts.N.down_proj``), where upstream only accepts the qualified form. Our trainer's 2D per-expert adapters @@ -556,7 +461,6 @@ def _patch_lora_key_prefix(): LoRAModel, MoEEPLoadSpec, PEFTHelper, - TensorizerConfig, WeightsMapper, _is_remote_expert_key, get_lora_id, @@ -577,7 +481,6 @@ def _patched_from_local_checkpoint( dtype: torch.dtype | None = None, model_vocab_size: int | None = None, weights_mapper: WeightsMapper | None = None, - tensorizer_config_dict: dict | None = None, skip_prefixes: list[str] | None = None, moe_ep_spec: MoEEPLoadSpec | None = None, ) -> "LoRAModel": @@ -644,24 +547,7 @@ def check_unexpected_modules(modules: dict): f" Please verify that the loaded LoRA module is correct" ) - if tensorizer_config_dict: - from tensorizer import TensorDeserializer - - tensorizer_config = TensorizerConfig(**tensorizer_config_dict) - tensorizer_dir = tensorizer_config.tensorizer_dir - if tensorizer_dir is None: - raise ValueError("tensorizer_dir must be set in tensorizer config.") - lora_tensor_path = os.path.join(tensorizer_dir, "adapter_model.tensors") - tensorizer_args = tensorizer_config._construct_tensorizer_args() - tensors = TensorDeserializer( - lora_tensor_path, - dtype=tensorizer_config.dtype, - device=device, - **tensorizer_args.deserialization_kwargs, - ) - check_unexpected_modules(tensors) - - elif os.path.isfile(lora_tensor_path): + if os.path.isfile(lora_tensor_path): # Find unexpected modules. # Use safetensor key as a source of truth to find expected modules. # in peft if you have target_modules A, B, C and C does not exist @@ -702,76 +588,6 @@ def check_unexpected_modules(modules: dict): LoRAModel.from_local_checkpoint = classmethod(_patched_from_local_checkpoint) -# Monkeypatch TokenizeParams to fix overly conservative validation -def monkey_patch_tokenize_params_validation(): - """ - Patch TokenizeParams validation to only reject requests where the prompt - itself exceeds max_model_len, not where prompt + max_tokens > max_model_len. - - Original behavior: - - Rejects if prompt_len > (max_model_len - max_tokens) - - Patched behavior: - - Only rejects if prompt_len > max_model_len - - Lets the engine naturally cap generation at max_model_len - """ - from vllm.exceptions import VLLMValidationError - from vllm.renderers.params import TokenizeParams - - def _patched_token_len_check(self, tokenizer, tokens): - """Only validate that prompt fits in max_model_len, not prompt+max_tokens""" - if self.max_total_tokens is not None and len(tokens) > self.max_total_tokens: - raise VLLMValidationError( - f"The prompt is {len(tokens)} tokens, which exceeds the " - f"model's maximum context length of {self.max_total_tokens} tokens. " - f"Please reduce the length of the input prompt.", - parameter="input_tokens", - value=len(tokens), - ) - return tokens - - def _patched_text_len_check(self, tokenizer, text): - """Only validate text length against max_model_len, not max_input_tokens""" - if self.max_total_tokens is None or tokenizer is None: - return text - - if self.truncate_prompt_tokens is None: - max_chars = self.max_total_tokens * tokenizer.max_chars_per_token - if len(text) > max_chars: - raise VLLMValidationError( - f"You passed {len(text)} input characters. " - f"However, the model's context length is only " - f"{self.max_total_tokens} tokens " - f"(at most {max_chars} characters). " - f"Please reduce the length of the input prompt.", - parameter="input_text", - value=len(text), - ) - return text - - def _patched_get_encode_kwargs(self): - """Use max_total_tokens (max_model_len) instead of max_input_tokens for HF tokenizer truncation. - - The original uses max_input_tokens (= max_model_len - max_tokens) + 1, which causes HuggingFace's - tokenizer.encode() to left-truncate prompts before _token_len_check even runs. - """ - max_length = self.truncate_prompt_tokens - if max_length is not None and max_length < 0: - max_length = self.max_total_tokens - elif max_length is None and self.max_total_tokens is not None: - max_length = self.max_total_tokens + 1 - - return dict( - truncation=max_length is not None, - max_length=max_length, - add_special_tokens=self.add_special_tokens, - ) - - TokenizeParams._token_len_check = _patched_token_len_check - TokenizeParams._text_len_check = _patched_text_len_check - TokenizeParams.get_encode_kwargs = _patched_get_encode_kwargs - - def monkey_patch_minimax_m2_for_lora(): """Patch vLLM's MiniMaxM2 model for LoRA compatibility. diff --git a/src/prime_rl/inference/vllm/serving_tokens.py b/src/prime_rl/inference/vllm/serving_tokens.py index 70474b88ca2..975561f1c85 100644 --- a/src/prime_rl/inference/vllm/serving_tokens.py +++ b/src/prime_rl/inference/vllm/serving_tokens.py @@ -34,7 +34,8 @@ from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( GenerateRequest, GenerateResponse, - GenerateResponseChoice, + GenerateTokensChoice, + GenerateTokensResponse, ) from vllm.entrypoints.scale_out.token_in_token_out.serving import ServingTokens from vllm.entrypoints.serve.engine.protocol import ErrorResponse @@ -45,13 +46,13 @@ LOGPROB_SENTINEL = -9999.0 -class PrimeRlGenerateResponseChoice(GenerateResponseChoice): +class PrimeRlGenerateResponseChoice(GenerateTokensChoice): routed_experts: dict[str, Any] | None = None # type: ignore[assignment] completion_logprobs: dict[str, Any] | None = None sampling_mask: dict[str, Any] | None = None # type: ignore[assignment] -class PrimeRlGenerateResponse(GenerateResponse): +class PrimeRlGenerateResponse(GenerateTokensResponse): choices: list[PrimeRlGenerateResponseChoice] @@ -107,7 +108,7 @@ async def __aiter__(self): output.sampling_mask = None yield request_output - def post_process(self, response: GenerateResponse) -> PrimeRlGenerateResponse: + def post_process(self, response: GenerateTokensResponse) -> PrimeRlGenerateResponse: choices = [ PrimeRlGenerateResponseChoice( **choice.model_dump(exclude={"routed_experts", "sampling_mask"}), @@ -150,6 +151,6 @@ async def serve_tokens_full_generator( # type: ignore[override] model_name, request_metadata, ) - if isinstance(response, GenerateResponse): + if isinstance(response, GenerateTokensResponse): response = packed.post_process(response) return response diff --git a/src/prime_rl/orchestrator/clients.py b/src/prime_rl/orchestrator/clients.py index c6d2de97f87..46de44dd08e 100644 --- a/src/prime_rl/orchestrator/clients.py +++ b/src/prime_rl/orchestrator/clients.py @@ -513,10 +513,10 @@ async def prefill_logprobs(openai: AsyncOpenAI, model: str, token_ids: list[int] + ``prompt_logprobs`` (the prime-rl server-side extension in ``inference/vllm/serving_tokens.py``). Returns one logprob per token (0.0 for the leading token, which has no preceding context).""" - from vllm.entrypoints.scale_out.token_in_token_out.protocol import GenerateResponse + from vllm.entrypoints.scale_out.token_in_token_out.protocol import GenerateTokensResponse # `/inference/v1/generate` is mounted at server root, not under `/v1`: pass an - # absolute URL so the SDK skips the base-url merge. vLLM's `GenerateResponse` + # absolute URL so the SDK skips the base-url merge. vLLM's `GenerateTokensResponse` # isn't an `openai.BaseModel`, so the SDK parse layer rejects it as `cast_to`; # `cast_to=httpx.Response` lets the SDK still build the request (auth, retries, # timeouts) and hand back the raw response for us to validate. @@ -530,7 +530,7 @@ async def prefill_logprobs(openai: AsyncOpenAI, model: str, token_ids: list[int] "sampling_params": {"max_tokens": 1, "temperature": 1.0, "top_p": 1.0, "prompt_logprobs": 1}, }, ) - response = GenerateResponse.model_validate_json(http_response.content) + response = GenerateTokensResponse.model_validate_json(http_response.content) # `prompt_logprobs[i]` is a `{token_id: Logprob}` dict, or `None` for the # leading token (no preceding context). Flatten to `list[float]`. flat: list[float] = [] diff --git a/src/prime_rl/trainer/models/deepseek_v4/configuration_deepseek_v4.py b/src/prime_rl/trainer/models/deepseek_v4/configuration_deepseek_v4.py index 55cf2591c01..db003634e8f 100644 --- a/src/prime_rl/trainer/models/deepseek_v4/configuration_deepseek_v4.py +++ b/src/prime_rl/trainer/models/deepseek_v4/configuration_deepseek_v4.py @@ -3,12 +3,11 @@ from huggingface_hub.dataclasses import strict from transformers.configuration_utils import PretrainedConfig -from prime_rl.utils.transformers_compat import DEEPSEEK_V4_LAYER_TYPES, allow_deepseek_v4_layer_types - -# Below transformers 5.15 the base `validate_layer_type` rejects V4's layer types outright, and -# it runs from `super().__init__()`, ahead of this class's own override. The inference half of -# the repo needs the same shim (see `inference/patches.py`). -allow_deepseek_v4_layer_types() +DEEPSEEK_V4_LAYER_TYPES = ( + "sliding_attention", + "compressed_sparse_attention", + "heavily_compressed_attention", +) @strict @@ -343,9 +342,8 @@ def validate_layer_type(self) -> None: plain method override on an undecorated subclass, whose `validate()` closure would keep calling the base `PretrainedConfig.validate_layer_type`. The base one still runs first, from `super().__init__()`, but it checks - `layer_types` against transformers' generic vocabulary, which - `allow_deepseek_v4_layer_types` widened above precisely so V4's names get - through it. Narrowing them to `DEEPSEEK_V4_LAYER_TYPES` is what this adds. + `layer_types` against transformers' generic vocabulary. Narrowing them to + `DEEPSEEK_V4_LAYER_TYPES` is what this adds. """ if len(self.layer_types) != self.num_hidden_layers: raise ValueError( diff --git a/src/prime_rl/utils/transformers_compat.py b/src/prime_rl/utils/transformers_compat.py deleted file mode 100644 index 31c3c9ea2c3..00000000000 --- a/src/prime_rl/utils/transformers_compat.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Shims for architectures newer than the pinned transformers version. - -Kept free of heavy imports: this is loaded from a vLLM general plugin, in every vLLM -process, before the engine parses a model config. -""" - -DEEPSEEK_V4_LAYER_TYPES = ( - "sliding_attention", - "compressed_sparse_attention", - "heavily_compressed_attention", -) - - -def allow_deepseek_v4_layer_types() -> None: - """Add V4's compressed attention names to the vocabulary transformers validates against. - - `PretrainedConfig.validate_layer_type` checks `layer_types` entries against a module-level - tuple, and transformers only added V4's two compressed names in 5.15. Below that, every - DeepSeek V4 config raises on construction: prime-rl's own (whose `validate_layer_type` - override cannot help, since the base one runs first, from `super().__init__()`) and vLLM's - (`vllm/transformers_utils/configs/deepseek_v4.py`, which has no override at all). Extending - the tuple is what lets the repo hold a transformers pin below 5.15 and still serve V4. - """ - from transformers import configuration_utils - - unknown = tuple( - layer_type - for layer_type in DEEPSEEK_V4_LAYER_TYPES - if layer_type not in configuration_utils.ALLOWED_LAYER_TYPES - ) - if unknown: - configuration_utils.ALLOWED_LAYER_TYPES += unknown diff --git a/tests/unit/inference/test_routed_experts_pd.py b/tests/unit/inference/test_routed_experts_pd.py index 20252af287d..0ea1a1c1be0 100644 --- a/tests/unit/inference/test_routed_experts_pd.py +++ b/tests/unit/inference/test_routed_experts_pd.py @@ -18,6 +18,7 @@ def test_remote_prefill_rows_start_at_first_forward(): request_id="r", block_hashes=[b"a" * 32], num_tokens=6, + num_prompt_tokens=6, num_output_tokens=0, num_computed_tokens=5, # tokens [0, 5) were loaded from the prefill instance sampling_params=SimpleNamespace(routed_experts_prompt_start=0), diff --git a/tests/unit/inference/test_serving_tokens.py b/tests/unit/inference/test_serving_tokens.py index 79cb3076982..1af587df197 100644 --- a/tests/unit/inference/test_serving_tokens.py +++ b/tests/unit/inference/test_serving_tokens.py @@ -16,8 +16,8 @@ import numpy as np from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( - GenerateResponse, - GenerateResponseChoice, + GenerateTokensChoice, + GenerateTokensResponse, PlaceholderRangeInfo, ) from vllm.entrypoints.serve.engine.protocol import UsageInfo @@ -47,11 +47,11 @@ def test_generate_response_post_process_preserves_prompt_metadata(): ) capture.fields[0] = {"routed_experts": compact_routed_experts} usage = UsageInfo(prompt_tokens=4, completion_tokens=3, total_tokens=7) - response = GenerateResponse( + response = GenerateTokensResponse( request_id="request-id", model="test-model", choices=[ - GenerateResponseChoice( + GenerateTokensChoice( index=0, token_ids=[1, 2, 3], routed_experts="upstream-npy-payload", diff --git a/tests/unit/test_parsers.py b/tests/unit/test_parsers.py index 584fcb5e53d..d901f7111fc 100644 --- a/tests/unit/test_parsers.py +++ b/tests/unit/test_parsers.py @@ -55,8 +55,8 @@ ("PrimeIntellect/INTELLECT-3.1", "qwen3_coder", "deepseek_r1"), # NemotronH ("nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", "qwen3_coder", "nemotron_v3"), - ("nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", "qwen3_coder", "nano_v3"), - ("nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16", "qwen3_coder", "nano_v3"), + ("nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", "qwen3_coder", "nemotron_v3"), + ("nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16", "qwen3_coder", "nemotron_v3"), # StepFun ("stepfun-ai/Step-3.5-Flash", "step3p5", "step3p5"), # Qwen3 dense diff --git a/uv.lock b/uv.lock index 12acc4fa22b..dd78e7423cb 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 5 +revision = 3 requires-python = "==3.12.*" resolution-markers = [ "platform_machine == 'x86_64' and sys_platform == 'linux'", @@ -25,6 +25,8 @@ flash-attn-3 = false flash-mla = false flashinfer-python = false harbor = "2026-10-08T00:00:00Z" +humming-kernels = false +instanttensor = false nixl-cu13 = false prime = false prime-evals = false @@ -76,7 +78,6 @@ members = [ "i3-logic", "i3-math", "i3-science", - "ifbench", "ifeval", "kimina", "kuhn-poker", @@ -158,12 +159,11 @@ members = [ overrides = [ { name = "apache-tvm-ffi", specifier = "==0.1.11" }, { name = "nvidia-cudnn-cu13", marker = "sys_platform == 'linux'", specifier = ">=9.15" }, - { name = "nvidia-cutlass-dsl", specifier = "==4.7.1" }, + { name = "nvidia-cutlass-dsl", specifier = "==4.8.0" }, { name = "openenv-core" }, { name = "tilelang", specifier = "==0.1.12" }, { name = "torch", marker = "sys_platform != 'linux'", specifier = ">=2.13.0" }, { name = "torch", marker = "sys_platform == 'linux'", specifier = ">=2.13.0", index = "https://download.pytorch.org/whl/cu130" }, - { name = "transformers", specifier = "==5.6.2" }, ] [[manifest.dependency-metadata]] @@ -183,8 +183,8 @@ requires-dist = ["nixl-cu13==0.10.1"] [[manifest.dependency-metadata]] name = "nvidia-cutlass-dsl" -version = "4.7.1" -requires-dist = ["nvidia-cutlass-dsl-libs-base==4.7.1", "nvidia-cutlass-dsl-libs-cu13==4.7.1"] +version = "4.8.0" +requires-dist = ["nvidia-cutlass-dsl-libs-base==4.8.0", "nvidia-cutlass-dsl-libs-cu13==4.8.0"] [[package]] name = "absl-py" @@ -589,8 +589,7 @@ dependencies = [ { name = "google-genai" }, { name = "google-search-results" }, { name = "html2text" }, - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "mistralai" }, { name = "mpmath" }, { name = "networkx" }, @@ -636,8 +635,7 @@ name = "black" version = "26.5.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", version = "8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "click" }, { name = "mypy-extensions" }, { name = "packaging" }, { name = "pathspec" }, @@ -663,22 +661,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0e/c6/d1fe8bdea4a6088bd54b5a58bc40aed89a4e784cd796af7722a06f74bae7/blake3-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a25db3d36b55f5ed6a86470155cc749fc9c5b91c949b8d14f48658f9d960d9ec", size = 554211, upload-time = "2025-10-14T06:46:00.269Z" }, ] -[[package]] -name = "blis" -version = "1.3.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/d0/d0/d8cc8c9a4488a787e7fa430f6055e5bd1ddb22c340a751d9e901b82e2efe/blis-1.3.3.tar.gz", hash = "sha256:034d4560ff3cc43e8aa37e188451b0440e3261d989bb8a42ceee865607715ecd", size = 2644873, upload-time = "2025-11-17T12:28:30.511Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/11/69/363c8df8d98b3cc97be19aad6aabb2c9c53f372490d79316bdee92d476e7/blis-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3f6c595185176ce021316263e1a1d636a3425b6c48366c1fd712d08d0b71849a", size = 1230939, upload-time = "2025-11-17T12:27:46.19Z" }, - { url = "https://files.pythonhosted.org/packages/96/2a/fbf65d906d823d839076c5150a6f8eb5ecbc5f9135e0b6510609bda1e6b7/blis-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d734b19fba0be7944f272dfa7b443b37c61f9476d9ab054a9ac53555ceadd2e0", size = 2818835, upload-time = "2025-11-17T12:27:48.167Z" }, - { url = "https://files.pythonhosted.org/packages/d5/ad/58deaa3ad856dd3cc96493e40ffd2ed043d18d4d304f85a65cde1ccbf644/blis-1.3.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ef6d6e2b599a3a2788eb6d9b443533961265aa4ec49d574ed4bb846e548dcdb", size = 11366550, upload-time = "2025-11-17T12:27:49.958Z" }, - { url = "https://files.pythonhosted.org/packages/78/82/816a7adfe1f7acc8151f01ec86ef64467a3c833932d8f19f8e06613b8a4e/blis-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8c888438ae99c500422d50698e3028b65caa8ebb44e24204d87fda2df64058f7", size = 3023686, upload-time = "2025-11-17T12:27:52.062Z" }, - { url = "https://files.pythonhosted.org/packages/1e/e2/0e93b865f648b5519360846669a35f28ee8f4e1d93d054f6850d8afbabde/blis-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8177879fd3590b5eecdd377f9deafb5dc8af6d684f065bd01553302fb3fcf9a7", size = 14250939, upload-time = "2025-11-17T12:27:53.847Z" }, -] - [[package]] name = "bm25s" version = "0.3.9" @@ -788,15 +770,6 @@ requires-dist = [ { name = "verifiers", specifier = ">=0.4.0" }, ] -[[package]] -name = "catalogue" -version = "2.0.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/38/b4/244d58127e1cdf04cf2dc7d9566f0d24ef01d5ce21811bab088ecc62b5ea/catalogue-2.0.10.tar.gz", hash = "sha256:4f56daa940913d3f09d589c191c74e5a6d51762b3a9e37dd53b7437afd6cda15", size = 19561, upload-time = "2023-09-25T06:29:24.962Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/96/d32b941a501ab566a16358d68b6eb4e4acc373fab3c3c4d7d9e649f7b4bb/catalogue-2.0.10-py3-none-any.whl", hash = "sha256:58c2de0020aa90f4a2da7dfad161bf7b3b054c86a5f09fcedc0b2b740c109a9f", size = 17325, upload-time = "2023-09-25T06:29:23.337Z" }, -] - [[package]] name = "cbor2" version = "6.1.1" @@ -949,40 +922,15 @@ requires-dist = [ { name = "verifiers", specifier = ">=0.4.0" }, ] -[[package]] -name = "click" -version = "8.4.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "platform_machine == 'arm64' and sys_platform == 'darwin'", -] -sdist = { url = "https://files.pythonhosted.org/packages/9b/98/518d8e5081007684232226f475082b30087d0f585e8457db087298259f49/click-8.4.1.tar.gz", hash = "sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96", size = 353007, upload-time = "2026-05-22T04:08:37.769Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl", hash = "sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2", size = 116639, upload-time = "2026-05-22T04:08:35.26Z" }, -] - [[package]] name = "click" version = "8.4.2" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "platform_machine == 'x86_64' and sys_platform == 'linux'", - "platform_machine == 'aarch64' and sys_platform == 'linux'", -] sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" }, ] -[[package]] -name = "cloudpathlib" -version = "0.24.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/06/19/58bc6b5d7d0f81c7209b05445af477e147c486552f96665a5912211839b9/cloudpathlib-0.24.0.tar.gz", hash = "sha256:c521a984e77b47e656fe78e20a7e3e260e0ab45fc69e33ac01094227c979e34a", size = 53600, upload-time = "2026-04-30T00:54:43.265Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/5b/ba933f896d9b0b07608d575a8501e2b4e32166b60d84c430a4a7285ebe64/cloudpathlib-0.24.0-py3-none-any.whl", hash = "sha256:b1c51e2d2ec7dc4fed6538991f4aea849d6cf11a7e6b9069f86e461aa1f9b5b4", size = 63214, upload-time = "2026-04-30T00:54:42.06Z" }, -] - [[package]] name = "cloudpickle" version = "3.1.2" @@ -1065,15 +1013,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/35/63/6edf0415b072fff0bf8b546074dea3f0f9b148e49b601ac98bdc60a76c68/compressed_tensors-0.17.0-py3-none-any.whl", hash = "sha256:4a1b89b508f7efb8ffb4eee8a6e69e0452d9b080cae130146025c64fbe9fa9aa", size = 211714, upload-time = "2026-06-03T16:49:15.672Z" }, ] -[[package]] -name = "confection" -version = "1.3.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ca/65/efd0fe8a936fc8ca2978cb7b82581fb20d901c6039e746a808f746b7647b/confection-1.3.3.tar.gz", hash = "sha256:f0f6810d567ff73993fe74d218ca5e1ffb6a44fb03f391257fc5d033546cbfaa", size = 54895, upload-time = "2026-03-24T18:45:24.331Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/e4/d66708bdf0d92fb4d49b22cdff4b10cec38aca5dcd7e81d909bb55c65cd7/confection-1.3.3-py3-none-any.whl", hash = "sha256:b9fef9ee84b237ef4611ec3eb5797b70e13063e6310ad9f15536373f5e313c82", size = 35902, upload-time = "2026-03-24T18:45:22.664Z" }, -] - [[package]] name = "connectrpc" version = "0.11.1" @@ -1223,19 +1162,6 @@ nvtx = [ { name = "nvidia-nvtx" }, ] -[[package]] -name = "cymem" -version = "2.0.13" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/2f0fbb32535c3731b7c2974c569fb9325e0a38ed5565a08e1139a3b71e82/cymem-2.0.13.tar.gz", hash = "sha256:1c91a92ae8c7104275ac26bd4d29b08ccd3e7faff5893d3858cb6fadf1bc1588", size = 12320, upload-time = "2025-11-14T14:58:36.902Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/71/f0f8adee945524774b16af326bd314a14a478ed369a728a22834e6785a18/cymem-2.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9251d889348fe79a75e9b3e4d1b5fa651fca8a64500820685d73a3acc21b6a8", size = 42927, upload-time = "2025-11-14T14:57:33.827Z" }, - { url = "https://files.pythonhosted.org/packages/62/6d/159780fe162ff715d62b809246e5fc20901cef87ca28b67d255a8d741861/cymem-2.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:742fc19764467a49ed22e56a4d2134c262d73a6c635409584ae3bf9afa092c33", size = 258346, upload-time = "2025-11-14T14:57:34.917Z" }, - { url = "https://files.pythonhosted.org/packages/eb/12/678d16f7aa1996f947bf17b8cfb917ea9c9674ef5e2bd3690c04123d5680/cymem-2.0.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f190a92fe46197ee64d32560eb121c2809bb843341733227f51538ce77b3410d", size = 260843, upload-time = "2025-11-14T14:57:36.503Z" }, - { url = "https://files.pythonhosted.org/packages/31/5d/0dd8c167c08cd85e70d274b7235cfe1e31b3cebc99221178eaf4bbb95c6f/cymem-2.0.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d670329ee8dbbbf241b7c08069fe3f1d3a1a3e2d69c7d05ea008a7010d826298", size = 254607, upload-time = "2025-11-14T14:57:38.036Z" }, - { url = "https://files.pythonhosted.org/packages/b7/c9/d6514a412a1160aa65db539836b3d47f9b59f6675f294ec34ae32f867c82/cymem-2.0.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a84ba3178d9128b9ffb52ce81ebab456e9fe959125b51109f5b73ebdfc6b60d6", size = 262421, upload-time = "2025-11-14T14:57:39.265Z" }, -] - [[package]] name = "dashscope" version = "1.26.2" @@ -1297,8 +1223,7 @@ dependencies = [ { name = "filelock" }, { name = "fsspec", extra = ["http"] }, { name = "httpx" }, - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "multiprocess" }, { name = "numpy" }, { name = "packaging" }, @@ -1434,8 +1359,7 @@ name = "deshuffle-papers" version = "0.1.0" source = { editable = "deps/prime-envs/environments/reasoning/deshuffle_papers" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers" }, ] @@ -1565,8 +1489,7 @@ name = "drug-discovery-bench" version = "0.1.0" source = { editable = "deps/prime-envs/environments/science/drug_discovery_bench" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers", extra = ["harbor"] }, ] @@ -1607,15 +1530,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, ] -[[package]] -name = "emoji" -version = "2.15.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/78/0d2db9382c92a163d7095fc08efff7800880f830a152cfced40161e7638d/emoji-2.15.0.tar.gz", hash = "sha256:eae4ab7d86456a70a00a985125a03263a5eac54cd55e51d7e184b1ed3b6757e4", size = 615483, upload-time = "2025-09-21T12:13:02.755Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/5e/4b5aaaabddfacfe36ba7768817bd1f71a7a810a43705e531f3ae4c690767/emoji-2.15.0-py3-none-any.whl", hash = "sha256:205296793d66a89d88af4688fa57fd6496732eb48917a87175a023c8138995eb", size = 608433, upload-time = "2025-09-21T12:13:01.197Z" }, -] - [[package]] name = "enterprise-ops-gym" version = "0.2.1" @@ -1909,7 +1823,7 @@ version = "0.7.0.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "apache-tvm-ffi" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" } }, + { name = "click" }, { name = "cuda-python" }, { name = "cuda-tile" }, { name = "einops" }, @@ -2283,28 +2197,13 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/63/0e3d788e8d1ed116125507c6a01e3fb95cf82be71f2ea7040a1458709d21/harbor-0.24.0-py3-none-any.whl", hash = "sha256:23b7ba616a3aae4eff561ced5e2c51c7186f2981e53a770dea9c689d3969877c", size = 2331740, upload-time = "2026-10-05T05:04:42.088Z" }, ] -[[package]] -name = "hf-xet" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "platform_machine == 'arm64' and sys_platform == 'darwin'", -] -sdist = { url = "https://files.pythonhosted.org/packages/74/d8/5c06fc76461418326a7decf8367480c35be11a41fd938633929c60a9ec6b/hf_xet-1.5.0.tar.gz", hash = "sha256:e0fb0a34d9f406eed88233e829a67ec016bec5af19e480eac65a233ea289a948", size = 837196, upload-time = "2026-05-06T06:18:15.583Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/ff/edcc2b40162bef3ff78e14ab637e5f3b89243d6aee72f5949d3bb6a5af83/hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a", size = 3798444, upload-time = "2026-05-06T06:17:55.79Z" }, -] - [[package]] name = "hf-xet" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "platform_machine == 'x86_64' and sys_platform == 'linux'", - "platform_machine == 'aarch64' and sys_platform == 'linux'", -] sdist = { url = "https://files.pythonhosted.org/packages/1b/ab/522a2ab67f27971a9d48ca666d4fca85ef7d5282d142e31fd087e27b1bbe/hf_xet-1.6.0.tar.gz", hash = "sha256:2e58454a340b3556dfa4972d5451aff4fba8dd42a236600ba1a1d2b1514f0fef", size = 920527, upload-time = "2026-08-03T22:33:13.243Z" } wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/69/55b8dcf636142ae660fec1869fcac14c4da2e8412e14d6eee1523be77e9f/hf_xet-1.6.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:f0906082d9932ae0c0057fa194041c22b4e2cdb46b2592ef3b91f020d62a081a", size = 3876287, upload-time = "2026-08-03T22:33:02.251Z" }, { url = "https://files.pythonhosted.org/packages/67/4e/a28359bf1c1ecf11eba22123168c138698f7cb576ac678f5a2e16cd5da08/hf_xet-1.6.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d62671bb130879cef0ee4c9ebe47a14af6c66ec53e6d84dc15936e5ffdfac82f", size = 4464663, upload-time = "2026-08-03T22:33:03.802Z" }, { url = "https://files.pythonhosted.org/packages/9a/69/1f0cbc2fb22ae6082d094f743d1b8945a3f36f6089cb95f42b7ee348cda7/hf_xet-1.6.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0e6e21fa3cdfcdcd76748564bf593870a5e013f47d97cf10aed63aa222cff5b7", size = 4262538, upload-time = "2026-08-03T22:33:05.287Z" }, { url = "https://files.pythonhosted.org/packages/d1/3a/4f4f2301ade26e404462d3336fa11f7958d914cabbabdd6e03c3c5d5658c/hf_xet-1.6.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4fc74352a17015bd0ee90038bc9efe38db894cde45f268b6712b04fce8cd0acb", size = 4460520, upload-time = "2026-08-03T22:33:06.81Z" }, @@ -2450,42 +2349,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/95/411ba65569158e862368917aaf56597f3e5fa3b91b0502919638465a08f3/httpx2-2.12.0-py3-none-any.whl", hash = "sha256:cc8b6eecb8661c146b8f89a60e97456ee086e91a784ed31ac450c3a9e613dd36", size = 95427, upload-time = "2026-08-18T13:22:06.834Z" }, ] -[[package]] -name = "huggingface-hub" -version = "1.16.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "platform_machine == 'arm64' and sys_platform == 'darwin'", -] -dependencies = [ - { name = "filelock" }, - { name = "fsspec" }, - { name = "hf-xet", version = "1.5.0", source = { registry = "https://pypi.org/simple" } }, - { name = "httpx" }, - { name = "packaging" }, - { name = "pyyaml" }, - { name = "tqdm" }, - { name = "typer" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/48/0f/ed994dbade67a54407c28cab96ef845e0e6d25500be56aca6394f8bfc9dd/huggingface_hub-1.16.1.tar.gz", hash = "sha256:7f1dc4c5ec21aed69be630ad0c3378616be16f3de1a47b141c0e812965d9c832", size = 792534, upload-time = "2026-05-21T18:40:00.908Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/49/79/621a7dbb80c70974f73a597275351ebe03ce5bc65cb5f8f4acb5859252bc/huggingface_hub-1.16.1-py3-none-any.whl", hash = "sha256:64340de934b9ce37857ef85a82de72f5629e8a270f9119eabb12bf495eb53c22", size = 668176, upload-time = "2026-05-21T18:39:58.596Z" }, -] - [[package]] name = "huggingface-hub" version = "1.32.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "platform_machine == 'x86_64' and sys_platform == 'linux'", - "platform_machine == 'aarch64' and sys_platform == 'linux'", -] dependencies = [ - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" } }, + { name = "click" }, { name = "filelock" }, { name = "fsspec" }, - { name = "hf-xet", version = "1.6.0", source = { registry = "https://pypi.org/simple" } }, + { name = "hf-xet" }, { name = "httpx" }, { name = "packaging" }, { name = "pyyaml" }, @@ -2514,7 +2386,7 @@ requires-dist = [ [[package]] name = "humming-kernels" -version = "0.1.16" +version = "0.1.17" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cuda-bindings" }, @@ -2526,10 +2398,10 @@ dependencies = [ { name = "tqdm" }, { name = "triton" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/70/d2/e286acb9f594f998bbc2d99617966a4f01a603c699d829793a86a42c2440/humming_kernels-0.1.16.tar.gz", hash = "sha256:a5356a63c4adf6c16c46f541749dec90fc2d49cf29ebc33ac05e23c744731809", size = 317590, upload-time = "2026-09-22T02:41:16.516Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/52/b3958f17315854ca781909f39392e6b40d45965820912cd610191597bd92/humming_kernels-0.1.17.tar.gz", hash = "sha256:a2565bf03b8b2ca07086db00a949c0c92727ea675e4d3037f9337192a840225a", size = 403057, upload-time = "2026-10-14T17:07:29.566Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/71/47/43794faeb47fe2067bef5c7d830fac4244bf872625b0bfddf116fd7a0a0d/humming_kernels-0.1.16-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fa1a86e31fc3c0fede5bceb3dc2f088e6bdda636a8f405fd71def853f12049e1", size = 417732, upload-time = "2026-09-22T02:41:12.611Z" }, - { url = "https://files.pythonhosted.org/packages/a2/7f/08aad5a947d549aa21af5b93e711aad3d5689d39e8439c7fa72eab9773de/humming_kernels-0.1.16-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:683212692f5e1339961e4322aff1ba116523e2681b2aafeaf7c081bc4e1f5627", size = 426040, upload-time = "2026-09-22T02:41:14.541Z" }, + { url = "https://files.pythonhosted.org/packages/38/78/ee230d0165b47f08103fdb9a58a64b28c91e15ed7e2d3beb3920543a9f42/humming_kernels-0.1.17-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:83dda343f36a52efb617ab7b85747baabfa1c2d00dcf1078c45f92b8df7a01c6", size = 496273, upload-time = "2026-10-14T17:07:26.658Z" }, + { url = "https://files.pythonhosted.org/packages/da/fa/c4e367ca51b2611faf88ac9ee1abe5e9ee6d4d174bbabdb54481c65f7e2e/humming_kernels-0.1.17-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:e418b5482dabd71f64622893bdbb8bf27eb30379c443b92d32af48825d9ad64c", size = 504747, upload-time = "2026-10-14T17:07:28.196Z" }, ] [package.optional-dependencies] @@ -2633,37 +2505,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/57/b0/0e52c878c53f245edd3a11020f20979b3f490f245af532c7cae3027754b5/idna-3.19-py3-none-any.whl", hash = "sha256:815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4", size = 68550, upload-time = "2026-08-18T05:14:22.343Z" }, ] -[[package]] -name = "ifbench" -version = "0.1.0" -source = { editable = "deps/prime-envs/environments/if/ifbench" } -dependencies = [ - { name = "datasets" }, - { name = "emoji" }, - { name = "immutabledict" }, - { name = "langdetect" }, - { name = "nltk" }, - { name = "pip" }, - { name = "setuptools" }, - { name = "spacy" }, - { name = "syllapy" }, - { name = "verifiers" }, -] - -[package.metadata] -requires-dist = [ - { name = "datasets", specifier = ">=3.0.0" }, - { name = "emoji" }, - { name = "immutabledict" }, - { name = "langdetect" }, - { name = "nltk" }, - { name = "pip" }, - { name = "setuptools", specifier = "<78" }, - { name = "spacy" }, - { name = "syllapy" }, - { name = "verifiers", specifier = ">=0.4.0" }, -] - [[package]] name = "ifeval" version = "0.1.0" @@ -2751,15 +2592,15 @@ wheels = [ [[package]] name = "instanttensor" -version = "0.2.0" +version = "0.2.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "torch", version = "2.13.0+cu130", source = { registry = "https://download.pytorch.org/whl/cu130" } }, ] -sdist = { url = "https://files.pythonhosted.org/packages/27/8e/b209471a5a73a7ef1dad7365e05adf4c95b20fadc16fc9aea10ceaba1fc8/instanttensor-0.2.0.tar.gz", hash = "sha256:acafa964f9ba6d2e342d8ffcb7e68bacc6d59d60e2fda222dc1333045cd50c9c", size = 3112592, upload-time = "2026-09-13T19:10:18.043Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/a1/95d0d4cee908ab0bd8e56b44cdb19e678081c54de52d280b0b3c9f7e4c43/instanttensor-0.2.2.tar.gz", hash = "sha256:aca07c1afe4fde23dcbfb53044e2bef50dad4c0af054317acc669a1c8dc2b325", size = 613106, upload-time = "2026-10-13T15:06:59.034Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/10/23c738a0b3568a4dadd7604ffe1f47612969b74db1e6708b074625b83838/instanttensor-0.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eefde9b121cd3a2699bd079a19cba5c0a74f23cc1fa2dd8e186a12910f89408e", size = 6089973, upload-time = "2026-09-13T19:10:00.355Z" }, - { url = "https://files.pythonhosted.org/packages/f8/02/90a64c81360d473d07f36dde68eb47d043bf442a24c9c91232643f8c0928/instanttensor-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:879e8b524b391ed916b8412ef82c3ab40d933ad8d038f40b340d0bd58b7894d3", size = 6178704, upload-time = "2026-09-13T19:10:03.313Z" }, + { url = "https://files.pythonhosted.org/packages/ff/08/a28ad4c33e42f45d5617f8feb24137fcc1b7af7a7f0068c3fcf3448a0806/instanttensor-0.2.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94dabc13981fe89982a807572593c4f697a3a3bae02fa13cb469960885901247", size = 6439035, upload-time = "2026-10-13T15:06:00.734Z" }, + { url = "https://files.pythonhosted.org/packages/59/12/0a4b55402ec7f45f223d4cab19c8d6d39f5242d386f4f421e30c34dd8900/instanttensor-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:382954f2329fc085ff298ce0205a06ce0fc8c67a704fc032613931a5ae9018d5", size = 6522862, upload-time = "2026-10-13T15:06:07.285Z" }, ] [[package]] @@ -3155,8 +2996,7 @@ version = "1.95.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, - { name = "click", version = "8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "click" }, { name = "fastuuid" }, { name = "httpx" }, { name = "importlib-metadata" }, @@ -3180,8 +3020,7 @@ version = "0.1.0" source = { editable = "deps/prime-envs/environments/code/livecodebench" } dependencies = [ { name = "datasets" }, - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers" }, ] @@ -3322,7 +3161,7 @@ dependencies = [ { name = "ninja" }, { name = "packaging" }, { name = "quack-kernels" }, - { name = "setuptools" }, + { name = "setuptools", version = "80.10.2", source = { registry = "https://pypi.org/simple" } }, { name = "tilelang" }, { name = "torch", version = "2.13.0+cu130", source = { registry = "https://download.pytorch.org/whl/cu130" } }, { name = "transformers" }, @@ -3669,8 +3508,7 @@ dependencies = [ { name = "aiohttp" }, { name = "cbor2" }, { name = "certifi" }, - { name = "click", version = "8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "click" }, { name = "grpclib" }, { name = "protobuf" }, { name = "rich" }, @@ -3695,7 +3533,7 @@ dependencies = [ { name = "httpx" }, { name = "jmespath" }, { name = "pydantic" }, - { name = "setuptools" }, + { name = "setuptools", version = "80.10.2", source = { registry = "https://pypi.org/simple" } }, { name = "starlette" }, { name = "supervisor" }, ] @@ -3710,7 +3548,7 @@ version = "0.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "grpcio" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" } }, + { name = "huggingface-hub" }, { name = "nixl" }, { name = "numpy" }, { name = "protobuf" }, @@ -3875,19 +3713,6 @@ requires-dist = [ { name = "verifiers", specifier = ">=0.4.0" }, ] -[[package]] -name = "murmurhash" -version = "1.0.15" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/2e/88c147931ea9725d634840d538622e94122bceaf346233349b7b5c62964b/murmurhash-1.0.15.tar.gz", hash = "sha256:58e2b27b7847f9e2a6edf10b47a8c8dd70a4705f45dccb7bf76aeadacf56ba01", size = 13291, upload-time = "2025-11-14T09:51:15.272Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/cc/630449bf4f6178d7daf948ce46ad00b25d279065fc30abd8d706be3d87e0/murmurhash-1.0.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0861cb11039409eaf46878456b7d985ef17b6b484103a6fc367b2ecec846891d", size = 27855, upload-time = "2025-11-14T09:50:14.859Z" }, - { url = "https://files.pythonhosted.org/packages/ff/30/ea8f601a9bf44db99468696efd59eb9cff1157cd55cb586d67116697583f/murmurhash-1.0.15-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5a301decfaccfec70fe55cb01dde2a012c3014a874542eaa7cc73477bb749616", size = 134088, upload-time = "2025-11-14T09:50:15.958Z" }, - { url = "https://files.pythonhosted.org/packages/c9/de/c40ce8c0877d406691e735b8d6e9c815f36a82b499d358313db5dbe219d7/murmurhash-1.0.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:32c6fde7bd7e9407003370a07b5f4addacabe1556ad3dc2cac246b7a2bba3400", size = 133978, upload-time = "2025-11-14T09:50:17.572Z" }, - { url = "https://files.pythonhosted.org/packages/47/84/bd49963ecd84ebab2fe66595e2d1ed41d5e8b5153af5dc930f0bd827007c/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d8b43a7011540dc3c7ce66f2134df9732e2bc3bbb4a35f6458bc755e48bde26", size = 132956, upload-time = "2025-11-14T09:50:18.742Z" }, - { url = "https://files.pythonhosted.org/packages/4f/7c/2530769c545074417c862583f05f4245644599f1e9ff619b3dfe2969aafc/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43bf4541892ecd95963fcd307bf1c575fc0fee1682f41c93007adee71ca2bb40", size = 134184, upload-time = "2025-11-14T09:50:19.941Z" }, -] - [[package]] name = "mypy-extensions" version = "1.1.0" @@ -4007,8 +3832,7 @@ name = "nltk" version = "3.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", version = "8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "click" }, { name = "joblib" }, { name = "regex" }, { name = "tqdm" }, @@ -4125,15 +3949,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/83/19/e46ef3597ba47a9f8a91ab24533db42a600b659fc418dbe4af0b630bcb41/nvidia_cuda_nvcc-13.3.73-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f483af83166c4fa356a21606076d553b0b4ceaebbd9912e537545080db695bdd", size = 44942138, upload-time = "2026-06-29T16:48:13.615Z" }, ] -[[package]] -name = "nvidia-cuda-nvdisasm" -version = "13.3.73" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/be/e9de501cb71b10f7654381a485fa4ebf470ea25c3dce018cccaecf8a8f9a/nvidia_cuda_nvdisasm-13.3.73-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:dd4751884f9016b9b6dbf007abdeb5681d0a2edc731dd3d2fda9d6d878e88f73", size = 4744517, upload-time = "2026-06-29T16:48:33.527Z" }, - { url = "https://files.pythonhosted.org/packages/86/3e/88460ebd737e559e8e9843db7a63f8ced9ec7be1882344438819dd13aebc/nvidia_cuda_nvdisasm-13.3.73-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fa17084b07c0dca68a42892f771b4b1b40fbe9b91660209623e61cea611cae8c", size = 4782824, upload-time = "2026-06-29T16:49:05.109Z" }, -] - [[package]] name = "nvidia-cuda-nvrtc" version = "13.0.88" @@ -4244,63 +4059,57 @@ wheels = [ [[package]] name = "nvidia-cutlass-dsl" -version = "4.7.1" +version = "4.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nvidia-cutlass-dsl-libs-base" }, { name = "nvidia-cutlass-dsl-libs-cu13" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/af/ef/903dab832a19e0f1d798c9acc96edbda5dfb29f2e030b46e163946555817/nvidia_cutlass_dsl-4.7.1-py3-none-any.whl", hash = "sha256:765850c74868a0b5a02fefbfc1b380842b64e5f7a1c8b1655e322a3b14c01726", size = 10460, upload-time = "2026-08-26T03:11:56.593Z" }, + { url = "https://files.pythonhosted.org/packages/e4/f4/e96f452f7975dd2fd4d2a4af88c63205431dad7efbe63aff6e3a4b1ada17/nvidia_cutlass_dsl-4.8.0-py3-none-any.whl", hash = "sha256:24f996e0e5fa88c8b417f4893e615af135bdfdfdbdbed7e239faf36a88df711b", size = 10493, upload-time = "2026-09-21T03:44:08.278Z" }, ] [[package]] name = "nvidia-cutlass-dsl-libs-base" -version = "4.7.1" +version = "4.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cuda-python" }, - { name = "numpy" }, - { name = "nvidia-cuda-nvdisasm" }, + { name = "cuda-bindings" }, { name = "nvidia-cutlass-dsl-libs-core" }, { name = "protobuf" }, { name = "typing-extensions" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/6e/5d3f67caba70fe9a5cc21b845d2be35d88049da536185196a2644b0d461c/nvidia_cutlass_dsl_libs_base-4.7.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:e86c55a5010a7edfc067648a75cb29d0c5bd67d75210168cf507b0d0e4d15ba7", size = 3329548, upload-time = "2026-08-26T02:53:14.176Z" }, - { url = "https://files.pythonhosted.org/packages/55/b5/af332a4dbb0dba45828994d9789d1969dfecca006a6221cd8b92e4825d3f/nvidia_cutlass_dsl_libs_base-4.7.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c2b67dacabfc905e4d132784fe4848647f40b0b97b1cdde3ce4a482642536b84", size = 2832971, upload-time = "2026-08-26T02:53:52.164Z" }, + { url = "https://files.pythonhosted.org/packages/21/59/99fa03da9ace3048379601cf090a629c8d7df3ed33a4fa284848080e342d/nvidia_cutlass_dsl_libs_base-4.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3affcaefb59a976ff5195dd2bff4c13594233cb4941540b74e372b63e497d3f2", size = 3553268, upload-time = "2026-09-21T03:23:16.521Z" }, + { url = "https://files.pythonhosted.org/packages/12/1c/2f7a13626af1edfefb5ad69234d47e3b212064a42ad2e6db59351b5ae002/nvidia_cutlass_dsl_libs_base-4.8.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:5bdc80989b0fbbac3d58960057e74e2ce8676fafa76b852d9422b9c4b9b74bdd", size = 3050530, upload-time = "2026-09-21T03:23:37.86Z" }, ] [[package]] name = "nvidia-cutlass-dsl-libs-core" -version = "4.7.1" +version = "4.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cuda-python" }, - { name = "numpy" }, - { name = "nvidia-cuda-nvdisasm" }, + { name = "cuda-bindings" }, { name = "protobuf" }, { name = "typing-extensions" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/14/b669cc890f7fd74008d7bc52f493d0a7ff256de10f3941c6676249419c07/nvidia_cutlass_dsl_libs_core-4.7.1-py3-none-any.whl", hash = "sha256:c65662abc9ab18fd997c57547895736928e559f4624bbe2aa1aa91418ea014ca", size = 1235214, upload-time = "2026-08-26T02:50:56.241Z" }, + { url = "https://files.pythonhosted.org/packages/85/66/d05f0ae372b80fc757e59d5211d93483c6ff721f574cb68cad84ceb87157/nvidia_cutlass_dsl_libs_core-4.8.0-py3-none-any.whl", hash = "sha256:b32716d2ed10c185cdbbb6b5c6fca26a3113a60e6e2fe4e2f0cb15966422b621", size = 1634056, upload-time = "2026-09-21T03:20:12.741Z" }, ] [[package]] name = "nvidia-cutlass-dsl-libs-cu13" -version = "4.7.1" +version = "4.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cuda-python" }, - { name = "numpy" }, - { name = "nvidia-cuda-nvdisasm" }, + { name = "cuda-bindings" }, { name = "nvidia-cutlass-dsl-libs-base" }, { name = "protobuf" }, { name = "typing-extensions" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/30/ea/c7c2b4da3d6c9818e152e20cd5f797fb6d9ef75c3a5c80d2d6a9cb211489/nvidia_cutlass_dsl_libs_cu13-4.7.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:e675bf04dc6c91f7c4d5540699b7a031f2b8b44cd2687b32c20892f112f7e0d9", size = 86957786, upload-time = "2026-08-26T03:07:23.015Z" }, - { url = "https://files.pythonhosted.org/packages/10/71/e178bb0858fd7b96857e98e3acec70b23f13b88540a2fcc53569f8e8ea34/nvidia_cutlass_dsl_libs_cu13-4.7.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:20c14e16125cb8e36bc9947a9f0a57a660f44651365337b911c84abde4967f5f", size = 88260436, upload-time = "2026-08-26T03:07:59.639Z" }, + { url = "https://files.pythonhosted.org/packages/bd/48/d5b62e1e3954dadc5e962d5be81c0c2acf3dcc7ed854f323447967ba3ec0/nvidia_cutlass_dsl_libs_cu13-4.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d61ebe2416cae8a2d5377889549df9cb5008af006a1692d7d006d8f747e62e6c", size = 90997691, upload-time = "2026-09-21T03:38:33.996Z" }, + { url = "https://files.pythonhosted.org/packages/df/75/6c52c58fc0fdab223feb9162886736390a6f902183d24df1508ac620a69d/nvidia_cutlass_dsl_libs_cu13-4.8.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:463cd7f0c452ffeeecb530a15aeb1b10cbbd2c8da6c5aa2fecf65f836258a732", size = 91950801, upload-time = "2026-09-21T03:38:58.38Z" }, ] [[package]] @@ -4381,8 +4190,7 @@ name = "officeqa-pro-v2" version = "0.1.1" source = { editable = "deps/prime-envs/environments/search/officeqa_pro_v2" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers" }, ] @@ -4414,8 +4222,7 @@ version = "0.1.0" source = { editable = "deps/prime-envs/environments/long_context/oolong_pairs" } dependencies = [ { name = "datasets" }, - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers" }, ] @@ -4528,8 +4335,7 @@ version = "0.1.5" source = { editable = "deps/prime-envs/environments/swe/openswe" } dependencies = [ { name = "datasets" }, - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers" }, ] @@ -4902,15 +4708,6 @@ requires-dist = [ { name = "verifiers", specifier = ">=0.4.0" }, ] -[[package]] -name = "pip" -version = "26.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/91/47e7d486260f618783899587af63ccf7980fb60245c3e63dd4571c6b57ad/pip-26.1.2.tar.gz", hash = "sha256:f49cd134c61cf2fd75e0ce2676db03e4054504a5a4986d00f8299ae632dc4605", size = 1840799, upload-time = "2026-05-31T17:33:58.56Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/95/6b5cb3461ea5673ba0995989746db58eb18b91b54dbf331e72f569540946/pip-26.1.2-py3-none-any.whl", hash = "sha256:382ff9f685ee3bc25864f820aa50505825f10f5458ffff07e30a6d96e5715cab", size = 1813144, upload-time = "2026-05-31T17:33:56.772Z" }, -] - [[package]] name = "platformdirs" version = "4.11.0" @@ -4975,23 +4772,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/80/6e/4b28b62ecb6aae56769c34a8ff1d661473ec1e9519e2d5f8b2c150086b26/pre_commit-4.6.0-py2.py3-none-any.whl", hash = "sha256:e2cf246f7299edcabcf15f9b0571fdce06058527f0a06535068a86d38089f29b", size = 226472, upload-time = "2026-04-21T20:31:40.092Z" }, ] -[[package]] -name = "preshed" -version = "3.0.13" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cymem" }, - { name = "murmurhash" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/43/75/fe6b7bbd0dea530a001b0e24c331b21a0be2786e402abf3c57f5dce43d4b/preshed-3.0.13.tar.gz", hash = "sha256:d75f718bbfd97e992f7827e0fa7faf6a91bdd9c922d5baa4b50d62731396cb89", size = 18338, upload-time = "2026-03-23T08:57:31.378Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/ce/cad5a8145881a771e6c0d002f2e585fc19b962f120860b54d32af5baa342/preshed-3.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f05b08ce92399c0655b5e0eb5a1cc1f9e295703ed3aabdfaf6538dfa8ae23d57", size = 138010, upload-time = "2026-03-23T08:56:36.399Z" }, - { url = "https://files.pythonhosted.org/packages/a7/a2/c5fed4fb3e946699259d11e4036a3cfdd8c89b3e542e3077d46781642425/preshed-3.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62cf7f3113132891d6bba70ff547ad81c6fe50a31930bbbb8499f1d47cd122b7", size = 861498, upload-time = "2026-03-23T08:56:37.67Z" }, - { url = "https://files.pythonhosted.org/packages/51/94/8c9bc48a6ea4903f53a1a0031ce8e35687526949f25821762ef21493c007/preshed-3.0.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8b8de3f58043070a354477995acdd98626ce43e4193c708ebd0f694e467f5155", size = 868988, upload-time = "2026-03-23T08:56:39.324Z" }, - { url = "https://files.pythonhosted.org/packages/b6/df/ecd2f40055ff52527ca117ffbfafb888c1a3079b59fbabe03c5b8f9b7240/preshed-3.0.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:183b339956a9e1d7a4a00038a3b9587a734db9e8bd915939a49791bd1b372156", size = 1847382, upload-time = "2026-03-23T08:56:40.89Z" }, - { url = "https://files.pythonhosted.org/packages/e6/88/bdb244e40284ded3632a9f88c23bc80230bd7b2ae4a8b7f2cc91adead7a8/preshed-3.0.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2e77bed56aded7cbe5d28d6bd2178bc5b13eda0e0e464dab205fb578fa915000", size = 1919236, upload-time = "2026-03-23T08:56:42.616Z" }, -] - [[package]] name = "prime" version = "0.8.0" @@ -5163,8 +4943,8 @@ all = [ { name = "torchdata", marker = "sys_platform == 'linux'" }, { name = "torchtitan", marker = "sys_platform == 'linux'" }, { name = "torchvision", marker = "sys_platform == 'linux'" }, - { name = "vllm", version = "0.31.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_aarch64.whl" }, marker = "platform_machine != 'x86_64' and sys_platform == 'linux'" }, - { name = "vllm", version = "0.31.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_x86_64.whl" }, marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "vllm", version = "0.32.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_aarch64.whl" }, marker = "platform_machine != 'x86_64' and sys_platform == 'linux'" }, + { name = "vllm", version = "0.32.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_x86_64.whl" }, marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "vllm-router", version = "0.2.3", source = { url = "https://github.com/PrimeIntellect-ai/router/releases/download/v0.2.3/vllm_router-0.2.3-cp38-abi3-manylinux_2_28_aarch64.whl" }, marker = "platform_machine != 'x86_64' and sys_platform == 'linux'" }, { name = "vllm-router", version = "0.2.3", source = { url = "https://github.com/PrimeIntellect-ai/router/releases/download/v0.2.3/vllm_router-0.2.3-cp38-abi3-manylinux_2_28_x86_64.whl" }, marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] @@ -5216,8 +4996,8 @@ gpu = [ { name = "torchdata", marker = "sys_platform == 'linux'" }, { name = "torchtitan", marker = "sys_platform == 'linux'" }, { name = "torchvision", marker = "sys_platform == 'linux'" }, - { name = "vllm", version = "0.31.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_aarch64.whl" }, marker = "platform_machine != 'x86_64' and sys_platform == 'linux'" }, - { name = "vllm", version = "0.31.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_x86_64.whl" }, marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "vllm", version = "0.32.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_aarch64.whl" }, marker = "platform_machine != 'x86_64' and sys_platform == 'linux'" }, + { name = "vllm", version = "0.32.0", source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_x86_64.whl" }, marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, ] kernels = [ { name = "prime-kernels", version = "0.1.0+cu130torch2.13.0", source = { url = "https://github.com/PrimeIntellect-ai/prime-kernels/releases/download/v0.1.0-6f48176/prime_kernels-0.1.0+cu130torch2.13.0-cp312-cp312-linux_aarch64.whl" }, marker = "platform_machine != 'x86_64' and sys_platform == 'linux'" }, @@ -5311,14 +5091,14 @@ requires-dist = [ { name = "torchdata", marker = "sys_platform == 'linux' and extra == 'gpu'", specifier = ">=0.11.0" }, { name = "torchtitan", marker = "sys_platform == 'linux' and extra == 'gpu'", git = "https://github.com/pytorch/torchtitan?rev=23e4dfc" }, { name = "torchvision", marker = "sys_platform == 'linux' and extra == 'gpu'", index = "https://download.pytorch.org/whl/cu130" }, - { name = "transformers", specifier = "==5.6.2" }, + { name = "transformers", specifier = "==5.19.0" }, { name = "uvicorn", specifier = ">=0.30" }, { name = "uvicorn", marker = "extra == 'dashboard'", specifier = ">=0.30" }, { name = "uvloop", specifier = ">=0.21.0" }, { name = "verifiers", extras = ["harbor"], editable = "deps/verifiers" }, - { name = "vllm", marker = "platform_machine == 'aarch64' and sys_platform == 'linux' and extra == 'gpu'", url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_aarch64.whl" }, - { name = "vllm", marker = "platform_machine != 'aarch64' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra == 'gpu'", specifier = ">=0.31.0" }, - { name = "vllm", marker = "platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'gpu'", url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_x86_64.whl" }, + { name = "vllm", marker = "platform_machine == 'aarch64' and sys_platform == 'linux' and extra == 'gpu'", url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_aarch64.whl" }, + { name = "vllm", marker = "platform_machine != 'aarch64' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra == 'gpu'", specifier = ">=0.32.0" }, + { name = "vllm", marker = "platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'gpu'", url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_x86_64.whl" }, { name = "vllm-router", marker = "platform_machine == 'aarch64' and sys_platform == 'linux' and extra == 'disagg'", url = "https://github.com/PrimeIntellect-ai/router/releases/download/v0.2.3/vllm_router-0.2.3-cp38-abi3-manylinux_2_28_aarch64.whl" }, { name = "vllm-router", marker = "platform_machine != 'aarch64' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra == 'disagg'" }, { name = "vllm-router", marker = "platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'disagg'", url = "https://github.com/PrimeIntellect-ai/router/releases/download/v0.2.3/vllm_router-0.2.3-cp38-abi3-manylinux_2_28_x86_64.whl" }, @@ -6324,7 +6104,7 @@ name = "rich-toolkit" version = "0.19.10" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" } }, + { name = "click" }, { name = "rich" }, { name = "typing-extensions" }, ] @@ -6385,8 +6165,7 @@ name = "s1-deepresearch" version = "0.1.0" source = { editable = "deps/prime-envs/environments/search/s1_deepresearch" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers" }, ] @@ -6410,15 +6189,15 @@ wheels = [ [[package]] name = "safetensors" -version = "0.7.0" +version = "0.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/29/9c/6e74567782559a63bd040a236edca26fd71bc7ba88de2ef35d75df3bca5e/safetensors-0.7.0.tar.gz", hash = "sha256:07663963b67e8bd9f0b8ad15bb9163606cd27cc5a1b96235a50d8369803b96b0", size = 200878, upload-time = "2025-11-19T15:18:43.199Z" } +sdist = { url = "https://files.pythonhosted.org/packages/45/06/f955dbbb1859e3bd23c8ac6141af5106e7ad5fedec4a3a6e3d60f94b7001/safetensors-0.8.0.tar.gz", hash = "sha256:fabaf3e0f18a6618d9b36560682562157f77c2b71fcffc7b432be2baed9d753d", size = 325846, upload-time = "2026-06-09T07:52:25.563Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/00/374c0c068e30cd31f1e1b46b4b5738168ec79e7689ca82ee93ddfea05109/safetensors-0.7.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:94fd4858284736bb67a897a41608b5b0c2496c9bdb3bf2af1fa3409127f20d57", size = 447058, upload-time = "2025-11-19T15:18:34.416Z" }, - { url = "https://files.pythonhosted.org/packages/f1/06/578ffed52c2296f93d7fd2d844cabfa92be51a587c38c8afbb8ae449ca89/safetensors-0.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e07d91d0c92a31200f25351f4acb2bc6aff7f48094e13ebb1d0fb995b54b6542", size = 491748, upload-time = "2025-11-19T15:18:09.79Z" }, - { url = "https://files.pythonhosted.org/packages/a0/60/429e9b1cb3fc651937727befe258ea24122d9663e4d5709a48c9cbfceecb/safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac7252938f0696ddea46f5e855dd3138444e82236e3be475f54929f0c510d48", size = 507152, upload-time = "2025-11-19T15:18:33.023Z" }, - { url = "https://files.pythonhosted.org/packages/06/87/d26d8407c44175d8ae164a95b5a62707fcc445f3c0c56108e37d98070a3d/safetensors-0.7.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cdab83a366799fa730f90a4ebb563e494f28e9e92c4819e556152ad55e43591b", size = 674060, upload-time = "2025-11-19T15:18:37.211Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d8/0c8a7dc9b41dcac53c4cbf9df2b9c83e0e0097203de8b37a712b345c0be5/safetensors-0.7.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0f6d66c1c538d5a94a73aa9ddca8ccc4227e6c9ff555322ea40bdd142391dd4", size = 677368, upload-time = "2025-11-19T15:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/f5/b1/fa7c600e7dceae12e9606c7578cbc9ff1e1ed55844883ee5c92205e86226/safetensors-0.8.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:c80201d22cbf405b80647a60ada77bba06c8fba2da2743ba1e89cdcc39a81f25", size = 484562, upload-time = "2026-06-09T07:52:17.518Z" }, + { url = "https://files.pythonhosted.org/packages/09/7d/65a7de0af421317bb36a067241e4235fff194eed60b961ed6d3f59a3fc60/safetensors-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a46e5ff292c356d6991e60942ba7f79817682d3a2cef0702136448cb9c4d235", size = 502844, upload-time = "2026-06-09T07:52:07.624Z" }, + { url = "https://files.pythonhosted.org/packages/28/50/f203ff3a3ddfe19308efc83c5a3a29ed02bf786732ec35e68bf9162f3365/safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd6f3f93c9a0a7cc2788ee63fb763353d4bd2e89b0751bc78fcf7dda00bea774", size = 516040, upload-time = "2026-06-09T07:52:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/2a/43/bf38443278eab4b1be1fce2931e2b012ad9cb7df52ada751d0aab8f7659a/safetensors-0.8.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:87eec7ffed2b809f05a398a8becb7d013f19f7837cd15d9748580d6cf30dbaf4", size = 678670, upload-time = "2026-06-09T07:52:20.032Z" }, + { url = "https://files.pythonhosted.org/packages/27/43/41c1621732edd934d868a00d1b891584c892a7b62a9aab82ea5a0a5623ee/safetensors-0.8.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:8e080062fcde23be189565e1c3305d16751a218ecf9412c8601e64204eb6f846", size = 722361, upload-time = "2026-06-09T07:52:23.924Z" }, ] [[package]] @@ -6524,8 +6303,7 @@ name = "sentence-transformers" version = "5.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "numpy" }, { name = "scikit-learn" }, { name = "scipy" }, @@ -6581,11 +6359,27 @@ wheels = [ name = "setuptools" version = "77.0.3" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "platform_machine == 'arm64' and sys_platform == 'darwin'", +] sdist = { url = "https://files.pythonhosted.org/packages/81/ed/7101d53811fd359333583330ff976e5177c5e871ca8b909d1d6c30553aa3/setuptools-77.0.3.tar.gz", hash = "sha256:583b361c8da8de57403743e756609670de6fb2345920e36dc5c2d914c319c945", size = 1367236, upload-time = "2025-03-20T14:38:08.777Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/a9/07/99f2cefae815c66eb23148f15d79ec055429c38fa8986edcc712ab5f3223/setuptools-77.0.3-py3-none-any.whl", hash = "sha256:67122e78221da5cf550ddd04cf8742c8fe12094483749a792d56cd669d6cf58c", size = 1255678, upload-time = "2025-03-20T14:38:06.621Z" }, ] +[[package]] +name = "setuptools" +version = "80.10.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "platform_machine == 'x86_64' and sys_platform == 'linux'", + "platform_machine == 'aarch64' and sys_platform == 'linux'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/95/faf61eb8363f26aa7e1d762267a8d602a1b26d4f3a1e758e92cb3cb8b054/setuptools-80.10.2.tar.gz", hash = "sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70", size = 1200343, upload-time = "2026-01-25T22:38:17.252Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/b8/f1f62a5e3c0ad2ff1d189590bfa4c46b4f3b6e49cef6f26c6ee4e575394d/setuptools-80.10.2-py3-none-any.whl", hash = "sha256:95b30ddfb717250edb492926c92b5221f7ef3fbcc2b07579bcd4a27da21d0173", size = 1064234, upload-time = "2026-01-25T22:38:15.216Z" }, +] + [[package]] name = "shellingham" version = "1.5.4" @@ -6643,18 +6437,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] -[[package]] -name = "smart-open" -version = "7.6.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "wrapt" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c5/65/3ada667d32675399001bf022ad3d9f3989b57101351ebc71d6fbe2384634/smart_open-7.6.1.tar.gz", hash = "sha256:4347996e7ba21db7cd1e059632e0b30395407e4f6c660d2ddffc8f2a9ae5f990", size = 54754, upload-time = "2026-05-09T06:23:37.06Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/14/78/0f68b93564b8c6b6987a0696c582ba2591a381ab2f733a501909e949f241/smart_open-7.6.1-py3-none-any.whl", hash = "sha256:b4de6aebef023aca91cc9fb372052e1343ba3f152de215bd22391a663e3ddd21", size = 64845, upload-time = "2026-05-09T06:23:35.386Z" }, -] - [[package]] name = "smmap" version = "5.0.3" @@ -6708,73 +6490,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5e/f5/0c41cb68dcae6b7de4fac4188a3a9589e21fb31df21ea3a2e888db95e6c9/soupsieve-2.8.4-py3-none-any.whl", hash = "sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65", size = 37304, upload-time = "2026-05-24T13:55:55.406Z" }, ] -[[package]] -name = "spacy" -version = "3.8.14" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "catalogue" }, - { name = "confection" }, - { name = "cymem" }, - { name = "jinja2" }, - { name = "murmurhash" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "preshed" }, - { name = "pydantic" }, - { name = "requests" }, - { name = "setuptools" }, - { name = "spacy-legacy" }, - { name = "spacy-loggers" }, - { name = "srsly" }, - { name = "thinc" }, - { name = "tqdm" }, - { name = "typer" }, - { name = "wasabi" }, - { name = "weasel" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/df/178bbab47fa209c8baf2f1e609cbddc6b18a985200be1ceee22bd5b89beb/spacy-3.8.14-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e3ebe50b93f2d40e8ec3451255528bb622ccb12be39fd140bb87668ce8d1075b", size = 6033860, upload-time = "2026-03-29T10:40:47.861Z" }, - { url = "https://files.pythonhosted.org/packages/ff/e8/048d83b73b28686307bd9a60878a58de7b7b21b562ca4de8b5bd558031e9/spacy-3.8.14-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:daeb64b048f12c059997281aed53eb8776d26416dd313cf17ad6f63124b2b564", size = 32725099, upload-time = "2026-03-29T10:40:50.194Z" }, - { url = "https://files.pythonhosted.org/packages/8e/3f/1799af5f4ccc8eb7500e4a20ca301488134429dba08cda5be68ce6ab2992/spacy-3.8.14-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6d45715a24446f23b98ec3f09409a1d4111983d1d64613250ee38c3270e21853", size = 33205838, upload-time = "2026-03-29T10:40:53.029Z" }, - { url = "https://files.pythonhosted.org/packages/78/07/81ab9acd0ec64bfdd7339acfc4cf35f5fb74bbbb0b2be7e64d717c416bac/spacy-3.8.14-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1069a8be34940809f8462eb69f09a3f0ce59bf8b9cb82475f2a8e3580f50ece0", size = 32090380, upload-time = "2026-03-29T10:40:56.115Z" }, - { url = "https://files.pythonhosted.org/packages/74/a5/b081b5bd3cedb2634c23eb470b5e24c65c894c57646567f47627291c2b3f/spacy-3.8.14-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2dfa77aec7fdebac0455d8afd4ce1d92d6f868b03d507ed1976179a63db7b374", size = 32991946, upload-time = "2026-03-29T10:40:58.852Z" }, -] - -[[package]] -name = "spacy-legacy" -version = "3.0.12" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d9/79/91f9d7cc8db5642acad830dcc4b49ba65a7790152832c4eceb305e46d681/spacy-legacy-3.0.12.tar.gz", hash = "sha256:b37d6e0c9b6e1d7ca1cf5bc7152ab64a4c4671f59c85adaf7a3fcb870357a774", size = 23806, upload-time = "2023-01-23T09:04:15.104Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c3/55/12e842c70ff8828e34e543a2c7176dac4da006ca6901c9e8b43efab8bc6b/spacy_legacy-3.0.12-py2.py3-none-any.whl", hash = "sha256:476e3bd0d05f8c339ed60f40986c07387c0a71479245d6d0f4298dbd52cda55f", size = 29971, upload-time = "2023-01-23T09:04:13.45Z" }, -] - -[[package]] -name = "spacy-loggers" -version = "1.0.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/67/3d/926db774c9c98acf66cb4ed7faf6c377746f3e00b84b700d0868b95d0712/spacy-loggers-1.0.5.tar.gz", hash = "sha256:d60b0bdbf915a60e516cc2e653baeff946f0cfc461b452d11a4d5458c6fe5f24", size = 20811, upload-time = "2023-09-11T12:26:52.323Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/33/78/d1a1a026ef3af911159398c939b1509d5c36fe524c7b644f34a5146c4e16/spacy_loggers-1.0.5-py3-none-any.whl", hash = "sha256:196284c9c446cc0cdb944005384270d775fdeaf4f494d8e269466cfa497ef645", size = 22343, upload-time = "2023-09-11T12:26:50.586Z" }, -] - -[[package]] -name = "srsly" -version = "2.5.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "catalogue" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2b/db/f794f219a6c788b881252d2536a8c4a97d2bdaadc690391e1cb53d123d71/srsly-2.5.3.tar.gz", hash = "sha256:08f98dbecbff3a31466c4ae7c833131f59d3655a0ad8ac749e6e2c149e2b0680", size = 490881, upload-time = "2026-03-23T11:56:59.865Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/21/e4/fea4512e9785f58509b2cf67d993323848e583161b5fcfdc7dd9d7c1f3df/srsly-2.5.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f73c0db911552e94fe2016e1759d261d2f47926f68826664cada3723c87006a", size = 658513, upload-time = "2026-03-23T11:56:01.239Z" }, - { url = "https://files.pythonhosted.org/packages/20/b1/53591681b6ff2699a4f97b2d5552ba196eaa6a979b0873605f4c04b5f7ee/srsly-2.5.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c1ac27ae5f4bb9163c7d2c45fc8ec173aac3d92e32086d9472b326c5c6e570e", size = 1172265, upload-time = "2026-03-23T11:56:02.589Z" }, - { url = "https://files.pythonhosted.org/packages/4e/c9/741e29f534919a944a16da4184924b1d3404c4bf60716ab2b91be771d1e3/srsly-2.5.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:99026bcd9cbd3211cc36517400b04ca0fc5d3e412b14daf84ee6e65f67d9a2d8", size = 1180873, upload-time = "2026-03-23T11:56:03.944Z" }, - { url = "https://files.pythonhosted.org/packages/89/57/5554f786eccf78b2750d6ac63be126e1b67badec2cb409dd611cf6f8c52b/srsly-2.5.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:07d682679e639eb46ff7e6da4a92714f4d5ffe351d088ee66f221e9b1f8865bb", size = 1120437, upload-time = "2026-03-23T11:56:05.283Z" }, - { url = "https://files.pythonhosted.org/packages/eb/95/9b4f73b1be3692f86d72ccc131c8e50f26f824d5c8830a59390bcc5b60ef/srsly-2.5.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8e0542d85d6b55cf2934050d6ffcb1cd76c768dcf9572e7467002cf087bb366d", size = 1137376, upload-time = "2026-03-23T11:56:06.613Z" }, -] - [[package]] name = "sse-starlette" version = "3.4.4" @@ -7069,15 +6784,6 @@ requires-dist = [ { name = "verifiers", specifier = ">=0.4.0" }, ] -[[package]] -name = "syllapy" -version = "0.7.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/29/a1/7bc1ce4852e14ab5f3153262639742ae63fbfa626507dac4ab919a1e5232/syllapy-0.7.2.tar.gz", hash = "sha256:e55a7ad97d8b232e174b83f91b8f9be0c355d2a8e1208c7f6229055189605564", size = 25561, upload-time = "2022-08-29T01:55:03.366Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/cc/ffc9bddc146f14e8792a9b05b2bd1bc5f23f3b752a06e96b244780ce55b9/syllapy-0.7.2-py3-none-any.whl", hash = "sha256:198a7413033c32d7b31e21962efb3f284bcea80d3346e954b938ca1ebe6bee20", size = 24882, upload-time = "2022-08-29T01:55:01.1Z" }, -] - [[package]] name = "sympy" version = "1.14.0" @@ -7132,7 +6838,7 @@ dependencies = [ { name = "packaging" }, { name = "pillow" }, { name = "protobuf" }, - { name = "setuptools" }, + { name = "setuptools", version = "80.10.2", source = { registry = "https://pypi.org/simple" } }, { name = "tensorboard-data-server" }, { name = "werkzeug" }, ] @@ -7165,8 +6871,7 @@ name = "terminal-lego" version = "0.1.2" source = { editable = "deps/prime-envs/environments/terminal/terminal_lego" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers", extra = ["harbor"] }, ] @@ -7194,33 +6899,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/26/b4/9a9ba65154aff853c75b3d7324319d168ad9c69c6097f4aa3c16da7d9ef3/textarena-0.7.4-py3-none-any.whl", hash = "sha256:684784e78278e518066f67557ee93b47c238d16cbbd15d3abdaa3147562d3024", size = 1073570, upload-time = "2025-10-16T14:41:53.965Z" }, ] -[[package]] -name = "thinc" -version = "8.3.13" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "blis" }, - { name = "catalogue" }, - { name = "confection" }, - { name = "cymem" }, - { name = "murmurhash" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "preshed" }, - { name = "pydantic" }, - { name = "setuptools" }, - { name = "srsly" }, - { name = "wasabi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/13/46/76df95f2c327f9a9cef30c1523bf285627897097163584dcf5f77b2ebce2/thinc-8.3.13.tar.gz", hash = "sha256:68e658549fc1eb3ff92aed5147fcbb9c15d6e9cc0e623b4d0998d16522ffb4f9", size = 194640, upload-time = "2026-03-23T07:22:36.41Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/45/8f/69d7338575d98df85d0b54c0f5fc277dba72587fe9ab846ecdd12a998bcb/thinc-8.3.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3710d318b4e5460cf366a6f7b5ddbefb5d39dbd4cfa408222750fdc6c27c4411", size = 791932, upload-time = "2026-03-23T07:21:58.38Z" }, - { url = "https://files.pythonhosted.org/packages/4b/a5/21d010c81e81e1589e5ccb4950e521804d13726e541e87f644c51815673b/thinc-8.3.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5a08c87143a6d20177652dca1ec0dc815d88216d8fc62594a57e8bc45bf5ed49", size = 3854219, upload-time = "2026-03-23T07:21:59.819Z" }, - { url = "https://files.pythonhosted.org/packages/f9/ff/6914bf370bd1d604d89e6dfb46b97d10cd9b00d42ff8c036283e92314a8c/thinc-8.3.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4b5ec9ff313819e7d8667794a3559463fa89ff45aaa73e3fd8d6273b1e0d7a7f", size = 3903307, upload-time = "2026-03-23T07:22:01.652Z" }, - { url = "https://files.pythonhosted.org/packages/f3/3d/5572b47fa155fb3388c071515b74024fa17a6efd1df9406da378f0aa84ef/thinc-8.3.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5c9a48f2bc1e04f138240ed5f9b815a9141a5de26accd0f08fa0137fcefed258", size = 4836882, upload-time = "2026-03-23T07:22:03.565Z" }, - { url = "https://files.pythonhosted.org/packages/f0/f0/a8d77c7bac089697c6df302cc3c936a1ab36a4720deae889e6f1dbcbd0eb/thinc-8.3.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:79a29a44d76bd02f5ac0624268c6e42b3576ae472c791a8ae9c2d813ae789b59", size = 5033398, upload-time = "2026-03-23T07:22:05.045Z" }, -] - [[package]] name = "threadpoolctl" version = "3.6.0" @@ -7257,7 +6935,7 @@ dependencies = [ { name = "ml-dtypes" }, { name = "numpy" }, { name = "psutil" }, - { name = "setuptools", marker = "sys_platform != 'linux'" }, + { name = "setuptools", version = "77.0.3", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, { name = "torch", version = "2.13.0+cu130", source = { registry = "https://download.pytorch.org/whl/cu130" }, marker = "sys_platform == 'linux'" }, { name = "torch-c-dlpack-ext" }, @@ -7285,24 +6963,23 @@ requires-dist = [{ name = "verifiers", extras = ["harbor"], specifier = ">=0.4.0 [[package]] name = "tokenizers" -version = "0.22.2" +version = "0.23.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115, upload-time = "2026-01-05T10:45:15.988Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/7c/2cabb2174e772636683008f2c5621949b645da7d303c596589e84516a184/tokenizers-0.23.3.tar.gz", hash = "sha256:cded33237c77caeef62944d32aa9a7ef42bdce2b3497e18d137e072a8c4be438", size = 385286, upload-time = "2026-10-09T10:16:55.759Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472, upload-time = "2026-01-05T10:41:00.276Z" }, - { url = "https://files.pythonhosted.org/packages/d6/84/7990e799f1309a8b87af6b948f31edaa12a3ed22d11b352eaf4f4b2e5753/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7", size = 3290736, upload-time = "2026-01-05T10:40:32.165Z" }, - { url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67", size = 3274982, upload-time = "2026-01-05T10:40:58.331Z" }, - { url = "https://files.pythonhosted.org/packages/1d/28/5f9f5a4cc211b69e89420980e483831bcc29dade307955cc9dc858a40f01/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4", size = 9478245, upload-time = "2026-01-05T10:41:04.053Z" }, - { url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5", size = 10033429, upload-time = "2026-01-05T10:45:14.333Z" }, + { url = "https://files.pythonhosted.org/packages/b2/72/01e49f032bb346e5aaf06c10c74fe8aeec847173adbadd66eb7c53054bf2/tokenizers-0.23.3-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:68649e97d5b43c44c031d8d848874a6eecae8f8fe40ea989aa777a5a83aca716", size = 3101381, upload-time = "2026-10-09T10:00:54.063Z" }, + { url = "https://files.pythonhosted.org/packages/15/fc/ae987741829b1cd547668c4c94be732ae3eefd1d74344e64c3d2ca714acd/tokenizers-0.23.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec82e80e65a862275b97c3d90b7a523df8d9519ee48aeb4e9625b2cc909274e0", size = 3519944, upload-time = "2026-10-09T10:00:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/3a/40/6706b82693715581457c6d5423eaa7faae576bb0526c5738a57085eb4449/tokenizers-0.23.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:376851d22bcf9d650a5c3090bb83e6cf9e895fbf0595369fa4cd43c1f69b5f87", size = 3396193, upload-time = "2026-10-09T10:01:05.48Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6b/8d615d92cad1d511ca5ab188d1c7c167f0b3d295cc0d96207f9f82d486d8/tokenizers-0.23.3-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:114e2b55ed177179d59f4ab98200a4471e11e78f9e4b5a922d146740f96fcf52", size = 9972248, upload-time = "2026-10-09T10:01:09.437Z" }, + { url = "https://files.pythonhosted.org/packages/26/e5/065625317690ea3548d834dad81f48ea1fd32e4964610e658e195d7fe28e/tokenizers-0.23.3-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e05ab7baf7f47b406a95fea6f3b0a484b2ddcd9e1d14b68844c457eb755085a3", size = 10266026, upload-time = "2026-10-09T10:16:33.054Z" }, ] [[package]] name = "tokenspeed-mla" -version = "0.1.8" +version = "0.2.15" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "apache-tvm-ffi" }, @@ -7311,17 +6988,16 @@ dependencies = [ { name = "torch", version = "2.13.0+cu130", source = { registry = "https://download.pytorch.org/whl/cu130" } }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/65/81d7e9f14472bc4c6abb576c9b1edd8e40ab01832027c4e647bfe2890749/tokenspeed_mla-0.1.8-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:952209cf4b29a54e6b6e7e088be9d4a40f24792b06fdfa330de8077b9926a7d9", size = 752341, upload-time = "2026-06-24T03:36:28.619Z" }, - { url = "https://files.pythonhosted.org/packages/27/df/0037ade72b165ac97859040919e006aa3d80cb8cc3a79420fb6c03eb16a0/tokenspeed_mla-0.1.8-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:6a7526d7327746893f8c20d24aa63ba5b8a123d0dfd6e66388e13b768b6452c6", size = 755827, upload-time = "2026-06-24T03:36:29.96Z" }, + { url = "https://files.pythonhosted.org/packages/14/56/495ed0feea7c332e02bbf23fa565aee3a176fe463c81ff7cc85afc01817e/tokenspeed_mla-0.2.15-py3-none-any.whl", hash = "sha256:7b4d8bfe92e1ad984e94db262671ef33ce2ecfe0a44f79c5ea1c2816d8397a1f", size = 151477, upload-time = "2026-09-28T19:49:06.103Z" }, ] [[package]] name = "tokenspeed-triton" -version = "3.8.10.post20260721" +version = "3.9.10.post20261008" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/44/89740db8951918c9acd8731243eef8b44d0eb92ea423552639265c46018e/tokenspeed_triton-3.8.10.post20260721-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d793ad0eaebb1d08272c97a2b8f2c31304231748b03de9a08e70a362de92a6e0", size = 82966664, upload-time = "2026-07-21T17:14:38.568Z" }, - { url = "https://files.pythonhosted.org/packages/91/53/f46b401e8ec8998f5b9c39cff0614b796bf49113a09f588cfdfa342789a3/tokenspeed_triton-3.8.10.post20260721-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:66cba8d32a1539afd0ff3eec1782b082d01b4db6824d68017d1d789a03d0be37", size = 87210295, upload-time = "2026-07-21T17:14:42.173Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e3/b5a3fc7df1c9996c4423deef5e3bad912c27be09922ad9fcb902ab960fc9/tokenspeed_triton-3.9.10.post20261008-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e6bd2c4b25f6976f1e22e33e5e1c8b04ede6db6aa6c50722b8a30097ec2782ad", size = 88581214, upload-time = "2026-10-09T23:23:05.448Z" }, + { url = "https://files.pythonhosted.org/packages/1c/79/ffd666bee268dc27ee34ed471e43f0357f9154c93d5180381861f8673c21/tokenspeed_triton-3.9.10.post20261008-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5cb864b8a55f3b0b6d95dca81af85abd702496265971d8c44366eb68c8851154", size = 93285278, upload-time = "2026-10-09T23:23:09.368Z" }, ] [[package]] @@ -7368,7 +7044,7 @@ dependencies = [ { name = "fsspec" }, { name = "jinja2" }, { name = "networkx" }, - { name = "setuptools" }, + { name = "setuptools", version = "77.0.3", source = { registry = "https://pypi.org/simple" } }, { name = "sympy" }, { name = "typing-extensions" }, ] @@ -7395,7 +7071,7 @@ dependencies = [ { name = "nvidia-cusparselt-cu13" }, { name = "nvidia-nccl-cu13" }, { name = "nvidia-nvshmem-cu13" }, - { name = "setuptools" }, + { name = "setuptools", version = "80.10.2", source = { registry = "https://pypi.org/simple" } }, { name = "sympy" }, { name = "triton" }, { name = "typing-extensions" }, @@ -7588,8 +7264,7 @@ name = "trace-cheating-recall-500" version = "0.1.0" source = { editable = "deps/prime-envs/environments/judges/trace_cheating_recall_500" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "orjson" }, { name = "verifiers" }, ] @@ -7612,11 +7287,10 @@ wheels = [ [[package]] name = "transformers" -version = "5.6.2" +version = "5.19.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "numpy" }, { name = "packaging" }, { name = "pyyaml" }, @@ -7626,9 +7300,9 @@ dependencies = [ { name = "tqdm" }, { name = "typer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a4/e9/c6c80a07690142a7d05444271f47b9f3c8aac7dea01d52e1137ee480ad78/transformers-5.6.2.tar.gz", hash = "sha256:e657134c3e5a6bc00a3c35f4e2674bb51adfcd89898495b788a18552bac2b91a", size = 8311867, upload-time = "2026-04-23T18:33:29.332Z" } +sdist = { url = "https://files.pythonhosted.org/packages/65/4c/70012ed0795235fb6bd7806fafd4a1842f03e49ebbfa3bb9580e451948ce/transformers-5.19.0.tar.gz", hash = "sha256:87f38dd25e4521151b97e94520ac457f44a0ae8a8358a5b112daff6c64a822d6", size = 10032022, upload-time = "2026-10-06T16:39:00.229Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/95/0b0218149b0d6f14df35f5b8f676fa83df4f19ed253c3cc447107ef86eca/transformers-5.6.2-py3-none-any.whl", hash = "sha256:f8d3a1bb96778fed9b8aabfd0dd6e19843e4b0f2bb6b59f32b8a92051b0f348f", size = 10364898, upload-time = "2026-04-23T18:33:26.081Z" }, + { url = "https://files.pythonhosted.org/packages/b9/59/1e7f1212c215c73690ae6cab4678efe1555ff985953e145d88cc212859b0/transformers-5.19.0-py3-none-any.whl", hash = "sha256:afcd2dd5f603ed28c1e1fcb00a338ccbb4ef5f878ed289635df8b58187afb518", size = 12599123, upload-time = "2026-10-06T16:38:56.794Z" }, ] [[package]] @@ -7719,8 +7393,7 @@ version = "0.25.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, - { name = "click", version = "8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "click" }, { name = "rich" }, { name = "shellingham" }, ] @@ -7856,8 +7529,7 @@ name = "uvicorn" version = "0.52.4" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", version = "8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "click" }, { name = "h11" }, ] sdist = { url = "https://files.pythonhosted.org/packages/f2/0f/3f86e61397dd33bf2ccf28188c40db6a740658aeebbbf6e7dbc101a1f487/uvicorn-0.52.4.tar.gz", hash = "sha256:73acfee47a0b133c5de13d219492d62d8a31e935f4fe6e41a232451a15379f86", size = 100627, upload-time = "2026-08-19T06:27:41.821Z" } @@ -8013,8 +7685,7 @@ version = "0.1.1" source = { editable = "deps/prime-envs/environments/multimodal/virl39k" } dependencies = [ { name = "datasets" }, - { name = "huggingface-hub", version = "1.16.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "huggingface-hub" }, { name = "verifiers" }, ] @@ -8042,8 +7713,8 @@ wheels = [ [[package]] name = "vllm" -version = "0.31.0" -source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_aarch64.whl" } +version = "0.32.0" +source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_aarch64.whl" } resolution-markers = [ "platform_machine == 'aarch64' and sys_platform == 'linux'", ] @@ -8062,7 +7733,7 @@ dependencies = [ { name = "fastsafetensors" }, { name = "filelock" }, { name = "flashinfer-python" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" } }, + { name = "huggingface-hub" }, { name = "humming-kernels", extra = ["cu13"] }, { name = "ijson" }, { name = "instanttensor" }, @@ -8107,7 +7778,7 @@ dependencies = [ { name = "safetensors" }, { name = "sentencepiece" }, { name = "setproctitle" }, - { name = "setuptools" }, + { name = "setuptools", version = "80.10.2", source = { registry = "https://pypi.org/simple" } }, { name = "six" }, { name = "starlette" }, { name = "tiktoken" }, @@ -8125,16 +7796,16 @@ dependencies = [ { name = "xgrammar" }, ] wheels = [ - { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:56edd19c798510b6da5ae4dd38b3bdf55ea7ae261b339a906df006dc3faf751d" }, + { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d0620dbdf99528bcfebe551a8906347a229921fb1602f887bd1286a920da2d44" }, ] [package.metadata] requires-dist = [ - { name = "aiohttp", specifier = ">=3.13.3" }, + { name = "aiohttp", specifier = ">=3.14.3" }, { name = "anthropic", specifier = ">=0.71.0" }, { name = "apache-tvm-ffi", specifier = "==0.1.11" }, { name = "av", marker = "extra == 'audio'" }, - { name = "b12x", marker = "extra == 'b12x'", specifier = "==1.3.0" }, + { name = "b12x", marker = "extra == 'b12x'", specifier = "==1.5.1" }, { name = "blake3" }, { name = "cachetools" }, { name = "cbor2" }, @@ -8146,14 +7817,14 @@ requires-dist = [ { name = "fastapi", extras = ["standard"], specifier = ">=0.133.0,<0.137.0" }, { name = "fastsafetensors", specifier = ">=0.3.3" }, { name = "fastsafetensors", marker = "extra == 'fastsafetensors'", specifier = ">=0.3.3" }, - { name = "filelock", specifier = ">=3.16.1" }, + { name = "filelock", specifier = ">=3.20.3" }, { name = "flashinfer-python", specifier = "==0.7.0.post1" }, { name = "helion", marker = "extra == 'helion'", specifier = "==1.4.0" }, { name = "huggingface-hub", specifier = ">=1.31.0" }, - { name = "humming-kernels", extras = ["cu13"], specifier = "==0.1.16" }, + { name = "humming-kernels", extras = ["cu13"], specifier = "==0.1.17" }, { name = "ijson" }, - { name = "instanttensor", specifier = ">=0.1.9" }, - { name = "instanttensor", marker = "extra == 'instanttensor'", specifier = ">=0.1.9" }, + { name = "instanttensor", specifier = ">=0.2.2" }, + { name = "instanttensor", marker = "extra == 'instanttensor'", specifier = ">=0.2.2" }, { name = "jsonschema", specifier = ">=4.23.0" }, { name = "lark", specifier = "==1.2.2" }, { name = "llguidance", marker = "platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ppc64le' or platform_machine == 's390x' or platform_machine == 'x86_64'", specifier = ">=1.7.0,<1.8.0" }, @@ -8168,7 +7839,7 @@ requires-dist = [ { name = "numba", specifier = "==0.65.0" }, { name = "numpy" }, { name = "nvidia-cudnn-frontend", specifier = ">=1.19.1" }, - { name = "nvidia-cutlass-dsl", extras = ["cu13"], specifier = "==4.7.1" }, + { name = "nvidia-cutlass-dsl", extras = ["cu13"], specifier = "==4.8.0" }, { name = "nvidia-deepstream-videodecode-cu13", marker = "extra == 'deepstream'", specifier = ">=9.0.2" }, { name = "nvtx", specifier = "==0.2.15" }, { name = "openai", specifier = ">=2.25.0" }, @@ -8185,7 +7856,7 @@ requires-dist = [ { name = "outlines-core", specifier = "==0.2.14" }, { name = "pandas", marker = "extra == 'bench'" }, { name = "partial-json-parser" }, - { name = "pillow" }, + { name = "pillow", specifier = ">=12.3.0" }, { name = "plotly", marker = "extra == 'bench'" }, { name = "prometheus-client", specifier = ">=0.18.0" }, { name = "prometheus-fastapi-instrumentator", specifier = ">=8.0.0" }, @@ -8201,7 +7872,7 @@ requires-dist = [ { name = "pyzmq", specifier = ">=25.0.0" }, { name = "quack-kernels", specifier = "==0.6.5" }, { name = "regex" }, - { name = "requests", specifier = ">=2.26.0" }, + { name = "requests", specifier = ">=2.33.0" }, { name = "runai-model-streamer", extras = ["azure", "gcs", "s3"], marker = "extra == 'runai'", specifier = ">=0.15.7" }, { name = "safetensors", specifier = ">=0.6.2" }, { name = "scipy", marker = "extra == 'audio'" }, @@ -8209,7 +7880,7 @@ requires-dist = [ { name = "seaborn", marker = "extra == 'bench'" }, { name = "sentencepiece" }, { name = "setproctitle" }, - { name = "setuptools", marker = "python_full_version >= '3.12'", specifier = ">=77.0.3,<81.0.0" }, + { name = "setuptools", marker = "python_full_version >= '3.12'", specifier = ">=78.1.1,<81.0.0" }, { name = "six", marker = "python_full_version >= '3.12'", specifier = ">=1.16.0" }, { name = "smg-grpc-servicer", extras = ["vllm"], marker = "extra == 'grpc'", specifier = ">=0.5.2" }, { name = "soundfile", marker = "extra == 'audio'" }, @@ -8218,26 +7889,26 @@ requires-dist = [ { name = "tensorizer", marker = "extra == 'tensorizer'", specifier = "==2.10.1" }, { name = "tiktoken", specifier = ">=0.6.0" }, { name = "tilelang", specifier = "==0.1.12" }, - { name = "tokenizers", specifier = ">=0.21.1" }, - { name = "tokenspeed-mla", marker = "sys_platform == 'linux'", specifier = "==0.1.8" }, + { name = "tokenizers", specifier = ">=0.23.2" }, + { name = "tokenspeed-mla", marker = "sys_platform == 'linux'", specifier = "==0.2.15" }, { name = "torch", specifier = "==2.13.0" }, { name = "torchaudio", specifier = "==2.11.0" }, { name = "torchcodec", specifier = ">=0.14" }, { name = "torchvision", specifier = "==0.28.0" }, { name = "tqdm" }, - { name = "transformers", specifier = ">=5.10.4,<5.18.0" }, + { name = "transformers", specifier = ">=5.16.1,<5.20.0" }, { name = "typing-extensions", specifier = ">=4.10" }, { name = "vllm-gguf-plugin", marker = "extra == 'extra-quant'", specifier = ">=0.0.2" }, { name = "watchfiles" }, - { name = "xgrammar", marker = "platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ppc64le' or platform_machine == 's390x' or platform_machine == 'x86_64'", specifier = "==0.2.7" }, + { name = "xgrammar", marker = "platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ppc64le' or platform_machine == 's390x' or platform_machine == 'x86_64'", specifier = "==0.2.8" }, { name = "zentorch", marker = "extra == 'zen'", specifier = "==2.13.0.1" }, ] provides-extras = ["zen", "bench", "tensorizer", "fastsafetensors", "instanttensor", "runai", "audio", "video", "deepstream", "flashinfer", "b12x", "helion", "grpc", "otel", "extra-quant"] [[package]] name = "vllm" -version = "0.31.0" -source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_x86_64.whl" } +version = "0.32.0" +source = { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_x86_64.whl" } resolution-markers = [ "platform_machine == 'x86_64' and sys_platform == 'linux'", ] @@ -8256,7 +7927,7 @@ dependencies = [ { name = "fastsafetensors" }, { name = "filelock" }, { name = "flashinfer-python" }, - { name = "huggingface-hub", version = "1.32.0", source = { registry = "https://pypi.org/simple" } }, + { name = "huggingface-hub" }, { name = "humming-kernels", extra = ["cu13"] }, { name = "ijson" }, { name = "instanttensor" }, @@ -8301,7 +7972,7 @@ dependencies = [ { name = "safetensors" }, { name = "sentencepiece" }, { name = "setproctitle" }, - { name = "setuptools" }, + { name = "setuptools", version = "80.10.2", source = { registry = "https://pypi.org/simple" } }, { name = "six" }, { name = "starlette" }, { name = "tiktoken" }, @@ -8319,16 +7990,16 @@ dependencies = [ { name = "xgrammar" }, ] wheels = [ - { url = "https://github.com/vllm-project/vllm/releases/download/v0.31.0/vllm-0.31.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:39132b433967f0962d03d8a5f633b9bee6b32708f566c7d5637b79f8d0ef3433" }, + { url = "https://github.com/vllm-project/vllm/releases/download/v0.32.0/vllm-0.32.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5e2ecdc5b0baf72921c288486417ca82778456a448e4fe60b62ee43c0dfc8611" }, ] [package.metadata] requires-dist = [ - { name = "aiohttp", specifier = ">=3.13.3" }, + { name = "aiohttp", specifier = ">=3.14.3" }, { name = "anthropic", specifier = ">=0.71.0" }, { name = "apache-tvm-ffi", specifier = "==0.1.11" }, { name = "av", marker = "extra == 'audio'" }, - { name = "b12x", marker = "extra == 'b12x'", specifier = "==1.3.0" }, + { name = "b12x", marker = "extra == 'b12x'", specifier = "==1.5.1" }, { name = "blake3" }, { name = "cachetools" }, { name = "cbor2" }, @@ -8340,14 +8011,14 @@ requires-dist = [ { name = "fastapi", extras = ["standard"], specifier = ">=0.133.0,<0.137.0" }, { name = "fastsafetensors", specifier = ">=0.3.3" }, { name = "fastsafetensors", marker = "extra == 'fastsafetensors'", specifier = ">=0.3.3" }, - { name = "filelock", specifier = ">=3.16.1" }, + { name = "filelock", specifier = ">=3.20.3" }, { name = "flashinfer-python", specifier = "==0.7.0.post1" }, { name = "helion", marker = "extra == 'helion'", specifier = "==1.4.0" }, { name = "huggingface-hub", specifier = ">=1.31.0" }, - { name = "humming-kernels", extras = ["cu13"], specifier = "==0.1.16" }, + { name = "humming-kernels", extras = ["cu13"], specifier = "==0.1.17" }, { name = "ijson" }, - { name = "instanttensor", specifier = ">=0.1.9" }, - { name = "instanttensor", marker = "extra == 'instanttensor'", specifier = ">=0.1.9" }, + { name = "instanttensor", specifier = ">=0.2.2" }, + { name = "instanttensor", marker = "extra == 'instanttensor'", specifier = ">=0.2.2" }, { name = "jsonschema", specifier = ">=4.23.0" }, { name = "lark", specifier = "==1.2.2" }, { name = "llguidance", marker = "platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ppc64le' or platform_machine == 's390x' or platform_machine == 'x86_64'", specifier = ">=1.7.0,<1.8.0" }, @@ -8362,7 +8033,7 @@ requires-dist = [ { name = "numba", specifier = "==0.65.0" }, { name = "numpy" }, { name = "nvidia-cudnn-frontend", specifier = ">=1.19.1" }, - { name = "nvidia-cutlass-dsl", extras = ["cu13"], specifier = "==4.7.1" }, + { name = "nvidia-cutlass-dsl", extras = ["cu13"], specifier = "==4.8.0" }, { name = "nvidia-deepstream-videodecode-cu13", marker = "extra == 'deepstream'", specifier = ">=9.0.2" }, { name = "nvtx", specifier = "==0.2.15" }, { name = "openai", specifier = ">=2.25.0" }, @@ -8379,7 +8050,7 @@ requires-dist = [ { name = "outlines-core", specifier = "==0.2.14" }, { name = "pandas", marker = "extra == 'bench'" }, { name = "partial-json-parser" }, - { name = "pillow" }, + { name = "pillow", specifier = ">=12.3.0" }, { name = "plotly", marker = "extra == 'bench'" }, { name = "prometheus-client", specifier = ">=0.18.0" }, { name = "prometheus-fastapi-instrumentator", specifier = ">=8.0.0" }, @@ -8395,7 +8066,7 @@ requires-dist = [ { name = "pyzmq", specifier = ">=25.0.0" }, { name = "quack-kernels", specifier = "==0.6.5" }, { name = "regex" }, - { name = "requests", specifier = ">=2.26.0" }, + { name = "requests", specifier = ">=2.33.0" }, { name = "runai-model-streamer", extras = ["azure", "gcs", "s3"], marker = "extra == 'runai'", specifier = ">=0.15.7" }, { name = "safetensors", specifier = ">=0.6.2" }, { name = "scipy", marker = "extra == 'audio'" }, @@ -8403,7 +8074,7 @@ requires-dist = [ { name = "seaborn", marker = "extra == 'bench'" }, { name = "sentencepiece" }, { name = "setproctitle" }, - { name = "setuptools", marker = "python_full_version >= '3.12'", specifier = ">=77.0.3,<81.0.0" }, + { name = "setuptools", marker = "python_full_version >= '3.12'", specifier = ">=78.1.1,<81.0.0" }, { name = "six", marker = "python_full_version >= '3.12'", specifier = ">=1.16.0" }, { name = "smg-grpc-servicer", extras = ["vllm"], marker = "extra == 'grpc'", specifier = ">=0.5.2" }, { name = "soundfile", marker = "extra == 'audio'" }, @@ -8412,18 +8083,18 @@ requires-dist = [ { name = "tensorizer", marker = "extra == 'tensorizer'", specifier = "==2.10.1" }, { name = "tiktoken", specifier = ">=0.6.0" }, { name = "tilelang", specifier = "==0.1.12" }, - { name = "tokenizers", specifier = ">=0.21.1" }, - { name = "tokenspeed-mla", marker = "sys_platform == 'linux'", specifier = "==0.1.8" }, + { name = "tokenizers", specifier = ">=0.23.2" }, + { name = "tokenspeed-mla", marker = "sys_platform == 'linux'", specifier = "==0.2.15" }, { name = "torch", specifier = "==2.13.0" }, { name = "torchaudio", specifier = "==2.11.0" }, { name = "torchcodec", specifier = ">=0.14" }, { name = "torchvision", specifier = "==0.28.0" }, { name = "tqdm" }, - { name = "transformers", specifier = ">=5.10.4,<5.18.0" }, + { name = "transformers", specifier = ">=5.16.1,<5.20.0" }, { name = "typing-extensions", specifier = ">=4.10" }, { name = "vllm-gguf-plugin", marker = "extra == 'extra-quant'", specifier = ">=0.0.2" }, { name = "watchfiles" }, - { name = "xgrammar", marker = "platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ppc64le' or platform_machine == 's390x' or platform_machine == 'x86_64'", specifier = "==0.2.7" }, + { name = "xgrammar", marker = "platform_machine == 'aarch64' or platform_machine == 'arm64' or platform_machine == 'ppc64le' or platform_machine == 's390x' or platform_machine == 'x86_64'", specifier = "==0.2.8" }, { name = "zentorch", marker = "extra == 'zen'", specifier = "==2.13.0.1" }, ] provides-extras = ["zen", "bench", "tensorizer", "fastsafetensors", "instanttensor", "runai", "audio", "video", "deepstream", "flashinfer", "b12x", "helion", "grpc", "otel", "extra-quant"] @@ -8508,8 +8179,7 @@ name = "wandb" version = "0.27.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click", version = "8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform != 'linux'" }, - { name = "click", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "sys_platform == 'linux'" }, + { name = "click" }, { name = "gitpython" }, { name = "packaging" }, { name = "platformdirs" }, @@ -8542,15 +8212,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/8f/0c1bc0b48733935031ef8956a1efb1436e3f4e1a3a402eece169a952672b/wandb_workspaces-0.4.3-py3-none-any.whl", hash = "sha256:4536dbc9d57d3aa59318e770b5c526c087f52b6b9488634b1d393163b9f6da2f", size = 109269, upload-time = "2026-06-10T22:27:15.509Z" }, ] -[[package]] -name = "wasabi" -version = "1.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ac/f9/054e6e2f1071e963b5e746b48d1e3727470b2a490834d18ad92364929db3/wasabi-1.1.3.tar.gz", hash = "sha256:4bb3008f003809db0c3e28b4daf20906ea871a2bb43f9914197d540f4f2e0878", size = 30391, upload-time = "2024-05-31T16:56:18.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl", hash = "sha256:f76e16e8f7e79f8c4c8be49b4024ac725713ab10cd7f19350ad18a8e3f71728c", size = 27880, upload-time = "2024-05-31T16:56:16.699Z" }, -] - [[package]] name = "watchfiles" version = "1.2.0" @@ -8576,26 +8237,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/41/52/e465037f5375f43533d1a80b6923955201596a99142ed524d77b571a1418/wcwidth-0.7.0-py3-none-any.whl", hash = "sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2", size = 110825, upload-time = "2026-05-02T16:04:11.033Z" }, ] -[[package]] -name = "weasel" -version = "1.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cloudpathlib" }, - { name = "confection" }, - { name = "httpx" }, - { name = "packaging" }, - { name = "pydantic" }, - { name = "smart-open" }, - { name = "srsly" }, - { name = "typer" }, - { name = "wasabi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ce/e5/e272bb9a045105a1fdf4b798d8086f5932a178f4d738f17a74f5c9e0ae9a/weasel-1.0.0.tar.gz", hash = "sha256:7b129b44c90cc543b760532974ca1e4eb30dad2aa2026f57bdce66354ae610fc", size = 38682, upload-time = "2026-03-20T08:10:25.266Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/07/57ebf7a6798b016c064bd0ca81b4c6a99daa4dc377b898bc7b41eb6b5af0/weasel-1.0.0-py3-none-any.whl", hash = "sha256:89518acee027f49d743126c3502d35e6dd14f5768be5c37c9af47c171b6005cc", size = 50713, upload-time = "2026-03-20T08:10:23.637Z" }, -] - [[package]] name = "websocket-client" version = "1.9.0" @@ -8695,21 +8336,6 @@ dependencies = [ [package.metadata] requires-dist = [{ name = "verifiers", extras = ["ta"] }] -[[package]] -name = "wrapt" -version = "1.17.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547, upload-time = "2025-08-12T05:53:21.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9f/41/cad1aba93e752f1f9268c77270da3c469883d56e2798e7df6240dcb2287b/wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0", size = 53998, upload-time = "2025-08-12T05:51:47.138Z" }, - { url = "https://files.pythonhosted.org/packages/33/df/bdf864b8997aab4febb96a9ae5c124f700a5abd9b5e13d2a3214ec4be705/wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd", size = 39098, upload-time = "2025-08-12T05:51:57.474Z" }, - { url = "https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828", size = 88036, upload-time = "2025-08-12T05:52:34.784Z" }, - { url = "https://files.pythonhosted.org/packages/ca/38/2e1785df03b3d72d34fc6252d91d9d12dc27a5c89caef3335a1bbb8908ca/wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9", size = 88156, upload-time = "2025-08-12T05:52:13.599Z" }, - { url = "https://files.pythonhosted.org/packages/b3/8b/48cdb60fe0603e34e05cffda0b2a4adab81fd43718e11111a4b0100fd7c1/wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396", size = 87102, upload-time = "2025-08-12T05:52:14.56Z" }, - { url = "https://files.pythonhosted.org/packages/3c/51/d81abca783b58f40a154f1b2c56db1d2d9e0d04fa2d4224e357529f57a57/wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc", size = 87732, upload-time = "2025-08-12T05:52:36.165Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591, upload-time = "2025-08-12T05:53:20.674Z" }, -] - [[package]] name = "writer-sdk" version = "3.0.0" @@ -8730,7 +8356,7 @@ wheels = [ [[package]] name = "xgrammar" -version = "0.2.7" +version = "0.2.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "apache-tvm-ffi" }, @@ -8741,10 +8367,10 @@ dependencies = [ { name = "triton", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/81/e8/21a1661542d541c3c11e56062a213f6405824845a7fc8d3874447d5c6775/xgrammar-0.2.7.tar.gz", hash = "sha256:7674afeee5e6eff9672627b62d5ab0aa2347ea51674f4d78a5c160029f92bc3e", size = 2663916, upload-time = "2026-09-15T15:51:07.444Z" } +sdist = { url = "https://files.pythonhosted.org/packages/03/0f/29f521535729be740779c2c98b630ef6607cf28be9b669895dd2b821ff63/xgrammar-0.2.8.tar.gz", hash = "sha256:8305646fd2b319d6c3003f51a1665e54cbbe9cba1fb636bc41d0b46434ccbb80", size = 2689558, upload-time = "2026-09-24T18:35:21.261Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/35/5d56e9dbe6f0ccefebcb5212b7ded0af17bec7f2d148dd6403c7d247d063/xgrammar-0.2.7-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2df1a2292f6b1c5cdc4b176ef2f22c58a837ac99fd854d93856160f31f14a4b0", size = 1113117, upload-time = "2026-09-15T15:50:26.492Z" }, - { url = "https://files.pythonhosted.org/packages/9d/f2/cb90cfbcca316b3fa98b0928ec989f3fb75f6439bc5269c5c2121d361301/xgrammar-0.2.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e4397798f73512ab5abccbadf0a7b6aaf0753ccc4f3171c43b14c4d22df1ed28", size = 1265122, upload-time = "2026-09-15T15:50:28.098Z" }, + { url = "https://files.pythonhosted.org/packages/b1/74/cdb56cc5afde708c6c39ed3d80680d7af6d12398bbb2681268bd5ac67eb7/xgrammar-0.2.8-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97732b6e5f11f21fd98a6cd9525241fc5f9d92f415329200a9adf8fc7453d8ec", size = 1157369, upload-time = "2026-09-24T18:34:36.456Z" }, + { url = "https://files.pythonhosted.org/packages/2c/2e/bab212484b84c296974168021693278f8d73d87ebccc4a6cc04e5ae2a061/xgrammar-0.2.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4045b096735bb2523e0d874039a55994c1b390620d547c4a0d4f43b9a106177b", size = 1311291, upload-time = "2026-09-24T18:34:38.217Z" }, ] [[package]] From ec44e71d4d68a70be5b399fd544e6d7db1d70e33 Mon Sep 17 00:00:00 2001 From: faresobeid <111092724+faresobeid@users.noreply.github.com> Date: Sun, 18 Oct 2026 14:27:59 +0000 Subject: [PATCH 2/3] Adapt NemotronH config and Qwen3.5 VLM tests to transformers 5.19 --- .../models/nemotron_h/configuration_nemotron_h.py | 9 +++------ .../trainer/models/nemotron_h/converting_nemotron_h.py | 4 ++-- .../trainer/models/nemotron_h/modeling_nemotron_h.py | 8 ++++---- tests/unit/train/models/qwen3_5/test_model.py | 4 ++-- tests/unit/train/models/qwen3_5/test_vlm.py | 6 ++---- tests/unit/train/models/test_nemotron_h.py | 2 +- 6 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/prime_rl/trainer/models/nemotron_h/configuration_nemotron_h.py b/src/prime_rl/trainer/models/nemotron_h/configuration_nemotron_h.py index 31f41145e02..fa9ef38f8e4 100644 --- a/src/prime_rl/trainer/models/nemotron_h/configuration_nemotron_h.py +++ b/src/prime_rl/trainer/models/nemotron_h/configuration_nemotron_h.py @@ -3,11 +3,12 @@ class NemotronHConfig(PretrainedConfig): model_type = "nemotron_h" + attribute_map = {"layer_types": "layers_block_type"} PATTERN_TO_LAYER_TYPE = { - "M": "mamba", + "M": "linear_attention", "E": "moe", - "*": "attention", + "*": "full_attention", } def __init__( @@ -125,10 +126,6 @@ def __init__( **kwargs, ) - @property - def layer_types(self) -> list[str]: - return self.layers_block_type - @property def num_hidden_layers(self) -> int: return len(self.layers_block_type) diff --git a/src/prime_rl/trainer/models/nemotron_h/converting_nemotron_h.py b/src/prime_rl/trainer/models/nemotron_h/converting_nemotron_h.py index dead0d9c452..c0c03a78908 100644 --- a/src/prime_rl/trainer/models/nemotron_h/converting_nemotron_h.py +++ b/src/prime_rl/trainer/models/nemotron_h/converting_nemotron_h.py @@ -24,9 +24,9 @@ def conversion_chain(config: NemotronHConfig) -> list[ConvOp]: for layer_idx, layer_type in enumerate(config.layer_types): prefix = f"model.layers.{layer_idx}" - if layer_type == "mamba": + if layer_type == "linear_attention": ops.append(PrefixRename(f"{prefix}.mixer.", f"{prefix}.mamba.")) - elif layer_type == "attention": + elif layer_type == "full_attention": ops.append(PrefixRename(f"{prefix}.mixer.", f"{prefix}.self_attn.")) elif layer_type == "moe": ops.extend( diff --git a/src/prime_rl/trainer/models/nemotron_h/modeling_nemotron_h.py b/src/prime_rl/trainer/models/nemotron_h/modeling_nemotron_h.py index 7d3a94efeba..1dac4f11c7b 100644 --- a/src/prime_rl/trainer/models/nemotron_h/modeling_nemotron_h.py +++ b/src/prime_rl/trainer/models/nemotron_h/modeling_nemotron_h.py @@ -44,9 +44,9 @@ def __init__(self, config: NemotronHConfig, layer_idx: int) -> None: self.layer_type = config.layer_types[layer_idx] self.norm = RMSNorm(RMSNormConfig(hidden_size=config.hidden_size, eps=config.layer_norm_epsilon)) - if self.layer_type == "mamba": + if self.layer_type == "linear_attention": self.mamba = NemotronHMamba2(config) - elif self.layer_type == "attention": + elif self.layer_type == "full_attention": self.self_attn = ATTN_IMPL2CLASS[config._attn_implementation]( AttentionConfig( hidden_size=config.hidden_size, @@ -115,9 +115,9 @@ def forward( residual = hidden_states hidden_states = self.norm(hidden_states) - if self.layer_type == "mamba": + if self.layer_type == "linear_attention": hidden_states = self.mamba(hidden_states, cu_seqlens) - elif self.layer_type == "attention": + elif self.layer_type == "full_attention": hidden_states, _ = self.self_attn( hidden_states=hidden_states, cu_seqlens=cu_seqlens, diff --git a/tests/unit/train/models/qwen3_5/test_model.py b/tests/unit/train/models/qwen3_5/test_model.py index 7f9f5b91593..f96dd30bc7c 100644 --- a/tests/unit/train/models/qwen3_5/test_model.py +++ b/tests/unit/train/models/qwen3_5/test_model.py @@ -5,7 +5,7 @@ from prime_rl.configs.trainer import ModelConfig from prime_rl.trainer.model import resolve_auto_attn -from prime_rl.trainer.models import AutoModelForCausalLMPrimeRL +from prime_rl.trainer.models import AutoModelForCausalLMPrimeRL, get_custom_vlm_cls from prime_rl.trainer.models.fusions import apply_model_fusions from prime_rl.trainer.models.layers.attn import FlashAttention, substitute_ring_attn from prime_rl.trainer.models.layers.lm_head import inject_prime_lm_head @@ -76,7 +76,7 @@ def get_model(config, device="cuda"): runtime_config = ModelConfig() resolve_auto_attn(runtime_config) with torch.device(device): - model = AutoModelForCausalLMPrimeRL.from_config( + model = (get_custom_vlm_cls(config) or AutoModelForCausalLMPrimeRL).from_config( config, attn_implementation=runtime_config.attn, dtype=torch.bfloat16 ) inject_prime_lm_head(model, chunk_size=None) diff --git a/tests/unit/train/models/qwen3_5/test_vlm.py b/tests/unit/train/models/qwen3_5/test_vlm.py index c7d9bb02bf1..c6ad2dea6e7 100644 --- a/tests/unit/train/models/qwen3_5/test_vlm.py +++ b/tests/unit/train/models/qwen3_5/test_vlm.py @@ -3,9 +3,9 @@ from prime_rl.configs.trainer import ModelConfig from prime_rl.trainer.model import resolve_auto_attn -from prime_rl.trainer.models import AutoModelForCausalLMPrimeRL from prime_rl.trainer.models.layers.lm_head import inject_prime_lm_head from prime_rl.trainer.models.qwen3_5 import ( + Qwen3_5ForCausalLM, Qwen3_5MoeConfig, Qwen3_5MoeTextConfig, Qwen3_5VisionConfig, @@ -58,9 +58,7 @@ def get_model(config, device="cuda"): runtime_config = ModelConfig() resolve_auto_attn(runtime_config) with torch.device(device): - model = AutoModelForCausalLMPrimeRL.from_config( - config, attn_implementation=runtime_config.attn, dtype=torch.bfloat16 - ) + model = Qwen3_5ForCausalLM.from_config(config, attn_implementation=runtime_config.attn, dtype=torch.bfloat16) inject_prime_lm_head(model) return model diff --git a/tests/unit/train/models/test_nemotron_h.py b/tests/unit/train/models/test_nemotron_h.py index 5a2c1bd0f5e..b6d471d55c1 100644 --- a/tests/unit/train/models/test_nemotron_h.py +++ b/tests/unit/train/models/test_nemotron_h.py @@ -92,7 +92,7 @@ def test_nemotron_h_weight_conversion_roundtrip(): def test_nemotron_h_layer_types(): - expected = ["mamba", "moe", "attention", "moe"] + expected = ["linear_attention", "moe", "full_attention", "moe"] pattern_config = NemotronHConfig(**_BASE, hybrid_override_pattern="ME*E") list_config = NemotronHConfig(**_BASE, layers_block_type=expected) From f92627e671e9abd083da8e85a4a0308f4671e6cc Mon Sep 17 00:00:00 2001 From: faresobeid <111092724+faresobeid@users.noreply.github.com> Date: Sun, 18 Oct 2026 14:59:46 +0000 Subject: [PATCH 3/3] Test legacy NemotronH layer names --- tests/unit/train/models/test_nemotron_h.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unit/train/models/test_nemotron_h.py b/tests/unit/train/models/test_nemotron_h.py index b6d471d55c1..8451fd67f4f 100644 --- a/tests/unit/train/models/test_nemotron_h.py +++ b/tests/unit/train/models/test_nemotron_h.py @@ -95,9 +95,11 @@ def test_nemotron_h_layer_types(): expected = ["linear_attention", "moe", "full_attention", "moe"] pattern_config = NemotronHConfig(**_BASE, hybrid_override_pattern="ME*E") list_config = NemotronHConfig(**_BASE, layers_block_type=expected) + legacy_config = NemotronHConfig(**_BASE, layers_block_type=["mamba", "moe", "attention", "moe"]) assert pattern_config.layer_types == expected assert list_config.layer_types == expected + assert legacy_config.layer_types == expected assert pattern_config.num_hidden_layers == list_config.num_hidden_layers == 4