본문 바로가기

카테고리 없음

MLflow란 무엇인가

 

머신러닝(ML)의 세계로 들어서는 것은 흥미로운 여정이지만 혁신과 실험을 방해할 수 있는 복잡성이 따르는 경우가 많습니다.

MLflow는 ML 수명 주기를 간소화하고 ML 실무자 간의 협업을 촉진하는 도구와 단순화된 프로세스를 제공하여 역동적인 환경에서 이러한 많은 문제에 대한 솔루션입니다.

개인 연구원이든, 대규모 팀의 구성원이든, 아니면 그 사이에 있든 MLflow는 모델 개발 , 배포  관리 의 복잡한 미로를 탐색할 수 있는 통합 플랫폼을 제공합니다 . MLflow는 모델 개발에 고유한 번거로운 로깅, 구성 및 계보 문제를 간소화하여 ML 솔루션 개발의 혁신을 지원하는 것을 목표로 합니다. 이를 통해 ML 프로젝트가 강력하고 투명하며 실제 문제에 대비할 수 있도록 보장할 수 있습니다.

MLflow의 핵심 구성 요소를 살펴보고 모델 개발 및 관리와 관련된 복잡한 워크플로에 제공되는 고유한 이점을 이해하려면 계속 읽어보세요.

MLflow의 핵심 구성 요소

MLflow는 기본적으로 ML 워크플로 단순화를 목표로 하는 도구 모음을 제공합니다. ML 개발 및 배포의 다양한 단계에서 ML 실무자를 지원하도록 맞춤화되었습니다. 광범위한 제품에도 불구하고 MLflow의 기능은 다음과 같은 몇 가지 기본 구성 요소에 기반을 두고 있습니다.

  • 추적 : MLflow Tracking은 ML 프로세스 중에 매개변수, 코드 버전, 지표 및 아티팩트 로깅 전용 API와 UI를 모두 제공합니다. 이 중앙 집중식 저장소는 매개변수, 지표, 아티팩트, 데이터 및 환경 구성과 같은 세부 정보를 캡처하여 팀이 시간 경과에 따른 모델 발전에 대한 통찰력을 제공합니다. 독립 실행형 스크립트, 노트북 또는 기타 환경에서 작업하는 경우 추적을 사용하면 로컬 파일이나 서버에 결과를 쉽게 기록할 수 있으므로 여러 사용자의 여러 실행을 더 쉽게 비교할 수 있습니다.
  • 모델 레지스트리 : 모델 관리에 대한 체계적인 접근 방식인 모델 레지스트리는 다양한 버전의 모델을 처리하고 현재 상태를 파악하며 개발에서 생산까지 원활한 전환을 보장하는 데 도움을 줍니다. 모델 계보, 버전 관리, 단계 전환 및 주석을 포함하여 MLflow 모델의 전체 수명 주기를 공동으로 관리할 수 있는 중앙 집중식 모델 저장소, API 및 UI를 제공합니다.
  • AI 게이트웨이 : 표준화된 API 세트를 갖춘 이 서버는 SaaS 및 OSS LLM 모델에 대한 액세스를 간소화합니다. 이는 인증된 액세스를 통해 보안을 강화하는 통합 인터페이스 역할을 하며 주요 LLM을 위한 공통 API 세트를 제공합니다.
  • 평가 : 심층적인 모델 분석을 위해 설계된 이 도구 세트는 기존 ML 알고리즘이든 최첨단 LLM이든 객관적인 모델 비교를 용이하게 합니다.
  • Prompt Engineering UI : 프롬프트 엔지니어링을 위한 전용 환경인 이 UI 중심 구성 요소는 신속한 실험, 개선, 평가, 테스트 및 배포를 위한 공간을 제공합니다.
  • 레시피 : ML 프로젝트 구성을 위한 가이드 역할을 하는 레시피는 권장 사항을 제공하는 동시에 실제 배포 시나리오에 최적화된 기능적 최종 결과를 보장하는 데 중점을 둡니다.
  • 프로젝트 : MLflow 프로젝트는 실행 파일과 유사한 ML 코드, 워크플로 및 아티팩트의 패키징을 표준화합니다. 코드가 있는 디렉터리이든 Git 저장소이든 각 프로젝트는 설명자나 규칙을 사용하여 종속성과 실행 방법을 정의합니다.

이러한 핵심 구성 요소를 통합함으로써 MLflow는 ML 수명 주기 전반에 걸쳐 효율성, 일관성 및 추적성을 보장하는 엔드투엔드 플랫폼을 제공합니다.

