예측 모델을 프로덕션에 배포

머신러닝 운영을 위한 5가지 모범 사례.


모든 예측 모델이 Google 규모인 것은 아닙니다.

때로는 소프트웨어에 넣으려는 작은 예측 모델을 개발하기도 합니다.

최근에 이런 질문을 받았습니다.

사실, 머신러닝에 대한 나의 지식에서 누락된 부분이 있습니다. 모든 자습서는 머신러닝 모델을 빌드할 때까지의 단계를 제공합니다. 이 모델을 어떻게 사용할 수 있습니까?

이 게시물에서는 모델을 프로덕션으로 쉽게 전환하고 최대한 활용할 수 있는 몇 가지 모범 사례를 살펴봅니다.


모델을 만들었습니다. 다음은 뭘 할까요?

당신은 체계적인 프로세스를 거쳐 문제를 예측할 수 있는 신뢰할 수 있고 정확한 모델을 만들었습니다. 그리고 어떻게든 이 모델을 사용하고 싶습니다. 아마도 당신은

  • 임시 예측을 수행할 수 있는 독립 실행형 프로그램을 만들고 싶을 수도 있습니다.
  • 모델을 기존 소프트웨어에 통합하고 싶을 수도 있습니다.


소프트웨어가 그다지 대단하지 않다고 가정해 봅시다. Google 규모의 배포는 고려하고 있지 않습니다. 어쩌면 그것은 당신만을 위한 것일 수도 있고, 어쩌면 단지 클라이언트일 수도 있고, 어쩌면 몇 개의 워크스테이션을 위한 것일 수도 있습니다. 이제 정확하고 신뢰할 수 있는 모델을 작동시키기 위한 몇 가지 모범 사례를 살펴봐야 합니다.


모델 배포에 대한 5가지 모범 사례

모델을 소프트웨어에 넣고 출시하는 건 어떨까요?

당신은 할 수 있습니다. 그러나 몇 가지 추가 단계를 추가하면 배포하는 모델이 유지 관리 가능하고 장기적으로 정확하게 유지된다는 확신을 가질 수 있습니다.

모델을 프로덕션에 투입했습니까?
의견을 남기고 경험을 공유하십시오.

다음은 예측 모델을 프로덕션에 배포할 때 수행할 수 있는 5가지 모범 사례 단계입니다.


1. 성능 요구 사항 지정

좋은 성능과 나쁜 성능을 구성하는 요소를 명확하게 설명해야 합니다.

이것은 정확성, 오탐지 또는 비즈니스에 중요한 메트릭일 수 있습니다.

성능 요구 사항이 중요합니다. 그렇지 않으면 시스템이 예상대로 작동하는지 확인하는 데 필요한 테스트를 설정할 수 없습니다. 최소, 평균 또는 성능 범위 기대치에 동의할 때까지 진행하지 마십시오.


2. 모델 계수에서 예측 알고리즘 분리

라이브러리를 사용하여 예측 모델을 만들었을 수 있습니다. 예를 들어, R, scikit-learn 또는 Weka입니다.

해당 라이브러리를 사용하여 모델을 배포하거나 소프트웨어에서 모델의 예측 측면을 다시 구현하도록 선택할 수 있습니다. 모델을 웹 서비스로 설정할 수도 있습니다.

그럼에도 불구하고 예측을 수행하는 알고리즘을 모델 내부와 분리하는 것이 좋습니다. 이것이 학습 데이터에서 학습된 모델 내의 특정 계수 또는 구조입니다.


2a. 예측 알고리즘 선택 또는 구현

종종 머신러닝 알고리즘의 복잡성은 예측을 만드는 것이 아니라 모델 학습에 있습니다.

예를 들어 회귀 알고리즘을 사용하여 예측을 수행하는 것은 매우 간단하고 선택한 언어로 구현하기 쉽습니다. 이것은 모델 학습에 사용되는 라이브러리가 아닌 다시 구현할 명백한 알고리즘의 예입니다.

라이브러리를 사용하여 예측을 수행하기로 결정한 경우 API 및 종속성에 익숙해집니다.

예측에 사용되는 소프트웨어는 응용 프로그램의 다른 모든 소프트웨어와 같습니다.

소프트웨어처럼 취급하십시오.

잘 구현하고, 단위 테스트를 작성하고, 강력하게 만드십시오.


2b. 모델 계수 직렬화

모델에 의해 학습된 숫자 또는 구조를 계수라고 부르겠습니다.

이러한 데이터는 응용 프로그램에 대한 구성이 아닙니다.

소프트웨어 구성처럼 취급하십시오.

소프트웨어 프로젝트와 함께 외부 파일에 저장합니다. 버전을 관리합니다. 구성을 코드처럼 취급하면 프로젝트가 쉽게 중단될 수 있습니다.

나중에 모델을 개선할 때 이 구성을 업데이트해야 할 가능성이 큽니다.


3. 모델에 대한 자동화된 테스트 개발

모델이 예상대로 작동하는지 증명하기 위해 자동화된 테스트가 필요합니다.

소프트웨어 영역에서는 이러한 회귀 테스트를 호출합니다. 그들은 우리가 시스템의 다른 부분을 변경할 때 소프트웨어가 향후 동작에서 회귀하지 않았는지 확인합니다.

