주요 컨텐츠로 이동

MLOps 최고의 실천법 - MLOps Gym: 크롤

반복 가능한 ML 워크플로우의 기반 구축

MLOps Best Practices - MLOps Gym: Crawl

Published: January 6, 2025

솔루션1분 이내 소요

Summary

  • MLOps는 프로젝트가 아닌 여정이며, 도구나 기술뿐만 아니라 실천과 조직 행동을 포함합니다.
  • MLOps에 필수적인 도구로는 MLflow, Unity Catalog, Feature Stores, 그리고 Git을 이용한 버전 관리가 있습니다.
  • MLOps의 모범 사례에는 깨끗한 코드 작성, 적절한 개발 환경 선택, AI 시스템 모니터링 등이 포함됩니다.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

소개

MLOps는 한 번만 하는 프로젝트가 아닌 지속적인 여정입니다. 이는 개별 도구나 특정 기술 스택만을 포함하는 것이 아니라 일련의 관행과 조직 행동을 포함합니다. 당신의 ML 전문가들이 협업하고 AI 시스템을 구축하는 방식은 결과의 품질에 큰 영향을 미칩니다. MLOps에서는 코드 공유 방법부터 인프라 설정 방법, 결과 설명 방법에 이르기까지 모든 세부 사항이 중요합니다. 이러한 요소들은 비즈니스가 AI 시스템의 효과성을 인식하고 그 예측을 신뢰하는 의지를 형성합니다.

빅 북 오브 MLOps 는 Databricks에서의 고수준 MLOps 개념과 아키텍처를 다룹니다. ​​이러한 개념을 구현하기 위한 더 실질적인 세부 사항을 제공하기 위해, 우리는 MLOps Gym 시리즈를 소개했습니다. 이 시리즈는 Databricks에서 MLOps를 구현하는 데 필수적인 주요 주제를 다루며, 각각에 대한 모범 사례와 통찰력을 제공합니다. 이 시리즈는 크롤, 워크, 런의 세 단계로 나뉘며, 각 단계는 이전 단계의 기반 위에 구축됩니다.

MLOps Gym 소개: Databricks에서 MLOps를 위한 실용 가이드”에서는 MLOps Gym 시리즈의 세 단계, 그들의 초점, 그리고 예시 내용을 개요화하고 있습니다.

  • "크롤"은 반복 가능한 ML 워크플로우의 기반을 구축하는 것을 다룹니다.
  • “걷기” 단계는 MLOps 프로세스에 CI/CD를 통합하는 데 초점을 맞추고 있습니다.
  • “Run”은 엄격함과 품질로 MLOps를 향상시키는 것에 대해 이야기합니다.

이 글에서는 크롤 단계의 글들을 요약하고 주요 핵심 사항들을 강조하겠습니다. 당신의 조직이 이미 MLOps 실무를 가지고 있더라도, 이 크롤 시리즈는 MLOps의 특정 측면을 개선하는 데 도움이 될 수 있는 세부 정보를 제공함으로써 도움이 될 수 있습니다.

기반 마련: 도구와 프레임워크

MLOps가 도구에만 관한 것은 아니지만, 선택하는 프레임워크는 사용자 경험의 품질에 중요한 역할을 합니다. 우리는 모든 AI 프로젝트에서 재사용할 수 있는 공통 인프라를 제공하도록 권장합니다. 이 섹션에서는 Databricks에서 견고한 MLOps 설정을 구축하기 위한 필수 도구에 대한 우리의 추천을 공유합니다.

MLflow (UC의 추적 및 모델)

MLflow 는 주요 오픈 소스 MLOps 도구로 두드러지며, 우리는 강력하게 기계 학습 수명 주기에 통합을 추천합니다. 다양한 구성 요소를 가진 MLflow는 기계 학습 여정의 다양한 단계에서 생산성을 크게 향상시킵니다. MLflow 초보자 가이드에서는 실험 추적을 위해 MLflow 추적을 사용하고, 모델 저장소로 Unity 카탈로그와 함께 모델 레지스트리를 사용하는 것을 강력히 추천합니다. (즉, UC의 모델) 그런 다음 초보 사용자를 위해 맞춤화된 MLflow와 함께 단계별 여행을 안내합니다.

Unity Catalog

