1P by GN⁺ | ★ favorite | 댓글 1개
  • Transformer는 2017년 이후 딥러닝을 재편했지만, 긴 시퀀스에서 자기어텐션 비용이 커지며 병렬 학습 가능한 순환 모델이 다시 주목받고 있음
  • Transformer 이전 20년간 시퀀스 모델링에 널리 쓰였던 LSTMGRU는 게이트의 이전 상태 의존성을 줄이면 병렬 학습 가능성이 열림
  • 단순화된 minLSTMminGRU는 기존 LSTM·GRU보다 파라미터가 적고, 학습 중 완전히 병렬화되며, 여러 작업에서 Transformer 포함 최신 모델과 경쟁적인 성능을 보임
  • Transformer 효율화는 희소성, 저랭크 근사, 타일링으로 이어졌고, 최근에는 상태공간 모델, 선형화 어텐션, 선형 RNN 같은 대안적 순환 모델도 강한 성능을 보이고 있음
  • 부록의 몇 줄짜리 plain PyTorch 구현 덕분에 minGRU와 minLSTM은 초보자, 실무자, 연구자가 실험하기 쉬운 경량 모델로 볼 수 있음

Transformer 이후 다시 주목받는 순환 모델

  • RNN은 1990년대부터 기계 번역, 텍스트 생성 같은 시퀀스 모델링 작업에서 널리 쓰였음
    • 대표 모델은 LSTM(1997)과 GRU(2014)
    • 본질적으로 순차적인 구조라 병렬화가 제한되고, 긴 시퀀스 학습에서는 계산 효율이 낮아지기 쉬움
  • Transformer는 2017년 자기어텐션을 통해 병렬 학습 메커니즘을 도입하며 시퀀스 모델링에서 빠르게 성공함
    • 이후 대형 언어 모델뿐 아니라 컴퓨터 비전, 강화학습, 생물정보학으로 확장됨
    • 자기어텐션은 토큰 간 상호작용을 모델링하지만, 계산 복잡도가 시퀀스 길이에 대해 제곱으로 증가
    • 긴 시퀀스나 자원이 제한된 환경에서는 비용이 크게 늘어날 수 있음
  • Transformer의 효율을 높이기 위한 연구는 여러 갈래로 진행되어 왔음
    • 희소성
    • 저랭크 근사
    • 타일링
  • 최근에는 더 효율적으로 확장되는 병렬화 가능한 순환 모델이 다시 부상함
    • 상태공간 모델
    • 선형화 어텐션
    • 선형 RNN
    • 이런 최신 순환 모델은 입력 의존 전이를 활용하며 Transformer와 비슷한 강한 성능을 보임
    • 대형 언어 모델뿐 아니라 이미지와 그래프 기반 데이터에도 적용됨

minLSTM과 minGRU의 핵심 아이디어

  • 이 연구는 Transformer 이전에 오랫동안 쓰였던 LSTMGRU를 역사적 관점에서 다시 검토함
  • 두 모델은 초기의 입력 의존 순환 모델 사례로 볼 수 있음
  • 게이트가 이전 상태에 의존하는 부분을 제거하면 LSTM과 GRU도 병렬 학습이 가능해짐
  • 추가 단순화를 통해 minLSTMminGRU라는 최소 버전이 도출됨
    • 기존 LSTM·GRU보다 파라미터 수가 적음
    • 학습 중 완전히 병렬화 가능함
    • 단순한 구조에도 여러 작업에서 경쟁적인 성능을 보임
    • 비교 대상에는 Transformer를 포함한 최근 모델이 들어감
  • 이 결과는 모델 구조와 알고리듬 복잡도를 계속 키우는 흐름에 의문을 던짐
  • 부록에는 minGRU와 minLSTM의 plain PyTorch 구현이 몇 줄 코드로 포함됨
    • 모델이 가볍고 적응하기 쉬움
    • 초보자, 실무자, 연구자가 활용하기 쉬운 형태임

댓글과 토론

