단 한 줄의 코드로 엘릭서를 두 배 빠르게 만들 수 있습니다! PyTorch 2.0이 깜짝 등장하고 LeCun이 열정적으로 이를 전달합니다.
12월 2일, PyTorch 2.0이 공식 출시되었습니다!
이 업데이트는 PyTorch의 성능을 새로운 차원으로 끌어올릴 뿐만 아니라 동적 모양 및 분포에 대한 지원도 추가합니다.
또한 2.0 시리즈에서는 일부 PyTorch 코드를 C++에서 Python으로 다시 이동할 예정입니다.
현재 PyTorch 2.0은 아직 테스트 단계에 있으며 첫 번째 안정 버전은 2023년 3월 초에 출시될 예정입니다.
PyTorch 2.x: 더 빠르고, 더 파이썬적입니다!
지난 몇 년 동안 PyTorch는 1.0부터 최근 1.13까지 혁신과 반복을 거쳐 새로 형성된 PyTorch 재단으로 이동하여 Linux 재단의 일부가 되었습니다.
현재 버전의 PyTorch의 문제점은 열성 모드가 계속 증가하는 GPU 대역폭과 더 열악한 모델 아키텍처를 따라잡는 데 어려움을 겪는다는 것입니다.
PyTorch 2.0의 탄생은 PyTorch가 컴파일러 수준에서 실행되는 방식을 근본적으로 바꾸고 개선할 것입니다.
우리 모두 알고 있듯이 PyTorch의 (Py)는 데이터 과학에서 널리 사용되는 오픈 소스 Python 프로그래밍 언어에서 유래되었습니다.
하지만 PyTorch의 코드는 Python을 완전히 사용하지 않고 일부를 C++에 제공합니다.
그러나 향후 2.x 시리즈에서 PyTorch 프로젝트 팀은 torch.nn 관련 코드를 다시 Python으로 이동할 계획입니다.
게다가 PyTorch 2.0은 완전한 추가 기능(및 선택 사항) 기능이므로 2.0은 이전 버전과 100% 호환됩니다.
즉, 코드 베이스도 같고, API도 같고, 모델을 작성하는 방식도 같습니다.
추가 기술 지원
- TorchDynamo
PyTorch 프로그램을 안전하게 캡처하기 위해 Python 프레임워크 평가 후크를 사용하는 것은 지난 5년 동안 그래프 캡처 팀에서 개발한 주요 혁신입니다.
- AOTAutograd
예측 역추적을 생성하기 위한 추적 자동 비교로 PyTorch의 autograd 엔진을 오버로드합니다.
- PrimTorch
는 ~2000개 이상의 PyTorch 연산자를 개발자가 완전한 PyTorch 백엔드를 구축할 수 있는 ~250개의 기본 연산자의 닫힌 세트로 요약합니다. PyTorch 기능이나 백엔드 작성에 대한 장벽이 크게 낮아졌습니다.
- TorchInductor
여러 가속기와 백엔드를 위한 빠른 코드를 생성할 수 있는 딥 러닝 컴파일러입니다. Nvidia GPU의 경우 OpenAI Triton을 핵심 빌딩 블록으로 사용합니다.
TorchDynamo, AOTAutograd, PrimTorch 및 TorchInductor가 모두 Python으로 작성되었으며 동적 모양을 지원한다는 점은 주목할 가치가 있습니다.
빠른 훈련 속도
새로운 컴파일 모드 "torch.compile"을 도입함으로써 PyTorch 2.0은 코드 한 줄로 모델 훈련을 가속화할 수 있습니다.
여기에는 트릭이 필요하지 않습니다. 그냥 torch.compile()을 실행하면 됩니다:
opt_module = torch.compile(module)
이러한 기술을 검증하기 위해 팀은 이미지 분류, 객체 감지, 이미지 생성 등의 작업은 물론 언어 모델링, 질문 답변, 시퀀스 분류, 추천 시스템 등 다양한 NLP 작업을 포함하는 테스트 벤치마크를 신중하게 생성했습니다. , 강화 학습 등이 있습니다. 그중 벤치마크는 세 가지 범주로 나눌 수 있습니다.
- HuggingFace Transformers의 46개 모델
- TIMM의 61개 모델: Ross Wightman의 최첨단 PyTorch 이미지 모델 컬렉션
- TorchBench의 56개 모델: github 인기 있는 코드 라이브러리 세트
테스트 결과에 따르면 비전, NLP 및 기타 분야를 포괄하는 163개 오픈 소스 모델에서 훈련 속도가 38%-76% 향상되었습니다.
NVIDIA A100 GPU 비교
또한 팀은 일부 인기 오픈 소스 PyTorch 모델에 대한 벤치마크 테스트를 실시한 결과 30%에서 2배로 상당한 속도 향상을 얻었습니다.
개발자 Sylvain Gugger는 다음과 같이 말했습니다. “단 한 줄의 코드로 PyTorch 2.0은 Transformers 모델 학습 시 1.5배에서 2.0배의 속도 향상을 달성할 수 있습니다. 이는 혼합 정밀도 학습이 등장한 이후 가장 흥미로운 것입니다. technical 개요
pytorch의 컴파일러는 세 부분으로 분류 될 수 있습니다. Graph 획득
graph retuction graph compilations, pytorch 컴파일러를 구축 할 때 그래프 획득은 더 어려운 과제입니다. .
- TorchDynamo
팀은 올해 초 Framework Evaluation API라는 PEP-0523에 도입된 CPython 기능을 사용하여 TorchDynamo 작업을 시작했습니다.
이를 위해 팀은 PyTorch로 작성된 7,000개 이상의 Github 프로젝트를 검증 세트로 사용하여 그래프 캡처에 대한 TorchDynamo의 효율성을 검증하기 위해 데이터 기반 접근 방식을 취했습니다.
결과에 따르면 TorchDynamo는 무시할 수 있는 오버헤드로 99%의 시간 동안 정확하고 안전하게 그래프 캡처를 수행할 수 있습니다.
TorchInductor
PyTorch 2.0의 새로운 컴파일러 백엔드의 경우 팀은 사용자가 고성능 사용자 정의 커널을 작성하는 방법에서 영감을 얻었습니다. Triton 언어를 점점 더 많이 사용하고 있습니다.
TorchInductor는 Python으로 정의된 루프별 레벨 IR을 사용하여 PyTorch 모델을 GPU에서 생성된 Triton 코드와 CPU에서 C++/OpenMP에 자동으로 매핑합니다.
TorchInductor의 핵심 루프 수준 IR에는 약 50개의 연산자만 포함되어 있으며 Python으로 구현되어 있어 확장이 쉽습니다.
AOTAutograd
훈련 속도를 높이려면 사용자 수준 코드뿐만 아니라 역전파도 캡처해야 합니다.
AOTAutograd는 PyTorch의 torch_dispatch 확장 메커니즘을 사용하여 Autograd 엔진을 추적하고 역전파를 "미리" 캡처한 다음 TorchInductor를 사용하여 순방향 및 역방향 채널을 가속화할 수 있습니다.
PrimTorch
PyTorch에는 1200개 이상의 연산자가 있으며, 각 연산자의 다양한 오버로드를 고려하면 2000개 이상입니다. 따라서 백엔드 또는 도메인 간 기능을 작성하는 것은 에너지를 소비하는 작업이 됩니다.
PrimTorch 프로젝트에서 팀은 더 작고 안정적인 두 개의 연산자 세트를 정의했습니다.
- Prim ops에는 컴파일러에 적합한 약 250개의 연산자가 있습니다. 레벨이 충분히 낮기 때문에 좋은 성능을 얻으려면 함께 융합하면 됩니다.
- ATen ops에는 있는 그대로 출력하기에 적합한 약 750개의 일반 연산자가 있습니다. 이는 ATEN 수준에 이미 통합되어 있거나 컴파일되지 않은 백엔드에 적합하므로 Prim ops와 같은 낮은 수준 연산자 세트의 성능을 복원합니다.
동적 모양
PyTorch 코드에서 일반성을 지원하는 데 필요한 것이 무엇인지 살펴볼 때 핵심 요구 사항은 동적 모양을 지원하고 모델이 매번 모양을 변경하지 않고 다른 크기의 텐서를 수용할 수 있도록 허용하는 것이었습니다. 재컴파일을 유발합니다.
동적 모양이 지원되지 않는 경우 일반적인 해결 방법은 가장 가까운 2의 거듭제곱으로 패딩하는 것입니다. 그러나 아래 차트에서 볼 수 있듯이 상당한 성능 오버헤드가 발생하고 컴파일 시간도 상당히 길어집니다.
이제 동적 모양을 지원하는 PyTorch 2.0은 Eager보다 최대 40% 더 높은 성능을 달성했습니다.
마지막으로 팀은 PyTorch 2.x 로드맵에서 성능과 확장성 측면에서 컴파일 모델을 더욱 발전시키기를 희망합니다.
위 내용은 단 한 줄의 코드로 엘릭서를 두 배 빠르게 만들 수 있습니다! PyTorch 2.0이 깜짝 등장하고 LeCun이 열정적으로 이를 전달합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Hiddenlayer의 획기적인 연구는 LLMS (Leading Lange Language Models)에서 중요한 취약점을 드러냅니다. 그들의 연구 결과는 "정책 인형극"이라는 보편적 인 바이 패스 기술을 보여줍니다.

