제퍼넷 로고

변압기 아키텍처에 대한 심층 분석 – 변압기 모델 개발

시간

변압기 아키텍처에 대한 심층 분석 – 변압기 모델 개발

NLP 용 변압기는 불과 몇 년 전에 소개되었지만 강화 학습에서 화학에 이르기까지 다양한 분야에 큰 영향을 미쳤습니다. 이제 트랜스포머 아키텍처의 내부 작동을 더 잘 이해하여 이러한 강력한 도구를 효과적으로 사용하는 데 필요한 직감을 제공 할 때입니다.


자연어 처리를위한 변환기

자연어 처리 (NLP)의 세계가 변환 "주의는 당신이 필요로하는 모든 것"논문에 의해 바스와니 et al.,하지만 사실은 3 년이 채되지 않았습니다. 트랜스포머 아키텍처 도입의 상대적 최근 성과 그들이 언어 작업을 뒤집어 놓은 편재성은 기계 학습 및 인공 지능의 급속한 발전 속도를 나타냅니다. 트랜스포머 아키텍처의 내부 작동에 대해 깊이 이해하기에는 지금보다 더 좋은시기가 없습니다. 특히 트랜스포머 모델은 다음과 같은 다양한 새로운 애플리케이션에 큰 영향을 미치고 있습니다. 화학 반응 예측 과 강화 학습.

노련한 사람이든 처음으로 트랜스포머 스타일 아키텍처에만주의를 기울이는 사람이든이 기사는 당신에게 무언가를 제공 할 것입니다. 먼저, 원래 2017 Transformer를 빌드하는 데 사용 된 기본 개념에 대해 자세히 알아 봅니다. 그런 다음 후속 트랜스포머 모델에서 구현 된 몇 가지 개발에 대해 다룰 것입니다. 적절한 경우 몇 가지 제한 사항과 원래 Transformer의 아이디어를 계승 한 최신 모델이 다양한 단점을 극복하거나 성능을 향상시키려는 방법을 지적 할 것입니다.

트랜스포머는 무엇을합니까?

변환기는 시퀀스를 처리하기위한 최신 유형의 모델입니다. 아마도 이러한 모델의 가장 눈에 띄는 응용은 텍스트 처리 작업에 있으며 가장 눈에 띄는 것은 기계 번역입니다. 사실, 변압기와 그 개념적 자손은 거의 모든 벤치 마크 리더 보드 자연어 처리 (NLP), 질문 응답에서 문법 교정까지. 여러면에서 트랜스포머 아키텍처는 2012 ImageNet 경쟁 이후 컨볼 루션 신경망에서 본 것과 유사한 개발 급증을 겪고 있습니다.  ~을 위해 악화되는.

트랜스포머는 블랙 박스로 표시됩니다. (다이어그램에서 x의) 전체 시퀀스가 ​​피드 포워드 방식으로 동시에 구문 분석되어 변환 된 출력 텐서를 생성합니다. 이 다이어그램에서 출력 시퀀스는 입력 시퀀스보다 더 간결합니다. 실용적인 NLP 작업의 경우 단어 순서와 문장 길이가 크게 다를 수 있습니다.

RNN의 많은 변형과 같은 이전의 NLP 용 최첨단 아키텍처와는 달리 LSTM, 반복 연결이 없으므로 이전 상태의 실제 메모리가 없습니다. 트랜스포머는 전체 시퀀스를 동시에 인식하여 이러한 메모리 부족을 해결합니다. 아마도 변압기 신경망은 세계를 외계인처럼 인식 할 수 있습니다. 영화 도착. S솔직히 말해서 미래 요소는 일반적으로 훈련 중에 마스킹되지만 그 외에는 모델이 전체 시퀀스에 걸쳐 장기적인 의미 종속성을 자유롭게 학습 할 수 있습니다.

