제퍼넷 로고

Booking.com이 Amazon SageMaker를 사용하여 ML 실험 프레임워크를 현대화한 방법 | 아마존 웹 서비스

시간

이 게시물은 Booking.com의 Kostia Kofman 및 Jenny Tokar와 공동으로 작성되었습니다.

온라인 여행산업의 글로벌 리더로서, Booking.com 는 항상 서비스를 향상하고 고객에게 맞춤화되고 원활한 경험을 제공하기 위한 혁신적인 방법을 모색하고 있습니다. Booking.com의 순위 팀은 검색 및 추천 알고리즘을 최적화하여 사용자에게 최상의 결과를 제공하는 데 중추적인 역할을 합니다.

내부 리소스를 다른 내부 팀과 공유하는 순위 팀의 기계 학습(ML) 과학자들은 종종 모델 교육 및 실험을 위한 리소스에 액세스하기 위해 오랜 대기 시간을 겪게 되었고, 이로 인해 신속한 실험과 혁신 능력이 어려워졌습니다. 현대화된 ML 인프라의 필요성을 인식한 순위 팀은 아마존 세이지 메이커 대규모로 ML 모델을 구축, 교육 및 배포합니다.

Booking.com이 콜라보레이션을 진행했습니다. AWS 전문 서비스 다음 개선 사항을 통해 개선된 ML 모델의 출시 기간을 단축하는 솔루션을 구축합니다.

  • 교육 및 실험을 위한 리소스 대기 시간 감소
  • 하이퍼파라미터 튜닝 등 필수 ML 기능 통합
  • ML 모델의 개발 주기 단축

대기 시간이 단축된다는 것은 팀이 모델을 빠르게 반복하고 실험하여 훨씬 더 빠른 속도로 통찰력을 얻을 수 있음을 의미합니다. SageMaker 온디맨드 사용 가능 인스턴스를 사용하면 대기 시간이 10배 단축됩니다. 하이퍼파라미터 튜닝 및 모델 설명 가능성과 같은 필수 ML 기능이 온프레미스에 부족했습니다. 팀의 현대화 여정에서는 다음을 통해 이러한 기능을 도입했습니다. Amazon SageMaker 자동 모델 조정Amazon SageMaker 명확화. 마지막으로 팀의 목표는 코드의 각 변경 사항에 대해 즉각적인 피드백을 받아 피드백 루프를 몇 분에서 즉시로 줄여 ML 모델의 개발 주기를 줄이는 것이었습니다.

이 게시물에서는 Booking.com의 순위 팀이 SageMaker의 기능을 활용하여 ML 실험 프레임워크를 현대화하면서 수행한 여정을 자세히 살펴보겠습니다. 이를 통해 이들은 기존 문제를 극복했을 뿐만 아니라 검색 경험도 향상시켜 궁극적으로 전 세계 수백만 명의 여행자에게 혜택을 제공했습니다.

현대화에 대한 접근

순위 팀은 각자 자신의 모델을 오프라인으로 개발하고 테스트해야 하는 여러 ML 과학자로 구성됩니다. 오프라인 평가에 따라 모델이 성공했다고 판단되면 프로덕션 A/B 테스트로 넘어갈 수 있습니다. 온라인 개선이 나타나면 모든 사용자에게 배포할 수 있습니다.

이 프로젝트의 목표는 ML 과학자가 사용자 정의 가능한 환경을 쉽게 실행할 수 있는 사용자 친화적인 환경을 만드는 것이었습니다. Amazon SageMaker 모델 구축 파이프라인 길고 복잡한 모듈을 코딩할 필요 없이 가설을 테스트합니다.

직면한 여러 과제 중 하나는 기존 온프레미스 파이프라인 솔루션을 AWS에서 사용할 수 있도록 조정하는 것이었습니다. 이 솔루션에는 두 가지 주요 구성 요소가 포함되었습니다.

  • 기존 코드 수정 및 확장 – 솔루션의 첫 번째 부분에는 AWS 인프라와 호환되도록 기존 코드를 수정하고 확장하는 작업이 포함되었습니다. 이는 온프레미스에서 클라우드 기반 처리로 원활하게 전환하는 데 중요했습니다.
  • 클라이언트 패키지 개발 – SageMaker API 및 이전 기존 코드에 대한 래퍼 역할을 하는 클라이언트 패키지가 개발되었습니다. 이 패키지는 두 가지를 결합하여 ML 과학자가 코딩 없이 ML 파이프라인을 쉽게 구성하고 배포할 수 있도록 합니다.

