codadapt 1.0.0rc2__tar.gz → 1.0.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.
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/BENCHMARKS.md +1 -1
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/CHANGELOG.md +26 -1
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/PKG-INFO +24 -24
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/README.md +21 -21
- codadapt-1.0.1/RELEASE_NOTES.md +28 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/SECURITY.md +2 -2
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/docs/ALGORITHM.md +1 -1
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/docs/API.md +3 -3
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/docs/LARGE_DATASETS.md +11 -12
- codadapt-1.0.1/docs/PYTHON_COMPATIBILITY.md +51 -0
- codadapt-1.0.1/docs/RELEASING.md +53 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/docs/SAFE_BLEND_EXPERIMENTAL.md +1 -1
- codadapt-1.0.1/docs/STABILITY.md +73 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/examples/kaggle_quickstart.ipynb +13 -22
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/pyproject.toml +2 -2
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/_multiclass.py +2 -2
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/_training.py +8 -0
- codadapt-1.0.1/src/codadapt/_version.py +1 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt.egg-info/PKG-INFO +24 -24
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt.egg-info/SOURCES.txt +1 -0
- codadapt-1.0.1/tests/test_cardinality.py +78 -0
- codadapt-1.0.0rc2/RELEASE_NOTES.md +0 -186
- codadapt-1.0.0rc2/docs/PYTHON_COMPATIBILITY.md +0 -80
- codadapt-1.0.0rc2/docs/RELEASING.md +0 -79
- codadapt-1.0.0rc2/docs/STABILITY.md +0 -73
- codadapt-1.0.0rc2/src/codadapt/_version.py +0 -1
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/.github/workflows/publish-pypi.yml +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/.github/workflows/publish-testpypi.yml +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/.github/workflows/release-qualification.yml +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/.github/workflows/tests.yml +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/CONTRIBUTING.md +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/LICENSE +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/MANIFEST.in +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/benchmarks/reproducibility/benchmark_codadapt_cv.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/benchmarks/run_benchmarks.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/docs/EBM_COMPILER.md +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/examples/basic_classification.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/examples/basic_multiclass.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/examples/basic_regression.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/examples/release_smoke.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/setup.cfg +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/__init__.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/_base.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/_core.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/_multiclass_artifact.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/_multiclass_packing.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/classifier.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/experimental/__init__.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/experimental/_compiler.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/experimental/_model.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/experimental/_rational.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/experimental/_safe_blend.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/preprocessing.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt/regressor.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt.egg-info/dependency_links.txt +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt.egg-info/requires.txt +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/src/codadapt.egg-info/top_level.txt +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/_binary_reference.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/_multiclass_helpers.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/conftest.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_adaptive_levels.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_addressing.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_classifier.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_classifier_training.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_coded_memory.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_default_api.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_ebm_compiler.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_incremental_gain.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_independence.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_memory_budget.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_multiclass.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_no_leakage.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_packaging.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_persistence.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_pre_rc_api.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_preprocessing.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_rational_callback.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_regressor.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_release_contracts.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_safe_blend.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_shared_encoder.py +0 -0
- {codadapt-1.0.0rc2 → codadapt-1.0.1}/tests/test_sklearn_compat.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Benchmark Disclosure
|
|
2
2
|
|
|
3
3
|
The later independent SafeBlend regression qualification takes precedence for
|
|
4
|
-
current **1.0.
|
|
4
|
+
current **1.0.0 SafeBlend positioning**: compact serialized models were confirmed,
|
|
5
5
|
while predictive quality leadership was not. The frozen blind NEW_EXTERNAL panel
|
|
6
6
|
remains the primary binary/multiclass evidence and its library-wide verdict remains
|
|
7
7
|
**PRODUCT_POSITION_MIXED**. Earlier external pilots are secondary/historical evidence;
|
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.1 — prepared locally, publication pending
|
|
4
|
+
|
|
5
|
+
- Optimize exact training metadata cardinality counts for native one- and
|
|
6
|
+
two-feature codes, including Shared OVR's existing count cache. Predictions,
|
|
7
|
+
fitted numeric state, API, defaults and model format are unchanged. This is
|
|
8
|
+
an internal training-speed optimization; no accuracy, inference-speed or
|
|
9
|
+
memory improvement is claimed. This patch preserves the learned model and
|
|
10
|
+
predictions; local preparation does not publish 1.0.1.
|
|
11
|
+
|
|
12
|
+
## 1.0.0
|
|
13
|
+
|
|
14
|
+
- Finalize stable native CodAdapt/Classifier/Regressor API from qualified RC2;
|
|
15
|
+
keyword-only construction, active defaults and predictive/resource semantics unchanged.
|
|
16
|
+
- Retain Shared OVR multiclass, clear failed-fit state and configurable native
|
|
17
|
+
memory_budget_mb=512MiB with external-validation accounting.
|
|
18
|
+
- Keep SafeBlend and EBM compilation experimental; BucketEncoder stays private.
|
|
19
|
+
- Finalize version/installation/metadata/stability/persistence/release documentation.
|
|
20
|
+
Same-version matching-environment persistence is supported; cross-version portability is not guaranteed.
|
|
21
|
+
- Preserve mixed blind competitiveness and compact-specialist SafeBlend evidence;
|
|
22
|
+
no new algorithm, predictive promotion, runtime dependency or benchmark is introduced.
|
|
23
|
+
- Stable publication remains a separate maintainer-only action after qualification.
|
|
24
|
+
|
|
25
|
+
The following entries preserve earlier prerelease preparation history, including
|
|
26
|
+
their availability statements at that time; they do not describe current1.0.1 availability.
|
|
27
|
+
|
|
3
28
|
## 1.0.0rc2 — prepared locally, not published
|
|
4
29
|
|
|
5
30
|
- Add native `memory_budget_mb=512` as a positive integer MiB admission budget.
|
|
@@ -36,7 +61,7 @@
|
|
|
36
61
|
historical; the version bump makes no new performance claim.
|
|
37
62
|
|
|
38
63
|
The entries below record preparation of the historical 0.2.0rc2 line. Their
|
|
39
|
-
version statements describe that earlier work, not the
|
|
64
|
+
version statements describe that earlier work, not the current1.0.1 source.
|
|
40
65
|
|
|
41
66
|
## Historical 0.2.0rc2 preparation — pre-1.0 API cleanup
|
|
42
67
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codadapt
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: Native tabular learning with adaptive coded memory and shared multi-resolution encoding
|
|
5
5
|
Author: Luca Lullo
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/lucalullo/codadapt
|
|
8
8
|
Project-URL: Repository, https://github.com/lucalullo/codadapt
|
|
9
9
|
Project-URL: Issues, https://github.com/lucalullo/codadapt/issues
|
|
10
10
|
Keywords: tabular,machine-learning,adaptive-codes,numpy
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Intended Audience :: Science/Research
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -43,9 +43,9 @@ Dynamic: license-file
|
|
|
43
43
|
|
|
44
44
|
CodAdapt is a compact native tabular model family with mixed predictive competitiveness across tasks. Its native estimator uses **adaptive coded memory with shared multi-resolution encoding** for binary and multiclass classification and single-target regression, while preserving a scikit-learn-style API.
|
|
45
45
|
|
|
46
|
-
**CodAdapt 1.0.
|
|
46
|
+
**CodAdapt 1.0.1 provides a stable native API for binary classification, Shared OVR multiclass and regression. SafeBlend and the optional EBM compiler remain experimental.** The compiler can export supported additive EBM models into compact standalone CodAdapt lookup models that no longer require the EBM teacher at inference time.
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
The 1.x stability contract covers the documented native API. It is intended for reproducible evaluation and practical tabular workflows; stability does not imply benchmark leadership. It does not claim universal superiority over established tree-based models.
|
|
49
49
|
|
|
50
50
|
## Highlights
|
|
51
51
|
|
|
@@ -71,22 +71,20 @@ The native CodAdapt default remains the architecture selected during the 0.1 dev
|
|
|
71
71
|
|
|
72
72
|
## Installation
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Use Python **3.10–3.14** in a virtual environment. Activate that environment using
|
|
77
|
-
your platform's normal command, then install the artifact you have built or received:
|
|
74
|
+
Use Python **3.10–3.14** in a virtual environment:
|
|
78
75
|
|
|
79
76
|
```bash
|
|
80
77
|
python -m venv .venv
|
|
81
|
-
|
|
78
|
+
# Activate the environment using your platform's normal command.
|
|
79
|
+
python -m pip install codadapt
|
|
82
80
|
python -c "import codadapt; print(codadapt.__version__)"
|
|
83
81
|
```
|
|
84
82
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
[compatibility policy](https://github.com/lucalullo/codadapt/blob/main/docs/PYTHON_COMPATIBILITY.md)
|
|
89
|
-
|
|
83
|
+
Before publication, install the locally built `dist/codadapt-1.0.1-py3-none-any.whl`.
|
|
84
|
+
After publication, use `python -m pip install codadapt==1.0.1` for an exact environment.
|
|
85
|
+
Retain artifact SHA256 and dependency versions. See the
|
|
86
|
+
[compatibility policy](https://github.com/lucalullo/codadapt/blob/main/docs/PYTHON_COMPATIBILITY.md)
|
|
87
|
+
and [release procedure](https://github.com/lucalullo/codadapt/blob/main/docs/RELEASING.md).
|
|
90
88
|
|
|
91
89
|
To compile an already fitted supported EBM teacher, install the optional dependency:
|
|
92
90
|
|
|
@@ -203,10 +201,9 @@ print(f"Mean ROC-AUC: {np.mean(scores):.6f}")
|
|
|
203
201
|
|
|
204
202
|
## Data handling
|
|
205
203
|
|
|
206
|
-
For large datasets,
|
|
207
|
-
(positive integer MiB), including external validation in
|
|
208
|
-
See [LARGE_DATASETS.md](docs/LARGE_DATASETS.md) before increasing it.
|
|
209
|
-
is unavailable in published 1.0.0rc1; RC2 is not published by this preparation. The budget
|
|
204
|
+
For large datasets, native estimators expose `memory_budget_mb=512`
|
|
205
|
+
(positive integer MiB), including external validation in the admission estimate.
|
|
206
|
+
See [LARGE_DATASETS.md](docs/LARGE_DATASETS.md) before increasing it. The budget
|
|
210
207
|
is not a total-RSS cap or an OOM guarantee.
|
|
211
208
|
|
|
212
209
|
With pandas DataFrames, supported numeric columns are treated as numerical features. String/object, `category`, boolean, and nullable-boolean columns are handled as categorical features. Missing values are handled natively.
|
|
@@ -304,7 +301,7 @@ for inputs, fitted diagnostics, persistence, costs and limitations.
|
|
|
304
301
|
|
|
305
302
|
## Experimental EBM compilation
|
|
306
303
|
|
|
307
|
-
CodAdapt 1.0.
|
|
304
|
+
CodAdapt 1.0.1 retains an **experimental, opt-in** compiler for supported additive `interpret-core==0.7.8` EBM models. Install the [optional `ebm` extra](#installation) when compiling a fitted teacher; the native CodAdapt installation remains independent of interpret.
|
|
308
305
|
|
|
309
306
|
```python
|
|
310
307
|
from codadapt.experimental import compile_ebm
|
|
@@ -545,17 +542,20 @@ These files are development documentation and are intentionally excluded from th
|
|
|
545
542
|
|
|
546
543
|
## Status
|
|
547
544
|
|
|
548
|
-
CodAdapt 1.0.
|
|
545
|
+
CodAdapt 1.0.1 retains the stable native API and exact learned model while reducing training time.
|
|
546
|
+
It preserves RC2 predictive training semantics,
|
|
547
|
+
prediction and resource-admission behavior. Native multiclass Shared OVR is included;
|
|
548
|
+
SafeBlend and the EBM compiler remain opt-in and experimental. Source preparation
|
|
549
|
+
does not perform publication or create a tag.
|
|
549
550
|
|
|
550
551
|
Current independent evidence supports SafeBlend as a **compact regression specialist**,
|
|
551
552
|
with strong serialized-size savings and faster inference on the tested hardware,
|
|
552
553
|
but weaker median predictive quality than the external leader. Classification
|
|
553
554
|
competitiveness remains mixed on the earlier blind panel.
|
|
554
555
|
|
|
555
|
-
The native API
|
|
556
|
+
The native API follows the 1.x contract described in
|
|
556
557
|
[STABILITY.md](https://github.com/lucalullo/codadapt/blob/main/docs/STABILITY.md).
|
|
557
|
-
|
|
558
|
-
private components are excluded. See the [release notes](https://github.com/lucalullo/codadapt/blob/main/RELEASE_NOTES.md)
|
|
558
|
+
Experimental and private components are excluded from the stable contract. See the [release notes](https://github.com/lucalullo/codadapt/blob/main/RELEASE_NOTES.md)
|
|
559
559
|
for migration, known limitations and persistence scope.
|
|
560
560
|
|
|
561
561
|
## License
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
CodAdapt is a compact native tabular model family with mixed predictive competitiveness across tasks. Its native estimator uses **adaptive coded memory with shared multi-resolution encoding** for binary and multiclass classification and single-target regression, while preserving a scikit-learn-style API.
|
|
4
4
|
|
|
5
|
-
**CodAdapt 1.0.
|
|
5
|
+
**CodAdapt 1.0.1 provides a stable native API for binary classification, Shared OVR multiclass and regression. SafeBlend and the optional EBM compiler remain experimental.** The compiler can export supported additive EBM models into compact standalone CodAdapt lookup models that no longer require the EBM teacher at inference time.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
The 1.x stability contract covers the documented native API. It is intended for reproducible evaluation and practical tabular workflows; stability does not imply benchmark leadership. It does not claim universal superiority over established tree-based models.
|
|
8
8
|
|
|
9
9
|
## Highlights
|
|
10
10
|
|
|
@@ -30,22 +30,20 @@ The native CodAdapt default remains the architecture selected during the 0.1 dev
|
|
|
30
30
|
|
|
31
31
|
## Installation
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Use Python **3.10–3.14** in a virtual environment. Activate that environment using
|
|
36
|
-
your platform's normal command, then install the artifact you have built or received:
|
|
33
|
+
Use Python **3.10–3.14** in a virtual environment:
|
|
37
34
|
|
|
38
35
|
```bash
|
|
39
36
|
python -m venv .venv
|
|
40
|
-
|
|
37
|
+
# Activate the environment using your platform's normal command.
|
|
38
|
+
python -m pip install codadapt
|
|
41
39
|
python -c "import codadapt; print(codadapt.__version__)"
|
|
42
40
|
```
|
|
43
41
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
[compatibility policy](https://github.com/lucalullo/codadapt/blob/main/docs/PYTHON_COMPATIBILITY.md)
|
|
48
|
-
|
|
42
|
+
Before publication, install the locally built `dist/codadapt-1.0.1-py3-none-any.whl`.
|
|
43
|
+
After publication, use `python -m pip install codadapt==1.0.1` for an exact environment.
|
|
44
|
+
Retain artifact SHA256 and dependency versions. See the
|
|
45
|
+
[compatibility policy](https://github.com/lucalullo/codadapt/blob/main/docs/PYTHON_COMPATIBILITY.md)
|
|
46
|
+
and [release procedure](https://github.com/lucalullo/codadapt/blob/main/docs/RELEASING.md).
|
|
49
47
|
|
|
50
48
|
To compile an already fitted supported EBM teacher, install the optional dependency:
|
|
51
49
|
|
|
@@ -162,10 +160,9 @@ print(f"Mean ROC-AUC: {np.mean(scores):.6f}")
|
|
|
162
160
|
|
|
163
161
|
## Data handling
|
|
164
162
|
|
|
165
|
-
For large datasets,
|
|
166
|
-
(positive integer MiB), including external validation in
|
|
167
|
-
See [LARGE_DATASETS.md](docs/LARGE_DATASETS.md) before increasing it.
|
|
168
|
-
is unavailable in published 1.0.0rc1; RC2 is not published by this preparation. The budget
|
|
163
|
+
For large datasets, native estimators expose `memory_budget_mb=512`
|
|
164
|
+
(positive integer MiB), including external validation in the admission estimate.
|
|
165
|
+
See [LARGE_DATASETS.md](docs/LARGE_DATASETS.md) before increasing it. The budget
|
|
169
166
|
is not a total-RSS cap or an OOM guarantee.
|
|
170
167
|
|
|
171
168
|
With pandas DataFrames, supported numeric columns are treated as numerical features. String/object, `category`, boolean, and nullable-boolean columns are handled as categorical features. Missing values are handled natively.
|
|
@@ -263,7 +260,7 @@ for inputs, fitted diagnostics, persistence, costs and limitations.
|
|
|
263
260
|
|
|
264
261
|
## Experimental EBM compilation
|
|
265
262
|
|
|
266
|
-
CodAdapt 1.0.
|
|
263
|
+
CodAdapt 1.0.1 retains an **experimental, opt-in** compiler for supported additive `interpret-core==0.7.8` EBM models. Install the [optional `ebm` extra](#installation) when compiling a fitted teacher; the native CodAdapt installation remains independent of interpret.
|
|
267
264
|
|
|
268
265
|
```python
|
|
269
266
|
from codadapt.experimental import compile_ebm
|
|
@@ -504,17 +501,20 @@ These files are development documentation and are intentionally excluded from th
|
|
|
504
501
|
|
|
505
502
|
## Status
|
|
506
503
|
|
|
507
|
-
CodAdapt 1.0.
|
|
504
|
+
CodAdapt 1.0.1 retains the stable native API and exact learned model while reducing training time.
|
|
505
|
+
It preserves RC2 predictive training semantics,
|
|
506
|
+
prediction and resource-admission behavior. Native multiclass Shared OVR is included;
|
|
507
|
+
SafeBlend and the EBM compiler remain opt-in and experimental. Source preparation
|
|
508
|
+
does not perform publication or create a tag.
|
|
508
509
|
|
|
509
510
|
Current independent evidence supports SafeBlend as a **compact regression specialist**,
|
|
510
511
|
with strong serialized-size savings and faster inference on the tested hardware,
|
|
511
512
|
but weaker median predictive quality than the external leader. Classification
|
|
512
513
|
competitiveness remains mixed on the earlier blind panel.
|
|
513
514
|
|
|
514
|
-
The native API
|
|
515
|
+
The native API follows the 1.x contract described in
|
|
515
516
|
[STABILITY.md](https://github.com/lucalullo/codadapt/blob/main/docs/STABILITY.md).
|
|
516
|
-
|
|
517
|
-
private components are excluded. See the [release notes](https://github.com/lucalullo/codadapt/blob/main/RELEASE_NOTES.md)
|
|
517
|
+
Experimental and private components are excluded from the stable contract. See the [release notes](https://github.com/lucalullo/codadapt/blob/main/RELEASE_NOTES.md)
|
|
518
518
|
for migration, known limitations and persistence scope.
|
|
519
519
|
|
|
520
520
|
## License
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# CodAdapt 1.0.1 release notes
|
|
2
|
+
|
|
3
|
+
Patch release focused on exact training-speed optimization. CodAdapt1.0.1
|
|
4
|
+
substantially reduces native training time while preserving the exact learned
|
|
5
|
+
model and predictions. This source candidate is prepared locally; publication
|
|
6
|
+
and final remote release gates are maintainer actions.
|
|
7
|
+
|
|
8
|
+
The change replaces structured-row distinct counting in training metadata with
|
|
9
|
+
exact scalar counting for native one- and two-feature codes, including Shared
|
|
10
|
+
OVR's existing cache. API, defaults, addressing, learned numeric values,
|
|
11
|
+
probabilities and model-format semantics are unchanged. No new algorithm,
|
|
12
|
+
feature, parameter or dependency is introduced.
|
|
13
|
+
|
|
14
|
+
Controlled local qualification measured a Windows median fit ratio of about
|
|
15
|
+
0.24× and a WSL ratio of about0.19× versus unpatched1.0.0. Installed-wheel
|
|
16
|
+
qualification also showed strong speedup. These are measured workload results,
|
|
17
|
+
not a promise of the same speedup on every dataset or machine. No accuracy,
|
|
18
|
+
inference-speed or memory improvement is claimed.
|
|
19
|
+
|
|
20
|
+
Python3.10–3.14 and the stable1.0 native API remain supported. SafeBlend and the
|
|
21
|
+
optional additive EBM compiler remain experimental. Same-version trusted
|
|
22
|
+
pickle/joblib persistence requires matching environments; successful1.0.0
|
|
23
|
+
artifact replay does not establish general cross-version portability.
|
|
24
|
+
|
|
25
|
+
The four known sklearn scope XFAIL remain documented. Classification quality
|
|
26
|
+
is still mixed; benchmark and compact-specialist SafeBlend positioning are
|
|
27
|
+
unchanged. See [BENCHMARKS.md](BENCHMARKS.md), [STABILITY.md](docs/STABILITY.md)
|
|
28
|
+
and the [manual release procedure](docs/RELEASING.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Security Policy
|
|
2
2
|
|
|
3
|
-
The current
|
|
3
|
+
The current source release line is CodAdapt 1.0.1. Its Python requirement is
|
|
4
4
|
`>=3.10,<3.15`, with Python 3.10–3.14 in the qualified matrix. No support duration is promised.
|
|
5
5
|
Report suspected vulnerabilities privately to
|
|
6
6
|
the repository owner with the affected version, reproduction, impact, and suggested mitigation.
|
|
@@ -8,7 +8,7 @@ Do not open a public issue containing secrets or private data.
|
|
|
8
8
|
|
|
9
9
|
CodAdapt is not a security boundary. Treat external schemas and outputs as untrusted where
|
|
10
10
|
appropriate. Pickle and joblib can execute code while loading; load only trusted artifacts in
|
|
11
|
-
compatible environments. No remediation SLA is guaranteed
|
|
11
|
+
compatible environments. No remediation SLA or support duration is guaranteed. The stable native API does not make CodAdapt a security boundary.
|
|
12
12
|
|
|
13
13
|
Native binary and multiclass training use explicit shared training functions and
|
|
14
14
|
fit-local caches. Training does not reconstruct or execute source text, and input
|
|
@@ -30,7 +30,7 @@ Il costruttore memorizza i parametri; il primo `fit` crea lo stato appreso.
|
|
|
30
30
|
| `tol` | `1e-5` | Soglia relativa: gain > tol × max(1, abs(previous_validation_loss)). |
|
|
31
31
|
| `random_state` | `None` | `None`, intero `[0, 2**32-1]` o `np.random.RandomState`; usa un intero per riprodurre il fit. |
|
|
32
32
|
| `verbosity` | `0` | 0 silenzioso; 1–2 riepilogo del fit corrente. |
|
|
33
|
-
| `memory_budget_mb` | `512` |
|
|
33
|
+
| `memory_budget_mb` | `512` | Intero positivo in MiB; budget della stima preventiva, non limite RSS. Introdotto nella RC2 e mantenuto invariato in 1.0.0. |
|
|
34
34
|
|
|
35
35
|
Non esiste un parametro pubblico `verbose`. Nessun livello di `verbosity` sopprime
|
|
36
36
|
globalmente warning o eccezioni. I default non lanciano l'esplorazione dei candidati
|
|
@@ -70,12 +70,12 @@ l'ambiente originale. Un load riuscito non rende nuovamente validi i parametri r
|
|
|
70
70
|
|
|
71
71
|
## Input
|
|
72
72
|
|
|
73
|
-
La
|
|
73
|
+
La versione 1.0.0 conserva il budget memoria esplicito introdotto nella RC2 e il default 512 MiB.
|
|
74
74
|
La stima ora include anche le righe di `eval_set` esterno prima delle copie e
|
|
75
75
|
dell'encoding. Non cambia fitting o predizioni dei fit ammessi; può rifiutare
|
|
76
76
|
validation molto grandi prima ignorate dal guard. Vedere
|
|
77
77
|
[LARGE_DATASETS.md](LARGE_DATASETS.md) per formula, configurazione, limiti e migrazione.
|
|
78
|
-
|
|
78
|
+
La finalizzazione stable non modifica il comportamento qualificato nella RC2.
|
|
79
79
|
|
|
80
80
|
`X` deve essere un DataFrame pandas o un array NumPy numerico bidimensionale. Nei
|
|
81
81
|
DataFrame, colonne numeriche sono numeriche; `category`, stringhe/`object` con scalari
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
# Large datasets and memory admission
|
|
2
2
|
|
|
3
|
-
## 1.0.
|
|
3
|
+
## Stable 1.0.0 resource contract
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
qualified RC2 before stable 1.0; these changes do not publish or replace RC1.
|
|
5
|
+
CodAdapt 1.0.0 preserves the `memory_budget_mb=512` parameter introduced in RC2
|
|
6
|
+
for the native classifier and regressor. The scientific recipe, arithmetic and
|
|
7
|
+
admission semantics are unchanged. Historical RC1 lacked this configurable parameter.
|
|
9
8
|
|
|
10
9
|
```python
|
|
11
10
|
from codadapt import CodAdaptClassifier
|
|
12
11
|
|
|
13
|
-
# 1.0.
|
|
12
|
+
# Native 1.0.0; reserve RAM for the process and caller data.
|
|
14
13
|
model = CodAdaptClassifier(memory_budget_mb=1024, random_state=42)
|
|
15
14
|
model.fit(X_train, y_train)
|
|
16
15
|
```
|
|
@@ -36,7 +35,7 @@ Here N is input training rows before zero-weight filtering, P is feature count,
|
|
|
36
35
|
T=`n_tables`, F=`features_per_table`, B=`n_bins`, C=`max_categories`, and
|
|
37
36
|
S=`table_size`. V is external `eval_set` rows, or zero with internal validation.
|
|
38
37
|
Internal validation is already part of N. External validation accounting is a
|
|
39
|
-
|
|
38
|
+
RC2 safety change retained in 1.0.0; RC1 omitted V. A fit is admitted when E is at most the
|
|
40
39
|
configured budget. Rejection occurs before row copies and encoding, after basic
|
|
41
40
|
input/target/weight validation. Converting an array-like input itself can allocate
|
|
42
41
|
memory before this check; prefer an existing ndarray or DataFrame.
|
|
@@ -50,8 +49,8 @@ is no universal row limit, and a rejected shape is not proof that the machine la
|
|
|
50
49
|
RAM. Do not infer a safe budget from installed RAM alone.
|
|
51
50
|
|
|
52
51
|
At defaults, 699,635 rows and 21 features require **624.72 MiB** by this formula,
|
|
53
|
-
so
|
|
54
|
-
budget admits that shape in
|
|
52
|
+
so default admission rejects them even with float32 input. A 1,024 MiB explicit
|
|
53
|
+
budget admits that shape in 1.0.0. Admission and synthetic engineering
|
|
55
54
|
qualification do not validate the user's undisclosed dataset, arbitrary categories,
|
|
56
55
|
or every workload of the same shape.
|
|
57
56
|
|
|
@@ -61,7 +60,7 @@ Dense input bytes alone are N*P*4 for float32 and N*P*8 for float64. Native fitt
|
|
|
61
60
|
also keeps raw row selections, multiple uint16 code levels and full-length float64
|
|
62
61
|
working vectors. Float32 reduces raw input/copy storage, but does not halve total
|
|
63
62
|
RSS; numeric conversions and learned values still use float64. Casting arbitrary
|
|
64
|
-
float64 data to float32 can change cut assignments and predictions. The
|
|
63
|
+
float64 data to float32 can change cut assignments and predictions. The stable finalization
|
|
65
64
|
does not change internal precision. The guard intentionally remains dtype-neutral.
|
|
66
65
|
|
|
67
66
|
Shared OVR fits K heads sequentially with one shared encoder and a bounded X-only
|
|
@@ -95,11 +94,11 @@ Python exception handling; preserve data/checkpoints outside the process.
|
|
|
95
94
|
|
|
96
95
|
Experimental `SafeBlendRegressor` retains its frozen API and recipe. It does not
|
|
97
96
|
expose `memory_budget_mb`; its internal Base keeps the 512 MiB default and the
|
|
98
|
-
|
|
97
|
+
internal Base accounts for its external validation rows. SafeBlend also prepares
|
|
99
98
|
a numeric DataFrame and fits its Rational component, which has separate temporary
|
|
100
99
|
allocations. A successful Base fit is not a SafeBlend memory guarantee. No universal
|
|
101
100
|
large-N SafeBlend guarantee or unlimited-memory mode is supported.
|
|
102
101
|
|
|
103
102
|
Persistence policy remains [STABILITY.md](STABILITY.md). Trusted RC1 native objects
|
|
104
|
-
loaded by
|
|
103
|
+
loaded by 1.0.0 receive the historical 512 MiB parameter default. Tested
|
|
105
104
|
loads do not create a general cross-version compatibility promise.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Python compatibility and release policy
|
|
2
|
+
|
|
3
|
+
CodAdapt1.0.1 declares **Python>=3.10,<3.15** and qualifies minors3.10–3.14.
|
|
4
|
+
Metadata/resolver success alone does not prove execution. Each release requires
|
|
5
|
+
installed-artifact numerical imports/Cholesky, pip check, native binary/multiclass/
|
|
6
|
+
regression, categorical/missing inputs, clone/Pipeline/CV, memory admission and
|
|
7
|
+
trusted persistence checks. Test minimum and modern numerical stacks; no claim
|
|
8
|
+
that every allowed dependency combination has been executed.
|
|
9
|
+
|
|
10
|
+
## Dependency scope
|
|
11
|
+
|
|
12
|
+
NumPy, pandas, scikit-learn, SciPy and threadpoolctl are direct runtime dependencies.
|
|
13
|
+
SciPy is required for native sparse-input checks and SafeBlend numerics. The optional
|
|
14
|
+
EBM compiler pins interpret-core==0.7.8; the teacher is needed only during compilation.
|
|
15
|
+
Native fit and compiled inference require no interpret/LightGBM/XGBoost/CatBoost model.
|
|
16
|
+
Optional extras may have narrower practical compatibility than the native core.
|
|
17
|
+
|
|
18
|
+
## Evidence and platform boundaries
|
|
19
|
+
|
|
20
|
+
RC2 Windows/Linux/macOS, Python3.10–3.14 and full remote release qualification PASS
|
|
21
|
+
were reported by the maintainer. They are RC2 context, not remotely queried evidence
|
|
22
|
+
or execution of stable1.0.0 workflows. Local stable qualification records exact
|
|
23
|
+
artifact hashes/interpreters/dependency versions separately. Available local Windows
|
|
24
|
+
minors and WSL installed-wheel checks are exercised; WSL is the same hardware.
|
|
25
|
+
The maintainer reports manual release qualification PASS for the optimized1.0.0 main.
|
|
26
|
+
That is USER_CONFIRMED evidence, not fetched logs or qualification of1.0.1 artifacts.
|
|
27
|
+
Candidate1.0.1 macOS and the post-integration remote matrix remain **EXTERNAL_MANUAL_GATE**.
|
|
28
|
+
No local macOS or independent-hardware execution is simulated.
|
|
29
|
+
|
|
30
|
+
Historical Windows DLL/application-control failures occurred in standalone SciPy
|
|
31
|
+
before CodAdapt. Preserve their receipts as numerical-environment limitations; do
|
|
32
|
+
not disable OS security controls or label them algorithm failures. A source workaround
|
|
33
|
+
that reuses old numerical directories is not a fresh dependency installation.
|
|
34
|
+
Stable qualification distinguishes those cases explicitly if they recur.
|
|
35
|
+
|
|
36
|
+
## Release gate
|
|
37
|
+
|
|
38
|
+
Fast tests.yml covers representative old/new Python and optional EBM. The manual
|
|
39
|
+
release-qualification.yml covers all five minors on Windows, Ubuntu and macOS,
|
|
40
|
+
wheel/sdist installs and installed-wheel suites. Optional compiler gates are separate.
|
|
41
|
+
Workflow definitions are prepared gates until the maintainer executes them against
|
|
42
|
+
the integrated stable commit. Previous-commit CI does not qualify new artifacts.
|
|
43
|
+
|
|
44
|
+
Use maintained interpreter patches in deployment; local patches are test inputs,
|
|
45
|
+
not security recommendations. Hosted Kaggle/Colab images need their own installed-
|
|
46
|
+
package smoke; local tests do not qualify those images. Cross-Python pickle/joblib
|
|
47
|
+
loading remains diagnostic, not guaranteed. Prefer matching environments.
|
|
48
|
+
|
|
49
|
+
No scientific recipe, numerical precision, compiler cells or native validation
|
|
50
|
+
protocol changes accompany the1.0.1 exact training-speed patch. Release uploads, tags and
|
|
51
|
+
workflow execution are maintainer-only actions; preparation performs none of them.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Releasing CodAdapt
|
|
2
|
+
|
|
3
|
+
This is the manual procedure for CodAdapt1.0.1. Local preparation creates no
|
|
4
|
+
commit, tag, index upload, workflow run or GitHub Release. The1.0.1 exact training-speed patch preserves
|
|
5
|
+
the stable1.0 API, learned model and predictions; experimental components
|
|
6
|
+
remain opt-in. See [STABILITY.md](STABILITY.md) and [LARGE_DATASETS.md](LARGE_DATASETS.md).
|
|
7
|
+
|
|
8
|
+
## Local qualification
|
|
9
|
+
|
|
10
|
+
1. Identify the current public main from the authoritative read-only clone, not laboratory Git metadata.
|
|
11
|
+
2. Freeze the qualified exact speed patch, API/defaults and scientific claims. Release preparation changes only version/docs/metadata.
|
|
12
|
+
3. Set1.0.1, build wheel/sdist from a clean public-only snapshot, run Ruff/format,
|
|
13
|
+
full pytest and Twine; record hashes and four disclosed scope XFAIL.
|
|
14
|
+
4. Install wheel and sdist in clean package environments outside the source checkout.
|
|
15
|
+
Run pip check, numerical imports/Cholesky, native tasks, SafeBlend branches,
|
|
16
|
+
clone/Pipeline/CV, memory_budget, fresh-process pickle/joblib and reinstall checks.
|
|
17
|
+
5. Qualify Python3.10–3.14 and available WSL. Record actual platform evidence,
|
|
18
|
+
standalone DLL failures and any reused numerical dependencies accurately.
|
|
19
|
+
6. Check archive contents/license/metadata/README, teacher-free inference, API and
|
|
20
|
+
trusted1.0.0 artifact replay. Preserve original environments; cross-version persistence is not guaranteed.
|
|
21
|
+
7. Review consolidated handoff paths/SHA256 and the exact candidate manifest.
|
|
22
|
+
Research memory is intentionally tracked in the repository, excluded from wheel/sdist;
|
|
23
|
+
research_private is never copied or distributed.
|
|
24
|
+
|
|
25
|
+
## Maintainer-only external gates, in order
|
|
26
|
+
|
|
27
|
+
1. Integrate the qualified changed public files manually and record the new commit.
|
|
28
|
+
2. Commit/push manually and obtain push CI PASS on that exact commit.
|
|
29
|
+
3. Run Manual release qualification (no publishing), including Windows/Linux/macOS
|
|
30
|
+
and Python3.10–3.14. Confirm stable macOS separately from historical RC2 success.
|
|
31
|
+
4. Publish candidate1.0.1 to TestPyPI through the manual testpypi environment workflow.
|
|
32
|
+
5. Verify fresh external TestPyPI install, provenance/version, pip check, tasks,
|
|
33
|
+
SafeBlend, memory admission, persistence and uninstall/reinstall; review README rendering.
|
|
34
|
+
6. Create the future v1.0.1 tag and GitHub Release only after qualification approval.
|
|
35
|
+
7. Publish1.0.1 to production PyPI through the manual pypi environment workflow.
|
|
36
|
+
8. Repeat external PyPI smoke and verify final published artifact hashes/metadata.
|
|
37
|
+
|
|
38
|
+
Both publish workflows remain workflow_dispatch only with trusted publishing;
|
|
39
|
+
never add passwords/tokens to source or enable automatic push publishing.
|
|
40
|
+
Package-name/environment ownership and publishing authorization are manual gates.
|
|
41
|
+
Never overwrite a published version or relabel an older archive. Resolve ordinary
|
|
42
|
+
dependencies from the trusted production index, then install the explicit TestPyPI
|
|
43
|
+
package artifact without an unreviewed mixed-index dependency search.
|
|
44
|
+
|
|
45
|
+
## Integrity and observation
|
|
46
|
+
|
|
47
|
+
Preserve PRODUCT_POSITION_MIXED blind evidence and compact-specialist SafeBlend
|
|
48
|
+
positioning; stable API does not imply benchmark superiority. Repeated splits are
|
|
49
|
+
not new sources. Large-N700k receipts are shape-equivalent synthetic engineering,
|
|
50
|
+
not validation of an undisclosed real dataset. Record actual RC feedback/observation
|
|
51
|
+
without inventing a duration. A critical/high runtime defect blocks stable; research
|
|
52
|
+
failure alone does not. Retain release receipts and plan rollback/yank decisions
|
|
53
|
+
rather than replacing published files. No automatic stable promotion is performed.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Experimental native SafeBlend regression
|
|
2
2
|
|
|
3
3
|
`codadapt.experimental.SafeBlendRegressor` is an opt-in, fully native regression
|
|
4
|
-
estimator in the current **1.0.
|
|
4
|
+
estimator in the current **1.0.1 release line**. Standard CodAdapt installation
|
|
5
5
|
is sufficient. It fits no external teacher and retains no external model.
|
|
6
6
|
`CodAdaptRegressor` remains the default. The optional `codadapt[ebm]` compiler is
|
|
7
7
|
a separate tool and is not used by SafeBlend.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Stability and persistence contract
|
|
2
|
+
|
|
3
|
+
## Stable native API in 1.0.x
|
|
4
|
+
|
|
5
|
+
The stable surface is `codadapt.CodAdaptClassifier`, its exact alias
|
|
6
|
+
`codadapt.CodAdapt`, `codadapt.CodAdaptRegressor` and `codadapt.__version__`.
|
|
7
|
+
It includes documented constructor parameters/defaults, public methods, input and
|
|
8
|
+
output shapes, class ordering, documented exception categories and inspection
|
|
9
|
+
attributes in [API.md](API.md). Estimators follow scikit-learn constructor,
|
|
10
|
+
clone, parameter and Pipeline conventions. Stable 1.0.0 preserves qualified RC2
|
|
11
|
+
behavior; it introduces no new learner, probability mapping or experimental API.
|
|
12
|
+
The1.0.1 patch changes exact training metadata counting only, with no API, learned-model
|
|
13
|
+
or prediction change.
|
|
14
|
+
|
|
15
|
+
`memory_budget_mb=512` remains a keyword-only positive integer in MiB. It controls
|
|
16
|
+
a deterministic admission heuristic, not total RSS, and includes external validation
|
|
17
|
+
rows. It does not increase model capacity or promise unlimited data size. See
|
|
18
|
+
[LARGE_DATASETS.md](LARGE_DATASETS.md). `features_per_table` remains functional
|
|
19
|
+
only in this memory estimate; native interaction groups are pairs, or a singleton
|
|
20
|
+
when only one feature exists. Numeric resolution remains capped at16 bins.
|
|
21
|
+
|
|
22
|
+
The pre-1.0 removal of seven inactive controls and keyword-only construction is
|
|
23
|
+
documented in the [migration guide](API.md). Those controls do not return in1.0.0.
|
|
24
|
+
Stable API does not mean predictive leadership, a final algorithm, complete sklearn
|
|
25
|
+
certification, arbitrary input support or universal hardware/memory guarantees.
|
|
26
|
+
|
|
27
|
+
## Experimental and private surfaces
|
|
28
|
+
|
|
29
|
+
`codadapt.experimental` exports `SafeBlendRegressor`, `compile_ebm`,
|
|
30
|
+
`CompilationError`, `CompiledEBMClassifier` and `CompiledEBMRegressor`. They remain
|
|
31
|
+
experimental, opt-in and outside stable API guarantees. SafeBlend is a compact
|
|
32
|
+
regression specialist, not the native default or a general accuracy leader.
|
|
33
|
+
Compiled classes are compiler outputs, not general trainable sklearn estimators.
|
|
34
|
+
|
|
35
|
+
Underscore modules and `codadapt.preprocessing`, including `BucketEncoder`, are
|
|
36
|
+
private implementation details. BucketEncoder is not exported at the root or
|
|
37
|
+
experimental namespace. Its internal import/trusted-pickle path is retained.
|
|
38
|
+
Do not mutate encoders, heads, histories or fitted arrays or depend on their layout.
|
|
39
|
+
|
|
40
|
+
## Semantic versioning and deprecation
|
|
41
|
+
|
|
42
|
+
Use major versions for intentional incompatible changes to the stable surface,
|
|
43
|
+
minor versions for backward-compatible capabilities and patch versions for fixes.
|
|
44
|
+
Deprecations emit `FutureWarning` at the public call site, document migration in
|
|
45
|
+
the API guide/changelog, and remain for at least two minor releases before removal
|
|
46
|
+
in a major release. Experimental/private surfaces are excluded. Prediction-changing
|
|
47
|
+
default changes require release notes and comparison with existing behavior.
|
|
48
|
+
Malformed inputs may be rejected more clearly by fixes.
|
|
49
|
+
|
|
50
|
+
## Persistence
|
|
51
|
+
|
|
52
|
+
Pickle/joblib round trips are supported for the same CodAdapt version in a matching
|
|
53
|
+
Python, dependency and platform environment. Record those versions, schema and
|
|
54
|
+
artifact SHA256. Only load trusted files: deserialization can execute arbitrary code.
|
|
55
|
+
Same version does not guarantee portability across different numerical environments.
|
|
56
|
+
|
|
57
|
+
Cross-CodAdapt-version, cross-Python-minor, cross-dependency and cross-platform
|
|
58
|
+
loading is **not guaranteed**. RC2-to1.0.0 replay is a qualified diagnostic,
|
|
59
|
+
WORKS_NOT_GUARANTEED, not a permanent migration contract. The same scope applies to
|
|
60
|
+
tested1.0.0-to1.0.1 artifact replay; successful replay does not widen this guarantee. No stable interchange
|
|
61
|
+
format, automatic migration or long-term serialized-layout compatibility is promised.
|
|
62
|
+
Keep the original environment when archiving models.
|
|
63
|
+
|
|
64
|
+
## Fitting, reproducibility and concurrency
|
|
65
|
+
|
|
66
|
+
Fit returns self. Failed fit/refit leaves the estimator unfitted; complete a valid
|
|
67
|
+
new fit before predicting. Concurrent read-only predict/predict_proba has smoke
|
|
68
|
+
coverage. Concurrent fits, fit-with-predict and parameter/fitted-state mutation are
|
|
69
|
+
unsupported. SafeBlend fit thread-pool limits are process-wide.
|
|
70
|
+
|
|
71
|
+
Use an integer random_state and identical data/order/configuration/environment for
|
|
72
|
+
repeatability. Bitwise results across numerical versions or platforms are not
|
|
73
|
+
guaranteed. `None` is nondeterministic; prefer integers over shared RandomState objects.
|