Connect with us

UltraFastBERT: ์–ธ์–ด ๋ชจ๋ธ๋ง์„ ์œ„ํ•ด ์ง€์ˆ˜์ ์œผ๋กœ ๋” ๋น ๋ฅธ

์ธ๊ณต์ง€๋Šฅ

UltraFastBERT: ์–ธ์–ด ๋ชจ๋ธ๋ง์„ ์œ„ํ•ด ์ง€์ˆ˜์ ์œผ๋กœ ๋” ๋น ๋ฅธ

mm

언어 모델과 생성적 AI는 그들의 능력으로 유명하며, AI 산업에서 인기 있는 주제입니다. 전 세계 연구자들은 그들의 효능과 능력을 향상시키고 있습니다. 이러한 시스템은 일반적으로 깊은 학습 모델이며, 광범위한 레이블이 붙은 데이터에 사전 훈련되며, 자기 주의 신경망을 포함합니다.它们는 입력 텍스트를 처리하고 관련된 출력을 생성하기 위해 다양한 층 – 피드포워드, 재귀, 내장, 주의 – 를 사용합니다.

대부분의 경우, 큰 언어 모델의 피드포워드 층은 가장 많은 매개변수를 가지고 있습니다. 연구에 따르면 이러한 모델은 추론 동안 사용 가능한 뉴런의 일부만을 사용합니다.

이 기사에서는 UltraFastBERT를 소개합니다. UltraFastBERT는 BERT 기반 프레임워크이며, 최고의 BERT 모델과 같은 효능을 가지지만, 추론 동안에만 0.3%의 뉴런을 사용합니다. 특히, 각 층에서 12개의 뉴런만을 사용합니다. 우리는 UltraFastBERT의 구조, 기능, 결과를 살펴보겠습니다. 시작해 보겠습니다.

UltraFastBERT : 지수적으로 더 빠른 언어 모델링에 대한 소개

전통적으로, 언어 모델은 피드포워드 층, 재귀 층, 내장 층, 주의 층을 포함하여 다양한 구성 요소를 사용하여 콘텐츠 생성 능력을 갖추게 됩니다. 이러한 구성 요소는 훈련 중에 패턴을 인식하기 위해 학습하며, 궁극적으로 입력 텍스트에 따라 정확한 출력을 생성합니다. 이러한 구성 요소 각각에는 일부 매개변수가 있으며, 언어 모델에서 이러한 매개변수의 대부분은 피드포워드 층에 의해 보유됩니다. 그러나 이러한 피드포워드 층은 추론 시간에 모든 입력에 대해 사용 가능한 뉴런의 100%를 사용하지 않습니다. 이는 자원의 낭비로 인해 복잡성, 계산 시간, 계산 비용이 증가합니다.

UltraFastBERT 프레임워크는 기본적으로 BERT 프레임워크의 변형입니다. 이것은 피드포워드 층을 더 빠른 피드포워드 네트워크로 대체하여, 궁극적으로 UltraFastBERT 프레임워크가 사용 가능한 뉴런의 0.3%만을 사용하면서, 비슷한 크기와 훈련 과정을 가진 BERT 모델과 비교할 수 있는 결과를 도출합니다. 특히, 다운스트림 작업에서 그렇습니다.

Fast FeedForward(FFF) 네트워크와 피드포워드(FF) 네트워크를 각각 n개의 뉴런을 가졌을 때, 피드포워드 네트워크의 전방 패스 시간 복잡도는 O(n)입니다. 반면, 빠른 피드포워드 네트워크의 경우 시간 복잡도는 O(log2n)입니다. 이러한 시간 복잡도 차이는 주로 빠른 피드포워드 네트워크에서 뉴런이 균형된 이진 트리로 구성되어 있기 때문입니다. 입력이 제공되면, 네트워크는 트리의 한 가지 분기만 조건적으로 실행합니다. 또한, 빠른 피드포워드 네트워크에서 간섭을 수행하면, 조건부 행렬 곱셈(CMM)이 발생합니다. 여기서 입력 행은 자연스러운 가중치 열과 개별적으로 닷 제품을 계산하며, 이전 닷 제품 연산의 출력은 다음에 진행할 가중치 열의 가중치를 결정합니다. 결과적으로, 네트워크는 모든 뉴런을 사용하여 몇 개의 입력만을 처리하며, 네트워크는 몇 개의 뉴런만을 사용하여 모든 입력을 처리합니다. CMM 닷 제품은 모든 입력과 모든 가중치 열의 닷 제품을 계산하는 밀도 행렬 곱셈(DMM)과 대조됩니다.

