mostlyai-engine 2.6.2__tar.gz → 2.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/PKG-INFO +8 -9
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/__init__.py +1 -1
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/vllm_engine.py +43 -1
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/pyproject.toml +9 -10
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/.gitignore +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/LICENSE +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/README.md +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_common.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_dtypes.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/__init__.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/__init__.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/categorical.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/datetime.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/numeric.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/text.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/__init__.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/categorical.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/character.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/datetime.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/itt.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/lat_long.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/numeric.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/__init__.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/common.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/encoding.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/__init__.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/base.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/hf_engine.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/generation.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/interface.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/lstm.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/tokenizer_utils.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/training.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/xgrammar_hf_logits.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/xgrammar_utils.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_memory.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/__init__.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/argn.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/common.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/encoding.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/fairness.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/generation.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/interface.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/probability.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/training.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_training_utils.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_workspace.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/analysis.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/domain.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/encoding.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/generation.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/logging.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/random_state.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/splitting.py +0 -0
- {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/training.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: mostlyai-engine
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.7.0
|
|
4
4
|
Summary: Synthetic Data Engine
|
|
5
5
|
Project-URL: homepage, https://github.com/mostly-ai/mostlyai-engine
|
|
6
6
|
Project-URL: repository, https://github.com/mostly-ai/mostlyai-engine
|
|
@@ -27,7 +27,7 @@ Requires-Dist: accelerate>=1.5.0
|
|
|
27
27
|
Requires-Dist: datasets>=3.0.0
|
|
28
28
|
Requires-Dist: huggingface-hub[hf-xet]>=0.30.2
|
|
29
29
|
Requires-Dist: joblib>=1.4.2
|
|
30
|
-
Requires-Dist: json-repair>=0.
|
|
30
|
+
Requires-Dist: json-repair>=0.60.1
|
|
31
31
|
Requires-Dist: numpy>=2.0.0
|
|
32
32
|
Requires-Dist: opacus>=1.6.0
|
|
33
33
|
Requires-Dist: pandas>=2.2.0
|
|
@@ -35,17 +35,16 @@ Requires-Dist: peft>=0.18.2
|
|
|
35
35
|
Requires-Dist: psutil<6,>=5.9.5
|
|
36
36
|
Requires-Dist: pyarrow>=16.0.0
|
|
37
37
|
Requires-Dist: scikit-learn>=1.4.0
|
|
38
|
-
Requires-Dist: setuptools<81.0.0,>=77.0.3
|
|
39
38
|
Requires-Dist: tokenizers>=0.21.1
|
|
40
|
-
Requires-Dist: torch<2.
|
|
39
|
+
Requires-Dist: torch<2.14.0,>=2.13.0
|
|
41
40
|
Requires-Dist: torchaudio<2.12.0,>=2.11.0
|
|
42
|
-
Requires-Dist: torchvision<0.
|
|
43
|
-
Requires-Dist: transformers>=5.5.
|
|
44
|
-
Requires-Dist: xgrammar<1.0.0,>=0.1
|
|
41
|
+
Requires-Dist: torchvision<0.29.0,>=0.28.0
|
|
42
|
+
Requires-Dist: transformers>=5.5.3
|
|
43
|
+
Requires-Dist: xgrammar<1.0.0,>=0.2.1
|
|
45
44
|
Provides-Extra: gpu
|
|
46
45
|
Requires-Dist: bitsandbytes==0.42.0; (sys_platform == 'darwin') and extra == 'gpu'
|
|
47
46
|
Requires-Dist: bitsandbytes>=0.45.5; (sys_platform == 'linux') and extra == 'gpu'
|
|
48
|
-
Requires-Dist: vllm==0.
|
|
47
|
+
Requires-Dist: vllm==0.28.0; (sys_platform == 'linux') and extra == 'gpu'
|
|
49
48
|
Description-Content-Type: text/markdown
|
|
50
49
|
|
|
51
50
|
# Synthetic Data Engine 💎
|
|
@@ -34,7 +34,7 @@ __all__ = [
|
|
|
34
34
|
"TabularARGN",
|
|
35
35
|
"LanguageModel",
|
|
36
36
|
]
|
|
37
|
-
__version__ = "2.
|
|
37
|
+
__version__ = "2.7.0"
|
|
38
38
|
|
|
39
39
|
# suppress specific warning related to os.fork() in multi-threaded processes
|
|
40
40
|
warnings.filterwarnings("ignore", category=DeprecationWarning, message=".*multi-threaded.*fork.*")
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/vllm_engine.py
RENAMED
|
@@ -14,9 +14,52 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
+
import inspect
|
|
18
|
+
import re
|
|
19
|
+
import textwrap
|
|
17
20
|
import time
|
|
18
21
|
from os import PathLike
|
|
19
22
|
|
|
23
|
+
# Workaround for vLLM / Triton kernel warmup issue (https://github.com/vllm-project/vllm/issues/49920)
|
|
24
|
+
# In Triton 3.7.x, `re.search(r"^def\s+\w+\s*\(", src, re.MULTILINE)` in `triton/runtime/jit.py:JITCallable.__init__`
|
|
25
|
+
# assumes `def` is at the start of a line. When vLLM >= 0.28.0 warms up multi-decorated kernels
|
|
26
|
+
# (e.g. `minimax_m3/common/ops/index_topk.py` wrapped with `@triton.heuristics`), the regex fails,
|
|
27
|
+
# raising `AttributeError: 'NoneType' object has no attribute 'start'`.
|
|
28
|
+
# TODO: Remove once upstream vLLM/Triton safely handles multi-decorated kernel source inspection.
|
|
29
|
+
try:
|
|
30
|
+
import triton.runtime.jit
|
|
31
|
+
|
|
32
|
+
_orig_jit_callable_init = triton.runtime.jit.JITCallable.__init__
|
|
33
|
+
|
|
34
|
+
def _patched_jit_callable_init(self, fn):
|
|
35
|
+
try:
|
|
36
|
+
_orig_jit_callable_init(self, fn)
|
|
37
|
+
except AttributeError as e:
|
|
38
|
+
if "'NoneType' object has no attribute 'start'" in str(e):
|
|
39
|
+
self.fn = fn
|
|
40
|
+
self.signature = inspect.signature(fn)
|
|
41
|
+
self.raw_src, self.starting_line_number = inspect.getsourcelines(fn)
|
|
42
|
+
self._fn_name = triton.runtime.jit.get_full_name(fn)
|
|
43
|
+
self._hash_lock = triton.runtime.jit.threading.RLock()
|
|
44
|
+
src = textwrap.dedent("".join(self.raw_src))
|
|
45
|
+
m = re.search(r"(?:^|\n)\s*def\s+[\w_]+\s*\(", src)
|
|
46
|
+
if m:
|
|
47
|
+
def_pos = src.find("def", m.start())
|
|
48
|
+
src = src[def_pos:]
|
|
49
|
+
else:
|
|
50
|
+
lines = src.splitlines()
|
|
51
|
+
def_lines = [i for i, line in enumerate(lines) if "def " in line]
|
|
52
|
+
if def_lines:
|
|
53
|
+
src = "\n".join(lines[def_lines[0] :])
|
|
54
|
+
self._src = src
|
|
55
|
+
self.hash = None
|
|
56
|
+
else:
|
|
57
|
+
raise
|
|
58
|
+
|
|
59
|
+
triton.runtime.jit.JITCallable.__init__ = _patched_jit_callable_init
|
|
60
|
+
except Exception: # noqa: BLE001, S110
|
|
61
|
+
pass
|
|
62
|
+
|
|
20
63
|
import torch
|
|
21
64
|
from peft import PeftConfig
|
|
22
65
|
from pydantic import BaseModel
|
|
@@ -88,7 +131,6 @@ class VLLMEngine(LanguageEngine):
|
|
|
88
131
|
enable_lora=True,
|
|
89
132
|
dtype=torch.bfloat16 if is_bf16_supported(device) else torch.float16,
|
|
90
133
|
# enforce_eager=True, # results in big slowdown, but is needed when running pytest locally
|
|
91
|
-
swap_space=0,
|
|
92
134
|
disable_log_stats=True,
|
|
93
135
|
tensor_parallel_size=torch.cuda.device_count(),
|
|
94
136
|
gpu_memory_utilization=get_dynamic_gpu_memory_utilization(),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mostlyai-engine"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.7.0"
|
|
4
4
|
description = "Synthetic Data Engine"
|
|
5
5
|
requires-python = ">=3.11,<3.14"
|
|
6
6
|
readme = "README.md"
|
|
@@ -23,32 +23,31 @@ classifiers = [
|
|
|
23
23
|
]
|
|
24
24
|
|
|
25
25
|
dependencies = [
|
|
26
|
-
"setuptools>=77.0.3,<81.0.0", # vllm 0.20 caps setuptools for Python > 3.11
|
|
27
26
|
"numpy>=2.0.0",
|
|
28
27
|
"pandas>=2.2.0",
|
|
29
28
|
"pyarrow>=16.0.0",
|
|
30
29
|
"joblib>=1.4.2",
|
|
31
30
|
"scikit-learn>=1.4.0",
|
|
32
31
|
"psutil>=5.9.5,<6", # upgrade when colab psutil is updated
|
|
33
|
-
"tokenizers>=0.21.1", # vllm
|
|
34
|
-
"transformers>=5.5.
|
|
32
|
+
"tokenizers>=0.21.1", # vllm lower bound
|
|
33
|
+
"transformers>=5.5.3", # aligned with vllm 0.28
|
|
35
34
|
"datasets>=3.0.0",
|
|
36
35
|
"accelerate>=1.5.0",
|
|
37
36
|
"peft>=0.18.2", # transformers 5.7+ checks min PEFT in model.add_adapter (integrations/peft.py)
|
|
38
37
|
"huggingface-hub[hf-xet]>=0.30.2",
|
|
39
38
|
"opacus>=1.6.0",
|
|
40
|
-
"xgrammar>=0.1
|
|
41
|
-
"json-repair>=0.
|
|
42
|
-
"torch>=2.
|
|
39
|
+
"xgrammar>=0.2.1,<1.0.0", # aligned with vllm 0.28
|
|
40
|
+
"json-repair>=0.60.1",
|
|
41
|
+
"torch>=2.13.0,<2.14.0",
|
|
43
42
|
"torchaudio>=2.11.0,<2.12.0",
|
|
44
|
-
"torchvision>=0.
|
|
43
|
+
"torchvision>=0.28.0,<0.29.0",
|
|
45
44
|
]
|
|
46
45
|
|
|
47
46
|
[project.optional-dependencies]
|
|
48
47
|
gpu = [
|
|
49
48
|
"bitsandbytes==0.42.0; sys_platform == 'darwin'",
|
|
50
49
|
"bitsandbytes>=0.45.5; sys_platform == 'linux'",
|
|
51
|
-
"vllm==0.
|
|
50
|
+
"vllm==0.28.0; sys_platform == 'linux'",
|
|
52
51
|
]
|
|
53
52
|
|
|
54
53
|
[dependency-groups]
|
|
@@ -66,7 +65,7 @@ docs = [
|
|
|
66
65
|
"mkdocs-material>=9.0",
|
|
67
66
|
"mkdocs-llmstxt>=0.2",
|
|
68
67
|
"griffe>=1.0",
|
|
69
|
-
"pymdown-extensions>=
|
|
68
|
+
"pymdown-extensions>=11.0",
|
|
70
69
|
"griffe-fieldz>=0.2",
|
|
71
70
|
"black>=26.3.1",
|
|
72
71
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/datetime.py
RENAMED
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/numeric.py
RENAMED
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/text.py
RENAMED
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/character.py
RENAMED
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/datetime.py
RENAMED
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/itt.py
RENAMED
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/lat_long.py
RENAMED
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/numeric.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/hf_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/tokenizer_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/xgrammar_hf_logits.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|