SageMaker 파이프라인 구성

사용자 정의 가능성은 모델 구축 파이프라인의 핵심이며 다음을 통해 달성되었습니다. config.ini, 광범위한 구성 파일. 이 파일은 파이프라인의 모든 입력 및 동작에 대한 제어 센터 역할을 합니다.

내부에서 사용 가능한 구성 config.ini 과 같습니다 :

  • 파이프라인 세부정보 – 실무자는 파이프라인 이름을 정의하고, 실행할 단계를 지정하고, 출력을 저장할 위치를 결정할 수 있습니다. 아마존 단순 스토리지 서비스 (Amazon S3), 사용할 데이터세트를 선택하세요.
  • AWS 계정 세부 정보 – 파이프라인을 실행할 지역과 사용해야 할 역할을 결정할 수 있습니다.
  • 단계별 구성 – 파이프라인의 각 단계에 대해 관련 매개변수와 함께 사용할 인스턴스 수 및 유형과 같은 세부 정보를 지정할 수 있습니다.

다음 코드는 구성 파일의 예를 보여줍니다.

[BUILD]
pipeline_name = ranking-pipeline
steps = DATA_TRANFORM, TRAIN, PREDICT, EVALUATE, EXPLAIN, REGISTER, UPLOAD
train_data_s3_path = s3://...
...
[AWS_ACCOUNT]
region = eu-central-1
...
[DATA_TRANSFORM_PARAMS]
input_data_s3_path = s3://...
compression_type = GZIP
....
[TRAIN_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
epochs = 1
enable_sagemaker_debugger = True
...
[PREDICT_PARAMS]
instance_count = 3
instance_type = ml.g5.4xlarge
...
[EVALUATE_PARAMS]
instance_type = ml.m5.8xlarge
batch_size = 2048
...
[EXPLAIN_PARAMS]
check_job_instance_type = ml.c5.xlarge
generate_baseline_with_clarify = False
....

config.ini Git에서 관리하는 버전 제어 파일로, 성공적인 학습 파이프라인 실행에 필요한 최소 구성을 나타냅니다. 개발 중에 버전이 관리되지 않는 로컬 구성 파일을 활용할 수 있습니다. 이러한 로컬 구성 파일에는 특정 실행과 관련된 설정만 포함하면 되므로 복잡하지 않고 유연성이 향상됩니다. 파이프라인 생성 클라이언트는 여러 구성 파일을 처리하도록 설계되었으며 최신 구성 파일이 이전 설정보다 우선합니다.

SageMaker 파이프라인 단계

파이프라인은 다음 단계로 구분됩니다.

  • 학습 및 테스트 데이터 준비 – 테라바이트 규모의 원시 데이터가 S3 버킷에 복사되고 다음을 사용하여 처리됩니다. AWS 접착제 Spark 처리를 위한 작업을 수행하여 호환성을 위해 구조화되고 형식화된 데이터를 생성합니다.
  • Train – 훈련 단계에서는 SageMaker 훈련 작업에 TensorFlow 추정기를 사용합니다. 훈련은 Horovod를 사용하여 분산 방식으로 이루어지며 결과 모델 아티팩트는 Amazon S3에 저장됩니다. 하이퍼파라미터 튜닝의 경우 하이퍼파라미터 최적화(HPO) 작업을 시작하여 객관적인 지표를 기반으로 최상의 모델을 선택할 수 있습니다.
  • 예측 – 이 단계에서 SageMaker 처리 작업은 저장된 모델 아티팩트를 사용하여 예측을 수행합니다. 이 프로세스는 사용 가능한 시스템에서 병렬로 실행되며 예측 결과는 Amazon S3에 저장됩니다.
  • 평가 – PySpark 처리 작업은 사용자 지정 Spark 스크립트를 사용하여 모델을 평가합니다. 그런 다음 평가 보고서는 Amazon S3에 저장됩니다.
  • 상태 – 평가 후 모델의 품질에 대한 결정이 내려집니다. 이 결정은 구성 파일에 정의된 조건 메트릭을 기반으로 합니다. 평가가 긍정적이면 모델이 승인된 것으로 등록됩니다. 그렇지 않으면 거부된 것으로 등록됩니다. 두 경우 모두 평가 및 설명 보고서가 생성되면 모델 레지스트리에 기록됩니다.
  • 추론을 위한 패키지 모델 – 처리 작업을 사용하여 평가 결과가 긍정적이면 모델이 패키지화되어 Amazon S3에 저장되며 내부 ML 포털에 업로드할 준비가 됩니다.
  • 설명 – SageMaker Clarify는 설명 보고서를 생성합니다.

두 개의 서로 다른 저장소가 사용됩니다. 첫 번째 저장소에는 ML 파이프라인에 대한 정의와 빌드 코드가 포함되어 있고, 두 번째 저장소에는 처리, 교육, 예측, 평가 등 각 단계 내에서 실행되는 코드가 포함되어 있습니다. 이 이중 리포지토리 접근 방식은 더 큰 모듈성을 허용하고 과학 및 엔지니어링 팀이 ML 코드 및 ML 파이프라인 구성 요소를 독립적으로 반복할 수 있도록 해줍니다.

다음 다이어그램은 솔루션 워크 플로우를 보여줍니다.

자동 모델 튜닝

ML 모델을 교육하려면 비즈니스용으로 강력하고 성능이 뛰어난 최종 모델을 구축하기 위해 여러 교육 실험을 반복적으로 수행하는 접근 방식이 필요합니다. ML 과학자는 적절한 모델 유형을 선택하고, 올바른 입력 데이터세트를 구축하고, 훈련 중에 모델 학습 프로세스를 제어하는 ​​하이퍼파라미터 세트를 조정해야 합니다.

모델 훈련 과정에서 하이퍼파라미터에 대한 적절한 값을 선택하면 모델의 최종 성능에 큰 영향을 미칠 수 있습니다. 그러나 특정 사용 사례에 적합한 값을 결정하는 고유하거나 정의된 방법은 없습니다. 대부분의 경우 ML 과학자는 약간 다른 하이퍼파라미터 세트를 사용하여 여러 교육 작업을 실행하고 모델 교육 측정항목을 관찰한 후 다음 반복을 위해 더 유망한 값을 선택해야 합니다. 모델 성능을 조정하는 이 프로세스는 하이퍼파라미터 최적화(HPO)라고도 하며 때로는 수백 번의 실험이 필요할 수 있습니다.

순위 팀은 매우 제한된 수의 교육 작업만 동시에 시작할 수 있었기 때문에 온프레미스 환경에서 수동으로 HPO를 수행했습니다. 따라서 HPO를 순차적으로 실행하고, 하이퍼파라미터 값의 다양한 조합을 수동으로 테스트 및 선택하고, 정기적으로 진행 상황을 모니터링해야 했습니다. 이로 인해 모델 개발 및 조정 프로세스가 연장되고 실행 가능한 시간 내에 실행할 수 있는 HPO 실험의 전체 수가 제한되었습니다.

AWS로 이전하면서 순위 팀은 SageMaker의 자동 모델 튜닝(AMT) 기능을 사용할 수 있었습니다. AMT를 사용하면 Ranking ML 과학자는 관심 있는 하이퍼파라미터 범위 내에서 수백 개의 교육 작업을 자동으로 시작하여 선택한 지표에 따라 최종 모델의 최고 성능 버전을 찾을 수 있습니다. 이제 순위 팀은 하이퍼파라미터 선택을 위해 네 가지 자동 조정 전략 중에서 선택할 수 있습니다.

  • 그리드 검색 – AMT는 모든 하이퍼파라미터가 범주형 값일 것으로 예상하고, 전체 하이퍼파라미터 공간을 탐색하면서 각각의 고유한 범주형 조합에 대해 훈련 작업을 시작합니다.
  • 무작위 검색 – AMT는 제공된 범위 내에서 하이퍼파라미터 값 조합을 무작위로 선택합니다. 다양한 훈련 작업과 매개변수 값 선택 사이에는 종속성이 없기 때문에 이 방법을 사용하면 여러 병렬 훈련 작업을 시작할 수 있어 최적의 매개변수 선택 프로세스 속도가 빨라집니다.
  • 베이지안 최적화 – AMT는 베이지안 최적화 구현을 사용하여 최상의 하이퍼파라미터 값 세트를 추측하고 이를 회귀 문제로 처리합니다. 이전에 테스트한 하이퍼파라미터 조합과 새로운 매개변수 선택을 통해 모델 훈련 작업에 미치는 영향을 고려하여 더 적은 수의 실험으로 더 스마트한 매개변수 선택을 최적화하지만, 이전 훈련에서 항상 학습할 수 있도록 훈련 작업을 순차적으로만 시작합니다.
  • 하이퍼밴드 – AMT는 실행 중인 훈련 작업의 중간 및 최종 결과를 사용하여 보다 유망한 결과를 보여주는 하이퍼파라미터 구성을 갖춘 훈련 작업에 리소스를 동적으로 재할당하는 동시에 성과가 저조한 작업을 자동으로 중지합니다.

SageMaker의 AMT를 통해 순위 팀은 처음으로 여러 병렬 실험을 실행하고, 자동 조정 전략을 사용하고, 며칠 내에 두 자릿수 훈련 작업 실행을 수행할 수 있게 되어 모델 개발을 위한 하이퍼파라미터 조정 프로세스에 소요되는 시간을 줄일 수 있었습니다. 현장에서는 불가능한 일이었습니다.

SageMaker Clarify를 사용한 모델 설명 가능성

모델 설명 가능성을 통해 ML 실무자는 기능 엔지니어링 및 선택 결정에 대한 귀중한 통찰력을 제공함으로써 ML 모델의 특성과 동작을 이해할 수 있으며, 결과적으로 모델 예측의 품질이 향상됩니다. 순위 팀은 두 가지 방법으로 설명 가능성 통찰력을 평가하기를 원했습니다. 즉, 특성 입력이 전체 데이터세트에서 모델 출력에 어떻게 영향을 미치는지 이해하고(전역적 해석 가능성) 관심 있는 데이터 지점에 대한 특정 모델 예측에 대한 입력 특성 영향을 발견할 수 있기를 원했습니다. 현지 해석 가능성). 이 데이터를 사용하여 Ranking ML 과학자는 모델 성능을 더욱 개선하고 모델이 때때로 제공하는 까다로운 예측 결과를 설명하는 방법에 대해 정보에 입각한 결정을 내릴 수 있습니다.

