Tự động phân loại các yêu cầu dịch vụ CNTT bằng bộ phân loại tùy chỉnh PlatoBlockchain Data Intelligence của Amazon Comprehend. Tìm kiếm dọc. Ái.

Tự động hóa việc phân loại các yêu cầu dịch vụ CNTT với bộ phân loại tùy chỉnh Toàn diện của Amazon

Các doanh nghiệp thường phải xử lý khối lượng lớn yêu cầu dịch vụ CNTT. Theo truyền thống, gánh nặng đặt lên vai người yêu cầu là phải chọn đúng danh mục cho mọi vấn đề. Lỗi thủ công hoặc phân loại sai phiếu thường dẫn đến sự chậm trễ trong việc giải quyết yêu cầu dịch vụ CNTT. Điều này có thể dẫn đến giảm năng suất, giảm sự hài lòng của khách hàng, ảnh hưởng đến các thỏa thuận cấp độ dịch vụ (SLA) và tác động đến hoạt động rộng hơn. Khi doanh nghiệp của bạn phát triển, vấn đề nhận được yêu cầu dịch vụ phù hợp đến đúng nhóm càng trở nên quan trọng hơn. Sử dụng phương pháp tiếp cận dựa trên máy học (ML) và trí tuệ nhân tạo có thể đáp ứng nhu cầu ngày càng phát triển của doanh nghiệp bạn.

ML được giám sát là một quy trình sử dụng các bộ dữ liệu và kết quả đầu ra được gắn nhãn để đào tạo các thuật toán học tập về cách phân loại dữ liệu hoặc dự đoán kết quả. Amazon hiểu là dịch vụ xử lý ngôn ngữ tự nhiên (NLP) sử dụng ML để khám phá những hiểu biết sâu sắc và kết nối có giá trị trong văn bản. Nó cung cấp các API được cung cấp bởi ML để trích xuất các cụm từ khóa, thực thể, phân tích tình cảm, v.v.

Trong bài đăng này, chúng tôi chỉ cho bạn cách triển khai mô hình ML được giám sát có thể giúp tự động phân loại các yêu cầu dịch vụ CNTT bằng cách sử dụng Phân loại tùy chỉnh của Amazon Compreh. Phân loại tùy chỉnh của Amazon Comprehend giúp bạn tùy chỉnh Amazon Comprehend theo yêu cầu cụ thể của bạn mà không cần có bộ kỹ năng cần thiết để xây dựng các giải pháp NLP dựa trên ML. Với ML tự động hoặc AutoML, phân loại tùy chỉnh của Amazon Comprehend thay mặt bạn xây dựng các mô hình NLP tùy chỉnh bằng cách sử dụng dữ liệu đào tạo mà bạn cung cấp.

Tổng quan về giải pháp

Để minh họa việc phân loại yêu cầu dịch vụ CNTT, giải pháp này sử dụng Tập dữ liệu SEOSS. Tập dữ liệu này là tập dữ liệu được truy xuất một cách có hệ thống bao gồm 33 dự án phần mềm nguồn mở chứa một số lượng lớn các tạo phẩm được đánh máy và theo dõi các liên kết giữa chúng. Giải pháp này sử dụng dữ liệu vấn đề từ 33 dự án nguồn mở, bản tóm tắt và mô tả do người dùng cuối báo cáo để xây dựng mô hình phân loại tùy chỉnh bằng Amazon Comprehend.

Bài đăng này trình bày cách triển khai và triển khai giải pháp bằng cách sử dụng Bộ công cụ phát triển đám mây AWS (AWS CDK) ở trạng thái biệt lập Đám mây riêng ảo Amazon Môi trường (Amazon VPC) chỉ bao gồm các mạng con riêng tư. Chúng tôi cũng sử dụng mã để minh họa cách bạn có thể sử dụng AWS CDK khung nhà cung cấp, một khung nhỏ để triển khai nhà cung cấp cho Hình thành đám mây AWS tài nguyên tùy chỉnh để tạo, cập nhật hoặc xóa tài nguyên tùy chỉnh, chẳng hạn như điểm cuối Amazon Comprehend. Điểm cuối Amazon Comprehend bao gồm các tài nguyên được quản lý giúp mô hình tùy chỉnh của bạn có sẵn để suy luận theo thời gian thực cho máy khách hoặc ứng dụng của bên thứ ba. Các mã cho giải pháp này có sẵn trên Github.

