Khả năng hiểu ngôn ngữ tự nhiên được áp dụng trong nhiều trường hợp sử dụng, từ chatbot và trợ lý ảo, đến dịch máy và tóm tắt văn bản. Để đảm bảo rằng các ứng dụng này đang chạy ở mức hiệu suất dự kiến, điều quan trọng là dữ liệu trong môi trường đào tạo và sản xuất phải từ cùng một bản phân phối. Khi dữ liệu được sử dụng để suy luận (dữ liệu sản xuất) khác với dữ liệu được sử dụng trong quá trình đào tạo mô hình, chúng tôi gặp phải hiện tượng gọi là trôi dữ liệu. Khi dữ liệu trôi dạt xảy ra, mô hình không còn phù hợp với dữ liệu trong quá trình sản xuất và có khả năng hoạt động kém hơn mong đợi. Điều quan trọng là phải liên tục theo dõi dữ liệu suy luận và so sánh dữ liệu đó với dữ liệu được sử dụng trong quá trình đào tạo.
Bạn có thể sử dụng Amazon SageMaker để nhanh chóng xây dựng, đào tạo và triển khai các mô hình máy học (ML) ở mọi quy mô. Là một biện pháp chủ động chống lại sự xuống cấp của mô hình, bạn có thể sử dụng Giám sát mô hình Amazon SageMaker để liên tục theo dõi chất lượng của các mô hình ML của bạn trong thời gian thực. Với Model Monitor, bạn cũng có thể định cấu hình cảnh báo để thông báo và kích hoạt hành động nếu quan sát thấy bất kỳ sai lệch nào trong hiệu suất mô hình. Việc phát hiện sớm và chủ động những sai lệch này cho phép bạn thực hiện các hành động khắc phục, chẳng hạn như thu thập dữ liệu đào tạo sự thật cơ bản mới, đào tạo lại các mô hình và kiểm tra các hệ thống ngược dòng mà không cần phải theo dõi các mô hình theo cách thủ công hoặc xây dựng công cụ bổ sung.
Model Monitor cung cấp bốn loại khả năng giám sát khác nhau để phát hiện và giảm thiểu sự trôi dạt của mô hình trong thời gian thực:
- Chất lượng dữ liệu – Giúp phát hiện sự thay đổi trong lược đồ dữ liệu và thuộc tính thống kê của các biến độc lập và cảnh báo khi phát hiện có sự trôi dạt.
- Chất lượng mô hình – Để theo dõi các đặc điểm hiệu suất của mô hình chẳng hạn như độ chính xác hoặc độ chính xác trong thời gian thực, Model Monitor cho phép bạn nhập các nhãn sự thật cơ bản được thu thập từ các ứng dụng của mình. Model Monitor tự động hợp nhất thông tin sự thật cơ bản với dữ liệu dự đoán để tính toán các chỉ số hiệu suất của mô hình.
- xu hướng mô hình –Model Monitor được tích hợp với Làm rõ Amazon SageMaker để cải thiện khả năng hiển thị vào sự thiên vị tiềm năng. Mặc dù dữ liệu hoặc mô hình ban đầu của bạn có thể không bị sai lệch, nhưng những thay đổi trên thế giới có thể gây ra sự sai lệch phát triển theo thời gian trong một mô hình đã được đào tạo.
- khả năng giải thích mô hình – Phát hiện sai lệch cảnh báo cho bạn khi có thay đổi về tầm quan trọng tương đối của các thuộc tính tính năng.
Trong bài đăng này, chúng tôi thảo luận về các loại độ lệch chất lượng dữ liệu có thể áp dụng cho dữ liệu văn bản. Chúng tôi cũng trình bày một cách tiếp cận để phát hiện sự trôi dạt dữ liệu trong dữ liệu văn bản bằng cách sử dụng Model Monitor.
Dữ liệu trôi dạt trong NLP
Độ lệch dữ liệu có thể được phân thành ba loại tùy thuộc vào việc sự thay đổi phân phối đang xảy ra ở đầu vào hay ở phía đầu ra hoặc liệu mối quan hệ giữa đầu vào và đầu ra có thay đổi hay không.
dịch chuyển đồng biến
Trong một sự thay đổi đồng biến, phân phối đầu vào thay đổi theo thời gian, nhưng phân phối có điều kiện P(y|x) không thay đổi. Loại trôi dạt này được gọi là dịch chuyển đồng biến vì vấn đề phát sinh do sự thay đổi trong phân phối của các đồng biến (đặc trưng). Ví dụ: trong mô hình phân loại thư rác email, việc phân phối dữ liệu huấn luyện (tập hợp email) có thể khác với việc phân phối dữ liệu trong quá trình chấm điểm.
thay đổi nhãn
Trong khi dịch chuyển đồng biến tập trung vào những thay đổi trong phân phối tính năng, thay đổi nhãn tập trung vào những thay đổi trong phân phối của biến lớp. Loại dịch chuyển này về cơ bản là đảo ngược của dịch chuyển đồng biến. Một cách trực quan để nghĩ về nó có thể là xem xét một tập dữ liệu không cân bằng. Nếu tỷ lệ thư rác trên không phải thư rác của các email trong nhóm đào tạo của chúng tôi là 50%, nhưng trên thực tế, 10% email của chúng tôi là không phải thư rác, thì phân phối nhãn mục tiêu đã thay đổi.
thay đổi khái niệm
thay đổi khái niệm khác với đồng biến và chuyển nhãn ở chỗ nó không liên quan đến phân phối dữ liệu hoặc phân phối lớp, mà thay vào đó liên quan đến mối quan hệ giữa hai biến. Ví dụ: những người gửi thư rác email thường sử dụng nhiều khái niệm khác nhau để vượt qua các mô hình bộ lọc thư rác và khái niệm email được sử dụng trong quá trình đào tạo có thể thay đổi theo thời gian.
Bây giờ chúng ta đã hiểu các loại trôi dạt dữ liệu khác nhau, hãy xem cách chúng ta có thể sử dụng Model Monitor để phát hiện sự dịch chuyển đồng biến trong dữ liệu văn bản.
Tổng quan về giải pháp
Không giống như dữ liệu dạng bảng, được cấu trúc và giới hạn, dữ liệu văn bản phức tạp, nhiều chiều và ở dạng tự do. Để phát hiện hiệu quả sự trôi dạt trong NLP, chúng tôi làm việc với nhúng, đó là các biểu diễn chiều thấp của văn bản. Bạn có thể lấy các phần nhúng bằng các mô hình ngôn ngữ khác nhau như Word2Vec và các mô hình dựa trên máy biến áp như Chứng nhận. Các mô hình này chiếu dữ liệu chiều cao vào không gian chiều thấp trong khi vẫn bảo toàn thông tin ngữ nghĩa của văn bản. Kết quả là các vectơ dày đặc và có ý nghĩa theo ngữ cảnh, có thể được sử dụng cho các tác vụ xuôi dòng khác nhau, bao gồm giám sát độ trôi dữ liệu.
Trong giải pháp của mình, chúng tôi sử dụng các phép nhúng để phát hiện sự dịch chuyển đồng biến của các câu tiếng Anh. Chúng tôi sử dụng Model Monitor để tạo điều kiện giám sát liên tục cho một trình phân loại văn bản được triển khai cho môi trường sản xuất. Cách tiếp cận của chúng tôi bao gồm các bước sau:
- Tinh chỉnh mô hình BERT bằng SageMaker.
- Triển khai bộ phân loại BERT được tinh chỉnh làm điểm cuối thời gian thực với thu thập dữ liệu kích hoạt.
- Tạo tập dữ liệu cơ sở bao gồm một mẫu câu dùng để huấn luyện bộ phân loại BERT.
- Tạo ra một công việc giám sát SageMaker tùy chỉnh để tính toán độ tương tự cosin giữa dữ liệu được thu thập trong quá trình sản xuất và tập dữ liệu cơ sở.
Sơ đồ sau đây minh họa quy trình làm việc của giải pháp:
Tinh chỉnh mô hình BERT
Trong bài đăng này, chúng tôi sử dụng Tập hợp khả năng chấp nhận ngôn ngữ (CoLA), một bộ dữ liệu gồm 10,657 câu tiếng Anh được dán nhãn là đúng ngữ pháp hoặc không đúng ngữ pháp từ các tài liệu ngôn ngữ học đã xuất bản. Chúng tôi sử dụng khóa đào tạo SageMaker để tinh chỉnh mô hình BERT bằng bộ dữ liệu CoLa bằng cách xác định lớp công cụ ước tính PyTorch. Để biết thêm thông tin về cách sử dụng SDK này với PyTorch, hãy xem Sử dụng PyTorch với SageMaker Python SDK. Gọi cho fit()
phương pháp của công cụ ước tính khởi chạy công việc đào tạo:
Triển khai mô hình
Sau khi đào tạo mô hình của mình, chúng tôi lưu trữ mô hình đó trên điểm cuối SageMaker. Để làm cho điểm cuối tải mô hình và phục vụ các dự đoán, chúng tôi triển khai một vài phương thức trong train_deploy.py:
- model_fn () - Tải mô hình đã lưu và trả về một đối tượng mô hình có thể được sử dụng để phục vụ mô hình. Máy chủ mô hình SageMaker PyTorch tải mô hình của chúng tôi bằng cách gọi
model_fn
. - input_fn () - Hủy chuẩn hóa và chuẩn bị đầu vào dự đoán. Trong ví dụ này, phần thân yêu cầu của chúng tôi đầu tiên được tuần tự hóa thành JSON và sau đó được gửi đến điểm cuối phân phối mô hình. Do đó, trong
input_fn()
, trước tiên chúng tôi giải tuần tự hóa thân yêu cầu được định dạng JSON và trả về đầu vào dưới dạngtorch.tensor
, theo yêu cầu đối với BERT. - dự đoán_fn () – Thực hiện dự đoán và trả về kết quả.
Bật thu thập dữ liệu Model Monitor
Chúng tôi kích hoạt Chụp dữ liệu Model Monitor ghi dữ liệu đầu vào vào Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) để tham khảo sau:
Sau đó, chúng tôi tạo điểm cuối SageMaker thời gian thực với mô hình được tạo ở bước trước:
Sự suy luận
Chúng tôi chạy dự đoán bằng cách sử dụng đối tượng dự đoán mà chúng tôi đã tạo ở bước trước. Chúng tôi đặt JSON serializer và deserializer, được sử dụng bởi điểm cuối suy luận:
Điểm cuối thời gian thực được định cấu hình để thu thập dữ liệu từ yêu cầu, phản hồi và dữ liệu được lưu trữ trong Amazon S3. Bạn có thể xem dữ liệu được ghi lại trong lịch giám sát trước đó.
Tạo đường cơ sở
Chúng tôi sử dụng mô hình BERT được tinh chỉnh để trích xuất các tính năng nhúng câu từ dữ liệu đào tạo. Chúng tôi sử dụng các vectơ này làm đầu vào tính năng chất lượng cao để so sánh khoảng cách cosin vì BERT tạo ra biểu diễn từ động với ngữ cảnh ngữ nghĩa. Hoàn thành các bước sau để nhận nhúng câu:
- Sử dụng mã thông báo BERT để nhận ID mã thông báo cho mỗi mã thông báo (
input_id
) trong câu đầu vào và dấu hiệu để cho biết phần tử nào trong chuỗi đầu vào là mã thông báo so với phần tử đệm (attention_mask_id
). Chúng tôi sử dụng BERTtokenizer.encode_plus
để lấy các giá trị này cho mỗi câu đầu vào:
input_ids
và attention_mask_ids
được chuyển đến mô hình và lấy các trạng thái ẩn của mạng. Các hidden_states
có bốn chiều theo thứ tự sau:
- Số lớp (BERT có 12 lớp)
- Số lô (1 câu)
- Chỉ mục mã thông báo từ
- Đơn vị ẩn (768 tính năng)
- Sử dụng hai lớp ẩn cuối cùng để lấy một vectơ (nhúng câu) bằng cách tính giá trị trung bình của tất cả các mã thông báo đầu vào trong câu:
- Chuyển đổi câu nhúng dưới dạng mảng NumPy và lưu trữ nó ở vị trí Amazon S3 làm đường cơ sở được Model Monitor sử dụng:
kịch bản đánh giá
Model Monitor cung cấp một bộ chứa dựng sẵn với khả năng phân tích dữ liệu được thu thập từ các điểm cuối cho bộ dữ liệu dạng bảng. Nếu bạn muốn mang theo thùng chứa của riêng mình, Model Monitor cung cấp các điểm mở rộng mà bạn có thể sử dụng. Khi bạn tạo một MonitoringSchedule
, Model Monitor cuối cùng sẽ khởi động các công việc xử lý. Vì vậy, container cần lưu ý về hợp đồng gia công. Chúng ta cần tạo tập lệnh đánh giá tương thích với vùng chứa hợp đồng đầu vào và kết quả đầu ra.
Model Monitor sử dụng mã đánh giá trên tất cả các mẫu được chụp trong lịch trình giám sát. Đối với mỗi điểm dữ liệu suy luận, chúng tôi tính toán việc nhúng câu bằng cách sử dụng cùng logic được mô tả trước đó. Độ tương tự cosine được sử dụng làm thước đo khoảng cách để đo độ tương tự của điểm dữ liệu suy luận và phần nhúng câu trong đường cơ sở. Về mặt toán học, nó đo góc cosin giữa hai vectơ nhúng câu. Điểm tương tự cosine cao biểu thị các nhúng câu tương tự. Điểm tương tự cosin thấp hơn biểu thị độ lệch dữ liệu. Chúng tôi tính toán mức trung bình của tất cả các điểm tương đồng cosin và nếu thấp hơn ngưỡng, thì điểm đó sẽ được đưa vào báo cáo vi phạm. Dựa trên trường hợp sử dụng, bạn có thể sử dụng các số liệu khoảng cách khác như manhattan
or euclidean
để đo lường sự giống nhau của nhúng câu.
Sơ đồ sau đây cho thấy cách chúng tôi sử dụng Giám sát mô hình SageMaker để thiết lập đường cơ sở và phát hiện độ lệch dữ liệu bằng cách sử dụng độ tương tự khoảng cách cosine.
Sau đây là mã để tính toán các vi phạm; kịch bản đánh giá hoàn chỉnh có sẵn trên GitHub:
Đo độ lệch dữ liệu bằng Model Monitor
Trong phần này, chúng tôi tập trung vào việc đo độ lệch dữ liệu bằng Model Monitor. Các màn hình dựng sẵn của Model Monitor được cung cấp bởi dequ, là một thư viện được xây dựng dựa trên Apache Spark để xác định các bài kiểm tra đơn vị cho dữ liệu, đo lường chất lượng dữ liệu trong các bộ dữ liệu lớn. Bạn không cần viết mã để sử dụng các khả năng giám sát dựng sẵn này. Bạn cũng có thể linh hoạt giám sát các mô hình bằng mã hóa để cung cấp phân tích tùy chỉnh. Bạn có thể thu thập và xem xét tất cả các số liệu do Model Monitor đưa ra trong Xưởng sản xuất Amazon SageMaker, vì vậy bạn có thể phân tích hiệu suất mô hình của mình một cách trực quan mà không cần viết mã bổ sung.
Trong một số trường hợp nhất định, chẳng hạn như khi dữ liệu không ở dạng bảng, công việc xử lý mặc định (được hỗ trợ bởi dequ) không đủ vì nó chỉ hỗ trợ bộ dữ liệu dạng bảng. Các màn hình dựng sẵn có thể không đủ để tạo ra các chỉ số phức tạp nhằm phát hiện các sai lệch và có thể bắt buộc phải mang theo các chỉ số của riêng bạn. Trong các phần tiếp theo, chúng tôi sẽ mô tả thiết lập để đưa vào các chỉ số của bạn bằng cách tạo vùng chứa tùy chỉnh.
Xây dựng bộ chứa Model Monitor tùy chỉnh
Chúng tôi sử dụng kịch bản đánh giá từ phần trước để xây dựng bộ chứa Docker và đẩy nó vào Đăng ký container đàn hồi Amazon (ECR của Amazon):
Khi bộ chứa Docker của khách hàng nằm trong Amazon ECR, chúng tôi có thể lên lịch cho công việc Giám sát mô hình và tạo báo cáo vi phạm, như được trình bày trong các phần tiếp theo.
Lên lịch công việc giám sát mô hình
Để lên lịch cho công việc giám sát mô hình, chúng tôi tạo một phiên bản của Trình giám sát mô hình và trong image_uri
, chúng ta đề cập đến Docker container mà chúng ta đã tạo ở phần trước:
Chúng tôi lên lịch công việc giám sát bằng cách sử dụng create_monitoring_schedule
API. Bạn có thể lên lịch công việc giám sát hàng giờ hoặc hàng ngày. Bạn định cấu hình công việc bằng cách sử dụng destination
tham số, như thể hiện trong đoạn mã sau:
Để mô tả và liệt kê lịch giám sát và các lần chạy của nó, bạn có thể sử dụng các lệnh sau:
Báo cáo vi phạm trôi dạt dữ liệu
Khi công việc giám sát mô hình hoàn tất, bạn có thể điều hướng đến đường dẫn S3 đích để truy cập các báo cáo vi phạm. Báo cáo này chứa tất cả các yếu tố đầu vào có điểm cosin trung bình (avg_cosine_score
) thấp hơn ngưỡng được định cấu hình làm biến môi trường THRESHOLD:0.5
trong Mô HìnhMàn Hình ví dụ. Đây là dấu hiệu cho thấy dữ liệu được quan sát trong quá trình suy luận đang trôi ra ngoài đường cơ sở đã thiết lập.
Đoạn mã sau hiển thị báo cáo vi phạm được tạo:
Cuối cùng, dựa trên quan sát này, bạn có thể định cấu hình mô hình của mình để đào tạo lại. Bạn cũng có thể kích hoạt Dịch vụ thông báo đơn giản của Amazon (Amazon SNS) thông báo để gửi cảnh báo khi vi phạm xảy ra.
Kết luận
Model Monitor cho phép bạn duy trì chất lượng cao của các mô hình trong quá trình sản xuất. Trong bài đăng này, chúng tôi đã nêu bật những thách thức với việc giám sát độ lệch dữ liệu trên dữ liệu phi cấu trúc như văn bản và cung cấp một phương pháp trực quan để phát hiện độ lệch dữ liệu bằng cách sử dụng tập lệnh giám sát tùy chỉnh. Bạn có thể tìm thấy mã được liên kết với bài đăng sau đây Kho GitHub. Ngoài ra, bạn có thể tùy chỉnh giải pháp để sử dụng các chỉ số khoảng cách khác, chẳng hạn như chênh lệch trung bình tối đa (MMD), một thước đo khoảng cách phi tham số để tính toán phân phối cận biên giữa phân phối nguồn và đích trên không gian được nhúng.
Về các tác giả
Vikram Elango là Kiến trúc sư Giải pháp Chuyên gia AI/ML tại Amazon Web Services, có trụ sở tại Virginia, Hoa Kỳ. Vikram giúp các khách hàng trong ngành tài chính và bảo hiểm thiết kế, lãnh đạo tư tưởng để xây dựng và triển khai các ứng dụng máy học trên quy mô lớn. Anh ấy hiện đang tập trung vào xử lý ngôn ngữ tự nhiên, AI chịu trách nhiệm, tối ưu hóa suy luận và mở rộng ML trên toàn doanh nghiệp. Khi rảnh rỗi, anh ấy thích đi du lịch, đi bộ đường dài, nấu ăn và cắm trại cùng gia đình.
Raghu Ramesha là Kiến trúc sư giải pháp ML của nhóm Dịch vụ Amazon SageMaker. Anh ấy tập trung vào việc giúp khách hàng di chuyển khối lượng công việc sản xuất ML sang SageMaker trên quy mô lớn. Anh ấy chuyên về các lĩnh vực máy học, trí tuệ nhân tạo và thị giác máy tính, đồng thời có bằng thạc sĩ về Khoa học Máy tính tại UT Dallas. Trong thời gian rảnh rỗi, anh ấy thích đi du lịch và chụp ảnh.
Tony Trần là Kiến trúc sư giải pháp máy học tại Amazon Web Services, giúp khách hàng thiết kế các chức năng máy học mạnh mẽ và có thể mở rộng trên đám mây. Là một cựu nhà khoa học dữ liệu và kỹ sư dữ liệu, anh tận dụng kinh nghiệm của mình để giúp giải quyết một số vấn đề khó khăn nhất mà các tổ chức gặp phải khi vận hành máy học.
- '
- "
- 100
- 11
- 7
- Giới thiệu
- truy cập
- Tài khoản
- ngang qua
- hành động
- thêm vào
- AI
- Tất cả
- Đã
- Mặc dù
- đàn bà gan dạ
- Amazon SageMaker
- Amazon Web Services
- phân tích
- Apache
- Apache Spark
- áp dụng
- các ứng dụng
- có sẵn
- Trung bình cộng
- AWS
- Baseline
- thân hình
- xây dựng
- Xây dựng
- cắm trại
- trường hợp
- Nguyên nhân
- thách thức
- thay đổi
- chatbot
- phân loại
- đám mây
- mã
- Lập trình
- Thu
- phức tạp
- Tính
- Khoa học Máy tính
- Tầm nhìn máy tính
- Container
- chứa
- liên tục
- hợp đồng
- nấu ăn
- Tạo
- khách hàng
- Dallas
- dữ liệu
- chất lượng dữ liệu
- nhà khoa học dữ liệu
- Thiết kế
- Phát hiện
- phát triển
- khác nhau
- thảo luận
- khoảng cách
- phu bến tàu
- Bộ chứa Docker
- Không
- lĩnh vực
- lái xe
- suốt trong
- năng động
- Đầu
- gặp gỡ
- Điểm cuối
- ky sư
- Tiếng Anh
- Doanh nghiệp
- Môi trường
- thành lập
- ví dụ
- kinh nghiệm
- Đối mặt
- gia đình
- Đặc tính
- Tính năng
- tài chính
- Tên
- Linh hoạt
- Tập trung
- tập trung
- hình thức
- Forward
- Miễn phí
- chức năng
- tạo ra
- GitHub
- có
- giúp đỡ
- giúp
- Cao
- Nhấn mạnh
- đi bộ đường dài
- Trang Chủ
- Độ đáng tin của
- Hướng dẫn
- HTTPS
- hình ảnh
- thực hiện
- quan trọng
- Bao gồm
- ngành công nghiệp
- thông tin
- bảo hiểm
- ngành bảo hiểm
- IT
- Việc làm
- việc làm
- Nhãn
- Ngôn ngữ
- lớn
- mới nhất
- ra mắt
- Lãnh đạo
- học tập
- Cấp
- đòn bẩy
- Thư viện
- ngôn ngữ học
- Danh sách
- văn chương
- tải
- địa điểm thư viện nào
- học máy
- dịch máy
- mặt nạ
- đo
- Metrics
- ML
- kiểu mẫu
- mô hình
- giám sát
- chi tiết
- Ngôn ngữ tự nhiên
- Xử lý ngôn ngữ tự nhiên
- mạng
- nlp
- thông báo
- Cung cấp
- gọi món
- tổ chức
- Nền tảng khác
- hiệu suất
- nhiếp ảnh
- Độ chính xác
- dự đoán
- Dự đoán
- trình bày
- Vấn đề
- Sản lượng
- dự án
- cho
- cung cấp
- Python
- ngọn đuốc
- chất lượng
- phạm vi
- thời gian thực
- Thực tế
- ghi
- báo cáo
- Báo cáo
- phản ứng
- Kết quả
- đào tạo lại
- Trả về
- đảo ngược
- xem xét
- chạy
- chạy
- nhà làm hiền triết
- Quy mô
- mở rộng quy mô
- Khoa học
- sdk
- DỊCH VỤ
- phục vụ
- định
- thay đổi
- tương tự
- Đơn giản
- So
- Giải pháp
- Không gian
- không gian
- thư rác
- chuyên
- Bang
- là gắn
- hàng
- Hỗ trợ
- hệ thống
- Mục tiêu
- thử nghiệm
- Kiểm tra
- kiểm tra
- thế giới
- nghĩ
- tư duy lãnh đạo
- thời gian
- mã thông báo
- Tokens
- hàng đầu
- ngọn đuốc
- giao thông
- Hội thảo
- Dịch
- US
- Xem
- virginia
- ảo
- khả năng hiển thị
- tầm nhìn
- chờ đợi
- web
- các dịch vụ web
- Wikipedia
- không có
- Công việc
- quy trình làm việc
- thế giới
- viết