SW/인공지능

생성 인공지능(GPT-4 이상)을 위한 PyTorch의 미래

얇은생각 2023. 6. 4. 07:30
반응형

PyTorch의 접근성은 성공의 주요 요인이며, 생성 AI의 미래를 계속 형성할 것입니다. PyTorch는 연구용뿐만 아니라 생산용으로도 사용되며, 매일 수십억 개의 요청이 처리되고 교육을 받습니다.

PyTorch 커뮤니티는 최근 주목할 만한 발전을 이루었습니다. 작년에 PyTorch의 기여자들은 GPT와 같은 변압기 모델에 대한 더 나은 변압기 추론 최적화를 도입하여 이러한 모델의 성능을 크게 향상시켰습니다. 이 고도로 최적화된 코드 모음은 프로덕션 워크로드에서 변압기 모델을 가속화하도록 특별히 설계되어 보다 정확하고 효율적인 데이터 생성을 가능하게 합니다. 이것은 곧 많은 산업에 혁명을 일으킬 수 있는 잠재력을 가진 흥미로운 발전입니다.

기존 소스에서 새로운 데이터를 생성하는 데 있어 생성 AI의 변형 가능성이 널리 인정되었습니다. 최근 인공지능의 획기적인 발전은 이러한 발전을 주도하는 기본 메커니즘을 이해하는 것에 대한 관심을 불러일으켰습니다. 더 많은 통찰력을 얻기 위해, 우리는 PyTorch가 어떻게 생성 AI의 길을 열어주고 있는지를 조명하는 선도적인 AI 전문가들을 찾았습니다.

 

 

생성 인공지능(GPT-4 이상)을 위한 PyTorch의 미래

 

 

하드웨어 가속 

PyTorch는 기본적으로 이미 빠르지만 컴파일러 기술의 도입으로 성능이 더욱 향상되었습니다. 이 기술은 사용 가능한 하드웨어에서 최대한 빠르게 실행할 수 있도록 운영, 자동 조정 및 프로그램 최적화를 통해 모델의 교육 및 서비스 속도를 향상시켜 이전 버전의 소프트웨어에 비해 성능을 크게 향상시킵니다.

PyTorch 2.0 스택의 핵심인 Dynamo Inductor는 각각 프로그램을 구입하여 수중에 있는 하드웨어에서 최대한 빠르게 실행되도록 최적화합니다. 이는 퓨전 작업을 통해 구현되므로 메모리 액세스 및 자동 조정으로 인해 컴퓨팅이 병목 현상을 겪지 않고 포화 상태가 되어 전용 커널을 최적화하여 성능을 극대화할 수 있습니다. 훈련과 추론 모두에서 최대 40%의 이득을 얻을 수 있으며, 이는 매우 중요한 발전입니다. 이전에는 PyTorch가 프로그램을 최적화하는 기술을 보유하고 있었지만, 이 기술을 사용하려면 사용자가 코드를 수정해야 했고 다른 Python 라이브러리를 호출하는 것과 같은 특정 작업을 허용하지 않았습니다. 반면에 PyTorch 2.0은 이러한 모든 경우에서 작동하여 최적화할 수 있는 것과 그렇지 못한 것을 보고할 것입니다.

PyTorch는 이제 다양한 백엔드 및 컴퓨팅 장치를 지원하므로 사용 가능한 가장 다재다능한 딥 러닝 프레임워크 중 하나입니다. 이를 통해 ROCM을 통해 AMD GPU를 포함하여 PyTorch로 구축된 모델을 운영 환경에 구축하는 것이 그 어느 때보다 쉬워졌습니다. 모델 개발에는 좋지만, 운영 환경에서는 다른 프레임워크를 사용하는 것이 가장 좋습니다. PyTorch 개발자들이 이를 권장하고 있으며, 그 결과 PyTorch Nvidia가 만든 추론 엔진인 Faster Transformer와 같은 패키지를 크게 지원합니다. 이 엔진은 GPT와 같은 모델을 실행하는 데 사용됩니다.

 

 

