※ 'LLM을 활용한 실전 AI 애플리케이션 개발' 책을 정리한 내용입니다.
정규화 : 딥러닝 모델에서 입력이 일정한 분포를 갖도록 만들어 학습이 안정적이고 빨라질 수 있도록 하는 기법
층 정규화
입력 데이터가 딥러닝 모델의 각 층을 거치면서 어떠한 특성은 좁은 분포를 갖고 어떤 특성은 넓은 분포를 가지게 된다. 특히 층이 깊은 모델에서는 분포의 차이가 발생할 가능성이 높아지고 그렇게 되면 학습이 잘되지 않는다. 그래서 딥러닝 분야에서는 층과 층 사이에 정규화를 추가해 학습을 안정적으로 만드는 기법을 사용해 왔다.
정규화는 여러 데이터의 평균와 표준편차를 구해서 벡터 x를 정규화한 norm_x는 벡터 x에서 x의 평균을 빼고 x의 표준편차로 나눠 평균이 0이고 표준편차가 1인 분포를 갖게 된다. ( norm_x = (x - 평균) / 표준편차 )
데이터를 어떻게 묶는지에 따라서 배치 정규화와 층 정규화로 구분한다. 일반적으로 이미지 처리에서는 배치 정규화를 사용하고, 자연어 처리에서는 층 정규화를 사용한다.
배치 정규화 : 모델에 입력으로 들어가는 미니 배치(전체 학습 데이터를 작은 부분 집합으로 나누어 사용하는 방법) 사이에 정규화를 수행한다.
자연어 처리에서는 배치 정규화를 사용하지 않는데, 그 이유는 자연어 처리에서는 입력으로 들어가는 문장의 길이가 다양한데, 배치 정규화를 사용할 경우 정규화에 포함되는 데어터의 수가 제각각이라 정규화 효과를 보장하기 어렵다.
층 정규화는 이런 단점을 보완할 수 있게 각 토큰 임베딩의 평균과 표준편차를 구해 정규화를 수행한다. 문장별로 실제 데이터 수가 다르더라도 각각의 토큰 임베딩별로 정규화를 수행하기 때문에 정규화 효과에 차이가 없다.
층 정규화를 적용하는 순서
- 사후 정규화(post-norm) : 어텐션과 피드 포워드 층 이후에 층 정규화 적용
- 사전 정규화(pre-norm) : 먼저 층 정규화를 적용하고 어텐션과 피드 포워드 층을 통과시킴
피드 포워드 층(feed forward layer)
피드 포워드 층은 데이터의 특징을 학습하는 완전 연결 층(fully connected layer)을 말하며, 입력 텍스트 전체를 이해하는 역할을 담당한다. 피드 포워드 층은 선형 층, 드롭아웃 층, 층 정규화, 활성 함수로 구성된다.
'LLM' 카테고리의 다른 글
트랜스포머 아키텍처(6) (0) | 2024.08.13 |
---|---|
트랜스포머 아키텍처(5) (0) | 2024.08.12 |
트랜스포머 아키텍처(3) (0) | 2024.08.10 |
트랜스포머 아키텍처(2) (0) | 2024.08.09 |
트랜스포머 아키텍처(1) (0) | 2024.08.09 |