This refinement release polishes the 2.0.x line with stability fixes, quality-of-life improvements, and better developer tooling. No breaking changes were introduced; projects that build against v2.0.2 should work out of the box.
✨ Key Additions
-
Generic ANN→SNN Converter (
convert.py)
• Unified, argument-driven pipeline that supports any Hugging Face causal-LM
• Optional 8-bit quantisation, calibration sample control, and simplified/full modes -
Specialised SmolLM2 Converter (
smollm2_converter.py)
• End-to-end script for converting SmolLM2-1.7B-Instruct
• Built-inTemporalSpikeProcessorwrapper for multi-turn conversations -
Command-line Runner (
run_conversion.py)
• Single entry-point to launch conversions with sensible logging, GPU/CPU autodetection, and on-disk spike telemetry -
SpikingJelly Compatibility Layer (
spikingjelly_compat.py)
• Gracefully handles API differences across SJ versions ≥ 0.0.0.0.14
• Dynamically chooses correct quantiser and layer imports -
Comprehensive Test Suite
•test_conversational_snn.py– 1 K+ lines covering KV-cache integrity, position-ID boundaries, spike-rate sanity, and multi-turn coherence
•snn_multi_turn_conversation_test.py– quick smoke test for conversational loops
🛠️ Improvements
- Performance: minor optimisation passes across conversion loops (fewer redundant tensor copies, improved progress bars with tqdm).
- Logging: unified structured logging across all scripts; logs now emitted both to console and dedicated
*.logfiles. - Error Handling: clearer import-time checks for PyTorch, SpikingJelly, and model compatibility; early exits with actionable messages.
🐞 Fixes
- Resolved outdated activation references (GELU→ReLU) that caused silent accuracy drops in some converted layers.
- Fixed spike-count overflow when
timesteps > 64in long-sequence tests. - Patched Windows path-handling edge-cases in file save routines (now OS-agnostic via
os.path.join).
📚 Documentation
- New Conversion Workflow, API Reference, and Hardware Requirements guides in the
docs/directory. - Root
README.mdupdated with quick-start instructions, feature matrices, and a V1 vs V2 comparison table.
⚙️ CI / Tooling
- Added GitHub Actions pipeline (
.github/workflows/ci.yml) covering lint-safe syntax checks, basic dependency installation, and documentation presence validation across Python 3.8-3.11.
🔄 Upgrade Notes
- Make sure your
spikingjellyversion is ≥ 0.0.0.0.14 (pip install "spikingjelly[cuda]>=0.0.0.0.14" --pre). - No API changes since v2.0.2; simply pull the new release and run your existing conversion commands.
- For SmolLM2 users, switch from the older experimental notebook to
python smollm2_converter.py --help.
What's Changed
- Refinements by @iLevyTate in #2
Full Changelog: 2.0.0.2...2.0.0.3