>기술 주변기기 >일체 포함 >단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

王林
王林원래의
2024-06-13 14:06:09822검색

곱셈과 정렬도 가능합니다.

Transformer는 2017년에 제안된 이후 대형 AI 모델의 주류 아키텍처가 되었으며 C 위치에 확고히 자리해 왔습니다.

그러나 모든 연구자가 인정해야 하는 것은 덧셈에도 불구하고 Transformer가 산술 작업에서 성능이 매우 나쁘다는 것입니다. 이 결함은 주로 Transformer가 넓은 범위의 숫자 위치에서 각 숫자를 정확하게 추적할 수 없기 때문에 발생합니다.

이 문제를 해결하기 위해 메릴랜드 대학, CMU 및 기타 기관의 연구자들이 이 문제에 대한 도전을 시작했습니다. 그들은 시작을 기준으로 숫자의 위치를 ​​인코딩하는 각 숫자에 임베딩을 추가하여 이 문제를 해결했습니다. 연구에 따르면 단일 GPU에서 20자리 숫자를 학습하여 100자리 덧셈 문제에서 최대 99%의 정확도로 최첨단 성능을 달성하는 데 단 하루밖에 걸리지 않은 것으로 나타났습니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

문서 주소: https://arxiv.org/pdf/2405.17399

프로젝트 주소: https://github.com/mcleish7/arithmetic

제목: Transformers Can Do Arithmetic with the Right Embeddings

특정 특히 연구진은 데이터 테이블 표시를 간단히 수정하면 이러한 단점을 해결할 수 있다고 제안했습니다. 그들은 각 디지털 기호 토큰 범위 내의 위치를 ​​인코딩하기 위해 Abacus 임베딩을 제안했습니다. 표준 위치 임베딩과 함께 Abacus 임베딩을 사용하면 이 연구에서는 최대 20자리 피연산자로만 훈련된 모델이 120자리 피연산자 문제로 확장되는 등 산술 작업에서 Transformer 정확도가 크게 향상되는 것을 관찰했습니다. 이 숫자는 이전의 최첨단 배율이 2.5배에 불과했던 것과 비교하여 6배의 SOTA 배율을 나타냅니다. 이는 현재까지 입증된 학습 추가의 가장 긴 순서인 것으로 이해됩니다.

산술 및 일반화에서 Transformer의 성능을 최적화하는 방법을 연구하는 것 외에도 이 기사에서는 Transformer의 성능을 향상시키는 몇 가지 다른 방법도 살펴봅니다. 그들은 입력 주입 계층과 각 디코더 계층 사이에 건너뛰기 연결을 삽입함으로써 Abacus 임베딩 기준에 비해 일반화 오류를 50% 줄일 수 있음을 발견했습니다. 또한 이 논문에서는 임베딩과 함께 사용되는 루프형 Transformer 아키텍처가 덧셈 문제에 대해 거의 완벽한 일반화를 달성할 수 있음을 발견했습니다.

이 문서의 기여는 다음과 같이 요약될 수 있습니다.

  • 이 문서는 각 숫자의 중요성을 더 잘 포착하여 거의 완벽한 분포 내 일반화를 달성하기 위해 Abacus 임베딩이라는 새로운 위치 임베딩을 제안합니다.

  • 연구에 따르면 Abacus 임베딩을 입력 주입 및 루프 변환기와 결합하면 성능이 더욱 향상되어 분산 외 정확도가 92.9%에서 99.1%로 증가하고 표준 아키텍처만 사용하는 임베딩에 비해 오류가 87% 감소합니다.
  • 연구원들은 이러한 발견을 곱셈과 정렬을 포함한 더 복잡한 문제로 확장했으며 이러한 영역에서 길이 일반화도 시연했습니다.
덧셈의 길이 일반화 구현

저자는 처음부터 훈련된 언어 모델의 산술 성능을 향상시키기 위한 일련의 방법을 조사했습니다. 그들은 주로 두 가지 가설에 중점을 둡니다. 1) 숫자 내 개별 숫자의 위치 정보가 손실됩니다. 2) 루핑은 다단계 산술 추론 문제에 대한 Transformer 아키텍처의 추론 능력을 향상시킬 수 있습니다. 저자는 각 개선 사항을 자세히 설명하기 전에 훈련 및 평가 설정에 대해 간략하게 논의합니다.

