7월 9일, 저희 팀은 Databricks의 데이터 과학 솔루션 컨설턴트인 Brooke Wenig과 Databricks의 소프트웨어 엔지니어인 Sid Murching과 함께 라이브 웨비나인TensorFlow™와 Databricks를 사용한 확장 가능한 엔드투엔드 딥러닝을 개최했습니다.
이 웨비나에서는 Databricks Unified Analytics Platform 에서 TensorFlow™ 및 Horovod(Uber에서 분산 모델 훈련을 간소화하기 위해 만든 오픈 소스 라이브러리)를 사용하여 대규모로 더 효과적인 추천 시스템을 구축하는 방법을 안내해 드렸습니다.
특히, 분산 딥 러닝을 간소화하기 위해 새로 도입된 몇 가지 기능에 대해 다루었습니다.
웨비나를 놓치셨다면 지금 시청 하실 수 있습니다. 또한, 다음 노트북을 시연했습니다.
Databricks 통합 분석 플랫폼 에 무료로 액세스하고 Databricks 노트북을 사용해 보려면 여기에서 무료 체험에 액세스하세요.
마지막으로 Q&A 시간을 가졌으며, 아래에 모든 질문과 답변이 나와 있습니다. 또한 이 간단한 설문조사를 작성하여 웨비나에 대한 피드백을 제공해 주시면 여러분의 경험을 계속 개선하는 데 도움이 됩니다!
Q: TensorFlow에서 모델의 하이퍼파라미터 튜닝을 분산 방식으로 수행할 수 있나요?
다음을 포함하여 여러 가지 방법으로 이 작업을 수행할 수 있습니다.
HorovodEstimator 가 지원하는 기능과 관련하여, 여러 분산 학습 작업을 통해 하이퍼파라미터 튜닝을 시작할 수 있도록 MLlib의 네이티브 튜닝 API와 연동하는 기능을 추가하는 것을 검토하고 있습니다.
또는 Databricks의 OSS 라이브러리인 Deep Learning Pipeline을 사용하면 이미지 데이터에 대한 단일 노드 Keras 모델의 하이퍼파라미터 튜닝을 병렬화할 수 있습니다.
Q: ALS는 무엇의 약자인가요?
ALS는 교대 최소제곱(Alternating Least Squares)의 약자입니다. 협업 필터링에 사용되는 기법입니다. 여기에서 Apache Spark에서의 구현에 대해 자세히 알아볼 수 있습니다.
Q: 데모에서 서버는 몇 대, 코어는 몇 개를 사용했나요?
이 데모의 구성은 다음과 같습니다.
Q: 데이터가 각 로컬 머신에 복제되었습니까? 각 워커 노드는 학습하는 동안 모든 데이터를 사용하나요?
학습 데이터의 고유한 하위 집합이 각 머신의 로컬 디스크에 복사되므로 각 작업자 노드는 데이터의 고유한 하위 집합으로 학습합니다. 단일 학습 단계에서 각 워커는 학습 데이터의 배치를 처리하여 그래디언트를 계산하며, 이 그래디언트는 Horovod의 ring-allreduce 기능을 사용하여 평균을 낸 다음 모델에 적용됩 니다.
Q: dist-keras와 Horovod를 어떻게 비교하시나요?
Dist-keras는 Spark Dataframe에서 Keras 모델 을 분산 방식으로 훈련하기 위한 또 다른 오픈 소스 프레임워크이며, Keras 모델 훈련을 위한 또 하나의 훌륭한 솔루션입니다. 저희는 둘 다와 함께 작업했습니다. Horovod의 장점 중 하나는 Uber의 벤치마크가 함께 제공되며, Uber에서 프로덕션용으로 사용된다는 점입니다. Horovod는 대기업에서 사용되고 있으며 앞으로도 잘 지원될 것이기 때문에, 저희는 Horovod를 기반으로 HorovodEstimator 를 구축하기로 결정했습니다.
Q: 단일 머신 훈련과 분산 훈련은 시간이 각각 얼마나 걸리나요?
좋은 질문입니다. 일반적으로 단일 머신 훈련과 분산 훈련을 비교할 때 성능에 영향을 미치는 요인은 많습니다. 분산 훈련은 그래디언트 업데이트를 통신하는 데 따른 통신 오버헤드를 발생시키지만, 여러 머신에서 병렬로 학습 데이터 배치를 처리하여 속도를 높일 수도 있습니다. HorovodEstimator 를 사용하면 입력 Spark DataFrame을 클러스터 노드의 로컬 디스크에 TFRecord 형식으로 작성하는 고정된 startup 비용도 있습니다. 먼저 단일 머신 학습을 시 도하고 단일 머신 학습이 충분히 확장되지 않는 경우에만 분산 학습을 살펴보는 것을 권장합니다.
Q: 안녕하세요, 강연 감사합니다. 훌륭한 노트북 시나리오였습니다. 하지만 약간씩 다른 데이터세트를 사용하여 다양한 Experiment을 진행하는 여러 데이터 사이언티스트로 구성된 팀의 경우, 이를 추적하는 기능이 있나요? 그 밖에 어떤 협업 기능을 지원하나요?
아주 좋은 질문입니다! 저희는 최근 바로 그 목적을 위해 MLflow 라는 새로운 오픈 소스 프로젝트를 발표했습니다. MLflow를 사용하면 전문가는 프레임워크 전반에서 모델을 패키지화하고 재사용하며, 로컬 또는 클라우드 내에서 실험을 추적 및 공유하고, 거의 모든 곳에 모델을 배포할 수 있습니다. 또한 Databricks는 GitHub를 통해 변경 사항 추적 및 버전 기록도 지원하는 Python 또는 R 개발용 공유 노트북을 제공합니다.
이 이니셔티브에 대한 최신 업데이트는 MLflow 0.2 릴리스 에 대한 Matei Zaharia의 블로그 게시물에서 확인하고, 8월 30일에 Matei Zaharia와 함께하는 웨비나 에 참여하여 더 자세히 알아보세요.
Q: 데이터가 많지 않고 LSTM 모델과 TensorFlow를 사용하고 있습니다. 그래도 Databricks와 Apache Spark를 추천하시겠습니까?
Apache Spark는 모든 유형의 분산 훈련 또는 ETL에 매우 유용하며 데이터 처리와 머신 러닝을 통합하지만, 설치, 구성 및 유지 관리에는 여전히 노력이 필요합니다. Databricks는 Apache Spark에서 단일 노드부터 다중 노드 사용 사례까지 작업을 실행할 수 있는 유연한 방법을 제공합니다. 버튼 클릭 한 번으로 클러스터에 노드를 쉽게 추가할 수 있습니다. Databricks는 모든 분석을 한 곳으로 통합하므로 모델 훈련을 위한 정제된 데이터 세트도 준비할 수 있습니다. Databricks Runtime에는 TensorFlow, Keras, Horovod뿐만 아니라 XGBoost, scikit-learn 등이 사전 설치 및 구성되어 제공되므로, ML 모델을 구축하고 훈련하는 데 있어 최고의 선택권과 유연성을 누릴 수 있습니다. 마지막으로 Databricks 노트북은 데이터 준비부터 모델 훈련 및 서빙에 이르기까지 전체 라이프사이클을 한곳에서 관리할 수 있는 협업 환경을 제공합니다.
Q: HorovodEstimator로 이진 모델을 훈련할 수 있나요?
네. HorovodEstimator API 는 예를 들어 이진 분류를 포함하여 대규모 데이터에 대해 분산 환경에서 모든 TensorFlow 코드를 실행하는 간단한 방법을 제공합니다.
Q: 클러스터가 멀티테넌시를 지원하나요?
네, 클러스터에 여러 노트북을 연결하거나 클러스터에 여러 사용자가 있을 수 있습니다. 유연성과 보안을 극대화하기 위해 Databricks의 다양한 수준에서 클러스터 권한 을 관리할 수도 있습니다.
Q: 웨비나가 끝난 후 발표자의 스크립트와 슬라이드를 공유받을 수 있을까요?
네, 이제 노트북에 액세스할 수 있습니다. 이 노트북을 실행하려면 Databricks 작업 공간에 훈련 세트를 추가하기만 하면 됩니다. 시작하려면 14일 무료 평가판 에 가입하세요!
Q: Apache Spark와 Databricks의 차이점은 무엇인가요?
Databricks Unified Analytics Platform 은 AWS와 Azure 모두에서 호스팅되는 Apache Spark 버전과 그 외에도 많은 기능을 제공합니다. 한 곳에서 분석을 관리하고 자동화하기 위한 내장 노트북 및 API와 더불어, Parquet 기반 Apache Spark보다 최대 100배 더 빠른 Databricks Delta Lake, Databricks Runtime for ML, HorovodEstimator 등 Apache Spark에 대한 추가적인 최적화 기능을 제공합니다. 또한 클러스터의 자동 구성 및 자동 확장을 통해 DevOps를 크게 단순화하고, HIPAA 및 SOC 2 유형 2 인증 플랫폼으로 엔터프라이즈급 보안 기능 및 규정 준수를 제공합 니다.
(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)