Bạn sử dụng AWS CDK để triển khai cơ sở hạ tầng, mã ứng dụng và cấu hình cho giải pháp. Bạn cũng cần có tài khoản AWS và khả năng tạo tài nguyên AWS. Bạn sử dụng AWS CDK để tạo các tài nguyên AWS như VPC có mạng con riêng, Điểm cuối của Amazon VPC, Hệ thống tệp đàn hồi Amazon (Amazon EFS), một Dịch vụ thông báo đơn giản của Amazon (Amazon SNS), chủ đề Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3), Thông báo sự kiện Amazon S3AWS Lambda chức năng. Nói chung, các tài nguyên AWS này tạo thành ngăn xếp đào tạo mà bạn sử dụng để xây dựng và huấn luyện mô hình phân loại tùy chỉnh.

Sau khi tạo các tài nguyên AWS này, bạn tải xuống tập dữ liệu SEOSS và tải tập dữ liệu lên bộ chứa S3 do giải pháp tạo ra. Nếu bạn đang triển khai giải pháp này ở Khu vực AWS us-east-2, định dạng của tên nhóm S3 là comprehendcustom--us-east-2-s3stack. Giải pháp này sử dụng trình kích hoạt tải lên nhiều phần của Amazon S3 để gọi hàm Lambda bắt đầu quá trình xử lý trước dữ liệu đầu vào và sử dụng dữ liệu được xử lý trước để huấn luyện trình phân loại tùy chỉnh Amazon Comprehend nhằm tạo ra mô hình phân loại tùy chỉnh. Sau đó, bạn sử dụng Tên tài nguyên Amazon (ARN) của mô hình phân loại tùy chỉnh để tạo ngăn xếp suy luận, tạo ra điểm cuối Amazon Comprehend bằng AWS CDK khung nhà cung cấp, sau đó bạn có thể sử dụng để suy luận từ ứng dụng hoặc máy khách của bên thứ ba.

Sơ đồ sau minh họa kiến ​​trúc của ngăn xếp huấn luyện.

Các bước quy trình làm việc như sau:

  1. Tải tập dữ liệu SEOSS lên bộ chứa S3 được tạo như một phần của quy trình triển khai ngăn xếp đào tạo. Điều này tạo ra một trình kích hoạt sự kiện gọi ra etl_lambda chức năng.
  2. Sản phẩm etl_lambda hàm tải tập dữ liệu thô từ Amazon S3 xuống Amazon EFS.
  3. Sản phẩm etl_lambda Hàm thực hiện nhiệm vụ tiền xử lý dữ liệu của tập dữ liệu SEOSS.
  4. Khi quá trình thực thi hàm hoàn tất, nó sẽ tải lên dữ liệu đã chuyển đổi với prepped_data tiền tố vào nhóm S3.
  5. Sau khi quá trình tải lên dữ liệu đã chuyển đổi hoàn tất, một thông báo hoàn thành ETL thành công sẽ được gửi tới Amazon SNS.
  6. Trong Amazon Comprehend, bạn có thể phân loại tài liệu của mình bằng hai chế độ: nhiều lớp hoặc nhiều nhãn. Chế độ nhiều lớp xác định một và chỉ một lớp cho mỗi tài liệu và chế độ nhiều nhãn xác định một hoặc nhiều nhãn cho mỗi tài liệu. Vì muốn xác định một lớp duy nhất cho mỗi tài liệu nên chúng tôi huấn luyện mô hình phân loại tùy chỉnh ở chế độ nhiều lớp. Amazon SNS kích hoạt train_classifier_lambda chức năng khởi tạo quá trình đào tạo bộ phân loại Amazon Comprehend ở chế độ nhiều lớp.
  7. Sản phẩm train_classifier_lambda bắt đầu quá trình đào tạo bộ phân loại tùy chỉnh Amazon Comprehend.
  8. Amazon Comprehend tải xuống dữ liệu đã chuyển đổi từ prepped_data tiền tố trong Amazon S3 để huấn luyện mô hình phân loại tùy chỉnh.
  9. Khi quá trình đào tạo mô hình hoàn tất, Amazon Comprehend sẽ tải lên model.tar.gz nộp vào output_data tiền tố của nhóm S3. Thời gian hoàn thành trung bình để huấn luyện mô hình phân loại tùy chỉnh này là khoảng 10 giờ.
  10. Trình kích hoạt tải lên Amazon S3 gọi extract_comprehend_model_name_lambda hàm truy xuất mô hình phân loại tùy chỉnh ARN.
  11. Hàm trích xuất ARN mô hình phân loại tùy chỉnh từ tải trọng sự kiện S3 và phản hồi của list-document-classifiers gọi.
  12. Hàm gửi ARN mô hình phân loại tùy chỉnh đến địa chỉ email mà bạn đã đăng ký trước đó như một phần của quy trình tạo ngăn xếp đào tạo. Sau đó, bạn sử dụng ARN này để triển khai ngăn xếp suy luận.