Hacker News 의견들
  • 순환형 구조를 IIR 필터, 피드포워드 전용 구조를 FIR 필터로 보면 디지털 신호 처리와 비슷한 점이 많아 보임
    IIR 필터는 같은 응답을 내는 FIR 필터보다 훨씬 적은 요소가 필요한 경우가 많고, FIR 필터는 구현·제어·측정이 쉬운 편임
    고정소수점 산술 하드웨어가 GPU에서 잘 도는 머신러닝 구조와 비슷하다는 느낌이고, AI가 정말 무서운 지수적 단계로 가려면 근본적으로 순환적인 구조가 필요해 보임
    LSTM은 이 비유에서 동적 계수를 가진 FIR 같은 중간 해킹에 가깝고, 장기적으로는 뉴로모픽 접근이 효율 면에서 가장 좋아 보임

    • 신호 처리 관점에서 보면, z 변환된 필터 전달 함수의 극점 위치에 따라 IIR 출력은 안정 영역이 좁아서 보통 신중하게 설계해야 함
      그렇지 않으면 IIR 필터는 0으로 지수 감쇠하거나 무한대로 지수 증가함
      LSTM 같은 RNN 셀은 감쇠를 막고 무언가를 “기억”하기 위해 비선형 게이트를 넣은 감쇠 필터에 가까움
      FIR 필터는 설계가 훨씬 단순하고 이런 해킹 없이도 기억을 담을 수 있음
    • 뉴로모픽 접근이 무엇이고 AI/AGI에 어떻게 기여하는지 쉽게 설명해 주면 좋겠음
      문외한으로서 첫인상은, 단순히 뉴런을 시뮬레이션하는 게 아니라 여러 “에이전트”나 하위 시스템이 다양한 방식으로 상호작용하는 《The Society of Mind》식 아이디어와 닮아 보임
    • 근본적으로 순환적인 구조 없이는 AI가 무서운 지수적 단계에 못 간다는 생각을 한동안 해왔지만, 이제는 거대한 문맥 창만으로도 충분할지 궁금해짐
      순환성은 더 뉴로모픽하고 장기적으로 중요할 수는 있어도, 초지능에는 필수는 아닐지도 모름
      다만 관련 지식이 얕은 문외한이라 완전히 틀렸을 수도 있음
    • 현재 GPU 같은 구조에서 IIR 필터를 대규모로 구현해도 좋은 성능과 확장성을 낼 수 있는지 의문임
  • 전체 분야가 장기 지평 문제에는 부족해 보임
    지금 널리 쓰이는 해법은 규모 확장이지만, 작은 포유류 뇌가 처리하는 지평 규모에도 전혀 못 미침
    모델은 수조 개 매개변수를 가질 수 있지만, 장기 과제와 효율성에서는 쥐의 뇌가 여전히 이길 것 같음
    작은 계산 예산 안에서 거의 최적 경로를 찾고 계속 학습하는 작고 단순하며 우아한 탐색 알고리즘이 있는 셈임
    언젠가 미래 엔지니어들이 이런 문제를 노트북의 100줄짜리 Jupyter 노트북으로 풀게 될 것 같아 부럽기도 함
    장기 지평 문제에 맞는 방법이나 알고리즘을 찾는다면, 20억 매개변수 모델도 짧고 극단적인 추론 문제를 제외한 모든 영역에서 현재 모델을 앞설 수 있을지도 모름
    가능한 해법으로는 완벽한 가중치보다 모델의 차원성을 시간에 따라 확장하는 쪽을 생각해 봤음
    차원성이 높을수록 이론적 저장 용량이 커지고, 한 층은 여러 이상점의 중첩처럼 작동하며 다른 층은 그것들을 쓰는 법을 아는 2층 모델과 비슷할 수 있음
    손실 지형에 특정 작업을 위한 여러 최솟값이 있다고 생각하면, 필요할 때 모델을 재구성해 그 최솟값들 사이를 이동하는 방법으로 거의 무한한 국소 최솟값, 즉 더 높은 차원의 기억을 가진 단일 모델을 만들 수도 있음
    인간 뇌가 하루에도 수천 개의 연결을 만들고 끊는다면, 이런 연결들이 하루 동안 필요한 서로 다른 최솟값 사이로 내부 손실 지형을 조종하는 것일 수도 있음

    • 맞음, 이 분야에는 성배인 장기 지평 문제가 부족함
      하지만 스팸 메일 분류에 쥐의 뇌가 필요한 건 아님
      20억 개 이상 매개변수의 대형 모델은 여전히 너무 무거워 실용적으로 돌리기 어려운 특수한 용도에 가깝고, 제한된 하드웨어와 데이터셋에서 유용한 문제만 해결하는 영리하고 작은 모델이 들어갈 여지는 많음
      필요에 따라 크기가 바뀌는 모델도 실험돼 왔지만, 제한된 전력 예산에서는 너무 비효율적이거나 최적화가 어려웠음
      그래도 계속 더 큰 규모로 확장하려면 결국 그런 모델이 필요할 가능성이 높아 보임
      진짜 병목은 훈련 자체의 돌파구일지도 모름
      역전파 손실은 현재 모델조차 완벽히 최적화하기엔 너무 단순하고, 미래의 더 큰 모델에는 더더욱 부족함
      더 나은 대안이 존재한다는 보장도 없으니, 현재 머신러닝 접근에는 고정된 한계가 있을 수도 있음
  • 여러 곳에서 논의가 흩어지는 건 장점이자 단점임
    Twitter/X에서 본 François Chollet의 글이 흥미로웠음: https://x.com/fchollet/status/1841902521717293273
    “RNN을 되살리는 흥미로운 작업. https://arxiv.org/abs/2410.01201 — 일반적으로 서로 다른 방향에서 나온 최근 구조들이 대략 Transformer와 맞먹는다는 사실은, 곡선 맞춤 패러다임, 즉 딥러닝에서는 구조가 근본적으로 중요하지 않다는 증거다
    곡선 맞춤은 데이터셋을 곡선 위에 임베딩하는 일이다. 핵심 요인은 데이터셋이지, 곡선 모양을 제한하는 특정 하드코딩 장식이 아니다. 곡선의 표현력이 충분하다면 대규모 데이터 환경에서는 모든 구조가 같은 성능으로 수렴한다”

    • “핵심 요인은 데이터셋이지, 곡선 모양을 제한하는 특정 하드코딩 장식이 아니다”라는 말에는 거의 반대임
      데이터셋은 오래전부터 많았고, 지난 10년의 진전은 곡선을 어떻게 설계하고 데이터에 맞추느냐, 그리고 더 많은 연산을 쓰는 방법에서 나왔음
      예전 모델도 연산을 100만 배쯤 더 쓰면 새 문제를 똑같이 풀 수 있다는 이론적 의미가 있을지는 모르지만, 그걸 “그저 최적화”라고 부르는 건 알고리즘 설계에서 복잡도 분석의 중요성을 무시하고 bogosort와 quicksort가 같다고 말하는 것과 비슷함
      과적합을 줄이는 정규화 기법을 겹겹이 넣고, Deep Q Learning이나 OpenAI o1의 탐색 공간 설계 같은 더 에이전트적인 구조까지 생각하면 단순한 최적화라는 관점은 설득력이 약함
      더 많은 연산만으로는 예전 구조가 그런 문제를 풀 수 없었음
    • 논문을 완전히 읽지는 않았지만, 데이터셋 크기보다는 연산 최적화에 더 초점을 둔 것처럼 보임
      “훈련 중 완전히 병렬화 가능하며, 길이 512 시퀀스에서 175배 빠름” 같은 내용이 있음
      여러 구조가 시간이 지나 같은 손실로 수렴하더라도, 대규모 GPU 비용을 생각하면 가장 빠르게 수렴하는 구조를 찾는 일은 꽤 가치 있음
    • 여러 장식이 하는 큰 역할 중 하나는 훈련 공간을 제한하는 것임
      CNN이 컴퓨터 비전을 장악한 건 밀집 신경망이 못 하는 걸 해서가 아니라, 별로 중요하지 않은 연결을 많이 제거해 훈련 예산을 더 깊은 네트워크에 쓸 수 있게 했기 때문임
      마찬가지로 Transformer가 훌륭한 이유는 거대한 네트워크를 어느 정도 효율적으로 훈련할 수 있게 해 주기 때문임
      이 논문도 RNN 훈련을 훨씬 빠르게 만들면 실제로 꽤 좋다는 점을 보여줌
      큰 병목은 구조의 실제 표현력보다 훈련 속도와 효율
    • MLP가 보편 함수 근사기라는 점을 생각하면 꽤 당연해 보임
      거대한 MLP도 Transformer와 같은 결과를 낼 수는 있음
      문제는 규모이고, 충분히 큰 MLP를 훈련할 수 없다는 데 있음
      Transformer는 성능 최적화라서 유용함
    • 결국 핵심은 계산 효율이 될 것임
      한 달에 한 번 재훈련하는 게 아니라 계속 재훈련하고 싶고, 에이전트 하나가 LLM 5개와 대화하는 게 아니라 수천 개의 LLM이 함께 동작하길 원함
  • 대답은 “아니오”에 가까워 보임
    이런 RNN이 일부 경우에는 충분히 좋고 어떤 경우엔 Transformer를 이길 수도 있지만, LLM에서 Transformer를 보편적으로 대체하진 못할 것 같음
    예를 들어 사용자가 긴 텍스트를 주고 “이걸 독일어로 번역해 줘”라고 하면 Transformer는 전체 이력을 되돌아볼 수 있음
    RNN은 문맥 길이가 무제한이라도, 어느 시점에든 기억하는 정보량은 은닉 상태 안에 들어 있는 것으로 제한됨
    관련 논문: https://arxiv.org/abs/2402.01032

    • “기억하는 정보량이 은닉 상태에 제한된다”는 건 Transformer도 다르지 않음
      Transformer 역시 결국 유한한 상태에 묶여 있고, 단지 그 상태가 다른 방식으로 조직돼 있을 뿐임
    • 그 문제는 90년대부터 RNN을 괴롭혀 왔음
      오래된 상태가 몇 비트를 전달해야 하는지에 관한 정보 정밀도 문제, 오래된 정보일수록 약해지는 감쇠 문제, 표현이 섞이거나 더해지는 혼합 문제가 있음
    • 반론은 은닉 상태 크기를 충분히 키우면 원하는 길이의 시퀀스에 대한 압축 표현을 담을 수 있다는 것임
      궁금한 건 부동소수점 연산 수를 고정했을 때 RNN이 Transformer와 경쟁할 수 있는지인데, 원 논문은 이 부분을 제대로 다루지 않는 듯함
    • 긴 글 뒤에 “독일어로 번역해 줘”라고 할 필요는 없음
      대신 “다음을 독일어로 번역해 줘”라고 하면, 필요한 건 현재 작업과 훨씬 적은 양의 최근 입력을 기억하는 것뿐임
      물론 입력을 처리하면서 병렬로 출력할 능력도 필요함
  • 이해한 바로는 Transformer가 이후 붐을 가능하게 한 건 RNN의 두 가지 큰 문제를 해결했기 때문임
    기울기 소실이 문맥과 모델 크기를 제한했고, 병렬화가 어려워 훈련 데이터 크기가 제한됐음
    지금은 이 두 문제에 대한 해법이 있는지 궁금함

    • Transformer는 어느 순간이든 나중에 유용해진 이전 정보를 다시 가져올 수 있음
      RNN은 계속 메모리를 갱신하고 덮어쓰기 때문에, 나중에 유용할 정보를 미리 예측해 저장해야 함
      ChatGPT 같은 대화형 사용 사례에서는 이게 Transformer의 엄청난 장점임
      문맥을 주고 여러 턴에 걸쳐 질문하면, 어떤 문맥이 특정 질문에 중요했는지는 토큰 시퀀스 뒤쪽에 가서야 알 수 있음
      더 정확히는 주의 기반 모델의 장점이라고 해야 하고, Jamba처럼 두 접근을 성공적으로 섞는 하이브리드 모델도 있음
    • 기울기 소실이나 폭주는 RNN만이 아니라 모든 깊은 구조에 영향을 줬음
      1997년에 처음 제안된 LSTM이 먼저 해결책을 제시했음: https://www.semanticscholar.org/paper/Long-Short-Term-Memory...
      이 지식이 거의 잊힌 것처럼 보이는 게 흥미로움
      2014년 무렵에는 LSTM이 굉장히 인기였음: https://karpathy.github.io/2015/05/21/rnn-effectiveness/
      https://colah.github.io/posts/2015-08-Understanding-LSTMs/
    • 논문을 대충 읽은 바로는, 이 논문은 “기울기 소실”보다는 병렬화와 빠른 훈련을 특히 겨냥함
      다만 순환 단위를 단순화하면서 둘 다 개선한 것으로 보임
      꽤 영리하고 흥미로운 작업임
      논문은 계속 “10년 된 구조”라고 부르지만, 실제로는 여러 도메인에 적응시키기 쉬워 지금도 엄청나게 많이 쓰임
      Transformer의 “경쟁자”로 놓는 것도 완전히 공정하진 않은데, Transformer와 RNN은 상호 배타적이지 않고 둘을 합치는 방법도 많기 때문임
      RNN 개선은 뜻밖의 여러 곳에서 개선으로 이어질 수 있음
  • minGRU 구조의 단순함이 정말 마음에 듦
    기본적으로 token에서 제안 은닉 상태와 혼합 계수를 각각 선형 변환으로 만들고, torch.lerp(proposed_hidden_state, previous_hidden_state, mix_factors)로 섞는 형태임
    각 층의 제안 은닉 상태와 혼합 계수는 현재 토큰에만 의존하므로, 훈련처럼 전체 시퀀스를 미리 알고 있으면 전부 병렬 계산한 뒤 병렬 스캔으로 선형 시간에 결합할 수 있음
    이게 소규모 실험에서 Transformer와 상태 공간 모델에 경쟁력 있다는 점은 “가장 좋은 PR은 코드를 삭제하는 PR”이라고 믿는 쪽의 감성을 만족시킴
    그래도 최신 최고 모델과 비슷한 매개변수·데이터 규모로 키워 보기 전까지는 대문자 B의 Breakthrough인지 알 수 없음
    부록을 보면 계산을 모두 로그 공간에서 하는 것 같은데, 수치 안정성 때문이라고 함
    출력에서 tanh를 제거해서 선형 공간에서 계산하면 값이 폭주할 수 있기 때문인지 직관이 잘 안 잡힘
    또 이런 시퀀스 모델링이 작동한다는 사실 자체도 흥미로움
    책의 모든 페이지를 찢어 무작위 순서로 주고, 이전 페이지를 전혀 모르는 상태에서 각 페이지 벡터와 “이 벡터를 이전 전체 페이지 벡터와 섞는 방법”을 만들라고 한 뒤, 내가 다시 순서대로 섞어서 최종 벡터가 책 전체 요약으로 얼마나 좋은지 채점하는 느낌임
    지금은 토큰을 제안 은닉 상태와 보간 혼합 계수로 바꾸는 데 두 개의 밀집 선형층만 쓰는데, 이 변환을 단일 선형층 대신 MLP로 만들면 어떻게 될지도 궁금함

    • 겉보기에는 이 구조가 토큰 시퀀스를 인식하는 기본 기능을 막는 것처럼 보임
      적어도 펌핑 보조정리 같은 문제가 생길 것 같음
      [the ][cat ][is ][black ]가 어떤 벡터에 가까운 출력을 만든다면, [the ][cat ][is ][black ]를 세 번 반복한 입력은 그 벡터에 더 가까워지고 “왜 같은 문장을 세 번 반복했지?”라는 벡터와는 멀어져야 하는 것 아닌가 싶음
      입력 토큰과 은닉 상태 사이에 비선형 혼합이 없으면 비슷한 토큰 시퀀스 사이에 선형적 유사성이 많이 남을 것 같음
    • 대문자 B의 Breakthrough라고 보지는 않지만, 순환 신경망은 어디에나 있음
      훈련과 성능을 개선한 단순화라면, 그 위에 다시 복잡성을 더 높은 수준으로 쌓을 무대를 만들어 줌
    • 로그 공간은 토큰 확률이 매우 넓은 값의 범위, 즉 여러 자릿수 차이를 가질 때 중요함
      최대가능도 적합을 항상 로그 가능도로 수행하는 데는 이유가 있음
  • 대학 프로젝트로 RNN을 만들었는데, 그때는 사라진 역사적 기술에 관심이 있어서 학교를 떠나면 다시는 신경망 얘기를 못 들을 것 같아 기회를 잡아야 한다고 생각했음
    만든 것은 동작했지만 아주 단순하고 오래된 노트북에서 엄청 느렸음
    그 노트북에서는 뭐든 빠를 수 없었지만, RNN이 피드포워드 네트워크보다 상당히 느렸던 기억이 남아 있음
    이건 1980~1990년대의 학문적 호기심거리인 죽은 기술이라고 확신했는데, 그게 얼마나 빨리 바뀌었는지 보니 이상할 정도였음

    • 나이 든 느낌이 듦
      2000년쯤 동적 시스템 학습, 예컨대 제어 목적의 RNN으로 석사 논문을 썼는데 당시에는 꽤 새로운 주제였음
      역전파를 C++로 짜서 밤새 돌렸고, 작은 기울기 때문에 정말 느렸음
      네트워크 구조도 단일 은닉층에 뉴런 5개나 10개 정도였음
      신경망은 강의를 찾을 수 있으면 운이 좋은 작은 주제였는데, 잠깐 눈 감았다가 2015년에 다시 보니 완전히 달라져 있었음
  • 저자들, 그중에는 Yoshua Bengio도 있는데, 논문을 답을 안다고 제안하지 않고 질문으로 끝낸 점은 인정할 만함
    이 모델들은 학계 기준으로도 매우 작아서, 어떤 결과가 현재 LLM 규모까지 반드시 확장된다고 볼 수는 없음
    핵심 결론은 RNN 계열 네트워크도 현대적 대안만큼 효율적으로 훈련할 수 있지만, 결과 성능의 경쟁력은 소규모에서만 확인됐다는 것임

    • “반드시 그런 것은 아니다”에 강조가 필요함
      결론도 “결과 성능이 경쟁적이라는 점은 소규모에서만 확인됐다”가 되어야 하지 않나 싶음
  • 논문의 모델은 병렬화 가능하게 만든 탓에 https://arxiv.org/abs/2404.08819에서 설명한 것과 같은 이유로 “진짜” RNN은 아니며, 따라서 이론적으로 전통적 RNN보다 덜 강력함
    RNN이 원래 잘하던 일부 문제 부류에서 어려움을 겪음
    반면 https://arxiv.org/abs/2405.04517에는 “진짜” RNN 구성요소가 들어 있고, Transformer가 어려워하는 상태 추적 문제에서 큰 개선을 보여줌

    • 이것들도 진짜 RNN임
      여전히 이전 은닉 상태에 의존하고, 게이팅만 의존하지 않을 뿐임
      기본 RNN 방정식은 병렬 접두 스캔 알고리즘으로 병렬화할 수 있음
  • 논문을 자세히 보지는 않았는데, 누가 답해 줄 수 있으면 좋겠음
    말한 것처럼 RNN에서 은닉 상태를 제거하면 무엇이 남는 건가? 단일 토큰에서 예측하는 MLP인가?

    • 은닉 상태를 완전히 제거한 게 아니라, 입력 게이트·망각 게이트·업데이트 게이트에서만 제거한 것임
      논문을 완전히 소화하진 않았지만, GRU의 경우 은닉 상태 업데이트 마스킹, 즉 논문 수식의 z_tr_t가 새 입력에만 의존하고 입력과 이전 은닉 상태의 합에는 의존하지 않는다는 뜻으로 보임
    • 완전히 제거한 건 아니고, 병렬 스캔으로 계산할 수 있게 특정 의존성만 제거한 것임
      여전히 은닉 상태가 있음
      Mamba에서 한 일과 어느 정도 비슷함
    • 대충 훑어봤을 때는 상태 업데이트를 조정해서 순차적으로 실행할 필요 없이 병렬 스캔으로 돌릴 수 있게 만든 것처럼 보임
    • 비결은 재귀 의존성이 선형으로 유지되게 하는 것이고, 그래서 병렬 훈련이 가능해짐