요약하면, UltraFastBERT는 BERT 기반 프레임워크이며, 다음과 같은 특징을 가집니다.

  1. 추론 단계에서 사용 가능한 뉴런의 0.3%만을 사용하며, 각 층에서 12개의 뉴런만을 사용합니다.
  2. 다운스트림 작업에서 최고의 BERT 모델과 비교할 수 있는 강력한 성능을 제공합니다.
  3. 조건부 행렬 곱셈(CMM)의 네이티브 구현을 제공하며, 이는 빠른 피드포워드 네트워크의 기초입니다. 이는 밀도 행렬 곱셈(DMM)과 비교하여 78배의 성능 향상을 제공합니다.

피드 포워드 신경망

피드포워드 신경망은 정보를 입력 노드에서 출력 노드로, 숨겨진 노드를 통해 전방으로만 이동하는 가장 단순한 인공 신경망 중 하나입니다. 피드포워드 신경망의 주요 특징은 이러한 네트워크에 루프나 사이클이 없으며, RNN 또는 CNN과 비교하여 더 단순하게 구성할 수 있다는 것입니다. 피드포워드 신경망의 구조는 입력 층, 숨겨진 층, 출력 층의 세 가지 구성 요소로 구성되며, 각 층에는 뉴런이라고 하는 단위가 있으며, 각 층은 가중치의 도움으로 서로 연결됩니다.

입력 층의 뉴런은 입력을 받고, 다음 층으로 전달합니다. 각 입력 층의 뉴런 수는 입력 데이터의 차원에 의해 결정됩니다. 다음으로, 숨겨진 층이 있습니다. 이러한 층은 입력이나 출력에 노출되지 않으며, 필요한 계산을 수행합니다. 각 숨겨진 층의 뉴런은 이전 층의 출력의 가중치 합을 계산하고, 활성화 함수를 적용하며, 결과를 다음 층으로 전달합니다. 이 과정은 반복됩니다. 마지막으로, 출력 층이 있습니다. 출력 층은 주어진 입력에 대한 출력을 생성합니다. 피드포워드 신경망의 각 층의 뉴런은 다음 층의 모든 뉴런과 연결되어 있습니다. 이는 피드포워드 신경망을 완전히 연결된 네트워크로 만듭니다. 가중치는 뉴런 간의 연결 강도를 나타내며, 네트워크는 이러한 가중치를 업데이트하여 출력에서 발생하는 오류를 기반으로 패턴을 학습합니다.

계속해서, 피드포워드 신경망의 작동에는 두 가지 주요 단계가 있습니다.

피드포워드 단계

피드포워드 단계에서, 입력이 네트워크에 공급되고, 전방으로 전파됩니다. 숨겨진 층은 입력의 가중치 합을 계산하고, ReLu, Sigmoid, TanH와 같은 활성화 함수를 통해 비선형성을 모델에 도입합니다. 이 과정은 출력 층에 도달할 때까지 반복되며, 모델은 예측을 합니다.

백프로파게이션 단계

모델이 예측을 한 후, 생성된 출력과 기대 출력 사이의 오류를 계산합니다. 이 오류는 네트워크를 통해 역전파되며, 네트워크는 오류를 최소화하기 위해 가중치를 조정하기 위해 경사 하강 최적화 알고리즘을 사용합니다.

UltraFastBERT : 모델 구조 및 작동

UltraFastBERT 프레임워크는 CrammedBERT 구조를 기반으로 하며, UltraFastBERT 프레임워크는 CrammedBERT 프레임워크의 모든 구성 요소를 사용하지만, 중간 층의 성질을 제외하고는 그렇습니다. 대신, UltraFastBERT 프레임워크는 CrammedBERT 프레임워크의 중간 층에 있는 피드포워드 네트워크의 트랜스포머 인코더를 빠른 피드포워드 네트워크로 대체합니다. UltraFastBERT 프레임워크는 원래 피드포워드 네트워크에 다음과 같은 변경을 적용합니다.

  1. 리프와 비리프 노드 사이의 차이를 제거하기 위해 모든 노드에서 GeLu 활성화 함수를 사용하고, 노드에 출력 가중치를 부여하며, 출력 편향을 완전히 제거합니다. 이후, 리프 크기를 1로 고정합니다.
  2. 마지막으로, 프레임워크는 병렬로 여러 빠른 피드포워드 네트워크 트리를 허용함으로써, 중간 출력 층을 공동으로 계산합니다. 프레임워크는 개별 트리의 합을 계산하여 중간 출력 층으로 표시합니다.

