ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.

ByteDance는 AWS Inferentia를 사용하여 지연 시간을 줄이고 처리량을 늘리면서 추론 비용을 최대 60% 절감합니다.

이것은 Bytedance의 Minghui Yu 및 Jianzhe Xiao와 공동으로 작성한 게스트 블로그 게시물입니다.

ByteDance 언어, 문화 및 지역에 상관없이 사람들에게 정보를 제공하고, 교육하고, 즐겁게 하고, 영감을 주는 다양한 콘텐츠 플랫폼을 운영하는 기술 회사입니다. 사용자는 콘텐츠 플랫폼이 제공하는 풍부하고 직관적이며 안전한 경험으로 인해 콘텐츠 플랫폼을 신뢰하고 즐깁니다. 이러한 경험은 콘텐츠 조정, 검색, 추천, 광고 및 새로운 시각 효과를 위해 구축된 ML 모델을 갖춘 ML(기계 학습) 백엔드 엔진으로 가능합니다.

ByteDance AML(Applied Machine Learning) 팀은 회사의 비즈니스를 위해 성능이 뛰어나고 안정적이며 확장 가능한 ML 시스템과 엔드 투 엔드 ML 서비스를 제공합니다. 우리는 응답 시간을 늘리지 않고 비용을 줄이기 위해 ML 추론 시스템을 최적화하는 방법을 연구하고 있었습니다. AWS가 출시되었을 때 AWS 인 페렌 시아, AWS에서 특별히 제작한 고성능 ML 추론 칩인 AWS Inferentia가 최적화 목표를 달성할 수 있는지 테스트하기 위해 AWS 계정 팀과 협력했습니다. 몇 가지 개념 증명을 실행한 결과 T60 GPU 기반 EC4 G2dn 인스턴스에 비해 추론 비용이 최대 4%, 추론 지연 시간이 최대 25% 감소했습니다. 이러한 비용 절감 및 성능 향상을 실현하기 위해 AWS Inferentia 기반에 모델을 배포하기로 결정했습니다. 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 생산 중인 Inf1 인스턴스.

다음 차트는 이전에 Tensor RT를 사용하여 GPU에 배포된 얼굴 감지 모델 중 하나에 대한 대기 시간 개선을 보여줍니다. 평균 대기 시간은 20%(50밀리초에서 40밀리초로) 감소했으며 p99 대기 시간은 25%(200밀리초에서 150밀리초로) 감소했습니다.

이 게시물에서는 AWS Inferentia를 사용하여 지연 시간을 줄이고 처리량을 늘리면서 추론 비용을 절감한 방법을 공유합니다.

고성능의 비용 효율적인 컴퓨팅을 찾아서

ByteDance AML 팀은 최첨단 ML 시스템과 필요한 이기종 컴퓨팅 리소스의 연구 및 구현에 중점을 둡니다. 다양한 추천, 자연어 처리(NLP) 및 컴퓨터 비전(CV) 모델을 위한 대규모 교육 및 추론 시스템을 만듭니다. 이러한 모델은 매우 복잡하며 ByteDance가 운영하는 많은 콘텐츠 플랫폼에서 엄청난 양의 데이터를 처리합니다. 이러한 모델을 배포하려면 클라우드에서든 온프레미스에서든 상당한 GPU 리소스가 필요합니다. 따라서 이러한 추론 시스템의 컴퓨팅 비용은 상당히 높습니다.

우리는 처리량이나 대기 시간에 영향을 주지 않으면서 이러한 비용을 낮추고자 했습니다. 우리는 온프레미스 설정에 필요한 것보다 훨씬 짧은 클라우드의 유연성과 더 빠른 제공 주기를 원했습니다. 또한 가속화된 ML을 위한 새로운 옵션을 탐색하는 데 개방적이었지만 원활한 개발자 경험도 원했습니다.