MLflow를 사용하는 이유는 무엇입니까?

기계 학습(ML) 프로세스는 데이터 전처리부터 모델 배포 및 모니터링까지 다양한 단계로 구성되어 복잡합니다. 이 수명주기 전반에 걸쳐 생산성과 효율성을 보장하려면 다음과 같은 몇 가지 과제가 필요합니다.

  • 실험 관리 : 특히 파일이나 대화형 노트북으로 작업할 때 수많은 실험을 추적하기가 어렵습니다. 어떤 데이터, 코드 및 매개변수의 조합이 특정 결과를 가져왔는지 확인하는 것은 어려운 작업이 될 수 있습니다.
  • 재현성 : 실행 전반에 걸쳐 일관된 결과를 보장하는 것은 결코 쉬운 일이 아닙니다. 코드 버전과 매개변수를 추적하는 것 외에도 라이브러리 종속성을 포함한 전체 환경을 캡처하는 것이 중요합니다. 이는 다른 데이터 과학자와 협력하거나 코드를 다른 플랫폼으로 확장할 때 더욱 어려워집니다.
  • 배포 일관성 : 사용 가능한 ML 라이브러리가 너무 많아서 모델을 패키징하고 배포하는 표준화된 방법이 없는 경우가 많습니다. 맞춤형 솔루션은 불일치로 이어질 수 있으며, 모델과 모델을 생성한 코드 및 매개변수 간의 중요한 연결이 손실될 수 있습니다.
  • 모델 관리 : 데이터 과학 팀이 수많은 모델을 생성함에 따라 이러한 모델, 해당 버전 및 단계 전환을 관리하는 것이 중요한 장애물이 됩니다. 중앙 집중식 플랫폼이 없으면 개발부터 준비, 생산까지 모델 수명주기를 관리하기가 어려워집니다.
  • 라이브러리 불가지론 : 개별 ML 라이브러리는 일부 문제에 대한 솔루션을 제공할 수 있지만 최상의 결과를 얻으려면 여러 라이브러리에 걸쳐 실험하는 것이 포함되는 경우가 많습니다. 다양한 라이브러리와의 호환성을 제공하는 동시에 모델을 재현 가능한 "블랙박스"로 사용할 수 있는 플랫폼이 필수적입니다.

MLflow는 전체 ML 수명주기에 맞게 조정된 통합 플랫폼을 제공하여 이러한 문제를 해결합니다. 그 이점은 다음과 같습니다:

  • 추적성 : 추적 서버와 같은 도구를 사용하면 모든 실험이 기록되므로 팀은 모델의 발전을 추적하고 이해할 수 있습니다.
  • 일관성 : AI Gateway를 통해 모델에 액세스하거나 MLflow Recipes를 사용하여 프로젝트를 구조화하는 등 MLflow는 일관된 접근 방식을 촉진하여 학습 곡선과 잠재적인 오류를 모두 줄입니다.
  • 유연성 : MLflow의 라이브러리 독립적 설계는 광범위한 기계 학습 라이브러리와의 호환성을 보장합니다. 강력한 REST API , CLI , Python API , R API  Java API 용 API를 통해 다양한 프로그래밍 언어에 대한 포괄적인 지원을 제공합니다 .

ML 워크플로의 복잡한 환경을 단순화함으로써 MLflow는 데이터 과학자와 개발자가 모델 구축 및 개선에 집중할 수 있도록 지원하여 실험에서 생산까지 간소화된 경로를 보장합니다.

MLflow를 사용하는 사람은 누구입니까?

특정 프로젝트의 수명 주기 전반에 걸쳐 MLflow에는 다양한 요구 사항을 충족하도록 설계된 구성 요소가 있습니다.

MLflow의 다양성은 데이터 과학자부터 프롬프트 엔지니어까지 다양한 역할의 워크플로를 향상하여 데이터 과학 팀의 범위를 넘어 영향력을 확장합니다.

데이터 과학자는 다음을 위해 MLflow를 활용합니다.

  • 실험 추적 및 가설 테스트 지속성.
  • 더 나은 재현성을 위한 코드 구조화.
  • 모델 패키징 및 종속성 관리.
  • 초매개변수 조정 선택 경계를 평가합니다.
  • 시간 경과에 따른 모델 재학습 결과 비교
  • 배포를 위한 최적의 모델을 검토하고 선택합니다.

MLOps 전문가는 MLflow를 활용하여 다음을 수행합니다.

  • 배포 전과 배포 후 모두 훈련된 모델의 수명 주기를 관리합니다.
  • 모델을 프로덕션 환경에 안전하게 배포하세요.
  • 배포하기 전에 후보 모델을 감사하고 검토합니다.
  • 배포 종속성을 관리합니다.