훈련에서, UltraFastBERT 프레임워크는 CrammedBERT 프레임워크에서 사용되는 훈련 절차를 따르며, 이는 사전 훈련에서 드롭아웃을 비활성화하고, 1-사이클 삼각형 학습률 스케줄을 사용하는 것을 포함합니다. 모델은 GLUE 벤치마크의 다양한 작업에 대해 5 에포크 동안 최대 성능을 달성하기 위해 미세 조정됩니다.

간섭

간섭은 빠른 피드포워드 네트워크에서 중요한 부분입니다. 이러한 빠른 피드포워드 네트워크는 큰 언어 모델의 주요 구성 요소이며, 그들의 예외적인 가속화 가능성으로 유명합니다. 이 가속화 가능성을 이해하기 위해, 가장 발전된 언어 모델 중 하나인 GPT-3의 예를 살펴보겠습니다. 여기서 트랜스포머 층의 피드포워드 네트워크는 각기 49,100개의 뉴런을 가지고 있습니다. 훈련 가능한 빠른 피드포워드 네트워크(최대 깊이 15)는 원래 피드포워드 네트워크를 대체할 수 있습니다. 도입된 빠른 피드포워드 네트워크에는 65,000개 이상의 뉴런이 있지만, 간섭을 위해 16개의 뉴런만을 사용합니다. 이는 GPT-3에서 사용 가능한 뉴런의 약 0.03%에 해당합니다.

알고리즘 및 호환성

UltraFastBERT 프레임워크는 빠른 피드포워드 간섭을 위한 재귀적 유사 코드 알고리즘을 사용하며, 알고리즘은 아래의 이미지에 나와 있습니다.

여기서 B는 배치 크기, H는 입력 층의 너비, M은 열을 나타냅니다. 계산 행렬 곱셈(CMM) 접근 방식을 사용하는 또 다른 주요 문제는 빠른 피드포워드 네트워크가 기존의 밀도 행렬 곱셈(DMM) 및 기존 딥 러닝 프레임워크에서 사용되는 프로세스와 호환되지 않는지 여부입니다.幸い, CMM의 사용은 성능에 영향을 주거나 호환되지 않음을 나타내지 않지만, 캐싱 복잡성을 증가시킵니다.

중요한 것은, 빠른 피드포워드 네트워크의 일부로서, 단일 스레드 밀도 행렬 곱셈은 MAC 또는 곱셈 및 누적 명령을 실행하는 것에 의존하며, 결과적으로 DMM을 CMM 접근 방식으로 대체하면 CPU에ประโยชน이 됩니다. 왜냐하면 각 층의 출력 요소당 더 적은 MAC 명령이 필요하기 때문입니다. 따라서 일반적으로 분기와 관련된 조건부성이지만, “신경 분기”는 프레임워크에서 관련 포인터에 대한 메모리 오프셋을 추가합니다. 따라서 UltraFastBERT 프레임워크에서 분기 예측은 조건부성의 완전한 참여를 위해 사용되지 않으며, 가중치 행렬의 관련 열만을 개별적으로 로드합니다. 또한, 행-열 닷 제품을 수행하는 경우, SIMD 또는 단일 명령어 다중 데이터 벡터 병렬 처리는 특정 장치에 대한 간섭 구현을 가속화하는 좋은 옵션입니다.

UltraFastBERT : 성능 및 결과

우리는 UltraFastBERT 프레임워크의 성능에 대해 논의하겠습니다. 미세 조정 및 간섭 작업 모두에서 프레임워크의 성능을 분석하여, 상태 오토 언어 모델과 비교하여 어떻게 수행하는지 살펴보겠습니다.

미세 조정 결과

다음 그림은 다양한 모델의 GLUE-dev 테스트 데이터셋에서의 성능을 보여줍니다. 여기서 N은 훈련을 위해 프레임워크에 사용 가능한 뉴런의 수를 나타내며, “평균”은 모든 작업의 평균 점수를 나타냅니다.

