CycloneDX Machine Learning Bill of Materials
Description
A CycloneDX ML-BOM (machine-learning bill of materials) is a machine-readable inventory of what a model is made of, written in the CycloneDX standard (ECMA-424) so that tools as well as people can check it. It applies the software bill of materials, a structured list of the components in a piece of software, to models: the model is declared as a component of type machine-learning-model with its identifiers, version, supplier, licence and file hashes, together with the base models it was derived from (its pedigree), the datasets used to train and evaluate it with their source, classification and owners, the libraries it depends on, and an optional structured model card giving its task, architecture, performance metrics, intended uses and known limitations. The BOM is written at release, by hand or with a generator that reads the model's repository and metadata, checked against the CycloneDX schema, and can be signed. Consumers then query it, for example to find every deployed model that uses a dataset or library found to be compromised, or to check a supplier's declared datasets and licences before purchase. Unlike a model card or datasheet, written for people to read, or an experiment log or data version history, which stay with the team that built the model, it is a parts list in a fixed schema that travels with the model and can be matched against vulnerability records and file hashes, but it records what its author declares and verifies none of it.
Example Use Cases
Security
A bank keeps an ML-BOM for every deployed model, recording each base model by its Hugging Face package URL and revision, the fine-tuning datasets, the framework libraries and the file hashes. When a compromised base-model release or a vulnerability in a model-loading library is announced, its security team queries the BOMs to list the affected deployments within hours and decides which to withdraw or patch.
A hospital trust buying a diagnostic imaging model requires the supplier to deliver a signed ML-BOM with each version. Before the model enters clinical evaluation, the acceptance team checks the BOM's signature, compares its file hashes with the delivered files and checks the listed libraries against known-vulnerability records.
A software company generates an ML-BOM for each release of its customer-support assistant with an open-source generator, recording the base and embedding models, the quantised model file and the framework libraries with hashes. Its security team compares each new BOM with the previous release's to catch an unreviewed change of base model or library before the release ships.
Transparency
A government department procuring a document-classification model asks bidders for an ML-BOM whose model-card and dataset fields declare each training and evaluation dataset with its source, licence and owner, and the model's known technical limitations. Its assessors and later its auditors read and query these declarations to compare bids and to check what the chosen supplier said it used.
Limitations
- It records what its author declares. Nothing in the format checks that the listed datasets were the ones used, that the model-card fields are true or that the list is complete, so a BOM is evidence that a disclosure was made, not that it is accurate. Hashes and a signature show that the document and the files it lists have not changed since it was written, which is a different thing.
- Almost every field is optional: ECMA-424 requires a component's type and name and little else, so a BOM can pass schema validation while saying almost nothing. In a 2026 preprint that generated ML-BOMs with one open-source tool for about 98,000 Hugging Face models, every BOM had the required fields, but only 39% named a dataset, 17% listed technical limitations and 0.2% had a meaningful description. A claim needs the fields it relies on to be checked, not only schema validity.
- Generators can fill only what they can read: hub metadata, model-card text and configuration files. Training data, fine-tuning history and settings that the publisher never wrote down stay empty, and for a model bought from a supplier the BOM is only as complete as the supplier chooses to make it.
- Each BOM describes one version of one model. Fine-tuning, quantisation, a new framework release or a changed dataset needs a new BOM, and the ability to answer 'which of our models use this component?' when a compromise is disclosed depends on BOMs being regenerated and kept for every deployed version, which is a standing process cost rather than a one-off task.