model.yaml reference
Every field of the model manifest, accepted values, and defaults.
Every model published to Dreadnode is a directory with a model.yaml manifest at the root. This page enumerates every field accepted by that manifest.
For authoring guidance, see Publishing a model.
Top-level fields
Section titled “Top-level fields”| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | No | directory name | Registry name. Override with --name on dn model push. |
version | string | No | 0.1.0 | Fixed semver (X.Y.Z). Pre-release and build suffixes are rejected. |
summary | string | No | none | One-line description shown in list output and the Hub. |
description | string | No | none | Longer description. Alias for summary when summary is missing. |
framework | string | No | inferred from artifacts | One of safetensors, pytorch, onnx, or a custom string. |
task | string | No | none | Free-form ML task label (e.g. text-generation, sequence-classification). |
architecture | string | No | none | Model architecture name (e.g. LlamaForCausalLM). |
base_model | string | No | none | Reference to the parent model. Use org/name@version for LoRAs and fine-tunes published on Dreadnode. |
dataset_refs | list of strings | No | none | Training datasets used, as pinned references (org/name@version). |
pretty_name | string | No | none | Display name for the Hub. Defaults to name. |
license | string | No | none | SPDX identifier (e.g. apache-2.0, mit) or free-form label. |
language | list of strings | No | none | ISO 639-1 codes. |
tags | list of strings | No | none | Searchable tags shown on the Hub. |
task_categories | list of strings | No | none | Broad task taxonomy used for Hub filtering. |
size_category | string | No | none | Size bucket shown in the Hub (e.g. <1B, 1-7B, >70B). |
files | list of strings | No | every file except model.yaml | Explicit artifact paths relative to the directory root. |
Fields not accepted from model.yaml — metrics and aliases — are set after publishing via dn model metrics and dn model alias.
Framework inference
Section titled “Framework inference”When framework is missing, the CLI scans artifact extensions in priority order and stops at the first match:
| Priority | Extension present | Inferred framework |
|---|---|---|
| 1 | Any .safetensors | safetensors |
| 2 | Any .onnx | onnx |
| 3 | Any of .pt, .pth, .bin | pytorch |
| 4 | None of the above | safetensors |
A directory that contains both .onnx and .pt resolves to onnx. A directory that contains both .safetensors and a PyTorch checkpoint resolves to safetensors. Set framework explicitly in model.yaml when the defaults pick the wrong one.
Artifact discovery
Section titled “Artifact discovery”One of two paths decides which files enter the manifest:
| Manifest has | Behavior |
|---|---|
files: | Each entry is a path relative to the directory root. Paths must stay inside it. |
| Omitted | Every file under the directory is included except model.yaml, .git, __pycache__, and .DS_Store. |
Tokenizer files (tokenizer.json, tokenizer_config.json, special_tokens_map.json), config files (config.json), and additional assets are preserved as-is under their relative paths.
Version rules
Section titled “Version rules”Versions use fixed semver: three integers joined by dots. 1.0.0 is valid; 1.0, 1.0.0-rc1, and 1.0.0+build are not. dn model push rejects invalid versions before uploading.
Example — full model
Section titled “Example — full model”name: support-assistantversion: 1.2.0summary: 7B assistant fine-tuned on support tickets.framework: safetensorsarchitecture: LlamaForCausalLMtask: text-generationbase_model: meta-llama/Llama-3.1-8B-Instructdataset_refs:license: apache-2.0language: [en]tags: [assistant, support, sft]task_categories: [conversational]size_category: 1-7BExample — LoRA adapter
Section titled “Example — LoRA adapter”name: support-assistant-loraversion: 0.3.0summary: LoRA adapter for Llama-3.1-8B-Instruct, rank 16.framework: safetensorsbase_model: meta-llama/Llama-3.1-8B-Instructdataset_refs:files: - adapter_config.json - adapter_model.safetensors - tokenizer.json - tokenizer_config.json - special_tokens_map.json