>  기사  >  기술 주변기기  >  Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

WBOY
WBOY앞으로
2023-06-05 18:05:271576검색

Transformer를 소개하기 전에 RNN의 구조를 검토해 보겠습니다

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

RNN에 대해 어느 정도 이해하고 있다면 RNN에 두 가지 명백한 문제가 있다는 것을 확실히 알 수 있을 것입니다

  • 효율성 문제: 단어별 처리의 경우 이전 단어의 숨겨진 상태가 출력될 때까지 다음 단어를 처리할 수 없습니다. 전송 거리가 너무 길면 기울기 소멸, 기울기 폭발 및 망각 문제가 발생합니다. 전송 및 망각 문제, 다양한 RNN 셀이 설계되었으며 가장 유명한 두 가지 셀은 LSTM과 GRU
  • LSTM(Long Short Term Memory)

GRU(Gated Recurrent Unit)

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

하지만 온라인 블로거의 비유를 인용하자면, 이렇게 하는 것은 마차의 바퀴를 자동차로 바꾸는 것과 같습니다.

그래서 이번 글에서 소개할 핵심 구조는 Transformer입니다. Transformer는 Google Brain 2017에서 제안한 작품입니다. RNN의 약점을 재설계하고 RNN 효율성 문제와 전송 결함을 해결하며 많은 문제에서 RNN의 성능을 능가합니다. Transformer의 기본 구조는 아래 그림과 같습니다. 즉, 각 Transformer 단위는 전체 문장의 모든 단어를 수신합니다. 입력으로 사용하고 문장의 각 단어를 제공합니다. 각 단어는 출력을 생성합니다. 그러나 RNN과 달리 Transformer는 문장의 모든 단어를 동시에 처리할 수 있으며 두 단어 사이의 작동 거리는 1입니다. 이는 위에서 언급한 RNN의 효율성 문제와 거리를 효과적으로 해결합니다.

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

각 Transformer 유닛에는 가장 중요한 두 가지 하위 계층, 즉 Self-Attention 계층과 Feed Forward 계층이 있습니다. 이 두 계층의 자세한 구조는 나중에 소개됩니다. 이 기사에서는 Transformer를 사용하여 Seq2Seq와 유사한 언어 번역 모델을 구축하고 인코더 및 디코더에 대한 두 가지 서로 다른 Transformer 구조를 설계합니다.

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

인코더 변환기와 비교하여 디코더 변환기에는 인코더의 출력을 매개변수로 수신하는 데 사용되는 추가 인코더-디코더 주의 레이어가 있습니다. 마지막으로 아래 그림과 같이 쌓아 올리면 Transformer Seq2Seq의 구조가 완성된다.

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

이 Transformer Seq2Seq를 번역에 사용하는 방법에 대한 예를 들어주세요

먼저 Transformer는 문장을 원래 언어로 인코딩하여 메모리를 얻습니다. Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

처음 디코딩할 때 입력에는 문장의 시작을 나타내는 기호만 있습니다.

  • 디코더는 문장의 첫 번째 단어를 예측하는 데 사용되는 이 고유한 입력에서 고유한 출력을 얻습니다.
  • 첫 번째 출력을 입력에 추가합니다. 입력은 가 되고 문장의 첫 번째 단어(이전 단계의 실제 또는 예측)가 생성됩니다. 문장의 두 번째 단어를 예측하는 데 사용됩니다. 비유하자면(프로세스는 Seq2Seq와 매우 유사합니다)
  • Transformer의 일반적인 구조와 이를 사용하여 번역 작업을 완료하는 방법을 이해한 후 Transformer의 세부 구조를 살펴보겠습니다.

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

핵심 구성 요소는 위에서 언급한 Self-Attention 및 Feed Forward Networks이지만, 그 외에도 많은 세부 사항이 있습니다. 다음으로 Transformer 구조를 구조별로 해석해 보겠습니다.

Self Attention

Self Attention은 문장의 단어가 모든 단어에 주의를 기울이는 것을 말합니다. 이 단어에 대한 각 단어의 가중치를 계산한 다음 이 단어를 모든 단어의 가중치 합계로 나타냅니다. 각 Self Attention 작업은 각 단어에 대한 Convolution 작업 또는 Aggregation 작업과 같습니다. 구체적인 연산은 다음과 같습니다.