우리는 AWS 팀으로부터 AWS Inferentia 기반 EC2 Inf1 인스턴스가 클라우드에서 가장 낮은 추론당 비용으로 고성능 ML 추론을 제공한다는 사실을 알게 되었습니다. 우리는 많은 양의 이미지, 개체, 음성 및 텍스트 데이터에 대해 실질적인 기계 학습을 실행하기 때문에 그것들을 탐색하고 싶었고 우리의 사용 사례에 적합하다는 것을 알았습니다. 모델의 복잡성과 일일 예측의 양을 고려할 때 막대한 비용 절감을 실현할 수 있었기 때문에 우리 목표에 확실히 적합했습니다. 또한 AWS Inferentia는 대규모 모델을 칩 외부에 저장하는 대신 캐싱하는 데 사용할 수 있는 대용량 온칩 메모리를 제공합니다. NeuronCores라고 하는 AWS Inferentia의 처리 코어가 온칩 메모리에 저장되고 오프칩 메모리에 의해 제한되지 않는 모델에 고속으로 액세스할 수 있기 때문에 이것이 추론 지연 시간을 줄이는 데 상당한 영향을 미칠 수 있음을 인식했습니다. 대역폭.

궁극적으로 여러 옵션을 평가한 후 G2dn 인스턴스 및 NVIDIA T1 온프레미스에 비해 성능/가격 비율이 더 우수한 EC4 Inf4 인스턴스를 선택했습니다. Inf1의 가격 및 성능 이점을 활용하기 위해 AWS 팀과 지속적인 반복 주기에 참여했습니다.

AWS Inferentia에 추론 워크로드 배포

AWS Neuron SDK를 사용하여 AWS Inferentia를 시작하려면 모델 코드 컴파일 및 Inf1 인스턴스 배포의 두 단계가 필요합니다. ML 모델을 새로운 인프라로 옮길 때 흔히 그렇듯이 몇 가지 문제에 직면했습니다. 우리는 AWS 팀의 성실함과 지원으로 이러한 문제를 극복할 수 있었습니다. 다음 섹션에서는 AWS Inferentia에서 추론 워크로드를 배포한 경험을 바탕으로 몇 가지 유용한 팁과 관찰 내용을 공유합니다.

OCR용 Conformer 모델

당사의 OCR(광학 문자 인식) 적합자 모델은 이미지 내의 텍스트를 감지하고 읽습니다. 대기 시간을 낮게 유지하면서 다양한 배치 크기에 대해 고성능(QPS)을 얻기 위해 몇 가지 최적화 작업을 했습니다. 몇 가지 주요 최적화는 다음과 같습니다.

  • 컴파일러 최적화 – 기본적으로 Inferentia는 고정된 시퀀스 길이의 입력에서 가장 잘 수행되며 텍스트 데이터의 길이가 고정되지 않아 문제가 발생했습니다. 이를 극복하기 위해 모델을 인코더와 디코더의 두 부분으로 나눕니다. 이 두 하위 모델을 개별적으로 컴파일한 다음 TorchScript를 통해 단일 모델로 병합했습니다. CPU에서 for 루프 제어 흐름을 실행함으로써 이 접근 방식은 Inferentia에서 가변 시퀀스 길이에 대한 지원을 활성화했습니다.
  • 심층 컨볼루션 성능 – Conformer 모델에서 많이 사용하는 Depthwise Convolution 연산에서 DMA 병목 현상이 발생했습니다. 우리는 AWS Neuron 팀과 긴밀히 협력하여 DMA 액세스 성능 병목 현상을 식별하고 해결하여 이 작업의 성능을 개선하고 OCR 모델의 전반적인 성능을 개선했습니다.

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.

