Files
Stella Biderman 34032b7821 Add remote SSH execution support for GPU nodes
Adds --remote [user@]host flag to obliterate, run, and tourney commands,
enabling execution on remote GPU nodes via SSH. Also supports a remote:
section in YAML configs. The remote runner handles SSH connectivity checks,
GPU detection, auto-installation of obliteratus, log streaming, and result
syncing back to the local machine via scp.
2026-03-11 15:51:16 -04:00

72 lines
2.4 KiB
Python

"""Obliteratus — Master Ablation Suite for HuggingFace transformers."""
__version__ = "0.1.2"
# Lazy imports for the main pipeline classes
__all__ = [
"AbliterationPipeline",
"InformedAbliterationPipeline",
"set_seed",
"run_sweep",
"SweepConfig",
"SweepResult",
"save_contribution",
"load_contributions",
"aggregate_results",
"TourneyRunner",
"TourneyResult",
"get_adaptive_recommendation",
"AdaptiveRecommendation",
"RemoteRunner",
"RemoteConfig",
]
def __getattr__(name):
if name == "AbliterationPipeline":
from obliteratus.abliterate import AbliterationPipeline
return AbliterationPipeline
if name == "InformedAbliterationPipeline":
from obliteratus.informed_pipeline import InformedAbliterationPipeline
return InformedAbliterationPipeline
if name == "set_seed":
from obliteratus.reproducibility import set_seed
return set_seed
if name == "run_sweep":
from obliteratus.sweep import run_sweep
return run_sweep
if name == "SweepConfig":
from obliteratus.sweep import SweepConfig
return SweepConfig
if name == "SweepResult":
from obliteratus.sweep import SweepResult
return SweepResult
if name == "save_contribution":
from obliteratus.community import save_contribution
return save_contribution
if name == "load_contributions":
from obliteratus.community import load_contributions
return load_contributions
if name == "aggregate_results":
from obliteratus.community import aggregate_results
return aggregate_results
if name == "TourneyRunner":
from obliteratus.tourney import TourneyRunner
return TourneyRunner
if name == "TourneyResult":
from obliteratus.tourney import TourneyResult
return TourneyResult
if name == "get_adaptive_recommendation":
from obliteratus.adaptive_defaults import get_adaptive_recommendation
return get_adaptive_recommendation
if name == "AdaptiveRecommendation":
from obliteratus.adaptive_defaults import AdaptiveRecommendation
return AdaptiveRecommendation
if name == "RemoteRunner":
from obliteratus.remote import RemoteRunner
return RemoteRunner
if name == "RemoteConfig":
from obliteratus.remote import RemoteConfig
return RemoteConfig
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")