먼저 각 단어는 3개로 나누어진 3개의 행렬 Wq, Wk, Wv를 통해 선형 변화를 거치며 각 단어 고유의 쿼리, 키, 벡터가 생성됩니다. 단어를 중심으로 Self Attention을 수행할 때 해당 단어의 key 벡터를 이용하여 각 단어의 query 벡터와 내적을 한 후 Softmax를 통해 가중치를 정규화한다. 그런 다음 이 가중치를 사용하여 이 단어의 출력으로 모든 단어 벡터의 가중치 합계를 계산합니다. 구체적인 과정은 아래 그림과 같습니다

정규화 전 벡터의 차원 dk로 나누어 표준화해야 최종 Self Attention은

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

마지막으로 각 Self를 표현할 수 있습니다. 주의는 행렬 변환으로 표현될 수 있습니다. n개의 단어 벡터를 입력으로 받아들이고 n개의 집계된 벡터를 출력합니다.

위에서 언급했듯이 인코더의 Self Attention은 디코더의 그것과 다릅니다. 인코더의 Q, K, V는 모두 이전 레이어 유닛의 출력에서 ​​나온 반면 디코더에서는 Q만입니다. 이전 디코더 유닛에서 나오며, K와 V는 모두 인코더의 마지막 레이어의 출력에서 ​​나옵니다. 즉, Decoder는 현재 상태와 Encoder의 출력을 통해 가중치를 계산한 후 Encoder의 인코딩에 가중치를 부여하여 다음 레이어의 상태를 구합니다.

Masked Attention

위의 구조 다이어그램을 관찰하면 Decoder와 Encoder의 또 다른 차이점도 찾을 수 있습니다. 즉, 각 Decoder 유닛의 입력 레이어는 먼저 Masked Attention 레이어를 통과해야 합니다. 그렇다면 Masked와 Attention의 일반 버전의 차이점은 무엇입니까?

인코더는 전체 문장을 인코딩하려고 하기 때문에 각 단어의 맥락을 고려해야 합니다. 따라서 각 단어의 계산 과정에서 문장의 모든 단어를 볼 수 있습니다. 그러나 Decoder는 Seq2Seq의 디코더와 유사합니다. 각 단어는 이전 단어의 상태만 볼 수 있으므로 단방향 Self-Attention 구조입니다.

Masked Attention의 구현도 매우 간단합니다. 일반 Self Attention

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

Multi-Head Attention

Multi-Head Attention은 위의 Attention을 h번 수행한 다음 h 출력을 연결하여 최종 출력을 얻는 것입니다. 이는 알고리즘의 안정성을 크게 향상시킬 수 있으며 많은 Attention 관련 작업에 관련 적용이 가능합니다. Transformer 구현에서는 Multi-Head의 효율성을 높이기 위해 W를 h배로 확장한 후 같은 단어의 서로 다른 헤드의 k, q, v를 함께 배열하여 뷰를 통한 동시 계산(reshape) ) 및 전치 연산을 수행하여 계산을 완료한 다음 reshape 및 전치를 통해 다시 접합을 완료합니다. 이는 모든 헤드를 병렬 처리하는 것과 같습니다.

Position-wise Feed Forward Networks

Encoder와 Decoder에서 Attention에 의해 출력된 n개의 벡터(여기서 n은 단어 수)는 각각 완전히 연결된 레이어에 입력되고 위치별 A를 완성합니다. 피드포워드 네트워크.

추가 및 표준

은 한 레이어의 입력과 표준화된 출력을 추가하는 잔여 네트워크입니다. Transformer의 각 Self Attention 레이어와 FFN 레이어 뒤에는 Add & Norm 레이어가 옵니다.

Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

Positional Encoding

Transformer에는 RNN이나 CNN이 없기 때문에 문장의 모든 단어가 동일하게 취급되므로 단어 간의 순차적 관계가 없습니다. 즉, Bag-of-words 모델과 동일한 단점을 겪을 가능성이 높습니다. 이 문제를 해결하기 위해 Transformer는 각 입력 단어 벡터에 고정 벡터를 중첩하여 위치를 나타내는 위치 인코딩 솔루션을 제안했습니다. 기사에 사용된 위치 인코딩은 다음과 같습니다.

