인공 지능
디코더 기반 대형 언어 모델: 전체 가이드
대규모 언어 모델 (LLM)은 인간과 유사한 텍스트를 생성하고, 질문에 답하고, 광범위한 언어 관련 작업을 지원하는 놀라운 기능을 보여줌으로써 자연어 처리(NLP) 분야에 혁명을 일으켰습니다. 이러한 강력한 모델의 핵심에는 디코더 전용 변환기 아키텍처, 세미나 논문 "에서 제안된 원래 변압기 아키텍처의 변형입니다.관심은 당신이 필요로하는 전부입니다" Vaswani 외.
이 포괄적인 가이드에서는 디코더 기반 LLM의 내부 작동 방식을 살펴보고 이러한 모델을 NLP 연구 및 응용 프로그램의 최전선으로 끌어올린 기본 구성 요소, 아키텍처 혁신 및 구현 세부 사항을 자세히 살펴보겠습니다.
Transformer 아키텍처: 복습
디코더 기반 LLM의 세부 사항을 살펴보기 전에 이러한 모델이 구축된 기반인 변환기 아키텍처를 다시 살펴보는 것이 중요합니다. 변환기는 반복 또는 컨벌루션 레이어가 필요 없이 데이터의 장거리 종속성을 캡처하기 위해 어텐션 메커니즘에만 의존하는 시퀀스 모델링에 대한 새로운 접근 방식을 도입했습니다.
원래 변환기 아키텍처는 인코더와 디코더라는 두 가지 주요 구성 요소로 구성됩니다. 인코더는 입력 시퀀스를 처리하고 상황에 맞는 표현을 생성한 다음 디코더에서 이를 사용하여 출력 시퀀스를 생성합니다. 이 아키텍처는 원래 인코더가 소스 언어로 입력 문장을 처리하고 디코더가 대상 언어로 해당 문장을 생성하는 기계 번역 작업을 위해 설계되었습니다.
Self-Attention: Transformer 성공의 열쇠
그 중심에 변압기 모델이 입력 시퀀스의 다양한 위치에서 정보를 평가하고 집계할 수 있도록 하는 강력한 기술인 self-attention 메커니즘이 있습니다. 입력 토큰을 순차적으로 처리하는 기존 시퀀스 모델과 달리 self-attention을 사용하면 모델이 시퀀스에서의 위치에 관계없이 모든 토큰 쌍 간의 종속성을 캡처할 수 있습니다.
셀프 어텐션 작업은 세 가지 주요 단계로 나눌 수 있습니다.
- 쿼리, 키 및 값 예측: 입력 시퀀스는 세 가지 개별 표현으로 투영됩니다. 쿼리 (큐), 키 (K), 그리고 값 (V). 이러한 예측은 입력에 학습된 가중치 행렬을 곱하여 얻습니다.
- 주의 점수 계산: 입력 시퀀스의 각 위치에 대해 해당 쿼리 벡터와 모든 키 벡터 간의 내적을 취하여 Attention 점수를 계산합니다. 이 점수는 처리 중인 현재 위치에 대한 각 위치의 관련성을 나타냅니다.
- 가치의 가중 합계: 어텐션 점수는 소프트맥스 함수를 사용하여 정규화되고 결과 어텐션 가중치는 값 벡터의 가중 합을 계산하는 데 사용되어 현재 위치에 대한 출력 표현을 생성합니다.
Self-Attention 메커니즘의 변형인 Multi-head attention을 사용하면 모델이 여러 "에 걸쳐 Attention 점수를 계산하여 다양한 유형의 관계를 포착할 수 있습니다.머리” 병렬로 각각 고유한 쿼리, 키 및 값 예측 세트가 있습니다.
아키텍처 변형 및 구성
디코더 기반 LLM의 핵심 원칙은 일관성을 유지하면서 연구자들은 성능, 효율성 및 일반화 기능을 향상시키기 위해 다양한 아키텍처 변형 및 구성을 탐색했습니다. 이 섹션에서는 다양한 아키텍처 선택과 그 의미를 살펴보겠습니다.
아키텍처 유형
디코더 기반 LLM은 크게 인코더-디코더, 인과 디코더, 접두사 디코더의 세 가지 주요 유형으로 분류될 수 있습니다. 각 아키텍처 유형은 뚜렷한 주의 패턴을 나타냅니다.
인코더-디코더 아키텍처
바닐라 Transformer 모델을 기반으로 하는 인코더-디코더 아키텍처는 인코더와 디코더라는 두 개의 스택으로 구성됩니다. 인코더는 누적된 다중 헤드 Self-Attention 레이어를 사용하여 입력 시퀀스를 인코딩하고 잠재 표현을 생성합니다. 그런 다음 디코더는 이러한 표현에 대해 교차 주의를 수행하여 대상 시퀀스를 생성합니다. 다양한 NLP 작업에 효과적이지만 다음과 같은 LLM은 거의 없습니다. 플랜-T5, 이 아키텍처를 채택하세요.
인과 디코더 아키텍처
인과 디코더 아키텍처에는 단방향 주의 마스크가 통합되어 있어 각 입력 토큰이 과거 토큰과 그 자체에만 주의를 기울일 수 있습니다. 입력 및 출력 토큰은 모두 동일한 디코더 내에서 처리됩니다. 다음과 같은 주목할만한 모델 GPT-1, GPT-2 및 GPT-3은 이 아키텍처를 기반으로 구축되었으며 GPT-3은 놀라운 상황 내 학습 기능을 보여줍니다. OPT, BLOOM 및 Gopher를 포함한 많은 LLM은 인과 디코더를 널리 채택했습니다.
접두사 디코더 아키텍처
비인과 디코더라고도 알려진 접두사 디코더 아키텍처는 인과 디코더의 마스킹 메커니즘을 수정하여 접두사 토큰에 대한 양방향 주의와 생성된 토큰에 대한 단방향 주의를 활성화합니다. 인코더-디코더 아키텍처와 마찬가지로 접두사 디코더는 접두사 시퀀스를 양방향으로 인코딩하고 공유 매개변수를 사용하여 자동 회귀적으로 출력 토큰을 예측할 수 있습니다. 접두사 디코더를 기반으로 하는 LLM에는 GLM130B 및 U-PaLM이 포함됩니다.
세 가지 아키텍처 유형 모두 다음을 사용하여 확장할 수 있습니다. 전문가 혼합(MoE) 각 입력에 대해 신경망 가중치의 하위 집합을 드물게 활성화하는 스케일링 기술입니다. 이 접근 방식은 Switch Transformer 및 GLaM과 같은 모델에 사용되었으며 전문가 수 또는 전체 매개변수 크기가 증가하여 상당한 성능 향상을 보여주었습니다.
디코더 전용 변환기: 자기회귀 특성 수용
원래 변환기 아키텍처는 기계 번역과 같은 시퀀스 간 작업을 위해 설계되었지만 언어 모델링 및 텍스트 생성과 같은 많은 NLP 작업은 모델이 한 번에 하나의 토큰을 생성하는 자동 회귀 문제로 구성될 수 있습니다. 이전에 생성된 토큰.
디코더 구성 요소만 유지하는 변환기 아키텍처의 단순화된 변형인 디코더 전용 변환기를 입력합니다. 이 아키텍처는 이전에 생성된 토큰을 입력 컨텍스트로 활용하여 출력 토큰을 하나씩 생성하므로 자동 회귀 작업에 특히 적합합니다.
디코더 전용 변환기와 원래 변환기 디코더의 주요 차이점은 self-attention 메커니즘에 있습니다. 디코더 전용 설정에서는 모델이 인과성이라고 알려진 속성인 향후 토큰에 주의를 기울이지 않도록 self-attention 작업이 수정됩니다. 이는 미래 위치에 해당하는 어텐션 점수가 음의 무한대로 설정되어 소프트맥스 정규화 단계에서 이를 효과적으로 마스킹하는 "마스킹된 셀프 어텐션(masked self-attention)"이라는 기술을 통해 달성됩니다.
디코더 기반 LLM의 아키텍처 구성 요소
Self-Attention과 Masked Self-Attention의 핵심 원칙은 동일하게 유지되지만 최신 디코더 기반 LLM은 성능, 효율성 및 일반화 기능을 향상시키기 위해 몇 가지 아키텍처 혁신을 도입했습니다. 최첨단 LLM에 사용되는 몇 가지 주요 구성 요소와 기술을 살펴보겠습니다.
입력 표현
입력 시퀀스를 처리하기 전에 디코더 기반 LLM은 토큰화 및 임베딩 기술을 사용하여 원시 텍스트를 모델에 적합한 수치 표현으로 변환합니다.
토큰 화: 토큰화 프로세스는 사용된 토큰화 전략에 따라 입력 텍스트를 단어, 하위 단어 또는 개별 문자일 수 있는 일련의 토큰으로 변환합니다. LLM에 널리 사용되는 토큰화 기술로는 BPE(Byte-Pair Encoding), SentencePiece 및 WordPiece가 있습니다. 이러한 방법은 어휘 크기와 표현 세분성 사이의 균형을 유지하여 모델이 희귀하거나 어휘에 없는 단어를 효과적으로 처리할 수 있도록 하는 것을 목표로 합니다.
토큰 임베딩: 토큰화 후 각 토큰은 토큰 임베딩이라는 조밀한 벡터 표현에 매핑됩니다. 이러한 임베딩은 훈련 과정에서 학습되며 토큰 간의 의미론적 및 구문론적 관계를 포착합니다.
위치 임베딩: 변환기 모델은 전체 입력 시퀀스를 동시에 처리하므로 순환 모델에 존재하는 토큰 위치에 대한 고유한 개념이 부족합니다. 위치 정보를 통합하기 위해 위치 임베딩이 토큰 임베딩에 추가되어 모델이 시퀀스의 위치에 따라 토큰을 구별할 수 있습니다. 초기 LLM은 정현파 함수를 기반으로 한 고정 위치 임베딩을 사용한 반면, 최신 모델에서는 학습 가능한 위치 임베딩이나 회전 위치 임베딩과 같은 대체 위치 인코딩 기술을 탐색했습니다.
다중 헤드 주의 블록
디코더 기반 LLM의 핵심 빌딩 블록은 앞에서 설명한 마스크된 self-attention 작업을 수행하는 다중 헤드 Attention 계층입니다. 이러한 레이어는 여러 번 스택되며 각 레이어는 이전 레이어의 출력에 참여하므로 모델이 점점 더 복잡한 종속성과 표현을 캡처할 수 있습니다.
주의 머리: 각 다중 헤드 주의 레이어는 여러 개의 "주의 헤드"로 구성되며, 각 레이어에는 자체 쿼리, 키 및 값 예측 세트가 있습니다. 이를 통해 모델은 입력의 다양한 측면에 동시에 주의를 기울여 다양한 관계와 패턴을 포착할 수 있습니다.
잔여 연결 및 레이어 정규화: 심층 네트워크의 훈련을 촉진하고 기울기 소멸 문제를 완화하기 위해 디코더 기반 LLM은 잔여 연결 및 계층 정규화 기술을 사용합니다. 잔여 연결은 레이어의 입력을 출력에 추가하여 역전파 중에 그라데이션이 더 쉽게 흐를 수 있도록 합니다. 레이어 정규화는 활성화 및 기울기를 안정화하여 훈련 안정성과 성능을 더욱 향상시키는 데 도움이 됩니다.
피드포워드 레이어
다중 헤드 어텐션 레이어 외에도 디코더 기반 LLM은 피드포워드 레이어를 통합하여 시퀀스의 각 위치에 간단한 피드포워드 신경망을 적용합니다. 이러한 레이어는 비선형성을 도입하고 모델이 더 복잡한 표현을 학습할 수 있도록 해줍니다.
활성화 기능: 피드포워드 레이어에서 활성화 함수를 선택하면 모델 성능에 큰 영향을 미칠 수 있습니다. 이전 LLM은 널리 사용되는 ReLU 활성화에 의존했지만 최신 모델에서는 GELU(Gaussian Error Linear Unit) 또는 SwiGLU 활성화와 같은 보다 정교한 활성화 기능을 채택하여 향상된 성능을 보여주었습니다.
Sparse Attention 및 효율적인 변환기
self-attention 메커니즘은 강력하지만 시퀀스 길이와 관련하여 2차 계산 복잡성이 있으므로 긴 시퀀스의 경우 계산 비용이 많이 듭니다. 이러한 문제를 해결하기 위해 self-attention의 계산 및 메모리 요구 사항을 줄여 더 긴 시퀀스를 효율적으로 처리할 수 있는 여러 기술이 제안되었습니다.
스파 스주의: GPT-3 모델에 사용된 것과 같은 희소 주의 기술은 모든 위치에 대한 주의 점수를 계산하는 대신 입력 시퀀스의 위치 하위 집합에 선택적으로 주의를 기울입니다. 이를 통해 합리적인 성능을 유지하면서 계산 복잡성을 크게 줄일 수 있습니다.
슬라이딩 윈도우 주의: Mistral 7B 모델에 도입된 슬라이딩 윈도우 어텐션(SWA)은 각 토큰의 어텐션 범위를 고정된 윈도우 크기로 제한하는 간단하면서도 효과적인 기술입니다. 이 접근 방식은 여러 계층에 걸쳐 정보를 전송하는 변환기 계층의 기능을 활용하여 전체 self-attention의 XNUMX차 복잡성 없이 주의 범위를 효과적으로 늘립니다.
롤링 버퍼 캐시: 특히 긴 시퀀스의 경우 메모리 요구 사항을 더욱 줄이기 위해 Mistral 7B 모델은 롤링 버퍼 캐시를 사용합니다. 이 기술은 고정된 창 크기에 대해 계산된 키와 값 벡터를 저장하고 재사용하여 중복 계산을 방지하고 메모리 사용량을 최소화합니다.
그룹화된 쿼리 주의: LLaMA 2 모델에 도입된 GQA(그룹화된 쿼리 주의)는 주의 헤드를 그룹으로 나누는 다중 쿼리 주의 메커니즘의 변형이며, 각 그룹은 공통 키와 값 매트릭스를 공유합니다. 이 접근 방식은 다중 쿼리 Attention의 효율성과 표준 Self-Attention 성능 사이의 균형을 유지하여 고품질 결과를 유지하면서 향상된 추론 시간을 제공합니다.