Inferentia에서 배포를 최적화하기 위해 두 가지 새로운 모델 변형을 만들었습니다.

  • 결합 및 펼쳐진 인코더/디코더 – 독립적으로 컴파일된 인코더와 디코더를 사용하는 대신 인코더와 완전히 펼쳐진 디코더를 단일 모델로 결합하고 이 모델을 단일 NEFF로 컴파일했습니다. 디코더를 언롤링하면 CPU 작업을 사용하지 않고 Inferentia에서 모든 디코더 제어 흐름을 실행할 수 있습니다. 이 접근 방식을 사용하면 디코더의 각 반복에서 해당 토큰에 필요한 컴퓨팅 양을 정확히 사용합니다. 이 접근 방식은 패딩 입력에 의해 이전에 도입된 초과 계산을 크게 줄이므로 성능이 향상됩니다. 또한 디코더 반복 사이에 Inferentia에서 CPU로 데이터를 전송할 필요가 없어 I/O 시간이 크게 줄어듭니다. 모델의 이 버전은 조기 중지를 지원하지 않습니다.
  • 분할된 펼쳐진 디코더 – 결합된 완전 언롤링 모델과 유사하게 이 모델 변형은 디코더의 여러 반복을 언롤링하고 단일 실행으로 컴파일합니다(인코더는 포함하지 않음). 예를 들어 최대 시퀀스 길이가 75인 경우 디코더를 토큰 3-1, 25-26 및 50-51를 계산하는 75개의 파티션으로 펼칠 수 있습니다. I/O 측면에서도 매 반복마다 한 번씩 인코더 출력을 전송할 필요가 없기 때문에 훨씬 빠릅니다. 대신 출력은 각 디코더 파티션당 한 번만 전송됩니다. 이 버전의 모델은 조기 중지를 지원하지만 파티션 경계에서만 지원합니다. 대부분의 요청이 하나의 파티션만 실행하도록 각 특정 애플리케이션에 대해 파티션 경계를 조정할 수 있습니다.

성능을 더욱 향상시키기 위해 메모리 사용량을 줄이거나 액세스 효율성을 개선하기 위해 다음과 같은 최적화를 수행했습니다.

  • Tensor 중복 제거 및 복사본 감소 – 이것은 텐서를 재사용하여 공간 효율성을 향상시켜 언롤링된 모델의 크기와 명령/메모리 액세스 수를 크게 줄이는 컴파일러 최적화입니다.
  • 축소된 지침 – 이것은 총 명령 수를 크게 줄이기 위해 패딩되지 않은 버전의 디코더와 함께 사용되는 컴파일러 최적화입니다.
  • 멀티코어 중복 제거 – 이것은 텐서 중복 제거의 대안인 런타임 최적화입니다. 이 옵션을 사용하면 모든 멀티코어 모델이 훨씬 더 공간 효율적입니다.

이미지 분류를 위한 ResNet50 모델

ResNet-50은 이미지 분류를 위한 사전 훈련된 딥 러닝 모델입니다. 시각적 이미지 분석에 가장 일반적으로 적용되는 Convolutional Neural Network(CNN 또는 ConvNet)입니다. 다음 기술을 사용하여 Inferentia에서 이 모델의 성능을 개선했습니다.

  • 모델 변환 – 많은 ByteDance 모델은 Inferentia가 현재 기본적으로 지원하지 않는 ONNX 형식으로 내보내집니다. 이러한 ONNX 모델을 처리하기 위해 AWS Neuron 팀은 모델을 ONNX 형식에서 Torch-neuron을 사용하여 Inferentia용으로 직접 컴파일할 수 있는 PyTorch 모델로 변환하는 스크립트를 제공했습니다.
  • 성능 최적화 – 우리는 긴밀히 협력했습니다. AWS 뉴런 ResNet-50 모델의 성능을 최적화하기 위해 컴파일러에서 스케줄링 휴리스틱을 조정하는 팀.

콘텐츠 조정을 위한 다중 모달 모델

다중 모달 딥 러닝 모델은 여러 개별 모델의 조합입니다. 이 모델의 크기가 상대적으로 커서 Inferentia에서 모델 로딩 오류가 발생했습니다. AWS Neuron 팀은 가중치 공유를 사용하여 디바이스 메모리 사용량을 줄임으로써 이 문제를 성공적으로 해결했습니다. Neuron 팀은 Neuron libnrt 라이브러리에서 이 가중치 중복 제거 기능을 출시했으며 보다 정확한 메트릭을 위해 Neuron 도구도 개선했습니다. 추론을 실행하기 전에 다음 환경 변수를 설정하여 런타임 가중치 중복 제거 기능을 활성화할 수 있습니다.

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

