Quickstart
Author a model directory, publish a version to your organization, and load it back from code.
Package a trained checkpoint as a Dreadnode model, push it, and pull it back from Python — all from the CLI.
Prerequisites
Section titled “Prerequisites”- The Dreadnode CLI authenticated (
dn login) — see Authentication - Python with
transformersinstalled when you plan to load the model back - A model source directory: weights, tokenizer files, and any config the framework expects
1. Lay out the directory
Section titled “1. Lay out the directory”support-assistant/ model.yaml model.safetensors config.json tokenizer.json tokenizer_config.json special_tokens_map.jsonA minimal model.yaml:
name: support-assistantversion: 0.1.0summary: 7B assistant fine-tuned on support tickets.name defaults to the directory name and version defaults to 0.1.0. Set them explicitly — the registry record is easier to read. framework is inferred from the file extensions (.safetensors wins); see Publishing for the full inference rules and the manifest reference for every field.
2. Inspect locally
Section titled “2. Inspect locally”dn model inspect ./support-assistant framework: safetensors task: text-generation architecture: LlamaForCausalLM
Files┃ Path ┃┇ model.safetensors ┇┇ config.json ┇┇ tokenizer.json ┇┇ tokenizer_config.json ┇┇ special_tokens_map.json ┇inspect reads model.yaml, hashes every file, and prints the manifest the registry would record. It runs entirely locally — no API call — so use it as a pre-flight before pushing.
3. Push to the registry
Section titled “3. Push to the registry”dn model push ./support-assistantPushed acme/[email protected] (sha256:ab3c7f...)The version goes to your organization (acme here) and is visible only to that org by default. The qualified name is org/name@version. Re-pushing a directory with a single changed file uploads only that file.
4. Load it from code
Section titled “4. Load it from code”import dreadnode as dnfrom dreadnode.models import Model
dn.pull_package(["model://acme/support-assistant:0.1.0"])model = Model("acme/support-assistant", version="0.1.0")
hf_model = model.to_hf(torch_dtype="bfloat16", device_map="auto")tokenizer = model.tokenizer()pull_package downloads the version you just pushed; Model(...) opens it by name. See Using in code for the difference between pull_package/load_package and for serving the weights through a generator.
5. Bump a version
Section titled “5. Bump a version”Edit the directory, bump version in model.yaml, and push again:
# model.yamlversion: 0.2.0dn model push ./support-assistant# → acme/[email protected]Older versions stay in the registry. When you’re ready to promote, attach metrics with dn model metrics and move the champion alias:
See Versions & metrics for the comparison, promotion, and retirement flow.
What to reach for next
Section titled “What to reach for next”- LoRA adapters, custom frameworks, full catalog metadata → Publishing
- Compare releases, attach metrics, move aliases → Versions & metrics
- Pull, load, and feed the model into an evaluation → Using in code
- Browse what’s already in the registry → Catalog
- Every CLI verb →
dn model