Giải thích dự đoán mô hình phân loại văn bản bằng cách sử dụng Amazon SageMaker Clarify

Giải thích dự đoán mô hình phân loại văn bản bằng cách sử dụng Amazon SageMaker Clarify

Khả năng giải thích mô hình đề cập đến quá trình liên kết dự đoán của mô hình máy học (ML) với các giá trị tính năng đầu vào của một phiên bản theo thuật ngữ mà con người có thể hiểu được. Trường này thường được gọi là trí tuệ nhân tạo có thể giải thích (XÀI). Làm rõ Amazon SageMaker là một tính năng của Amazon SageMaker cho phép các nhà khoa học dữ liệu và kỹ sư ML giải thích các dự đoán về mô hình ML của họ. Nó sử dụng các phương pháp bất khả tri mô hình như Giải thích phụ gia SHApely (SHAP) để phân bổ tính năng. Ngoài việc hỗ trợ giải thích cho dữ liệu dạng bảng, Clarify còn hỗ trợ khả năng giải thích cho cả thị giác máy tính (CV) và xử lý ngôn ngữ tự nhiên (NLP) bằng cách sử dụng cùng một thuật toán SHAP.

Trong bài đăng này, chúng tôi minh họa việc sử dụng Clarify để giải thích các mô hình NLP. Cụ thể, chúng tôi chỉ ra cách bạn có thể giải thích các dự đoán của mô hình phân loại văn bản đã được đào tạo bằng cách sử dụng SageMaker BlazingVăn bản thuật toán. Điều này giúp bạn hiểu phần nào hoặc từ nào của văn bản là quan trọng nhất đối với các dự đoán do mô hình đưa ra. Trong số những thứ khác, những quan sát này sau đó có thể được sử dụng để cải thiện các quy trình khác nhau như thu thập dữ liệu giúp giảm sai lệch trong tập dữ liệu và xác thực mô hình để đảm bảo rằng các mô hình đang hoạt động như dự định và tạo được lòng tin với tất cả các bên liên quan khi mô hình được triển khai. Đây có thể là yêu cầu chính trong nhiều lĩnh vực ứng dụng như phân tích tình cảm, đánh giá pháp lý, chẩn đoán y tế, v.v.

Chúng tôi cũng cung cấp một mẫu thiết kế chung mà bạn có thể sử dụng khi sử dụng Clarify với bất kỳ Thuật toán SageMaker.

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

Thuật toán SageMaker có định dạng dữ liệu đầu vào và đầu ra cố định. Ví dụ: bộ chứa thuật toán BlazingText chấp nhận đầu vào ở định dạng JSON. Nhưng khách hàng thường yêu cầu các định dạng cụ thể tương thích với đường dẫn dữ liệu của họ. Chúng tôi trình bày một số tùy chọn mà bạn có thể làm theo để sử dụng Clarify.

Tùy chọn A

Trong tùy chọn này, chúng tôi sử dụng tính năng đường dẫn suy luận của dịch vụ lưu trữ SageMaker. Một đường dẫn suy luận là một mô hình SageMaker tạo thành một chuỗi các vùng chứa xử lý các yêu cầu suy luận. Sơ đồ sau minh họa một ví dụ.

Làm rõ công việc gọi đường dẫn suy luận với một vùng chứa xử lý định dạng dữ liệu và vùng chứa khác chứa mô hình.

Bạn có thể sử dụng các quy trình suy luận để triển khai kết hợp các mô hình tùy chỉnh của riêng mình và thuật toán tích hợp SageMaker được đóng gói trong các vùng chứa khác nhau. Để biết thêm thông tin, hãy tham khảo Lưu trữ các mô hình cùng với logic tiền xử lý dưới dạng đường dẫn suy luận nối tiếp phía sau một điểm cuối. Vì Clarify chỉ hỗ trợ các Dòng CSV và JSON làm đầu vào, nên bạn cần hoàn thành các bước sau:

  1. Tạo mô hình và vùng chứa để chuyển đổi dữ liệu từ CSV (hoặc Dòng JSON) sang JSON.
  2. Sau bước huấn luyện mô hình bằng thuật toán BlazingText, trực tiếp triển khai mô hình. Điều này sẽ triển khai mô hình bằng cách sử dụng bộ chứa BlazingText, chấp nhận JSON làm đầu vào. Khi sử dụng một thuật toán khác, SageMaker sẽ tạo mô hình bằng cách sử dụng vùng chứa của thuật toán đó.
  3. Sử dụng hai mô hình trước để tạo một Mô hình đường ống. Điều này xâu chuỗi hai mô hình theo trình tự tuyến tính và tạo ra một mô hình duy nhất. Ví dụ, tham khảo Hệ thống suy luận với Scikit-learning và Linear Learner.

