플래시어텐션 알고리즘
FlashAttention은 2022년 스탠포드 대학과 뉴욕 주립 대학이 제안한 효율적이고 메모리 친화적인 어텐션 알고리즘입니다. 이 알고리즘은 기존 Transformer 모델의 셀프 어텐션 계층의 높은 계산 복잡도와 메모리 점유 문제를 해결하는 것을 목표로 합니다.관련 논문 결과는 다음과 같습니다.FlashAttention: IO 인식을 통한 빠르고 메모리 효율적인 정확한 어텐션이 알고리즘은 PyTorch 2.0에 통합되었으며, triton과 xformer와 같은 여러 오픈 소스 프레임워크에 통합 및 구현되었습니다. 어텐션 연산 순서를 변경하고, 타일링 및 재계산 기법을 활용하여 연산 속도를 크게 향상시키고, 시퀀스 길이에 따른 메모리 사용량을 이차에서 선형으로 줄입니다.
FlashAttention을 도입하면 Meta의 LLaMA, UAE가 출시한 Falcon과 같은 대규모 오픈 소스 모델이 컴퓨팅을 가속화하고 비디오 메모리를 절약할 수 있습니다. 또한 FlashAttention의 후속 버전인 FlashAttention-2는 원래 기반에서 개선되어 더 나은 병렬 처리 및 작업 분할을 제공하며 2023년 7월 Tri Dao에서 "라는 논문을 통해 발표되었습니다.FlashAttention-2: 더 나은 병렬 처리 및 작업 분할을 통한 더 빠른 Attention"제안하다.
FlashAttention-3는 2024년 7월 Colfax Research, Meta, NVIDIA, Georgia Tech, Princeton University 및 Together AI의 연구팀이 공동으로 제안했습니다. 관련 논문은 "FlashAttention-3: 비동기 및 저정밀도를 갖춘 빠르고 정확한 어텐션". 이 시리즈의 최신 버전인 이 버전은 H100 GPU에서 상당한 성능 향상을 달성하여 FlashAttention-2보다 1.5~2.0배 빠르고, H100에서 최대 740TFLOPS 또는 75%의 이론상 최대 FLOPS 사용률을 달성하며, FP8을 사용할 경우 1.2PFLOPS에 가깝습니다. 이러한 개선을 통해 LLM의 학습 및 실행 속도가 크게 향상되고, 정확도를 유지하면서 낮은 정밀도의 숫자(FP8)를 사용할 수 있게 되어 메모리 사용량을 줄이고 비용을 절감할 수 있습니다.