Amazon Comprehend 사용자 지정 분류자 PlatoBlockchain Data Intelligence를 사용하여 IT 서비스 요청 분류를 자동화합니다. 수직 검색. 일체 포함.

Amazon Comprehend 사용자 지정 분류기로 IT 서비스 요청 분류 자동화

기업은 종종 대량의 IT 서비스 요청을 처리합니다. 전통적으로 모든 문제에 대해 올바른 범주를 선택해야 하는 부담은 요청자에게 있습니다. 티켓의 수동 오류 또는 오분류는 일반적으로 IT 서비스 요청 해결이 지연됨을 의미합니다. 이는 생산성 감소, 고객 만족도 감소, 서비스 수준 계약(SLA)에 대한 영향 및 광범위한 운영 영향을 초래할 수 있습니다. 기업이 성장함에 따라 올바른 서비스 요청을 올바른 팀에 전달하는 문제가 더욱 중요해집니다. 머신 러닝(ML) 및 인공 지능을 기반으로 하는 접근 방식을 사용하면 끊임없이 진화하는 기업의 요구 사항에 도움이 될 수 있습니다.

지도 ML은 레이블이 지정된 데이터 세트 및 출력을 사용하여 데이터를 분류하거나 결과를 예측하는 방법에 대한 학습 알고리즘을 훈련하는 프로세스입니다. 아마존 이해 은 ML을 사용하여 텍스트에서 귀중한 통찰력과 연결을 발견하는 자연어 처리(NLP) 서비스입니다. 핵심 문구, 엔터티, 감정 분석 등을 추출하기 위해 ML 기반 API를 제공합니다.

이 게시물에서는 다음을 사용하여 IT 서비스 요청을 자동으로 분류하는 데 도움이 될 수 있는 지도형 ML 모델을 구현하는 방법을 보여줍니다. 아마존 종합 맞춤형 분류. Amazon Comprehend 사용자 지정 분류를 사용하면 ML 기반 NLP 솔루션을 구축하는 데 필요한 기술 세트 없이도 특정 요구 사항에 맞게 Amazon Comprehend를 사용자 지정할 수 있습니다. 자동 ML 또는 AutoML을 사용하면 Amazon Comprehend 사용자 지정 분류가 사용자가 제공한 교육 데이터를 사용하여 사용자를 대신하여 사용자 지정 NLP 모델을 빌드합니다.

솔루션 개요

IT 서비스 요청 분류를 설명하기 위해 이 솔루션은 다음을 사용합니다. SEOSS 데이터세트. 이 데이터세트는 많은 수의 유형화된 아티팩트와 이들 간의 추적 링크를 포함하는 33개의 오픈 소스 소프트웨어 프로젝트로 구성된 체계적으로 검색된 데이터세트입니다. 이 솔루션은 최종 사용자가 보고한 33개의 오픈 소스 프로젝트, 요약 및 설명의 문제 데이터를 사용하여 Amazon Comprehend를 사용하여 사용자 지정 분류기 모델을 구축합니다.

이 게시물은 다음을 사용하여 솔루션을 구현하고 배포하는 방법을 보여줍니다. AWS 클라우드 개발 키트 (AWS CDK) 아마존 가상 프라이빗 클라우드 (Amazon VPC) 프라이빗 서브넷만으로 구성된 환경. 또한 코드를 사용하여 AWS CDK를 사용하는 방법을 보여줍니다. 공급자 프레임워크, 제공자를 구현하기 위한 미니 프레임워크 AWS 클라우드 포메이션 Amazon Comprehend 엔드포인트와 같은 사용자 지정 리소스를 생성, 업데이트 또는 삭제하기 위한 사용자 지정 리소스. Amazon Comprehend 엔드포인트에는 클라이언트 시스템 또는 타사 애플리케이션에 대한 실시간 추론에 사용자 지정 모델을 사용할 수 있도록 하는 관리형 리소스가 포함되어 있습니다. 그만큼 이 솔루션의 코드 Github에서 사용할 수 있습니다.

AWS CDK를 사용하여 솔루션의 인프라, 애플리케이션 코드 및 구성을 배포합니다. 또한 AWS 계정과 AWS 리소스를 생성할 수 있는 기능이 필요합니다. AWS CDK를 사용하여 프라이빗 서브넷이 있는 VPC와 같은 AWS 리소스를 생성합니다. Amazon VPC 엔드포인트, 아마존 탄성 파일 시스템 (아마존 EFS), 아마존 단순 알림 서비스 (Amazon SNS) 화제, 아마존 단순 스토리지 서비스 (Amazon S3) 버킷, Amazon S3 이벤트 알림AWS 람다 기능. 집합적으로 이러한 AWS 리소스는 사용자 지정 분류기 모델을 구축하고 훈련하는 데 사용하는 훈련 스택을 구성합니다.

