Transformer 모델 소개: 정의 및 작동 방식
게시 됨: 2024-08-07Transformer는 AI, 특히 자연어 처리(NLP) 분야의 획기적인 기술입니다. 성능과 확장성으로 유명한 이 제품은 언어 번역 및 대화형 AI와 같은 애플리케이션에 필수적입니다. 이 기사에서는 신경망의 구조, 다른 신경망과의 비교, 장단점을 살펴봅니다.
목차
- 변압기 모델이란 무엇입니까?
- Transformers 대 CNN 및 RNN
- 변압기 모델의 작동 방식
- 변압기 모델의 예
- 장점
- 단점
변압기 모델이란 무엇입니까?
Transformer는 NLP에서 널리 사용되는 딥러닝 모델의 한 종류입니다. 작업 성능과 확장성으로 인해 GPT 시리즈(OpenAI 제작), Claude(Anthropic 제작), Gemini(Google 제작) 등 모델의 핵심으로 업계 전반에서 광범위하게 사용되고 있습니다.
딥 러닝 모델은 모델 아키텍처, 훈련 데이터, 훈련 방법이라는 세 가지 주요 구성 요소로 구성됩니다. 이 프레임워크 내에서 변환기는 한 종류의 모델 아키텍처를 나타냅니다. 이는 신경망의 구조와 상호 작용을 정의합니다. Transformer를 다른 기계 학습(ML) 모델과 차별화하는 주요 혁신은 "주의"를 사용하는 것입니다.
Attention은 입력을 효율적으로 처리하고 긴 시퀀스(예: 전체 에세이)에 걸쳐 정보를 유지할 수 있도록 하는 변환기의 메커니즘입니다.
여기에 설명할 예가 있습니다. “고양이는 강둑에 앉아 있었어요. 그런 다음 근처 나무 가지로 이동했습니다.” 여기서 "은행"은 돈을 입금하는 은행이 아니라는 것을 알 수 있습니다. 당신은 아마도 그것을 알아내기 위해 “강”이라는 문맥 단서를 사용할 것입니다. 주의도 비슷하게 작동합니다. 각 단어의 의미를 정의하기 위해 다른 단어를 사용합니다. 예에서 "it"은 무엇을 의미합니까? 모델은 "움직임"과 "나무"라는 단어를 답이 "고양이"라는 것을 깨닫는 단서로 간주합니다.
대답하지 않은 중요한 질문은 모델이 어떤 단어를 보아야 하는지 어떻게 아는가입니다. 이에 대해서는 잠시 후에 다루겠습니다. 하지만 이제 변환기 모델을 정의했으므로 이 모델이 왜 그렇게 많이 사용되는지 자세히 설명하겠습니다.
Transformers 대 CNN 및 RNN
순환 신경망(RNN)과 컨볼루션 신경망(CNN)은 다른 두 가지 일반적인 딥 러닝 모델입니다. RNN과 CNN에는 장점이 있지만 변환기는 긴 입력을 훨씬 더 잘 처리하기 때문에 더 널리 사용됩니다.
트랜스포머와 RNN
순환 신경망은 순차 모델입니다. 적절한 비유는 인간이 책을 읽는 것입니다. 한 단어씩 읽으면서 책에 대한 기억과 이해가 발전합니다. 기민한 독자라면 이전에 일어난 일을 바탕으로 다음에 무슨 일이 일어날지 예측할 수도 있습니다. RNN도 같은 방식으로 작동합니다. 단어별로 읽고, 기억을 업데이트하고(숨겨진 상태라고 함) 예측할 수 있습니다(예: 문장의 다음 단어 또는 일부 텍스트의 감정). 단점은 숨겨진 상태가 많은 정보를 담을 수 없다는 것입니다. 책 전체를 RNN에 입력하면 숨겨진 상태에 너무 많은 공간이 있기 때문에 소개 장에 대한 많은 세부 정보를 기억하지 못할 것입니다. 최근에 숨겨진 상태에 추가된 덕분에 이후 장이 우선권을 갖습니다.
Transformer는 동일한 메모리 문제를 겪지 않습니다. 그들은 모든 단어를 입력의 다른 모든 단어와 비교하므로(주의 메커니즘의 일부로) 숨겨진 상태를 사용하거나 이전에 발생한 일을 "기억"할 필요가 없습니다. 동일한 책 비유를 사용하면, 변환기는 책에서 다음 단어를 읽은 다음 새 단어를 제대로 이해하기 위해 책의 모든 이전 단어를 살펴보는 인간과 같습니다. 책의 첫 번째 문장에 "그는 프랑스에서 태어났다"라는 문구가 포함되어 있고 책의 마지막 문장에 "그의 모국어"라는 문구가 포함되어 있다면 변환기는 그의 모국어가 프랑스어라고 추론할 수 있습니다. RNN은 이를 수행하지 못할 수도 있습니다. 왜냐하면 숨겨진 상태가 해당 정보를 유지한다는 보장이 없기 때문입니다. 또한 RNN은 각 단어를 한 번에 하나씩 읽은 다음 숨겨진 상태를 업데이트해야 합니다. 변압기는 주의를 동시에 적용할 수 있습니다.
트랜스포머 대 CNN
컨벌루션 신경망은 순서대로 각 항목의 주변 컨텍스트를 사용하여 의미를 할당합니다. 페이지에 있는 단어의 경우 CNN은 단어의 의미를 파악하기 위해 바로 주변에 있는 단어를 살펴봅니다. 책의 마지막 페이지와 첫 페이지를 연결할 수 없습니다. 픽셀은 종종 단어보다 이웃과 훨씬 더 관련되기 때문에 CNN은 주로 이미지와 함께 사용됩니다. 즉, CNN은 NLP에도 사용될 수 있습니다.
Transformer는 항목의 바로 이웃보다 더 많은 것을 본다는 점에서 CNN과 다릅니다. 그들은 주의 메커니즘을 사용하여 각 단어를 입력의 다른 모든 단어와 비교하여 문맥에 대한 더 광범위하고 포괄적인 이해를 제공합니다.
변압기 모델은 어떻게 작동합니까?
Transformer에는 Attention 블록, 피드포워드 신경망 및 임베딩 계층이 있습니다. 모델은 텍스트 기반 입력을 받아 출력 텍스트를 반환합니다. 이를 위해 다음 단계를 따릅니다.
- 토큰화:텍스트를 토큰으로 변환합니다(문장을 개별 단어로 나누는 것과 유사).
- 임베딩:모델이 입력에서 토큰의 위치를 이해할 수 있도록 위치 임베딩을 통합하여 토큰을 벡터로 변환합니다.
- 주의 메커니즘:self-attention(입력 토큰의 경우) 또는 교차 주의(입력 토큰과 생성된 토큰 간)를 사용하여 토큰을 처리합니다. 이 메커니즘을 통해 모델은 출력을 생성할 때 다양한 토큰의 중요성을 평가할 수 있습니다.
- 피드포워드 신경망:피드포워드 신경망을 통해 결과를 전달합니다. 이를 통해 모델은 비선형성을 도입하여 복잡한 패턴을 캡처할 수 있습니다.
- 반복:출력을 구체화하기 위해 여러 레이어를 통해 3~4단계를 여러 번 반복합니다.
- 출력 분포:가능한 모든 토큰에 대한 확률 분포를 생성합니다.
- 토큰 선택:확률이 가장 높은 토큰을 선택합니다.
이 프로세스는 변환기 모델을 통과하는 하나의 정방향 통과를 구성합니다. 모델은 출력 텍스트가 완료될 때까지 이 작업을 반복적으로 수행합니다. 각 패스 내에서 임베딩 프로세스는 어텐션 메커니즘과 피드포워드 단계와 마찬가지로 병렬로 수행될 수 있습니다. 기본적으로 변환기는 각 토큰을 한 번에 하나씩 수행할 필요가 없습니다. 동시에 모든 토큰에 관심을 집중시킬 수 있습니다.
이제 이전 질문으로 돌아갈 수 있습니다. 모델은 어떤 토큰에 참석해야 하는지 어떻게 알 수 있습니까? 대답은 단순히 많은 훈련 데이터를 보는 것입니다. 처음에는 모델이 잘못된 토큰을 처리하므로 잘못된 출력이 생성됩니다. 훈련 데이터와 함께 제공되는 올바른 출력을 사용하여 주의 메커니즘을 수정하여 다음에 정답을 출력할 수 있습니다. 수십억(심지어 수조)이 넘는 예에서 주의 메커니즘은 거의 항상 적절한 토큰을 선택할 수 있습니다.
변압기 모델의 예
트랜스포머는 어디에나 있습니다. 처음에는 번역용으로 설계되었지만 변환기는 거의 모든 언어, 비전, 심지어 오디오 작업까지 잘 확장되었습니다.
대규모 언어 모델
변환기 아키텍처는 GPT, Claude, Gemini, Llama 및 다수의 소규모 오픈 소스 모델 등 거의 모든 LLM(대형 언어 모델)을 지원합니다. LLM은 질문 답변, 분류, 자유 형식 생성과 같은 다양한 텍스트(그리고 점점 더 많은 이미지 및 오디오) 작업을 처리할 수 있습니다.
이는 수십억 개의 텍스트 예제(보통 인터넷에서 스크랩한)에 대한 변환기 모델을 훈련함으로써 달성됩니다. 그런 다음 회사는 분류 사례에 따라 모델을 미세 조정하여 모델에 분류를 올바르게 수행하는 방법을 가르칩니다. 즉, 모델은 광범위한 지식 기반을 학습한 다음 미세 조정을 통해 기술을 "학습"합니다.
비전 트랜스포머
비전 변환기는 이미지 작업에 적합한 표준 변환기입니다. 가장 큰 차이점은 토큰화 프로세스가 텍스트 대신 이미지로 작동해야 한다는 것입니다. 입력이 토큰으로 변환되면 일반 변환기 계산이 발생하고 마지막으로 출력 토큰을 사용하여 이미지(예: 고양이 이미지)를 분류합니다. 비전 변환기는 종종 텍스트 LLM과 병합되어 다중 모드 LLM을 형성합니다. 이러한 다중 모드 모델은 사용자 인터페이스 스케치를 수락하고 이를 생성하는 데 필요한 코드를 다시 가져오는 등 이미지를 가져와 추론할 수 있습니다.
CNN은 이미지 작업에도 널리 사용되지만 변환기를 사용하면 모델이 인근 픽셀 대신 이미지의 모든 픽셀을 사용할 수 있습니다. 예를 들어, 이미지의 맨 왼쪽에 정지 신호가 있고 맨 오른쪽에 자동차가 포함되어 있는 경우 모델은 자동차가 정지해야 한다고 판단할 수 있습니다. CNN은 두 데이터 포인트가 이미지에서 서로 멀리 떨어져 있기 때문에 연결하지 못할 수도 있습니다.
오디오 변압기
비전 변환기와 같은 오디오 변환기는 오디오 데이터에 맞춰진 고유한 토큰화 체계를 갖춘 표준 변환기입니다. 이러한 모델은 텍스트와 원시 오디오를 모두 입력으로 처리하여 텍스트나 오디오를 출력할 수 있습니다. 이에 대한 예로는 원시 오디오를 대본으로 변환하는 음성-텍스트 모델인 Whisper가 있습니다. 이는 오디오를 청크로 분할하고, 이러한 청크를 스펙트로그램으로 변환하고, 스펙트로그램을 임베딩으로 인코딩하여 이를 수행합니다. 그런 다음 이러한 임베딩은 최종 성적표 토큰을 생성하는 변환기에 의해 처리됩니다.
음성-텍스트 애플리케이션 외에도 오디오 변환기에는 음악 생성, 자동 캡션, 음성 변환 등 다양한 사용 사례가 있습니다. 또한 기업에서는 오디오 변환기를 LLM과 통합하여 음성 기반 상호 작용을 지원함으로써 사용자가 음성 명령을 통해 질문하고 응답을 받을 수 있도록 하고 있습니다.
변압기 모델의 장점
Transformer는 다양한 작업에 대한 확장성과 뛰어난 성능으로 인해 기계 학습 분야에서 널리 사용됩니다. 이들의 성공은 다음과 같은 몇 가지 주요 요인에 기인합니다.
긴 컨텍스트
어텐션 메커니즘은 입력 시퀀스의 모든 토큰을 서로 비교할 수 있습니다. 따라서 전체 입력에 대한 정보가 기억되어 출력을 생성하는 데 사용됩니다. 대조적으로 RNN은 오래된 정보를 잊어버리고 CNN은 각 토큰에 가까운 정보만 사용할 수 있습니다. 이것이 수백 페이지를 LLM 챗봇에 업로드하고 페이지에 대해 질문하고 정확한 응답을 얻을 수 있는 이유입니다. RNN과 CNN의 긴 컨텍스트가 부족하다는 점은 Transformer가 작업에서 RNN을 능가하는가장 큰이유입니다.
병렬성
변환기의 주의 메커니즘은 입력 시퀀스의 모든 토큰에서 병렬로 실행될 수 있습니다. 이는 토큰을 순차적으로 처리하는 RNN과 대조됩니다. 결과적으로 변환기를 더 빠르게 교육하고 배포할 수 있어 사용자에게 더 빠른 응답을 제공할 수 있습니다. 이 병렬 처리 기능은 RNN에 비해 변환기의 효율성을 크게 향상시킵니다.
확장성
연구원들은 변환기의 크기와 이를 훈련하는 데 사용되는 데이터의 양을 지속적으로 늘려 왔습니다. 그들은 아직 트랜스포머가 학습할 수 있는 양에 대한 한계를 보지 못했습니다. 변환기 모델이 클수록 이해하고 생성할 수 있는 텍스트는 더 복잡하고 미묘합니다(GPT-3에는 1,750억 개의 매개변수가 있는 반면 GPT-4에는 1조 개가 넘는 매개변수가 있습니다). 놀랍게도 10억 매개변수 모델을 생성하는 것과 비교하여 100억 매개변수 모델을 생성하는 등 변환기 모델을 확장하는 데는 훨씬 더 많은 시간이 필요하지 않습니다. 이러한 확장성 덕분에 변압기는 다양한 고급 애플리케이션을 위한 강력한 도구가 됩니다.
변압기 모델의 단점
변환기 모델의 단점은 많은 계산 리소스가 필요하다는 것입니다. 주의 메커니즘은 2차 방식입니다. 입력의 모든 토큰은 다른 모든 토큰과 비교됩니다. 2개의 토큰에는 4개의 비교가 있고, 3개의 토큰에는 9개의 비교가 있고, 4개의 토큰에는 16개의 비교가 있습니다. 기본적으로 계산 비용은 토큰 수의 제곱입니다. 이 2차 비용에는 몇 가지 의미가 있습니다.
전문 하드웨어
LLM은 일반 컴퓨터에서는 쉽게 실행할 수 없습니다. 크기 때문에 모델 매개변수를 로드하는 데 수십 기가바이트의 RAM이 필요한 경우가 많습니다. 또한 기존 CPU는 병렬 계산에 최적화되어 있지 않습니다. 대신 GPU가 필요합니다. CPU에서 실행되는 LLM은 단일 토큰을 생성하는 데 몇 분이 걸릴 수 있습니다. 불행하게도 GPU는 가장 저렴하거나 가장 접근하기 쉬운 하드웨어는 아닙니다.
제한된 입력 길이
변환기는 처리할 수 있는 텍스트의 양이 제한되어 있습니다(컨텍스트 길이라고 함). GPT-3는 원래 2,048개의 토큰만 처리할 수 있었습니다. 어텐션 구현의 발전으로 최대 100만 개 토큰의 컨텍스트 길이를 갖춘 모델이 탄생했습니다. 그럼에도 불구하고 컨텍스트 길이의 각 추가 토큰을 찾으려면 상당한 연구가 필요합니다. 대조적으로, RNN에는 최대 컨텍스트 길이가 없습니다. 입력이 증가함에 따라 정확도가 크게 떨어지지만 지금 당장은 2백만 토큰 길이의 입력을 입력할 수 있습니다.
에너지 비용
변압기 계산에 전력을 공급하는 데이터 센터에는 이를 가동하기 위한 에너지와 냉각을 위한 물이 필요합니다. 한 추정에 따르면 GPT-3는 훈련을 위해 1,300MWh의 전기가 필요했습니다. 이는 미국의 130가구에 1년 동안 전력을 공급하는 것과 같습니다. 모델이 커질수록 필요한 에너지 양도 늘어납니다. 2027년까지 AI 산업은 네덜란드만큼 매년 전력을 필요로 할 것이다. 에너지 변압기의 필요성을 줄이기 위해 상당한 노력이 이루어지고 있지만 이 문제는 아직 해결되지 않았습니다.