SageMaker Clarify를 사용하면 다음을 사용하여 모델 설명 보고서를 생성할 수 있습니다. Shapley 첨가제 설명 (SHAP) SageMaker에서 모델을 훈련할 때 글로벌 및 로컬 모델 해석성을 모두 지원합니다. 모델 설명 가능성 보고서 외에도 SageMaker Clarify는 훈련 전 편향 지표, 훈련 후 편향 지표 및 부분 의존성 플롯에 대한 분석 실행을 지원합니다. 작업은 AWS 계정 내에서 SageMaker 처리 작업으로 실행되며 SageMaker 파이프라인과 직접 통합됩니다.

글로벌 해석성 보고서는 작업 출력에서 ​​자동으로 생성되고 아마존 세이지 메이커 스튜디오 훈련 실험 실행의 일부로 환경을 테스트합니다. 이 모델이 SageMaker 모델 레지스트리에 등록되면 보고서가 모델 아티팩트에 추가로 연결됩니다. 이 두 가지 옵션을 모두 사용하여 순위 팀은 다양한 모델 버전과 해당 동작 변경 사항을 쉽게 추적할 수 있었습니다.

단일 예측(로컬 해석 가능성 값)에 대한 입력 기능의 영향을 탐색하기 위해 순위 팀은 매개변수를 활성화했습니다. save_local_shap_values SageMaker Clarify 작업을 수행하고 SageMaker Studio의 Jupyter 노트북에서 추가 분석을 위해 S3 버킷에서 이를 로드할 수 있었습니다.

