Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ebm_splats-2.0.0.tar.gz (61.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ebm_splats-2.0.0-py3-none-any.whl (53.0 kB view details)

Uploaded Python 3

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

Hashes for ebm_splats-2.0.0.tar.gz
Algorithm Hash digest
SHA256 86b4b6565d09af5ee39f9312623bf4e75b91f98fdc8cab8ccebe145de2238097
MD5 e93720c99abac298d3cce43e05384035
BLAKE2b-256 8014f7256092b5b90d4288c07f92265890ea7517a9b98e67eebf87f9576e5637

See more details on using hashes here.

Provenance

The following attestation bundles were made for ebm_splats-2.0.0.tar.gz:

Publisher: EBM-splats.yaml on schwabauerbriantomas-gif/EBM-splats

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for ebm_splats-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2805b46ebe602a68876b0642f2a9b69c2d37a2b9e9556a31ebacfe9a1c4bdb6b
MD5 140c577f527df2be9842c03eb58c20e0
BLAKE2b-256 873233c0d1ee821131e5347071aebe1ea7c65ccc4aa351ce2f3b2a1956b82e9f

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page