Databricks Unity Catalog는 Databricks Data Intelligence Platform 전반에 걸친 데이터와 ML 자산을 관리하고 보호하기 위해 설계된 통합 데이터 거버넌스 솔루션입니다. Unity Catalog를 위한 설정 은 다양한 조직 구조와 기술 환경에서 자산을 관리하는 유연하고 강력한 방법을 제공합니다. Unity Catalog의 설계는 AWS SageMaker나 AzureML과 같은 외부 도구에 대한 직접적인 데이터 접근을 가능하게 하는 다양한 아키텍처를 지원하며, 외부 테이블과 볼륨의 전략적 사용을 통해 이를 가능하게 합니다. 이는 팀 구조, 비즈니스 맥락, 환경 범위와 일치하는 비즈니스 자산의 맞춤형 조직을 촉진하며, 대규모로 매우 분리된 조직과 최소한의 격리 요구가 있는 작은 엔티티 모두에게 확장 가능한 솔루션을 제공합니다. 더욱이, 최소 권한 원칙을 준수하고 BROWSE 권한을 활용함으로써, Unity Catalog는 접근이 사용자의 필요에 정확하게 맞춰지도록 보장하며, 발견성을 희생하지 않고 보안을 강화합니다. 이 설정은 MLOps 워크플로우를 간소화하는 것뿐만 아니라, 무단 접근에 대해 보호하므로 Unity Catalog는 현대 데이터 및 기계 학습 작업에서 필수 도구입니다.

Feature Store

피처 스토어는 중앙 집중식 저장소로, 데이터 과학자가 팀 간에 피처를 발견하고, 공유하고, 재사용하는 과정을 간소화하여 머신 러닝에서 피처 엔지니어링을 쉽게 합니다. 이것은 모델 훈련과 추론 동안 동일한 코드를 사용하여 일관성을 보장합니다. Databricks의 피처 스토어는 Unity Catalog와 통합되어 통합 권한, 데이터 유래 추적, 모델 점수 매기기와 제공과의 원활한 통합과 같은 향상된 기능을 제공합니다. 이 도구는 시간 시리즈와 이벤트 기반 사용 사례를 포함한 복잡한 머신러닝 워크플로우를 지원하며, 특정 시점의 피처 조회를 가능하게 하고 실시간 추론을 위해 온라인 데이터 스토어와 동기화합니다.

Databricks Feature Store의 1부 에서는 Databricks Feature Store를 효과적으로 사용하기 위한 필수 단계를 개요화하고 있습니다.

MLOps를 위한 버전 관리

버전 관리는 한때 데이터 과학에서 무시되었지만, Git과 같은 도구를 통해 특히 강력한 데이터 중심 애플리케이션을 구축하는 팀에게 필수적이게 되었습니다.

버전 관리 시작하기 는 데이터 과학에서 버전 관리의 진화를 탐구하며, 효율적인 팀워크를 촉진하고, 재현성을 보장하고, 코드, 데이터, 구성, 실행 환경과 같은 프로젝트 요소의 종합적인 감사 추적을 유지하는 데 있어 중요한 역할을 강조합니다. 이 글은 Git이 주요 버전 관리 시스템으로서의 역할과 Databricks 환경에서 GitHub 및 Azure DevOps와 같은 플랫폼과 어떻게 통합되는지를 설명합니다. 또한, 계정 연결, 저장소 생성, 코드 변경 관리 등의 단계를 포함하여 Databricks Repos를 버전 관리에 사용하는 방법을 설정하는 실용적인 가이드를 제공합니다.

버전 관리 모범 사례 는 Git의 모범 사례를 탐구하며, "기능 브랜치" 워크플로우, 효과적인 프로젝트 조직화, 단일 저장소와 다중 저장소 설정 사이의 선택에 중점을 둡니다. 이 가이드라인을 따르면, 데이터 과학 팀은 더 효율적으로 협업하고, 코드베이스를 깨끗하게 유지하며, 워크플로우를 최적화할 수 있어, 결국 프로젝트의 견고성과 확장성을 향상시킬 수 있습니다.

ML을 위해 언제 Apache Spark™를 사용해야 할까요?

