FlexAttention
FlexAttention ist eine neue API, die vom PyTorch-Team im Juli 2024 veröffentlicht wurde und eine flexible Schnittstelle bietet, die die Implementierung vieler Aufmerksamkeitsvarianten in wenigen Zeilen typischen PyTorch-Codes und die Verwendung von torch.compile
Dies wird auf einen fusionierten FlashAttention-Kernel reduziert, der Flexibilität ohne Leistungseinbußen bietet. Die relevanten Papierergebnisse sindFlexAttention für effiziente hochauflösende Vision-Language-Modelle", wurde von ECCV 2024 angenommen.
FlexAttention ist ein flexibler Aufmerksamkeitsmechanismus, der die Effizienz hochauflösender Vision-Language-Modelle verbessern soll. Der vorgeschlagene Mechanismus reduziert den Rechenaufwand erheblich, indem er sowohl hochauflösende als auch niedrig auflösende Bildbeschriftungen kodiert und die Aufmerksamkeitskarte nur unter Verwendung der niedrig auflösenden Beschriftungen und einiger ausgewählter hochauflösender Beschriftungen berechnet. Die Auswahl hochauflösender Orientierungspunkte erfolgt durch ein hochauflösendes Auswahlmodul, das auf Grundlage der eingegebenen Aufmerksamkeitskarte Orientierungspunkte relevanter Regionen abrufen kann. Die ausgewählten Token mit hoher Auflösung werden dann zusammen mit den Token mit niedriger Auflösung und den Texttoken in eine hierarchische Selbstaufmerksamkeitsschicht eingegeben, und die von dieser Schicht generierte Aufmerksamkeitskarte wird im nächsten Schritt für die Auswahl der Token mit hoher Auflösung verwendet. Dieser Vorgang wird auf jeder Aufmerksamkeitsebene wiederholt. Experimente zeigen, dass FlexAttention bei multimodalen Benchmarks vorhandene hochauflösende Vision-Language-Modelle übertrifft und gleichzeitig den Rechenaufwand um fast 40% deutlich reduziert.