Skip to content

Conversation

@SJCaldwell
Copy link

@SJCaldwell SJCaldwell commented Jan 12, 2026

Summary

  • Adds an Axolotl plugin that enables automatic logging of training metrics to Dreadnode Strikes
  • Reuses the existing DreadnodeCallback from the transformers integration
  • Supports configuration via Axolotl YAML: dreadnode_project, dreadnode_workspace, dreadnode_run_name, dreadnode_tags

Usage

In the config you supply to axolotl, for example test_dreadnode_config.yaml

plugins:
  - dreadnode.integrations.axolotl.DreadnodePlugin

dreadnode_project: "my-finetuning-project"
dreadnode_workspace: "my-workspace"        # optional
dreadnode_run_name: "llama-finetune-v1"    # optional
dreadnode_tags:                            # optional
  - "experiment-1"

Run with axolotl like axolotl train test_dreadnode_config.yaml

Test plan

  • Plugin imports correctly
  • Edge case testing (missing config, non-main process)
  • Full training run with metrics logged to Strikes

🤖 Generated with Claude Code

Generated Summary:

  • Introduced the DreadnodePlugin for integrating Dreadnode logging with Axolotl's training metrics.
  • Created a new file __init__.py that contains the primary plugin implementation.
  • Implemented essential methods for registration, model loading, and training callbacks:
    • register: Logs project registration.
    • pre_model_load: Validates project configuration before model loading.
    • add_callbacks_post_trainer: Injects DreadnodeCallback after trainer creation, essential for logging metrics.
  • Added a new file args.py for Pydantic schema validation of the integration configuration.
  • Included fields for:
    • dreadnode_project: Defines the Dreadnode project.
    • dreadnode_workspace: Specifies workspace configuration.
    • dreadnode_run_name: Name of the training run.
    • dreadnode_tags: Tags to associate with Strikes logging.
  • Potential impact includes improved logging for Axolotl training processes and better tracking of experiments in Dreadnode Strikes.

This summary was generated with ❤️ by rigging

SJCaldwell and others added 4 commits January 12, 2026 10:33
Add a new integration for Axolotl that enables automatic logging of
training metrics to Dreadnode Strikes during fine-tuning jobs.

The plugin:
- Reuses the existing DreadnodeCallback from the transformers integration
- Follows Axolotl's plugin system conventions (BasePlugin interface)
- Supports distributed training (only logs on rank 0)
- Adds config args: dreadnode_project, dreadnode_run_name, dreadnode_tags

Usage in axolotl config:
    plugins:
      - dreadnode.integrations.axolotl.DreadnodePlugin
    dreadnode_project: "my-project"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…rface

- Add dreadnode_workspace field to Axolotl args for YAML configuration
- Implement all required Axolotl plugin interface methods (stubs)
- Configure workspace via dn.configure() when provided in config
- Change epoch logging from metric to param for x-axis display in Strikes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The epoch metric->param change belongs in a separate PR for the
main transformers callback, not the Axolotl integration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ruff noqa for ARG002, FBT001, FBT002 (plugin interface requires these)
- Remove explicit return None and unnecessary pass statements
- Use % formatting instead of f-strings in logging
- Add type annotation to dict parameter
- Add type: ignore for axolotl import (optional dependency)
- Add axolotl integration to mypy overrides for import handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@dreadnode-renovate-bot dreadnode-renovate-bot bot added the area/python Changes to Python package configuration and dependencies label Jan 12, 2026
Torch was accidentally added to main dependencies during testing.
It should only be required via the [training] optional extra.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@SJCaldwell SJCaldwell requested review from monoxgas and moohax January 12, 2026 23:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/python Changes to Python package configuration and dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants