LLM에서의 ‘채널’이란
결론부터 말하면, LLM, 특히 트랜스포머(Transformer) 아키텍처에서 ‘채널’은 주로 피드 포워드 신경망(Feed-Forward Network, FFN)의 중간 확장 계층(intermediate expansion layer)의 차원(dimension)을 의미합니다.
트랜스포머의 각 블록은 크게 ‘셀프 어텐션(Self-Attention)’ 부분과 ‘피드 포워드 신경망(FFN)’ 부분으로 나뉩니다. FFN은 어텐션을 통해 얻은 정보를 각 토큰 위치별로 독립적으로 처리하고 보강하는 역할을 합니다. 바로 이 FFN에서 ‘채널’의 개념이 등장합니다.
A.1) 피드 포워드 신경망(FFN)의 구조
FFN은 일반적으로 두 개의 선형 계층(Linear Layer)과 그 사이에 위치한 비선형 활성화 함수(GELU나 ReLU 등)로 이루어져 있습니다.
- 첫 번째 선형 계층 (확장): 입력 차원 을 더 큰 중간 차원 로 확장합니다.
- 활성화 함수: 비선형성을 추가합니다.
- 두 번째 선형 계층 (축소): 중간 차원 를 다시 원래 입력 차원 로 축소합니다.
수식으로 표현하면 다음과 같습니다.
각 변수와 텐서의 크기는 다음과 같습니다.
- : FFN의 입력 텐서 (어텐션 레이어 출력), 크기는
- : 첫 번째 선형 계층 가중치 행렬, 크기
- : 첫 번째 선형 계층 편향
- : 두 번째 선형 계층 가중치 행렬, 크기
- : 두 번째 선형 계층 편향
- : FFN의 최종 출력 텐서, 크기는
여기서 가 바로 ‘채널 수’에 해당하며, 일반적으로 는 보다 훨씬 큰 값(보통 약 4배)을 사용합니다. 예를 들어, Llama 2 (7B)의 경우에는 , 입니다.
핵심은, 첫 번째 선형 변환()을 통해 입력 벡터( 차원)가 중간 벡터( 차원)로 확장되는데, 이 때 각각의 차원이 바로 하나하나 ‘채널’이라고 볼 수 있습니다. 각 채널은 서로 다른 특성(feature)을 잡아내고 처리하는 역할을 한다고 이해할 수 있습니다.
구체적인 예시
아주 간단한 예를 들어보겠습니다.
- (모델 기본 벡터 크기)
- (채널 수 = 8)
예를 들어 문장에서 “고양이”라는 토큰 하나가 처리된다고 가정하면 입력 벡터 X는 다음과 같이 나타낼 수 있습니다:
첫 번째 선형 계층 (확장) 입력 X에 가중치 행렬 을 곱하면 중간 벡터 H가 생성됩니다:
이 연산 결과 H는 다음과 같이 8개의 원소를 갖습니다:
바로 이 각각의 요소(, 즉 총 8개)가 ‘채널’에 해당합니다.
활성화 함수 및 두 번째 선형 계층 H에 활성화 함수를 적용한 뒤, 두 번째 가중치 행렬(, 크기: )과 곱해 다시 원래 차원()의 출력 벡터 Y가 만들어집니다.
정리하자면, 트랜스포머에서 말하는 ‘채널’이란 FFN 내에서 임시로 확장되는 중간 차원의 각 요소를 의미하며, 이들은 서로 다른 정보 특징(feature)을 파악하고 처리하는 역할을 담당하게 됩니다.
B) AWQ와 Saliency 계산에의 적용
AWQ는 각 채널을 통과하는 활성화(Activation) 값의 크기를 기반으로 해당 채널의 중요도를 평가합니다.
예를 들어, 중간 벡터 가 바로 이 활성화 값에 해당합니다. AWQ는 보정용 데이터셋(calibration dataset)을 모델에 입력하여 모든 토큰에 대한 값을 관찰합니다. 그리고 각 채널 (여기서는 1부터 8까지) 에 대해 평균 절대값을 계산하여 중요도를 산출합니다.
예를 들어, 여러 입력에서 3번째 채널()의 평균 절대값이 다른 채널보다 현저히 크다고 가정해보겠습니다.
- ( Salient Channel)
- …
AWQ는 이렇게 가 두드러지게 큰 경우, 을 생성하는 데 관여한 가중치와 을 입력으로 사용하는 가중치가 모델의 성능에 매우 중요한 역할을 한다고 봅니다. 즉, 3번째 채널을 ‘Salient Channel(중요 채널)‘로 식별하는 것입니다.
이처럼 중요한 채널에 대해서는 양자화 과정에서 발생할 수 있는 오차를 최소화하기 위해 스케일링 팩터를 적용하여 가중치를 보호합니다. 구체적으로는, 의 3번째 열(column)과 의 3번째 행(row)이 보호 대상이 됩니다.
요약
- LLM에서의 채널: FFN(Feed Forward Network)의 중간 확장 계층 차원(). 각 차원이 하나의 채널입니다.
- AWQ에서 Saliency 계산: 각 채널별로 중간 벡터 의 평균 절대값을 측정해 중요도를 평가하고, 중요한(살리언트한) 채널을 찾습니다.
- 결과: 중요한 채널과 관련된 가중치(의 열, 의 행)를 스케일링 기법으로 보호하여 양자화에 따른 손실을 최소화합니다.