Transformer는 자연어 처리, 컴퓨터 비전, 시계열 예측 등의 분야에서 다양한 학습 작업에 성공했습니다. 이러한 성공에도 불구하고 이러한 모델은 여전히 심각한 확장성 제한에 직면해 있습니다. 그 이유는 Attention 레이어의 정확한 계산으로 인해 2차(시퀀스 길이 기준) 실행 시간과 메모리 복잡성이 발생하기 때문입니다. 이로 인해 Transformer 모델을 더 긴 컨텍스트 길이로 확장하는 데 근본적인 문제가 발생합니다
업계에서는 2차 시간 주의 계층 문제를 해결하기 위해 다양한 방법을 모색해 왔으며 주목할만한 방향 중 하나는 힘 계층의 근사 주의 중간 행렬입니다. 이를 달성하는 방법에는 희소 행렬, 낮은 순위 행렬 또는 이 둘의 조합을 통한 근사가 포함됩니다.
그러나 이러한 방법은 주의 출력 매트릭스의 근사치에 대한 엔드투엔드 보장을 제공하지 않습니다. 이러한 방법은 Attention의 개별 구성 요소를 더 빠르게 근사화하는 것을 목표로 하지만 전체 내적 Attention의 엔드투엔드 근사치를 제공하는 방법은 없습니다. 또한 이러한 방법은 현대 Transformer 아키텍처의 중요한 부분인 인과 마스크의 사용을 지원하지 않습니다. 최근의 이론적인 경계는 일반적으로 2차 시간 이하에서 주의 행렬의 항별 근사를 수행하는 것이 불가능하다는 것을 나타냅니다.
그러나 KDEFormer라는 최근 연구에 따르면 주의 행렬 항이 다음 가정 하에서 제한될 때, 이는 2차 이하 시간에 증명 가능한 근사치를 제공할 수 있습니다. 이론적으로 KDEFormer의 런타임은 대략 입니다. 커널 밀도 추정(KDE)을 사용하여 열 표준을 근사화하여 어텐션 매트릭스의 열을 샘플링할 확률을 계산합니다. 그러나 현재 KDE 알고리즘은 실질적인 효율성이 부족하며 이론상으로도 KDEFormer의 런타임과 이론적으로 실현 가능한 O(n) 시간 알고리즘 사이에는 차이가 있습니다. 기사에서 저자는 동일한 제한된 항목 가정 하에서 거의 선형적인 시간 알고리즘이 가능하다는 것을 증명했습니다. 그러나 그들의 알고리즘에는 소프트맥스를 근사화하기 위해 다항식 방법을 사용하는 것도 포함되는데 이는 실용적이지 않을 수 있습니다.
이 기사에서 Yale University, Google Research 및 기타 기관의 연구자들은 실용적이고 효율적이며 선형에 가까운 최상의 시간 보장을 달성할 수 있는 두 가지 장점을 모두 갖춘 알고리즘을 제공합니다. 또한 이 방법은 이전 작업에서는 불가능했던 인과 마스킹을 지원합니다.
논문을 보려면 다음 링크를 클릭하세요: https://arxiv.org/abs/2310.05869
이 기사에서는 "HyperAttention"이라는 대략적인 주의 메커니즘을 제안합니다. 대규모 언어 모델에서 긴 컨텍스트를 사용하여 발생합니다. 최근 연구에 따르면 최악의 경우 Attention 매트릭스의 항목이 제한되어 있거나 매트릭스의 안정 순위가 낮지 않는 한 2차 시간이 필요합니다.
다음과 같이 다시 작성되었습니다. 연구원은 측정하기 위해 두 가지 매개변수를 도입했습니다. (1) 정규화된 attention 행렬의 최대 열 놈, (2) 큰 항목을 제거한 후 정규화되지 않은 attention 행렬의 행 놈 비율. 그들은 문제의 난이도를 반영하기 위해 이러한 세분화된 매개변수를 사용합니다. 위의 매개변수가 작으면 행렬에 무한한 항목이 있거나 큰 안정 순위가 있어도 선형 시간 샘플링 알고리즘을 구현할 수 있습니다.
HyperAttention은 모듈식 설계의 특성을 가지며 다른 빠른 기본 구현과 쉽게 통합될 수 있습니다. , 특히 FlashAttention입니다. 경험적으로 Super Attention은 LSH 알고리즘을 사용하여 대규모 항목을 식별할 때 기존 방법보다 성능이 뛰어나며 FlashAttention과 같은 최첨단 솔루션에 비해 속도가 크게 향상됩니다. 연구원들은 다양한 길이의 다양한 컨텍스트 데이터세트에서 HyperAttention의 성능을 검증했습니다.
예를 들어, HyperAttention은 32k 컨텍스트 길이에서 ChatGLM2의 추론 시간을 50% 더 빠르게 만들었고 당혹성은 5.6에서 6.3으로 증가했습니다. HyperAttention은 더 큰 컨텍스트 길이(예: 131k)와 인과 마스크를 사용하는 단일 Attention 레이어에서 5배 더 빠릅니다.
Dot 제품 주의에는 Q(쿼리), K(키), V(값)의 세 가지 입력 행렬 처리가 포함되며 모두 크기는 nxd입니다. 여기서 n은 입력 시퀀스의 토큰 수입니다. , d는 기본 표현의 차원입니다. 이 프로세스의 결과는 다음과 같습니다.
여기서 행렬 A := exp(QK^T)는 QK^T의 요소 인덱스로 정의됩니다. D는 A 행의 합에서 파생된 n×n 대각 행렬입니다. 여기서 입니다. 이 경우 행렬 A를 "attention 행렬"이라고 하고 (D^-1) A를 "softmax 행렬"이라고 합니다. 주의 매트릭스 A를 직접 계산하려면 Θ(n²d) 작업이 필요하고 이를 저장하면 Θ(n²) 메모리가 소비된다는 점은 주목할 가치가 있습니다. 따라서 Att를 직접 계산하려면 Ω(n²d) 런타임과 Ω(n²) 메모리가 필요합니다.
연구원의 목표는 스펙트럼 특성을 유지하면서 출력 행렬 Att를 효율적으로 근사화하는 것입니다. 그들의 전략은 대각선 스케일링 행렬 D에 대해 선형에 가까운 시간 효율적인 추정기를 설계하는 것으로 구성됩니다. 또한 서브샘플링을 통해 소프트맥스 행렬 D^-1A의 행렬 곱을 빠르게 근사화합니다. 더 구체적으로, 그들은 유한한 수의 행 과 대각 행렬 이 있는 샘플링 행렬 을 찾는 것을 목표로 하며 오류의 연산자 사양에 대한 다음 제약 조건이 충족됩니다.
연구원들은 V의 행 사양을 기반으로 샘플링 행렬 S를 정의함으로써 식 (1)의 주의 근사 문제의 행렬 곱셈 부분을 효율적으로 풀 수 있음을 보여주었습니다. 더 어려운 문제는 대각 행렬 D의 신뢰할 수 있는 근사치를 얻는 방법입니다. 최근 결과에서 Zandieh는 빠른 KDE 솔버를 효과적으로 활용하여 D의 고품질 근사치를 얻었습니다. 우리는 KDEformer 프로그램을 단순화하고 커널 밀도 기반 중요도 샘플링 없이도 균일한 샘플링이 필요한 스펙트럼 보장을 달성하기에 충분하다는 것을 입증했습니다. 이러한 상당한 단순화를 통해 실용적이고 입증 가능한 선형 시간 알고리즘을 개발할 수 있었습니다.
이전 연구와 달리 우리의 방법에는 제한된 항목이나 제한된 안정 순위가 필요하지 않습니다. 또한, Attention 매트릭스의 항목이나 안정적인 순위가 크더라도 시간 복잡도를 분석하기 위해 도입된 세분화된 매개변수는 여전히 작을 수 있습니다.
결과적으로 HyperAttention은 시퀀스 길이 n= 131k에서 순방향 및 역방향 전파가 50배 이상 빨라져 훨씬 더 빨라졌습니다. 이 방법은 원인 마스크를 처리할 때 여전히 상당한 5배의 속도 향상을 달성합니다. 또한 이 방법을 사전 훈련된 LLM(예: chatqlm2-6b-32k)에 적용하고 긴 컨텍스트 벤치마크 데이터 세트 LongBench에서 평가하면 미세 조정 없이도 원래 모델에 가까운 성능 수준을 유지합니다. . 연구원들은 또한 특정 작업을 평가한 결과 요약 및 코드 완성 작업이 문제 해결 작업보다 대략적인 주의 계층에 더 큰 영향을 미친다는 사실을 발견했습니다.
Att를 근사할 때 스펙트럼 보장을 얻기 위해 이 논문의 첫 번째 단계는 행렬 D의 대각선 항에 대해 1 ± ε 근사를 수행하는 것입니다. 이어서, A와 V 사이의 행렬 곱은 V의 ℓ²-norms 정사각형 행에 따라 샘플링(D^-1)을 통해 근사화됩니다.
D를 근사화하는 과정은 두 단계로 구성됩니다. 먼저, 정의 1에 표시된 것처럼 Hamming의 정렬 LSH에 기반을 둔 알고리즘을 사용하여 주의 매트릭스에서 지배적인 항목을 식별합니다. 두 번째 단계는 K의 작은 부분 집합을 무작위로 선택하는 것입니다. 이 문서에서는 행렬 A와 D에 대한 약간의 가정 하에서 이 간단한 방법으로 추정된 행렬의 스펙트럼 경계를 설정할 수 있음을 보여줍니다. 연구원의 목표는 다음을 만족할 만큼 정확한 대략적인 행렬 D를 찾는 것입니다.
이 기사에서는 소프트맥스 행렬의 열 놈이 상대적으로 균일한 분포를 보인다고 가정합니다. 보다 정확하게는 연구자는 모든 i ∈ [n] t에 대해 과 같은 이 존재한다고 가정합니다.
알고리즘의 첫 번째 단계는 Hamming 정렬 LSH(sortLSH)를 사용하여 키와 쿼리를 균일한 크기의 버킷으로 해싱하여 주의 행렬 A에서 큰 항목을 식별하는 것입니다. 알고리즘 1은 이 프로세스를 자세히 설명하고 그림 1은 이를 시각적으로 보여줍니다.
알고리즘 1의 기능은 주의 매트릭스의 주요 항목을 분리하는 데 사용되는 희소 마스크를 반환하는 것입니다. 이 마스크를 얻은 후 연구원은 방정식 (2)의 스펙트럼 보장을 충족하는 알고리즘 2의 행렬 D의 근사치를 계산할 수 있습니다. 알고리즘은 마스크에 해당하는 주의 값을 주의 매트릭스에서 무작위로 선택된 열 집합과 결합하여 구현됩니다. 본 논문의 알고리즘은 주의 매트릭스에서 주요 항목의 위치를 지정하기 위해 미리 정의된 마스크를 사용함으로써 광범위하게 적용될 수 있으며 효율적으로 사용될 수 있습니다. 알고리즘의 주요 보증은 정리 1에 나와 있습니다. 근사 대각선
과 근사
과 값 행렬 V 사이의 행렬 곱을 통합하는 서브루틴입니다. 따라서 연구진은 대략 선형 시간 내에 스펙트럼 보장을 통해 식 (1)의 주의 메커니즘을 근사화할 수 있는 효율적인 알고리즘인 HyperAttention을 도입했습니다. 알고리즘 3은 어텐션 매트릭스에서 주요 항목의 위치를 정의하는 마스크 MH를 입력으로 사용합니다. 이 마스크는 sortLSH 알고리즘(알고리즘 1)을 사용하여 생성되거나 [7]의 접근 방식과 유사하게 미리 정의된 마스크일 수 있습니다. 우리는 대형 진입 마스크 M^H가 설계상 희소하고 0이 아닌 항목의 수가 제한되어 있다고 가정합니다
.
그림 2에 표시된 것처럼 이 문서의 방법은 중요한 관찰을 기반으로 합니다. 마스크된 주의 M^C⊙A는 3개의 0이 아닌 행렬로 분해될 수 있으며, 각 행렬은 원래 주의 행렬 크기의 절반입니다. 블록 A_21은 대각선 아래 완전히 가려져 있지 않습니다. 따라서 알고리즘 2를 사용하여 행 합계를 근사화할 수 있습니다. 그림 2에 표시된 두 개의 대각선 블록 및 은 인과적 관심으로 원래 크기의 절반입니다. 이러한 인과 관계를 다루기 위해 연구자들은 재귀적 접근 방식을 사용하여 이를 더 작은 덩어리로 나누고 프로세스를 반복했습니다. 이 프로세스의 의사코드는 알고리즘 4에 나와 있습니다.
실험 및 결과연구원들은 기존의 대규모 언어 모델을 확장하여 장거리 시퀀스를 처리한 후 알고리즘을 벤치마킹했습니다. 모든 실험은 단일 40GB A100 GPU에서 실행되었으며 정확한 주의 계산을 위해 FlashAttention 2를 사용했습니다. 원래 의미를 변경하지 않으려면 내용을 중국어로 다시 작성해야 하며 원래 문장이 나타날 필요는 없습니다 연구원들은 사전 훈련된 두 개의 LLM에서 HyperAttention을 먼저 평가했으며, 실제 응용 분야에서 널리 사용되는 모델을 선택했습니다: chatglm2-6b-32k 및 phi-1.5. 작동 중에는 최종 ℓ Attention 레이어를 HyperAttention으로 대체하여 패치합니다. 여기서 ℓ 수는 0부터 각 LLM의 모든 Attention 레이어의 총 수까지 다양할 수 있습니다. 두 모델 모두 Attention에는 인과 마스크가 필요하며 알고리즘 4는 입력 시퀀스 길이 n이 4,096보다 작을 때까지 재귀적으로 적용됩니다. 모든 시퀀스 길이에 대해 버킷 크기 b와 샘플링된 열 수 m을 256으로 설정했습니다. 그들은 당혹감과 가속 측면에서 그러한 원숭이 패치 모델의 성능을 평가했습니다. 동시에 연구원들은 단일/다중 문서 질문 답변, 요약, 소규모 샘플 학습, 합성 작업 및 코드 완성이라는 6가지 작업이 포함된 긴 컨텍스트 벤치마크 데이터 세트 모음인 LongBench를 사용했습니다. 그들은 코딩 시퀀스 길이가 32,768보다 큰 데이터 세트의 하위 집합을 선택하고 길이가 32,768을 초과하면 정리했습니다. 그런 다음 각 모델의 복잡성(다음 토큰 예측 손실)을 계산합니다. 긴 시퀀스의 확장성을 강조하기 위해 HyperAttention 또는 FlashAttention에 의해 수행되는 모든 Attention 레이어의 총 속도 향상도 계산했습니다. 위 그림 3에 표시된 결과는 chatglm2-6b-32k가 HyperAttention 원숭이 패치를 통과했음에도 불구하고 여전히 합리적인 수준의 혼란을 보여줍니다. 예를 들어, 레이어 20을 교체한 후 복잡성은 대략 1만큼 증가하고 레이어 24에 도달할 때까지 천천히 계속 증가합니다. Attention 레이어의 런타임이 약 50% 향상되었습니다. 모든 레이어를 교체하면 Perplexity가 12로 올라가고 2.3배 더 빠르게 실행됩니다. phi-1.5 모델도 비슷한 상황을 보여주지만 HyperAttention 수가 증가할수록 당혹감은 선형적으로 증가할 것입니다 또한 연구원들은 LongBench 데이터 세트에 대해 원숭이 패치 chatglm2-6b-32k를 수행했습니다. 수행평가를 실시하여 단일/다중 문서 질의응답, 요약, 소표본 학습, 합성 과제, 코드 완성 등 각 과제에 대한 평가점수를 산출하였다. 평가 결과는 아래 표 1에 나와 있습니다 HyperAttention을 교체하면 일반적으로 성능 저하가 발생하지만 그 영향은 현재 수행 중인 작업에 따라 다르다는 것을 관찰했습니다. 예를 들어 요약 및 코드 완성은 다른 작업에 비해 가장 강력합니다. 놀라운 점은 Attention 레이어의 절반(즉, 14 레이어)을 패치했을 때 대부분의 작업에 대한 성능 저하가 13%를 넘지 않는다는 것을 연구원들이 확인했다는 것입니다. 특히 요약 작업의 경우 성능이 거의 변하지 않았으며 이는 이 작업이 주의 메커니즘의 부분 수정에 가장 강력하다는 것을 나타냅니다. n=32k일 때 Attention 레이어의 계산 속도는 1.5배 증가합니다. 단일 self-attention 레이어 연구원들은 시퀀스 길이가 4,096에서 131,072까지 다양할 때 HyperAttention의 가속화를 추가로 조사했습니다. 그들은 FlashAttention을 사용하여 계산하거나 HyperAttention으로 가속화할 때 정방향 및 정방향+역방향 작업의 벽시계 시간을 측정했습니다. 인과적 마스킹 유무에 따른 벽시계 시간도 측정되었습니다. 모든 입력 Q, K, V는 길이가 동일하고 차원은 d = 64로 고정되며 주의 헤드 수는 12입니다. 그들은 HyperAttention에서 이전과 동일한 매개변수를 선택합니다. 그림 4에서 볼 수 있듯이 인과 마스크를 적용하지 않은 경우 HyperAttention의 속도는 54배 증가하고, 인과 마스크를 적용한 경우에는 5.4배 속도가 증가합니다. 인과 마스킹과 비마스킹의 시간적 혼란은 동일하지만 인과 마스킹의 실제 알고리즘(알고리즘 1)은 Q, K, V 분할, 주의 출력 병합 등의 추가 작업이 필요하므로 실제 런타임이 증가합니다. 시퀀스 길이 n이 증가하면 가속도도 높아집니다 연구원들은 이러한 결과가 추론에만 적용 가능한 것이 아니라 더 긴 시퀀스에 적응하기 위해 LLM을 훈련하거나 미세 조정하는 데에도 사용할 수 있다고 믿습니다. 자기 관심의 확장 새로운 가능성
위 내용은 새로운 대략적인 주의 메커니즘 HyperAttention: 긴 컨텍스트에 적합하며 LLM 추론 속도가 50% 향상됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!