Với giải pháp này, chúng tôi đã tạo thành công một mô hình duy nhất có đầu vào tương thích với Clarify và có thể được sử dụng để tạo phần giải thích.

Tùy chọn B

Tùy chọn này minh họa cách bạn có thể tích hợp việc sử dụng các định dạng dữ liệu khác nhau giữa các thuật toán Clarify và SageMaker bằng cách mang vùng chứa của riêng bạn để lưu trữ mô hình SageMaker. Sơ đồ sau đây minh họa kiến ​​trúc và các bước liên quan đến giải pháp:

Giải thích các dự đoán mô hình phân loại văn bản bằng Amazon SageMaker Làm rõ PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Các bước thực hiện như sau:

  1. Sử dụng thuật toán BlazingText thông qua Công cụ ước tính SageMaker để huấn luyện mô hình phân loại văn bản.
  2. Sau khi mô hình được đào tạo, hãy tạo vùng chứa Docker tùy chỉnh có thể được sử dụng để tạo mô hình SageMaker và tùy chọn triển khai mô hình dưới dạng điểm cuối mô hình SageMaker.
  3. Định cấu hình và tạo công việc Làm rõ để sử dụng bộ chứa lưu trữ để tạo báo cáo khả năng giải thích.
  4. Vùng chứa tùy chỉnh chấp nhận yêu cầu suy luận dưới dạng CSV và cho phép Clarify tạo giải thích.

Cần lưu ý rằng giải pháp này thể hiện ý tưởng thu được các giải thích ngoại tuyến bằng cách sử dụng Clarify cho mô hình BlazingText. Để biết thêm thông tin về khả năng giải thích trực tuyến, hãy tham khảo Khả năng giải thích trực tuyến với SageMaker Clarify.

Phần còn lại của bài đăng này giải thích từng bước trong tùy chọn thứ hai.

Đào tạo một mô hình BlazingText

Trước tiên, chúng tôi đào tạo một mô hình phân loại văn bản bằng thuật toán BlazingText. Trong ví dụ này, chúng tôi sử dụng Bộ dữ liệu bản thể DBpedia. DBpedia là một sáng kiến ​​dựa trên cộng đồng để trích xuất nội dung có cấu trúc bằng cách sử dụng thông tin từ các dự án Wikimedia khác nhau như Wikipedia. Cụ thể, chúng tôi sử dụng bộ dữ liệu bản thể luận DBpedia như được tạo bởi Zhang và cộng sự. Nó được xây dựng bằng cách chọn 14 lớp không chồng chéo từ DBpedia 2014. Các trường chứa phần tóm tắt của một bài viết Wikipedia và lớp tương ứng. Mục tiêu của một mô hình phân loại văn bản là dự đoán lớp của một bài viết dựa trên phần tóm tắt của nó.

Một quy trình từng bước chi tiết để đào tạo mô hình có sẵn trong phần sau máy tính xách tay. Sau khi bạn đã đào tạo mô hình, hãy lưu ý Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) Đường dẫn URI nơi lưu trữ các thành phần lạ của mô hình. Để biết hướng dẫn từng bước, hãy tham khảo Phân loại văn bản bằng SageMaker BlazingText.

Triển khai mô hình BlazingText được đào tạo bằng cách sử dụng vùng chứa của riêng bạn trên SageMaker