환경 책임과 폐기물 감소에 대한 추진은 기본적으로 비즈니스 운영 방식을 바꾸는 것입니다. 이 혁신은 제품 개발, 제조 프로세스, 고객 관계, 파트너 선택 및 새로운 채택에 영향을 미칩니다.

Advanced AI 하드웨어에 대한 최근 제한은 AI 지배에 대한 확대 된 지정 학적 경쟁을 강조하여 중국의 외국 반도체 기술에 대한 의존도를 드러냅니다. 2024 년에 중국은 3,800 억 달러 상당의 반도체를 수입했습니다.

Google의 Chrome의 잠재적 인 강제 매각은 기술 산업 내에서 강력한 논쟁을 불러 일으켰습니다. OpenAi가 65%의 글로벌 시장 점유율을 자랑하는 주요 브라우저를 인수 할 가능성은 TH의 미래에 대한 중요한 의문을 제기합니다.

전반적인 광고 성장을 능가 함에도 불구하고 소매 미디어의 성장은 느려지고 있습니다. 이 성숙 단계는 생태계 조각화, 비용 상승, 측정 문제 및 통합 복잡성을 포함한 과제를 제시합니다. 그러나 인공 지능

깜박 거리는 스크린 모음 속에서 정적으로 오래된 라디오가 딱딱합니다. 이 불안정한 전자 제품 더미, 쉽게 불안정하게, 몰입 형 전시회에서 6 개의 설치 중 하나 인 "The-Waste Land"의 핵심을 형성합니다.

Google Cloud의 다음 2025 : 인프라, 연결 및 AI에 대한 초점 Google Cloud의 다음 2025 회의는 수많은 발전을 선보였으며 여기에서 자세히 설명하기에는 너무 많았습니다. 특정 공지 사항에 대한 심도있는 분석은 My의 기사를 참조하십시오.

이번 주 AI 및 XR : AI 구동 창의성의 물결은 음악 세대에서 영화 제작에 이르기까지 미디어와 엔터테인먼트를 통해 휩쓸고 있습니다. 헤드 라인으로 뛰어 들자. AI 생성 콘텐츠의 영향력 증가 : 기술 컨설턴트 인 Shelly Palme


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
