AI 훈련에 GPU가 필요한 이유

ChatGPT를 통해 촉발된 AI 붐으로 GPU는 AI 빅 모델 훈련 플랫폼의 초석이 되었으며 결정적인 산술 기반이라고 할 수도 있습니다. AI 훈련에 GPU가 왜 필요한지에 대한 질문에 대답하려면 인공지능(AI)과 딥러닝의 주요 기술을 이해하는 것이 필수적이다.

인공지능과 딥러닝

인공지능은 오랜 역사를 지닌 학문이다. 1950년대 이후 여러 가지 정점과 최저점을 경험하면서 다양한 기술적 방향으로 탐구되었습니다. 인공 지능의 초기에는 "인공 신경망"이라는 다소 성공하지 못한 장르가 탄생했습니다. 이 기술의 개념은 인간 두뇌의 지능은 비교할 수 없을 정도로 뛰어나며, 고도의 인공지능을 구현하기 위해서는 인간 두뇌를 모방하는 것이 핵심이라는 것이었습니다. 인간의 두뇌는 방대하고 복잡한 신경망을 형성하기 위해 상호 연결된 수십억 개의 뉴런으로 구성됩니다. 아기의 두뇌는 출생 후 학습을 통해 높은 수준의 지능을 달성할 수 있는 백지와 같습니다.

생물학적 뉴런에서 인공 뉴런으로

인공 뉴런 모델은 인간 두뇌의 뉴런에서 영감을 얻기 위해 고안되었습니다. 다이어그램 오른쪽의 인공 뉴런에서는 각 입력의 가중치를 조정하고 이를 뉴런을 통해 처리하면 해당 출력이 생성됩니다. 이 맥락에서 각 가중치를 매개변수라고 합니다.

인공 신경망

이렇게 여러 뉴런을 연결해 네트워크를 형성하면 인공신경망이 된다. 인공 신경망은 일반적으로 입력 레이어, 그 사이에 있는 여러 숨겨진 레이어, 출력 레이어로 구성됩니다.

이러한 인공 신경망은 아기의 두뇌와 유사합니다. 실질적인 문제 해결을 위한 지식을 습득하기 위해 종합적으로 학습하려면 텅 비어 있고 상당한 데이터 공급이 필요합니다. 이 프로세스는 "딥 러닝"으로 알려져 있으며 "머신 러닝"의 하위 집합에 속합니다.

배우기

일반적으로 사용되는 "지도 학습" 접근 방식에서 AI에 공급되는 데이터에는 문제와 답변이 모두 포함되어야 합니다. 예를 들어, 그림에 고양이가 포함되어 있는지 여부를 감지하도록 AI를 훈련시키는 것이 목표라면 고양이를 정의하는 특징과 함께 고양이가 포함된 것으로 표시된 많은 이미지를 AI에 제공해야 합니다. 그런 다음 AI는 이러한 예를 사용하여 고양이의 패턴과 특성을 학습합니다.

학습 프로세스는 AI가 초기 매개변수 세트를 사용하여 주어진 이미지를 분석하는 것으로 시작됩니다. 그런 다음 결론을 정답과 비교하고 그에 따라 매개변수 가중치를 조정합니다. 이 반복 프로세스는 AI의 출력이 정답과 거의 일치할 때까지 계속됩니다.

신경망의 학습 과정

이러한 학습 과정을 훈련이라고 합니다. 일반적으로 정답이 알려진 대량의 데이터를 AI에 제공하면 더 나은 훈련 결과를 얻을 수 있습니다. 훈련에 만족하면 알려지지 않은 문제에 대한 AI의 성능을 테스트할 수 있습니다. AI가 정확하게 답을 찾을 수 있다면 훈련이 성공한 것으로 간주하며 AI는 우수한 "일반화" 기능을 입증한 것입니다."

간단한 신경망

다이어그램에 표시된 것처럼 신경망의 한 계층에서 다음 계층으로 매개변수 가중치를 전달하는 것은 본질적으로 행렬 곱셈과 덧셈입니다. 신경망 매개변수의 규모가 클수록 훈련 중에 필요한 행렬 계산이 더 광범위해집니다.

가장 발전된 딥러닝 신경망은 수억에서 수조 개의 매개변수를 가질 수 있으며, 높은 정확도를 달성하려면 방대한 양의 훈련 데이터가 필요합니다. 이는 순방향 및 역방향 전파를 통해 엄청난 수의 입력 샘플을 처리해야 함을 의미합니다. 신경망은 다수의 동일한 뉴런으로 구성되므로 이러한 계산은 본질적으로 매우 병렬적입니다. 엄청난 컴퓨팅 수요를 고려할 때 CPU를 사용해야 할까요, 아니면 GPU를 사용해야 할까요?

CPU 대 GPU

CPU(중앙 처리 장치)는 컴퓨터의 두뇌이자 코어의 핵심입니다. 주로 계산을 수행하는 ALU(산술 논리 장치)와 데이터 및 명령의 흐름을 관리하는 CU(제어 장치)로 구성됩니다.

CPU

데이터가 도착하면 먼저 메모리에 저장됩니다. 그런 다음 제어 장치는 메모리에서 관련 데이터를 검색하고 처리를 위해 ALU에 전달합니다. 계산이 완료된 후 결과는 메모리에 다시 저장됩니다.

