decisionnode-edge 0.9.2__tar.gz → 0.9.2.1__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.
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/PKG-INFO +2 -1
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/README.md +1 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/pyproject.toml +1 -1
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/__init__.py +1 -1
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/backends.py +6 -2
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/PKG-INFO +2 -1
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/LICENSE +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/setup.cfg +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/__main__.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/answers.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/build.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/model.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/places.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/request.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/server.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/systemone.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge/template.py +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/SOURCES.txt +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/dependency_links.txt +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/requires.txt +0 -0
- {decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: decisionnode-edge
|
|
3
|
-
Version: 0.9.2
|
|
3
|
+
Version: 0.9.2.1
|
|
4
4
|
Summary: Run DecisionNode Edge locally: typed, calibrated decisions in the shape of the DecisionNode API.
|
|
5
5
|
Author-email: "Bynn Intelligence Inc." <licensing@bynn.com>
|
|
6
6
|
License-Expression: AGPL-3.0-only
|
|
@@ -230,6 +230,7 @@ Options can be flat (`{"threads": 16}`) or under a backend's name (`{"openvino":
|
|
|
230
230
|
| `llamacpp` | `server`, `gguf`: the program and the model file | `llama-server` on `PATH`, the build's file |
|
|
231
231
|
| `llamacpp` | `gpu_layers`, `threads` | 999 (all layers on the GPU when there is one), llama.cpp's choice |
|
|
232
232
|
| `llamacpp` | `context`: the longest prompt llama.cpp takes | 16,384 |
|
|
233
|
+
| `mlx` | `cache_limit_gb`: how much freed GPU memory MLX keeps for reuse | 2 |
|
|
233
234
|
|
|
234
235
|
vLLM runs its engine inside your process and uses the first visible GPU (choose it with `CUDA_VISIBLE_DEVICES`). Its first load takes about half a minute while it compiles. MLX uses the Apple GPU.
|
|
235
236
|
|
|
@@ -204,6 +204,7 @@ Options can be flat (`{"threads": 16}`) or under a backend's name (`{"openvino":
|
|
|
204
204
|
| `llamacpp` | `server`, `gguf`: the program and the model file | `llama-server` on `PATH`, the build's file |
|
|
205
205
|
| `llamacpp` | `gpu_layers`, `threads` | 999 (all layers on the GPU when there is one), llama.cpp's choice |
|
|
206
206
|
| `llamacpp` | `context`: the longest prompt llama.cpp takes | 16,384 |
|
|
207
|
+
| `mlx` | `cache_limit_gb`: how much freed GPU memory MLX keeps for reuse | 2 |
|
|
207
208
|
|
|
208
209
|
vLLM runs its engine inside your process and uses the first visible GPU (choose it with `CUDA_VISIBLE_DEVICES`). Its first load takes about half a minute while it compiles. MLX uses the Apple GPU.
|
|
209
210
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "decisionnode-edge"
|
|
7
|
-
version = "0.9.2"
|
|
7
|
+
version = "0.9.2.1"
|
|
8
8
|
description = "Run DecisionNode Edge locally: typed, calibrated decisions in the shape of the DecisionNode API."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -165,7 +165,7 @@ def load(name: str, path: str, config: dict, artifacts: str | None, options: dic
|
|
|
165
165
|
if name == "vllm":
|
|
166
166
|
return VLLM(path, max_tokens, options, device)
|
|
167
167
|
if name == "mlx":
|
|
168
|
-
return MLX(path)
|
|
168
|
+
return MLX(path, options)
|
|
169
169
|
build = read_build(artifacts)
|
|
170
170
|
if build is not None and build.get("model_fingerprint") != fingerprint(path):
|
|
171
171
|
raise ValueError(f"{artifacts} was built from another model than {path}")
|
|
@@ -304,14 +304,18 @@ class MLX:
|
|
|
304
304
|
touches readout.safetensors); the text model's output is the hidden state after the final norm."""
|
|
305
305
|
|
|
306
306
|
name = "mlx"
|
|
307
|
+
cache_limit_gb = 2.0
|
|
307
308
|
|
|
308
|
-
def __init__(self, path: str):
|
|
309
|
+
def __init__(self, path: str, options: dict | None = None):
|
|
309
310
|
from pathlib import Path
|
|
310
311
|
|
|
311
312
|
import mlx.core as mx
|
|
312
313
|
from mlx_lm.utils import load_model
|
|
313
314
|
|
|
314
315
|
self.mx = mx
|
|
316
|
+
# MLX keeps freed buffers for reuse, by default up to its memory limit, so a server reading long prompts grew its
|
|
317
|
+
# cache to most of the machine's memory. A bound keeps the reuse that matters for speed.
|
|
318
|
+
mx.set_cache_limit(int(float((options or {}).get("cache_limit_gb", self.cache_limit_gb)) * 2**30))
|
|
315
319
|
model, _ = load_model(Path(path))
|
|
316
320
|
self.text = model.language_model.model
|
|
317
321
|
|
{decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: decisionnode-edge
|
|
3
|
-
Version: 0.9.2
|
|
3
|
+
Version: 0.9.2.1
|
|
4
4
|
Summary: Run DecisionNode Edge locally: typed, calibrated decisions in the shape of the DecisionNode API.
|
|
5
5
|
Author-email: "Bynn Intelligence Inc." <licensing@bynn.com>
|
|
6
6
|
License-Expression: AGPL-3.0-only
|
|
@@ -230,6 +230,7 @@ Options can be flat (`{"threads": 16}`) or under a backend's name (`{"openvino":
|
|
|
230
230
|
| `llamacpp` | `server`, `gguf`: the program and the model file | `llama-server` on `PATH`, the build's file |
|
|
231
231
|
| `llamacpp` | `gpu_layers`, `threads` | 999 (all layers on the GPU when there is one), llama.cpp's choice |
|
|
232
232
|
| `llamacpp` | `context`: the longest prompt llama.cpp takes | 16,384 |
|
|
233
|
+
| `mlx` | `cache_limit_gb`: how much freed GPU memory MLX keeps for reuse | 2 |
|
|
233
234
|
|
|
234
235
|
vLLM runs its engine inside your process and uses the first visible GPU (choose it with `CUDA_VISIBLE_DEVICES`). Its first load takes about half a minute while it compiles. MLX uses the Apple GPU.
|
|
235
236
|
|
|
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
|
{decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/requires.txt
RENAMED
|
File without changes
|
{decisionnode_edge-0.9.2 → decisionnode_edge-0.9.2.1}/src/decisionnode_edge.egg-info/top_level.txt
RENAMED
|
File without changes
|