레이(Ray)를 사용한 엔드 투 엔드 AutoML 루드비히로
Table of Contents
- 들어가기
- 루드비흐 소개
- 루드비흐와 레이
- 루드비흐의 장점
- 루드비흐 실무 적용 사례
- 루드비흐와 프레다베이스
- 루드비흐와 미래
- 루드비흐 커뮤니티와 채용정보
들어가기
안녕하세요! 오늘 저의 프레젠테이션에 참석해 주셔서 감사합니다. 제 명은 트래비스 아데어입니다. 저는 호르바드(Horvad)라는 오픈 소스 프로젝트의 주요 관리자이자 루드비흐(Ludwig)라는 오픈 소스 프로젝트의 공동 관리자입니다. 오늘은 루드비흐에 대해 이야기하려고 합니다. 또한, 저는 우버의 딥 러닝 훈련 팀에서 기술 리드로 일한 경험이 있습니다. 더불어, 마이클랭엘로 기계 학습 플랫폼을 위한 기술 리드로 활동했습니다. 지금은 프레다베이스라 불리는 회사의 공동 창립자이기도 합니다. 프레다베이스에 대해 조금 이야기해드리겠습니다. 아직은 스텔스 상태이므로, 저희가 하는 일에 대해서는 많이 얘기하지 말아주셨으면 합니다. 하지만 여기 계신 여러분에게는 조금씩 말씀 드릴 예정입니다. 그러니 알려지지 않도록 조심해주시기 바랍니다. 그러나 우리 둘만 알고 있는 사실이기 때문에 몇 가지 이야기를 할 예정입니다. 이제 시작해보죠!
루드비흐 소개
저희가 루드비흐 팀에서 관찰한 산업의 문제는 무엇일까요? 가장 큰 문제는 현재의 기계 학습이 기본적으로 매우 한정적이며 느리다는 것입니다. 이에는 여러 가지 요인들이 관련되어 있는데, 대부분은 모델 작성 비용과 관련이 있습니다. 이는 대부분의 조직에서 매우 한정적인 리소스인 데이터 과학자에게 의지하고 있기 때문입니다. 이들은 주어진 문제에 할당할 수 있는 주의력이 매우 한정적입니다. 따라서 대부분의 조직에서는 매우 한정된 줄줄이 높은 우선순위의 유스 케이스로 리소스가 유도됩니다. 이를 해결하기 위해, 많은 기계 학습 문제를 가지고 있지만 많은 수의 데이터 과학자나 기계 학습 전문가를 보유하고 있지 않은 조직에서는, 일반적으로 이러한 종류의 블랙 박스 AutoML 솔루션들을 사용합니다. 그러나 이러한 솔루션들은 그 자체로 트레이드 오프가 있습니다. 일반적으로 이러한 솔루션은 빠르게 시작할 수 있지만, 사용자의 요구에 맞게 솔루션을 개선하거나 맞춤화하는 것이 어려운 제약이 있습니다.
📌 레이(Ludwig) - 유연하고 간단한 기계 학습 프레임워크
이렇게 우리는 간단한 솔루션을 필요로 하는 대형 조직에서 기계 학습 문제를 해결하기 위해 고려해야 할 사항입니다. 이러한 솔루션은 데이터 과학자의 무제한한 수를 보유하지 않는 조직에게 접근 가능하도록 만들어야 합니다. 또한 사용자 정의가 가능한 솔루션으로 확장 가능한 기능이 있어야합니다. 따라서 루드비흐(Ludwig)라는 솔루션이 어떻게 보일지 생각해 볼 때, 데이터 관리 및 데이터 인프라 공간에서 진척이 어떻게 이루어지는지 생각해보면 좋습니다.
루드비흐와 레이
데이터 관리 및 데이터 인프라 공간의 진척에 따라 어떻게 기계 학습이 진행되었는지 볼 수 있습니다. 예를 들어, 2000년 이전의 시기로 돌아가서 데이터 엔지니어링 및 데이터 인프라 작업을 위한 SQL이 매우 중요한 언어였습니다. 그러나 초기 2000년대에 구글이 seminal mapreduce 논문을 공개하면서 대용량 데이터 및 NoSQL 시대로 진입하게 되었습니다. 이로 인해 툴링은 일부로 돌아가서 C++ 및 자바에서 직접 코드 작성하는 더 낮은 수준의 기술로 변화하였고 SQL과 같은 고수준 언어의 이점을 상실했습니다. 몇 년 후, 하이브와 같은 프레임워크가 등장하여 많이 필요로 하는 SQL 레이어를 제공했습니다. 그리고 아파치 스파크는 여전히 많은 업계에서 중요한 기술로 남아있는데, 이는 약간 더 낮은 수준의 API로 많은 도구와 많은 기능이 추가되었습니다. 하지만 최근 몇 년 동안 산업에서는 스노우플레이크와 같은 데이터 웨어하우스로 구조화된 데이터로 이동하는 경향을 보이고 있습니다. 이에 따라 SPARK를 사용하여 데이터의 추출,로드,변환 및 스키마 기반의 워크플로우를 수행하는 도구인 DBT와 같은 많은 프레임워크가 등장했습니다. 이러한 것들은 데이터 변환 및 데이터 표현을 통합하고 있는데, 이는 후그(Fugue)와 같은 프레임워크가 그 위에서 구축될 수 있게 해줍니다. 후그는 고급 SQL 추상화를 포함한 고급 데이터 처리 파이프라인을 구축할 수 있는 라이브러리입니다.
기계 학습 생태계에서 어떻게 진행되는지 살펴보면 유사한 트렌드를 확인할 수 있습니다. 기존의 기계 학습과 scikit-learn과 같은 프레임워크는 사람들에게 고수준 및 액세스 가능한 기계 학습을 제공했습니다. 그러나 딥 러닝 혁명이 발생하면서 텐서플로와 파이토치와 같은 도구를 사용하여 훨씬 더 많은 코드를 작성하게 되었습니다. 여기서 다시 높은 수준의 프레임워크로 돌아가는 동향이 나타나기 시작했습니다. 이러한 동향은 크게 두 가지 구체적인 순간으로 나타납니다. 첫째, Horovod와 같은 프레임워크가 등장했으며, 이는 딥 뉴럴 네트워크 교육을 확장하는 추상화를 표준화합니다. 두 번째, "Attention is All You Need"라는 논문에 소개된 트랜스포머 아키텍처와 같이 아주 중요한 기술들이 등장했습니다. 이러한 기술은 최신 NLP 모델, 테이블 모델 및 비전 모델의 기반이되는 기술로 매우 핵심적인 기술이 되었으며, 우리는 후깅 페이스(Hugging Face)와 같은 프레임워크에서 이러한 트랜스포머 아키텍처를 제공하고 있습니다. 또한 PyTorch Lightning 및 fastai와 같은 현대적인 훈련 프레임워크가 분산 훈련 및 기타 기계 학습 학습 루프에 대한 매우 좋은 추상화를 제공합니다.
루드비흐의 장점
원래의 문제, 즉 기계 학습의 한정적이고 확장 가능하지 않은 성능에 대한 아이디어를 생각하면 사용자 정의 가능한 고수준 프레임워크와 텐서플로우와 파이토치와 같은 프레임워크의 간편성을 결합한 이러한 솔루션을 만들 수 있다는 점이 어떤 것인지 생각해보면 좋습니다. 이것이 바로 루드비흐입니다.
-
간단한 유연성: 루드비흐는 모델을 간단한 형식으로 작성할 수 있도록 설계되었습니다. 사용자는 데이터 입력과 출력에 집중할 수 있으며, 더 나은 성능을 위해 필요한 많은 세부 사항을 수정할 수도 있습니다.
-
다중 모달 훈련: 루드비흐는 다른 유형의 데이터를 하나의 모델에 결합하고, 다중 작업 학습을 수행하는데 이점이 있습니다. 텍스트, 이미지, 오디오 등 다양한 데이터 유형을 하나의 모델에 통합하여 이진 분류, 회귀, 텍스트 생성 등 여러 작업을 동시에 수행할 수 있습니다.
-
자동화된 하이퍼파라미터 최적화: 루드비흐는 레이 튠(Ray Tune)을 활용하여 하이퍼파라미터 최적화를 자동화할 수 있습니다. 이를 통해 다양한 하이퍼파라미터를 동시에 탐색하면서 최적의 모델을 찾을 수 있습니다.
-
분산 학습: 루드비흐는 레이(Ray)를 활용하여 분산 학습 기능을 제공합니다. 여러 머신에서 데이터를 처리하고, 모델 학습을 분산 처리하며, 배치 예측을 병렬 처리할 수 있습니다.
루드비흐 실무 적용 사례
루드비흐는 우버에서 실제로 생산 환경에서 사용되었으며, 현재는 리눅스 재단 인공지능 및 데이터 재단의 일원으로 인정받고 있습니다. 루드비흐는 실제로 다양한 문제 및 데이터 세트에 결과와 함께 사용될 수 있습니다. 루드비흐는 예를 들어, tabnet 같은 최신 모델 구조를 기본 제공하며, 이를 사용하여 기존에 어려웠던 데이터 세트에서도 최고의 결과를 얻을 수 있습니다.
📌 특징 요약:
- 루드비흐는 유연하고 간단한 기계 학습 프레임워크입니다.
- 다양한 데이터 유형을 하나의 모델에 통합하고 다중 작업 학습을 수행할 수 있습니다.
- 자동화된 하이퍼파라미터 최적화를 지원합니다.
- 루드비흐는 분산 학습을 가능하게 합니다.
루드비흐와 프레다베이스
프레다베이스는 루드비흐와 레이의 가치를 기업으로 가져와서 신속한 프로덕션화와 최소한의 부담으로 모델의 가치를 창출하고자 합니다. 우리는 루드비흐의 간단함과 유연성을 제공하면서 신속한 프로덕션화를 가능하게 합니다. 이는 이미 있는 데이터 인프라에 루드비흐와 호르바드의 능력을 결합하여 "예측 데이터베이스"라는 새로운 개념을 만들어냅니다. 아직 정보를 공개할 수 없는 스텔스 상태이기 때문에 자세한 내용은 말씀드리기 어렵지만, 예를 들어 예측 데이터베이스를 사용하여 고객의 이탈 여부를 예측하려는 경우, 데이터를 추출하고 모델을 훈련시킬 방법에 대해 복잡한 프로세스를 생각할 필요 없이, 데이터베이스의 데이터를 필터링하고 예측하려는 대상을 지정하는 것만으로 문제를 해결할 수 있습니다.
루드비흐와 미래
저희는 루드비흐에 대한 지속적인 발전을 계속하고 있습니다. 특히, 자동 훈련을 위한 몇 가지 실험적인 작업을 진행 중입니다. 자동 훈련을 통해 사용자가 모델을 예측하기 위해 어떤 파라미터를 사용해야 하는지에 대해 고민할 필요 없이, 목표를 지정하면 루드비흐가 하이퍼파라미터 탐색을 수행하고 최적의 결과를 찾습니다. 이번 여름쯤이면 이에 대한 더 자세한 내용을 들려드릴 수 있을 것입니다.
루드비흐 커뮤니티와 채용정보
마지막으로, 루드비흐 커뮤니티에 대해 소개드리고 채용 정보를 안내해드리겠습니다. 루드비흐는 현재 산업 및 개인 사용자 사이에서 사용되고 있으며, 7000개 이상의 스타 수와 60여 명 이상의 기여자가 있습니다. 또한, 리눅스 재단 AI 및 데이터 기업 협회의 일부로 인증받고 있습니다. 자세한 내용은 언제든지 저에게 연락 주시기 바랍니다. 그리고 저희는 채용을 진행하고 있습니다. 새로운 직장을 찾고 있는 분이 계시다면 언제든지 저에게 연락 주세요.
감사합니다!