Việc triển khai này tạo ra ngăn xếp suy luận, như thể hiện trong hình dưới đây. Ngăn suy luận cung cấp cho bạn REST API được bảo mật bởi một Quản lý truy cập và nhận dạng AWS (IAM), sau đó bạn có thể sử dụng để tạo điểm tin cậy của nhãn dựa trên văn bản đầu vào được cung cấp từ ứng dụng hoặc máy khách của bên thứ ba.

Kiến trúc ngăn xếp suy luận

Điều kiện tiên quyết

Đối với bản demo này, bạn phải có các điều kiện tiên quyết sau:

  • An Tài khoản AWS.
  • Python 3.7 trở lên, Node.jsđi trong cỗ máy phát triển. AWS CDK sử dụng các phiên bản cụ thể của Node.js (>=10.13.0, ngoại trừ phiên bản 13.0.0 – 13.6.0). Nên sử dụng phiên bản hỗ trợ dài hạn đang hoạt động (LTS).
    Để cài đặt phiên bản LTS đang hoạt động của Node.js, bạn có thể sử dụng cách sau cài đặt tập lệnh cho nvm Và sử dụng nvm đến cài đặt, dựng lên phiên bản LTS của Node.js. Bạn cũng có thể cài đặt LTS Node.js đang hoạt động hiện tại thông qua trình quản lý gói tùy thuộc vào hệ điều hành bạn chọn.

    Đối với macOS, bạn có thể cài đặt Node.js thông qua trình quản lý gói bằng cách sử dụng thông tin sau hướng dẫn.

    Đối với Windows, bạn có thể cài đặt Node.js thông qua trình quản lý gói bằng cách sử dụng cách sau hướng dẫn.

  • AWS CDK v2 được cài đặt sẵn nếu bạn đang sử dụng Đám mây AWS9 IDE. Nếu bạn đang sử dụng AWS Cloud9 IDE, bạn có thể bỏ qua bước này. Nếu bạn chưa cài đặt AWS CDK trong máy phát triển, hãy cài đặt AWS CDK v2 trên toàn cầu bằng lệnh Node Package Manager npm install -g aws-cdk. Bước này yêu cầu cài đặt Node.js trong máy phát triển.
  • Định cấu hình thông tin đăng nhập AWS của bạn để truy cập và tạo tài nguyên AWS bằng AWS CDK. Để biết hướng dẫn, hãy tham khảo Chỉ định thông tin đăng nhập và khu vực.
  • Tải về Tập dữ liệu SEOSS bao gồm các yêu cầu, báo cáo lỗi, lịch sử mã và liên kết theo dõi của 33 dự án phần mềm nguồn mở. Lưu các tập tin dataverse_files.zip trên máy cục bộ của bạn.