이전 이미지는 임의 ML 모델에 대한 모델 설명 가능성이 어떻게 보이는지에 대한 예를 보여줍니다.

훈련 최적화

딥 러닝(DL)의 등장으로 인해 ML은 컴퓨팅 성능과 방대한 양의 데이터에 점점 더 의존하게 되었습니다. ML 실무자는 일반적으로 이러한 복잡한 모델을 교육할 때 리소스를 효율적으로 사용하는 데 어려움을 겪습니다. 대규모 컴퓨팅 클러스터에서 교육을 실행할 때 I/O 병목 현상, 커널 실행 지연, 메모리 제약, 활용률이 낮은 리소스 등의 문제를 포함하여 리소스 활용을 최적화하는 데 다양한 문제가 발생합니다. 훈련 작업의 구성이 효율성을 위해 미세 조정되지 않은 경우 이러한 장애물로 인해 최적이 아닌 하드웨어 사용, 훈련 기간 연장 또는 불완전한 훈련 실행이 발생할 수 있습니다. 이러한 요인으로 인해 프로젝트 비용이 증가하고 일정이 지연됩니다.

CPU 및 GPU 사용량을 프로파일링하면 이러한 비효율성을 이해하고, 모델의 다양한 TensorFlow 작업에 대한 하드웨어 리소스 소비(시간 및 메모리)를 확인하고, 성능 병목 현상을 해결하고, 궁극적으로 모델을 더 빠르게 실행하는 데 도움이 됩니다.

