집 >기술 주변기기 >일체 포함 >Bengio 등의 새로운 연구: Attention은 RNN으로 간주될 수 있습니다. 새 모델은 Transformer와 비슷하지만 메모리를 매우 절약합니다.
Bengio 등의 새로운 연구: Attention은 RNN으로 간주될 수 있습니다. 새 모델은 Transformer와 비슷하지만 메모리를 매우 절약합니다.
WBOY원래의
2024-06-09 16:50:32622검색
시퀀스 모델링의 발전은 강화 학습(예: 로봇 공학 및 자율 주행), 시계열 분류(예: 금융 사기 탐지 및 의료 진단)를 포함한 광범위한 응용 분야에서 중요한 역할을 하기 때문에 매우 큰 영향을 미쳤습니다. 지난 몇 년 동안 Transformer의 출현은 시퀀스 모델링에 큰 혁신을 가져왔습니다. 주로 Transformer가 GPU 병렬 처리를 활용할 수 있는 고성능 아키텍처를 제공한다는 사실 때문입니다. Transformer는 주로 메모리의 2차 확장 및 컴퓨팅 요구 사항으로 인해 추론 중에 높은 계산 오버헤드를 가지므로 리소스가 적은 환경(예: 모바일 및 임베디드 장치)에서의 적용이 제한됩니다. 추론 효율성을 높이기 위해 KV 캐싱과 같은 기술을 채택할 수 있지만 (1) 토큰 수에 따라 선형적으로 증가하는 메모리와 (2) 모든 이전 토큰을 모델. 이 문제는 긴 컨텍스트(예: 많은 수의 토큰)가 있는 환경에서 Transformer 추론에 훨씬 더 큰 영향을 미칩니다. 이 문제를 해결하기 위해 캐나다 왕립 은행 AI 연구소 Borealis AI와 몬트리올 대학의 연구원들은 "Attention as an RNN"이라는 논문에서 솔루션을 제공했습니다. Turing Award 수상자 Yoshua Bengio가 저자 칼럼에 등장했다는 점은 언급할 가치가 있습니다.
논문 주소: https://arxiv.org/pdf/2405.13956
논문 제목: RNN으로 주목
구체적으로는 연구 저자 먼저 Transformer의 계산 복잡도를 2차적으로 증가시키는 구성 요소인 Transformer의 Attention 메커니즘을 살펴보았습니다. 이 연구는 주의 메커니즘이 다대일 RNN 출력을 효율적으로 계산할 수 있는 능력을 갖춘 특별한 유형의 순환 신경망(RNN)으로 간주될 수 있음을 보여줍니다. 이 연구는 Attention의 RNN 공식을 활용하여 Transformer 및 Perceiver와 같은 인기 있는 Attention 기반 모델이 RNN 변형으로 간주될 수 있음을 보여줍니다. 그러나 LSTM 및 GRU와 같은 전통적인 RNN과 달리 Transformer 및 Perceiver와 같은 인기 있는 주목 모델은 RNN 변형으로 간주될 수 있습니다. 안타깝게도 새 토큰으로 효율적으로 업데이트할 수 없습니다. 이 연구에서는 이 문제를 해결하기 위해 다대다(many-to-many) attention을 효율적으로 계산할 수 있는 병렬 접두어 스캔 알고리즘 기반의 새로운 attention 공식을 도입합니다. 많은) 효율적인 업데이트를 달성하기 위한 RNN 출력. 이 새로운 어텐션 공식을 기반으로 이 연구에서는 계산적으로 효율적인 모듈인 Aaren([A] 어텐션 [a] s [re] 현재 신경 [n] 네트워크)을 제안합니다. 이는 Transformer처럼 병렬로 훈련될 수 있을 뿐만 아니라 이지만 RNN만큼 효율적으로 업데이트할 수도 있습니다. 실험 결과에 따르면 Aaren의 성능은 강화 학습, 이벤트 예측, 시계열 분류 및 시계열 예측 작업 등 4가지 일반적인 시퀀스 데이터 설정을 다루는 38개 데이터 세트에서 Transformer와 비슷하며 시간과 측면에서도 더 효율적입니다. 메모리. 방법 소개 위의 문제를 해결하기 위해 저자는 GPU 병렬성을 활용하고 동시에 효율적으로 업데이트할 수 있는 Attention 기반의 효율적인 모듈을 제안합니다. 먼저, 저자는 섹션 3.1에서 Attention이 다대일 RNN의 출력을 효율적으로 계산하는 특별한 능력을 가진 RNN의 한 유형으로 볼 수 있음을 보여줍니다(그림 1a). 저자는 RNN 형식의 Attention을 활용하여 Transformer(그림 1b) 및 Perceiver(그림 1c)와 같은 인기 있는 Attention 기반 모델이 RNN으로 간주될 수 있음을 추가로 설명합니다. 그러나 기존 RNN과 달리 이러한 모델은 새로운 토큰을 기반으로 효율적으로 자체 업데이트할 수 없으므로 데이터가 스트림 형태로 도착하는 순차적 문제의 가능성이 제한됩니다. 이 문제를 해결하기 위해 저자는 3.2절에서 병렬 접두사 스캔 알고리즘을 기반으로 다대다 RNN에서 attention을 계산하는 효율적인 방법을 소개합니다. 이를 바탕으로 저자는 섹션 3.3에서 Aaren을 소개합니다. 이 모듈은 병렬로 훈련할 수 있을 뿐만 아니라(Transformer와 마찬가지로) 추론 중에 새로운 토큰으로 효율적으로 업데이트할 수도 있습니다. 전통적인 RNN과 같습니다). Attention을 다대일 RNN으로 고려하세요 쿼리 벡터 q의 Attention은 N개의 컨텍스트 토큰 x_1:N의 키와 값을 전달하는 함수로 볼 수 있습니다. 단일 출력 o_N = Attention(q, k_1:N, v_1:N)에 매핑됩니다. s_i = 도트(q, k_i)인 경우 출력 o_N은 다음과 같이 표현될 수 있습니다. 여기서 분자는 이고 분모는 입니다. Attention을 RNN으로 생각하면 및 는 k = 1,...,...일 때 롤링 합산 방식으로 반복적으로 계산할 수 있습니다. 그러나 실제로 이 구현은 불안정하며 제한된 정밀도 표현과 잠재적으로 매우 작거나 매우 큰 지수(예: exp(s))로 인해 수치적 문제를 겪습니다. 이 문제를 완화하기 위해 저자는 누적 최대항 을 사용하여 및 을 계산하는 재귀 공식을 다시 작성합니다. 최종 결과가 동일하다는 점은 주목할 가치가 있습니다. m_k의 루프 계산은 다음과 같습니다. a_(k-1), c_(k-1) 및 m_(k-1)에서 a_k, c_k 및 m_k의 순환 계산을 캡슐화하여 저자는 주의 출력을 반복적으로 계산할 수 있는 RNN 장치를 소개합니다(참조 그림 2). Attention RNN 유닛은 (a_(k-1), c_(k-1), m_(k-1), q)를 입력으로 받아 (a_k, c_k, m_k, q)를 계산합니다. 쿼리 벡터 q는 RNN 단위로 전달됩니다. Attention RNN의 초기 숨겨진 상태는 (a_0, c_0, m_0, q) = (0, 0, 0, q)입니다. 주의를 계산하는 방법: 주의를 RNN으로 고려하면 주의를 계산하는 다양한 방법을 볼 수 있습니다. O(1) 메모리에서 토큰별로 루프 계산 토큰을 사용하거나(예: 순차 계산) 전통적인 방식으로 계산합니다. 병렬 컴퓨팅), 선형 O(N) 메모리가 필요합니다. Attention은 RNN으로 간주될 수 있으므로 Attention을 계산하는 전통적인 방법은 Attention 다대일 RNN의 출력을 계산하는 효율적인 방법으로도 간주할 수 있습니다. 즉, RNN의 출력은 여러 컨텍스트 토큰을 다음과 같이 사용합니다. 입력이지만 RNN이 끝나면 하나의 토큰만 출력됩니다(그림 1a 참조). 마지막으로, Attention은 완전 순차적 또는 완전 병렬이 아닌 청크 단위로 토큰을 처리하는 RNN으로 계산될 수도 있습니다. 이를 위해서는 O(b) 메모리가 필요합니다. 여기서 b는 청크의 크기입니다. 기존 Attention 모델을 RNN으로 처리합니다. Attention을 RNN으로 처리함으로써 기존 Attention 기반 모델을 RNN의 변형으로 볼 수도 있습니다. 예를 들어 Transformer의 self-attention은 RNN(그림 1b)이고 컨텍스트 토큰은 초기 숨겨진 상태입니다. Perceiver의 교차 주의는 초기 숨겨진 상태가 상황에 따른 잠재 변수인 RNN(그림 1c)입니다. 주의 메커니즘의 RNN 형식을 활용함으로써 이러한 기존 모델은 출력 저장소를 효율적으로 계산할 수 있습니다. 그러나 기존 주의 기반 모델(예: Transformers)을 RNN으로 간주하면 이러한 모델에는 기존 RNN(예: LSTM 및 GRU)에서 흔히 볼 수 있는 중요한 속성이 부족합니다. LSTM과 GRU는 O(1) 상수 메모리와 계산만으로 효율적으로 새 토큰으로 자신을 업데이트할 수 있다는 점에 주목할 가치가 있습니다. 반면 Transformer의 RNN 보기(그림 1b 참조)에서는 새 토큰이 추가됩니다. 초기 상태로 설정하고 새 토큰을 처리하기 위해 새 RNN이 추가됩니다. 이 새로운 RNN은 O(N) 선형 계산이 필요한 모든 이전 토큰을 처리합니다. Perceiver에서는 아키텍처로 인해 잠재 변수(그림 1c의 L_i)가 입력에 종속됩니다. 즉, 새 토큰을 받을 때 해당 값이 변경됩니다. RNN의 초기 숨겨진 상태(즉, 잠재 변수)가 변경됨에 따라 Perceiver는 RNN을 처음부터 다시 계산해야 하며 O(NL)의 선형 계산량이 필요합니다. 여기서 N은 토큰 수이고 L은 토큰 수입니다. 잠재 변수. 주의를 다대다 RNN으로 고려하세요 이러한 제한 사항에 대응하여 저자는 효율적인 업데이트를 수행하기 위해 RNN 공식의 기능을 활용하는 관심 기반 모델을 개발할 것을 제안합니다. . 이를 위해 저자는 Attention을 계산하는 효율적인 병렬화 방법을 다대다 RNN, 즉 병렬 컴퓨팅 방법으로 먼저 소개했습니다. 이를 위해 저자는 상관 연산자 ⊕를 통해 N개의 연속 데이터 포인트에서 N개의 접두어를 계산하는 병렬 컴퓨팅 방법인 병렬 접두어 스캔 알고리즘(알고리즘 1 참조)을 활용합니다.이 알고리즘은 Review을 효율적으로 계산할 수 있는데, 여기서 , 를 효율적으로 계산하기 위해 병렬 스캔 알고리즘을 통해 및 를 계산한 다음 a_k 및 c_k와 결합하여 계산할 수 있습니다. . ㅋㅋㅋ . 병렬 스캔 알고리즘에 대한 입력은 입니다. 알고리즘은 연산자 ⊕를 재귀적으로 적용하고 다음과 같이 작동합니다. , 여기서 , . 연산자의 재귀 적용이 완료된 후 알고리즘은 을 출력합니다. 라고도 합니다. 출력 튜플의 마지막 두 값을 결합하면 가 검색되어 다대다 RNN으로서 주의를 계산하는 효율적인 병렬 방법이 됩니다(그림 3). Aaren: [A] attention [a] s a [re] 현재 신경 [n] etwork Aaren의 인터페이스는 Transformer와 동일합니다. 즉 N 입력입니다. N개의 출력에 매핑되고, i번째 출력은 1번째부터 i번째 입력까지의 집합입니다. 또한 Aaren은 자연스럽게 스택 가능하며 각 시퀀스 토큰에 대해 별도의 손실 조건을 계산할 수 있습니다. 그러나 Causal self-attention을 사용하는 Transformers와 달리 Aaren은 위의 attention 계산 방법을 다대다 RNN으로 사용하여 더 효율적입니다. Aaren의 형태는 다음과 같습니다. Transformer와 달리 Transformer에서는 쿼리가 어텐션에 입력되는 토큰 중 하나인 반면, Aaren에서는 쿼리 토큰 q가 역전파를 통해 전달됩니다. 훈련 과정에서 배웠습니다. 아래 그림은 스택형 Aaren 모델의 예를 보여줍니다. 모델의 입력 컨텍스트 토큰은 x_1:3이고 출력은 y_1:3입니다. Aaren은 RNN 형태의 Attention 메커니즘을 활용하므로 Aarens를 쌓는 것도 RNN을 쌓는 것과 동일하다는 점은 주목할 가치가 있습니다. 따라서 Aarens는 새로운 토큰으로 효율적으로 업데이트할 수도 있습니다. 즉, y_k의 반복 계산에는 h_k-1 및 x_k에만 의존하기 때문에 지속적인 계산만 필요합니다. Transformer 기반 모델은 선형 메모리(KV 캐시 사용 시)가 필요하며 중간 Transformer 계층의 토큰을 포함하여 모든 이전 토큰을 저장해야 하지만 Aaren 기반 모델은 상수 메모리만 필요합니다. 그리고 이전 토큰을 모두 저장할 필요가 없으므로 계산 효율성 측면에서 Aarens가 Transformer보다 훨씬 뛰어납니다. Experiments 실험 부분의 목표는 Aaren과 Transformer를 성능과 필요한 리소스(시간 및 메모리) 측면에서 비교하는 것입니다. 포괄적인 비교를 위해 저자는 강화 학습, 이벤트 예측, 시계열 예측 및 시계열 분류의 네 가지 문제에 대한 평가를 수행했습니다. 강화 학습 저자는 먼저 강화 학습에서 Aaren과 Transformer의 성능을 비교했습니다. 강화 학습은 로봇 공학, 추천 엔진, 교통 제어와 같은 대화형 환경에서 널리 사용됩니다. 표 1의 결과는 Aaren이 12개 데이터 세트와 4개 환경 모두에서 Transformer와 비슷한 성능을 발휘한다는 것을 보여줍니다. 그러나 Transformer와 달리 Aaren은 RNN이기도 하므로 지속적인 계산에서 새로운 환경 상호 작용을 효율적으로 처리할 수 있으므로 강화 학습에 더 적합합니다. 이벤트 예측 다음으로 저자는 이벤트 예측에서 Aaren과 Transformer의 성능을 비교했습니다. 사건 예측은 금융(예: 거래), 의료(예: 환자 관찰), 전자상거래(예: 구매) 등 다양한 실제 환경에서 널리 사용됩니다. 표 2의 결과는 Aaren이 모든 데이터세트에서 Transformer와 동등한 성능을 발휘한다는 것을 보여줍니다.새로운 입력을 효율적으로 처리하는 Aaren의 능력은 이벤트가 불규칙한 스트림에서 발생하는 이벤트 예측 환경에서 특히 유용합니다. 시계열 예측 그런 다음 저자는 시계열 예측에서 Aaren과 Transformer의 성능을 비교했습니다. 시계열 예측 모델은 기후(예: 날씨), 에너지(예: 공급 및 수요), 경제(예: 주가)와 관련된 영역에서 일반적으로 사용됩니다. 표 3의 결과는 Aaren이 모든 데이터 세트에서 Transformer와 비슷한 성능을 발휘한다는 것을 보여줍니다. 하지만 Transformer와 달리 Aaren은 시계열 데이터를 효율적으로 처리할 수 있어 시계열 관련 분야에 더 적합합니다. 시계열 분류 다음으로 저자는 시계열 분류에서 Aaren과 Transformer의 성능을 비교했습니다. 시계열 분류는 패턴 인식(예: 심전도), 이상 감지(예: 은행 사기) 또는 결함 예측(예: 전력망 변동)과 같은 여러 중요한 응용 분야에서 일반적입니다. 표 4에서 볼 수 있듯이 Aaren은 모든 데이터 세트에서 Transformer와 동등한 성능을 발휘합니다. Analytics 마지막으로 저자는 Aaren과 Transformer에 필요한 리소스를 비교합니다. 메모리 복잡성: 그림 5(왼쪽)에서 저자는 추론 시 Aaren과 Transformer(KV 캐시 사용)의 메모리 사용량을 비교합니다. KV 캐시 기술을 사용하면 Transformer의 메모리 사용량이 선형적으로 증가하는 것을 볼 수 있습니다. 이에 비해 Aaren은 토큰 수가 어떻게 증가하든 관계없이 일정한 양의 메모리만 사용하므로 훨씬 더 효율적입니다. 시간 복잡성: 그림 5(오른쪽)에서 저자는 Aaren과 Transformer(KV 캐시 사용)가 일련의 토큰을 순차적으로 처리하는 데 필요한 누적 시간을 비교합니다. Transformer의 경우 누적 계산량은 토큰 수의 제곱, 즉 O(1 + 2 + ... + N) = O(N^2)입니다. 이와 대조적으로 Aaren의 누적 계산 노력은 선형적입니다. 그림을 보면 모델이 요구하는 누적 시간이 비슷한 결과를 보이는 것을 알 수 있습니다. 구체적으로, Transformer에 필요한 누적 시간은 2차적으로 증가하는 반면 Aaren에 필요한 누적 시간은 선형적으로 증가합니다. 매개변수 수: 초기 숨겨진 상태 q를 학습해야 하기 때문에 Aaren 모듈에는 Transformer 모듈보다 약간 더 많은 매개변수가 필요합니다. 그러나 q는 단순한 벡터이므로 차이가 크지 않습니다. 유사한 모델에 대한 실증적 측정을 통해 저자는 Transformer가 3, 152, 384개의 매개변수를 사용한다는 사실을 발견했습니다. 이에 비해 Aaren은 3,152,896개의 매개변수를 사용하며 매개변수 증가는 0.016%에 불과합니다. 이는 메모리 및 시간 복잡성의 상당한 차이에 대해 지불할 수 있는 무시할 만한 가격입니다.
위 내용은 Bengio 등의 새로운 연구: Attention은 RNN으로 간주될 수 있습니다. 새 모델은 Transformer와 비슷하지만 메모리를 매우 절약합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!