meta-pytorch/attention-gym
Helpful tools and examples for working with flex-attention
해결하는 문제
Attention Gym은 새로운 어텐션 메커니즘을 구현하기 위한 카ーネル, 가이드, 예제의 중앙 집중형 컬렉션을 제공합니다. PyTorch의 FlexAttention API를 사용하는 사용자에게 커스텀 어텐션 마스크 및 스코어 수정을 쉽게 만들고 사용할 수 있도록 하며, 스파스 및 선형 어텐션의 효율적인 구현도 제공합니다.
작동 방식
이 라이브러리는 세 가지 주요 워크플로우를 통해 작동합니다:
- FlexAttention 통합: PyTorch의 FlexAttention API에 직접 전달할 수 있는
mask_mod및score_mod함수를 제공합니다. - 특화된 카ーネル: 스파스 어텐션 패턴을 위한 API와 카ーネル, 그리고 GDN과 KDA(체크, 재귀, 디코딩 경로)의 효율적인 구현이 포함되어 있습니다.
- 실용적인 예제: CUDA Graphs, 컴파일, 프로파일링, 가변 스파스 어텐션을 포함한 벤치마크와 실제 워크로드를 다루는 전용 예제 디렉터리가 있습니다.
대상 사용자
딥러닝에서 어텐션 메커니즘을 다루는 연구자 및 개발자에게 적합합니다. 특히 새로운 어텐션 변형을 실험하거나 스파스 또는 선형 어텐션 카ーネル을 사용해 성능을 최적화하고자 하는 사람들을 위한 것입니다.
주요 특징
- FlexAttention 마스크 및 스코어 수정 지원.
- 스파스 어텐션 및 선형 어텐션(GDN 및 KDA)에 대한 효율적인 카ーネル.
- 어텐션 마스크 생성 및 조합을 위한 유틸리티 함수.
- 페이지 기반, 링, 가변 스파스 어텐션을 포함한 포괄적인 예제.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트