Energy-Based Model with Gaussian Splats on a 640D hypersphere — archived research project
Project description
EBM-Splats
Status: Research complete. Phase 1-2 empirical tests finished. Energy-guided generation continued in m2m-energy-fields.
Energy-Based Model with Gaussian Splats on a 640D hypersphere. Explores distributional representations for latent spaces, sampling via Langevin dynamics and Rectified Flow.
Project Phases
Phase 1: EBM + PGLF (April 2026) — Discarded
EBM with Gaussian splats as attractors on S^639 + PGLF (projection over MiniLM with contrastive loss).
Result: PGLF degraded MiniLM on STS-B (-4.7%). Projection over pre-trained embeddings always destroys geometry.
Phase 1 Empirical: Discard Tests (July 2026)
3 empirical tests to discard or confirm alternatives. RTX 3090, real data.
| Test | Hypothesis | Result | Verdict |
|---|---|---|---|
| PGLF Grid (14 configs) | Can any config beat MiniLM? | 0/14 beat baseline (0.8672) | DISCARDED |
| OOD Detection | Does EBM energy detect OOD? | AUROC=1.0 but NN=0.999 | NO ADVANTAGE |
| RF vs Langevin | Does RF solve the speed bottleneck? | 24-29x faster, better quality | CONFIRMED |
Key finding: The argument that "200 Langevin steps per token" is prohibitive no longer applies. Rectified Flow with 1-2 steps produces better samples than Langevin with 200 steps, 24x faster.
Phase 2: Energy-Guided Generation (July 2026)
EBM as a generator that learns its own latent space (not as a layer over pre-trained models), with sampling via Rectified Flow.
| Test | Hypothesis | Result | Verdict |
|---|---|---|---|
| Energy-Guided Generation | Can energy manipulation steer generation? | 100% topic control at gs=1.0-2.0 | CONFIRMED |
| Concept Composition | Can multiple concepts be combined? | 4/4 mechanisms work | CONFIRMED |
Composition results:
- Equal blend (A+B): balanced similarity to both topics
- Weighted (70/30): asymmetric control confirmed
- Suppression (A−B): sim_B dropped from 0.44 to −0.29
- Triple (A+B+C): all three topics active (sim > 0.48)
EBM + RF enables semantic arithmetic on the hypersphere.
Repository Structure
├── src/ebm/ # Core EBM modules (geometry, splats, energy, model, etc.)
├── pglf/ # PGLF (archived — discarded empirically)
├── scripts/ # Training and generation scripts
├── tests/
│ ├── phase1_t11_rf_vs_langevin.py # RF vs Langevin benchmark
│ ├── phase1_t12_pglf_grid.py # PGLF grid search
│ ├── phase1_t13_ood_energy.py # OOD detection test
│ ├── phase2_energy_guided.py # Energy-guided generation test
│ ├── phase2_composition.py # Concept composition test
│ └── t*_results.jsonl # Raw results
├── docs/
│ ├── PHASE1_RESULTS.md # Full Phase 1 report
│ ├── PHASE2_RESULTS.md # Phase 2 energy-guided generation report
│ └── ...
└── benchmark_results/ # Previous benchmarks
Detailed Results
See docs/PHASE1_RESULTS.md and docs/PHASE2_RESULTS.md for full empirical test reports.
Tech Stack
- Python, PyTorch (CUDA 12.4, RTX 3090)
- sentence-transformers, HuggingFace datasets
- Rust (M2M integration via HTTP)
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ebm_splats-2.0.0.tar.gz.
File metadata
- Download URL: ebm_splats-2.0.0.tar.gz
- Upload date:
- Size: 61.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86b4b6565d09af5ee39f9312623bf4e75b91f98fdc8cab8ccebe145de2238097
|
|
| MD5 |
e93720c99abac298d3cce43e05384035
|
|
| BLAKE2b-256 |
8014f7256092b5b90d4288c07f92265890ea7517a9b98e67eebf87f9576e5637
|
Provenance
The following attestation bundles were made for ebm_splats-2.0.0.tar.gz:
Publisher:
EBM-splats.yaml on schwabauerbriantomas-gif/EBM-splats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ebm_splats-2.0.0.tar.gz -
Subject digest:
86b4b6565d09af5ee39f9312623bf4e75b91f98fdc8cab8ccebe145de2238097 - Sigstore transparency entry: 2071374132
- Sigstore integration time:
-
Permalink:
schwabauerbriantomas-gif/EBM-splats@492e44caa9d106b22bf1084b1185049e3fdd84b9 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/schwabauerbriantomas-gif
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
EBM-splats.yaml@492e44caa9d106b22bf1084b1185049e3fdd84b9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ebm_splats-2.0.0-py3-none-any.whl.
File metadata
- Download URL: ebm_splats-2.0.0-py3-none-any.whl
- Upload date:
- Size: 53.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2805b46ebe602a68876b0642f2a9b69c2d37a2b9e9556a31ebacfe9a1c4bdb6b
|
|
| MD5 |
140c577f527df2be9842c03eb58c20e0
|
|
| BLAKE2b-256 |
873233c0d1ee821131e5347071aebe1ea7c65ccc4aa351ce2f3b2a1956b82e9f
|
Provenance
The following attestation bundles were made for ebm_splats-2.0.0-py3-none-any.whl:
Publisher:
EBM-splats.yaml on schwabauerbriantomas-gif/EBM-splats
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ebm_splats-2.0.0-py3-none-any.whl -
Subject digest:
2805b46ebe602a68876b0642f2a9b69c2d37a2b9e9556a31ebacfe9a1c4bdb6b - Sigstore transparency entry: 2071374146
- Sigstore integration time:
-
Permalink:
schwabauerbriantomas-gif/EBM-splats@492e44caa9d106b22bf1084b1185049e3fdd84b9 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/schwabauerbriantomas-gif
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
EBM-splats.yaml@492e44caa9d106b22bf1084b1185049e3fdd84b9 -
Trigger Event:
release
-
Statement type: