What Matters in Transformers? Not All Attention is Needed Fusion

논문 : https://arxiv.org/abs/2406.15786v1

개인의견 : 내가 잘 이해를 한건지는 모르겠지만 결국 입력/출력의 cosine similarity를 보고 attention layer를 pruning 하겠다는것 같은데 이게 데이터셋의 분포 혹은 성향이 달라졌을때 잘 동작할지는 납득이 쉽게 되지 았았다. 하지만 최근LLM의 크기가 점점 커져가고 있는 가운데 이렇게 실제로 필요하지 않은 layer들이 있을 수 있다는 시사점을 주는 논문이라고 이해를 하였다.

아래글은 Scholar GPT와 대화를 나눈 내용입니다.

Q : 논문의 핵심 내용과 강점, 알고리즘 설명, 그리고 한계점

Answer

논문의 강점과 독창성

이 논문은 Transformer 기반 대형 언어 모델(LLM)에서 중요도 기반의 모듈 제거 기법을 제안하여, 성능을 유지하면서도 모델의 메모리 및 계산 효율성을 크게 향상시키는 새로운 접근법을 제시합니다. 주요 강점과 독창성은 다음과 같습니다:

  1. 유사성 기반 중요도 측정: 논문은 모듈의 입력과 출력 간 유사성을 측정해, 입력과 출력이 유사한 모듈(즉, 정보 변환이 적은 모듈)은 성능에 큰 영향을 주지 않음을 밝힙니다. 이를 기반으로 불필요한 Attention 또는 MLP 레이어를 제거할 수 있게 합니다.

  2. 효율적인 Layer Drop 기법: 단일 모듈뿐 아니라, Attention과 MLP 레이어를 동시에 제거하는 Joint Layer Drop을 도입하여 높은 제거 비율을 유지하면서도 성능 저하를 최소화하는 기법을 제시합니다.

  3. 모델의 구조 최적화에 기여: 실험 결과를 통해 특정 Attention 레이어의 중복성을 밝히고, 이를 기반으로 효율적인 모델 압축과 메모리 절약이 가능함을 증명하여 향후 모델 구조 설계에 대한 중요한 시사점을 제공합니다.

핵심 알고리즘 설명: 예시 입력과 과정

1단계: 모듈 유사성 기반 중요도 계산

  • 예를 들어, 특정 Transformer 블록 내 Attention 레이어에 입력 ( X )와 출력 ( Y )가 있다고 가정합니다.
  • 유사성 기반 중요도는 두 벡터의 코사인 유사성을 통해 계산됩니다: [ S = 1 - \text{Cosine}(X, Y) ] 이때, ( S ) 값이 낮으면 해당 모듈의 중요도가 낮다고 판단하여 제거 대상에 포함시킵니다.

2단계: Layer Drop

모듈 별 중요도 점수를 기반으로 상위 ( K )개의 중요하지 않은 모듈을 선택해 제거합니다. 예를 들어, 특정 Attention 레이어의 중요도 ( S_A )와 MLP 레이어의 중요도 ( S_M )를 계산하여 가장 낮은 중요도의 모듈을 제거함으로써 메모리 사용을 줄이고 추론 속도를 높입니다.

3단계: Joint Layer Drop

Attention과 MLP 레이어의 중요도 점수를 결합하여 가장 낮은 중요도를 가진 모듈부터 제거하는 방식으로 효율성을 극대화합니다. 이렇게 하면 각 레이어의 필요성을 종합적으로 평가하여 성능 유지에 유리한 모듈을 선택적으로 남기게 됩니다.

논문의 한계점

  1. 다양한 모델에의 적용성 제한: 본 연구는 특정 Transformer 모델에서의 성능을 평가하였으나, Vision Transformer나 Vision-Language 모델 등 다양한 모델 유형에 대한 실험이 부족합니다.

  2. 사후 최적화: 이 논문은 학습이 완료된 모델에 대해 모듈을 제거하는 방식에 집중하고 있으며, 모델을 재학습함으로써 성능을 향상시킬 가능성에 대해서는 탐구하지 않았습니다.

Q: 입력에 따라서 동적으로 layer의 input/output의 cosine similarity는 변화할 수 있을거 같다고 생각이 되는데 논문에서는 이에 대한 반박 혹은 언급이 있을까?

Answer :

네, 논문에서는 입력에 따라 Layer의 입력과 출력 사이의 코사인 유사도가 달라질 수 있다는 가능성을 인지하고 있습니다. 이와 관련하여, 논문은 모듈 중요도 계산의 일관성을 유지하기 위해 일정한 기준 데이터를 사용한다고 언급합니다. 이를 위해 일반적인 언어 모델 평가 데이터셋을 기반으로 고정된 “캘리브레이션 데이터셋”을 설정하여, 각 모듈의 유사성 계산을 안정적으로 수행합니다【19†source】.

또한, 논문은 다양한 샘플 수와 데이터 유형에 따른 유사성 변동성을 평가하며, 중요도 측정이 입력 데이터에 대해 상대적으로 일관성을 유지함을 입증합니다. 이를 통해 입력이 다르더라도 유사도에 따른 중요도 계산이 크게 달라지지 않음을 보여줌으로써, 제안한 Layer Drop 방법의 안정성을 보장하고 있습니다.

Q : 내 생각에는 이렇게 되면 상당히 입력 데이터의 분포에 오버피팅이 될것 같다고 생각이 되는데 어떻게 생각하니?

A:

사용자의 지적대로, 제안된 방법이 특정 캘리브레이션 데이터셋에 의존하여 유사성을 계산하기 때문에, 실제 다양한 입력 분포에서 일반화되지 못하고 오버피팅될 가능성이 있습니다. 이는 특히 데이터 분포가 캘리브레이션 데이터와 크게 다르거나, 모델이 예상하지 못한 새로운 유형의 데이터를 처리할 때 문제를 일으킬 수 있습니다.

이 방법의 본질적인 한계는 다음과 같습니다:

  1. 캘리브레이션 데이터와 실제 입력 분포의 차이: 유사성 기반 중요도 측정은 특정 데이터 분포에 맞춰져 있어, 다른 분포를 가진 실제 입력에서 정확도를 저해할 가능성이 있습니다. 만약 캘리브레이션 데이터가 모델 사용 시나리오를 충분히 반영하지 못한다면, 제거된 레이어들이 예기치 않게 중요한 역할을 할 수 있습니다.

  2. 동적 입력에 대한 유연성 부족: 각 입력이 고유한 특성과 구조를 가지므로, 각 레이어의 필요성이 동적으로 변할 수 있습니다. 캘리브레이션 데이터에 맞춰 사전에 제거된 레이어는 새로운 상황에서 유용할 수 있는데, 이러한 유연성이 부족한 점이 문제일 수 있습니다.

  3. 분포 변화에 대한 대응성 결여: 실제 환경에서 입력 데이터 분포가 시간이 지남에 따라 바뀌는 경우(예: 특정 주제나 언어의 변화), 모델의 성능을 유지하기 위해 유사성을 측정하는 데이터의 재설정이 필요할 수 있습니다. 하지만 논문의 방법은 이러한 변화에 대응하는 적응 메커니즘이 부족합니다.

해결 방안

이 문제를 해결하기 위해, 일부 연구에서는 동적 적응을 통해 입력에 따라 실시간으로 중요도를 재평가하거나, 다양한 데이터 분포를 반영한 다중 캘리브레이션 데이터셋을 사용하는 방법을 제안하기도 합니다. 예를 들어, 여러 데이터 분포를 기반으로 다양한 유사성 기준을 적용하고, 입력에 따라 이를 유연하게 선택하는 방식이 고려될 수 있습니다.

따라서, 제안된 방법이 고정된 캘리브레이션 데이터셋에 의존하는 만큼 다양한 입력 분포에 대한 일반화 성능에 한계가 있다는 점은 명확한 한계로 보이며, 이를 보완하기 위해 동적 중요도 계산 또는 분포 변화에 맞춘 적응적 재조정을 추가하는 연구가 필요할 것입니다.