> 기술 주변기기 > 일체 포함 > Python의 Nannyml을 사용한 엔드 투 엔드 ML 모델 모니터링 워크 플로우

Python의 Nannyml을 사용한 엔드 투 엔드 ML 모델 모니터링 워크 플로우

William Shakespeare
풀어 주다: 2025-03-08 10:55:11
원래의
825명이 탐색했습니다.

ML 모델을 모니터링하는 이유는 무엇입니까? 기계 학습 프로젝트는 반복 프로세스입니다. Jupyter 노트북 내부의 성공적인 모델에서만 멈추지 않습니다. 모델이 온라인 상태 인 후에도 멈추지 않으며 사람들은 액세스 할 수 있습니다. 배치 후에도 개발 단계에서와 마찬가지로 작동하도록 지속적으로 꼭대기를해야합니다.

. Zillow의 스캔들은 그렇지 않으면 어떤 일이 일어나는지에 대한 완벽한 예입니다. 2021 년에 Zillow는 주택 가격을 추정 한 기계 학습 모델로 인해 3 억 3 천 5 백만 달러를 잃었습니다. Zillow는 7000 개가 넘는 주택에 대해 초과 지불되어 훨씬 저렴한 가격으로 오프로드해야했습니다. 이 회사는 자체 모델에 의해“찢어졌다”고 인력을 25%줄여야했습니다. 이러한 유형의 조용한 모델 실패는 실제 모델에 공통적이므로 생산 성능이 떨어지기 전에 지속적으로 업데이트해야합니다. 그렇게하지 않으면 회사의 명성, 이해 관계자와의 신뢰, 궁극적으로 주머니가 손상됩니다.

이 기사는 Nannyml로 배포 한 후 기계 학습 모델을 모니터링하기 위해 엔드 투 엔드 워크 플로우를 구현하는 방법을 알려줍니다. Nannyml은 배포 후 기계 학습에 중점을 둔 오픈 소스 라이브러리입니다. 생산 ML 환경에서 발생하는 모든 유형의 문제를 해결하기 위해 광범위한 기능을 제공합니다. 몇 가지 이름 :

드리프트 감지 :

교육 데이터와 생산 데이터 간의 데이터 분포 변경을 감지합니다.

성능 추정 :

즉각적인 근거 진실없이 생산의 모델 성능을 추정합니다. 자동화 된보고 :

배포 된 모델 건강 및 성능에 대한 보고서를 생성합니다. Alerting System :

데이터 드리프트 및 성능 문제에 대한 경고를 제공합니다.

모델 공정성 평가 :

편견을 방지하기위한 모델 공정성을 모니터링합니다 ML 프레임 워크와의 호환성 :