Tập dữ liệu SEOSS

Triển khai kho đào tạo AWS CDK

Để triển khai AWS CDK, chúng tôi bắt đầu với ngăn xếp đào tạo. Hoàn thành các bước sau:

  1. Sao chép kho lưu trữ GitHub:
$ git clone https://github.com/aws-samples/amazon-comprehend-custom-automate-classification-it-service-request.git

  1. Điều hướng đến amazon-comprehend-custom-automate-classification-it-service-request thư mục:
$ cd amazon-comprehend-custom-automate-classification-it-service-request/

Tất cả các lệnh sau được chạy trong amazon-comprehend-custom-automate-classification-it-service-request thư mục.

  1. Trong thư mục amazon-comprehend-custom-automate-classification-it-service-request, khởi tạo môi trường ảo Python và cài đặt require.txt bằng pip:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

  1. Nếu bạn đang sử dụng AWS CDK trong một tài khoản và Khu vực AWS cụ thể lần đầu tiên, hãy xem hướng dẫn dành cho khởi động môi trường CDK AWS của bạn:
$ cdk bootstrap aws:///

  1. Tổng hợp các mẫu CloudFormation cho giải pháp này bằng cách sử dụng cdk synth Và sử dụng cdk deploy để tạo tài nguyên AWS được đề cập trước đó:
$ cdk synth
$ cdk deploy VPCStack EFSStack S3Stack SNSStack ExtractLoadTransformEndPointCreateStack --parameters SNSStack:emailaddressarnnotification=

Sau khi bạn nhập cdk deploy, AWS CDK sẽ nhắc xem bạn có muốn triển khai các thay đổi cho từng ngăn xếp được gọi ra trong lệnh triển khai cdk hay không.

  1. đăng ký hạng mục thi y đối với mỗi lời nhắc tạo ngăn xếp, thì bước triển khai cdk sẽ tạo ra các ngăn xếp này. Đăng ký địa chỉ email do bạn cung cấp cho chủ đề SNS được tạo như một phần của quá trình triển khai cdk.
  2. Sau khi triển khai cdk hoàn tất thành công, hãy tạo một thư mục có tên raw_data trong nhóm S3 comprehendcustom---s3stack.
  3. Tải lên tập dữ liệu SEOSS dataverse_files.zip mà bạn đã tải xuống trước đó vào thư mục này.

Sau khi quá trình tải lên hoàn tất, giải pháp sẽ gọi etl_lambda sử dụng trình kích hoạt sự kiện Amazon S3 để bắt đầu quá trình trích xuất, chuyển đổi và tải (ETL). Sau khi quá trình ETL hoàn tất thành công, một tin nhắn sẽ được gửi đến chủ đề SNS, gọi ra train_classifier_lambda chức năng. Hàm này kích hoạt quá trình đào tạo mô hình phân loại tùy chỉnh của Amazon Comprehend. Tùy thuộc vào việc bạn có đào tạo mô hình của mình trên bộ dữ liệu SEOSS hoàn chỉnh hay không, quá trình đào tạo có thể mất tới 10 giờ. Khi quá trình đào tạo hoàn tất, Amazon Comprehend sẽ tải lên model.tar.gz nộp vào output_data tiền tố trong nhóm S3.

Tải lên này kích hoạt extract_comprehend_model_name_lambda bằng cách sử dụng trình kích hoạt sự kiện S3 để trích xuất ARN mô hình phân loại tùy chỉnh và gửi nó đến địa chỉ email mà bạn đã đăng ký trước đó. Sau đó, mô hình phân loại tùy chỉnh ARN này được sử dụng để tạo ngăn xếp suy luận. Khi quá trình đào tạo mô hình hoàn tất, bạn có thể xem số liệu hiệu suất của mô hình phân loại tùy chỉnh bằng cách điều hướng đến phần chi tiết phiên bản trong bảng điều khiển Amazon Comprehend (xem ảnh chụp màn hình sau) hoặc bằng cách sử dụng Amazon Comprehend SDK Boto3.

Chỉ số hiệu suất