Apache Spark는 대규모 데이터 처리와 분석을 위해 설계된 오픈 소스 분산 컴퓨팅 시스템으로, 고급 분산 시스템 엔지니어만을 위한 것이 아닙니다. 많은 ML 전문가들이 Pandas와 함께 메모리 부족 오류와 같은 문제에 직면하는데, 이는 Spark를 사용하면 쉽게 해결할 수 있습니다. 데이터 과학/머신 러닝 워크플로우에서 Apache Spark™의 힘을 활용하기에서는 데이터 과학자들이 Apache Spark를 어떻게 활용하여 효율적인 데이터 과학 및 머신 러닝 워크플로우를 구축할 수 있는지, 대규모 데이터셋 처리, 자원 집약적인 계산 수행, 고처리량 애플리케이션 처리 등 Spark가 뛰어난 시나리오를 강조하고, 모델 병렬화와 데이터 병렬화와 같은 병렬화 전략을 논의하며, 그 구현을 위한 실용적인 예시와 패턴을 제공합니다.

좋은 습관 만들기: 코드와 개발에서의 모범 사례

이제 MLOps 실천을 확립하기 위해 필요한 필수 도구에 익숙해졌으니, 일부 모범 사례를 살펴볼 시간입니다. 이 섹션에서는 MLOps 능력을 향상시키면서 고려해야 할 주요 주제를 논의하겠습니다.

지속 가능한 프로젝트를 위한 깨끗한 코드 작성

우리 중 많은 사람들은 노트북에서 실험을 시작하며, 아이디어를 적어 놓거나 코드를 복사하여 그들의 실행 가능성을 테스트합니다. 이 초기 단계에서는 코드 품질이 종종 뒷전이 되어, 생산 환경에서 잘 확장되지 않을 수 있는 중복, 불필요, 비효율적인 코드가 생성됩니다. 가이드 13 Essential Tips for Writing Clean Code 는 탐색적 코드를 정제하고 독립적으로 실행되고 예약된 작업으로 준비하는 방법에 대한 실질적인 조언을 제공합니다. 이것은 임시 작업에서 자동화된 프로세스로 전환하는 중요한 단계입니다.

올바른 개발 환경 선택

ML 개발 환경을 설정할 때 여러 중요한 결정을 내려야 합니다. 어떤 유형의 클러스터가 프로젝트에 가장 적합한가요? 클러스터의 크기는 얼마나 커야 하나요? 노트북을 계속 사용해야 할까요, 아니면 더 전문적인 접근 방식을 위해 IDE로 전환할 시간인가요? 이 섹션에서는 이러한 일반적인 선택 사항들을 논의하고, 여러분의 필요에 가장 적합한 결정을 내릴 수 있도록 추천 사항을 제공하겠습니다.

클러스터 구성

서버리스 컴퓨트 는 Databricks에서 워크로드를 실행하는 가장 좋은 방법입니다. 이것은 빠르고, 간단하며, 신뢰할 수 있습니다. 서버리스 컴퓨팅이 다양한 이유로 사용할 수 없는 시나리오에서는 클래식 컴퓨팅에 의존할 수 있습니다.

MLOps를 위한 클러스터 구성 초보자 가이드 는 적절한 유형의 컴퓨트 클러스터 선택, 클러스터 생성 및 관리, 정책 설정, 적절한 클러스터 크기 결정, 최적의 런타임 환경 선택 등의 핵심 주제를 다룹니다.

개발 목적으로는 인터랙티브 클러스터를, 자동화된 작업에는 작업 클러스터를 사용하는 것을 권장합니다. 이는 비용을 효과적으로 관리하는 데 도움이 됩니다. 이 글에서는 적절한 접근 모드 선택의 중요성을 강조하며, 단일 사용자 또는 공유 클러스터에 대한 접근 모드를 선택하고, 클러스터 정책이 어떻게 자원과 비용을 효과적으로 관리할 수 있는지 설명합니다. 또한, CPU, 디스크, 메모리 요구 사항에 기반한 클러스터 크기 조정을 안내하고 적절한 Databricks 런타임을 선택하는 데 있어 중요한 요소를 논의합니다. 이에는 표준과 ML 런타임 간의 차이를 이해하고 최신 버전을 계속 업데이트하는 것이 포함됩니다.

IDE vs 노트북