모든 머신 러닝 프레임 워크와 통합. 사용자 친화적 인 인터페이스 : 는 친숙한 Scikit-Learn-like 인터페이스를 제공합니다
    우리는 이러한 기능의 기술적 인 비트를 하나씩 배울 것입니다. 전제 조건 개념은
  • 우리는 로봇 마스터 링 양궁의 비유를 통해 모델 모니터링의 기본 개념을 배울 것입니다. 우리의 비유에서 로봇은 기계 학습 모델을 나타냅니다 대상은 우리 모델의 목표 또는 목표를 나타냅니다. 우리는 이것이 회귀 문제라고 말할 수 있습니다. 화살표가 황소의 눈에 얼마나 가깝게 촬영되는지에 따라 점수가 계산되기 때문에 - 중앙의 빨간 점. 로봇의 물리적 속성 및 환경 조건 (바람과 날씨와 같은)과 함께 화살과 활의 특성은 모델의 특징 또는 입력 변수입니다.
  • 그래서, 시작하자. 데이터 드리프트

    우리는 활, 화살 및 대상을 신중하게 준비했다고 상상해보십시오 (데이터 준비와 같은). 많은 센서와 카메라가 장착 된 로봇은 훈련 중에 10000 회 촬영합니다. 시간이 지남에 따라 인상적인 빈도로 황소의 눈에 부딪 치기 시작합니다. 우리는 공연에 감격하고 로봇과 사본을 양궁 애호가에게 판매하기 시작합니다 (모델 배포). 그러나 곧 우리는 불만을 얻습니다. 일부 사용자는 로봇이 대상이 완전히 누락되었다고보고합니다. 놀랍게도, 우리는 무엇이 잘못되었는지 논의하기 위해 팀을 모았습니다.

    우리가 찾은 것은 데이터 드리프트의 고전적인 사례입니다. 로봇이 작동하는 환경은 다른 바람 패턴, 다양한 습도 수준, 심지어 화살표 (무게, 균형) 및 활의 물리적 특성의 변화 등 변경되었습니다. 입력 데이터, 특히 기능 간의 관계가 시간에 따른 관계가 변경 될 때 머신 러닝 모델이 성능이 저조하는 방식과 유사하게,이 입력 기능의 실제 전 세계 이동이 로봇의 정확도를 막았습니다. 컨셉 드리프트

    이러한 문제를 해결 한 후 새로운 로봇 배치를 출시합니다. 그러나 몇 주 안에 비슷한 불만이 발생합니다. 당황하면서 우리는 더 깊이 파고 목표가 사용자로 자주 대체되었음을 알게됩니다.

    . 이 새로운 목표는 크기가 다양하며 다양한 거리에 배치됩니다. 이 변경 사항은 로봇의 촬영 기술에 대한 다른 접근법 (

    컨셉 드리프트

    . 기계 학습 용어에서는 입력 변수와 대상 결과 사이의 관계가 변경 될 때 개념 드리프트가 발생합니다. 우리의 로봇의 경우, 새로운 유형의 대상은 이제 기계 학습 모델이 데이터의 역학을 크게 훈련시킬 때 조정 해야하는 것처럼, 다르게 촬영에 적응해야한다는 것을 의미했습니다.

    . 개념 및 데이터 드리프트의 실제 예 포인트를 집으로 몰아 넣으려면 데이터와 개념 드리프트가 어떻게 발생하는지에 대한 실제 예를 살펴 보겠습니다. 데이터 드리프트 예

    신용 스코어링 모델 :

    경제 변화는 사람들의 지출과 신용 습관을 바꿉니다. 신용 점수 모델이 적응하지 않으면 정당화되지 않은 거부 또는 위험한 승인으로 이어질 수 있습니다.
      건강 모니터링 시스템 :
    1. 의료에서는 사용자 인구 통계 또는 센서 교정의 변화가 환자의 생명력을 모니터링하는 모델의 건강 평가가 부정확해질 수 있습니다. 소매 수요 예측 : 소매에서 소비자 행동 및 추세의 변화는 과거의 판매 데이터 기반 모델이 현재 제품 수요를 예측하는 데 비효율적으로 만들 수 있습니다.
    2. 개념 드리프트 예
    3. 소셜 미디어 컨텐츠 중재 : 컨텐츠 중재 모델은 진화하는 언어 및 문화적 현상에 지속적으로 적응해야하거나 부적절한 것으로 간주되는 것을 잘못 분류해야합니다. 자율 주행 차량 : 자율 주행 차의
    4. 모델은 지역 기반 트래픽 규칙 및 최상의 성능을위한 조건에 대해 업데이트되어야합니다.
    5. 사기 탐지 모델 : 사기 전술이 발전함에 따라 사기 탐지 모델이 떠오르는 패턴을 식별하려면 업데이트가 필요합니다. 이제 엔드 투 엔드 ML 모니터링 워크 플로우를 고려해 봅시다 엔드 투 엔드 ML 모델 모니터링 워크 플로우는 어떤 모습입니까? 모델 모니터링은 ML 엔지니어가 반복적으로 따라야하는 세 가지 주요 단계가 포함됩니다.
    6. 1. 모니터링 성능
    첫 번째 단계는 물론 배포의 모델 성능을 면밀히 주시하는 것입니다. 그러나 이것은 말보다 쉽습니다.

    생산 모델에 대한 지상 진실을 즉시 사용할 수있게되면 모델 동작의 변화를 쉽게 감지 할 수 있습니다. 예를 들어, 사용자는 로봇/양궁에서 무엇이 잘못되었는지 즉시 말할 수 있고 로봇이 놓친 것을 놓칠 수 있기 때문에 - 즉시 진실한 진실을 말할 수 있기 때문입니다. 대조적으로, 대출 불이행을 예측하는 모델의 예를 들어보십시오. 이러한 모델은 사용자가 다음 결제에 대한 불이행 여부를 예측합니다. 예측을 확인하려면 모델이 실제 지불 날짜까지 기다려야합니다. 이것은 실제 머신 러닝 시스템에서 가장 흔한 지연 진실

    의 예입니다. 그러한 경우, 모델이 잘 수행되는지 확인하기 위해 지상 진실을 이용할 때까지 기다리는 데 너무 많은 비용이 듭니다. 따라서 ML 엔지니어는 모델 성능이없는 모델 성능을 추정하는 방법이 필요합니다. CBPE 또는 DLE와 같은 알고리즘이 들어 오는 곳입니다 (나중에 자세히 설명). 모니터링 모델은 직접 비즈니스 영향, 즉 KPI 모니터링 (주요 성능 지표)을 측정하여 수행 할 수 있습니다. Zillow의 경우, 적절한 모니터링 시스템은 이익 손실을 감지하고 엔지니어들에게 (가설 적으로) 경고 할 수있었습니다.

    2. 근본 원인 분석

    모니터링 시스템이 성능 강하를 감지하는 경우, 시스템이 실현 된 성능 (지상 진실 포함) 또는 추정 성능 (근거 진실없이)에 관계없이 ML 엔지니어는 낙하의 원인을 식별해야합니다. 여기에는 일반적으로 기능을 개별적으로 또는 데이터를 조합하여 (피처 드리프트) 조합하여 개념 드리프트 대상을 검사하는 것이 포함됩니다. 그들의 발견을 바탕으로, 그들은 다양한 이슈-해상도 기술을 사용한다

    3. 발행 해상도

    다음은 배포 후 성과 저하로 인한 손상을 완화하기위한 비 독점적 인 기술 목록입니다.

    데이터 재조정 :

    성능 낙하가 데이터 드리프트로 인한 경우, 현재 조건을 반영하도록 훈련 데이터 세트를 조정하는 것이 좋습니다.

    기능 엔지니어링 :

    새로운 기능을 업데이트하거나 생성하면 모델 성능을 향상시킬 수 있습니다. 이것은 입력과 출력의 관계가 바뀌는 개념 드리프트의 경우 좋은 접근법입니다.

    모델 재교육 : 더 비싼 방법은 새로운 데이터로 모델을 재교육하여 정확한 상태를 유지하는 것입니다. 이것은 데이터와 개념 드리프트 모두에 적합합니다

    모델 미세 조정 :

    처음부터 재교육하는 대신 일부 모델은 최근 데이터 세트에서 미세 조정할 수 있습니다. 이것은 딥 러닝 및 생성 모델과 잘 어울립니다.

      이상 탐지 :
    1. 이상 (참신) 탐지 방법을 사용하여 생산 데이터에서 비정상적인 패턴을 조기에 식별 할 수 있습니다. 도메인 전문 지식 참여 : 도메인 전문가 유치 전문가를 유치 할 수 있습니다. 각 방법에는 응용 프로그램 컨텍스트가 있으며 종종 결국 조합을 구현할 수 있습니다. Nannyml 은이 반복 과정의 첫 두 단계를 다룹니다. 자, 내려 가자.
    2. 1 단계 : Nannyml 교육 및 검증 세트와는 달리 Nannyml은 모니터링을 시작하기 위해 특정 형식의 참조 및 분석이라는 두 개의 추가 세트가 필요합니다. 이 섹션에서는 모든 데이터에서이를 작성하는 방법을 알려줍니다.
    3. 먼저, 우리는 이미 훈련되어 생산에 배치 할 준비가되어있어 모니터링 할 수 있도록 모델이 필요합니다. 이를 위해 다이아몬드 데이터 세트를 사용하고 XGBOOST 회귀 분석을 훈련시킵니다. 데이터로드, 기능 정의 및 대상 모듈을 가져온 후 첫 번째 단계는 Seaborn에서 다이아몬드 데이터 세트를로드하는 것입니다. 그러나 우리는 모니터링의 모습을 설명하기 위해이 기사를 위해 특별히 준비한 특수 버전의 데이터 세트를 사용할 것입니다. 아래 스 니펫을 사용하여 데이터 세트를 환경에로드 할 수 있습니다.
    4. 이 데이터 세트 의이 특수 버전에는 "set"이라는 열이 있습니다. 지금은 모든 기능 이름, 범주 형 기능 이름 및 대상 이름을 추출합니다.

      작업은 회귀입니다. 우리는 물리적 특성을 고려하여 다이아몬드 가격을 예측할 것입니다. 다이아몬드 데이터 세트는 상당히 깨끗합니다. 따라서 우리가 수행하는 유일한 전처리는 텍스트 기능을 Pandas 카테고리 데이터 유형으로 캐스팅하는 것입니다. 이것은 XGBOOST에 의해 자동 범주 형 데이터 전처리를 가능하게하는 요구 사항입니다.

      데이터 분할로 넘어 가자 데이터를 네 세트로 분할 예, 당신은 그 권리를 읽습니다. 우리는 데이터를 네 세트로 분할 할 것입니다. 전통적으로, 당신은 그것을 세 가지만 나누었을 것입니다 :

    모델이 패턴을 학습하려면 훈련 세트
    import warnings
    
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    import xgboost as xgb
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import OneHotEncoder
    
    warnings.filterwarnings("ignore")
    
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    Hyperparameter 튜닝의 경우 검증 세트 배포 전 최종 평가에 대한 테스트 세트

    모델 모니터링 워크 플로우에는 생산 데이터를 모방하기 위해 다른 세트가 필요합니다. 이것은 우리의 시스템이 올바른 알고리즘을 사용하여 성능 강하를 올바르게 감지하고 무엇이 잘못되었는지보고하는 것입니다. 이 목적을 위해, 나는 세트 열에서 4 가지 카테고리로 다이아몬드 행을 라벨을 붙였습니다.

    훈련 세트는 70%를 나타내며 나머지는 총 데이터의 각각 10%를 나타냅니다. 나누자 :
    dataset_link = "https://raw.githubusercontent.com/BexTuychiev/medium_stories/master/2024/1_january/4_intro_to_nannyml/diamonds_special.csv"
    
    diamonds_special = pd.read_csv(dataset_link)
    diamonds_special.head()
    
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    그러나 실제 데이터 세트에는 내장 세트 레이블이 포함되어 있지 않으므로 데이터를 수동으로 4 개의 세트로 분할해야합니다. 다음은 sklearn에서 train_test_split을 사용하여 작업을 수행하는 기능입니다.

    참고 :

    "코드 설명"버튼을 사용하여 함수에 대한 줄별로 설명을 받으십시오. 이제 모델 훈련으로 넘어 가자.

    모델 훈련 XGBoost 모델을 훈련시키기 전에 데이터 세트를 dmatrices로 변환해야합니다. 코드는 다음과 같습니다. <p> <is> 이제, 여기에, 이미 튜닝 된 하이퍼 파라미터로 회귀자를 훈련시키는 코드가 있습니다. </is></p> <have> Great - 우리는 유효성 검사 세트에서 RMSE 측면에서 503 $를 달성하는 모델이 있습니다. 테스트 세트에서 모델을 한 번에 평가하겠습니다. <ul> <li> <performance> 테스트 성능은 551 $입니다. 충분합니다. <enough> <set> 참조 세트 생성 이 시점까지 모든 것이 매우 간단했습니다. 이제 우리는 기본 부분으로 왔습니다 - 참조 및 분석 세트를 작성합니다. <is> 참조 세트는 모델 모니터링 컨텍스트에 사용되는 테스트 세트의 또 다른 이름입니다. Nannyml은 테스트 세트에서 모델의 성능을 생산 성능의 기준으로 사용합니다. 참조 세트에는 특징과는 별도로 두 개의 열이 있어야합니다.<ul> 대상 자체 - 지상 진실 - 다이아몬드 가격 <li> <pred> 테스트 예측 - 우리는 y_test_pred 로 생성되었습니다 </pred> </li> <our> 지금, 우리의 테스트 세트에는 기능과 대상이 포함되어 있지만 y_test_pred가 누락되었습니다 : <li> <it> 추가하자 : </it> </li> <will> 이제 테스트 세트의 이름을 참조로 바꿀 것입니다 </will></our> </ul> <set> 분석 세트 생성 이 시점에서 회귀자가 클라우드에 배치되었다고 상상해 봅시다. 상상력은 실제로이 기사의 과잉 인 모델을 배포하는 것보다 간단합니다. <ploy> 우리는 다이아몬드 가격 책정 모델을 배치 한 후 다이아몬드의 대량 배송이 다가오고 있다는 소식을받습니다. 화물이 도착하기 전에, 다이아몬드의 물리적 측정은 우리에게 Prod (여전히 상상하고 있음)로 우리에게 보내져 웹 사이트에서 가격을 창출하고 마케팅을 시작할 수 있습니다. 그래서, 생성합시다. <p> </p> <dia> 실제 다이아몬드가 도착하고 인간 전문가가 모델에 의해 생성 된 가격을 확인하기 전에 모델이 잘 수행되는지 확인해야합니다. 우리는 웹 사이트에서 부정확 한 가격으로 다이아몬드를 표시하고 싶지 않습니다. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">import warnings import matplotlib.pyplot as plt import numpy as np import pandas as pd import seaborn as sns import xgboost as xgb from sklearn.model_selection import train_test_split from sklearn.preprocessing import OneHotEncoder warnings.filterwarnings(&quot;ignore&quot;) </pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> 이를 위해서는 y_prod_pred를 새로운 다이아몬드의 실제 가격 인 지상 진실과 비교하여 모델의 성능을 측정해야합니다. 그러나 가격이 확인되기 전에 우리는 근거 진실을 갖지 않을 것입니다. 따라서 우리는 지상 진실없이 모델의 성능을 추정해야합니다. <p> 이 작업을 수행하려면 Nannyml은 분석 세트가 필요합니다. 모델에 의해 작성된 예측과 함께 생산 데이터를 포함하는 데이터. <set> 분석 세트 생성은 참조를 작성하는 것과 유사합니다. </set></p> <are> 이제, 우리는 회귀 자의 성능을 추정 할 준비가되었습니다. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">dataset_link = &quot;https://raw.githubusercontent.com/BexTuychiev/medium_stories/master/2024/1_january/4_intro_to_nannyml/diamonds_special.csv&quot; diamonds_special = pd.read_csv(dataset_link) diamonds_special.head() </pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> 2 단계 : Nannyml의 성능 추정 <lannyml> 직접 손실 추정 (dle) 회귀 신뢰도 기반 성능 추정 (CBPE) 분류 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"># Extract all feature names all_feature_names = diamonds_special.drop([&quot;price&quot;, &quot;set&quot;], axis=1).columns.tolist() # Extract the columns and cast into category cats = diamonds_special.select_dtypes(exclude=np.number).columns # Define the target column target = &quot;price&quot; </pre><div class="contentsignin">로그인 후 복사</div></div> <the> 우리는 작업에 DLE 알고리즘을 사용합니다. DLE은 근거 진실없이 생산 모델의 성능을 측정하고 RMSE, RMSLE, MAE 등과 같은 다양한 회귀 유사 메트릭을보고 할 수 있습니다. <le> DLE을 사용하려면 먼저 기준 성능을 설정하기 위해 참조에 적합해야합니다. nannyml 에서 dle을 사용한 성능 추정 </le></the></lannyml></are></dia></ploy></set></is></set></enough></performance> </li> </ul></have>

    DLE 초기화 DLE 초기화는 세 가지 매개 변수 - 입력 기능 이름, 테스트를위한 근거 진실을 포함하는 열의 이름 및 테스트 예측을 포함하는 열의 이름입니다. 또한, 우리는 또한 RMSE를 메트릭과 청크 크기로 250으로 전달하고 있습니다. 추정기를 참조하고 분석의 성능을 추정하기 위해 추정기를 맞추자 : .

    우리는 nannyml 결과 객체를 플롯 할 수 있습니다. 그것이 무엇을 생산하는지 보자 :

    import warnings
    
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    import xgboost as xgb
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import OneHotEncoder
    
    warnings.filterwarnings("ignore")
    
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    Python의 Nannyml을 사용한 엔드 투 엔드 ML 모델 모니터링 워크 플로우 플롯 해석하자 - 참조 및 분석 세트에 성능을 표시하는 두 개의 섹션이 있습니다. 예상 생산 RMSE가 임계 값을 넘어 올라가면 Nannyml은 알림으로 표시됩니다.

    우리가 볼 수 있듯이, 우리는 생산 데이터에 대한 몇 가지 경고를 가지고 있으며, 마지막 배치에서 어류가 일어나고 있다는 것을 암시합니다. 3 단계 : 모니터링에서 예상 대 실현 성능 우리의 모니터링 시스템에 따르면 모델 성능은 생산에서 약 절반 만 감소했다고 알려줍니다. 그러나 그것은 단지 추정치 일뿐입니다 - 우리는 그것을 확실하게 말할 수 없습니다.

    우리가 추정 성능을 계획하는 동안 배송이 도착했으며 다이아몬드 전문가는 실제 가격을 계산했습니다. 우리는 그것들을 prod에 가격으로 저장했습니다 이제, 우리는 모니터링 시스템이 잘 작동하는지 확인하기 위해 추정 성능과 모델의 실현 된 성능 (실제 성능)을 비교할 수 있습니다. nannyml은 수행 할 수있는 공연 ancecalculator 클래스를 제공합니다

    클래스에는 네 가지 매개 변수가 필요합니다

    reciption_type : 작업은 무엇입니까? y_true : 라벨은 무엇입니까? y_pred : 예측은 어디에서 찾을 수 있습니까? <:> 메트릭 : 성능을 계산하는 데 어떤 메트릭을 사용합니까?

    를 통과시키고 계산기를 참조하기에 맞추면 분석 세트를 계산합니다. vidized_Results를 추정 된_results와 비교하려면 다시 비주얼을 사용합니다.

    음, 추정 된 RMSE (자주색)가 실제 성능 (실현 RMSE, 파란색)에 매우 가깝습니다. 이것은 우리에게 한 가지를 알려줍니다. 모니터링 시스템은 잘 작동하지만 손실 상승으로 표시된 것처럼 모델은 아닙니다. 그렇다면 이유는 무엇입니까?

    우리는 지금 이것에 뛰어들 것입니다. 4 단계 : 드리프트 감지 방법

    소개에서 언급 한 바와 같이, 생산에서 모델이 실패하는 가장 일반적인 이유 중 하나는 드리프트입니다. 이 섹션에서는 데이터 (기능) 드리프트 감지에 중점을 둘 것입니다. 드리프트 감지는 모델 모니터링 워크 플로의 근본 원인 분석 단계의 일부입니다. 일반적으로 다변량 드리프트 감지로 시작합니다.

    다변량 드리프트 감지 최고의 다변량 드리프트 감지 방법 중 하나는 PCA를 사용한 데이터 재구성 오류를 계산하는 것입니다. 그것은 매우 잘 작동하며 기능 분포에서 가장 작은 드리프트조차도 잡을 수 있습니다. 이 방법에 대한 높은 수준의 개요는 다음과 같습니다

    1. PCA는 참조에 적합하여 더 낮은 차원으로 압축합니다.

    이 단계에서는 PCA의 특성으로 인해 원래 데이터 세트에 대한 일부 정보가 손실됩니다.

    2. 그런 다음 참조 _lower는 원래 차원으로 압축 해제 -ERECTION_RECONSTATION.
      단계 1에서 정보가 손실되었으므로 재구성 된 데이터는 참조와 완전히 같지 않습니다.
    3. 참조와 참조 _Reconstruct의 차이점은 데이터 재구성 오류

    - reconstruct_error로 명명되어 있습니다. <_> reconstruct_error는 생산 데이터의 재구성 오류를 비교하기 위해 기준으로 작동합니다.

    4. 동일한 감소/재구성 방법이 생산 데이터 배치에 적용됩니다.
    • 생산 데이터의 재구성 오류가 기준보다 높으면 기능이 드리프 팅되었다고합니다. 시스템은 생산 데이터를 추가로 조사하라는 경고를 보냅니다
    이 4 단계는 Nannyml에서 DatareconstructiondriftCalculator 클래스로 구현됩니다. 사용 방법은 다음과 같습니다.

    각 데이터 덩어리에 대한 오류가 있으면 (각각 250 행)를 플롯 할 수 있습니다.
    • 우리가 볼 수 있듯이, 재구성 오류는 매우 높아 특징의 드리프트를 나타냅니다. 오류를 실현 된 성능과 비교할 수 있습니다.
    우리가 볼 수 있듯이, 손실의 모든 스파이크는 재구성 오류의 경고에 해당합니다. 일 변량 드리프트 감지 데이터 재구성 오류는 모든 기능의 드리프트를 측정하기위한 단일 숫자입니다. 그러나 개별 기능의 드리프트는 어떻습니까? 우리의 데이터 세트에 수백 가지의 기능이 포함되어 있다면, 우리는 어떻게 가장 표류하는 기능을 찾고 적절한 조치를 취할 것인가?

    는 단 변량 드리프트 감지 방법을 사용하는 곳입니다. Nannyml은 기능 유형에 따라 여러 가지를 제공합니다

    범주 형 특징 : 연속적인 특징 :
    import warnings
    
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    import xgboost as xgb
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import OneHotEncoder
    
    warnings.filterwarnings("ignore")
    
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    wasserstein, kolgomor-smirnov test 둘 다 :

    Jensen-Shannen 거리, Hellinger 거리

    이들 모두는 분석 세트와 관련하여 개별 기능의 분포를 비교합니다. 우리는 일 변형 리프트 계산기 클래스 내에서 일부 (또는 모든)를 사용할 수 있습니다.
    dataset_link = "https://raw.githubusercontent.com/BexTuychiev/medium_stories/master/2024/1_january/4_intro_to_nannyml/diamonds_special.csv"
    
    diamonds_special = pd.read_csv(dataset_link)
    diamonds_special.head()
    
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    필요한 유일한 매개 변수는 column_names이며 나머지는 nannyml에서 설정 한 기본값을 사용할 수 있습니다. 그러나 일을 단순하게 유지하기 위해 우리는 지속적인 범주 적 특징을 위해 Wasserstein과 Jensen_shannon을 사용하고 있습니다. 지금은 11 가지 기능이 있으므로 Plot (). show ()를 호출하는 것이 가장 최적의 결과를 얻지 못할 수 있습니다. 대신, 를 사용하여 가장 많은 수의 경고를 제공하는 기능을 반환 할 수 있습니다 (모든 청크가 고려 될 때). 코드는 다음과 같습니다. <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174140252261550.png" class="lazy" alt="Python의 Nannyml을 사용한 엔드 투 엔드 ML 모델 모니터링 워크 플로우" > <the> 랭커 결과가 나면 Pandas Dataframe이므로 머리를 인쇄 할 수 있습니다. <p> </p> <that> 우리는 가장 문제가되는 특징이 색과 깊이라는 것을 알 수 있습니다. 기사를 쓰기 전에 인위적으로 표류하게 한 나라는 날 놀라지 않아야합니다. <was> 그러나 이것이 실제 시나리오라면, 당신은 이러한 기능에 대한 문제 해결에 일정 시간을 보내고 싶을 것입니다. <p> 결론 <monitor> 모델 모니터링은 매혹적인 모델을 산산조각 내기 때문에 머신 러닝이 끝났다는 환상을 산산조각냅니다. 지구가 둥글고 사용자 패턴이 바뀌면서 오랫동안 모델은 없어도 모델이 없습니다. 이로 인해 모델 모니터링이 ML 엔지니어의 기술 세트의 중요한 부분이됩니다. </monitor></p> 오늘날 우리는 기본 모델 모니터링 워크 플로를 다루었습니다. 우리는 기본 모니터링 개념에 대해 이야기하면서 시작했습니다. 그런 다음 코드로 헤드 우선으로 뛰어 들었습니다. 데이터를 Nannyml과 호환되는 형식으로 위조했습니다. 추정 모델 성능을위한 첫 번째 플롯을 만들었고, 실현 된 성능과 비교하기 위해 다른 것을 만들었습니다. 성능이 떨어지고 있다는 몇 가지 경고를 받았습니다. 다변량 드리프트 감지로 확인했습니다. 무거운 기능 드리프트를 발견했습니다. 개별 기능 드리프트 감지로 이중 점검; 표류 기능을 식별했습니다. <p> <we> 불행히도, 우리는 문제 해결에서 바로 중단되었습니다. 워크 플로우 모니터링의 마지막 단계는이 기사의 범위를 벗어납니다. 그러나 모델 모니터링에 대한 훌륭한 권장 사항이 있습니다. </we></p> <ing> 머신 러닝 모니터링 개념 코스 <ing> Python 코스에서의 기계 학습 모니터링 <h2> <cour>이 두 과정 모두 Nannyml의 CEO이자 창립자 인 당신이 기대할 수있는 최고의 사람으로부터 만들어졌습니다. 과정에는 놓칠 수없는 많은 정보가 있습니다. </cour> </h2> <reading> 나는 또한 일부 실습 튜토리얼을 위해 보모 ML 문서를 읽는 것이 좋습니다. </reading></ing></ing></was></that></the>

위 내용은 Python의 Nannyml을 사용한 엔드 투 엔드 ML 모델 모니터링 워크 플로우의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