기술 가이드

플래시 주의

Flash Attention은 느린 메모리에 거대한 Attention 매트릭스를 작성하지 않고 Transformer 내부의 Attention 단계를 계산하는 영리한 방법입니다.

2분 읽기마지막 업데이트

개요

It makes long-context models far faster and more memory-efficient without changing their math.

심층 분석

Standard attention은 모든 토큰을 다른 모든 토큰과 비교하여 시퀀스 길이에 따라 2차적으로 증가하는 NxN 점수 매트릭스를 생성합니다. 기본적으로 해당 행렬은 GPU 고대역폭 메모리(HBM)에 기록되고 다시 읽혀지며, 곱셈이 아닌 셔틀링이 실제 병목 현상이 됩니다. 2022년 Tri Dao와 동료들이 도입한 Flash Attention은 행렬이 완전히 저장되지 않도록 계산을 재구성합니다. 빠른 온칩 SRAM에 맞는 작은 타일의 쿼리, 키 및 값을 처리하고, 부분적인 결과를 계산하고, 온라인 실행 소프트맥스 트릭을 사용하여 이들을 연결합니다. 출력은 수학적으로 일반적인 Attention과 동일하지만 선형 메모리를 사용하고 특히 긴 시퀀스에서 몇 배 더 빠르게 실행됩니다.

기술적 통찰력

핵심 트릭은 타일링과 온라인 소프트맥스입니다. Softmax는 일반적으로 분모를 계산하기 위해 전체 점수 행이 필요하지만 Flash Attention은 각 타일을 스트리밍할 때 실행 최대값과 실행 합계를 유지하여 최종 결과가 정확하도록 이전 부분 출력의 크기를 다시 조정합니다. 중간 점수는 SRAM(HBM보다 훨씬 빠른 속도)에 유지되므로 알고리즘은 IO를 인식합니다. 원시 산술 연산보다는 메모리 읽기 및 쓰기를 최소화합니다.

전략적 영향

비용 및 예산

아키텍처 결정은 수년 동안 성능과 운영 비용을 결정합니다.

더 명확한 결정들

기술 교육은 팀이 최신 스택뿐만 아니라 올바른 스택을 선택하는 데 도움이 됩니다.

품질 관리

더 나은 엔지니어링 선택은 생산 시 신뢰성 사고를 줄입니다.

플래시 어텐션의 미래

Flash Attention은 기본 구성 요소가 되었으며, FlashAttention-2 및 FlashAttention-3은 작업 분할을 개선하고 정밀도가 낮은 FP8 경로를 활용하여 H100과 같은 최신 GPU에서 더 많은 처리량을 압착합니다. 하드웨어와의 지속적인 공동 설계, 교육 및 추론 프레임워크와의 긴밀한 통합, 희소, 슬라이딩 윈도우 및 매우 긴 컨텍스트 관심을 위해 조정된 변형을 기대합니다. 컨텍스트 창이 수백만 개의 토큰으로 확장됨에 따라 이와 같은 IO 인식 커널은 메모리와 속도를 실용적으로 유지하는 데 필수적입니다.

실제 구현

더 낮은 메모리 비용으로 더 긴 컨텍스트 창을 사용하여 Llama 및 GPT급 시스템과 같은 대규모 언어 모델을 교육합니다.

긴 프롬프트를 처음 읽는 사전 채우기 단계의 속도를 높여 채팅 도우미에게 더 빠르게 서비스를 제공합니다.

단일 GPU에서 긴 시퀀스 주의를 가능하게 하여 전체 책이나 코드베이스를 수집하는 문서 분석 도구를 활성화합니다.

고해상도 입력이 매우 긴 토큰 시퀀스를 생성하는 비전 및 오디오 변환기에 전원을 공급합니다.

위험 및 가드레일

하나의 벤치마크를 최적화하면 더 광범위한 시스템 약점을 숨길 수 있습니다.

인프라 및 유지 관리 비용은 종종 과소평가됩니다.

시스템이 더욱 복잡해짐에 따라 보안 및 관찰 가능성의 격차가 커질 수 있습니다.

구현 로드맵

1

구현하기 전에 지연 시간, 품질, 비용 목표를 정의하세요.

2

현실적인 로드 및 데이터 조건에서 벤치마킹합니다.

3

오류, 드리프트 및 사용자 영향에 대한 계측기 모니터링.

4

확장하기 전에 롤백 및 사고 대응 경로를 준비하세요.

계속 탐색하세요

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Flash Attention quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

퀴즈 시작

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

다음 가이드

주의 롤아웃 및 머리 가지치기

자주 묻는 질문

What is Flash Attention?

Flash Attention은 느린 메모리에 거대한 Attention 매트릭스를 작성하지 않고 Transformer 내부의 Attention 단계를 계산하는 영리한 방법입니다. 수학을 변경하지 않고도 긴 컨텍스트 모델을 훨씬 더 빠르고 메모리 효율적으로 만들 수 있습니다.

Flash Attention의 주요 병목 현상은 무엇입니까?

Flash Attention은 IO를 인식합니다. 빠른 온칩 SRAM과 느린 고대역폭 메모리 사이에서 이동하는 데이터를 줄입니다. 이는 연산 자체가 아닌 실제 병목 현상입니다.

Flash Attention은 전체 NxN Attention 매트릭스 저장을 어떻게 방지합니까?

각 블록이 빠른 SRAM에 맞도록 계산을 타일링하여 HBM에서 전체 매트릭스를 구체화하지 않고도 부분 출력을 계산하고 축적합니다.

전체 행을 한 번에 확인하지 않고도 Flash Attention이 소프트맥스를 올바르게 계산할 수 있는 기술은 무엇입니까?

온라인 소프트맥스는 타일을 스트리밍하는 동안 실행 중인 최대값과 실행 중인 분모를 유지하여 최종 정규화가 정확하도록 이전 부분 출력의 크기를 다시 조정합니다.

Flash Attention이 긴 시퀀스에 가장 도움이 되는 이유는 무엇입니까?

순진한 주의 매트릭스는 메모리에서 N-제곱으로 확장되므로 전체 저장을 피하면 시퀀스가 ​​길 때 정확히 가장 큰 절감 효과를 얻을 수 있습니다.

Flash Attention의 'IO 인식' 설계는 무엇을 최소화하는 데 우선순위를 두나요?

IO 인식이란 알고리즘이 메모리 계층 구조에서 데이터를 이동하는 비용을 중심으로 설계되어 산술 연산보다는 HBM 트래픽을 최소화한다는 것을 의미합니다.