Skip to main content

Runtime utilities for ML dataset contract packages

Project description

ml_dataset_contract_core

Пакет ml_dataset_contract_core предназначен для создания собственных легковесных контрактов данных, которые позволяют синхронизировать описание входных признаков и целей между разработкой, обучением и эксплуатацией модели.

Представляет следующие динамические классы:

  • FeatureRow входные признаки;
  • TargetRow целевые признаки;
  • PredictRequest структура запроса к REST API сервера (например, Mlflow) для инференса модели;
  • 'Raw' таблицы с первичными данными;
  • RawPredictRequest запрос к REST API для случая сырых данных.

Установка

pip install ml_dataset_contract_core

Создание и использование собственного контракта

Создание собственного контракта

Например, ml_dataset_contract_tte

└── ml_dataset_contract_tte
    └── src
        ├── ml_dataset_contract_tte
                  ├── dataset.yml
                  ├── __init__.py

В файле dataset.yml определяем контракт данных (входные и целевые признаки), например:

inputs:
  expanding_tte_mean: float
  tte_lag_1: float

targets:
  tte: float

В __init__.py динамически создаем классы:

from importlib.resources import files

from ml_dataset_contract.runtime import (
    PydanticFeatureFactory,
    PydanticTargetFactory,
    PydanticRequestFactory,
)

_YAML = files(__name__).joinpath("dataset.yml")

TteFeatureRow = PydanticFeatureFactory(_YAML, prefix="Tte").build()
TteTargetRow  = PydanticTargetFactory(_YAML, prefix="Tte").build()
TtePredictRequest = PydanticRequestFactory(
    _YAML, prefix="Tte", feature_cls=TteFeatureRow
).build()

__all__ = [
    "TteFeatureRow", "TteTargetRow", "TtePredictRequest", "_YAML"
]

Использование собственного контракта

from ml_dataset_contract_tte import (
    TteFeatureRow,
    TteTargetRow,
    TtePredictRequest,
)


sample_row__input = {
    "expanding_tte_mean": 1.1,
    "tte_lag_1": 1.2,
}
sample_row__target = {"tte": 1.3}

feature_row = TteFeatureRow(**sample_row__input)
print(f"{feature_row=}")

target_row = TteTargetRow(**sample_row__target)
print(f"{target_row=}")

request = TtePredictRequest(rows=[feature_row])
payload = request.to_split_json()
print(f"{payload}")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ml_dataset_contract_core-0.2.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ml_dataset_contract_core-0.2.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file ml_dataset_contract_core-0.2.0.tar.gz.

File metadata

File hashes

Hashes for ml_dataset_contract_core-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1a6f91c5041481b21ada12066b8b83260250d0e7958ab4b35fe9dad60e1a4921
MD5 56c08d2dbe6fc48cd7efd6fe3e01cfc6
BLAKE2b-256 7f1ac23e8b47c90dc4074b8911e070abfd601de4118679b8dd94fa89e9950ba9

See more details on using hashes here.

File details

Details for the file ml_dataset_contract_core-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ml_dataset_contract_core-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9488013b849f87ed453f1640c37222607c853444d7391d85de6e3f02e356c51
MD5 c96c233ee7770a8d6b40420f0e14a58b
BLAKE2b-256 b69acc8d0acc6d4652a55c7ab19d31e2f498f239db32ef2194d1b9845daff0fc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page