이러한 AWS 리소스를 생성한 후 SEOSS 데이터 세트를 다운로드하고 솔루션에서 생성한 S3 버킷에 데이터 세트를 업로드합니다. AWS 리전 us-east-2에 이 솔루션을 배포하는 경우 S3 버킷 이름 형식은 다음과 같습니다. comprehendcustom--us-east-2-s3stack. 이 솔루션은 Amazon S3 다중 파트 업로드 트리거를 사용하여 입력 데이터의 사전 처리를 시작하는 Lambda 함수를 호출하고 사전 처리된 데이터를 사용하여 Amazon Comprehend 사용자 지정 분류자를 훈련시켜 사용자 지정 분류자 모델을 생성합니다. 그런 다음 사용자 지정 분류자 모델의 Amazon 리소스 이름(ARN)을 사용하여 AWS CDK를 사용하여 Amazon Comprehend 엔드포인트를 생성하는 추론 스택을 생성합니다. 공급자 프레임워크, 그런 다음 타사 응용 프로그램 또는 클라이언트 시스템에서 추론에 사용할 수 있습니다.

다음 다이어그램은 훈련 스택의 아키텍처를 보여줍니다.

워크플로 단계는 다음과 같습니다.

  1. 훈련 스택 배포 프로세스의 일부로 생성된 S3 버킷에 SEOSS 데이터 세트를 업로드합니다. 이렇게 하면 호출하는 이벤트 트리거가 생성됩니다. etl_lambda 기능.
  2. XNUMXD덴탈의 etl_lambda 함수는 Amazon S3에서 Amazon EFS로 원시 데이터 세트를 다운로드합니다.
  3. XNUMXD덴탈의 etl_lambda 함수는 SEOSS 데이터셋의 데이터 전처리 작업을 수행합니다.
  4. 함수 실행이 완료되면 다음과 같이 변환된 데이터를 업로드합니다. prepped_data 접두사를 S3 버킷에 추가합니다.
  5. 변환된 데이터의 업로드가 완료되면 성공적인 ETL 완료 메시지가 Amazon SNS로 전송됩니다.
  6. Amazon Comprehend에서는 다중 클래스 또는 다중 레이블의 두 가지 모드를 사용하여 문서를 분류할 수 있습니다. 다중 클래스 모드는 각 문서에 대해 하나의 클래스만 식별하고 다중 레이블 모드는 각 문서에 대해 하나 이상의 레이블을 식별합니다. 각 문서에 대해 단일 클래스를 식별하기를 원하기 때문에 다중 클래스 모드에서 사용자 정의 분류기 모델을 학습합니다. Amazon SNS는 train_classifier_lambda 다중 클래스 모드에서 Amazon Comprehend 분류자 교육을 시작하는 함수입니다.
  7. XNUMXD덴탈의 train_classifier_lambda 함수는 Amazon Comprehend 사용자 지정 분류자 교육을 시작합니다.
  8. Amazon Comprehend는 변환된 데이터를 prepped_data Amazon S3에서 접두사를 사용하여 사용자 지정 분류자 모델을 훈련합니다.
  9. 모델 교육이 완료되면 Amazon Comprehend는 model.tar.gz 에 제출 output_data S3 버킷의 접두사. 이 사용자 지정 분류기 모델을 학습하는 데 걸리는 평균 완료 시간은 약 10시간입니다.
  10. Amazon S3 업로드 트리거는 extract_comprehend_model_name_lambda 사용자 지정 분류자 모델 ARN을 검색하는 함수입니다.
  11. 이 함수는 S3 이벤트 페이로드 및 응답에서 사용자 지정 분류기 모델 ARN을 추출합니다. list-document-classifiers 요구.
  12. 이 함수는 사용자 지정 분류자 모델 ARN을 교육 스택 생성 프로세스의 일부로 이전에 구독한 이메일 주소로 보냅니다. 그런 다음 이 ARN을 사용하여 추론 스택을 배포합니다.