순위 팀은 다음의 프레임워크 프로파일링 기능을 사용했습니다. Amazon SageMaker 디버거 (이제 더 이상 사용되지 않습니다. Amazon SageMaker 프로파일러) 이러한 훈련 작업을 최적화합니다. 이를 통해 CPU 및 GPU 사용률, GPU에서 커널 실행, CPU에서 커널 실행, 동기화 작업, GPU 전반의 메모리 작업, 커널 시작과 해당 실행 간의 대기 시간, CPU 간 데이터 전송 등 CPU 및 GPU의 모든 활동을 추적할 수 있습니다. 그리고 GPU.

순위팀도 사용했습니다. TensorFlow 프로파일러 특징 텐서 보드이는 TensorFlow 모델 교육을 프로파일링하는 데 더욱 도움이 되었습니다. SageMaker는 이제 TensorBoard와 추가로 통합됨 SageMaker 교육 및 도메인과 통합된 TensorBoard의 시각화 도구를 SageMaker에 제공합니다. TensorBoard를 사용하면 TensorBoard 시각화 플러그인을 사용하여 모델 디버깅 작업을 수행할 수 있습니다.

이 두 도구의 도움으로 순위 팀은 TensorFlow 모델을 최적화하고 병목 현상을 식별하고 평균 훈련 단계 시간을 CPU에서 350밀리초에서 140밀리초로, GPU에서 170밀리초에서 70밀리초로 줄여 속도를 60% 향상할 수 있었습니다. 각각 59%입니다.

비즈니스 성과

마이그레이션 노력은 가용성, 확장성 및 탄력성 향상에 중점을 두었으며, 이를 통해 ML 환경을 새로운 수준의 운영 우수성으로 끌어 올렸으며, 이는 모델 교육 빈도 증가, 실패 감소, 교육 시간 최적화, 고급 ML 기능 등으로 예시됩니다.

모델 학습 빈도 및 실패

월간 모델 훈련 작업 수가 50배 증가하여 모델 최적화 빈도가 훨씬 더 높아졌습니다. 또한, 새로운 ML 환경에서는 파이프라인 실행 실패율이 약 20%에서 5%로 감소했습니다. 실패한 작업 처리 시간은 평균 XNUMX시간 남짓에서 무시할 수 있는 XNUMX초로 대폭 단축되었습니다. 이를 통해 운영 효율성이 크게 향상되고 리소스 낭비가 감소했습니다.

최적화된 훈련 시간

SageMaker 기반 GPU 교육을 통해 마이그레이션 효율성이 향상되었습니다. 이러한 변화로 인해 모델 훈련 시간이 이전 기간의 60분의 12로 단축되었습니다. 이전에는 딥 러닝 모델의 교육 프로세스에 CPU에서 약 XNUMX시간이 소요되었습니다. GPU에서는 약 XNUMX시간으로 간소화되었습니다. 이러한 개선은 시간을 절약할 뿐만 아니라 개발 주기를 가속화하여 더 빠른 반복과 모델 개선을 가능하게 합니다.