Với Clarify, có hai tùy chọn để cung cấp thông tin về mô hình:

  • Tạo mô hình SageMaker mà không cần triển khai nó đến điểm cuối – Khi một mô hình SageMaker được cung cấp cho Clarify, nó sẽ tạo ra một điểm cuối tạm thời bằng cách sử dụng mô hình.
  • Tạo một mô hình SageMaker và triển khai nó đến một điểm cuối – Khi một điểm cuối được cung cấp cho Clarify, nó sẽ sử dụng điểm cuối để nhận giải thích. Điều này tránh việc tạo điểm cuối tạm thời và có thể giảm thời gian chạy của công việc Làm rõ.

Trong bài đăng này, chúng tôi sử dụng tùy chọn đầu tiên với Clarify. chúng tôi sử dụng SDK Python của SageMaker vì mục đích này. Để biết các tùy chọn khác và biết thêm chi tiết, hãy tham khảo Tạo điểm cuối và triển khai mô hình của bạn.

Mang theo thùng chứa của riêng bạn (BYOC)

Trước tiên, chúng tôi xây dựng một hình ảnh Docker tùy chỉnh được sử dụng để tạo Mô hình SageMaker. Bạn có thể sử dụng các tập tin và mã trong thư mục nguồn của kho lưu trữ GitHub của chúng tôi.

Dockerfile mô tả hình ảnh chúng tôi muốn xây dựng. Chúng tôi bắt đầu với cài đặt Ubuntu tiêu chuẩn và sau đó cài đặt Scikit-learning. Chúng tôi cũng nhân bản văn bản nhanh và cài đặt gói. Nó được sử dụng để tải mô hình BlazingText để đưa ra dự đoán. Cuối cùng, chúng tôi thêm mã triển khai thuật toán của mình dưới dạng các tệp trước đó và thiết lập môi trường trong vùng chứa. Toàn bộ Dockerfile được cung cấp trong kho lưu trữ của chúng tôi và bạn có thể sử dụng nó như hiện tại. tham khảo Sử dụng mã suy luận của riêng bạn với các dịch vụ lưu trữ để biết thêm chi tiết về cách SageMaker tương tác với bộ chứa Docker của bạn và các yêu cầu của nó.

Hơn nữa, Predctor.py chứa mã để tải mô hình và đưa ra dự đoán. Nó chấp nhận dữ liệu đầu vào dưới dạng CSV, giúp nó tương thích với Clarify.

Sau khi có Dockerfile, build Docker container và upload lên Đăng ký container đàn hồi Amazon (ECR của Amazon). Bạn có thể tìm thấy quy trình từng bước dưới dạng một kịch bản shell trong kho lưu trữ GitHub của chúng tôi mà bạn có thể sử dụng để tạo và tải hình ảnh Docker lên Amazon ECR.

Tạo mô hình BlazingText

Bước tiếp theo là tạo một đối tượng mô hình từ SageMaker Python SDK Lớp người mẫu có thể được triển khai đến điểm cuối HTTPS. Chúng tôi định cấu hình Làm rõ để sử dụng mô hình này để tạo giải thích. Đối với mã và các yêu cầu khác cho bước này, hãy tham khảo Triển khai Mô hình BlazingText SageMaker được đào tạo của bạn bằng cách sử dụng bộ chứa của riêng bạn trong Amazon SageMaker.

Định cấu hình Làm rõ

Làm rõ NLP tương thích với các mô hình hồi quy và phân loại. Nó giúp bạn hiểu phần nào của văn bản đầu vào ảnh hưởng đến dự đoán của mô hình của bạn. Clarify hỗ trợ 62 ngôn ngữ và có thể xử lý văn bản với nhiều ngôn ngữ. Chúng tôi sử dụng SageMaker Python SDK để xác định ba cấu hình được Clarify sử dụng để tạo báo cáo khả năng giải thích.

Trước tiên, chúng ta cần tạo đối tượng bộ xử lý và cũng chỉ định vị trí của tập dữ liệu đầu vào sẽ được sử dụng cho các dự đoán và thuộc tính tính năng:

import sagemaker
sagemaker_session = sagemaker.Session()
from sagemaker import clarify
clarify_processor = clarify.SageMakerClarifyProcessor(
role=role,
instance_count=1,
instance_type="ml.m5.xlarge",
sagemaker_session=sagemaker_session,
)
file_path = "<location of the input dataset>"

Cấu hình dữ liệu

Tại đây, bạn nên định cấu hình vị trí của dữ liệu đầu vào, cột tính năng và nơi bạn muốn công việc Làm rõ lưu trữ đầu ra. Điều này được thực hiện bằng cách chuyển các đối số có liên quan trong khi tạo đối tượng DataConfig:

explainability_output_path = "s3://{}/{}/clarify-text-explainability".format(
sagemaker_session.default_bucket(), "explainability"
) explainability_data_config = clarify.DataConfig(
s3_data_input_path=file_path,
s3_output_path=explainability_output_path,
headers=["Review Text"],
dataset_type="text/csv",
)

ModelConfig

Với ModelConfig, bạn nên chỉ định thông tin về mô hình được đào tạo của mình. Ở đây, chúng tôi chỉ định tên của mô hình BlazingText SageMaker mà chúng tôi đã tạo ở bước trước và cũng đặt các tham số khác như Đám mây điện toán đàn hồi Amazon (Amazon EC2) loại phiên bản và định dạng của nội dung:

model_config = clarify.ModelConfig(
model_name=model_name,
instance_type="ml.m5.xlarge",
instance_count=1,
accept_type="application/jsonlines",
content_type="text/csv",
endpoint_name_prefix=None,
)

SHAPConfig

Điều này được sử dụng để thông báo cho Clarify về cách lấy các thuộc tính tính năng. TextConfig được sử dụng để chỉ định mức độ chi tiết của văn bản và ngôn ngữ. Trong tập dữ liệu của chúng tôi, vì chúng tôi muốn chia văn bản đầu vào thành các từ và ngôn ngữ là tiếng Anh, chúng tôi đặt các giá trị này thành mã thông báo và tiếng Anh tương ứng. Tùy thuộc vào bản chất của tập dữ liệu, bạn có thể đặt mức độ chi tiết cho câu hoặc đoạn văn. Đường cơ sở được đặt thành một mã thông báo đặc biệt. Điều này có nghĩa là Clarify sẽ loại bỏ các tập hợp con của văn bản đầu vào và thay thế chúng bằng các giá trị từ đường cơ sở trong khi thu được các dự đoán để tính toán các giá trị SHAP. Đây là cách nó xác định tác động của các mã thông báo đối với các dự đoán của mô hình và lần lượt xác định tầm quan trọng của chúng. Số lượng mẫu sẽ được sử dụng trong thuật toán Kernel SHAP được xác định bởi giá trị của num_samples lý lẽ. Các giá trị cao hơn dẫn đến các thuộc tính tính năng mạnh mẽ hơn, nhưng điều đó cũng có thể làm tăng thời gian chạy của công việc. Do đó, bạn cần phải thực hiện một sự đánh đổi giữa hai bên. Xem đoạn mã sau:

shap_config = clarify.SHAPConfig(
baseline=[["<UNK>"]],
num_samples=1000,
agg_method="mean_abs",
save_local_shap_values=True,
text_config=clarify.TextConfig(granularity="token", language="english"),
)

Để biết thêm thông tin, xem Thuộc tính tính năng sử dụng giá trị ShapleySách trắng về tính công bằng và khả năng giải thích của Amazon AI.

ModelPredictedLabelConfig

Để Clarify trích xuất nhãn dự đoán hoặc điểm số hoặc xác suất dự đoán, đối tượng cấu hình này cần được đặt. Xem đoạn mã sau:

from sagemaker.clarify import ModelPredictedLabelConfig
modellabel_config = ModelPredictedLabelConfig(probability="prob", label="label")

Để biết thêm chi tiết, hãy tham khảo tài liệu hướng dẫn trong SDK.

Chạy một công việc làm rõ

