이 블로그 게시물은 Cepsa의 수석 데이터 과학자인 Guillermo Ribeiro가 공동으로 작성했습니다.
머신 러닝(ML)은 학문적 환경과 혁신 부서에서 등장하는 유행하는 트렌드에서 모든 산업의 비즈니스 전반에 가치를 제공하는 핵심 수단으로 빠르게 진화했습니다. 실험실에서의 실험에서 생산 환경의 실제 문제 해결로의 이러한 전환은 다음과 함께 진행됩니다. MLOps, 또는 ML 세계에 대한 DevOps의 적응.
MLOps는 소스 데이터 세트, 실험 재현성, ML 알고리즘 코드 및 모델 품질에 중점을 두고 ML 모델의 전체 수명 주기를 간소화하고 자동화하는 데 도움이 됩니다.
At CEPSA인 글로벌 에너지 회사인 우리는 ML을 사용하여 산업 장비에 대한 예측 유지 관리부터 정유소의 석유화학 공정 모니터링 및 개선에 이르기까지 비즈니스 라인 전반의 복잡한 문제를 해결합니다.
이 게시물에서는 다음 주요 AWS 서비스를 사용하여 MLOps에 대한 참조 아키텍처를 구축한 방법에 대해 설명합니다.
- 아마존 세이지 메이커, ML 모델을 구축, 교육 및 배포하는 서비스
- AWS 단계 함수, 프로세스를 오케스트레이션 및 자동화하는 데 사용되는 서버리스 로우 코드 시각적 워크플로 서비스
- 아마존 이벤트 브리지, 서버리스 이벤트 버스
- AWS 람다, 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스
또한 이 참조 아키텍처를 회사의 새로운 ML 프로젝트 부트스트랩에 적용한 방법도 설명합니다.
난제
지난 4년 동안 Cepsa의 여러 비즈니스 라인에서 ML 프로젝트를 시작했지만 곧 특정 문제와 제한 사항이 발생하기 시작했습니다.
ML을 위한 참조 아키텍처가 없었기 때문에 각 프로젝트는 다른 구현 경로를 따라 임시 모델 교육 및 배포를 수행했습니다. 프로젝트 코드 및 매개변수를 처리하는 일반적인 방법과 ML 모델 레지스트리 또는 버전 관리 시스템이 없으면 데이터 세트, 코드 및 모델 간의 추적 가능성을 잃게 됩니다.
또한 배포된 모델을 모니터링하지 않아 모델 성능을 추적할 수단이 없었기 때문에 프로덕션 환경에서 모델을 운영하는 방식에서 개선의 여지가 있음을 발견했습니다. 결과적으로 정보에 입각한 재교육 결정을 내릴 수 있는 올바른 메트릭이 부족했기 때문에 일반적으로 일정에 따라 모델을 재교육했습니다.
해법
우리가 극복해야 하는 문제부터 시작하여 데이터 준비, 모델 교육, 추론 및 모델 모니터링을 분리하는 것을 목표로 하는 일반 솔루션을 설계하고 중앙 집중식 모델 레지스트리를 특징으로 했습니다. 이러한 방식으로 여러 AWS 계정에서 관리 환경을 간소화하는 동시에 중앙 집중식 모델 추적 기능을 도입했습니다.
우리의 데이터 과학자와 개발자는 AWS 클라우드9 데이터 랭글링 및 ML 실험을 위한 (코드 작성, 실행 및 디버깅을 위한 클라우드 IDE) Git 코드 리포지토리로 GitHub.
자동 교육 워크플로는 데이터 과학 팀에서 구축한 코드를 사용하여 SageMaker에서 모델 훈련 모델 레지스트리에 출력 모델을 등록합니다.
다른 워크플로는 모델 배포를 관리합니다. 모델 레지스트리에서 참조를 가져오고 다음을 사용하여 추론 끝점을 만듭니다. SageMaker 모델 호스팅 기능.
우리는 Step Functions를 사용하여 모델 교육 및 배포 워크플로를 모두 구현했습니다. 이는 각 프로젝트에 대한 특정 워크플로를 생성할 수 있는 유연한 프레임워크를 제공하고 다양한 AWS 서비스 및 구성 요소를 간단한 방식으로 오케스트레이션하기 때문입니다.
데이터 소비 모델
Cepsa에서는 다양한 비즈니스 요구 사항을 충족하기 위해 일련의 데이터 레이크를 사용하며 이러한 모든 데이터 레이크는 공통 데이터 소비 모델을 공유하므로 데이터 엔지니어와 데이터 과학자가 필요한 데이터를 더 쉽게 찾고 사용할 수 있습니다.
비용과 책임을 쉽게 처리하기 위해 데이터 레이크 환경은 데이터 생산자 및 소비자 애플리케이션과 완전히 분리되고 공통 AWS 조직에 속한 다른 AWS 계정에 배포됩니다.
ML 모델을 훈련하는 데 사용되는 데이터와 훈련된 모델에 대한 추론 입력으로 사용되는 데이터는 다음을 사용하여 잘 정의된 API 세트를 통해 다양한 데이터 레이크에서 사용할 수 있습니다. 아마존 API 게이트웨이, API를 대규모로 생성, 게시, 유지 관리, 모니터링 및 보호하는 서비스입니다. API 백엔드 사용 아마존 아테나 (표준 SQL을 사용하여 데이터를 분석하는 대화형 쿼리 서비스)에 이미 저장된 데이터에 액세스 아마존 단순 스토리지 서비스 (Amazon S3) 및 카탈로그 AWS 접착제 데이터 카탈로그.
다음 다이어그램은 Cepsa의 MLOps 아키텍처에 대한 일반적인 개요를 제공합니다.
모델 훈련
훈련 프로세스는 각 모델에 대해 독립적이며 에 의해 처리됩니다. Step Functions 표준 워크플로, 다양한 프로젝트 요구 사항에 따라 프로세스를 모델링할 수 있는 유연성을 제공합니다. 우리는 대부분의 프로젝트에서 재사용하는 정의된 기본 템플릿을 가지고 있으며 필요할 때 약간의 조정을 수행합니다. 예를 들어, 일부 프로젝트 소유자는 새로운 프로덕션 모델의 배포를 승인하기 위해 수동 게이트를 추가하기로 결정한 반면 다른 프로젝트 소유자는 자체 오류 감지 및 재시도 메커니즘을 구현했습니다.
또한 모델 교육에 사용되는 입력 데이터 세트에 대한 변환을 수행합니다. 이를 위해 교육 워크플로에 통합된 Lambda 함수를 사용합니다. 더 복잡한 데이터 변환이 필요한 일부 시나리오에서는 다음에서 코드를 실행합니다. Amazon 탄력적 컨테이너 서비스 (Amazon ECS) 켜기 AWS 파게이트, 컨테이너를 실행하는 서버리스 컴퓨팅 엔진.
우리 데이터 과학 팀은 사용자 지정 알고리즘을 자주 사용하므로 다음과 같은 기능을 활용합니다. SageMaker 모델 교육에서 사용자 정의 컨테이너 사용에 의존 Amazon Elastic Container Registry (Amazon ECR), 컨테이너 이미지를 쉽게 저장, 관리, 공유 및 배포할 수 있는 완전 관리형 컨테이너 레지스트리입니다.
대부분의 ML 프로젝트는 Scikit-learn 라이브러리를 기반으로 하므로 표준을 확장했습니다. SageMaker Scikit 학습 컨테이너 Git 리포지토리 정보 및 배포 옵션과 같이 프로젝트에 필요한 환경 변수를 포함합니다.
이 접근 방식을 통해 데이터 과학자는 교육 알고리즘 개발에 집중하고 프로젝트에 필요한 라이브러리를 지정하기만 하면 됩니다. 코드 변경 사항을 Git 리포지토리에 푸시하면 CI/CD 시스템(젠킨스 AWS에서 호스팅됨)은 교육 코드와 라이브러리를 사용하여 컨테이너를 빌드합니다. 이 컨테이너는 Amazon ECR에 푸시되고 마지막으로 SageMaker 교육 호출에 파라미터로 전달됩니다.
훈련 프로세스가 완료되면 결과 모델이 Amazon S3에 저장되고 참조가 모델 레지스트리에 추가되며 수집된 모든 정보와 지표가 실험 카탈로그에 저장됩니다. 알고리즘 코드와 라이브러리가 실험과 관련된 데이터와 함께 훈련된 모델에 연결되기 때문에 이는 완전한 재현성을 보장합니다.
다음 다이어그램은 모델 학습 및 재학습 프로세스를 보여줍니다.
모델 배포
아키텍처는 유연하며 훈련된 모델의 자동 및 수동 배포를 모두 허용합니다. 모델 배포자 워크플로는 교육이 완료된 후 SageMaker 교육이 EventBridge에 게시하는 이벤트를 통해 자동으로 호출되지만 필요한 경우 모델 레지스트리에서 올바른 모델 버전을 전달하여 수동으로 호출할 수도 있습니다. 자동 호출에 대한 자세한 내용은 다음을 참조하세요. Amazon EventBridge로 Amazon SageMaker 자동화.
모델 배포자 워크플로는 모델 레지스트리에서 모델 정보를 검색하고 다음을 사용합니다. AWS 클라우드 포메이션, 코드 서비스로서의 관리형 인프라를 사용하여 프로젝트 요구 사항에 따라 모델을 실시간 추론 엔드포인트에 배포하거나 저장된 입력 데이터 세트로 일괄 추론을 수행합니다.
모델이 모든 환경에 성공적으로 배포될 때마다 모델 레지스트리는 모델이 현재 실행 중인 환경을 나타내는 새 태그로 업데이트됩니다. 끝점이 제거될 때마다 해당 태그도 모델 레지스트리에서 삭제됩니다.
다음 다이어그램은 모델 배포 및 추론을 위한 워크플로를 보여줍니다.
실험 및 모델 레지스트리
모든 실험 및 모델 버전을 단일 위치에 저장하고 중앙 집중식 코드 리포지토리를 사용하면 모델 교육과 배포를 분리하고 모든 프로젝트 및 환경에 대해 서로 다른 AWS 계정을 사용할 수 있습니다.
모든 실험 항목은 훈련 및 추론 코드의 커밋 ID를 저장하므로 전체 실험 프로세스를 완벽하게 추적할 수 있으며 다양한 실험을 쉽게 비교할 수 있습니다. 이렇게 하면 알고리즘 및 모델에 대한 과학적 탐색 단계에서 중복 작업을 수행하는 것을 방지하고 모델이 훈련된 계정 및 환경과 독립적으로 어디에서나 모델을 배포할 수 있습니다. 이는 AWS Cloud9 실험 환경에서 훈련된 모델에도 적용됩니다.
전체적으로 우리는 완전히 자동화된 모델 교육 및 배포 파이프라인을 보유하고 있으며 무언가가 제대로 작동하지 않거나 팀에서 실험 목적으로 다른 환경에 모델을 배포해야 할 때 빠른 수동 모델 배포를 수행할 수 있는 유연성을 가지고 있습니다.
자세한 사용 사례: YET Dragon 프로젝트
YET Dragon 프로젝트는 상하이에 있는 Cepsa의 석유화학 공장의 생산 성능을 향상시키는 것을 목표로 합니다. 이 목표를 달성하기 위해 우리는 덜 효율적인 단계를 찾기 위해 생산 프로세스를 철저히 연구했습니다. 우리의 목표는 성분 농도를 임계값 이하로 정확히 유지하여 공정의 수율 효율성을 높이는 것이었습니다.
이 프로세스를 시뮬레이션하기 위해 두 가지 산화 프로세스, 하나의 농축 프로세스 및 앞서 언급한 수율의 결과를 예측하기 위해 반응이 예측 변수의 평활 함수에 의존하는 선형 모델인 XNUMX개의 일반화된 가법 모델 또는 GAM을 구축했습니다. 또한 XNUMX가지 GAM 모델의 결과를 처리하고 공장에 적용할 수 있는 최상의 최적화를 찾기 위해 최적화 프로그램을 구축했습니다.
우리 모델은 과거 데이터로 훈련되었지만 플랜트는 때때로 훈련 데이터 세트에 등록되지 않은 상황에서 작동할 수 있습니다. 우리는 시뮬레이션 모델이 이러한 시나리오에서 잘 작동하지 않을 것으로 예상하므로 Isolation Forests 알고리즘을 사용하여 두 가지 이상 감지 모델을 구축했습니다. 이러한 모델은 이러한 상황을 감지하여 이러한 상황이 발생할 때마다 자동화된 최적화 프로세스를 비활성화하는 데 도움이 됩니다.
산업 화학 공정은 매우 가변적이며 ML 모델은 플랜트 운영과 잘 정렬되어야 하므로 각 상황에 배포된 모델의 추적 가능성뿐만 아니라 빈번한 재교육이 필요합니다. YET Dragon은 모델 레지스트리, 실험의 완전한 재현성 및 완전히 관리되는 자동화된 교육 프로세스를 특징으로 하는 최초의 ML 최적화 프로젝트였습니다.
이제 모델을 프로덕션으로 가져오는 전체 파이프라인(데이터 변환, 모델 교육, 실험 추적, 모델 레지스트리 및 모델 배포)은 각 ML 모델에 대해 독립적입니다. 이를 통해 모델을 반복적으로 개선하고(예: 새 변수 추가 또는 새 알고리즘 테스트) 교육 및 배포 단계를 다른 트리거에 연결할 수 있습니다.
결과 및 향후 개선 사항
현재 YET Dragon 프로젝트에 사용된 30개의 ML 모델을 자동으로 훈련, 배포 및 추적할 수 있으며 각 프로덕션 모델에 대해 이미 XNUMX개 이상의 버전을 배포했습니다. 이 MLOps 아키텍처는 회사 전체의 다른 프로젝트에서 수백 개의 ML 모델로 확장되었습니다.
우리는 부트스트래핑 시간 단축과 ML 파이프라인 자동화 덕분에 프로젝트 평균 기간이 25% 감소한 이 아키텍처를 기반으로 새로운 YET 프로젝트를 계속 출시할 계획입니다. 또한 YET Dragon 프로젝트의 직접적인 결과인 수확량 및 농도 증가 덕분에 연간 약 300,000유로를 절약할 수 있을 것으로 예상했습니다.
이 MLOps 아키텍처의 단기적 발전은 모델 모니터링 및 자동화된 테스트를 향한 것입니다. 새 모델이 배포되기 전에 이전에 배포된 모델에 대해 모델 효율성을 자동으로 테스트할 계획입니다. 우리는 또한 모델 모니터링 및 추론 데이터 드리프트 모니터링의 구현을 위해 노력하고 있습니다. Amazon SageMaker 모델 모니터, 모델 재교육을 자동화합니다.
결론
기업은 자동화되고 효율적인 방식으로 ML 프로젝트를 프로덕션 환경에 도입해야 하는 과제에 직면해 있습니다. 전체 ML 모델 수명 주기를 자동화하면 프로젝트 시간을 단축하고 더 나은 모델 품질과 더 빠르고 자주 프로덕션에 배포할 수 있습니다.
회사 전체의 다양한 비즈니스에서 채택한 표준화된 MLOps 아키텍처를 개발함으로써 Cepsa는 ML 프로젝트 부트스트랩 속도를 높이고 ML 모델 품질을 개선하여 데이터 과학 팀이 더 빠르게 혁신할 수 있는 안정적이고 자동화된 프레임워크를 제공할 수 있었습니다. .
SageMaker의 MLOps에 대한 자세한 내용은 다음을 방문하십시오. MLOps용 Amazon SageMaker 에서 다른 고객 사용 사례를 확인하십시오. AWS 머신 러닝 블로그.
저자 소개
기예르모 리베이로 히메네스 Cepsa에서 박사 학위를 취득한 수석 데이터 과학자입니다. 핵 물리학에서. 그는 주로 통신 및 에너지 산업에서 데이터 과학 프로젝트에서 6년 간의 경험을 가지고 있습니다. 그는 현재 기계 학습 프로젝트의 확장 및 제품화에 중점을 둔 Cepsa의 디지털 혁신 부서에서 데이터 과학자 팀을 이끌고 있습니다.
기예르모 메넨데스 코랄 AWS Energy and Utilities의 솔루션 아키텍트입니다. 그는 15년 이상의 SW 애플리케이션 설계 및 구축 경험이 있으며 현재 분석 및 기계 학습에 중점을 두고 에너지 산업의 AWS 고객에게 아키텍처 지침을 제공하고 있습니다.
- "
- 000
- 100
- 15년
- a
- 능력
- 소개
- ACCESS
- 계정
- 달성
- 가로질러
- Ad
- 추가
- 이점
- 반대
- 연산
- 알고리즘
- All
- 수
- 이미
- 아마존
- 사이에
- 분석
- 분석하다
- 어딘가에
- API를
- API
- 어플리케이션
- 적용된
- 접근
- 승인
- 건축
- 아키텍처
- 약
- 관련
- 자동화
- 자동화
- Automatic
- 자동적으로
- 자동화
- 자동화
- 가능
- AWS
- 때문에
- 되고
- 전에
- 존재
- 이하
- BEST
- 블로그
- 빌드
- 건물
- 빌드
- 사업
- 사업
- 케이스
- 가지 경우
- 중앙
- 어떤
- 도전
- 과제
- 화학
- 클라우드
- 암호
- 범하다
- 공통의
- 회사
- 완전한
- 완전히
- 복잡한
- 구성 요소
- 구성 요소들
- 계산
- 집중
- 연결하기
- 소비
- 소비자
- 소비
- 컨테이너
- 용기
- 비용
- 수
- 엄호
- 만들
- 생성
- 창조
- 현재
- 관습
- 고객
- 고객
- 데이터
- 데이터 과학
- 데이터 과학자
- 결정된
- 결정
- 의존
- 따라
- 배포
- 배포
- 전개
- 배포
- 설계
- 설계
- 상세한
- 탐지 된
- Detection System
- 결정
- 개발자
- 개발
- 다른
- 디지털
- 디지털 전환
- 곧장
- 토론
- 용
- 마다
- 용이하게
- 효율성
- 효율적인
- 신흥
- 수
- 종점
- 에너지
- 엔진
- 엔지니어
- 환경
- 장비
- 예상
- 이벤트
- 진화
- 정확하게
- 예
- 기대
- 경험
- 실험
- 탐구
- 마주보고
- FAST
- 빠른
- 특색
- 추천
- 최종적으로
- 먼저,
- 유연성
- 융통성있는
- 초점
- 수행원
- 뼈대
- 에
- 가득 찬
- 기능
- 미래
- 게이츠
- 일반
- 힘내
- GitHub의
- 글로벌
- 골
- 핸들
- 데
- 도움
- 도움이
- 고도로
- 역사적인
- 보유
- 호스팅
- 호스팅
- 방법
- HTTPS
- 수백
- 형상
- 이행
- 구현
- 개선
- 개량
- 개선
- 기타의
- 포함
- 증가
- 독립
- 독립하여
- 산업
- 산업
- 정보
- 정보
- 인프라
- 혁신
- 입력
- 통합 된
- 대화형
- 소개
- 격리
- 문제
- IT
- 유지
- 유지
- 키
- 진수
- 지도
- 배우기
- 도서관
- 라인
- 위치
- 찾고
- 기계
- 기계 학습
- 만든
- 유지하다
- 유지
- 확인
- 제작
- 관리
- 관리
- 관리
- 태도
- 조작
- 수동으로
- 방법
- 통계
- ML
- 모델
- 모델
- 모니터
- 모니터링
- 배우기
- 가장
- 여러
- 요구
- 운영
- 조작
- 최적화
- 옵션
- 주문
- 조직
- 기타
- 자신의
- 소유자
- 통과
- 성능
- 실행할 수 있는
- 상
- 물리학
- 전철기
- 예측
- 문제
- 방법
- 프로세스
- 제작자
- 생산
- 프로젝트
- 프로젝트
- 제공
- 제공
- 제공
- 게시
- 목적
- 목적
- 밀
- 품질
- 실시간
- 감소
- 회원가입
- 등록된
- 신뢰할 수있는
- 저장소
- 필수
- 요구조건 니즈
- 응답
- 책임
- REST
- 결과
- 결과
- 달리기
- 달리는
- 규모
- 스케일링
- 과학
- 과학자
- 과학자
- 안전해야합니다.
- 연속
- 서버리스
- 서비스
- 서비스
- 세트
- 상하이
- 공유
- 단기간의
- 단순, 간단, 편리
- 시뮬레이션
- 단일
- 사태
- SIX
- So
- 해결책
- 솔루션
- 일부
- 무언가
- 구체적인
- 속도
- 단계
- 표준
- 시작
- 저장
- 저장
- 유선
- 성공적으로
- 체계
- 목표
- 팀
- 팀
- 통신
- test
- 지원
- XNUMXD덴탈의
- 소스
- 따라서
- 완전히
- 임계값
- 을 통하여
- 시간
- 시대
- 에 대한
- 추적
- 선로
- 추적
- 트레이닝
- 변환
- 변환
- 전이
- 아래에
- us
- 사용
- 보통
- 유용
- 가치
- 버전
- 잘 정의 된
- 동안
- 없이
- 작업
- 워크 플로우
- 일하는
- 세계
- 쓰기
- year
- 년
- 수율