고급 ML 기능

마이그레이션 성공의 핵심은 하이퍼파라미터 튜닝 및 모델 설명 가능성을 포함하는 SageMaker 기능 세트를 사용하는 것입니다. 또한 마이그레이션을 통해 다음을 사용하여 원활한 실험 추적이 가능해졌습니다. Amazon SageMaker 실험, 보다 통찰력 있고 생산적인 실험을 가능하게 합니다.

가장 중요한 것은 새로운 ML 실험 환경이 현재 생산 중인 새로운 모델의 성공적인 개발을 지원했다는 것입니다. 이 모델은 트리 기반이 아닌 딥 러닝이며 온라인 모델 성능이 눈에 띄게 향상되었습니다.

결론

이 게시물에서는 확장 가능한 ML 프레임워크를 구현하고 순위 팀의 ML 모델 출시 시간을 성공적으로 단축한 AWS Professional Services와 Booking.com 협업에 대한 개요를 제공했습니다.

Booking.com의 순위 팀은 클라우드와 SageMaker로의 마이그레이션이 유익하다는 것이 입증되었으며 MLOps(기계 학습 작업) 방식을 적용하면 ML 엔지니어와 과학자가 자신의 기술에 집중하고 개발 속도를 높일 수 있다는 사실을 알게 되었습니다. 팀은 코드와 기능을 공유하는 ML 실무자와의 대화 및 전용 세션을 통해 Booking.com의 전체 ML 커뮤니티와 함께 ​​수행한 학습 및 작업을 공유하고 있습니다. 이 게시물이 지식을 공유하는 또 다른 방법이 되기를 바랍니다.

AWS Professional Services는 팀이 AWS에서 확장 가능하고 프로덕션에 즉시 사용 가능한 ML을 개발하도록 지원할 준비가 되어 있습니다. 자세한 내용은 다음을 참조하세요. AWS 전문 서비스 또는 계정 관리자를 통해 연락하세요.


저자에 관하여

로렌스 반 데르 마스 AWS Professional Services의 기계 학습 엔지니어입니다. 그는 AWS에서 기계 학습 솔루션을 구축하는 고객과 긴밀히 협력하고 분산 교육, 실험 및 책임 있는 AI를 전문으로 하며 기계 학습이 우리가 알고 있는 세상을 어떻게 변화시키고 있는지에 대해 열정을 갖고 있습니다.

다니엘 자기바 AWS Professional Services의 데이터 과학자입니다. 그는 AWS 고객을 위한 확장 가능한 프로덕션급 기계 학습 솔루션 개발을 전문으로 합니다. 그의 경험은 자연어 처리, 생성 AI, 기계 학습 운영 등 다양한 영역으로 확장됩니다.

코스티아 코프만 Booking.com의 수석 기계 학습 관리자로 검색 순위 ML 팀을 이끌고 Booking.com의 가장 광범위한 ML 시스템을 감독하고 있습니다. 개인화 및 순위 지정에 대한 전문 지식을 바탕으로 그는 최첨단 기술을 활용하여 고객 경험을 향상시키는 데 성공했습니다.

제니 토카 Booking.com 검색 순위 팀의 수석 기계 학습 엔지니어입니다. 그녀는 효율성, 안정성, 확장성 및 혁신을 특징으로 하는 엔드투엔드 ML 파이프라인 개발을 전문으로 합니다. Jenny의 전문 지식을 통해 그녀의 팀은 매일 수백만 명의 사용자에게 서비스를 제공하는 최첨단 순위 모델을 만들 수 있습니다.

알렉산드라 도키치 AWS Professional Services의 수석 데이터 과학자입니다. 그녀는 고객이 AWS에서 혁신적인 AI/ML 솔루션을 구축하도록 지원하는 것을 좋아하며 데이터의 힘을 통한 비즈니스 혁신에 흥미를 갖고 있습니다.

루바 프로치바 AWS Professional Services의 참여 관리자입니다. 그녀는 AWS 고객이 비즈니스 가치를 극대화하고 혁신 속도를 가속화할 수 있도록 지원하는 데이터 및 GenAI/ML 솔루션을 전문적으로 제공합니다.

spot_img

최신 인텔리전스

spot_img