실험 설정

저자는 덧셈 문제를 해결하기 위해 디코더만 포함된 인과 언어 모델을 훈련했습니다.

그들은 두 가지 표준 변압기 아키텍처를 고려했습니다. 첫째, 피드포워드 방식으로 쌓인 여러 디코더 레이어가 있는 표준 자동 회귀 변환기 모델을 사용합니다. 둘째, 각 디코더 계층의 입력에 임베딩을 추가하는 입력 주입을 통해 이 표준 변환기 모델을 강화합니다. 저자는 그림 20에서 이러한 아키텍처를 시각적으로 묘사합니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

Abacus 임베딩은 숫자 정렬에 도움이 됩니다

저자는 이전 연구와 예비 실험을 통해 입력 숫자가 가장 중요하지 않은 숫자부터 먼저 표시되더라도 훈련 데이터가 계층적이고 풍부하다는 것을 발견했습니다(수십만 예) 표준 변환기가 여러 자리 덧셈을 학습하는 것도 어렵습니다. 그들은 또한 인간이 긴 덧셈 연산을 수행할 때 먼저 같은 숫자를 가진 숫자를 열로 배열한다는 것을 관찰했습니다. 따라서 저자의 첫 번째 가설은 각 숫자의 자릿수가 변환기에 의해 쉽게 표현되지 않으며 이 하위 문제가 실제 덧셈 자체보다 더 큰 장애물을 제기한다는 것입니다.

위치 정보를 표현할 때 변환기의 한계를 해결하기 위해 저자는 현재 숫자의 시작 위치를 기준으로 각 숫자의 위치를 ​​인코딩하는 특별한 위치 임베딩을 설계했습니다. 저자는 이것을 Abacus Embedding이라고 부릅니다. 그림 2와 같이 숫자가 동일한 모든 숫자에 동일한 위치 임베딩을 적용하여 모델이 숫자를 정렬하는 데 사용할 수 있는 명시적인 신호를 제공합니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

Abacus 임베딩으로 추가 문제 해결

표준 변환기 아키텍처의 경우 Abacus 임베딩은 일반화 성능을 100비트 이상으로 향상시킵니다. 그림 3(왼쪽)에서 저자는 추가 작업을 수행할 때 표준 변환기 아키텍처 및 임베딩에 비해 Abacus 임베딩의 비교 이점을 강조하여 세 가지 모델의 모든 사례에 대한 평균 정확도를 계산합니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

그림 1은 도메인 내(ID) 및 도메인 외부(OOD) 테스트를 거친 FIRE 및 Abacus로 훈련된 표준 변환기 모델의 정확도 결과도 보여줍니다. 단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

Transformer의 루프는 성능을 향상시킵니다

위치 임베딩 문제를 해결한 후 저자는 루프 아키텍처가 여러 자리 덧셈을 수행하는 변환기의 능력을 더욱 향상시킬 수 있는지 여부를 조사했습니다. 그들은 서로 다른 가중치를 가진 디코더 계층 세트를 지칭하기 위해 "반복 블록"이라는 용어를 사용하고, "반복"은 순환 블록이 반복되는 횟수를 지칭합니다. 저자는 가중치가 고유한지 여부에 관계없이 변환기에 사용되는 레이어 수를 나타내기 위해 유효 깊이라는 용어를 사용합니다. 달리 명시하지 않는 한, 유효 깊이에 도달하기 위해 고유한 레이어만 반복하는 최대 루프 아키텍처를 사용합니다. 또한 입력 주입 및 잔여 연결을 사용하여 입력 복사본을 네트워크의 각 계층에 전파했습니다.

루프의 장점