이 배포는 다음 그림과 같이 추론 스택을 생성합니다. 추론 스택은 다음으로 보호되는 REST API를 제공합니다. AWS 자격 증명 및 액세스 관리 (IAM) 권한 부여자, 그러면 타사 애플리케이션 또는 클라이언트 시스템에서 제공되는 입력 텍스트를 기반으로 레이블의 신뢰도 점수를 생성하는 데 사용할 수 있습니다.

추론 스택 아키텍처

사전 조건

이 데모의 경우 다음 전제 조건이 있어야 합니다.

  • An AWS 계정.
  • 파이썬 3.7 이상, Node.js를힘내 개발 기계에서. AWS CDK는 Node.js의 특정 버전(>=10.13.0, 버전 13.0.0 – 13.6.0 제외)을 사용합니다. 활성 LTS(장기 지원) 버전을 권장합니다.
    Node.js의 활성 LTS 버전을 설치하려면 다음을 사용할 수 있습니다. 설치 스크립트 for nvm 사용 nvm설치 Node.js LTS 버전. 선택한 운영 체제에 따라 패키지 관리자를 통해 현재 활성 LTS Node.js를 설치할 수도 있습니다.

    macOS의 경우 다음을 사용하여 패키지 관리자를 통해 Node.js를 설치할 수 있습니다. 명령.

    Windows의 경우 다음을 사용하여 패키지 관리자를 통해 Node.js를 설치할 수 있습니다. 명령.

  • AWS CDK v2는 다음을 사용하는 경우 사전 설치됩니다. AWS 클라우드9 IDE. AWS Cloud9 IDE를 사용하는 경우 이 단계를 건너뛸 수 있습니다. 개발 머신에 AWS CDK가 설치되어 있지 않은 경우 Node Package Manager 명령을 사용하여 AWS CDK v2를 전역적으로 설치합니다. npm install -g aws-cdk. 이 단계에서는 개발 머신에 Node.js가 설치되어 있어야 합니다.
  • AWS CDK를 사용하여 AWS 리소스에 액세스하고 생성하도록 AWS 자격 증명을 구성합니다. 지침은 다음을 참조하십시오. 자격 증명 및 지역 지정.
  • 를 다운로드 SEOSS 데이터세트 요구 사항, 버그 보고서, 코드 기록 및 33개 오픈 소스 소프트웨어 프로젝트의 추적 링크로 구성됩니다. 파일 저장 dataverse_files.zip 로컬 컴퓨터에서.

SEOSS 데이터세트

AWS CDK 교육 스택 배포

AWS CDK 배포의 경우 교육 스택부터 시작합니다. 다음 단계를 완료하십시오.

  1. GitHub 저장소를 복제합니다.
$ git clone https://github.com/aws-samples/amazon-comprehend-custom-automate-classification-it-service-request.git

  1. 로 이동 amazon-comprehend-custom-automate-classification-it-service-request 폴더 :
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

다음 명령은 모두 내에서 실행됩니다. amazon-comprehend-custom-automate-classification-it-service-request 디렉토리.

  1. amazon-comprehend-custom-automate-classification-it-service-request 디렉터리에서 Python 가상 환경을 초기화하고 pip를 사용하여 requirements.txt를 설치합니다.
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. 특정 AWS 계정 및 리전에서 AWS CDK를 처음 사용하는 경우 다음 지침을 참조하십시오. AWS CDK 환경 부트스트랩:
$ cdk bootstrap aws:///

  1. 다음을 사용하여 이 솔루션에 대한 CloudFormation 템플릿을 합성합니다. cdk synth 사용 cdk deploy 앞서 언급한 AWS 리소스를 생성하려면:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

입력 후 cdk deploy, AWS CDK는 cdk deploy 명령에서 호출된 각 스택에 대한 변경 사항을 배포할지 여부를 묻습니다.

  1. 엔터 버튼 y 각 스택 생성 프롬프트에 대해 cdk 배포 단계에서 이러한 스택을 생성합니다. cdk 배포의 일부로 생성된 SNS 주제에 사용자가 제공한 이메일 주소를 구독합니다.
  2. cdk 배포가 성공적으로 완료되면 이라는 폴더를 만듭니다. raw_data S3 버킷에서 comprehendcustom---s3stack.
  3. SEOSS 데이터세트 업로드 dataverse_files.zip 이전에 이 폴더에 다운로드했습니다.

