셀프 어텐션 연산 복잡도 낮춰 병목 현상 해결, ‘모델 최적화’
어텐션 구조 변경, 모델 경량화, 하드웨어 친화 알고리즘, 디코딩 가속화 등

사진은 본문과 직접 관련은 없음. (사진=애플경제)
사진은 본문과 직접 관련은 없음. (사진=애플경제)

[애플경제 전윤미 기자] 트랜스포머 모델은 병목 문제를 해결하는게 최대의 과제다. 이는 특히 대용량 모델 파라미터와 긴 시퀀스로 인해 나타난다. 특히 핵심 알고리즘인 셀프 어텐션의 연산 복잡도가 가장 큰 원인이다. 입력 토큰이 각기 다른 토큰들과 얼마나 유사한가를 일일이 계산하므로, 전체 어텐션 연산의 복잡도가 커지는 것이다.

‘원인을 알면 해법이 나오듯이’ 이같은 셀프 어텐션의 연산 복잡도를 해결하면 병목 현상을 해결할 수 있다. 즉, ‘트랜스포머 모델의 최적화’를 기할 수 있는 것이다. 황윤준 삼성전자 수석연구원은 “트랜스포머 모델의 성능을 유지하면서도 속도를 높이고 메모리를 아낄 수 있도록 하는게 핵심”이라고 했다.

많은 전문가들이 다양한 ‘트랜스포머 모델 최적화’ 방안을 제시하고 있다. 특히 황 수석연구원이 정보통신기획평가원을 통해 공개한 방안은 가장 체계적이고, 심층적이면서도 일목 요연하게 대안을 제시하고 있어 눈길을 끈다.

이에 따르면 어텐션의 구조를 변경하거나, 모델 자체를 경량화하는 기법, 하드웨어 친화적 알고리즘, 디코딩 가속화 기법 등이 있다.

‘어텐션 패턴’을 미리 정의

모델 친화적 최적화를 위한 가장 큰 과제는 병목의 원인이 되는 ‘어텐션’을 변경 내지 조정하는 것이다. 애초 모델 학습에서 어텐션은 입력 데이터의 중요한 부분에 더 집중하도록 가중치를 부여하는 기법이다. 이는 트랜스포머 모델에서 핵심적인 역할을 한다.

우선 병목 현상을 줄이기 위해선 일부 선택된 토큰들하고만 상호 작용하도록 어텐션 패턴을 미리 정의하는 기법도 있다. 이른바 ‘고정 패턴’(fixed pattern) 방식이다. 이는 어텐션이 사전 정의된 규칙에 따라 구현된다.

대표적으로 롱포머(Longformer)와 빅버드(BigBird)가 있다. 롱포머는 각 토큰이 고정된 크기의 슬라이딩 윈도 내에서만 어텐션을 적용하고, 또 다른 토큰은 전체 시퀀스와 연결해 주는 패턴이다. 빅버드는 어텐션 복잡도를 선형으로 낮추면서도, 이론적으로 모든 토큰 간 연결성을 보장한 것이다.

‘고정 패턴’ 방식과 달리, ‘학습형 패턴’ 어텐션 기법도 있다. 이는 데이터에 따라 동적으로 연결이 결정된다. 즉, 어떤 토큰 쌍이 어텐션에 중요한지를 모델이 직접 학습하거나 선택하도록 한다. 그래서 “불필요한 어텐션만 제거하고, 중요한 장거리 의존은 유지하는 접근”이란 설명이다. 이런 ‘학습형 패턴’ 기법은 입력 분포에 적응하기 때문에, 부적절한 고정 패턴으로 인한 정보 손실을 줄일 가능성이 있다.

유사 토큰 모아 어텐션, 군집화 사용 등

또 ‘리포머’(Reformer) 방식도 있다. 이는 소위 ‘로컬 민감도 해싱’(Lightweight Secure Hash)을 통해 내용이 유사한 토큰들을 해시 버킷으로 모아 어텐션을 수행한다. 그러면 평균적으로 중요한 토큰들만 상호 작용하게 되어 기대 계산량을 선형으로 감소시킨다.

‘라우팅 트랜스포머’(RoutingTransformer) 방식도 있다. 이는 토큰 임베딩 공간에서 ‘군집화’를 사용해 각 클러스터 내에서만 어텐션하도록 한다. 이는 데이터 분포에 따른 패턴을 찾는다는 점에서 앞서 ‘고정 패턴’보다 유연하다. 그러나 해싱이나 클러스팅 연산 자체의 부하와 복잡도가 추가되는게 단점이다.

이 밖에 트랜스포머 모델에 명시적인 메모리 장치인 ‘뉴럴 메모리’(Neural Memory)를 부착, 필요한 정보만 저장하고 참조하도록 하는 방법도 있다. 이를 통해 과거 정보를 외부 메모리에 기록, 연산을 할 때 해당 메모리만 참고하도록 한다. 결국 긴 문맥도 효율적으로 처리할 수 있게 하는 것이다.

'2025 국제인공지능대전'으로 본문과는 직접 관련이 없음. (사진=애플경제)
'2025 국제인공지능대전'으로 본문과는 직접 관련이 없음. (사진=애플경제)

플래시 어텐션 등 하드웨어 친화적 기술

하드웨어 친화적 기술 가운데는 ‘플래시 어텐션(Flash Attention)’이 대표적이다. 본래 GPU의 연산 유닛은 아무리 빨라도 데이터가 HBM에서 SRAM으로 제때 공급되지 않아 머무는 시간이 길어진다. 이에 플래시 어텐션(Flash Attention)은 어텐션 계산에 대한 HBM과 SRAM 간의 I/O 병목 문제를 해결하기 위해 어텐션 알고리즘으로 주목받고 있다.

플래시 어텐션은 이른바 타일링(tiling) 기법을 사용, 가뜩이나 상대적으로 느린 GPU HBM 위에 큰 어텐션 행렬이 만들어지는 것을 방지한다. 이를 위해 전체 행렬을 작은 블록(타일) 단위로 나눈다. 그런 다음 행렬을 블록 단위로 순회하며, 빠른 SRAM으로 불러온다.

그 후 각 블록 내부에서 다시 행렬을 블록 단위로 순회하며, 이를 SRAM으로 로드하고 어텐션 계산을 한다. 그 결과 소프트맥스 계산까지 SRAM 내에서 처리하고, 최종 결과 블록을 HBM에 기록한다. 이 방식을 통해 어텐션 연산 내부의 HBM I/O를 완전히 제거할 수 있다.

오토리그레시브의 의존성 없애는 ‘디코딩 가속화’

흔히 텍스트 생성(디코딩) 과정은 오토리그레시브(Autoregressive) 방식이다. 즉, 한 번에

하나의 토큰을 순차적으로 생성하는 과정이다. 각 토큰마다 직전에 생성된 모든 토큰에 일일이 의존하기 때문에 병렬화가 어렵다. 특히 실시간 대화형 서비스에서 이는 ‘지연’의 주된 원인이 된다. 이런 오토리그레시브의 순차적 의존성을 깨뜨리거나 완화하는게 ‘디코딩 가속화’ 기법에 의한 트랜스포머 모델 최적화 방안이다.

그 중에서 대표적인 방식은 ‘스페큘레이티브 디코딩’과 ‘룩어헤드(Lookahead) 디코딩’이 있다. 특히 전자는 오픈AI와 딥마인드 등이 제시한 추론 시간 가속 기법이다. 이는 작은 모델(draft model)과 대형 모델(target model)을 짝지어 활용하는 방식이다. 작은 모델은 다음 토큰들을 큰 모델이 하나씩 생성하기 전에, 미리 여러 토큰을 생성(speculate)해본다. 나중에 큰 모델이 다시 이를 병렬 검증, 수용 여부를 결정하는 것이다.

황 수석연구원은 “이때 스페큘레이티브 디코딩의 성능은 ‘작은 모델’의 제안 정확도(acceptance rate)에 크게 좌우된다.”며 “이상적으론 초안 토큰 중 대부분이 채택되면, 큰 모델 연산을 여러 토큰 당 한번만 수행하므로 비약적인 가속이 가능하다”고 설명했다.

‘룩어헤드 디코딩’은 버클리대 연구진이 2024년에 발표한 기법이다. 이는 스페큘레이티브 디코딩과는 달리, 보조 모델 없이 동일 LLM으로 병렬 디코딩을 수행하면서도 출력 정확도를 높이는 방법이다. 이 경우 알고리즘은 한 스텝에서 향후 토큰을 한꺼번에 예측한다. 그 중 신뢰할 수 있는 일부를 바로 확정한 뒤 다음 단계로 넘어가는 방식이다.

구체적으론 LLM에게 현재 컨텍스트를 주고, 앞으로 나올 가능성이 높은 토큰을 이어서 생성하는 방식이다. 그런 다음 다시 모델을 통해 예측 타당성을 검사, 동시에 여러 토큰을 확정 짓는 방식이다. 이런 과정을 토큰이 끝날 때까지 반복하면, 최종 출력은 일반적인 오토그레시브(autoregressive) 생성과 동일하고, 내부적으로는 병렬처리가 이루어진다.

저작권자 © 애플경제 무단전재 및 재배포 금지