Triển khai ngăn xếp suy luận AWS CDK

Bây giờ bạn đã sẵn sàng triển khai ngăn xếp suy luận.

  1. Sao chép mô hình phân loại tùy chỉnh ARN từ email bạn nhận được và sử dụng thông tin sau cdk deploy lệnh để tạo ngăn xếp suy luận.

Lệnh này triển khai API REST của Cổng API được bảo mật bởi người ủy quyền IAM mà bạn sử dụng để suy luận với ID người dùng AWS hoặc vai trò IAM chỉ có đặc quyền exec-api:Gọi IAM. Lệnh triển khai cdk sau đây sẽ triển khai ngăn xếp suy luận. Ngăn xếp này sử dụng AWS CDK khung nhà cung cấp để tạo điểm cuối Amazon Comprehend dưới dạng tài nguyên tùy chỉnh, để việc tạo, xóa và cập nhật điểm cuối Amazon Comprehend có thể được thực hiện như một phần của vòng đời ngăn xếp suy luận bằng cách sử dụng lệnh cdk triển khai và lệnh hủy cdk.

Vì bạn cần chạy lệnh sau sau khi đào tạo mô hình hoàn tất, quá trình này có thể mất tới 10 giờ, nên hãy đảm bảo rằng bạn đang ở trong môi trường ảo Python mà bạn đã khởi tạo ở bước trước đó và trong amazon-comprehend-custom-automate-classification-it-service-request danh mục:

$ cdk deploy APIGWInferenceStack --parameters APIGWInferenceStack:documentclassifierarn=

Ví dụ:

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

  1. Sau cdk deploy lệnh hoàn tất thành công, sao chép APIGWInferenceStack.ComprehendCustomClassfierInvokeAPI giá trị từ đầu ra của bảng điều khiển và sử dụng API REST này để tạo suy luận từ máy khách hoặc ứng dụng của bên thứ ba có execute-api:Invoke Đặc quyền IAM. Nếu bạn đang chạy giải pháp này trong us-east-2, định dạng của API REST này là https://.execute-api.us-east-2.amazonaws.com/prod/invokecomprehendV1.