초기에는 CPU에 ALU, CU, 캐시가 한 세트로 구성되어 있어 한 번에 하나의 작업만 처리할 수 있었습니다. 여러 작업을 처리하려면 CPU는 해당 작업을 대기열에 추가하고 순차적으로 실행하여 리소스를 공유해야 합니다.

여러 작업을 처리

나중에 여러 세트의 ALU, CU 및 캐시가 단일 칩에 통합되어 멀티 코어 CPU가 만들어졌습니다. 멀티코어 CPU에는 진정한 병렬 처리 기능이 있습니다.

멀티코어 프로세서

일반적으로 최신 CPU에는 몇 개에서 수십 개의 코어가 있습니다. 스마트폰이 처음 대중화될 당시 제조사들은 코어 수를 지나치게 강조하면서 스마트폰 시장에서는 '코어 전쟁'이 벌어졌다. 그러나 이 코어 수 경쟁은 결국 정체되었고 칩 제조업체는 코어 성능을 최적화하는 데 집중했습니다.

CPU에 더 많은 코어가 통합되지 않는 이유는 무엇입니까? CPU는 범용 프로세서이기 때문이다. 그 작업은 매우 복잡하여 다양한 유형의 데이터 계산을 처리하고 인간과 컴퓨터의 상호 작용에 응답해야 합니다. 복잡한 작업 관리 및 스케줄링에는 작업 간 전환 시 낮은 대기 시간을 유지하기 위해 더 정교한 제어 장치와 더 큰 캐시가 필요합니다. 코어 수가 증가하면 코어 간의 통신 오버헤드도 증가하여 개별 코어의 성능이 저하될 수 있습니다. 또한 코어 수가 많을수록 전력 소비가 증가할 수 있으며, 작업 부하가 고르게 분산되지 않으면 전체 성능이 향상되지 않고 심지어 감소할 수도 있습니다.

GPU, 병렬 컴퓨팅 전문가

GPU의 영역을 살펴보겠습니다. GPU(그래픽 처리 장치)라고도 알려진 GPU는 원래 CPU의 부담을 완화하고 컴퓨터 그래픽 카드에 일반적으로 사용되는 3차원 그래픽 렌더링을 가속화하도록 설계되었습니다. 이미지 처리는 본질적으로 행렬에 초점을 맞춘 집중적 병렬 컴퓨팅의 한 형태입니다. 아래 그림과 같이 왼쪽의 이미지는 수많은 픽셀로 구성되어 있으며, 오른쪽의 이미지는 자연스럽게 행렬로 표현될 수 있습니다.

그래픽 처리 장치

"GPU"라는 용어는 1999년 Nvidia가 각 픽셀 포인트를 동시에 처리하고 그래픽 변환, 조명, 이미지 렌더링을 위한 삼각형 클리핑과 같은 수학적으로 집약적인 병렬 계산을 수행하는 제품인 GeForce256을 출시하면서 인기를 얻었습니다.

집약적인 병렬 컴퓨팅을 처리하는 GPU의 능숙함은 CPU와의 아키텍처 차이에서 비롯됩니다. CPU는 더 적은 수의 코어를 가지고 있으며, 각 코어는 수많은 가속 분기 예측 및 훨씬 더 복잡한 논리적 판단을 위한 하드웨어 지원과 함께 충분한 캐시와 강력한 계산 기능을 갖추고 있어 복잡한 작업을 처리하는 데 적합합니다.

CPU와 GPU의 차이점

대조적으로, GPU는 더 간단하고 무차별적입니다. 각 코어는 계산 능력과 캐시 크기가 제한되어 있으며 전체 성능을 향상시키기 위해 코어 수를 늘려야 합니다. 코어 수가 많을수록 GPU는 대량의 단순 병렬 컴퓨팅 작업을 처리하여 효율적으로 멀티태스킹을 수행할 수 있습니다.

GPU는 멀티태스킹이 가능합니다

시간이 지남에 따라 GPU는 더욱 다재다능하고 프로그래밍 가능하도록 발전하여 이미지 디스플레이 렌더링을 넘어 기능을 확장하여 고성능 컴퓨팅, 딥 러닝 및 기타 워크로드를 가속화했습니다. 인공 지능을 기반으로 하는 병렬 컴퓨팅에 대한 수요 급증이 제시하는 기회를 포착하여 GPU는 이전의 주변 역할에서 중심 무대로 전환되어 많은 관심을 받고 있습니다. "GPU"라는 용어는 범용 GPU를 의미하는 GPGPU로 변형되었습니다. AI 훈련의 고유한 병렬성을 GPU에 활용하면 CPU만 사용하는 훈련에 비해 속도가 크게 향상되어 대규모의 복잡한 신경망 기반 시스템을 훈련하는 데 선호되는 플랫폼이 됩니다. 추론 작업의 병렬 특성은 GPU에서의 실행과 잘 맞습니다. 따라서 GPU가 주된 힘으로 제공하는 계산 능력을 '지능형 컴퓨팅'이라고 합니다.

코멘트 남김

위쪽으로 스크롤