STAC (Spiking Transformer Augmenting Cognition) is a research framework that explores two complementary approaches to spiking neural network (SNN) language modeling:
stac_v1/.Important: This repository currently runs software-level SNN simulations only. No metrics have been collected on physical neuromorphic hardware. Energy figures reported here are theoretical projections derived from spike-count analysis, not measured hardware data.
# 1. Install dependencies
pip install -r requirements.txt
# 2. Convert DistilGPT-2 to an SNN
python run_conversion.py --model_name distilgpt2 --timesteps 8 --simplified
# 3. Run a multi-turn conversation smoke test
python snn_multi_turn_conversation_test.py --mode snn --turns 3 --timesteps 8
# 4. Run the comprehensive validation suite
python test_conversational_snn.py --model_name distilgpt2 --test_all --timesteps 8
| Component | Purpose |
|---|---|
smollm2_converter.py |
Specialized converter with TemporalSpikeProcessor. |
convert.py |
Generic ANN-to-SNN conversion pipeline. |
run_conversion.py |
Main CLI entry point for conversions. |
spikingjelly_compat.py |
Cross-version compatibility layer for SpikingJelly. |
test_conversational_snn.py |
Comprehensive test suite. |
snn_multi_turn_conversation_test.py |
Lightweight multi-turn smoke test. |
| Component | Purpose |
|---|---|
stac-v1/stacv1.ipynb |
End-to-end training pipeline with learnable AdEx neurons. |
stac-v1/README.md |
V1 documentation and research notes. |
stac_v1/ + run_stac_v1.py |
Repo-native runnable V1 pipeline demonstrating hybrid fine-tuning (frozen GPT-2 with a trained spiking and memory head). |
Completed (prototype level)
ann2snn.EXPORT_LOIHI=1 and lava.lib.dl.slayer; otherwise the pipeline remains simulation-only and Loihi tests are skipped).Pending or in progress
Completed (research prototype)
The repository includes extensive testing for multi-turn conversational correctness:
# Test specific components
python test_conversational_snn.py --model_name distilgpt2 --test_position_boundaries
python test_conversational_snn.py --model_name distilgpt2 --test_attention_mask
python test_conversational_snn.py --model_name distilgpt2 --test_multi_turn
python test_conversational_snn.py --model_name distilgpt2 --test_energy
# Run the full suite
python test_conversational_snn.py --model_name distilgpt2 --test_all
This project is licensed under the MIT License. See the LICENSE file for details.