업데이트된 Neuron SDK는 중복 모델의 전체 메모리 소비를 줄여 멀티코어 추론을 위한 멀티모달 모델을 배포할 수 있게 했습니다.

더 많은 모델을 AWS Inferentia로 마이그레이션

ByteDance에서는 혁신적인 딥 러닝 모델을 지속적으로 배포하여 거의 2억 명의 월간 활성 사용자에게 즐거운 사용자 경험을 제공합니다. 우리가 운영하는 막대한 규모를 감안할 때 비용을 절감하고 성능을 최적화할 수 있는 방법을 지속적으로 찾고 있습니다. 고성능 및 비용 효율성의 이점을 얻기 위해 모델을 AWS Inferentia로 계속 마이그레이션할 것입니다. 또한 우리는 AWS가 사전 처리 작업을 위해 더 많은 vCPU가 있는 것과 같은 더 많은 AWS Inferentia 기반 인스턴스 유형을 시작하기를 원합니다. 앞으로 ByteDance는 ML 애플리케이션에 최고의 가격 대비 성능을 제공하기 위해 AWS에서 더 많은 실리콘 혁신을 기대하고 있습니다.

AWS Inferentia가 추론 애플리케이션의 성능을 최적화하면서 비용을 절감하는 데 어떻게 도움이 되는지 자세히 알아보려면 Amazon EC2 Inf1 인스턴스 제품 페이지.


저자에 관하여

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.유밍휘 ByteDance에서 추론을 담당하는 수석 기계 학습 팀 리더입니다. 그의 초점 분야는 AI 컴퓨팅 가속 및 기계 학습 시스템입니다. Post Moore 시대의 이기종 컴퓨팅 및 컴퓨터 아키텍처에 관심이 많습니다. 여가 시간에는 농구와 양궁을 좋아합니다.

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.젠제 샤오 ByteDance AML 팀의 수석 소프트웨어 엔지니어 팀장입니다. 그의 현재 업무는 비즈니스 팀이 모델 배포 프로세스의 속도를 높이고 모델의 추론 성능을 개선하도록 돕는 데 중점을 두고 있습니다. 일 외에는 피아노 연주를 즐깁니다.

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.톈시 AWS의 선임 솔루션 아키텍트입니다. 그의 초점 영역은 데이터 분석, 기계 학습 및 서버리스입니다. 그는 고객이 클라우드에서 안정적이고 확장 가능한 솔루션을 설계하고 구축하도록 돕는 일에 열정적입니다. 여가 시간에는 수영과 독서를 즐깁니다.

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.지아동 AWS의 고객 솔루션 관리자입니다. 그녀는 AWS AI/ML 서비스에 대해 배우고 이를 위한 솔루션을 구축하여 고객이 비즈니스 성과를 달성하도록 돕는 것을 즐깁니다. 업무 외에는 여행, 요가, 영화를 즐깁니다.

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.조나단 런트 ML 프레임워크 개발에 중점을 둔 Amazon의 소프트웨어 엔지니어입니다. 경력을 쌓는 동안 그는 모델 개발, 인프라 배포 및 하드웨어별 최적화를 포함하여 데이터 과학 역할의 전체 범위를 수행했습니다.

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.조슈아 한난 Amazon의 기계 학습 엔지니어입니다. 그는 대규모 컴퓨터 비전 및 자연어 처리 응용 프로그램을 위한 딥 러닝 모델을 최적화하는 작업을 합니다.

ByteDance는 AWS Inferentia PlatoBlockchain Data Intelligence를 사용하여 지연 시간을 줄이고 처리량을 늘리는 동시에 추론 비용을 최대 60% 절감합니다. 수직 검색. 일체 포함.슈루티 코파카르 AWS의 수석 제품 마케팅 관리자입니다. 그녀는 고객이 기계 학습 요구 사항에 맞게 EC2 가속 컴퓨팅 인프라를 탐색, 평가 및 채택하도록 돕습니다.

타임 스탬프 :

더보기 AWS 기계 학습