자연어 이해는 챗봇 및 가상 비서부터 기계 번역 및 텍스트 요약에 이르기까지 광범위한 사용 사례에 적용됩니다. 이러한 애플리케이션이 예상 수준의 성능으로 실행되도록 하려면 교육 및 프로덕션 환경의 데이터가 동일한 배포판에서 나오는 것이 중요합니다. 추론에 사용되는 데이터(생산 데이터)가 모델 훈련에 사용되는 데이터와 다를 경우 데이터 드리프트라는 현상이 발생합니다. 데이터 드리프트가 발생하면 모델은 더 이상 프로덕션 데이터와 관련이 없으며 예상보다 성능이 저하될 가능성이 높습니다. 추론 데이터를 지속적으로 모니터링하고 이를 훈련 중에 사용된 데이터와 비교하는 것이 중요합니다.
당신이 사용할 수 아마존 세이지 메이커 모든 규모의 기계 학습(ML) 모델을 신속하게 구축, 교육 및 배포합니다. 모델 저하에 대한 사전 대책으로 다음을 사용할 수 있습니다. Amazon SageMaker 모델 모니터 ML 모델의 품질을 실시간으로 지속적으로 모니터링합니다. 모델 모니터를 사용하면 모델 성능의 드리프트가 관찰되는 경우 이를 알리고 작업을 트리거하도록 경고를 구성할 수도 있습니다. 이러한 편차를 조기에 사전에 감지하면 모델을 수동으로 모니터링하거나 추가 도구를 구축할 필요 없이 새로운 실측 교육 데이터 수집, 모델 재교육, 업스트림 시스템 감사 등의 수정 조치를 취할 수 있습니다.
모델 모니터는 실시간으로 모델 드리프트를 감지하고 완화하는 네 가지 유형의 모니터링 기능을 제공합니다.
- 데이터 품질 – 독립 변수의 데이터 스키마 및 통계 속성 변경을 감지하는 데 도움이 되며 드리프트가 감지되면 경고합니다.
- 모델 품질 – 정확성이나 정밀성과 같은 모델 성능 특성을 실시간으로 모니터링하기 위해 모델 모니터를 사용하면 애플리케이션에서 수집된 실제 레이블을 수집할 수 있습니다. 모델 모니터는 정답 정보를 예측 데이터와 자동으로 병합하여 모델 성능 지표를 계산합니다.
- 모델 편향 –Model Monitor는 다음과 통합됩니다. Amazon SageMaker 명확화 잠재적 편견에 대한 가시성을 향상합니다. 초기 데이터나 모델이 편향되지 않을 수도 있지만, 세상의 변화로 인해 이미 학습된 모델에서 시간이 지남에 따라 편향이 발생할 수 있습니다.
- 모델 설명 가능성 – 드리프트 감지는 기능 속성의 상대적 중요성에 변화가 발생하면 경고합니다.
이번 포스팅에서는 텍스트 데이터에 적용할 수 있는 데이터 품질 드리프트 유형에 대해 논의합니다. 또한 모델 모니터를 사용하여 텍스트 데이터에서 데이터 드리프트를 감지하는 접근 방식을 제시합니다.
NLP의 데이터 드리프트
데이터 드리프트는 분포 이동이 입력 측에서 발생하는지 출력 측에서 발생하는지, 입력과 출력 간의 관계가 변경되었는지에 따라 세 가지 범주로 분류할 수 있습니다.
공변량 이동
안에 공변량 이동, 입력의 분포는 시간이 지남에 따라 변하지만 조건부 분포는 P(y|x) 변하지 않습니다. 이러한 유형의 표류를 공변량(특징) 분포의 변화로 인해 문제가 발생하므로 공변량 변화라고 합니다. 예를 들어, 이메일 스팸 분류 모델에서 훈련 데이터(이메일 말뭉치)의 분포는 채점 중 데이터 분포와 다를 수 있습니다.
라벨 이동
공변량 이동은 특성 분포의 변화에 초점을 맞추는 반면, 라벨 이동 클래스 변수 분포의 변화에 중점을 둡니다. 이러한 유형의 이동은 본질적으로 공변량 이동의 반대입니다. 이에 대해 생각하는 직관적인 방법은 불균형 데이터 세트를 고려하는 것일 수 있습니다. 훈련 세트에 있는 이메일의 스팸 대 스팸이 아닌 비율이 50%이지만 실제로는 이메일의 10%가 스팸이 아닌 경우 대상 레이블 분포가 이동한 것입니다.
컨셉 전환
컨셉 전환 데이터 분포나 클래스 분포와 관련이 없고 대신 두 변수 간의 관계와 관련이 있다는 점에서 공변량 및 레이블 이동과 다릅니다. 예를 들어, 이메일 스패머는 스팸 필터 모델을 전달하기 위해 다양한 개념을 사용하는 경우가 많으며, 훈련 중에 사용되는 이메일의 개념은 시간이 지남에 따라 변경될 수 있습니다.
이제 다양한 유형의 데이터 드리프트를 이해했으므로 모델 모니터를 사용하여 텍스트 데이터의 공변량 변화를 검색하는 방법을 살펴보겠습니다.
솔루션 개요
구조화되고 제한된 표 형식 데이터와 달리 텍스트 데이터는 복잡하고 고차원적이며 자유 형식입니다. NLP에서 드리프트를 효율적으로 감지하기 위해 우리는 다음과 같이 작업합니다. 임베딩, 이는 텍스트의 저차원 표현입니다. Word2Vec과 같은 다양한 언어 모델과 다음과 같은 변환기 기반 모델을 사용하여 임베딩을 얻을 수 있습니다. BERT. 이러한 모델은 텍스트의 의미 정보를 보존하면서 고차원 데이터를 저차원 공간에 투영합니다. 결과는 데이터 드리프트 모니터링을 포함하여 다양한 다운스트림 작업에 사용할 수 있는 조밀하고 상황에 따라 의미 있는 벡터입니다.
우리 솔루션에서는 임베딩을 사용하여 영어 문장의 공변량 이동을 감지합니다. 우리는 모델 모니터를 활용하여 프로덕션 환경에 배포되는 텍스트 분류기에 대한 지속적인 모니터링을 촉진합니다. 우리의 접근 방식은 다음 단계로 구성됩니다.
- SageMaker를 사용하여 BERT 모델을 미세 조정합니다.
- 미세 조정된 BERT 분류기를 실시간 엔드포인트로 배포합니다. 데이터 캡처 사용하도록 설정되었습니다.
- BERT 분류기를 훈련하는 데 사용되는 문장 샘플로 구성된 기준 데이터세트를 만듭니다.
- 만들기 사용자 정의 SageMaker 모니터링 작업 프로덕션에서 캡처한 데이터와 기준 데이터 세트 간의 코사인 유사성을 계산합니다.
다음 다이어그램은 솔루션 워크플로를 보여줍니다.
BERT 모델 미세 조정
이 게시물에서 우리는 언어 수용성 코퍼스(CoLA), 출판된 언어학 문헌에서 문법적 또는 비문법적이라고 표시된 10,657개의 영어 문장으로 구성된 데이터세트입니다. 우리는 PyTorch 추정기 클래스를 정의하여 CoLa 데이터 세트를 사용하여 BERT 모델을 미세 조정하기 위해 SageMaker 교육을 사용합니다. PyTorch와 함께 이 SDK를 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요. SageMaker Python SDK와 함께 PyTorch 사용. 전화 fit()
추정기의 방법은 훈련 작업을 시작합니다.
모델 배포
모델을 훈련한 후 SageMaker 엔드포인트에서 호스팅합니다. 엔드포인트가 모델을 로드하고 예측을 제공하도록 하기 위해 다음에서 몇 가지 메소드를 구현합니다. train_deploy.py:
- model_fn () – 저장된 모델을 로드하고 모델 서빙에 사용할 수 있는 모델 객체를 반환합니다. SageMaker PyTorch 모델 서버는 다음을 호출하여 모델을 로드합니다.
model_fn
. - input_fn () – 예측 입력을 역직렬화하고 준비합니다. 이 예에서 요청 본문은 먼저 JSON으로 직렬화된 다음 모델 제공 엔드포인트로 전송됩니다. 따라서
input_fn()
, 먼저 JSON 형식의 요청 본문을 역직렬화하고 입력을torch.tensor
, BERT에 필요한 대로. - predict_fn () – 예측을 수행하고 결과를 반환합니다.
모델 모니터 데이터 캡처 활성화
우리는 가능하게한다 모델 모니터 데이터 캡처 입력 데이터를 기록하기 위해 아마존 단순 스토리지 서비스 (Amazon S3) 버킷을 나중에 참조할 수 있습니다.
그런 다음 이전 단계에서 생성된 모델을 사용하여 실시간 SageMaker 엔드포인트를 생성합니다.
추론
이전 단계에서 생성한 예측 개체를 사용하여 예측을 실행합니다. 추론 끝점에서 사용되는 JSON 직렬 변환기 및 역직렬 변환기를 설정합니다.
실시간 엔드포인트는 요청에서 데이터를 캡처하도록 구성되며 응답과 데이터는 Amazon S3에 저장됩니다. 이전 모니터링 일정에서 캡처된 데이터를 확인할 수 있습니다.
기준선 만들기
우리는 훈련 데이터에서 문장 임베딩 특징을 추출하기 위해 미세 조정된 BERT 모델을 사용합니다. BERT는 의미론적 맥락으로 동적 단어 표현을 생성하기 때문에 이러한 벡터를 코사인 거리를 비교하기 위한 고품질 특성 입력으로 사용합니다. 문장 임베딩을 얻으려면 다음 단계를 완료하세요.
- BERT 토크나이저를 사용하여 각 토큰에 대한 토큰 ID를 가져옵니다(
input_id
)를 입력 문장과 마스크에 삽입하여 입력 시퀀스의 어떤 요소가 토큰인지 패딩 요소인지 나타냅니다(attention_mask_id
). 우리는 BERT를 사용합니다tokenizer.encode_plus
각 입력 문장에 대해 다음 값을 가져오는 함수입니다.
input_ids
와 attention_mask_ids
모델에 전달되어 네트워크의 숨겨진 상태를 가져옵니다. 그만큼 hidden_states
다음 순서로 XNUMX개의 차원이 있습니다.
- 레이어 번호(BERT에는 12개의 레이어가 있음)
- 배치 번호(1문장)
- 단어 토큰 색인
- 숨겨진 유닛(768개 기능)
- 마지막 두 개의 숨겨진 레이어를 사용하여 문장의 모든 입력 토큰의 평균을 계산하여 단일 벡터(문장 임베딩)를 얻습니다.
- 문장 임베딩을 NumPy 배열로 변환하고 이를 모델 모니터에서 사용되는 기준으로 Amazon S3 위치에 저장합니다.
평가 스크립트
모델 모니터는 테이블 형식 데이터 세트의 엔드포인트에서 캡처한 데이터를 분석하는 기능을 갖춘 사전 구축된 컨테이너를 제공합니다. 자체 컨테이너를 가져오려는 경우 Model Monitor는 사용할 수 있는 확장 지점을 제공합니다. 당신이 MonitoringSchedule
, 모델 모니터는 궁극적으로 처리 작업을 시작합니다. 따라서 컨테이너는 처리 작업 계약을 인식해야 합니다. 컨테이너와 호환되는 평가 스크립트를 만들어야 합니다. 계약 입력 와 출력.
모델 모니터는 모니터링 일정 중에 캡처된 모든 샘플에 평가 코드를 사용합니다. 각 추론 데이터 포인트에 대해 앞서 설명한 것과 동일한 논리를 사용하여 문장 임베딩을 계산합니다. 코사인 유사성은 추론 데이터 포인트와 기준선의 문장 임베딩의 유사성을 측정하기 위한 거리 측정법으로 사용됩니다. 수학적으로 두 문장 임베딩 벡터 사이의 코사인 각도를 측정합니다. 코사인 유사성 점수가 높을수록 유사한 문장 임베딩을 나타냅니다. 코사인 유사성 점수가 낮을수록 데이터 드리프트를 나타냅니다. 우리는 모든 코사인 유사성 점수의 평균을 계산하고, 임계값보다 작은 경우 위반 보고서에 캡처됩니다. 사용 사례에 따라 다음과 같은 다른 거리 측정항목을 사용할 수 있습니다. manhattan
or euclidean
문장 임베딩의 유사성을 측정합니다.
다음 다이어그램은 SageMaker 모델 모니터링을 사용하여 기준선을 설정하고 코사인 거리 유사성을 사용하여 데이터 드리프트를 감지하는 방법을 보여줍니다.
다음은 위반 사항을 계산하는 코드입니다. 전체 평가 스크립트는 다음에서 사용할 수 있습니다. GitHub의:
모델 모니터를 사용하여 데이터 드리프트 측정
이 섹션에서는 모델 모니터를 사용하여 데이터 드리프트를 측정하는 방법에 중점을 둡니다. 모델 모니터 사전 구축된 모니터는 다음을 통해 구동됩니다. 디크는 대규모 데이터 세트의 데이터 품질을 측정하는 데이터에 대한 단위 테스트를 정의하기 위해 Apache Spark 위에 구축된 라이브러리입니다. 이러한 사전 구축된 모니터링 기능을 활용하기 위해 코딩이 필요하지 않습니다. 또한 사용자 정의 분석을 제공하기 위해 코딩하여 모델을 모니터링할 수 있는 유연성도 있습니다. Model Monitor에서 내보내는 모든 지표를 수집하고 검토할 수 있습니다. 아마존 세이지 메이커 스튜디오, 추가 코드를 작성하지 않고도 모델 성능을 시각적으로 분석할 수 있습니다.
데이터가 테이블 형식이 아닌 경우와 같은 특정 시나리오에서는 기본 처리 작업( 디크)은 테이블 형식 데이터 세트만 지원하므로 충분하지 않습니다. 사전 구축된 모니터는 드리프트를 감지하기 위한 정교한 메트릭을 생성하는 데 충분하지 않을 수 있으며 자체 메트릭을 가져와야 할 수도 있습니다. 다음 섹션에서는 사용자 지정 컨테이너를 구축하여 측정항목을 가져오는 설정에 대해 설명합니다.
사용자 지정 Model Monitor 컨테이너 빌드
우리는을 사용하여 평가 스크립트 이전 섹션에서 Docker 컨테이너를 빌드하고 이를 Amazon Elastic Container Registry (아마존 ECR):
고객 Docker 컨테이너가 Amazon ECR에 있으면 다음 섹션에 설명된 대로 모델 모니터링 작업을 예약하고 위반 보고서를 생성할 수 있습니다.
모델 모니터링 작업 예약
모델 모니터링 작업을 예약하기 위해 Model Monitor 인스턴스를 생성하고 image_uri
, 이전 섹션에서 생성한 Docker 컨테이너를 참조합니다.
다음을 사용하여 모니터링 작업을 예약합니다. create_monitoring_schedule
API. 매시간 또는 매일 모니터링 작업을 예약할 수 있습니다. 다음을 사용하여 작업을 구성합니다. destination
다음 코드에 표시된 대로 매개변수:
모니터링 일정과 해당 실행을 설명하고 나열하려면 다음 명령을 사용할 수 있습니다.
데이터 드리프트 위반 보고서
모델 모니터링 작업이 완료되면 대상 S3 경로로 이동하여 위반 보고서에 액세스할 수 있습니다. 이 보고서에는 평균 코사인 점수(avg_cosine_score
)이 환경 변수로 구성된 임계값보다 낮습니다. THRESHOLD:0.5
FBI 증오 범죄 보고서 모델모니터 사례. 이는 추론 중에 관찰된 데이터가 설정된 기준선을 넘어 표류하고 있음을 나타냅니다.
다음 코드는 생성된 위반 보고서를 보여줍니다.
마지막으로 이 관찰을 기반으로 재학습을 위해 모델을 구성할 수 있습니다. 활성화할 수도 있습니다. 아마존 단순 알림 서비스 (Amazon SNS) 위반이 발생할 경우 경고를 보내는 알림입니다.
결론
모델 모니터를 사용하면 생산 중인 모델의 높은 품질을 유지할 수 있습니다. 이 게시물에서는 텍스트와 같은 구조화되지 않은 데이터에 대한 데이터 드리프트를 모니터링할 때 발생하는 문제를 강조하고 사용자 지정 모니터링 스크립트를 사용하여 데이터 드리프트를 감지하는 직관적인 접근 방식을 제공했습니다. 다음에서 게시물과 관련된 코드를 찾을 수 있습니다. GitHub 저장소. 또한 다음과 같은 다른 거리 측정 기준을 활용하도록 솔루션을 사용자 정의할 수 있습니다. 최대 평균 불일치(MMD)는 임베디드 공간에서 소스와 타겟 분포 사이의 한계 분포를 계산하기 위한 비모수적 거리 측정법입니다.
저자에 관하여
비크람 엘랑고 그는 미국 버지니아주에 본사를 둔 Amazon Web Services의 AI/ML 전문가 솔루션 설계자입니다. Vikram은 금융 및 보험 업계 고객이 기계 학습 애플리케이션을 대규모로 구축하고 배포할 수 있는 설계 및 사고 리더십을 제공합니다. 그는 현재 자연어 처리, 책임 있는 AI, 추론 최적화 및 기업 전반의 ML 확장에 주력하고 있습니다. 여가 시간에는 가족과 함께 여행, 하이킹, 요리, 캠핑을 즐깁니다.
라구 라메샤 Amazon SageMaker 서비스 팀의 ML 솔루션 설계자입니다. 그는 고객이 대규모로 ML 프로덕션 워크로드를 SageMaker로 마이그레이션하도록 돕는 데 중점을 두고 있습니다. 그는 기계 학습, AI 및 컴퓨터 비전 분야를 전문으로 하며 UT 달라스에서 컴퓨터 과학 석사 학위를 취득했습니다. 여가 시간에는 여행과 사진 촬영을 즐깁니다.
토니 첸 Amazon Web Services의 기계 학습 솔루션 설계자로서 고객이 클라우드에서 확장 가능하고 강력한 기계 학습 기능을 설계하도록 돕습니다. 전 데이터 과학자이자 데이터 엔지니어였던 그는 자신의 경험을 활용하여 조직이 기계 학습 운영과 관련하여 직면하는 가장 어려운 문제를 해결하는 데 도움을 줍니다.
- '
- "
- 100
- 11
- 7
- 소개
- ACCESS
- 계정
- 가로질러
- 행위
- 추가
- AI
- All
- 이미
- 이기는하지만
- 아마존
- 아마존 세이지 메이커
- Amazon Web Services
- 분석
- 아파치
- 아파치 스파크
- 응용할 수 있는
- 어플리케이션
- 가능
- 평균
- AWS
- 기준
- 몸
- 빌드
- 건물
- 캠핑
- 가지 경우
- 원인
- 과제
- 이전 단계로 돌아가기
- 잡담
- 분류
- 클라우드
- 암호
- 코딩
- 수집
- 복잡한
- 계산
- 컴퓨터 과학
- 컴퓨터 비전
- 컨테이너
- 이 포함되어 있습니다
- 끊임없는
- 계약
- 요리
- 만들기
- 고객
- 달라스
- 데이터
- 데이터 품질
- 데이터 과학자
- 디자인
- Detection System
- 개발
- 다른
- 토론
- 거리
- 도커
- 도커 컨테이너
- 하지 않습니다
- 도메인
- 운전
- ...동안
- 동적
- 초기의
- 이메일
- 교전
- 종점
- 기사
- 영어
- Enterprise
- 환경
- 확립 된
- 예
- 경험
- 페이스메이크업
- 가족
- 특색
- 특징
- 금융
- 먼저,
- 유연성
- 초점
- 집중
- 형태
- 앞으로
- 무료
- 기능
- 생성
- GitHub의
- 데
- 도움
- 도움이
- 높은
- 강조
- 하이킹
- 홈
- 방법
- How To
- HTTPS
- 영상
- 구현
- 중대한
- 포함
- 산업
- 정보
- 보험
- 보험 산업
- IT
- 일
- 작업
- 레이블
- 언어
- 넓은
- 최근
- 시작
- Leadership
- 배우기
- 레벨
- 레버리지
- 도서관
- 언어학
- 명부
- 문학
- 하중
- 위치
- 기계 학습
- 기계 번역
- 마스크
- 측정
- 통계
- ML
- 모델
- 모델
- 모니터링
- 배우기
- 자연어
- 자연 언어 처리
- 네트워크
- nlp
- 공고
- 제공
- 주문
- 조직
- 기타
- 성능
- 사진술
- Precision
- 예측
- 예측
- 제시
- 문제
- 생산
- 프로젝트
- 제공
- 제공
- Python
- 파이 토치
- 품질
- 범위
- 실시간
- 현실
- 기록
- 신고
- 보고서
- 응답
- 결과
- 재교육
- 반품
- 역
- 리뷰
- 달리기
- 달리는
- 현자
- 규모
- 스케일링
- 과학
- SDK
- 서비스
- 피복재
- 세트
- 변화
- 비슷한
- 단순, 간단, 편리
- So
- 솔루션
- 스페이스 버튼
- 공간
- 스팸
- 전문적으로
- 미국
- 저장
- 저장
- 지원
- 시스템은
- 목표
- test
- 지원
- 테스트
- 세계
- 생각
- 사고 리더십
- 시간
- 토큰
- 토큰
- 상단
- 토치
- 교통
- 트레이닝
- 번역
- USA
- 관측
- 버지니아의
- 온라인
- 가시성
- 시력
- 기다리다
- 웹
- 웹 서비스
- 위키 백과
- 없이
- 작업
- 워크플로우
- 세계
- 쓰기