모델에 대한 회귀 테스트를 작성합니다.

  • 예측을 수행할 작은 데이터 샘플을 수집하거나 제공합니다.
  • 프로덕션 알고리즘 코드 및 구성을 사용하여 예측을 수행합니다.
  • 테스트에서 예상되는 결과를 확인합니다.

이러한 테스트는 조기 경보입니다. 실패하면 모델이 손상되고 모델을 사용하는 소프트웨어 또는 기능을 릴리스할 수 없습니다. 테스트에서 모델의 최소 성능 요구 사항을 엄격하게 적용합니다.

포함하려는 도메인의 원시 데이터 세트 외에도 잘 이해하는 테스트 사례를 고안하는 것이 좋습니다.

또한 시간이 지남에 따라 예기치 않은 결과를 생성하거나 시스템을 중단시키는 작업에서 이상하고 흥미로운 사례를 수집하는 것이 좋습니다. 이를 이해하고 회귀 테스트 스위트에 추가해야 합니다.

각 코드 변경 후 릴리스 전에 회귀 테스트를 실행합니다. Nightly로 실행하십시오.


4. 백 테스트 및 현재 테스트 인프라 개발

모델은 예측이 수행되는 소프트웨어 및 데이터와 마찬가지로 변경됩니다.

대규모 데이터 모음에서 지정된 구성을 사용하여 프로덕션 모델의 평가를 자동화하려고 합니다.

이렇게 하면 기록 데이터에서 모델에 대한 변경 사항을 효율적으로 백테스트하고 실제로 개선되었는지 여부를 확인할 수 있습니다.

이것은 하이퍼 매개 변수 튜닝에 사용할 수있는 작은 데이터 세트가 아니라 사용 가능한 전체 데이터 모음이며 월, 연도 또는 기타 중요한 경계로 분할될 수 있습니다.

  • 현재 운영 모델을 실행하여 성능을 기준으로 합니다.
  • 새로운 모델을 실행하여 작업에 들어갈 장소를 놓고 경쟁하십시오.

설정이 완료되면 야간 또는 매주 실행하고 자동 보고서를 산출하도록 합니다.

다음으로 지금 테스트를 추가합니다.

이것은 최신 데이터에 대한 생산 모델의 테스트입니다.

아마도 오늘, 이번 주 또는 이번 달의 데이터 일 것입니다. 아이디어는 생산 모델이 흔들릴 수 있다는 조기 경고를 받는 것입니다.

이는 모델에서 악용하는 데이터의 관계가 시간에 따라 미묘하게 변경되는 콘텐츠 드리프트로 인해 발생할 수 있습니다.

이 Now-Test는 또한 보고서를 출력하고 성능이 최소 성능 요구 사항 아래로 떨어지는 경우 경보 (이메일로)를 발생시킬 수 있습니다.


5. 챌린지 후 평가판 모델 업데이트

모델을 업데이트해야 합니다.

어쩌면 새로운 코드와 새로운 구성이 필요한 완전히 새로운 알고리즘을 고안 할 수도 있습니다. 위의 모든 사항을 다시 확인 하십시오.

더 작고 관리하기 쉬운 변경은 모델 계수에 대한 것입니다. 예를 들어 매일 밤 실행되고 새 후보 모델을 산출하는 모델 하이퍼 파라미터의 그리드 또는 임의 검색을 설정할 수 있습니다.


당신은 이것을 해야 합니다.

모델을 테스트해야 합니다. 그것도 여러번.

위의 포인트 4에서 백 테스트 및 Now-test 인프라를 사용하여 새 모델의 성능을 평가합니다. 결과를 주의 깊게 검토합니다.

최종 자동 검사로 회귀 테스트를 사용하여 변경 사항을 평가합니다.

모델을 사용하는 소프트웨어의 기능을 테스트합니다.

아마도 일부 위치 또는 베타 릴리스에서 피드백을 위해 변경 사항을 롤아웃하고 위험 완화를 위해 다시 롤아웃할 수 있습니다.

새 모델이 최소 성능 요구 사항을 충족하고 이전 결과를 개선한다고 만족하면 새 모델을 수락하십시오.

래칫과 마찬가지로 모델 성능이 향상됨에 따라 성능 요구 사항을 점진적으로 업데이트하는 것이 좋습니다.


요약

운영 소프트웨어에 작은 모델을 추가하는 것은 매우 달성 가능합니다.

이 게시물에서는 베이스를 커버하고 좋은 엔지니어링 관행을 따르고 있는지 확인하는 5단계를 발견했습니다.

요약하면 이러한 단계는 다음과 같습니다.

  1. 성능 요구 사항을 지정합니다.
  2. 예측 알고리즘을 모델 계수와 분리합니다.
  3. 모델에 대한 회귀 테스트를 개발합니다.
  4. 백테스트 및 현재 테스트 인프라를 개발합니다.
  5. 챌린지 후 평가판 모델 업데이트.

머신러닝 모델 운영에 대한 자세한 내용은 다음 게시물을 확인하세요.

이는 Google 규모의 머신러닝 모델 배포에 대한 자세한 내용입니다. 언급된 비디오를 시청하고 AirBnB 및 Etsy 프로덕션 파이프라인에 대한 멋진 링크를 검토하세요.

네피리티
No Comments

Sorry, the comment form is closed at this time.