번역가 | Li Rui
리뷰어 | Sun Shujuan
최근 몇 년 동안 Transformer 기계 학습 모델은 딥 러닝 및 심층 신경망 기술 발전의 주요 특징 중 하나가 되었습니다. 주로 자연어 처리 분야의 고급 응용 프로그램에 사용됩니다. Google은 검색 엔진 결과를 향상시키기 위해 이를 사용하고 있습니다. OpenAI는 Transformer를 사용하여 유명한 GPT-2 및 GPT-3 모델을 만들었습니다.
Transformer 아키텍처는 2017년 데뷔 이후 지속적으로 발전하고 언어 작업에서 다른 도메인까지 다양한 변형으로 확장해 왔습니다. 시계열 예측에 사용되었습니다. 이는 DeepMind의 단백질 구조 예측 모델인 AlphaFold의 핵심 혁신입니다. OpenAI의 소스코드 생성 모델 Codex도 Transformer를 기반으로 합니다. Transformers는 최근 컴퓨터 비전 분야에도 진출하여 많은 복잡한 작업에서 CNN(컨볼루션 신경망)을 서서히 대체하고 있습니다.
연구원들은 여전히 Transformer를 개선하고 새로운 애플리케이션에 사용하는 방법을 모색하고 있습니다. Transformers를 흥미롭게 만드는 요소와 작동 방식에 대한 간단한 설명은 다음과 같습니다.
전통적인 피드포워드 신경망은 시퀀스 데이터를 추적하고 각 입력을 출력에 매핑하도록 설계되지 않았습니다. 이미지 분류와 같은 작업에는 잘 작동하지만 텍스트와 같은 시퀀스 데이터에는 실패합니다. 텍스트를 처리하는 머신러닝 모델은 각 단어를 처리할 뿐만 아니라 단어가 순서대로 배열되고 서로 연관되는 방식도 고려해야 합니다. 그리고 단어의 의미는 문장에서 단어 앞뒤에 나타나는 다른 단어에 따라 바뀔 수 있습니다.
Transformer가 등장하기 전에는 순환 신경망(RNN)이 자연어 처리를 위해 선호되는 솔루션이었습니다. 일련의 단어가 주어지면 RNN(Recurrent Neural Network)은 첫 번째 단어를 처리하고 그 결과를 다음 단어를 처리하는 레이어에 다시 공급합니다. 이를 통해 각 단어를 개별적으로 처리하는 대신 전체 문장을 추적할 수 있습니다.
순환 신경망(RNN)의 단점으로 인해 유용성이 제한됩니다. 첫째, 처리 속도가 매우 느립니다. 데이터를 순차적으로 처리해야 하기 때문에 훈련과 추론을 위해 병렬 컴퓨팅 하드웨어와 그래픽 처리 장치(GPU)를 활용할 수 없습니다. 둘째, 긴 텍스트 시퀀스를 처리할 수 없습니다. 순환 신경망(RNN)이 텍스트 발췌 부분으로 더 깊이 들어갈수록 문장의 처음 몇 단어의 효과는 점차 감소합니다. "그라디언트 소멸"이라고 알려진 이 문제는 연결된 두 단어가 텍스트에서 멀리 떨어져 있을 때 발생합니다. 셋째, 단어와 그 앞에 오는 단어 사이의 관계만 포착합니다. 사실, 단어의 의미는 그 앞과 뒤에 오는 단어에 따라 달라집니다.
장단기 기억(LSTM) 네트워크는 순환 신경망(RNN)의 후속 버전으로, 그라데이션 소실 문제를 어느 정도 해결할 수 있고 더 큰 텍스트 시퀀스를 처리할 수 있습니다. 그러나 LSTM(Long Short-Term Memory)은 RNN(Recurrent Neural Networks)보다 훈련 속도가 훨씬 느리고 여전히 병렬 컴퓨팅을 최대한 활용할 수 없습니다. 그들은 여전히 텍스트 시퀀스의 직렬 처리에 의존합니다.
2017년에 발표된 "Attention is All That Is Needed"라는 논문에서는 Transformer를 소개하면서 Transformer
가 두 가지 중요한 기여를 했다고 밝혔습니다. 첫째, 전체 시퀀스를 병렬로 처리할 수 있게 하여 순차 변환이 가능해졌습니다. 딥 러닝 모델의 용량은 전례 없는 속도로 확장됩니다. 둘째, 앞뒤로 매우 긴 텍스트 시퀀스에서 단어 간의 관계를 추적할 수 있는 "주의 메커니즘"을 도입합니다.
Transformer 모델의 작동 방식을 논의하기 전에 시퀀스 신경망이 해결하는 문제 유형을 논의할 필요가 있습니다.
다양한 차이점에도 불구하고 이러한 모든 유형의 모델에는 한 가지 공통점이 있습니다. 바로 표현을 배운다는 것입니다. 신경망의 역할은 한 유형의 데이터를 다른 유형의 데이터로 변환하는 것입니다. 훈련 중에 신경망의 숨겨진 계층(입력과 출력 사이의 계층)은 입력 데이터 유형의 특성을 가장 잘 나타내는 방식으로 매개변수를 조정하고 이를 출력에 매핑합니다. 원래 Transformer는 기계 번역을 위한 시퀀스-투-시퀀스(seq2seq) 모델로 설계되었습니다(물론 시퀀스-투-시퀀스 모델은 번역 작업에만 국한되지 않습니다). 소스 언어의 입력 문자열을 단어와 단어 간의 관계를 나타내는 벡터로 압축하는 인코더 모듈로 구성됩니다. 디코더 모듈은 인코딩된 벡터를 대상 언어의 텍스트 문자열로 변환합니다.
입력 텍스트를 Transformer에 입력하려면 먼저 처리하고 통합 형식으로 변환해야 합니다. 먼저 텍스트는 "토큰나이저"를 통해 전달되어 개별적으로 처리할 수 있는 문자 덩어리로 나뉩니다. 토큰화 알고리즘은 애플리케이션에 따라 달라질 수 있습니다. 대부분의 경우 각 단어와 구두점은 대략 하나의 토큰으로 계산됩니다. 일부 접미사 및 접두사는 별도의 토큰으로 계산됩니다(예: "ize", "ly" 및 "pre"). 토크나이저는 입력 텍스트의 토큰 ID를 나타내는 숫자 목록을 생성합니다.
토큰은 "단어 임베딩"으로 변환됩니다. 단어 임베딩은 다차원 공간에서 단어의 값을 캡처하려고 시도하는 벡터입니다. 예를 들어, "cat"과 "dog"라는 단어는 둘 다 동물과 애완동물에 관한 문장에서 사용되기 때문에 일부 차원에서 비슷한 값을 가질 수 있습니다. 그러나 고양이와 개를 구별하는 다른 차원에서 "고양이"는 "늑대"보다 "사자"에 더 가깝습니다. 마찬가지로, "파리"와 "런던"은 둘 다 도시이기 때문에 아마도 서로 더 가깝습니다. 그러나 국가의 차원이 다르기 때문에 '런던'은 '영국'에 더 가깝고 '파리'는 '프랑스'에 더 가깝습니다. 그리고 단어 임베딩에는 일반적으로 수백 개의 차원이 있습니다.
단어 임베딩은 Transformer와 별도로 훈련된 임베딩 모델을 통해 생성됩니다. 언어 작업을 위해 사전 훈련된 임베딩 모델이 여러 가지 있습니다.
문장이 단어 임베딩 목록으로 변환되면 Transformer의 인코더 모듈에 입력됩니다. RNN(Recurrent Neural Network) 및 LSTM(Long Short-Term Memory) 모델과 달리 Transformer는 한 번에 하나의 입력을 수신하지 않습니다. 문장 전체에 대한 임베딩 값을 받아 병렬로 처리할 수 있습니다. 이를 통해 Transformer는 이전 제품보다 계산 효율성이 더 높아지고 정방향 및 역방향 시퀀스에서 텍스트 장면을 검사할 수도 있습니다.
문장에서 단어의 순서를 유지하기 위해 Transformer는 "위치 인코딩"을 적용합니다. 이는 기본적으로 각 임베딩 벡터의 값을 수정하여 텍스트에서의 위치를 나타냅니다.
다음으로 입력은 첫 번째 인코더 블록으로 전달되어 "주의 레이어"를 통해 처리됩니다. 어텐션 레이어는 문장 내 단어 간의 관계를 포착하려고 시도합니다. 예를 들어, "큰 검은 고양이가 병을 옆으로 떨어뜨린 후 길을 건넜습니다."라는 문장을 생각해 보세요. 여기서 모델은 "it"을 "cat"과 연결하고 "its"를 "bottle"과 연결해야 합니다. 따라서 "큰" 및 "고양이" 또는 "교차" 및 "고양이"와 같은 다른 연관을 설정해야 합니다. 그렇지 않으면 Attention 레이어는 개별 단어 값을 나타내는 단어 임베딩 목록을 수신하고 개별 단어와 그 관계를 나타내는 벡터 목록을 생성합니다. Attention 레이어에는 여러 개의 "attention head"가 포함되어 있으며 각 헤드는 단어 간의 다양한 유형의 관계를 캡처할 수 있습니다.
주의 레이어의 출력은 피드포워드 신경망에 공급되어 이를 벡터 표현으로 변환하고 다음 주의 레이어로 보냅니다. Transformers
에는 여러 개의 어텐션 블록과 피드포워드 레이어가 포함되어 있어 점점 더 복잡한 관계를 포착할 수 있습니다.
디코더 모듈은 인코더의 주의 벡터를 출력 데이터(예: 입력 텍스트의 번역된 버전)로 변환하는 작업을 수행합니다. 훈련 단계에서 디코더는 인코더가 생성한 주의 벡터와 예상 결과(예: 번역된 문자열)에 액세스할 수 있습니다.
디코더는 동일한 토큰화, 단어 임베딩 및 주의 메커니즘을 사용하여 예상 결과를 처리하고 주의 벡터를 생성합니다. 그런 다음 이 어텐션 벡터와 어텐션 레이어를 인코더 모듈에 전달하여 입력 값과 출력 값 간의 관계를 설정합니다. 번역 애플리케이션에서 원어와 목표어의 단어를 서로 매핑하는 부분이다. 인코더 모듈과 마찬가지로 디코더 주의 벡터는 피드포워드 레이어를 통해 전달됩니다. 그런 다음 결과는 매우 큰 벡터 풀, 즉 대상 데이터의 크기(번역의 경우 수만 단어가 포함될 수 있음)에 매핑됩니다.
교육 중에 Transformer에는 매우 큰 쌍의 예(예: 영어 문장 및 해당 프랑스어 번역)가 제공됩니다. 인코더 모듈은 전체 입력 문자열을 수신하고 처리합니다. 그러나 디코더는 출력 문자열의 마스크된 버전(한 번에 한 단어)을 수신하고 인코딩된 주의 벡터와 예상 결과 사이의 매핑을 설정하려고 시도합니다. 인코더는 다음 단어를 예측하려고 시도하고 출력과 예상 결과 간의 차이를 기반으로 수정합니다. 이 피드백을 통해 변환기는 인코더와 디코더의 매개변수를 수정하고 점차적으로 입력 언어와 출력 언어 간의 올바른 매핑을 생성할 수 있습니다.
Transformer에 포함된 훈련 데이터와 매개변수가 많을수록 긴 텍스트 시퀀스에서 일관성과 일관성을 더 잘 유지할 수 있습니다.
위에서 연구한 기계 번역 예에서 Transformer의 인코더 모듈은 영어 단어와 문장 간의 관계를 학습하고 디코더는 영어와 프랑스어 간의 매핑을 학습합니다.
그러나 모든 Transformer 애플리케이션에 인코더 및 디코더 모듈이 필요한 것은 아닙니다. 예를 들어, 대규모 언어 모델의 GPT 제품군은 디코더 모듈 스택을 사용하여 텍스트를 생성합니다. BERT는 Google 연구원이 개발한 Transformer 모델의 또 다른 변형이지만 인코더 모듈만 사용합니다.
이러한 아키텍처 중 일부의 장점은 자기 지도 학습이나 비지도 학습을 통해 훈련할 수 있다는 것입니다. 예를 들어, BERT는 레이블이 지정되지 않은 대규모 텍스트 모음을 가져와 일부를 마스킹하고 누락된 부분을 예측하는 방식으로 대부분의 학습을 수행합니다. 그런 다음 예측이 실제 데이터와 얼마나 가깝거나 멀리 떨어져 있는지에 따라 매개변수를 조정합니다. BERT는 이 과정을 지속적으로 반복함으로써 서로 다른 장면에서 서로 다른 단어 간의 관계를 포착합니다. 이 사전 훈련 단계 후에 BERT는 소수의 레이블이 지정된 예제에 대한 훈련을 통해 질문 답변, 텍스트 요약 또는 감정 분석과 같은 다운스트림 작업에 맞게 미세 조정할 수 있습니다. 비지도 사전 훈련과 자체 감독 사전 훈련을 사용하면 훈련 데이터에 주석을 추가하는 데 필요한 노력을 줄일 수 있습니다.
Transformers와 그들이 잠금 해제하는 새로운 앱에 대한 더 많은 정보가 있지만 이는 이 기사의 범위를 벗어납니다. 연구원들은 여전히 Transformer로부터 더 많은 도움을 받을 수 있는 방법을 찾고 있습니다.
Transformer는 또한 언어 이해와 일반 인공 지능에 대한 토론을 촉발시켰습니다. 분명한 것은 Transformer가 다른 신경망과 마찬가지로 영리하고 정교한 방식으로 데이터의 규칙성을 포착할 수 있는 통계 모델이라는 것입니다. 그들은 인간처럼 언어를 "이해"하지는 않지만, 그들의 발전은 여전히 흥미롭고 훨씬 더 많은 것을 제공합니다.
원본 링크: https://bdtechtalks.com/2022/05/02/what-is-the-transformer/
위 내용은 Transformer 기계 학습 모델이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!