파이토치를 고려한 연구원들

PyTorch 2018년경 현장에서 폭발하고 텐서플로를 폐위한 이후 유연성을 보여주었습니다. 그 당시에는, 모두 컨볼루션 신경망에 관한 것이었지만, 지금은 PyTorch가 그 당시에는 존재하지 않았던 안정적인 확산과 같은 완전히 다른 유형의 모델에 사용되고 있습니다. PyTorch는 동적 실행에 초점을 맞추고, 연구자들이 프로토타입을 만들 때 사용하기 쉽고, 수천 개의 GPU로 쉽게 확장할 수 있기 때문에 생성 AI의 도구가 되었습니다. GPTNeo BLOOM의 최근 오픈 소스 언어 모델보다 더 좋은 예는 없습니다. PyTorch가 없었다면 불가능했을 것입니다. GPTNeo를 지원하는 팀은 특히 PyTorch를 지원자로 전환할 것을 요청했습니다.

연구자들 사이에서 PyTorch에 대한 선호도가 높아지고 있습니다. 그러나 PyTorch와 달리 TensorFlow는 산업용으로 맞춤형으로 제작되어 광범위한 기능과 JVM 호환성 및 온라인 서비스와 같은 사용 사례를 지원합니다. 이를 통해 기업은 프로덕션에서 TensorFlow를 더 쉽게 사용하고 TensorFlow 사용 사례를 수십억 명의 사용자까지 확장할 수 있습니다. 그러나 이 힘은 TensorFlow를 더 엄격하게 만들고, 학습하기 어렵고, 완전히 새로운 애플리케이션에 적응하기 어렵게 만듭니다. 예를 들어, 정적 그래프에 대한 TensorFlow의 의존성은 가변 길이 시퀀스(생성 AI의 핵심 구성 요소)를 관리하기 어렵게 만듭니다. 따라서 PyTorch는 연구 커뮤니티에서 더 널리 사용됩니다. 이렇게 하면 플라이휠 효과가 발생합니다. 새로운 모델이 PyTorch에서 먼저 출시되는데, 이는 연구자들이 이전 연구를 확장할 때 PyTorch에서 시작하도록 합니다.

 

 

쉽게 사용할 수 있도록 적극적으로 개발

PyTorch를 작성하는 것은 다른 프레임워크보다 일반적인 Python을 작성하는 것과 훨씬 더 유사합니다. 제어 흐름, 루프 및 기타 작업이 완전히 지원되므로 코드를 읽을 수 있고 표현할 수 있습니다. 게다가 PyTorch의 디버깅 경험은 최고입니다. Pdb는 원활하게 작동하여 프로그램을 단계별로 진행하고 작업을 진행하면서 열심히 실행할 수 있습니다. 이 경험은 다른 프레임워크보다 훨씬 덜 고통스러우며, 작업 모델을 향해 빠르게 반복할 수 있습니다.

PyTorch는 엔지니어링 세부 정보를 추상화하여 이를 보완하고 연구자가 코드를 변경하지 않고 수십억 개의 매개 변수 및 기계 클러스터로 모델을 확장할 수 있도록 하는 PyTorch Lightning 또는 Lightning Fabric과 같은 프로젝트와 결합하면 정말 빛을 발합니다. 저는 파이토치에 특별한 단점이 있다고 생각하지 않습니다. 아마도 functorch에서 제공되지만 JAX와 같은 다른 프로젝트에서는 수준이 아닌 vmap과 같은 고차 파생물과 프로그램 변환은 오늘날 딥 러닝에는 그리 많지 않지만 특정 도메인에 관련된 제한이 될 수 있습니다.

PyTorch에 기여한 경험을 통해 AI AI 활용 모두에서 오늘날 수행되는 대부분의 연구가 PyTorch에서 구현되며 구현이 종종 오픈 소스로 공유된다는 것을 확인했습니다. 서로의 아이디어를 기반으로 하는 능력은 기하급수적인 현상을 만들어내는 믿을 수 없을 정도로 강력한 역학입니다.

반응형