AFFECTOR-ARC / README.md
will-taggart's picture
Use explicit current Hugging Face technical paper download links
9b4843f verified
|
Raw History Blame Contribute Delete
5.15 kB
metadata
inference: false
language:
  - en
tags:
  - activation-steering
  - research
  - pytorch
  - cuda

Technical paper: PDF 路 LaTeX source 路 Complete source ZIP 路 Markdown 路 Figures and source

AFFECTOR-ARC

CUDA emotional-shape rewriting for Qwen3.5-0.8B on Virginia Tech ARC. This repository includes the engine source, command-line controls, setup script, and Slurm smoke test. Model weights are downloaded separately at the pinned revision.

Rewrite a document

After setup, run inside a GPU allocation:

python run_arc.py --mode rewrite --text-file target.txt \
  --geometry shape.json --style Restrained \
  --strength 0.47 --budget 0.47 --inertia 0.2 \
  --temperature 0 --top-p 0.95 --top-k 40 \
  --output runs/rewrite.json

The geometry argument accepts an exported geometry or supported analysis JSON; omit it to use the default demonstration trajectory. Calibration is performed anew on CUDA. Output is saved incrementally to the JSON report and matching .txt file. Use a distinct output name for each run. This runner does not resume prior reports.

November 13 update: the engine is now bundled as a versioned source snapshot rather than fetched from an older GH commit. ENGINE_MANIFEST.json records source hashes.

  • Minimal / Restrained / Balanced / Creative prompts, with Restrained as the default.
  • Sentence-aware chunks of up to approximately 700 characters.
  • Original-length aim; 125% character ceiling within each original paragraph, carrying unused allowance forward within that paragraph only.
  • Sentence-boundary stopping begins at 85% of the input chunk length. A token safety allowance expands as needed, to at most 2,048 tokens.
  • Repetition and time limits stop runaway generation. Complete, nonrepetitive sentences are retained; raw returned drafts remain in the report. If no usable sentence exists, the original chunk is retained and flagged.
  • A failed chunk does not stop later chunks. Requested strength/budget/inertia are never silently reduced or retried at lower values.

Extreme values for strength, budget, and inertia may cause generation failures. The runner also displays this warning in red in an ANSI-compatible terminal.

Controls

Control Meaning / default
--strength Scale of the activation displacement; 0.12
--budget Maximum displacement RMS relative to hidden-state RMS; 0.2
--inertia Previous displacement weight during generation; 0.2
--axis-top-k Number of emotional axes retained; 3
--axis-mass Cumulative emotional-axis magnitude retained; 1
--axis-temperature Emotional-axis magnitude exponent control; 1
--temperature Token sampling temperature; 0 (greedy)
--top-p Token probability-mass cutoff; 0.95
--top-k Token candidate count; 40
--max-tokens Base token allowance; 512, expanded in rewrite mode
--time-limit Per-generation time limit in seconds; 120

Activation controls use the imported geometry's settings unless explicitly overridden. Top-p and top-k are inactive at temperature 0; they do not control activation axes. Geometry coordinates are applied through hidden states, not inserted into the rewrite prompt. This CLI has no desktop fields or theme controls.

CUDA checks

python run_arc.py --mode smoke --text-file passage.txt --output runs/smoke.json
# or:
sbatch --account=YOUR_ALLOCATION smoke.sbatch

Smoke mode remains the default for compatibility. Without explicit overrides it retains the original rewrite instruction, 128-token allowance, 600-second time limit, and original decoding options. The new repetition guards and document caps apply only to opt-in rewrite mode. It checks zero-strength greedy text/token equivalence, nonzero injections, normal hook restoration, restored baseline text, and disabled parameter gradients. Smoke mode intentionally does not apply document-length salvage, so these equivalence checks compare raw generations.

Seven CPU policy tests and Python/shell syntax checks passed for this update. The updated CUDA path has not yet been run on an ARC GPU. A prior version was reported by the author to pass on tc-dgx005 on November 12, 2026; that does not validate this revision. Emotional effectiveness, semantic fidelity, and behavior at extreme settings are not guaranteed.

See technical report for a self-contained derivation of the steering mathematics, document workflow, controls, and validation limits. Engine licensing is preserved in ATLAS_LICENSE; Qwen weights retain their upstream license. No weights are redistributed here.