양지강은 먼저 Transformer 의 발전 추세와 임베디드 스마트 칩에서의 배치를 소개한 다음, Journey 5 를 예로 들어 임베디드 스마트 칩의 알고리즘 개발 프로세스를 중점적으로 소개했습니다. SwinT 를 예로 들어 양적 정밀도 향상 및 배포 성능 최적화를 상세히 해석했습니다. 마지막으로, 그는 Journey 5 에 Transformer 모델을 빠르고 잘 배포하는 방법을 분석했다.
이 강의는 강의와 문답으로 나뉜다. 두 개의 링크, 연사에 대한 의견은 다음과 같습니다.
안녕하세요 모두 들, 내 이름은 양 zhigang, 지평선에서 주로 천궁 우 카이 도구 체인 개발, 예: 여행 2, 여행 3, 여행 5 에서 일련의 양적 도구와 알고리즘 도구의 개발과 검증을 담당 하 고 있습니다. 따라서 Dell 은 사내 알고리즘 팀 및 컴파일러 팀과 심도 있는 접촉을 했습니다.
오늘 제가 나누고자 하는 주제는' 여정 5 에 기반한 Transformer 양적 배치의 실천과 경험' 입니다. 다음으로, Swin-Transformer 가 어떻게 5 번 여행에서 빠르고 잘 작동할 수 있는지 수치화 및 배포 측면에서 분석해 보겠습니다.
다음은 이번 강의의 주요 내용으로 네 부분으로 나뉜다.
1 및 변압기의 발전 추세와 임베디드 스마트 칩에서의 배포
2. Journey 5 를 예로 들어 임베디드 스마트 칩의 알고리즘 개발 프로세스.
3. SwinT 를 예로 들어 정량화 정확도를 높이고 배포 성능을 최적화합니다.
4. 어떻게 여행 5 에 트랜스포머 모델을 빠르고 잘 배치할 수 있습니까?
0 1
변압기 발전 추세
그리고 임베디드 스마트 칩에 배포 하는 문제.
첫 번째 부분은 변압기의 발전 추세와 임베디드 스마트 칩에의 배치입니다. 최근 트랜스포머의 막을 수 없는 추세는 NLP 분야, 심지어 이미지 분야에서도 대체불가의 역할을 하고 있다는 것을 모두 알고 있을 것으로 예상된다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 트랜스포머, 성공명언) 예를 들어, Transformer 가 20 17 에 제시된 이후 Transformer 의 모델 구조는 우수한 시퀀스 모델링 및 글로벌 모델링 기능으로 인해 실제로 지능형 모델 구조 전체에서 점점 더 중요한 역할을 하고 있습니다.
한편으로는 큰 모델의 추세를 이끌었다 (물론 이 추세는 주로 NLP 분야를 가리킨다). 예를 들어, 최근 유행하는 변압기 기반 모델 (예: 버트, GPT) 은 실제로 NLP 분야에서 근본적인 변화를 일으켰다. GPT 등 모델의 매개변수는 1 억에서 1000 억까지 다양하다. 우리는 변압기의 용량과 모델의 발전 추세가 점점 더 큰 방향으로 발전하고 있다는 것을 알 수 있다. 물론, 성장의 전제는 우리가 더 큰 모델을 통해 더 높은 정확도를 얻을 수 있다는 것이다. 그래서 이 규모급은 기본적으로 10 억에서 천억, 조조에 이르렀다.
한편, Transformer 는 NLP 분야 대형 모델의 트렌드를 이끌고 있을 뿐만 아니라 이미지 분야에서도 점점 더 중요한 역할을 하고 있습니다. 여기서 잘라낸 그림 (그림 1) 은 주로 백본의 추세 차트, 즉 분류 ImageNet 입니다. 계산량과 매개변수가 증가함에 따라 정확도가 높아지는 것을 알 수 있습니다.
실제로 탐지, 분할, 추적 등의 일반적인 기본 작업을 나열할 때 ), 우리는 상위 몇 명이 기본적으로 트랜스포머의 그림자에 가려져 있는 것을 볼 수 있다. 따라서 예를 들어 Swin-Transformer 의 일반적인 인코더, DETR 의 경우 디코더, 타이밍, BEV 등이 있습니다. Transformer 를 사용한 피쳐 융합, 이미지 영역의 어느 단계에서든 Transformer 의 기능을 CNN 과 결합하고 CNN 의 모델 구조를 대체할 수 있습니다. CNN 을 대체하든 CNN 과 결합하든 이 두 가지 발전 방향은 이미 시각 영역의 통행 관행이 되었기 때문에 전반적으로 트랜스포머는 현재 이미지 분야에서 피할 수 없는 모델 구조다.
사실 나는 제목에' 범용 인공지능으로 통하는 문' 이라는 새로운 문장을 추가했다. 물론, 나는 이 말을 감히 하지 못한다. 저도 다른 자료들에서 봤어요. 이제 기본적으로 Transformer 는 피쳐 추출 단계에서 범용 인공지능의 구성 요소라고 생각하기 때문에 문이라고도 하지만, 이것이 우리가 오늘 공유해야 할 요점이 아닙니다.
Transformer 는 모델 구조에서 점점 더 중요한 역할을 하고 있지만, 다른 한편으로는 임베디드 측 배포에도 점점 더 많은 관심을 받고 있습니다. 특히 변압기의 크기가 커지는 것은 임베디드 스마트 칩 배치와 다르다. 예를 들어, 변압기 모델은 점점 더 커지고 있지만, 임베디드 스마트 칩은 비용 및 전력 제한으로 인해 컴퓨팅 성능, 대역폭 및 기타 많은 기능에 제한이 있습니다. 현재 임베디드 스마트 칩의 약간 크거나 작은 변압기 모델 배포에 어려움이 있습니다.
여기서 세 가지 주요 예를 말씀드리겠습니다. 첫째, 임베디드 스마트 칩은 비용과 전력 소비량에 따라 컴퓨팅 성능, 대역폭, 메모리 등이 제한되기 때문에 Transformer 와 같은 대형 모델 구축이 제한됩니다. 대형 모델을 사용하여 컴퓨팅 성능이 작은 플랫폼을 배포하면 Transformer 나 일반 CNN 이 아니더라도 성능이 크게 저하될 수 있습니다. Transformer 와 같은 대형 모델을 컴퓨팅 기능이 작은 플랫폼에 배포하면 약간의 결함이 있을 수 있습니다.
두 번째 특징은 시장에서 널리 사용되는 임베디드 스마트 칩이 일반적으로 배포 모델을 낮은 정밀도로 처리한다는 점입니다. 물론 정밀도가 낮은 것 외에도 정확도가 어느 정도 있는 부동 소수점 지원이 소량 있습니다. 이 이유는 컴퓨팅 능력과 대역폭의 제한과 동일합니다. 주로 비용과 전력 소비 측면에서 고려되기 때문에 임베디드 스마트 칩에 배포하려는 경우 이 모델을 수량화해야 할 수 있습니다. 그러나 동시에 수량화해도 어느 정도의 정밀도 손실이 있을 수 없다. (존 F. 케네디, 컴퓨터명언) (윌리엄 셰익스피어, 윈스턴, 컴퓨터명언) (알버트 아인슈타인, 컴퓨터명언) 그렇지 않으면 정밀도 손실이 큰 경우 이러한 배치는 의미가 없습니다.
셋째, 칩의 발전은 사실 알고리즘에 뒤처져 있다. 이 점은 우리 회사 나선생님 이전의 공유 ('지평선 박사: 어떻게 만든 자동운전 AI 칩') 에 자세히 설명되어 있다. 흥미가 있는 사람은 볼 수 있다. 간단히 말해서, 칩은 설계부터 정식 양산까지 시간이 오래 걸리며 2 ~ 4 년이 걸릴 수 있습니다. 그래서 현재 시중에서 유행하고 있는 임베디드 스마트 칩은 기본적으로 1-2 년 전, 그 당시 설계된 임베디드 스마트 칩은 트랜스포머의 상황을 고려하지 않았을 가능성이 높다. 당시 시중에서 유행했던 모델들은 대부분 CNN 을 기반으로 했기 때문에 현재의 임베디드 스마트 칩은 대부분 CNN 에 매우 우호적이지만 오늘 우리는 이 격차가 어디서 왔는지 토론합시다.
Transformer 구축 과정에서 어떤 문제가 발생합니까?
첫 번째는 수량화입니다. 사실 현재 많은 커뮤니티 논문이나 일부 블로그에서 Transformer 의 수량화를 볼 수 있다. 우선, 왜 정량화해야 합니까? 나는 단지 간단히 말했을 뿐, 비용과 전력 소비 방면에서 고려한 것이다. Int8 또는 낮은 수치로 배포하면 전력 소비 감소, 컴퓨팅 속도 향상, 메모리 및 스토리지 점유 감소 등 분명한 이점이 있습니다. 여기 데이터 비교가 있습니다. 실제로 Transformer 배포에는 몇 가지 일반적인 문제가 있습니다. 수량화 훈련에 익숙하다면 변압기 모형에 GeLU, LayerNorm 과 같은 많은 비선형 함수가 있다는 것을 알아야 한다. 따라서 활성화 값의 출력은 가우스 분포와 크게 다를 수 있으며, 이로 인해 CNN 이전에 일반적으로 사용되었던 대칭 정량화 방법의 상당 부분이 현저하게 정확도 문제가 발생할 수 있습니다.
Transformer 의 양적 정밀도 문제를 해결하기 위해 커뮤니티는 많은 공통된 경험을 가지고 있습니다. 제가 여기 두 가지 예를 들어 보겠습니다. 이를테면 비대칭계량으로 분포가 고르지 않거나 가우스 분포가 큰 경우를 처리하는데, 어떤 경우에는 부동 소수점 SoftMax 나 LayerNorm 을 하드웨어에 직접 사용할 수도 있습니다. 이렇게 하면 정량화 문제를 해결할 수 있습니다. 하지만 실제로는 하드웨어와 결합해야 합니다. 하드웨어가 부동 소수점 또는 비대칭 수량화를 지원할 수 있는지 여부는 우리가 고려해야 할 또 다른 문제입니다. 오늘 우리가 이야기하고자 하는 여정 5 의 플랫폼은 순수 int8 의 임베디드 지능형 플랫폼입니다. 순수 int8 의 임베디드 지능형 플랫폼에 부동 소수점 SoftMax 또는 LayerNorm 을 배포하는 것은 분명히 불합리합니다. 경우에 따라서는 순수 int8 에서도 비대칭 수량화를 지원하지 않을 수 있으므로 변압기 수량화의 불친절한 문제를 해결하려면 하드웨어의 특성과 결합해야 합니다.
변압기 모형 배치의 두 번째 문제는 변압기가 더 높은 컴퓨팅 능력을 필요로 한다는 것이다. 앞서 언급했듯이 Transformer 는 최근 몇 년 동안 가장 주목받는 신경망 모델이며, Transformer 는 기계 시각 분야에서 가장 중요하고 철저한 응용은 Swin Transformer 이며, 이 직업도 기계 시각 분야의 최고상 Mar 상을 수상했다. 여기 Swin-Transformer 를 예로 들어 보겠습니다. 가장 작은 모델인 Swin-Transformer 를 고려해 보았는데, 그 계산량은 약 4.5G 이다.
많은 사람들이 4.5G 라는 직관적인 개념을 가지고 있지 않을 수도 있습니다. 저는 두 가지 간단한 비교를 했습니다. 아마도 우리의 일반적인 모델인 EfficientNetB 4 와 ResNet50 에 해당할 것입니다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 예술명언) ResNet50 에 대해 말하자면, 많은 사람들이 개념을 가지고 있다. ResNet50 수준으로 배포하면 시중에서 컴퓨팅 성능이 약간 낮은 임베디드 스마트 칩을 배포하기가 어려울 수 있습니다. 이전 세대의 Horizon 칩이 ResNet50 을 실행할 수 있는 것과 같은 Horizon 의 역사를 아는 사람이 있다면, 효율성은 그리 높지 않고 CNN 의 배포 효율이기도 합니다. 변압기에 사용하면 효율성이 더욱 떨어진다. 따라서 전체 SwinT 배포에 대한 전제 조건은 칩의 컴퓨팅 능력이 특정 요구 사항을 충족한다는 것입니다.
앞서 언급한 SwinT 의 근거 외에도 더 중요한 질문이 하나 더 있습니다. Transformer 와 CNN 의 모델은 어떻게 다릅니까? 내 칩은 ResNet50 을 배포할 수 있지만 Transformer 는 배포할 수 없다고 말할 수 있는 이유는 무엇입니까? 사실 이것은 CNN 모델과 Transformer 모델의 중요한 차이점이다. CNN 의 모델에 익숙하다면 CNN 은 기본적으로 처음부터 끝까지 하나의 컨볼 루션만 있거나 RoiAlign 과 같은 여러 개의 컨볼 루션 산자가 있다는 것을 알 수 있습니다. 따라서 전체 CNN 모델은 실제로 회선 및 행렬 곱셈을 기반으로 합니다. 즉, 이러한 산자는 주로 계산 집약적인 산자가 특징이다. 왜 우리의 초기 스마트 칩은 동시성이 강합니까? 스마트 칩은 처음부터 이런 CNN 모델을 기반으로 설계되었으며, 동시성을 이용하여 연산 집약적 문제를 해결하는 데 중점을 두고 있기 때문이다.
하지만 트랜스포머에서는 상황이 달라졌습니다. Transformer 에는 방금 말씀드린 컨볼 루션 및 행렬 곱셈 외에도 Elementwise 및 Reduce 와 같은 메모리 집약형 연산자가 많이 있습니다. 메모리 액세스 집약형 연산자와 연산 집약적 연산자는 뚜렷한 차이가 있으며, 내 메모리 액세스 대역폭이나 메모리 액세스 요구 사항이 비교적 높고 불규칙적인 데이터 처리가 더 많아질 수 있습니다. CNN 과는 달리 4d 텐서는 처음부터 끝까지 사용할 수 있습니다. 내 4d 텐서의 법칙은 매우 분명할 수 있습니다. W/H 차원은 다운로드되고 C 차원은 더 길어질 것입니다. 4 차원 텐서의 이 기능은 전체 임베디드 지능형 플랫폼에 매우 우호적이다.
그러나 Transformer 에는 Swin-Transformer 와 같은 불규칙한 데이터 처리가 더 많이 있습니다. 우리가 창 분할과 창 반전을 할 때, 많은 새로 고침 및 전환 작업이 있을 것이며, 이 작업으로 인한 문제는 효율성이 더욱 낮아진다는 것이다. 사실, 이 문제는 전체 변압기 또는 전체 칩 산업에서 발생할 수 있는 문제입니다. 임베디드 스마트 칩뿐만 아니라 훈련 칩에도 비슷한 문제가 있을 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 스포츠명언)
몇 년 전 NVIDIA OPS 에 대한 간단한 통계를 기억했는데, 이 세부 사항은 내가 말하지 않겠다. 결론적으로, 결론은 컨볼 루션 및 행렬 곱셈과 같은 순수 계산 산자가 계산량의 약 99.8% 를 차지하지만 실제로는 NVIDIA 칩에서의 실행 시간 (훈련 칩의 경우) 이 60% 에 불과하다는 것이다. 즉, 훈련 칩 자체에는 많은 비계산적 산자가 있지만, 이 산자들은 40% 의 시간을 소비한다. Transformer 가 임베디드 스마트 칩을 배포하면 이 문제가 크게 확대됩니다. 일반적인 임베디드 스마트 칩은 메모리 액세스 연산자와 불규칙한 데이터 처리에 많은 시간을 낭비할 수 있습니다.
첫 번째 부분은 비용과 전력 소비의 제약으로 인해 임베디드 스마트 칩의 설계 아이디어가 실제로 배포해야 하는 변압기 모델과 크게 다르다는 것을 요약합니다.
02
여행 5 를 예로 들다.
임베디드 지능형 칩 알고리즘 개발 프로세스
두 번째 부분은 임베디드 스마트 칩의 발전 과정을 중점적으로 소개한다. 여기에 여행 5 를 예로 들지만, 실제로 우리의 현재 연구나 대부분의 임베디드 스마트 칩을 통해 개발 과정은 거의 동일하기 때문에 우리가 해결해야 할 문제는 거의 비슷하다.
우선, 여행 5 의 기본 상황에 대해 간단히 이야기하겠습니다. 이전 시리즈에 대한 충분한 설명이 있습니다. Journey 5 가 어떻게 설계되었는지, 그리고 스마트 운전 플랫폼이 얼마나 혁신적이거나 유용한지 말하지 않겠습니다. 여기서, 나는 주로 이러한 기본적인 상황이 변압기 배치의 전제조건을 어떻게 충족시키는지에 대해 이야기할 것이다. 이것은 또한 우리가 방금 언급한 임베디드 스마트 칩 배치의 일반적인 결함에 해당합니다.
첫 번째 요점은 대형 컴퓨팅 플랫폼입니다. 첫째, Transformer 제품군 모델을 구축하기 위해서는 큰 컴퓨팅 플랫폼이 필요합니다. 제가 방금 말씀드렸듯이,' 여행 3' 의 마지막 세대에서' 트랜스포머' 를 배포하는 것이 더 어려울 수 있습니다.
두 번째 요점은 풍부한 운영자 지원입니다. Transformer 의 맵에서 이것이 왜 더 중요한지 알 수 있습니다. CNN 모델의 주체는 컨볼 루션이며, RoiAlign 과 같은 소수의 다른 산자가 있다. 하지만 Transformer 에는 LayerNorm, SoftMax, shape, Transpose 등과 같은 잡다한 연산자가 많이 있습니다. 따라서 스마트 칩에 Swin-Transformer 또는 기타 변압기를 배포하기 위한 전제 조건은 컴퓨팅 능력뿐만 아니라 운영자에 대한 풍부한 지식이 필요합니다.
또한 컴퓨팅 성능이 가장 뛰어납니다. Transformer 의 배포는 CNN 기반 모델, 즉 연산 집약적 모델을 기반으로 하기 때문에 큰 참조 가치가 없다고 생각합니다. 그러나 Transformer 의 능력은 이것과 큰 차이가 있습니다.
마지막 요점은 초저전력 소비입니다. 이것은 또한 5 의 하이라이트 중 하나이기 때문에 더 말할 필요가 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 도전명언) 지평선 여행 5 와 천궁 오카이 도구 체인은 사실 비교적 완벽한 소프트웨어 도구 세트를 축적했다. 이 소프트웨어 도구는 사용자 교육의 부동 소수점 모델로 시작하여 정량화, 교육, 컴파일, 배포, 최적화 등을 수행합니다. , 마지막으로 임베디드 측에 배포. 수량화를 예로 들자면, 기본적으로 전체 칩 도구 체인은 PTQ 의 후량화와 QAT 의 수량화 교육을 제공한다. 최적화 컴파일 단계에서 Checker, Calibrator, analysis, simulation 등의 도구를 제공할 수 있으며, 최종적으로 사용자의 모델을 정량화하고 최적화한 후 임베디드 측에 배포할 수 있습니다. 초기 전체 도구 체인의 축적은 실제로 CNN 모델을 기반으로 한 것이라고 말할 필요가 있습니다. 나중에 CNN 모델을 기반으로 누적된 전체 칩 도구 체인이 변압기 모델을 처리할 때 정량적이든 최적의 배치이든 어느 정도 결함이 있는 이유에 대해서도 설명하겠습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 스포츠명언)
다음은 사용자가 부동 소수점 모델을 임베디드 칩에 신속하게 배포할 수 있도록 전체 천공 오카이 도구 체인을 활용하는 방법입니다. 이것은 내가 처음에 말한 것이다. 칩 도구 체인과 임베디드 스마트 칩의 배포 절차가 동일해졌습니다. 전반적으로, 알고리즘 마이그레이션의 비용이 충분히 작은 관점에서 보면, 기본적으로 표준 절차이다. 그런 다음 부동 소수점 교육부터 시작하여 PTQ 후 정량화 교정을 거쳐 사후 정량화 정확도가 요구 사항을 충족하면 최적화를 직접 컴파일하고 최종 배포할 수 있습니다. 요구 사항을 충족하지 못하면 차례대로 양적 인식 훈련을 할 수 있다. 양적 인식 교육의 목적은 정확도를 요구 사항에 맞추고 최종적으로 모델을 정의하는 것입니다. 따라서 변압기 배치 최적화 과정을 처리하기 위해 처리해야 할 두 가지 핵심 사항은 정량 최적화와 편제 최적화이며, 주로 정량 공식을 이용하여 정량의 정확성을 높이는 것이다. 두 번째는 컴파일 중 수동 또는 자동으로 더 나은 배포 성능을 얻는 것입니다.
천공 오카이 도구 체인은 처음으로 여행 5 에 Swin-Transformer 를 배치했다. 사실 그리 많은 어려움을 겪지 않았다. 물론, 제가 방금 말씀드린 것은 이 전제조건입니다. 첫째, 컴퓨팅 능력이 크고, 둘째, 운영자의 지식이 풍부하다. Journey 5 에서의 배포 프로세스는 비교적 간단합니다. 다음은 지원되는 연산자에 대한 간단한 설명입니다. 사실 Swin-Transformer 를 아는 사람들은 shape, roll, LayerNorm, matmul 등과 같은 것을 알아야 한다. 종합적인 운영자 지원이 필요한 이유는 무엇입니까? 우리가 처음 이 일을 했을 때, ONNX opset 이 roll 을 완전히 지원하지 않는다는 것을 알게 되었기 때문에, 다른 브랜드의 Swin-Transformer 의 결과를 테스트할 때, roll 을 단독으로 처리해야 한다. 최근 opset 에서 roll 이 이미 지원되었다는 사실을 발견했지만, 다른 한편으로는 일부 임베디드 스마트 칩 플랫폼이 운영자를 완벽하게 지원하는 것은 도구 사용 제한 때문이든, 아니면 마지막으로 배포된 칩이든 어느 정도 한계점을 가지고 있다는 것을 보여준다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 스포츠명언)
& ltP class="ql-al 이 글은 차이작자로부터 온 것으로 저작권은 저자가 소유한다. 어떤 형태로든 전재한다면 저자에게 연락하세요. 내용은 대표작자의 관점일 뿐 차 개조와는 무관하다.