여기서 pos는 문장 내 단어의 위치, i는 단어 벡터의 i번째 위치, 즉 각 단어의 단어 벡터가 중첩됩니다. 하나의 행으로 묶은 다음, 각 열에 위상이 다르거나 파장이 점차 증가하는 웨이브를 겹쳐서 위치를 고유하게 구분합니다.

Transformer 워크플로

Transformer의 워크플로는 위에서 소개한 각 하위 프로세스를 접합하는 것입니다.

  • 입력 단어 벡터는 먼저 위치 인코딩으로 중첩된 다음 Transformer에 입력됩니다
  • 각 인코더 변환기는 Multi-head self attention->Add & Normalize->FFN->Add & Normalize 프로세스를 수행한 후 출력을 다음 인코더에 입력합니다.
  • 마지막 인코더의 출력은 메모리로 유지됩니다
  • 각 디코더 Transformer는 Masked Multi-head self attention->Multi-head self attention->Add & Normalize->FFN->Add & Normalize 프로세스를 수행합니다. 머리 자기 주의 동안의 다중 K와 V는 인코더의 메모리에서 나옵니다. 작업 요구 사항에 따라 필요한 Embedding의 마지막 레이어를 출력합니다.
  • Transformer의 출력 벡터를 사용하여 다양한 다운스트림 작업을 수행할 수 있습니다

GitHub 링크: https://github.com/harvardnlp/annotated-transformer

Post Scriptum

Transformer 기사에서는 자연어 번역 모델이 제안되었지만 많은 기사에서는 이 모델을 Transformer라고 부릅니다. 그러나 우리는 여전히 기사에서 Self-Attention을 사용하는 인코더 또는 디코더의 하위 구조를 Transformer라고 부르는 경향이 있습니다. 텍스트와 소스 코드에는 학습률의 동적 변화, Residual Dropout 및 Label Smoothing과 같은 다른 많은 최적화도 포함되어 있습니다. 여기서는 자세히 설명하지 않겠습니다. 관심 있는 친구는 관련 참고 자료를 읽어 자세히 알아볼 수 있습니다.

단방향 2단계 학습 모델 - OpenAI GPT

GPT(Generative Pre-Training)는 OpenAI가 2018년에 제안한 모델입니다. Transformer 모델을 사용하여 분류, 추론 등 다양한 자연어 문제를 해결합니다. , 질문 및 답변, 유사성 및 기타 응용 프로그램 모델. GPT는 사전 훈련 + 미세 조정 훈련 모드를 채택하여 레이블이 지정되지 않은 대량의 데이터를 활용하여 이러한 문제의 효율성을 크게 향상시킵니다.