그림 3(오른쪽)에서 저자는 최대 40비트의 피연산자를 사용하여 추가 교육을 위해 FIRE 및 NoPE 임베딩을 사용하는 모든 아키텍처 변형을 비교합니다. 매개변수 수는 다른 모델의 1/10에 불과하지만 모든 종류의 위치 임베딩을 사용할 때 루프형 변환기(루프형, 입력 주입 및 점진적 손실 포함)가 최고의 분산 외 성능을 달성한다는 것을 알 수 있습니다. 그림 8에서 저자는 다양한 교육 데이터 크기에 걸쳐 이 결과의 견고성을 보여줍니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

반복 모델의 경우 학습 중에 각 정방향 전달에 대한 루프 수를 변경하도록 선택할 수 있습니다. 이는 테스트 시 더 어려운 작업에 대한 모델의 일반화 능력을 향상시키는 경향이 있으며, 이를 점진적 손실 계산이라고도 합니다. 이 손실 함수는 두 개의 정방향 패스 손실 값의 볼록한 조합으로, 하나는 문자 그대로의 사이클 수(1×16 모델의 경우 16)를 사용하고 다른 하나는 무작위로 더 적은 수의 사이클을 사용합니다.

다음으로 저자는 유효 깊이를 고정하면서 루프 블록 크기를 변경하는 효과를 탐색합니다. 그들은 루프 블록의 레이어 수를 절반으로 줄이고 루프 수를 두 배로 늘렸습니다. 블록에 16개의 레이어가 있고 단 하나의 루프 카운트(16 × 1, 표준 변환기)가 있는 모델에서 블록에 단 하나의 레이어가 있는 모델로 전환했습니다. 및 루프 카운트 16회(1 × 16) 모델이 있습니다.

그림 4를 통해 이러한 결과를 분석한 결과, 저자는 경우에 따라 루프와 Abacus 임베딩을 결합하면 성능을 더욱 향상시킬 수 있음을 발견했습니다. 구체적으로, OOD 문제에서는 2주기(8×2)의 모델이 순수 비순환 모델(16×1)에 비해 오류가 절반으로 줄었고, 100+의 OOD 문제에서는 정확도도 약간 더 높아졌습니다.

마지막으로 부록 A.7.3에서 저자는 Abacus, FIRE 및 NoPE 임베딩을 포함하여 이 작업에 대한 매개변수 수의 영향을 분석하기 위해 모델의 유효 깊이를 변경했습니다. 그림 4의 실험은 다양한 깊이를 공정하게 비교한 반면, 순수 표준 변압기 모델은 해당 루프 모델보다 더 많은 매개변수를 갖습니다. 부록의 표 3에서 저자는 매개변수 수량을 백만 단위까지 기록합니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

Experiment

연구원들은 덧셈 문제뿐만 아니라 곱셈과 정렬도 탐구했습니다.

정수 곱셈

그림 5는 Abacus 임베딩 모델이 동일한 길이에 대해 각 피연산자를 0으로 채우지 않고 15자리 곱셈 분포에 대한 정확도에서 이전 작업보다 뛰어남을 보여줍니다. 특히, 이 연구는 Abacus 임베딩을 FIRE와 결합하면 FIRE만 사용한 기준선에 비해 가장 어려운 배포 문제(오른쪽 아래)에 대한 정확도도 향상된다는 점을 강조합니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

배열 정렬

표 1은 FIRE, Abacus 및 이들의 조합 등 다양한 임베딩으로 훈련된 표준 변환기(8개 레이어)의 성능을 보여줍니다. 결과는 결합된 임베딩 방법이 모델의 일반화 능력을 향상시키는 것을 보여줍니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

표 2에서 볼 수 있듯이 Abacus+FIRE 임베딩 조합을 다양한 모델 아키텍처(유효 깊이 8)와 결합할 때 혼합된 결과가 관찰되었습니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

Abacus 및 관련 임베딩

그림 6은 Abacus 임베딩을 보다 일반적인 시스템에 통합할 수 있는 실제 잠재력을 보여주며, FIRE와 결합된 Abacus 임베딩이 FIRE 임베딩보다 훨씬 뛰어난 문제 해결 기능을 제공할 수 있음을 보여줍니다.

단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.

자세한 연구 내용은 원문을 참고해주세요.

위 내용은 단일 GPU에서 하루 동안 훈련한 후 Transformer는 100자리 숫자를 더하는 데 99%의 정확도를 달성할 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.