Ngoài ra, bạn có thể sử dụng ứng dụng khách thử nghiệm apiclientinvoke.py từ kho lưu trữ GitHub để gửi yêu cầu đến mô hình phân loại tùy chỉnh. Trước khi sử dụng apiclientinvoke.py, hãy đảm bảo có sẵn các điều kiện tiên quyết sau:

  • Bạn có boto3requests Gói Python được cài đặt bằng pip trên máy khách.
  • Bạn đã định cấu hình thông tin xác thực Boto3. Theo mặc định, máy khách thử nghiệm giả định rằng có một cấu hình có tên mặc định và nó có execute-api:Invoke Đặc quyền IAM trên API REST.
  • SigV4Auth trỏ đến Vùng nơi API REST được triển khai. Cập nhật có giá trị đối với us-east-2 in apiclientinvoke.py nếu API REST của bạn được triển khai ở us-east-2.
  • Bạn đã chỉ định raw_data biến có văn bản mà bạn muốn đưa ra dự đoán lớp hoặc yêu cầu phân loại:
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."""

  • Bạn đã chỉ định restapi biến có API REST được sao chép trước đó:

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

  1. Chạy apiclientinvoke.py sau các bản cập nhật trước:
$ python3 apiclientinvoke.py

Bạn nhận được phản hồi sau từ mô hình phân loại tùy chỉnh:

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

Amazon Comprehend trả về điểm tin cậy cho từng nhãn được gán chính xác. Nếu dịch vụ có độ tin cậy cao về nhãn thì điểm sẽ gần bằng 1. Do đó, đối với mô hình phân loại tùy chỉnh Amazon Comprehend được đào tạo bằng tập dữ liệu SEOSS, mô hình phân loại tùy chỉnh sẽ dự đoán rằng văn bản thuộc lớp SPARK. Sau đó, sự phân loại này được mô hình phân loại tùy chỉnh Amazon Comprehend trả về có thể được sử dụng để phân loại các yêu cầu dịch vụ CNTT hoặc dự đoán danh mục chính xác của các yêu cầu dịch vụ CNTT, từ đó giảm thiểu các lỗi thủ công hoặc phân loại sai các yêu cầu dịch vụ.

Làm sạch

Để dọn sạch tất cả các tài nguyên được tạo trong bài đăng này được tạo như một phần của ngăn xếp đào tạo và ngăn xếp suy luận, hãy sử dụng lệnh sau. Lệnh này xóa tất cả tài nguyên AWS được tạo như một phần của lệnh triển khai cdk trước đó:

$ cdk destroy --all

Kết luận

Trong bài đăng này, chúng tôi đã chỉ cho bạn cách doanh nghiệp có thể triển khai mô hình ML được giám sát bằng cách sử dụng phân loại tùy chỉnh của Amazon Comprehend để dự đoán danh mục yêu cầu dịch vụ CNTT dựa trên chủ đề hoặc mô tả yêu cầu do người dùng cuối gửi. Sau khi xây dựng và huấn luyện mô hình phân loại tùy chỉnh, bạn có thể chạy phân tích thời gian thực để phân loại tùy chỉnh bằng cách tạo điểm cuối. Sau khi triển khai mô hình này đến điểm cuối Amazon Comprehend, bạn có thể sử dụng mô hình này để chạy suy luận theo thời gian thực bởi các ứng dụng của bên thứ ba hoặc các máy khách khác, bao gồm cả các công cụ quản lý dịch vụ CNTT. Sau đó, bạn có thể sử dụng suy luận này để dự đoán loại lỗi và giảm các lỗi thủ công hoặc phân loại sai phiếu. Điều này giúp giảm độ trễ trong quá trình giải quyết yêu cầu và tăng độ chính xác của quá trình giải quyết cũng như năng suất của khách hàng, điều này cuối cùng giúp tăng sự hài lòng của khách hàng.

Bạn có thể mở rộng các khái niệm trong bài đăng này sang các trường hợp sử dụng khác, chẳng hạn như định tuyến yêu cầu kinh doanh hoặc CNTT tới các nhóm nội bộ khác nhau như bộ phận kinh doanh, đại lý dịch vụ khách hàng và hỗ trợ CNTT Cấp 2/3, do người dùng cuối tạo hoặc thông qua tự động hóa. có nghĩa.

dự án

  • Rath, Michael; Mäder, Patrick, 2019, “Bộ dữ liệu SEOSS – Yêu cầu, Báo cáo lỗi, Lịch sử mã và Liên kết theo dõi cho toàn bộ dự án”, https://doi.org/10.7910/DVN/PDDZ4Q, Dữ liệu Harvard, V1

Về các tác giả

Tự động phân loại các yêu cầu dịch vụ CNTT bằng bộ phân loại tùy chỉnh PlatoBlockchain Data Intelligence của Amazon Comprehend. Tìm kiếm dọc. Ái.Chakraborty Arnab là Kiến trúc sư giải pháp cấp cao tại AWS có trụ sở tại Cincinnati, Ohio. Anh ấy đam mê các chủ đề về kiến ​​trúc Doanh nghiệp & Giải pháp, Phân tích dữ liệu, Serverless và Machine Learning. Trong thời gian rảnh rỗi, anh ấy thích xem phim, chương trình du lịch và thể thao.

ViralTự động phân loại các yêu cầu dịch vụ CNTT bằng bộ phân loại tùy chỉnh PlatoBlockchain Data Intelligence của Amazon Comprehend. Tìm kiếm dọc. Ái. Desai là Kiến trúc sư giải pháp chính tại AWS. Với hơn 25 năm kinh nghiệm trong lĩnh vực công nghệ thông tin, ông đã và đang giúp khách hàng áp dụng AWS và hiện đại hóa kiến ​​trúc của họ. Anh ấy thích đi bộ đường dài và thích tìm hiểu sâu cùng khách hàng về mọi thứ trên AWS.

Dấu thời gian:

Thêm từ Học máy AWS