Sau khi bạn tạo các cấu hình khác nhau, giờ đây bạn đã sẵn sàng để kích hoạt công việc xử lý Làm rõ. Công việc xử lý xác thực đầu vào và tham số, tạo điểm cuối tạm thời và tính toán các thuộc tính tính năng cục bộ và toàn cục bằng thuật toán SHAP. Khi hoàn tất, nó sẽ xóa điểm cuối tạm thời và tạo các tệp đầu ra. Xem đoạn mã sau:

clarify_processor.run_explainability(
data_config=explainability_data_config,
model_config=model_config,
explainability_config=shap_config,
model_scores=modellabel_config,
)

Thời gian chạy của bước này phụ thuộc vào kích thước của tập dữ liệu và số lượng mẫu được tạo bởi SHAP.

Hình dung kết quả

Cuối cùng, chúng tôi hiển thị hình ảnh trực quan về kết quả từ báo cáo phân bổ tính năng cục bộ do tác vụ xử lý Làm rõ tạo ra. Đầu ra ở định dạng Dòng JSON và với một số xử lý; bạn có thể vẽ điểm số cho các mã thông báo trong văn bản đầu vào như ví dụ sau. Các thanh cao hơn có tác động nhiều hơn đến nhãn mục tiêu. Hơn nữa, các giá trị dương được liên kết với dự đoán cao hơn trong biến mục tiêu và giá trị âm với dự đoán thấp hơn. Trong ví dụ này, mô hình đưa ra dự đoán cho văn bản đầu vào “Wesebach là một con sông của Hesse Đức.” Lớp dự đoán là Địa điểm tự nhiên và điểm số cho thấy mô hình nhận thấy từ “sông” là từ có nhiều thông tin nhất để đưa ra dự đoán này. Điều này là trực quan đối với con người và bằng cách kiểm tra nhiều mẫu hơn, bạn có thể xác định xem mô hình có đang học các tính năng phù hợp và hoạt động như mong đợi hay không.

Giải thích các dự đoán mô hình phân loại văn bản bằng Amazon SageMaker Làm rõ PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Kết luận

Trong bài đăng này, chúng tôi đã giải thích cách bạn có thể sử dụng Clarify để giải thích các dự đoán từ mô hình phân loại văn bản được đào tạo bằng SageMaker BlazingText. Bắt đầu với việc giải thích các dự đoán từ các mô hình phân loại văn bản của bạn bằng sổ ghi chép mẫu Khả năng giải thích văn bản cho SageMaker BlazingText.

Chúng tôi cũng đã thảo luận về một mẫu thiết kế chung hơn mà bạn có thể sử dụng khi sử dụng Thuật toán tích hợp Clarify với SageMaker. Để biết thêm thông tin, hãy tham khảo Tính công bằng và khả năng giải thích mô hình đối với các dự đoán của học máy là gì. Chúng tôi cũng khuyến khích bạn đọc Sách trắng về tính công bằng và khả năng giải thích của Amazon AI, cung cấp tổng quan về chủ đề và thảo luận về các phương pháp hay nhất cũng như các hạn chế.


Về các tác giả

Giải thích các dự đoán mô hình phân loại văn bản bằng Amazon SageMaker Làm rõ PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái. Pinak Panigrahi làm việc với khách hàng để xây dựng các giải pháp dựa trên máy học nhằm giải quyết các vấn đề kinh doanh chiến lược trên AWS. Khi không bận rộn với việc học máy, người ta có thể thấy anh ấy đang đi bộ đường dài, đọc sách hoặc chơi thể thao.

Giải thích các dự đoán mô hình phân loại văn bản bằng Amazon SageMaker Làm rõ PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái. Dhawal Patel là một Kiến trúc sư chính về Học máy tại AWS. Ông đã làm việc với các tổ chức khác nhau, từ các doanh nghiệp lớn đến các công ty khởi nghiệp quy mô trung bình về các vấn đề liên quan đến máy tính phân tán và Trí tuệ nhân tạo. Ông tập trung vào Học sâu bao gồm các lĩnh vực NLP và Thị giác máy tính. Anh ấy giúp khách hàng đạt được khả năng suy luận mô hình hiệu suất cao trên SageMaker.

Dấu thời gian:

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