Skip to content

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.

  • The Dreadnode CLI authenticated (dn login) — see Authentication
  • Python with transformers installed when you plan to load the model back
  • A model source directory: weights, tokenizer files, and any config the framework expects
support-assistant/
model.yaml
model.safetensors
config.json
tokenizer.json
tokenizer_config.json
special_tokens_map.json

A minimal model.yaml:

model.yaml
name: support-assistant
version: 0.1.0
summary: 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.

Terminal window
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.

Terminal window
dn model push ./support-assistant
Pushed 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.

import dreadnode as dn
from 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.

Edit the directory, bump version in model.yaml, and push again:

Terminal window
# model.yaml
version: 0.2.0
Terminal window
dn model push ./support-assistant

Older versions stay in the registry. When you’re ready to promote, attach metrics with dn model metrics and move the champion alias:

Terminal window
dn model metrics [email protected] intent_accuracy=0.873 f1=0.86
dn model alias [email protected] champion

See Versions & metrics for the comparison, promotion, and retirement flow.

  • 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