업로드가 완료된 후 솔루션은 etl_lambda Amazon S3 이벤트 트리거를 사용하여 ETL(추출, 변환 및 로드) 프로세스를 시작합니다. ETL 프로세스가 성공적으로 완료된 후 메시지가 SNS 주제로 전송되어 train_classifier_lambda 기능. 이 함수는 Amazon Comprehend 사용자 지정 분류자 모델 교육을 트리거합니다. 전체 SEOSS 데이터 세트에서 모델을 교육하는지 여부에 따라 교육에 최대 10시간이 걸릴 수 있습니다. 교육 프로세스가 완료되면 Amazon Comprehend는 model.tar.gz 에 제출 output_data S3 버킷의 접두사.

이 업로드는 extract_comprehend_model_name_lambda 사용자 지정 분류자 모델 ARN을 추출하고 이전에 구독한 이메일 주소로 보내는 S3 이벤트 트리거를 사용하여 함수를 생성합니다. 그런 다음 이 사용자 지정 분류기 모델 ARN을 사용하여 추론 스택을 생성합니다. 모델 교육이 완료되면 Amazon Comprehend 콘솔의 버전 세부 정보 섹션으로 이동하거나(다음 스크린샷 참조) Amazon Comprehend를 사용하여 사용자 지정 분류기 모델의 성능 지표를 볼 수 있습니다. 보토3 SDK.

성능 측정항목

AWS CDK 추론 스택 배포

이제 추론 스택을 배포할 준비가 되었습니다.

  1. 수신한 이메일에서 사용자 지정 분류자 모델 ARN을 복사하고 다음을 사용합니다. cdk deploy 추론 스택을 생성하는 명령입니다.

이 명령은 IAM 권한 부여자로 보호되는 API Gateway REST API를 배포합니다. 이 API는 execute-api:Invoke IAM 권한만 있는 AWS 사용자 ID 또는 IAM 역할로 추론에 사용합니다. 다음 cdk deploy 명령은 추론 스택을 배포합니다. 이 스택은 AWS CDK를 사용합니다. 공급자 프레임워크 Amazon Comprehend 엔드포인트를 사용자 지정 리소스로 생성하여 cdk deploy 및 cdk destroy 명령을 사용하여 추론 스택 수명 주기의 일부로 Amazon Comprehend 엔드포인트 생성, 삭제 및 업데이트를 수행할 수 있습니다.

최대 10시간이 소요될 수 있는 모델 교육이 완료된 후 다음 명령을 실행해야 하므로 이전 단계에서 초기화한 Python 가상 환경에 있는지 확인하십시오. amazon-comprehend-custom-automate-classification-it-service-request 예배 규칙서:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

예 :

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=arn:aws:comprehend:us-east-2:111122223333:document-classifier/ComprehendCustomClassifier-11111111-2222-3333-4444-abc5d67e891f/version/v1

  1. cdk deploy 명령이 성공적으로 완료되면 APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI 콘솔 출력에서 ​​값을 찾고 이 REST API를 사용하여 execute-api:Invoke IAM 권한. us-east-2에서 이 솔루션을 실행하는 경우 이 REST API의 형식은 다음과 같습니다. https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

또는 테스트 클라이언트를 사용할 수 있습니다. apiclientinvoke.py GitHub 리포지토리에서 사용자 지정 분류자 모델에 요청을 보냅니다. apiclientinvoke.py를 사용하기 전에 다음 전제 조건이 있는지 확인하십시오.

  • 당신은 boto3requests 클라이언트 시스템에서 pip를 사용하여 설치된 Python 패키지.
  • Boto3 자격 증명을 구성했습니다. 기본적으로 테스트 클라이언트는 default라는 이름의 프로필이 존재하고 있다고 가정합니다. execute-api:Invoke REST API에 대한 IAM 권한.
  • SigV4Auth는 REST API가 배포된 리전을 가리킵니다. 업데이트 가치 us-east-2 in apiclientinvoke.py REST API가 us-east-2에 배포된 경우.
  • 당신은 할당했습니다 raw_data 클래스 예측 또는 분류 요청을 수행하려는 텍스트가 있는 변수:
raw_data="""Spark is a unified analytics engine for large-scale data processing. It provides high-level APIs in Scala, Java, Python, and R, and an optimized engine that supports general computation graphs for data analysis."""

  • 당신은 할당했습니다 restapi 이전에 복사한 REST API가 있는 변수:

restapi="https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1"

  1. 실행 apiclientinvoke.py 이전 업데이트 후:
$ python3 apiclientinvoke.py