IDEs vs. Notebooks for Machine Learning Development에서는 IDE와 노트북 사이의 선택이 개인의 선호, 워크플로우, 협업 요구 사항, 프로젝트 요구 사항에 따라 달라진다는 이유를 자세히 살펴봅니다. 많은 실무자들이 두 도구를 모두 사용하며, 각 도구의 강점을 작업의 다른 단계에 활용합니다. IDE는 ML 엔지니어링 프로젝트에 선호되며, 노트북은 데이터 과학 및 ML 커뮤니티에서 인기가 있습니다.

운영 우수성: 모니터링

AI 시스템이 만든 예측의 품질에 대한 신뢰를 구축하는 것은 MLOps 여정의 초기 단계에서도 중요합니다. AI 시스템을 모니터링하는 것은 이러한 신뢰를 구축하는 첫 단계입니다.

모든 소프트웨어 시스템, AI를 포함하여, 인프라 문제, 외부 의존성, 인간의 오류로 인해 실패할 수 있습니다. AI 시스템은 데이터 분포의 변화와 같은 고유한 도전 과제에 직면하며, 이는 성능에 영향을 미칠 수 있습니다.

모니터링 초보자 가이드 는 이러한 변화를 식별하고 대응하기 위해 지속적인 모니터링의 중요성을 강조합니다. Databricks의 Lakehouse 모니터링은 통계적 속성과 데이터 변동을 모니터링함으로써 데이터 품질과 ML 모델 성능을 추적하는 데 도움이 됩니다. 효과적인 모니터링에는 모니터 설정, 메트릭 검토, 대시보드를 통한 데이터 시각화, 알림 생성이 포함됩니다.

문제가 감지되면, 모델을 재교육하기 위해 인간이 참여하는 접근법이 권장됩니다.

행동 요청

MLOps 여정 초기 단계에 있거나, Databricks에 처음 접하고 MLOps 실천을 처음부터 구축하려는 경우, MLOps Gym의 크롤 단계에서 얻을 수 있는 핵심 교훈들은 다음과 같습니다:

  • 모든 AI 프로젝트에서 재사용 가능한 공통 인프라를 제공합니다. MLflow는 모든 프로젝트에서 AI 개발의 표준화된 추적을 제공하며, 모델 관리에 대해서는 MLflow Model Registry와 Unity Catalog (UC 내의 모델)를 우리의 최상의 선택으로 추천합니다. Feature Store는 학습/추론 편향을 해결하고 Databricks Lakehouse 플랫폼 전반에 걸쳐 쉬운 유래 추적을 보장합니다. 또한, 항상 Git을 사용하여 코드를 백업하고 팀과 협업하세요. ML 작업 부하를 분산해야 하는 경우, Apache Spark도 사용 가능합니다.
  • 처음부터 모범 사례를 구현하십시오 우리의 팁을 따라 깨끗하고 확장 가능한 코드를 작성하고 특정 ML 작업에 적합한 구성을 선택함으로써. 언제 노트북을 사용하고 언제 IDE를 활용해야 가장 효과적인 개발을 할 수 있는지 이해하십시오.
  • 데이터와 모델을 적극적으로 모니터링하여 AI 시스템에 대한 신뢰를 구축하십시오. AI 시스템의 성능을 평가하는 능력을 보여주는 것은 비즈니스 사용자들이 그것이 생성하는 예측을 신뢰하도록 설득하는 데 도움이 될 것입니다.

크롤 단계에서 우리의 추천 사항을 따르면, 여러분은 수동적이고 오류가 발생하기 쉬운 ML 워크플로우에서 재현 가능하고 신뢰할 수 있는 작업으로 전환하게 될 것입니다. MLOps Gym 시리즈의 다음 단계인 '걷기'에서는 CI/CD와 DevOps의 모범 사례를 MLOps 설정에 통합하는 방법을 안내하겠습니다. 이를 통해 개별 ML 작업이 아닌 DevOps 도구를 사용하여 철저히 테스트되고 자동화된 완전히 개발된 ML 프로젝트를 관리할 수 있게 됩니다.

우리는 정기적으로 Databricks Community 블로그에 MLOps Gym 기사를 게시합니다. MLOps Gym 콘텐츠에 대한 피드백이나 질문을 보내려면 [email protected]으로 이메일을 보내주세요.

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요

다음은 무엇인가요?