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.
Files changed (55) hide show
  1. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/PKG-INFO +8 -9
  2. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/__init__.py +1 -1
  3. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/vllm_engine.py +43 -1
  4. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/pyproject.toml +9 -10
  5. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/.gitignore +0 -0
  6. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/LICENSE +0 -0
  7. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/README.md +0 -0
  8. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_common.py +0 -0
  9. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_dtypes.py +0 -0
  10. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/__init__.py +0 -0
  11. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/__init__.py +0 -0
  12. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/categorical.py +0 -0
  13. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/datetime.py +0 -0
  14. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/numeric.py +0 -0
  15. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/language/text.py +0 -0
  16. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/__init__.py +0 -0
  17. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/categorical.py +0 -0
  18. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/character.py +0 -0
  19. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/datetime.py +0 -0
  20. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/itt.py +0 -0
  21. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/lat_long.py +0 -0
  22. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_encoding_types/tabular/numeric.py +0 -0
  23. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/__init__.py +0 -0
  24. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/common.py +0 -0
  25. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/encoding.py +0 -0
  26. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/__init__.py +0 -0
  27. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/base.py +0 -0
  28. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/engine/hf_engine.py +0 -0
  29. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/generation.py +0 -0
  30. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/interface.py +0 -0
  31. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/lstm.py +0 -0
  32. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/tokenizer_utils.py +0 -0
  33. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/training.py +0 -0
  34. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/xgrammar_hf_logits.py +0 -0
  35. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_language/xgrammar_utils.py +0 -0
  36. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_memory.py +0 -0
  37. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/__init__.py +0 -0
  38. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/argn.py +0 -0
  39. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/common.py +0 -0
  40. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/encoding.py +0 -0
  41. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/fairness.py +0 -0
  42. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/generation.py +0 -0
  43. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/interface.py +0 -0
  44. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/probability.py +0 -0
  45. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_tabular/training.py +0 -0
  46. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_training_utils.py +0 -0
  47. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/_workspace.py +0 -0
  48. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/analysis.py +0 -0
  49. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/domain.py +0 -0
  50. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/encoding.py +0 -0
  51. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/generation.py +0 -0
  52. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/logging.py +0 -0
  53. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/random_state.py +0 -0
  54. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/splitting.py +0 -0
  55. {mostlyai_engine-2.6.2 → mostlyai_engine-2.7.0}/mostlyai/engine/training.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: mostlyai-engine
3
- Version: 2.6.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.47.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.12.0,>=2.11.0
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.27.0,>=0.26.0
43
- Requires-Dist: transformers>=5.5.1
44
- Requires-Dist: xgrammar<1.0.0,>=0.1.32
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.20.0; (sys_platform == 'linux' or sys_platform == 'darwin') and extra == 'gpu'
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.6.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.*")
@@ -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.6.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 0.20 lower bound
34
- "transformers>=5.5.1", # vllm 0.20 forbids 5.0–5.4 and 5.5.0; >=5.5.1 needed for newer HF model types (e.g. gemma4)
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.32,<1.0.0", # aligned with vllm 0.20
41
- "json-repair>=0.47.0",
42
- "torch>=2.11.0,<2.12.0",
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.26.0,<0.27.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.20.0; sys_platform == 'linux' or sys_platform == 'darwin'",
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>=10.0",
68
+ "pymdown-extensions>=11.0",
70
69
  "griffe-fieldz>=0.2",
71
70
  "black>=26.3.1",
72
71
  ]
File without changes