diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..35070c1 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,37 @@ +# This CITATION.cff file was generated with cffinit. +# Visit https://bit.ly/cffinit to generate yours today! + +cff-version: 1.2.0 +title: "AntiPaSTO: Self-Supervised Steering of Moral Reasoning" +message: "If you use this software, please cite it as below." +type: software +authors: + - given-names: Michael J + family-names: Clark + orcid: "https://orcid.org/0009-0008-9023-8720" +repository-code: "https://github.com/wassname/AntiPaSTO" +url: "https://github.com/wassname/AntiPaSTO" +license: MIT +version: "0.5.0" +date-released: "2026-01-13" +keywords: + - machine-learning + - llm + - steering + - alignment + - moral-reasoning + - pytorch + - peft +abstract: >- + Self-supervised steering of moral reasoning via antiparallel + subspace training. Gradient-based steering in SVD transformation + space, trained on internal representations without preference labels. +preferred-citation: + type: article + authors: + - given-names: Michael J + family-names: Clark + orcid: "https://orcid.org/0009-0008-9023-8720" + title: "AntiPaSTO: Self-Supervised Steering of Moral Reasoning" + year: 2026 + # doi: "10.48550/arXiv.2501.XXXXX" # Uncomment when arXiv ID available diff --git a/LICENSE b/LICENSE index 65fa26f..153b92c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 wassname +Copyright (c) 2026 Michael J Clark (wassname) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index fb0ab66..acc62f3 100644 --- a/README.md +++ b/README.md @@ -95,14 +95,14 @@ Built on the shoulders of: ## Citation ```bibtex -@misc{clark2025antipasto, +@misc{clark2026antipasto, title = {AntiPaSTO: Self-Supervised Steering of Moral Reasoning}, author = {Clark, Michael J.}, - year = {2025}, - eprint = {2501.XXXXX}, + year = {2026}, + eprint = {2601.XXXXX}, archivePrefix = {arXiv}, primaryClass = {cs.LG}, - url = {https://arxiv.org/abs/2501.XXXXX} + url = {https://arxiv.org/abs/2601.XXXXX} } ``` diff --git a/antipasto/__init__.py b/antipasto/__init__.py index ecb43ce..f6e87bf 100644 --- a/antipasto/__init__.py +++ b/antipasto/__init__.py @@ -1,5 +1,12 @@ +"""AntiPaSTO: Self-Supervised Steering of Moral Reasoning +https://github.com/wassname/AntiPaSTO +(c) 2026 Michael J Clark, MIT License +""" from . import control, extract from .extract import ControlVector from .dataset import make_dataset +__author__ = "Michael J Clark" +__url__ = "https://github.com/wassname/AntiPaSTO" +__version__ = "0.5.0" __all__ = ["control", "extract", "ControlVector"] diff --git a/antipasto/peft_utils/antipasto_adapter.py b/antipasto/peft_utils/antipasto_adapter.py index 2af41c4..357b2fc 100644 --- a/antipasto/peft_utils/antipasto_adapter.py +++ b/antipasto/peft_utils/antipasto_adapter.py @@ -1,5 +1,7 @@ """ AntiPaSTO adapter - combines SVFT (Singular Value Fine-Tuning) with changes +https://github.com/wassname/AntiPaSTO +(c) 2026 Michael J Clark, MIT License SVFT decomposes weights via SVD: W = U @ S @ V^T - U, V are frozen singular vectors (orthonormal bases) diff --git a/antipasto/train/train_adapter.py b/antipasto/train/train_adapter.py index a5c3d1f..f49df6e 100644 --- a/antipasto/train/train_adapter.py +++ b/antipasto/train/train_adapter.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 """Train contrastive AntiPaSTO adapter for steering LLMs. +https://github.com/wassname/AntiPaSTO +(c) 2026 Michael J Clark, MIT License Example usage: python nbs/train.py --batch_size 14 --n_epochs 30