사용자 정의 분류기 모델에서 다음 응답을 받습니다.

{
 "statusCode": 200,
 "body": [
	{
	 "Name": "SPARK",
	 "Score": 0.9999773502349854
	},
	{
	 "Name": "HIVE",
	 "Score": 1.1613215974648483e-05
	},
	{
	 "Name": "DROOLS",
	 "Score": 1.1110682862636168e-06
	}
   ]
}

Amazon Comprehend는 올바르게 귀속된 각 레이블에 대한 신뢰도 점수를 반환합니다. 서비스가 레이블에 대해 매우 확신하는 경우 점수는 1에 더 가깝습니다. 따라서 SEOSS 데이터 세트를 사용하여 훈련된 Amazon Comprehend 사용자 지정 분류기 모델의 경우 사용자 지정 분류기 모델은 텍스트가 클래스 SPARK에 속한다고 예측합니다. 그런 다음 Amazon Comprehend 사용자 지정 분류기 모델에서 반환된 이 분류를 사용하여 IT 서비스 요청을 분류하거나 IT 서비스 요청의 올바른 범주를 예측할 수 있으므로 수동 오류나 서비스 요청의 오분류를 줄일 수 있습니다.

정리

훈련 스택 및 추론 스택의 일부로 생성된 이 게시물에서 생성된 모든 리소스를 정리하려면 다음 명령을 사용합니다. 이 명령은 이전 cdk 배포 명령의 일부로 생성된 모든 AWS 리소스를 삭제합니다.

$ cdk destroy --all

결론

이 게시물에서는 기업이 Amazon Comprehend 사용자 지정 분류를 사용하여 감독형 ML 모델을 구현하여 최종 사용자가 제출한 요청의 제목 또는 설명을 기반으로 IT 서비스 요청의 범주를 예측하는 방법을 보여주었습니다. 사용자 지정 분류기 모델을 빌드하고 교육한 후 끝점을 만들어 사용자 지정 분류에 대한 실시간 분석을 실행할 수 있습니다. 이 모델을 Amazon Comprehend 엔드포인트에 배포한 후 IT 서비스 관리 도구를 포함하여 타사 애플리케이션 또는 기타 클라이언트 시스템에서 실시간 추론을 실행하는 데 사용할 수 있습니다. 그런 다음 이 추론을 사용하여 결함 범주를 예측하고 티켓의 수동 오류 또는 잘못된 분류를 줄일 수 있습니다. 이를 통해 티켓 해결 지연을 줄이고 해결 정확도와 고객 생산성을 높여 궁극적으로 고객 만족도를 높일 수 있습니다.

이 게시물의 개념을 비즈니스 또는 IT 티켓을 비즈니스 부서, 고객 서비스 에이전트 및 Tier 2/3 IT 지원과 같은 다양한 내부 팀으로 라우팅하는 것과 같은 다른 사용 사례로 확장할 수 있습니다. 수단.

참고자료

  • 라스, 마이클; Mäder, Patrick, 2019, "SEOSS 데이터 세트 - 전체 프로젝트에 대한 요구 사항, 버그 보고서, 코드 기록 및 추적 링크", https://doi.org/10.7910/DVN/PDDZ4Q, 하버드 데이터버스, V1

저자에 관하여

Amazon Comprehend 사용자 지정 분류자 PlatoBlockchain Data Intelligence를 사용하여 IT 서비스 요청 분류를 자동화합니다. 수직 검색. 일체 포함.아르납 차크라보르티 오하이오주 신시내티에 기반을 둔 AWS의 선임 솔루션 아키텍트입니다. 그는 엔터프라이즈 및 솔루션 아키텍처, 데이터 분석, 서버리스 및 머신 러닝의 주제에 열정적입니다. 여가 시간에는 영화, 여행 쇼, 스포츠 관람을 즐깁니다.

바이러스의Amazon Comprehend 사용자 지정 분류자 PlatoBlockchain Data Intelligence를 사용하여 IT 서비스 요청 분류를 자동화합니다. 수직 검색. 일체 포함. 데 사이 AWS의 수석 솔루션 아키텍트입니다. 정보 기술 분야에서 25년 이상의 경험을 바탕으로 그는 고객이 AWS를 채택하고 아키텍처를 현대화하도록 돕고 있습니다. 그는 하이킹을 좋아하고 AWS의 모든 것에 대해 고객과 함께 깊이 다이빙하는 것을 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습