트랜스포머는 반복 연결을 없애고 전체 시퀀스를 동시에 구문 분석합니다. 도착. FlxB2의 오픈 소스 python2 저장소를 사용하여 자신 만의 로고를 만들 수 있습니다 (https://github.com/FlxB2/arrival_logograms).

피드 포워드 전용 모델로 작동하는 변압기에는 하드웨어에 대해 약간 다른 접근 방식이 필요합니다. 트랜스포머는 실제로 현대 기계 학습 가속기에서 실행하는 데 훨씬 더 적합합니다. 왜냐하면 반복 네트워크와 달리 순차적 처리가 없기 때문입니다. 모델은 유용한 숨겨진 셀 상태를 개발하기 위해 일련의 요소를 처리 할 필요가 없습니다. 트랜스포머는 훈련 중에 많은 메모리를 필요로 할 수 있지만 훈련이나 추론을 정밀도가 낮게 실행하면 메모리 요구 사항을 완화하는 데 도움이 될 수 있습니다.

전이 학습은 주어진 텍스트 기반 작업에서 최첨단 성능을 발휘할 수있는 중요한 지름길이며, 솔직히 실제 예산으로 대부분의 실무자에게 필요합니다. 현대식 대형 변압기를 훈련하는 데 드는 에너지 및 재정적 비용은 개별 연구원의 연간 총 에너지 소비 클라우드 컴퓨팅을 사용하는 경우 수천 달러의 비용이 발생합니다. 운 좋게도 컴퓨터 비전을위한 딥 러닝과 유사하게 특수 작업에 필요한 새로운 기술을 사전 훈련 된 대형 변압기로 이전 할 수 있습니다. HuggingFace 저장소.

변압기 아키텍처의주의 메커니즘은 무엇입니까?

트랜스포머 아키텍처의 비밀 소스는 일종의주의 메커니즘의 통합이며 2017 년 오리지널도 예외는 아닙니다. 혼동을 피하기 위해 Vaswani가 시연 한 모델을 참조합니다. et al. Transformer-XL과 같은 유사한 이름을 가진 후속 제품과 구별하기 위해 Transformer 또는 vanilla Transformer로 사용하십시오. 주의 메커니즘을 살펴 보는 것으로 시작하여 전체 모델에 대한 높은 수준의보기를 구축 할 것입니다.

주의는 입력 데이터의 여러 요소에 선택적으로 가중치를 부여하여 다운 스트림 레이어의 숨겨진 상태에 조정 된 영향을 미치도록하는 수단입니다. 바닐라 변환기는 입력 단어 벡터를 키, 쿼리 및 값 벡터로 구문 분석하여주의를 구현합니다. 키와 쿼리의 내적은 모든주의 가중치에 대해 소프트 맥스 함수를 사용하여 스쿼시되는주의 가중치를 제공하여 총 가중치의 합이 1이되도록합니다. 각 요소에 해당하는 값 벡터는 공급되기 전에주의 가중치에 따라 합산됩니다. 후속 레이어로. 한 번에 모두 가져 오는 것은 다소 복잡 할 수 있으므로 확대하여 단계별로 살펴 보겠습니다.

단어 벡터 임베딩은 의미 론적 의미를 부여합니다.

문장을 구성하는 단어 시퀀스로 시작하여 시퀀스의 각 요소 (단어)는 먼저 단어 벡터라는 포함 된 표현으로 변환됩니다. 단어 벡터 임베딩은 Salakhutidinov 및 Hinton이 사용하는 것과 같은 원-핫 인코딩 bag-of-words 모델과 같은 것보다 훨씬 더 미묘한 표현입니다. 2007 시맨틱 해싱 종이.

단어 임베딩 (또는 토큰이라고도 함)은 신경망에서 이해할 수있는 숫자 방식으로 의미 론적 의미를 전달하기 때문에 유용합니다. 예를 들어 "개"와 "강아지"사이의 의미 관계가 "고양이"와 "고양이"와 거의 동일하므로 학습 된 단어 임베딩에는 문맥 및 관계 정보가 포함될 수 있으므로 다음과 같이 단어 임베딩을 조작 할 수 있습니다.

내적주의 세부 사항

바닐라 트랜스포머주의 메커니즘 세부 사항.

위 다이어그램의 왼쪽 상단에서 시작하여 입력 단어가 먼저 임베딩 함수에 의해 토큰 화되어 문자열 "ALL"을주의 계층에 대한 입력이 될 숫자 벡터로 대체합니다. 임베딩 기능이있는 유일한 레이어는 첫 번째 인코더이며 다른 모든 레이어는 이전 출력 벡터를 입력으로 사용합니다. 주의 레이어 (W 다이어그램에서)는 입력, 키, 쿼리 및 값을 기반으로 세 개의 벡터를 계산합니다. 키와 쿼리의 내적 (스칼라)은 주어진 위치에 대한 상대적 가중치입니다.

주의 메커니즘은 시퀀스의 모든 요소에 병렬로 적용되므로 다른 모든 요소에도주의 점수가 있습니다. 이러한주의 점수는 소프트 맥스 함수를 통해 총 가중치 합계가 1.0이되도록 한 다음 해당 값 벡터와 곱합니다. 이제주의 점수에 따라 가중치가 부여 된 모든 요소의 값이 합산됩니다. 결과 벡터는 입력 시퀀스의 내부 표현을 형성하는 벡터 시퀀스의 새 값이며 피드 포워드 완전 연결 계층으로 전달됩니다.

지금까지 손실되었을 수있는 또 다른 중요한 세부 사항은 소프트 맥스 기능을 안정화하는 데 사용되는 배율 인수입니다. 즉, 주의 레이어에서 사용하는 소프트 맥스 함수에 값을 입력하기 전에 숫자는 키 벡터에있는 단위 수의 제곱근에 반비례하여 배율이 조정됩니다. 이는 키 및 쿼리 벡터의 크기에 관계없이 학습이 잘 작동하도록하는 데 중요합니다. 스케일링 인자가 없으면 내적은 긴 키 및 쿼리 벡터를 사용할 때 큰 값이되는 경향이 있으며, 소프트 맥스 함수의 기울기를 비교적 평평한 영역으로 밀어 넣고 오류 정보가 전파되기 어렵게 만듭니다.

인코더 레이어 : 6 가지 유형의 Vanilla Transformer

앞에서 언급했듯이 반복 연결을 제거하면 유용한 결과는 전체 시퀀스를 피드 포워드 방식으로 한 번에 처리 할 수 ​​있다는 것입니다. 위에서 설명한 자기주의 계층을 고밀도 피드 포워드 계층과 결합하면 하나의 인코더 계층이 생성됩니다. 피드 포워드 계층은 그 사이에 ReLU (rectified linear unit)가있는 두 개의 선형 계층으로 구성됩니다. 즉, 입력은 먼저 선형 레이어 (행렬 곱하기)에 의해 변환되고, 결과 값은 항상 0 이상이되도록 클리핑되며, 마지막으로 결과는 피드 포워드를 생성하기 위해 두 번째 선형 레이어에 입력됩니다. 레이어 출력.

Vanilla Transformer는 8 개의 인코더 레이어 (자기주의 레이어 + 피드 포워드 레이어)와 XNUMX 개의 디코더 레이어를 사용합니다. Transformer는 multi-headed Attention이라는 자기주의의 변형을 사용하므로 실제로주의 계층은 각 시퀀스 요소에 대해 XNUMX 개의 서로 다른 키, 쿼리, 값 벡터 세트를 계산합니다. 그런 다음 이들은 하나의 행렬로 연결되고 적절한 크기의 출력 벡터를 생성하는 다른 행렬 곱셈을 통해 배치됩니다.

디코더 계층 : 6 가지 유형의 Vanilla Transformer

디코더 레이어는 인코더 레이어에서 본 많은 기능을 공유하지만 두 번째주의 레이어 인 소위 인코더-디코더주의 레이어가 추가됩니다. 자기주의 계층과 달리 쿼리 벡터 만 디코더 계층 자체에서 가져옵니다. 키 및 값 벡터는 인코더 스택의 출력에서 ​​가져옵니다. 디코더 레이어는 또한 인코더에서 본 것처럼 각자주의 레이어를 포함하고 있으며, 자기주의 레이어에 입력되는 쿼리, 키 및 값은 디코더 스택에서 생성됩니다.

인코더-디코더주의 하위 계층이 추가 된 인코더 계층과 다른 디코더 계층. 이들 중 XNUMX 개가 vanilla Transformer의 디코더를 구성합니다.

이제 인코더 및 디코더 레이어에 대한 레시피가 있습니다. 이러한 구성 요소로 트랜스포머를 구축하려면 각각 XNUMX 개의 인코더 레이어 또는 XNUMX 개의 디코더 레이어가있는 XNUMX 개의 스택을 만들어야합니다. 인코더 스택의 출력은 디코더 스택으로 흘러 들어가고 디코더 스택의 각 계층도 인코더의 출력에 액세스 할 수 있습니다. 그러나 바닐라 트랜스포머가 어떻게 결합되는지 완전히 이해하기 위해 몇 가지 세부 사항이 남아 있습니다.

전체 Transformer 개요.

마지막 조각 : 잔여 연결, 레이어 정규화 및 위치 인코딩

매개 변수가 많은 다른 많은 초 심층 신경망과 마찬가지로 기울기가 입력에서 출력으로 흐르지 않을 때 훈련이 어려울 수 있습니다. 컴퓨터 비전에서 이것은 강력한 레스넷 컨볼 루션 신경망의 스타일. 잔여 네트워크의 약자 인 ResNets는 마지막 계층의 입력을 자체 출력에 명시 적으로 추가합니다. 이러한 방식으로 잔차는 레이어의 전체 스택을 통해 유지되며 기울기는 출력의 손실 함수에서 입력으로 다시 쉽게 흐를 수 있습니다. 덴스넷 아키텍처는 추가하는 대신 입력 텐서와 출력 텐서를 함께 연결하여 동일한 문제를 해결하는 것을 목표로합니다. 바닐라 트랜스포머 모델에서 잔여 합산 연산은 다음과 같습니다. 레이어 정규화, 배치 정규화와 달리 미니 배치 크기에 민감하지 않은 훈련을 개선하는 방법입니다.

잔여 연결 및 계층 정규화 다이어그램. vanilla Transformer의 인코더 및 디코더 계층의 모든 하위 계층은이 체계를 통합했습니다.

LSTM과 같은 반복 아키텍처에서 모델은 본질적으로 내부적으로 시퀀스 거리를 계산하고 측정하는 방법을 배울 수 있습니다. Vanilla Transformer는 반복 연결을 사용하지 않고 전체 시퀀스를 동시에 인식하므로 특히 시퀀스 길이가 변경 될 수있는 경우 시퀀스의 어느 부분에서 어떤 요소가 왔는지 어떻게 알 수 있습니까? 대답은 시퀀스 요소 임베딩에 연결된 감쇠 사인파 함수를 기반으로하는 위치 인코딩입니다. Vaswani . 또한 거의 동일한 결과로 학습 된 위치 인코딩으로 실험했지만 정현파 인코딩을 사용하면 모델이 훈련 중에 보이지 않는 시퀀스 길이로 더 잘 일반화 될 수 있다고 추론했습니다.

딥 러닝에서 트랜스포머의 영향과 미래

2017 년 바닐라 트랜스포머의 도입으로 시퀀스 기반 딥 러닝이 크게 중단되었습니다. 반복 연결을 완전히 제거함으로써 트랜스포머 아키텍처는 최신 기계 학습 가속 하드웨어에서 대규모 병렬 계산에 더 적합합니다. 바닐라 트랜스포머가 시퀀스에서 장기적인 종속성을 전혀 학습 할 수 있다는 것은 놀랍고, 사실 바닐라 트랜스포머가 관계를 쉽게 학습 할 수있는 거리에는 상한이 있습니다.

Transformer-XL은 다이 et al. 2019년 새로운 위치 인코딩으로이 문제를 해결하고 키와 값 벡터가 부분적으로 이전의 숨겨진 상태와 현재의 숨겨진 상태에 의존하는 일종의 유사 반복 연결을 통합했습니다. 추가 변압기 변형에는 디코더 전용 변압기 (예 OpenAI의 GPT 및 GPT-2), 양방향성 (예 : BERT 기반 변압기)을 추가합니다. 변환기는 시퀀스 용으로 설계되었으며 자연어 처리에서 가장 눈에 띄는 응용 프로그램을 찾았지만 변환기 아키텍처는 이미지 생성강화 학습 (Transformer-XL을 수정하여) 화학.

유용한 Transformer 아키텍처 리소스

이 게시물이 NLP 이상을위한 최신 트랜스포머 아키텍처 작업에 대한 직관을 구축하는 데 도움이 되었기를 바랍니다. 하지만 자신의 아이디어를 시험해보기 위해 영웅이되어 새로운 변압기를 처음부터 만들고 훈련 할 필요는 없습니다. 다음과 같은 오픈 소스 저장소 포옹 얼굴 NLP 프로젝트를 촉진하기 위해 미세 조정할 수있는 사전 훈련 된 모델을 제공합니다. Google은 수첩 tensor2tensor 라이브러리에서 Transformer 모델을 수정하는 데 사용할 수 있습니다. 물론 언제든지 변압기와 대화 또는 텍스트 기반 재생 던전 어드벤처 게임 OpenAI의 GPT-2를 던전 마스터로 사용합니다. 선호하는 추상화 수준에 따라 위의 리소스로 충분할 수 있지만 코드를 개념에 적용 할 때까지 만족스럽지 않으면 다음 항목에 관심이있을 수 있습니다. 코드 주석 버전 알렉산더 러쉬와 하버드 NLP 연구소의 다른 사람들의 논문.

실물. 허가를 받아 다시 게시했습니다.

관련 :

출처 : https://www.kdnuggets.com/2020/08/transformer-architecture-development-transformer-models.html

spot_img

최신 인텔리전스

spot_img