패러다임 전환으로서의 2017년 'Attention Is All You Need' 논문
이 논문은 기존 RNN 구조를 기반으로 하는 대신, RNN을 완전히 제거하고 어텐션 메커니즘을 핵심으로 하는 새로운 아키텍처를 도입했습니다. 이 아키텍처는 놀라울 정도로 탄력적임이 입증되었으며, 이후 현대 대규모 언어 모델(LLM)의 표준이 되었습니다.
안드레이 카르파시(Andrej Karpathy)는 2017년 트랜스포머 아키텍처가 표현력, 최적화 가능성, 하드웨어 효율성 덕분에 여전히 AI를 지배하는 이유를 자세히 설명합니다.
이 논문은 기존 RNN 구조를 기반으로 하는 대신, RNN을 완전히 제거하고 어텐션 메커니즘을 핵심으로 하는 새로운 아키텍처를 도입했습니다. 이 아키텍처는 놀라울 정도로 탄력적임이 입증되었으며, 이후 현대 대규모 언어 모델(LLM)의 표준이 되었습니다.
2017년에 처음 도입된 원래 트랜스포머 구조의 대부분은 오늘날의 정교한 생성형 사전 학습 트랜스포머(GPT)에서 크게 변하지 않았습니다. 피드포워드 네트워크 내의 4배 확장 계수와 같은 하이퍼파라미터는 시간이 지남에 따라 지속적으로 효과적임이 입증되었습니다. 트랜스포머의 내부 메커니즘이나 스케일링 계수와 같은 세부 사항을 수정하려는 시도는 대부분 우수한 결과를 내지 못했습니다.
오늘날 여러분이 보고 있는 GPT와 다른 모든 것은 기본적으로 5년 전의 2017년 아키텍처입니다.
안드레이 카르파시(Andrej Karpathy)는 어텐션을 유향 그래프 내에서 통신 단계와 계산 단계가 번갈아 나타나는 것으로 개념화합니다. 이 프레임워크에서 통신 단계는 다중 헤드 어텐션에 의해 처리되어 네트워크의 다른 부분이 정보를 교환할 수 있도록 합니다. 그런 다음 계산 단계는 각 노드 내에서 이 정보를 로컬로 처리하는 다층 퍼셉트론(MLP)을 포함합니다. 트랜스포머의 각 노드는 개인 데이터를 사용하여 쿼리, 키, 값 벡터를 생성하여 이 동적 통신을 용이하게 합니다.
다중 헤드 어텐션은 동일한 어텐션 스키마를 서로 다른 학습된 가중치로 여러 번 병렬로 적용하는 것입니다. 이를 통해 모델은 다양한 관계를 포착하고 입력의 다른 부분에 동시에 집중할 수 있습니다. 자기 어텐션은 특정 형태의 어텐션으로, 입력 시퀀스 자체에서 키 및 값 벡터를 생성하여 시퀀스 내의 토큰이 서로 관련될 수 있도록 합니다.
안드레이 카르파시(Andrej Karpathy)는 GPT-2의 복잡한 작동 방식을 명확히 하기 위해 고안된 교육 도구로 NanoGPT를 소개했습니다. 이 최소주의 구현은 약 300줄의 코드로 간결하게 구성되어 있어 교육 목적으로 매우 가독성이 좋고 접근하기 쉽습니다. 간결함에도 불구하고 NanoGPT는 OpenWebText 데이터셋에서 GPT-2의 동작을 재현할 수 있습니다.
트랜스포머는 원시 텍스트를 직접 처리할 수 없습니다. 입력 데이터의 숫자 표현이 필요합니다. 이를 위해서는 토큰화 및 임베딩을 통해 텍스트를 정수 시퀀스로 인코딩해야 합니다. 문자 또는 서브워드 단위는 고유한 정수로 변환되어 트랜스포머가 이해할 수 있는 숫자 시퀀스를 형성합니다.
블록 크기는 트랜스포머가 처리할 수 있는 최대 문맥 창을 정의하며, 이는 다음 토큰을 예측하는 데 고려할 이전 토큰의 수를 결정합니다. 배치 크기는 동시에 처리되는 시퀀스의 수를 결정하여 병렬화 효율성에 크게 영향을 미칩니다. 유효 배치 크기는 배치 크기와 블록 크기의 곱으로, 특정 시간에 병렬로 처리되는 총 토큰 수를 반영합니다.
자기 어텐션에 의해 촉진되는 통신 단계 동안 시퀀스 내의 토큰은 정보를 교환하고 서로 관계를 설정할 수 있습니다. 이를 통해 모델은 입력 전체에 걸쳐 문맥적 이해를 통합할 수 있습니다. 이어서 계산 단계는 다층 퍼셉트론(MLP)을 포함하며, 통신 단계에서 집계된 정보에 기반하여 각 노드를 독립적으로 처리합니다.
디코더 모델은 토큰이 시퀀스의 미래 토큰에 대한 정보에 액세스하는 것을 방지하기 위해 마스킹을 사용하여 예측이 이전 문맥에만 기반하도록 합니다. 이 마스크를 제거하면 모든 토큰이 자유롭게 통신할 수 있으며, 이는 아키텍처를 효과적으로 인코더로 변환합니다.
안드레이 카르파시(Andrej Karpathy)는 트랜스포머 아키텍처가 입력 데이터와 독립적으로 정적 연결 패턴을 유지한다고 주장합니다. 그는 네트워크의 연결이 처리하는 데이터에 따라 동적으로 변하는 어떠한 예도 관찰하지 못했다고 언급합니다. 인코더의 경우 연결성은 일반적으로 완전히 연결되어 모든 토큰이 서로 상호 작용할 수 있도록 하는 반면, 디코더는 미래 토큰이 현재 예측에 영향을 미치는 것을 방지하기 위해 삼각형 또는 인과적 연결 패턴을 사용합니다.
안드레이 카르파시(Andrej Karpathy)는 원본 트랜스포머 논문과 관련된 역사적 아이러니를 강조하며, 그 저자들이 자신들의 아키텍처가 궁극적으로 미칠 기념비적인 영향을 거의 알지 못했음을 지적했습니다. 2017년에 발표된 이 선구적인 논문은 주로 기계 번역 연구에 대한 기여로 구성되었습니다. 출판 당시에는 트랜스포머 아키텍처의 심오한 확장성, 다양성, 보편적 적용 가능성이 완전히 예측되지 않았습니다.
비전 트랜스포머(ViT)의 경우 이미지는 작은 사각형으로 분할되어 트랜스포머에 입력됩니다. 유사한 슬라이싱 로직이 음성 처리용 오디오 스펙트로그램 및 심지어 강화 학습 궤적에도 적용됩니다.
아키텍처의 설계는 순방향 전달 동안 복잡한 기능을 효과적으로 나타낼 수 있도록 합니다. 잔여 연결 및 레이어 정규화를 포함한 그 구조는 최적화 가능성이 높아 안정적이고 효율적인 훈련을 용이하게 합니다.
순환 신경망(RNN)은 임의의 프로그램을 구현할 수 있는 이론적 능력을 가지고 있음에도 불구하고 직렬 처리 병목 현상으로 인해 상당한 실제적 한계에 직면합니다. 이러한 순차적 특성은 최적화하기 어렵고 현대 하드웨어에는 매우 비효율적입니다. 대조적으로, 트랜스포머는 훈련 중 효율적인 기울기 흐름에 이상적인 얕고 넓은 계산 그래프를 제공합니다.
예를 들어, 이미지는 패치로 분할된 다음 개별 토큰으로 처리됩니다. 마찬가지로 레이더 신호 또는 오디오와 같은 다른 데이터 유형도 분할되어 인코딩됩니다. 데이터의 출처를 식별하기 위해 특별한 학습 가능한 임베딩 토큰이 종종 사용되어 트랜스포머가 이미지, 텍스트 또는 다른 모달리티를 구별할 수 있도록 합니다.
이 접근 방식은 문맥 길이를 고정하되 트랜스포머가 보조 메모리 영역과 상호 작용하도록 가르치는 것을 포함합니다. 네트워크는 프롬프트에 포함된 예제를 통해 특수 토큰을 사용하여 이 스크래치 패드에서 읽고 쓰는 방법을 학습합니다.
자막에서 근거가 되는 대목을 찾아 답합니다.
Tech Bridge의 다음 글도 받아볼까요?
Tech Bridge에 새 영상이 올라오면, 방금 읽으신 것처럼 정리해서 메일로 보내 드릴게요.
이 채널은 지난 7일 동안 23편 올렸어요.