huggingface / huggingface/diffusers
Support for Exclusive Self Attention (XSA) in Diffusion Models (DiT, U-Net, etc.)
- Lingua principale
- Python
- Stelle
- 34.5k
- Fork
- 7.3k
- Merge medio
- 3g 3h
- PR unite (30g)
- 91
Descrizione
**Is your feature request related to a problem? Please describe.**
Self-attention in diffusion models often produces outputs highly similar to the token’s own value, creating redundancy and under-utilizing context from other patches.
**Describe the solution you’d like.**
Add optional support for **Exclusive Self Attention (XSA)** (arXiv:2603.09078) as a drop-in replacement.
XSA orthogonalizes the attention output to remove the self-component:
```python
# Simplified core idea (per token/head)
z_i = y_i - (y_i @ v_i) / (v_i @ v_i) * v_i
```
Expose via `exclusive_self_attention=True` in `Attention` and transformer blocks.
**Describe alternatives you’ve considered.**
Manual patching or third-party implementations.
**Additional context.**
We’ve Been Doing Attention Wrong (2-Line Fix)
https://youtu.be/2eZKT4H9_iQ
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia individuando l'implementazione di Attention e i blocchi transformer utilizzati dai modelli di diffusione, quindi esamina come vengono gestiti gli output dell'attenzione e i tensori dei valori in PyTorch. Il lavoro è completato quando XSA è disponibile come modalità drop-in opzionale esposta tramite exclusive_self_attention=True e il suo comportamento è convalidato nei relativi percorsi di attenzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python, pytorch
- Ambito
- machine-learning
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100