데이터 과학 관리자는 다음을 통해 MLflow와 상호 작용합니다.

  • 실험 및 모델링 활동의 결과를 검토합니다.
  • 모델링 목표가 비즈니스 목표와 일치하도록 팀과 협력합니다.

프롬프트 엔지니어링 사용자는 다음을 위해 MLflow를 사용합니다.

  • 대규모 언어 모델을 평가하고 실험합니다.
  • 맞춤형 프롬프트를 제작하고 후보 창작물을 유지합니다.
  • 특정 프로젝트 요구 사항에 가장 적합한 기본 모델을 결정합니다.

MLflow 사용 사례

MLflow는 다양한 기계 학습 시나리오를 지원하는 다목적입니다. 다음은 몇 가지 일반적인 사용 사례입니다.

  • 실험 추적 : 데이터 과학 팀은 MLflow Tracking을 활용하여 특정 도메인 내 실험에 대한 매개변수 및 측정항목을 기록합니다. MLflow UI를 사용하여 결과를 비교하고 솔루션 접근 방식을 미세 조정할 수 있습니다. 이러한 실험의 결과는 MLflow 모델로 보존됩니다.
  • 모델 선택 및 배포 : MLOps 엔지니어는 MLflow UI를 사용하여 최고 성능 모델을 평가하고 선택합니다. 선택한 모델은 MLflow Registry에 등록되어 실제 성능을 모니터링할 수 있습니다.
  • 모델 성능 모니터링 : 배포 후 MLOps 엔지니어는 MLflow Registry를 활용하여 모델의 효율성을 측정하고 실제 환경의 다른 모델과 비교합니다.
  • 협업 프로젝트 : 새로운 벤처에 착수하는 데이터 과학자는 자신의 작업을 MLflow 프로젝트로 구성합니다. 이 구조는 쉽게 공유하고 매개변수를 수정하여 협업을 촉진합니다.

MLflow의 확장성

MLflow는 소규모 데이터 세트부터 빅 데이터 애플리케이션까지 다양한 데이터 환경과 원활하게 통합되도록 설계되었습니다. 이는 고품질 기계 학습 결과가 강력한 데이터 소스에 달려 있는 경우가 많으므로 다양한 데이터 요구 사항을 수용하기 위해 적절하게 확장된다는 이해를 바탕으로 구축되었습니다.

MLflow가 다양한 차원에서 확장성을 해결하는 방법은 다음과 같습니다.

  • 분산 실행 : MLflow 실행은 분산 클러스터에서 작동할 수 있습니다. 예를 들어 Apache Spark와의 통합으로 분산 처리가 가능합니다. 또한 원하는 분산 인프라에서 실행을 시작할 수 있으며 결과는 분석을 위해 중앙 집중식 추적 서버로 전달됩니다. 특히 MLflow는 Databricks에서 실행을 시작하기 위한 통합 API를 제공합니다.
  • 병렬 실행 : 하이퍼 매개 변수 조정과 같은 사용 사례의 경우 MLflow는 각각 고유한 매개 변수를 사용하여 여러 실행을 동시에 조정할 수 있습니다.
  • 분산 스토리지와의 상호 운용성 : MLflow 프로젝트는 Azure ADLS, Azure Blob Storage, AWS S3, Cloudflare R2 및 DBFS를 포함한 분산 스토리지 솔루션과 인터페이스할 수 있습니다. 자동으로 파일을 로컬 환경으로 가져오거나 분산 스토리지 URI와 직접 인터페이스하는 경우 MLflow는 프로젝트가 100TB 파일 처리와 같은 시나리오에서도 광범위한 데이터 세트를 처리할 수 있도록 보장합니다.
  • 모델 레지스트리를 통한 중앙 집중식 모델 관리 : 대규모 조직은 협업 모델 수명주기 관리에 맞춰진 통합 플랫폼인 MLflow Model Registry의 이점을 누릴 수 있습니다. 여러 데이터 과학 팀이 수많은 모델을 동시에 개발하는 환경에서 모델 레지스트리는 매우 귀중한 것으로 입증되었습니다. 모델 검색을 간소화하고, 실험을 추적하고, 버전을 관리하고, 여러 팀에서 모델의 의도를 쉽게 이해할 수 있습니다.

이러한 확장성 차원을 해결함으로써 MLflow는 사용자가 데이터 환경의 규모나 복잡성에 관계없이 해당 기능을 활용할 수 있도록 보장합니다.