GPT는 Transformer를 사용하여 다양한 자연어 작업을 수행하려는 시도 중 하나이며 주로 다음 세 가지 핵심 사항을 가지고 있습니다. 다양한 입력 데이터 구조에 따른 미세 조정 변경

  • 이미 Transformer의 원리를 이해했다면 위의 세 가지 내용만 이해하면 GPT에 대한 더 깊은 이해가 가능합니다.
  • 사전 훈련 방법
  • 많은 기계 학습 작업에는 레이블이 지정된 데이터 세트가 입력으로 필요합니다. 하지만 우리 주변에는 텍스트, 그림, 코드 등 라벨이 지정되지 않은 데이터가 많이 있습니다. 이 데이터에 라벨을 붙이는 데는 많은 인력과 시간이 필요하고, 라벨링 속도는 데이터 생성 속도에 비해 훨씬 느리기 때문에 라벨이 붙은 데이터는 전체 데이터 세트 중 작은 부분만을 차지하는 경우가 많습니다. 컴퓨팅 성능이 지속적으로 향상됨에 따라 컴퓨터가 처리할 수 있는 데이터의 양은 점차 증가합니다. 이렇게 라벨이 지정되지 않은 데이터를 제대로 활용할 수 없다면 낭비가 될 것입니다.

    그래서 준지도 학습과 사전 훈련 + 미세 조정의 2단계 모델이 점점 인기를 얻고 있습니다. 가장 일반적인 2단계 방법은 Word2Vec입니다. 이는 레이블이 지정되지 않은 대량의 텍스트를 사용하여 특정 의미 정보로 단어 벡터를 훈련한 다음 이러한 단어 벡터를 다운스트림 기계 학습 작업의 입력으로 사용하여 일반화 능력을 크게 향상시킬 수 있습니다. 다운스트림 모델.

    하지만 Word2Vec에는 문제가 있습니다. 즉, 단일 단어에는 하나의 Embedding만 가질 수 있다는 것입니다. 이런 식으로는 다의성을 잘 표현할 수 없다.

    ELMo는 먼저 bi-LSTM 기반의 언어 모델을 사용하여 사전 훈련 단계에서 각 어휘 세트에 대한 문맥 정보를 제공하여 문맥 의미 정보를 단어 벡터에 가져오는 것을 생각했습니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    위 공식은 각각 왼쪽과 오른쪽 LSTM-RNN을 나타냅니다. 이전) 구체적인 구조는 아래 그림과 같습니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    그러나 ELMo는 RNN을 사용하여 사전 학습을 완료합니다. 언어 모델, 그렇다면 Transformer를 사용하여 사전 훈련을 완료하는 방법은 무엇입니까?

    단방향 Transformer 구조

    OpenAI GPT는 단방향 Transformer를 사용하여 이 사전 훈련 작업을 완료합니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    단방향 변압기란 무엇인가요? Transformer 기사에서는 Encoder와 Decoder에서 사용하는 Transformer Block이 다르다고 언급하고 있습니다. Decoder Block에서는 Masked Self-Attention이 사용됩니다. 즉, 문장의 각 단어는 자신을 포함한 이전 단어에만 주의를 기울일 수 있습니다. GPT에서 사용하는 Transformer 구조는 Encoder의 Self-Attention을 Masked Self-Attention으로 대체하는 것입니다. 구체적인 구조는 아래 그림과 같습니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    단방향 Transformer를 사용하므로, 위의 내용은 단어로 표시되므로 언어 ​​모델은 다음과 같습니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    학습 과정은 실제로 매우 간단합니다. 즉, 문장에 n 단어로 구성된 단어 벡터를 추가하는 것입니다(첫 번째는 )에 Positional Encoding을 더한 후 에 입력합니다. 앞에서 언급한 Transfromer에서는 n개의 출력이 해당 위치의 다음 단어를 예측합니다. (는 문장의 첫 번째 단어를 예측하고 마지막 단어의 예측 결과는 언어에 사용되지 않습니다. 모델 훈련).

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    Masked Self-Attention을 사용하기 때문에 각 위치의 단어는 다음 단어를 "보지" 않습니다. 즉, 예측 중에 "답변"이 보이지 않아 합리성을 보장합니다. model. 이것이 OpenAI가 단방향 Transformer를 사용하는 이유입니다.

    다양한 입력 데이터 구조의 미세 조정 및 변경

    다음으로, 소량의 레이블이 지정된 데이터를 사용하여 모델 매개변수를 미세 조정하는 모델 학습의 두 번째 단계로 들어갑니다.

    이전 단계에서는 마지막 단어의 출력을 사용하지 않았습니다. 이 출력을 다운스트림 지도 학습의 입력으로 사용합니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    미세 조정으로 인해 모델이 과적합되는 것을 방지하기 위해 이 기사에서는 다중 작업 모델이나 반지도 학습과 유사한 보조 훈련 목표 방법도 언급합니다. 구체적인 방법은 이전 단어의 비지도 학습을 계속하면서 지도 학습을 위한 마지막 단어의 예측 결과를 사용하여 최종 손실 함수가 다음과 같이 되는 것입니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    다른 작업의 경우 입력 데이터는 형식:

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    • 분류: 분류 문제의 경우 수정이 필요하지 않습니다.
    • 수립: 추론 문제의 경우 사전과 가설은 구분 기호로 구분될 수 있습니다.
    • 유사성: 유사성 문제의 경우 모델은 단방향이지만 유사성은 순서와 관련이 없기 때문입니다. 따라서 최종 추측을 위해서는 두 문장의 순서를 반대로 한 후 두 입력의 결과를 더해야 최종 추측이 가능합니다
    • 객관식: 질문 및 답변 질문의 경우 문맥과 질문을 함께 모아서 분리합니다.

    GitHub 링크: https://github.com/openai/finetune-transformer-lm

    Post Scriptum

    OpenAI GPT는 다음을 기반으로 합니다. Transformer와 2단계 훈련 방법을 사용하여 좋은 탐색을 했고 매우 좋은 결과를 얻었으며 나중에 BERT를 위한 길을 열었습니다.

    양방향 2단계 학습 모델 - BERT

    BERT(Bidirection Encoder Representation from Transformer)는 Google Brain이 2018년에 제안한 Transformer 기반의 자연어 표현 프레임워크입니다. 제안되자마자 큰 인기를 끌었던 스타 모델입니다. GPT와 마찬가지로 BERT는 Pre-training + Fine-tuning의 학습 방법을 채택하고 분류 및 라벨링과 같은 작업에서 더 나은 결과를 얻습니다.

    BERT는 GPT와 매우 유사합니다. 둘 다 Transformer를 기반으로 하는 2단계 훈련 모델입니다. 둘 다 사전 훈련과 미세 조정의 두 단계로 구분됩니다. 둘 다 감독 없이 사전 훈련 단계에서 범용 모델을 훈련합니다. Transformer 모델을 선택한 다음 미세 조정 단계에서 이 모델의 매개변수를 미세 조정하여 다양한 다운스트림 작업에 적용합니다.

    BERT와 GPT는 매우 유사해 보이지만 훈련 목표와 모델 구조 및 용도는 여전히 약간 다릅니다.

    • GPT는 단방향 변환기를 사용하는 반면 BERT는 양방향 변환기, 즉 마스크가 없음을 사용합니다.
    • 직접 사용되는 다양한 구조는 사전 교육 단계에서 다양한 교육 목표로 이어집니다.

    양방향 변환기

    BERT는 마스크가 없는 변환기는 인코더 변환기와 완전히 동일합니다. Transformer 기사의 구조:

    GPT에서는 언어 모델의 학습이 완료되어야 하기 때문에 다음 단어를 예측할 때 현재 단어와 현재 단어만 볼 수 있도록 사전 학습이 필요합니다. , 이는 GPT가 Transformer의 원래 양방향 구조를 버리고 단방향 구조를 채택한 이유이기도 합니다.

    BERT는 GPT처럼 상황 정보를 완전히 포기하는 대신 상황 정보를 동시에 얻기 위해 양방향 변환기를 사용합니다. 하지만 이런 식으로 GPT와 같은 사전 학습에 일반 언어 모델을 사용하는 것은 더 이상 불가능합니다. 왜냐하면 BERT의 구조로 인해 이 출력을 사용하여 무엇을 예측하든 각 Transformer의 출력이 전체 문장을 볼 수 있기 때문입니다. 당신은 "그것을 본다" "참조 답변, "그 자체를 본다"는 질문입니다. ELMo는 양방향 RNN을 사용하지만 두 RNN이 독립적이기 때문에 자체적으로 보는 문제를 피할 수 있습니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    사전 훈련 단계

    그런 다음 BERT가 양방향 Transformer 모델을 사용하려면 GPT에서 사전 훈련 목적 함수로 사용되는 언어 모델을 포기해야 합니다. 대신 BERT는 완전히 다른 사전 훈련 방법을 제안합니다.

    • Masked Language Model (MLM)

    Transformer에서 우리는 위의 정보뿐만 아니라 다음의 정보도 알고 싶어하지만 동시에 전체 내용이 모델은 예측할 단어 정보를 알지 못하므로 모델에 단어에 대한 정보를 알려주지 않습니다. 즉, BERT는 입력 문장에서 예측해야 할 일부 단어를 발굴한 후 문맥을 통해 문장을 분석하고 최종적으로 해당 위치의 출력을 사용하여 더그 단어를 예측합니다. 실제로 클로즈를 하는 것과 같습니다.

    그러나 많은 수의 단어를 태그로 직접 대체하면 모델은 의 해당 출력만 예측하면 되고 다른 위치의 출력은 예측하면 된다고 생각할 수 있습니다. 중요하지. 동시에 Fine-Tuning 단계의 입력 데이터에는 태그가 없으며, 데이터 분포가 다른 문제도 있습니다. 이러한 훈련의 영향을 줄이기 위해 BERT는 다음 방법을 채택합니다.

    1. 예측을 위해 입력 데이터에서 15%의 단어를 무작위로 선택합니다. 단어 벡터가 입력되면

    3.10%의 단어 벡터가 입력 시 다른 단어의 단어 벡터로 대체됩니다

    4. 나머지 10%는 그대로 유지됩니다.

    이렇게 하면 내가 답을 줄 수도 있고, 답을 주지 않을 수도 있고, 틀린 답을 줄 수도 있다고 모델에게 알려주는 것과 같습니다. 가 있는 곳에 확인하겠습니다. 그리고 가 없는 경우에는 귀하의 답변도 확인하여 태그가 귀하에게 특별한 의미를 가지지 않도록 할 것이므로 모든 항목에 대한 결과를 잘 예측해야 합니다. 어쨌든 위치.

    다음 문장 예측(NSP)

    • BERT는 MLM과 동시에 수행되어 다중 작업 사전 훈련을 형성하는 또 다른 사전 훈련 방법 NSP도 제안했습니다. 이 사전 학습 방법은 Transformer에 두 개의 연속된 문장을 입력하고, 그 출력은 두 문장 사이에 연속적인 문맥 관계가 있는지 확인하는 데 사용됩니다. 네거티브 샘플링 방법이 사용되며, 포지티브 및 네거티브 샘플이 각각 50%를 차지합니다.

    BERT는 두 문장의 문맥을 구별하기 위해 Positional Encoding을 추가할 뿐만 아니라, 두 문장을 구별하기 위해 사전 학습 과정에서 학습해야 하는 Segment Embedding도 추가합니다. 이러한 방식으로 BERT의 입력은 단어 벡터, 위치 벡터 및 세그먼트 벡터의 세 부분의 추가로 구성됩니다. 또한 두 문장은 태그를 사용하여 구별됩니다.

    전체 사전 교육의 개략도는 다음과 같습니다. Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2Fine-Tuning 단계

    BERT의 Fine-Tuning 단계는 GPT와 크게 다르지 않습니다. 양방향 Transformer를 사용하기 때문에 GPT가 Fine-Tuning 단계에서 사용하는 보조 훈련 대상인 언어 모델은 폐기됩니다. 또한, 분류 예측을 위한 출력 벡터는 GPT의 마지막 단어의 출력 위치에서 문장 시작 부분의 위치로 변경됩니다. 다양한 작업에 대한 Fine-Tuning의 개략도는 다음과 같습니다:

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    GitHub 링크: https://github.com/google-research/bert

    Post Scriptum

    개인적으로 BERT는 GPT 모델의 트레이드오프일 뿐입니다. 두 단계에서 동시에 문장 문맥 정보를 얻기 위해 양방향 Transformer 모델을 사용합니다. 하지만 이를 위해서는 전통적인 언어 모델을 잃는 대가를 치르고 대신 사전 훈련을 위해 MLM+NSP와 같은 더 복잡한 방법을 사용해야 합니다.

    다중 작업 모델 - MT-DNN

    MT-DNN(다중 작업 심층 신경망)은 여전히 ​​BERT의 2단계 훈련 방법과 양방향 변환기를 사용합니다. Pre-Training 단계에서 MT-DNN은 BERT와 거의 동일하지만 Fine-Tuning 단계에서는 MT-DNN이 다중 작업 미세 조정 방법을 채택합니다. 동시에 Transformer의 컨텍스트 임베딩 출력은 단일 문장 분류, 텍스트 쌍 유사성, 텍스트 쌍 분류, 질문 및 답변과 같은 작업에 대한 훈련에 사용됩니다. 전체 구조는 아래 그림과 같습니다.

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    GitHub 링크: https://github.com/namisan/mt-dnn

    단방향 일반 모델 - GPT-2

    GPT-2 GPT에서 원래 사용했던 단방향 Transformer 모델이 계속 사용되고 있으며, 이 글의 목적은 BERT에서 사용하는 양방향 Transformer가 하는 일을 하기 위해 단방향 Transformer를 최대한 활용하는 것입니다. 할 수 없다. 이는 위에서 다음 텍스트를 생성하는 것입니다.

    GPT-2의 아이디어는 Fine-Tuning 프로세스를 완전히 포기하고 대신 더 큰 용량, 비지도 학습 및 보다 일반적인 언어 모델을 사용하여 다양한 작업을 완료하는 것입니다. 많은 태그에 포함된 정보가 말뭉치에 존재하기 때문에 이 모델이 어떤 작업을 수행해야 하는지 정의할 필요가 전혀 없습니다. 사람이 책을 많이 읽는 것처럼, 읽은 내용을 바탕으로 쉽게 자동으로 요약하고, 질문에 답하고, 계속해서 기사를 쓸 수 있습니다.

    엄밀히 말하면 GPT-2는 다중 작업 모델이 아닐 수도 있지만 동일한 모델과 동일한 매개변수를 사용하여 다양한 작업을 완료합니다.

    보통 우리는 특정 작업을 위한 전용 모델을 훈련합니다. 입력이 주어지면 작업의 해당 출력을 반환할 수 있습니다. 즉,

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    일반 모델을 설계하려면 이 모델을 사용하세요. 입력을 지정하는 것 외에도 작업 유형도 지정한 다음 주어진 입력과 작업을 기반으로 해당 출력을 만들어야 합니다. 그러면 모델은 다음과 같이 표현할 수 있습니다

    Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2

    저와 같습니다. 문장을 번역하려면 번역 모델을 특별히 설계해야 합니다. 질문과 답변 시스템을 원한다면 질문과 답변 모델을 특별히 설계해야 합니다. 그러나 모델이 충분히 똑똑하고 컨텍스트를 기반으로 컨텍스트를 생성할 수 있다면 입력에 몇 가지 식별자를 추가하여 다양한 문제를 구분할 수 있습니다. 예를 들어, ('자연어 처리', 중국어 번역) 자연어 처리가 필요한 결과를 얻기 위해 직접 그에게 요청할 수 있습니다. 제가 보기에는 GPT-2는 주어진 업무의 식별자를 알려줌으로써 다양한 분야와 업무에 대한 질문과 답변에 적절한 답변을 할 수 있는 전지적 질의응답 시스템에 가깝습니다. GPT-2는 제로샷 설정을 충족하므로 훈련 과정에서 어떤 작업을 완료해야 하는지 알려줄 필요가 없으며 예측을 통해 보다 합리적인 답변을 얻을 수도 있습니다.

    그렇다면 위의 요구 사항을 충족하기 위해 GPT-2는 무엇을 했나요?

    데이터 세트 확장하기

    먼저 모델을 잘 읽을 수 있게 만드는 것입니다. 훈련 샘플이 충분하지 않은 경우 어떻게 추론할 수 있나요? 이전 작업은 특정 문제에 중점을 두었기 때문에 데이터 세트가 상대적으로 일방적이었습니다. GPT-2는 더 크고 광범위한 데이터세트를 수집합니다. 동시에 우리는 이 데이터 세트의 품질을 보장하고 고품질 콘텐츠가 포함된 웹페이지를 유지해야 합니다. 마지막으로 800만 개의 텍스트, 40G 데이터 세트 WebText가 형성되었습니다.

    네트워크 용량 확장

    책이 너무 많으면 일부는 가지고 다녀야 합니다. 그렇지 않으면 책 내용을 기억할 수 없게 됩니다. 네트워크의 용량을 늘리고 더 강력한 학습 잠재력을 갖기 위해 GPT-2는 Transformer 스택 레이어 수를 48개 레이어로 늘렸고, 숨겨진 레이어의 차원은 1600개, 매개변수 수는 15억 개에 도달했습니다.

    네트워크 구조 조정

    GPT-2는 어휘를 50257로 늘리고, 최대 컨텍스트 크기(컨텍스트 크기)는 GPT의 512에서 1024로, 배치 크기는 512에서 1024로 늘어납니다. 또한 Transformer에 대한 작은 조정이 이루어졌으며 각 하위 블록 앞에 정규화 레이어가 추가되었으며 잔여 레이어의 초기화 방법이 변경된 후에 정규화 레이어가 추가되었습니다.

    GitHub 링크: https://github.com/openai/gpt-2

    Post Scriptum

    사실 GPT-2의 가장 놀라운 점은 극도로 강력한 세대라는 점입니다. 이러한 강력한 생성 능력은 주로 데이터 품질과 놀라운 수의 매개변수 및 데이터 규모에 기인합니다. GPT-2의 매개변수 수가 너무 많아서 실험에 사용된 모델은 아직 과소적합 상태에 있습니다. 더 훈련하면 효과가 더욱 향상될 수 있습니다.

    요약

    위의 Transformer 작업을 요약하면서 딥러닝의 개발 동향에 대한 개인적인 생각도 정리했습니다.

    1 Supervised 모델은 Semi-Supervised 방향으로 발전하고 있습니다. or even unsupervised

    데이터 규모의 증가율은 데이터 라벨링 속도를 훨씬 능가하며, 이로 인해 라벨링되지 않은 데이터도 대량 생성되었습니다. 이런 라벨링되지 않은 데이터는 가치가 없는 것이 아닙니다. 반대로, 올바른 "연금술"을 찾으면 이 방대한 데이터에서 예상치 못한 가치를 얻을 수 있을 것입니다. 이러한 레이블이 지정되지 않은 데이터를 사용하여 작업 성능을 향상시키는 방법은 무시할 수 없는 점점 더 중요한 문제가 되었습니다.

    2. 데이터량이 적은 복잡한 모델부터 데이터량이 많은 간단한 모델까지

    심층 신경망의 피팅 능력은 매우 강력하며, 간단한 신경망 모델이면 충분합니다. 어떤 기능에도 적합합니다. 그러나 동일한 작업을 완료하기 위해 더 간단한 네트워크 구조를 사용하는 것은 어렵고 데이터 볼륨에 대한 요구 사항도 더 높습니다. 데이터 양이 증가하고 데이터 품질이 향상될수록 모델에 대한 요구 사항이 감소하는 경우가 더 많습니다. 데이터 양이 많을수록 모델이 실제 분포와 일치하는 특징을 포착하기가 더 쉬워집니다. Word2Vec이 그 예입니다. 사용하는 목적 함수는 매우 간단하지만, 많은 양의 텍스트가 사용되기 때문에 훈련된 단어 벡터에는 많은 흥미로운 특징이 포함되어 있습니다.

    3. 특수 모델에서 일반 모델로 개발

    GPT, BERT, MT-DNN 및 GPT-2는 모두 사전 훈련된 일반 모델을 사용하여 다운스트림 기계 학습 작업을 계속합니다. 모델 자체가 필요합니다. 모델의 표현 능력이 충분히 강력하고 훈련 중에 사용되는 데이터의 양이 충분히 크다면 모델은 더욱 다양해지며 특정 작업을 위해 너무 많이 수정할 필요가 없습니다. 가장 극단적인 경우는 훈련 중에 후속 다운스트림 작업이 무엇인지조차 알지 못한 채 일반적인 다중 작업 모델을 훈련할 수 있는 GPT-2와 같습니다.

    4. 데이터 규모 및 품질에 대한 요구 사항 증가

    GPT, BERT, MT-DNN, GPT-2가 차례로 상위권에 올랐지만, 성능 향상에 있어서는 구조적 조정보다 데이터 규모의 향상이 더 큰 비중을 차지한다고 생각합니다. 모델의 일반화, 단순화와 함께 모델의 성능을 향상시키기 위해서는 복잡하고 전문화된 모델을 어떻게 설계하느냐에서 어떻게 우수한 품질을 지닌 다수의 모델을 획득하고 정리하고 정제하는가에 대한 관심이 더 높아질 것입니다. 자료. 데이터 처리 방법을 조정하는 효과는 모델 구조를 조정하는 효과보다 더 큽니다.

    결론적으로 DL 경쟁은 조만간 대규모 제조업체 간의 리소스 및 컴퓨팅 성능 경쟁이 될 것입니다. 몇 년 안에 그린 AI, 저탄소 AI, 지속 가능한 AI 등 새로운 주제가 등장할 수도 있습니다.

위 내용은 Transformer 구조 및 그 응용에 대한 자세한 설명 - GPT, BERT, MT-DNN, GPT-2의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제