분명히 볼 수 있듯이, A6000 GPU에서 24시간 이상 훈련된 UltraFastBERT 프레임워크는 GLUE 다운스트림 작업에서 원래 BERT 프레임워크와 비교하여 약 96%의 예측 성능을 유지합니다. 또한, 빠른 피드포워드 네트워크의 깊이가 증가함에 따라 프레임워크의 성능이 저하되는 것을 볼 수 있습니다. 그러나 대부분의 성능 저하는 CoLa 작업에서만 발생합니다. CoLa 작업을 무시하면, UltraFastBERT 프레임워크는 약 98.6%의 예측 성능 점수를 반환합니다.

간섭 결과

이 섹션에서는 여러 피드포워드 또는 빠른 피드포워드 네트워크의 간섭 구현 성능을 비교합니다. 이러한 구현은 세 가지 수준으로 나뉩니다.

  1. 1단계 구현은 스칼라-벡터 곱 및 벡터-벡터 닷 제품과 같은 BLAS 1단계 루틴을 사용하여 구성됩니다.
  2. 2단계에서, 구현은 배치된 스칼라-벡터 곱 및 배치된 행렬-벡터 닷 제품과 같은 BLAS 2단계 루틴을 사용합니다.
  3. 3단계에서, 구현은 비배치된 BLAS 3단계 행렬-행렬 곱셈 접근 방식을 사용합니다. 이는 피드포워드 네트워크에 대해 가장 빠른 구현이지만, 계산 행렬 곱셈의 벡터 수준의 희소성으로 인해 빠른 피드포워드 네트워크에 대해 사용할 수 없습니다.

추가로, UltraFastBERT 프레임워크는 사용자 정의 CUDA 또는 PyTorch 커널을 사용하여 GPU 구현을 배포합니다.

위의 표는 UltraFastBERT 프레임워크의 성능을 이전의 BERT 기반 프레임워크와 비교하여, 피드포워드 및 빠른 피드포워드 층에서 동일한 선형 대수 루틴 원시 연산을 사용하는 경우의 상대적인 간섭 빠른 피드포워드 구현 속도 향상을 보여줍니다.

그러나, 위의 표에 보고된 속도 향상은 “공정한 비교”를 위해 설계되었습니다. 즉, 빠른 피드포워드 및 피드포워드 구현 모두 동일한 선형 대수 루틴 원시 연산을 사용합니다. 또한, 1단계 및 2단계에서, 빠른 피드포워드 네트워크의 구현은 간섭을 위해 가장 빠른 피드포워드 구현보다 각각 48배 및 78배 빠르게 수행할 수 있습니다.

최종 생각

이 기사에서, 우리는 UltraFastBERT에 대해 논의했습니다. UltraFastBERT는 BERT 프레임워크의 변형으로, 피드포워드 층이 모든 입력에 대해 사용 가능한 뉴런의 100%를 사용하지 않는다는 개념을 기반으로 합니다. 이는 자원의 낭비로 인해 복잡성, 계산 시간, 계산 비용이 증가합니다. UltraFastBERT는 이러한 피드포워드 층을 더 빠른 피드포워드 네트워크로 대체하여, 사용 가능한 뉴런의 0.3%만을 사용하면서, 비슷한 크기와 훈련 과정을 가진 BERT 모델과 비교할 수 있는 결과를 제공합니다. 특히, 다운스트림 작업에서 그렇습니다.

UltraFastBERT 프레임워크의 강력한 성능은 LLM이 개별 간섭에서 매개변수의 일부만을 사용하여 강력한 성능을 제공할 수 있다는 것을 증명합니다. UltraFastBERT 프레임워크는 간섭에서 사용 가능한 뉴런의 0.3%만을 사용하며, 78배의 속도 향상을 달성합니다.

์ „๋ฌธ์ง์œผ๋กœ์„œ์˜ ์—”์ง€๋‹ˆ์–ด, ๋งˆ์Œ์œผ๋กœ์„œ์˜ ์ž‘๊ฐ€์ž…๋‹ˆ๋‹ค. Kunal์€ AI์™€ ML์— ๋Œ€ํ•œ ๊นŠ์€ ์‚ฌ๋ž‘๊ณผ ์ดํ•ด๋ฅผ ๊ฐ€์ง„ ๊ธฐ์ˆ  ์ž‘๊ฐ€๋กœ, ์ด๋Ÿฌํ•œ ๋ถ„์•ผ์˜ ๋ณต์žกํ•œ ๊ฐœ๋…์„ ํฅ๋ฏธ๋กญ๊ณ  ์ •๋ณด์ ์ธ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ๋‹จ์ˆœํ™”ํ•˜๋Š”๋ฐ ํ—Œ์‹ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.