업계 뉴스레터
전문가가 전하는 최신 AI 트렌드
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
업계 뉴스레터
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
분산 머신 러닝에 대한 접근 방식은 다음과 같습니다.
데이터 병렬 처리: 여러 장치에 데이터 세트 분할
모델 병렬 처리: 여러 디바이스에 걸쳐 모델 분할
하이브리드 병렬 처리: 데이터 및 모델 병렬 처리의 측면 결합
분산 ML을 위한 파라미터 서버 프레임워크는 하나 이상의 서버 노드를 사용하여 모델 파라미터 업데이트를 유지 관리하며, 작업자 노드는 데이터 및 계산을 처리합니다.
데이터 병렬 처리는 학습 데이터로 사용되는 대규모 데이터 세트를 시스템의 노드 수와 동일한 수의 그룹으로 분할합니다. 각 노드는 AI 모델의 복사본을 호스팅하고 분산된 데이터의 하위 집합을 공급합니다. 데이터 병렬 처리 작업은 동기식 또는 비동기식으로 실행할 수 있습니다. 동기식 학습은 일관성을 보장하지만 속도가 저하되기 때문에 딥 러닝 모델에서 더 일반적입니다.
각 노드가 모델의 전체를 실행하기 때문에, 하드웨어에 이를 호스팅할 메모리가 충분해야 합니다. 그러나 노드 각각이 데이터 세트의 일부만 처리해서 노드당 AI 워크로드는 줄어듭니다.
연합 학습은 여러 노드가 데이터 하위 집합에 대해 모델 사본을 학습한다는 점에서 데이터 병렬 처리와 유사합니다. 그러나 데이터 파티션이 중앙 집중식 데이터 풀에서 생성되지 않고, 각 노드에 대한 로컬 데이터로 구성됩니다. 노드들 간에 모델 업데이트가 집계되지만 데이터는 원래 소스를 벗어나지 않습니다.
데이터 세트가 로컬화되어 있기 때문에 데이터 과학자들은 높은 데이터 보안이 필요하거나 법적 규제를 받는 분산형 딥 러닝 애플리케이션에 연합 학습을 주로 사용합니다. 중앙 집중식 데이터 풀은 전송 중에 개인 식별 정보(PII)를 뜻하지 않게 노출할 수 있습니다. 연합 학습은 각 데이터 세트를 자신의 노드로 분리하여 이런 위험을 완화합니다.
모델 병렬 처리에서 모델은 심층 신경망과 같은 구성 요소 부분으로 분할되며, 별도의 노드에서 독립적으로 동시에 실행될 수 있습니다. 모델의 각 부분은 동일한 데이터를 사용합니다. 모델 병렬 처리를 네트워크 병렬 처리라고도 합니다.
단일 ML 모델이 너무 커서 단일 머신이 처리할 수 없는 경우 모델 병렬 처리를 통해 모델을 여러 노드에서 실행할 수 있습니다. 각 노드는 모델의 일부를 처리하므로 단일 머신이 전체 모델을 실행해야 하는 경우보다 컴퓨팅 및 메모리 요구 사항이 낮습니다.
모델 병렬 처리는 일반적으로 데이터 병렬 처리보다 구현하기가 더 어렵습니다. 선택한 분산 머신 러닝 알고리즘은 방법의 확장성에 직접적인 영향을 미치며, 어떤 알고리즘은 다른 알고리즘보다 이 기술에 더 적합합니다. 시스템은 노드 간의 데이터 공유량을 최소화하는 방식으로 구축되어야 합니다. 고성능 모델 병렬 처리 시스템에는 전문가 수준의 설계와 최적화가 필요합니다.
모델 병렬 처리는 데이터의 각 세그먼트가 입력 데이터의 다른 부분을 처리하도록 데이터 병렬 처리와 결합되곤 합니다. 결과는 네트워크 전반에서 집계됩니다.
파이프라인 병렬 처리는 모델을 순차적으로 분할하는 모델 병렬 처리 유형입니다. 모델의 각 단계는 자체 노드에서 호스팅됩니다. 데이터 일괄 처리는 옛날 물지게꾼이 물통을 한 사람에서 다음 사람에게 전달하면서 수원지에서 불이 난 곳까지 전달했던 것과 비슷한 단계를 거쳐 순서대로 처리됩니다.
파이프라인 병렬 처리는 처리량(모델이 한 번에 처리할 수 있는 데이터의 양)을 높일 수 있습니다. 그러나 이렇게 처리량을 높이면 지연 시간(입력을 받은 후 결과를 생성하는 데 걸리는 시간)이 늘어난다는 단점이 있습니다.
지연 시간이 늘어나는 것은 데이터의 초기 마이크로 배치가 시퀀스를 통해 전달되는 확장 단계 때문입니다. 데이터의 첫 번째 마이크로 배치가 이전 단계를 통과할 때까지는 머신 러닝 학습 파이프라인 후반부를 초기화할 수 없습니다.
심층 신경망의 단일 계층이라도 너무 많은 컴퓨팅 성능이 필요하거나 하나의 디바이스에 대해 너무 많은 공간을 차지할 때 텐서 병렬 처리가 작동합니다. 트랜스포머아키텍처의 두 가지 주춧돌인 셀프 어텐션과 임베딩 레이어는 매우 크게 성장할 수 있어서, 거의 모든 대규모 언어 모델(LLM) 개발이 텐서 병렬 처리를 수반합니다. 텐서 병렬 처리가 없으면 하나의 장치가 감당하기에는 레이어들이 너무 크기 때문에, 모델 LLM을 훈련시키는 것이 사실상 불가능합니다.
텐서 병렬 처리에서 단일 계층의 매개변수는 여러 GPU(그래픽 처리 장치) 또는 TPU(텐서 처리 장치)에 보관됩니다. 각 장치는 단일 계층 작업의 일부를 계산하고 부분 결과는 집계되어 계층의 아웃풋을 생성합니다.
텐서 병렬 처리 워크플로는 데이터 병렬 처리와 다른 여러 유형의 모델 병렬 처리에 비해 노드 간에 훨씬 더 많은 통신이 필요합니다. 고대역폭 네트워크는 통신 병목 현상을 줄이는 데 도움이 될 수 있습니다.
데이터 및 모델 병렬 처리 기술은 단독으로 사용되는 경우가 많지 않습니다. 이 기술은 종종 다양한 하이브리드 병렬 처리 구성으로 결합됩니다. 오픈 소스 딥 러닝 프레임워크인 PyTorch 및 TensorFlow는 둘 다 Python을 지원하며, 일반적으로 분산 머신 러닝 시스템을 구축하는 데 사용됩니다.
GPT 제품군을 포함한 대부분의 대규모 언어 모델은 대규모로 효율적으로 학습시키기 위해 하이브리드 병렬 처리에 의존합니다.
분산 ML은 ML 파이프라인의 각 단계, 즉 머신 러닝 모델을 구축, 훈련 및 배포하는 프로세스를 강화할 수 있습니다. 전처리, 학습, 미세 조정, 검증, 추론, 배포로 구성됩니다.
분산 데이터 전처리
분산형 교육
분산 미세 조정
분산 검증
분산 추론
분산 배포
분산 데이터 전처리는 연결된 노드 네트워크(신경망의 개별 뉴런이 아닌 다수의 프로세서 또는 디바이스, '노드'라고도 함)를 사용하여 분석 및 추가 사용을 위한 대규모 데이터 세트를 준비합니다.
중앙 제어 노드는 워크플로를 관리하여 데이터를 분할하고 작업자 노드에 할당합니다. 병렬 처리를 통해 작업을 분산하면 단일 장치를 사용하는 기존 모델과 비교할 때 확장성과 효율성이 향상됩니다.
분산 학습은 분산 ML 기술을 활용하여 디바이스 간에 모델 학습을 분산합니다. 예를 들어, 이 기술은 대규모 신경망에 자주 사용됩니다. 네트워크, 학습 데이터 세트 또는 둘 다 하나의 프로세서에서 처리하기에는 너무 큰 경우 분산 학습을 통해 워크로드를 여러 서버, GPU 또는 머신에 분산시킵니다.
확률적 기울기 하강법(SGD)은 데이터 세트를 미니 배치로 나누고 각 배치 후 손실 함수의 기울기를 계산하는 학습 알고리즘입니다. 전체 데이터 세트 대신 미니 배치를 사용하면 학습 효율성이 높아집니다.
손실 함수는 모델 예측의 오류를 측정하고 SGD의 목표는 기울기를 낮춰 함수 값을 최소화하는 것입니다. 표준 모델 학습과 마찬가지로 이 학습 프로세스는 모델이 수렴에 도달할 때, 즉 SGD 알고리즘이 함수 값을 성공적으로 최소화할 때 완료된 것으로 간주됩니다.
노드는 미니 배치를 병렬로 처리하는데, 이는 반복이 될 때마다 각 배치가 다른 배치들로부터 독립적으로 처리되기 때문에 가능합니다. 노드마다 기울기를 계산한 다음 업데이트된 기울기 값을 네트워크의 다른 노드로 푸시합니다. 다른 노드는 수신한 업데이트를 자체 모델에 적용해서 모델의 모든 사본이 학습 프로세스 전반에 걸쳐 동일하게 유지되게 합니다.
AllReduce 기능은 각 노드가 결과를 공유하고 집계된 결과를 네트워크를 통해 전파할 수 있도록 하는 집단 통신 작업입니다. AllReduce를 사용하면 모든 노드가 모델 파라미터 업데이트를 동기화하고 일관성을 유지할 수 있습니다. 고성능 컴퓨팅에 오랫동안 사용되었던 AllReduce는 Horovod와 같은 ML 프레임워크에서 대중화되었습니다.
SGD는 동기식 또는 비동기식으로 실행할 수 있습니다. 동기식 SGD는 모든 노드를 동시에 업데이트하므로 일부 노드가 뒤처지는 경우 지연이 발생할 수 있지만 일관성을 유지합니다. 비동기식 SGD는 업데이트가 준비되는 즉시 파라미터를 업데이트하지만, 일부 노드가 최신 값이 포함되지 않는 업데이트를 받을 수 있습니다.
분산 학습은 디바이스당 필요한 계산 리소스를 줄임으로써 학습 시간을 단축할 수 있습니다. 이는 매우 컴퓨팅 집약적이기 때문에 학습은 분산 ML의 주요 사용 사례 중 하나입니다.
분산 학습의 원칙과 이점은 분산 미세 조정에도 동일하게 적용됩니다. 미세 조정은 사전 학습된 모델을 추가로 학습시켜서, 좀 더 구체적인 작업에 특화되게 합니다. 분산 ML 기술을 적용하면 프로세스의 속도와 효율성, 확장 가능성이 높아집니다.
검증은 학습된 모델의 성능을 평가하는 프로세스입니다. 데이터 세트 또는 대규모 모델을 여러 노드에 분산하면, 나머지 분산형 학습 프로세스와 동일한 이점이 제공됩니다.
추론은 훈련된 AI 모델이 새로운 데이터를 처리하여 패턴을 인식하고 아웃풋이나 예측을 생성하는 과정입니다. 여러 장치에 워크로드를 분산하면 기계 한 대가 감당하기에는 너무 큰 AI 모델을 운영할 수 있습니다. 분산형 추론을 채택하면 처리량을 높이고 지연 시간을 단축할 수도 있습니다.
분산형 배포는 노드 네트워크에서 소프트웨어 애플리케이션 운영을 관리합니다. 작업자 노드들 간의 로드 밸런싱이 병목 현상을 완화하고 리소스 효율성을 최적화하여, 처리량을 늘리고 대기 시간을 줄이는 데 도움이 됩니다.
분산형 머신 러닝의 이점은 다음과 같습니다.
효율성
확장성
이중화
여러 디바이스 간에 워크로드를 자동화하고 분할하면 한 디바이스에 대한 부담이 줄어듭니다. 노드는 병렬로 작업하여 장기 작업을 더 빠르게 완료한 다음 아웃풋을 최종 결과로 집계할 수 있습니다.
단일 GPU의 경우 ImageNet(1,400만 개 이상의 레이블이 지정된 이미지가 있는 데이터 세트)에서 이미지 인식 모델을 학습하는 데는 몇 주가 걸립니다. 분산 ML을 사용하면 소규모 스타트업도 이 작업을 몇 시간 만에 수행할 수 있습니다.
기업은 LLM 및 기타 리소스 집약적인 시스템을 실행하기 위해 초강력 컴퓨터에 투자할 필요가 없습니다. 클라우드 서비스 제공업체는 분산 컴퓨팅을 통해 많은 서버와 데이터 센터에서 방대한 인프라를 조정하여 기업 고객이 필요에 따라 사용할 수 있도록 할 수 있습니다.
빅 데이터를 사용한 데이터 처리와 같은 집약적인 데이터 과학 작업을 막대한 인프라 투자 없이도 완료할 수 있습니다. 대규모 데이터 처리를 통해 소규모 스타트업도 사용자에게 추천 시스템이나 챗봇과 같은 서비스를 제공할 수 있습니다.
한편, 하이퍼스케일 데이터 센터는 확장성 스펙트럼의 반대편에 있습니다. 리소스가 허용되는 경우 조직은 최첨단 심층 신경망을 실행하기 위해 대규모 클러스터를 구축하고 있습니다. 분산 ML이 없었다면 수천 개의 GPU에서 이렇게 큰 모델을 운영하는 것이 불가능합니다.
실제 시스템은 내결함성(노드에 장애가 발생하더라도 계속 작동하는 능력)에 의존하는 경우가 많습니다. 모델 공급자는 개별 사용자와 API에 연결된 애플리케이션이 중단 없이 액세스할 수 있게 해야 합니다. 분산형 ML에서 중복성은, 장애가 발생해도 서비스가 중단되지 않도록 노드 간에 프로세스를 복제하여 가동 시간을 보존하는 역할을 합니다.
효과적인 분산 ML 구현의 과제는 다음과 같습니다.
네트워크 병목 현상
동기화 오버헤드
에너지 소비
노드 간 대역폭 부족은 분산 ML 네트워크에서 병목 현상의 빈번한 원인입니다. 더 많은 통신이 필요한 텐서 병렬 처리와 같은 방법은 대역폭을 가장 많이 소모합니다. 네트워크가 필요한 대역폭을 제공할 수 없는 경우 분산 ML 프로젝트는 학습 시간이 늘어나고 확장성이 저하됩니다.
동기화 오버헤드는 다른 작업이 완료될 때까지 한 작업을 시작할 수 없을 때 발생하는 지연입니다. 동기식 시스템에서 모든 작업자 노드는 학습의 다음 단계로 이동하기 전에 공유 데이터를 업로드해야 합니다. 이 순간을 동기화 장벽이라고 하는데, 이는 모든 노드가 동기화될 때까지 다음 단계가 시작되지 않기 때문입니다.
낙오 노드(작업을 완료하는 데 다른 작업자들보다 시간이 오래 걸리는 작업자)가 있으면 프로세스 전체가 느려집니다. 비동기식 시스템은, 일부 노드가 오래된 매개변수 구성으로 작동한다는 위험 요인을 가진 장벽을 제거합니다.
분산 네트워크는 노드뿐만 아니라 노드 간의 통신으로 인해 에너지 사용량이 많을 수 있습니다. 에너지 소비는 분산 ML 시스템의 구현 및 아키텍처에 따라 달라질 수 있습니다.
컴퓨팅 요건: 까다로운 ML 작업에 필요한 고성능 GPU 상당수가 에너지를 많이 소모합니다.
통신: 노드가 효과적으로 통신하고 동기화 오버헤드를 최소화하려면 고속 네트워크가 필요합니다.
클라우드 또는 엣지 컴퓨팅: 선도적인 AI 모델을 구동하는 중앙 집중식 하이퍼스케일 데이터 센터는 엄청난 양의 에너지를 소비합니다. 엣지 컴퓨팅은 네트워크 비용을 절감하는 데 도움이 될 수 있습니다.
알고리즘 및 데이터 처리 선택: 올바른 알고리즘을 선택하고 피처 엔지니어링과 같은 좋은 데이터 처리 관행을 따르면 모델의 효율성이 높아질 수 있습니다.
분산 ML 프레임워크는 메모리 및 컴퓨팅 리소스 사용을 최적화하면서 머신 러닝을 구현합니다. 또한 ML 구현을 확장하고 교육 시간을 단축하며 비용을 관리하는 데 도움이 될 수 있습니다.
주목할만한 분산 ML 프레임워크는 다음과 같습니다.
PyTorch Distributed
Apache Spark
TensorFlow Distributed
Ray Train
InstructLab
인기 있는 PyTorch ML 프레임워크에서 사용할 수 있는 PyTorch Disdent는 여러 디바이스에서 딥 러닝 모델을 구축하고 확장하기 위한 도구 세트입니다. torch.distributed 패키지는 AllReduce와 같은 노드 내 통신을 다룹니다. 데이터 병렬 처리 및 모델 병렬 처리에 대한 기본 제공 지원을 통해 다양한 분산형 훈련 방식을 사용할 수 있습니다.
Apache Spark는 오랫동안 분산형 훈련을 지원해온 ML 프레임워크입니다. 사용자는 데이터베이스 조작용 Spark SQL을 비롯해, 더 큰 Spark 에코시스템에 통합되는 엔드투엔드 ML 파이프라인을 구축할 수 있습니다. Spark는 원본 MLlib와 최신 SparkML이라는 두 가지 라이브러리를 제공합니다.
TensorFlow 내 tf.distribute.Strategy API는 분산형 ML의 문을 열어줍니다. 장치 한 대에 GPU 여러 개를 장착하거나 장치 여러 대에 GPU 여러 개를 장착하는 등의 다양한 방식을 지원합니다. 예를 들어 ParameterServerStrategy는 전용 서버에 매개변수를 저장하고, 작업자 노드는 이를 통해 매개변수에 접근합니다.
Ray Train은 분산 컴퓨팅을 위한 Ray ML 프레임워크 내의 확장 가능한 분산 학습 및 미세 조정 라이브러리입니다. Ray Train은 PyTorch 및 TensorFlow 모두와 호환됩니다. Ray Tune 라이브러리는 여러 디바이스에 분산된 하이퍼파라미터 조정을 지원합니다.
분산 ML에 대한 InstructLab의 새로운 접근 방식은 기존 GPU 클러스터를 피하고 크라우드 소싱 기금 모금과 거의 유사한 커뮤니티 기반 접근 방식을 선호합니다. 커뮤니티 구성원은 중앙 집중식 리포지토리에 파라미터 업데이트를 제공하고 개인 디바이스에서 모델을 미세 조정할 수 있습니다.
AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.
업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.
AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.