Skip to main content

Library of common types, protocols (a.k.a. structural subtypes), and utilities to support AI test and evaluation

Project description

MAITE (Modular AI Trustworthy Engineering)

Python version support Code Coverage Type-Completeness Score Tested with Hypothesis

A toolbox of common types, protocols, and tooling to support AI test and evaluation workflows.

Check out the documentation and examples for more information.

MAITE is a library of common types, protocols (a.k.a. structural subtypes), and utilities for the test and evaluation (T&E) of supervised machine learning models. It is being developed under the Joint AI T&E Infrastructure Capability (JATIC) program. Its goal is to streamline the development of JATIC Python projects by ensuring seamless, synergistic workflows when working with MAITE-conforming Python packages for different T&E tasks. To this end, MAITE seeks to eliminate redundancies that would otherwise be shared across – and burden – separate efforts in machine learning test and evaluation. MAITE is designed to be a low-dependency, frequently-improved Python package that is installed by JATIC projects. The following is a brief overview of the current state of its submodules.

Installation

From Python Package Index (PyPI)

To install from the Python Package Index (PyPI), run:

pip install maite

:information_source: You can install MAITE for a given release tag, e.g. v0.6.1, by running:

$ pip install git+ssh://git@github.com/mit-ll-ai-technology/maite.git@v0.6.1

From Source

To clone this repository and install from source, run:

$ git clone https://github.com/mit-ll-ai-technology/maite
$ cd maite
$ pip install .

maite.protocols

Common types for machine learning test and evaluation

The protocols subpackage defines common types – such as an inference-mode object detector – to be leveraged across JATIC projects. These are specifically designed to be Python protocol classes, which support structural subtyping. As a result, developers and users can satisfy MAITE-typed interfaces without having to explicitly subclass. This ability helps to promote common interfaces across JATIC projects without introducing explicit inter-dependencies between them.

maite.testing

Support for rigorous software testing

The testing subpackage is designed to help developers create a rigorous automated test suite for their project. These include:

  • Pytest fixtures for initializing test functions with common models, datasets, and other inputs that are useful for testing machine learning code.
  • Functions running static type checking tests using pyright in a pytest test suite, including scans of both source code and example documentation code blocks.
  • Hypothesis strategies for driving property-based tests of interfaces that leverage MAITE protocols.

Pyright Static Type Checking in Code

>>> def f(x: str):
...     return 1 + x
>>> pyright_analyze(f)
{'version': '1.1.281',
  'time': '1669686515154',
  'generalDiagnostics': [{'file': 'source.py',
    'severity': 'error',
    'message': 'Operator "+" not supported for types "Literal[1]" and "str"\n\xa0\xa0Operator "+" not supported for types "Literal[1]" and "str"',
    'range': {'start': {'line': 1, 'character': 11},
    'end': {'line': 1, 'character': 16}},
    'rule': 'reportGeneralTypeIssues'}],
  'summary': {'filesAnalyzed': 20,
  'errorCount': 1,
  'warningCount': 0,
  'informationCount': 0,
  'timeInSec': 0.319}}

maite.utils

General utilities

  • Functions for validating the types and values of user arguments, with explicit and consistent user-error messages, that raise MAITE-customized exceptions.
  • Specialized PyTorch utilities to help facilitate safe and ergonomic code patterns for manipulating stateful torch objects
  • Other quality assurance and convenience functions that may be widely useful across projects

Disclaimer

DISTRIBUTION STATEMENT A. Approved for public release. Distribution is unlimited.

© 2024 MASSACHUSETTS INSTITUTE OF TECHNOLOGY

  • Subject to FAR 52.227-11 – Patent Rights – Ownership by the Contractor (May 2014)
  • SPDX-License-Identifier: MIT

This material is based upon work supported by the Under Secretary of Defense for Research and Engineering under Air Force Contract No. FA8702-15-D-0001. Any opinions, findings, conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the Under Secretary of Defense for Research and Engineering.

The software/firmware is provided to you on an As-Is basis

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

maite-0.8.1.tar.gz (82.0 kB view details)

Uploaded Source

Built Distribution

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

maite-0.8.1-py3-none-any.whl (81.1 kB view details)

Uploaded Python 3

File details

Details for the file maite-0.8.1.tar.gz.

File metadata

  • Download URL: maite-0.8.1.tar.gz
  • Upload date:
  • Size: 82.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for maite-0.8.1.tar.gz
Algorithm Hash digest
SHA256 f6b9462405d5f3eda2a8328eef9a34074a321697285e41af562fd036353e00c9
MD5 3ddfd52d877e21017da5f6ff1bec530b
BLAKE2b-256 7e2d6b56e65b8c8abce9db3d5c8ab9e0c0577e29d34e648ead6c897b30aa0fa6

See more details on using hashes here.

Provenance

The following attestation bundles were made for maite-0.8.1.tar.gz:

Publisher: pypi_publish.yml on mit-ll-ai-technology/maite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maite-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: maite-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 81.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for maite-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 72af54e122714174b22dec01c86d477c8af7594e590dcae9ddae09970cb45c12
MD5 0d5bbaa5cbd05e55f1a62ffcc9d873bb
BLAKE2b-256 e3333a9f4a6d6717aca1b362e372c19134c581113aca47bec10e2c0ab01590b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for maite-0.8.1-py3-none-any.whl:

Publisher: pypi_publish.yml on mit-ll-ai-technology/maite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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