← 최신 논문
💻 computer science

Flashlight: PyTorch Compiler Extensions to Accelerate Attention Variants

본 논문은 정적 템플릿에 의존하지 않고 임의의 데이터 종속적 어텐션 패턴에 대해 융합된 FlashAttention 스타일 커널을 자동으로 생성하는 PyTorch 네이티브 컴파일러 프레임워크인 Flashlight 를 소개하며, 이를 통해 FlexAttention 과 같은 기존 솔루션에 비해 뛰어난 유연성과 경쟁력 있는 성능을 제공합니다.

원저자: Bozhi You, Irene Wang, Zelal Su Mustafaoglu, Abhinav Jangda, Angélica Moreira, Roshan Dathathri, Divya Mahajan, Keshav Pingali

게시일 2026-05-22
📖 4 분 읽기☕ 가벼운 읽기

원저자: Bozhi You, Irene Wang, Zelal Su Mustafaoglu, Abhinav Jangda, Angélica Moreira, Roshan Dathathri, Divya Mahajan, Keshav Pingali

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

FLASHLIGHT 논문에 대한 설명을 일상적인 언어와 창의적인 비유로 번역한 것입니다.

큰 그림: AI 의 "교통 체증"

대규모 언어 모델 (지금 당신과 대화하고 있는 것 같은) 이 복잡한 제품 (문장이나 단백질 구조) 을 조립하려는 거대한 공장이라고 상상해 보세요. 이 공장에서 가장 중요한 부서는 "어텐션 (Attention)" 부서입니다. 이곳에서 기계는 어떤 정보가 중요한지, 무엇을 무시할지 결정합니다.

문제점은 무엇일까요? 이 부서가 작동하는 현재 방식은 교통 체증과 같습니다.

  • 옛날 방식: 공장 노동자들 (컴퓨터 코드) 은 작업을 멈추고, 종이에 메모를 적고 (느린 메모리에 데이터 저장), 다른 스테이션으로 이동해 메모를 꺼낸 뒤 다시 작업을 시작해야 합니다. 이것이 반복됩니다. 이는 느리고 에너지를 낭비합니다.
  • "플래시 (Flash)" 해결책: 몇 년 전, 엔지니어들은 FlashAttention을 발명했습니다. 그들은 노동자들이 모든 메모를 주머니 (빠른 메모리) 에 넣고 전체 작업을 하나의 연속된 질주로 처리할 수 있는 방법을 찾아냈습니다. 이는 엄청난 속도 향상이었지만, 이는 특수한 레이싱카와 같았습니다. 오직 하나의 특정 트랙 (표준 어텐션) 에서만 작동했습니다. 다른 종류의 차 (새로운 실험적 어텐션 방법) 를 타고 싶다면, 손으로 직접 완전히 새로운 레이싱카를 처음부터 만들어야 했습니다.

문제: 너무 많은 맞춤형 레이싱카

최근 과학자들은 AI 를 더 똑똑하거나 효율적으로 만들기 위해 "어텐션"을 수행하는 많은 새로운 화려한 방법들 ("차분 어텐션"이나 "게이트드 셀프 어텐션" 등) 을 발명했습니다.

  • 병목 현상: 이러한 새로운 방법들을 빠르게 만들기 위해서는 보통 전문가가 각 방법마다 맞춤형 "레이싱카" (전용 컴퓨터 커널) 를 손으로 코딩해야 합니다. 이는 영원히 걸리는 일입니다.
  • 중간 지대 (FlexAttention): FlexAttention이라는 도구는 이 문제를 해결하기 위해 건축가들에게 레고 템플릿 세트를 제공하려 했습니다. 만약 새로운 차가 템플릿에 맞다면 빠르게 작동했습니다. 하지만 차가 기묘하거나 독특하여 (템플릿에 맞지 않아) FlexAttention 이 도움을 줄 수 없다면, 다시 느리고 수동적인 코딩으로 돌아가야 했습니다.

해결책: FLASHLIGHT (범용 공장 업그레이드)

이제 FLASHLIGHT가 등장합니다. 저자들은 이를 컴파일러 네이티브 프레임워크라고 설명합니다. 간단히 말해, 이는 대부분의 AI 연구자들이 사용하는 언어인 PyTorch 소프트웨어에 직접 내장된 똑똑한 "오토 파일럿"입니다.

다음은 비유를 통해 FLASHLIGHT 가 작동하는 방식입니다:

1. "똑똑한 셰프" 대 "요리책"

  • 옛날 방식: 요리책 (코드) 이 있습니다. 표준 수프를 만들고 싶다면 요리책은 다지고, 삶고, 서빙하라고 말합니다. 이상한 수프를 만들고 싶다면, 새로운 레시피를 발명하고 요리책 페이지를 새로 써줄 셰프를 고용해야 합니다.
  • FlexAttention: 요리책에 "특제 수프 섹션"이 있습니다. 수프가 "특제 수프" 템플릿에 맞다면 빠릅니다. 그렇지 않다면 막힙니다.
  • FLASHLIGHT: FLASHLIGHT 는 요리를 지켜보는 초지능 주방 로봇과 같습니다. 표준 수프를 만들든 기묘하고 실험적인 수프를 만들든 상관없습니다. 로봇은 당신의 행동 (코드) 을 보고 많은 다짐과 삶기가 이루어지고 있음을 깨닫고 말합니다. "이봐, 냉장고로 왕복할 필요가 없도록 이 모든 단계를 하나의 초효율적인 동작으로 합칠 수 있어."

FLASHLIGHT 는 당신이 차를 만드는 법을 알거나 템플릿에 맞출 필요가 없도록 코드를 자동으로 재작성하여 수동으로 만든 레이싱카만큼 빠르게 만듭니다.

2. 마법을 부리는 방법 (세 가지 비법)

이 논문은 FLASHLIGHT 가 속도를 높이기 위해 사용하는 세 가지 주요 "비법"을 설명합니다:

  • 비법 A: "강등" (단계 융합)
    케이크를 굽는다고 상상해 보세요. 1 단계는 밀가루를 섞는 것입니다. 2 단계는 계란을 넣는 것입니다. 보통은 밀가루를 섞고, 그릇을 내려놓은 뒤, 새로운 그릇을 들어 계란을 넣습니다.
    FLASHLIGHT 는 말합니다. "왜 멈추지? 밀가루를 그릇에 둔 채로 바로 계란을 넣으면 돼." 이는 별도의 단계를 하나의 연속된 흐름으로 병합하여 데이터가 왕복할 필요가 없게 합니다.

  • 비법 B: "수학 마법" (대수적 변환)
    때로는 안전을 위해 계산을 두 번 해야 합니다 (온도를 확인하고, 다시 확인하여 확실히 하는 것처럼). 이는 느립니다.
    FLASHLIGHT 는 "동형 사상 (homomorphism)"이라는 수학적 비법을 사용하여 요리하는 동안 두 가지 확인을 동시에 수행할 수 있음을 깨닫습니다. 오븐을 보러 갔다가 다시 돌아와 저어주는 것이 아니라, 반죽을 저으면서 오븐 온도를 확인하는 것과 같습니다.

  • 비법 C: "타일링" (트럭 적재)
    이사한다고 상상해 보세요. 의자 하나씩 옮기면 영원히 걸립니다. 가구로 트럭 ( "타일") 을 가득 채우고 한 번에 운전하면 빠릅니다.
    FLASHLIGHT 는 트럭을 어떻게 적재할지 똑똑하게 판단합니다. 옮기는 물건에 따라 트럭의 완벽한 크기를 계산합니다. 가구가 작다면 공간 낭비를 막기 위해 구석에 끼워 넣습니다. 이는 컴퓨터의 "트럭" (메모리) 이 항상 가득 차고 효율적으로 움직이도록 보장합니다.

그들이 증명한 것

연구자들은 FLASHLIGHT 를 강력한 컴퓨터 칩 (NVIDIA H100 및 A100) 에서 테스트했습니다.

  1. 표준 작업의 경우: FlexAttention 이 이미 처리할 수 있었던 "표준" 어텐션 방법을 사용했을 때, FLASHLIGHT 는 동일하거나 더 빠르거나했습니다.
  2. 기묘한/새로운 작업의 경우: FlexAttention 이 처리할 수 없었던 어텐션 방법 (유명한 단백질 접힘 AI 인 AlphaFold 에서 사용된 것들) 을 시도했을 때, FLASHLIGHT 는 표준 최적화되지 않은 코드보다 5 배 더 빠르었습니다.
  3. 실제 세계 테스트: 그들은 실제 단백질 접힘 모델 (AlphaFold) 에서 이를 테스트했습니다. 이는 모델의 전체 실행 속도를 6% 에서 9% 까지 높였습니다.

결론

FLASHLIGHT는 AI 개발자들이 평소처럼 쉽고 일반적인 방식으로 코드를 작성할 수 있게 해주는 도구이지만, 해당 코드를 자동으로 고속의 초효율 엔진으로 변환합니다.

  • 이전: "쓰기는 쉽지만 느린 것"과 "빠르지만 쓰기 어려운 것" 중 하나를 선택해야 했습니다.
  • FLASHLIGHT 로는: "쓰기도 쉽고 빠르기도 한 것"을 얻습니다.

이는 새로운 아이디어마다 전문가들이 수동으로 속도 향상을 코딩할 필요성을 제거하여, 과학자들이 코드가 너무 느리게 실행될까 걱정하지 않고 새로운 유형의 AI 어텐션 모델을 실험할 수 있게 합니다. 현재는 오픈소스이므로 누구나 PyTorch 의 포크 (fork) 로 즉시 사용할 수 있습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →