Xây dựng hệ thống cảnh báo theo thời gian thực dựa trên tin tức với Twitter, Amazon SageMaker và Hugging Face PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Xây dựng hệ thống cảnh báo thời gian thực dựa trên tin tức với Twitter, Amazon SageMaker và Hugging Face

Ngày nay, mạng xã hội là một nguồn tin tức khổng lồ. Người dùng dựa vào các nền tảng như Facebook và Twitter để tiêu thụ tin tức. Đối với một số ngành như công ty bảo hiểm, người trả lời đầu tiên, cơ quan thực thi pháp luật và chính phủ, việc có thể nhanh chóng xử lý tin tức về các sự kiện liên quan xảy ra có thể giúp họ hành động trong khi những sự kiện này vẫn đang diễn ra.

Không có gì lạ khi các tổ chức cố gắng trích xuất giá trị từ dữ liệu văn bản để tìm kiếm giải pháp không liên quan đến việc đào tạo mô hình NLP (xử lý ngôn ngữ tự nhiên) phức tạp. Đối với những tổ chức đó, việc sử dụng một mô hình NLP được đào tạo trước là thực tế hơn. Hơn nữa, nếu mô hình được chọn không đáp ứng các chỉ số thành công của họ, các tổ chức muốn có thể dễ dàng chọn một mô hình khác và đánh giá lại.

Hiện tại, việc trích xuất thông tin từ dữ liệu văn bản trở nên dễ dàng hơn bao giờ hết nhờ các tính năng sau:

  • Sự trỗi dậy của các kiến ​​trúc NLP đa năng, tiên tiến như máy biến áp
  • Khả năng mà các nhà phát triển và nhà khoa học dữ liệu có được để nhanh chóng xây dựng, đào tạo và triển khai các mô hình học máy (ML) trên quy mô lớn trên đám mây với các dịch vụ như Amazon SageMaker
  • Sự sẵn có của hàng nghìn mô hình NLP được đào tạo trước bằng hàng trăm ngôn ngữ và với sự hỗ trợ cho nhiều khuôn khổ do cộng đồng cung cấp trong các nền tảng như Trung tâm khuôn mặt ôm

Trong bài đăng này, chúng tôi hướng dẫn bạn cách xây dựng hệ thống cảnh báo thời gian thực sử dụng tin tức từ Twitter và phân loại các tweet bằng cách sử dụng mô hình được đào tạo trước từ Hugging Face Hub. Bạn có thể sử dụng giải pháp này để phân loại zero-shot, nghĩa là bạn có thể phân loại tweet ở hầu như bất kỳ nhóm danh mục nào và triển khai mô hình với SageMaker để suy luận theo thời gian thực.

Ngoài ra, nếu bạn đang tìm kiếm thông tin chi tiết về các cuộc trò chuyện của khách hàng và nâng cao nhận thức về thương hiệu bằng cách phân tích các tương tác trên mạng xã hội, chúng tôi khuyến khích bạn xem Trang tổng quan truyền thông xã hội dựa trên AI. Giải pháp sử dụng Amazon hiểu, một dịch vụ NLP được quản lý hoàn toàn giúp khám phá những thông tin chi tiết và kết nối có giá trị trong văn bản mà không yêu cầu kinh nghiệm học máy.

Học zero-shot

Các lĩnh vực NLP và hiểu ngôn ngữ tự nhiên (NLU) đã phát triển nhanh chóng để giải quyết các trường hợp sử dụng liên quan đến phân loại văn bản, trả lời câu hỏi, tóm tắt, tạo văn bản và hơn thế nữa. Sự tiến hóa này có thể xảy ra, một phần nhờ vào sự gia tăng của các kiến ​​trúc hiện đại, đa năng như máy biến áp, nhưng cũng có thể có nhiều kho văn bản chất lượng hơn và chất lượng hơn để đào tạo các mô hình như vậy.

Kiến trúc máy biến áp là một mạng nơ-ron phức tạp đòi hỏi kiến ​​thức chuyên môn về miền và lượng dữ liệu khổng lồ để được đào tạo từ đầu. Một thực tế phổ biến là sử dụng một máy biến áp hiện đại đã được đào tạo trước như BERT, RoBERTa, T5, GPT-2 hoặc DistilBERT và tinh chỉnh (chuyển giao việc học) mô hình cho một trường hợp sử dụng cụ thể.

Tuy nhiên, ngay cả việc thực hiện học chuyển giao trên một mô hình NLP được đào tạo trước thường có thể là một nhiệm vụ đầy thách thức, đòi hỏi một lượng lớn dữ liệu văn bản được gắn nhãn và một nhóm chuyên gia để quản lý dữ liệu. Sự phức tạp này ngăn cản hầu hết các tổ chức sử dụng các mô hình này một cách hiệu quả, nhưng phương pháp học tập bằng không giúp các tổ chức và các tổ chức ML khắc phục được nhược điểm này.

Zero-shot learning là một nhiệm vụ ML cụ thể trong đó bộ phân loại học trên một bộ nhãn trong quá trình đào tạo và sau đó trong quá trình suy luận được đánh giá trên một bộ nhãn khác mà bộ phân loại chưa từng thấy trước đây. Trong NLP, bạn có thể sử dụng bộ phân loại trình tự zero-shot được đào tạo dựa trên nhiệm vụ suy luận ngôn ngữ tự nhiên (NLI) để phân loại văn bản mà không cần bất kỳ tinh chỉnh nào. Trong bài đăng này, chúng tôi sử dụng NLI phổ biến BART mô hình bart-Large-mnli để phân loại các tweet. Đây là một mô hình lớn được đào tạo trước (1.6 GB), có sẵn trên trung tâm mô hình Hugging Face.

Hugging Face là một công ty AI quản lý nền tảng mã nguồn mở (Hugging Face Hub) với hàng nghìn mô hình NLP (máy biến áp) được đào tạo trước bằng hơn 100 ngôn ngữ khác nhau và hỗ trợ các khung công tác khác nhau như TensorFlow và PyTorch. Thư viện máy biến áp giúp các nhà phát triển và nhà khoa học dữ liệu bắt đầu với các nhiệm vụ NLP và NLU phức tạp như phân loại, trích xuất thông tin, trả lời câu hỏi, tóm tắt, dịch và tạo văn bản.

AWS và khuôn mặt ôm đã và đang hợp tác để đơn giản hóa và đẩy nhanh việc áp dụng các mô hình NLP. Hiện đã có một bộ các Hộp chứa học tập sâu (DLC) để đào tạo và suy luận trong PyTorch hoặc TensorFlow, cũng như các công cụ dự đoán và ước tính khuôn mặt ôm cho SageMaker Python SDK. Những khả năng này giúp các nhà phát triển với mọi cấp độ chuyên môn bắt đầu với NLP một cách dễ dàng.

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

Chúng tôi cung cấp một giải pháp hoạt động có thể tìm nạp các tweet trong thời gian thực từ các tài khoản Twitter đã chọn. Để trình diễn giải pháp của mình, chúng tôi sử dụng ba tài khoản, Amazon Web Services (@awscloud), Bảo mật AWS (@AWSSSecurityInfo) và Khoa học Amazon (@AmazonKhoa học), và phân loại nội dung của chúng thành một trong các loại sau: bảo mật, cơ sở dữ liệu, máy tính, lưu trữ và học máy. Nếu mô hình trả về một danh mục có điểm tin cậy lớn hơn 40%, một thông báo sẽ được gửi.

Trong ví dụ sau, mô hình đã phân loại một tweet từ Amazon Web Services trong danh mục máy học, với điểm tin cậy là 97%, tạo ra một cảnh báo.

Giải pháp dựa trên mô hình biến áp được đào tạo trước về Khuôn mặt ôm (từ Trung tâm khuôn mặt ôm) để phân loại các tweet dựa trên tập hợp các nhãn được cung cấp tại thời điểm suy luận — mô hình này không cần được đào tạo. Ảnh chụp màn hình sau đây cho thấy nhiều ví dụ hơn và cách chúng được phân loại.
Một số ví dụ liên quan
Chúng tôi khuyến khích bạn thử giải pháp cho chính mình. Chỉ cần tải xuống mã nguồn từ Kho GitHub và làm theo hướng dẫn triển khai trong tệp README.

Giải pháp xây dựng

Giải pháp giữ một kết nối mở với điểm cuối của Twitter và khi một tweet mới đến, sẽ gửi một tin nhắn đến một hàng đợi. Người tiêu dùng đọc tin nhắn từ hàng đợi, gọi điểm cuối phân loại và tùy thuộc vào kết quả, thông báo cho người dùng cuối.

Sau đây là sơ đồ kiến ​​trúc của giải pháp.
Phạm vi của giải pháp
Quy trình giải pháp bao gồm các thành phần sau:

  1. Giải pháp dựa vào API luồng của Twitter để nhận các tweet phù hợp với các quy tắc đã định cấu hình (tweet từ các tài khoản quan tâm) trong thời gian thực. Để làm như vậy, một ứng dụng chạy bên trong vùng chứa sẽ giữ một kết nối mở với điểm cuối của Twitter. Tham khảo API Twitter để biết thêm chi tiết.
  2. Container chạy trên Dịch vụ container đàn hồi Amazon (Amazon ECS), một dịch vụ điều phối vùng chứa được quản lý hoàn toàn giúp bạn dễ dàng triển khai, quản lý và mở rộng quy mô các ứng dụng được chứa trong vùng chứa. Một tác vụ duy nhất chạy trên cơ sở hạ tầng không máy chủ được quản lý bởi Cổng xa AWS.
  3. Mã thông báo Twitter Bearer được lưu trữ an toàn trong Cửa hàng thông số trình quản lý hệ thống AWS, một khả năng của Người quản lý hệ thống AWS cung cấp khả năng lưu trữ phân cấp, an toàn cho dữ liệu cấu hình và bí mật. Hình ảnh vùng chứa được lưu trữ trên Đăng ký container đàn hồi Amazon (Amazon ECR), một cơ quan đăng ký vùng chứa được quản lý hoàn toàn cung cấp dịch vụ lưu trữ hiệu suất cao.
  4. Bất cứ khi nào một tweet mới đến, ứng dụng vùng chứa sẽ đặt tweet đó vào một Dịch vụ xếp hàng đơn giản trên Amazon Hàng đợi (Amazon SQS). Amazon SQS là một dịch vụ xếp hàng tin nhắn được quản lý hoàn toàn cho phép bạn tách và chia tỷ lệ các dịch vụ nhỏ, hệ thống phân tán và các ứng dụng không có máy chủ.
  5. Logic của giải pháp nằm trong một AWS Lambda hàm số. Lambda là một dịch vụ tính toán hướng sự kiện, không máy chủ. Hàm sử dụng các tweet mới từ hàng đợi và phân loại chúng bằng cách gọi một điểm cuối.
  6. Điểm cuối dựa trên mô hình Khuôn mặt ôm và được lưu trữ trên SageMaker. Điểm cuối chạy suy luận và xuất ra lớp của tweet.
  7. Tùy thuộc vào phân loại, chức năng tạo ra một thông báo thông qua Dịch vụ thông báo đơn giản của Amazon (Amazon SNS), một dịch vụ nhắn tin được quản lý hoàn toàn. Bạn có thể đăng ký chủ đề SNS và nhiều điểm đến có thể nhận được thông báo đó (xem Điểm đến của sự kiện Amazon SNS). Ví dụ: bạn có thể gửi thông báo đến hộp thư đến dưới dạng tin nhắn email (xem Những thông báo thư điện tử).

Triển khai mô hình khuôn mặt ôm với SageMaker

Bạn có thể chọn bất kỳ mô hình nào trong số hơn 10,000 mô hình có sẵn công khai từ Trung tâm mô hình khuôn mặt ôm và triển khai chúng với SageMaker bằng cách sử dụng Ôm DLC suy luận khuôn mặt.

Khi đang sử dụng Hình thành đám mây AWS, bạn chọn một trong những Ôm hộp đựng suy luận khuôn mặt và cấu hình mô hình và nhiệm vụ. Giải pháp này sử dụng facebook / bart-large-mnli mô hình và nhiệm vụ phân loại zero-shot, nhưng bạn có thể chọn bất kỳ mô hình nào trong Phân loại Zero-Shot trên Trung tâm mô hình khuôn mặt ôm. Bạn định cấu hình các biến đó bằng cách đặt các biến môi trường HF_MODEL_ID và HF_TASK trong mẫu CloudFormation của mình, như trong đoạn mã sau:

SageMakerModel:
  Type: AWS::SageMaker::Model
  Properties:
    ExecutionRoleArn: !GetAtt SageMakerModelRole.Arn
    PrimaryContainer:
      Image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.7-transformers4.6-cpu-py36-ubuntu18.04
      Environment:
        HF_MODEL_ID: facebook/bart-large-mnli
        HF_TASK: zero-shot-classification
        SAGEMAKER_CONTAINER_LOG_LEVEL: 20
        SAGEMAKER_REGION: us-east-1

Ngoài ra, nếu bạn không sử dụng AWS CloudFormation, bạn có thể đạt được kết quả tương tự với vài dòng mã. Tham khảo Triển khai các mô hình lên Amazon SageMaker để biết thêm chi tiết.

Để phân loại nội dung, bạn chỉ cần gọi điểm cuối SageMaker. Sau đây là đoạn mã Python:

endpoint_name = os.environ['ENDPOINT_NAME']
labels = os.environ['ENDPOINT_NAME']

data = {
    'inputs': tweet,
    'parameters': {
        'candidate_labels': labels,
        'multi_class': False
    }
}

response = sagemaker.invoke_endpoint(EndpointName=endpoint_name,
                                     ContentType='application/json',
                                     Body=json.dumps(data))

response_body = json.loads(response['Body'].read())

Lưu ý Sai giá trị cho đa lớp tham số để chỉ ra rằng tổng của tất cả các xác suất cho mỗi lớp sẽ cộng lại bằng 1.

Cải tiến giải pháp

Bạn có thể nâng cao giải pháp được đề xuất ở đây bằng cách lưu trữ các tweet và kết quả mô hình. Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3), một dịch vụ lưu trữ đối tượng, là một lựa chọn. Bạn có thể viết tweet, kết quả và siêu dữ liệu khác dưới dạng các đối tượng JSON vào một thùng S3. Sau đó, bạn có thể thực hiện các truy vấn đặc biệt đối với nội dung đó bằng cách sử dụng amazon Athena, một dịch vụ truy vấn tương tác giúp dễ dàng phân tích dữ liệu trong Amazon S3 bằng cách sử dụng SQL tiêu chuẩn.

Bạn có thể sử dụng lịch sử không chỉ để trích xuất thông tin chi tiết mà còn để đào tạo một mô hình tùy chỉnh. Bạn có thể sử dụng hỗ trợ Ôm mặt để đào tạo một người mẫu với dữ liệu của riêng bạn với SageMaker. Tìm hiểu thêm về Chạy đào tạo trên Amazon SageMaker.

Các trường hợp sử dụng trong thế giới thực

Khách hàng đang thử nghiệm các mô hình Khuôn mặt ôm trên SageMaker. Bảo hiểm Bolivar, một công ty tài chính và bảo hiểm Colombia thành lập năm 1939, là một ví dụ.

“Chúng tôi đã phát triển một giải pháp thông báo mối đe dọa cho khách hàng và các nhà môi giới bảo hiểm. Chúng tôi sử dụng các mô hình NLP được đào tạo trước của Hugging Face để phân loại các tweet từ các tài khoản có liên quan nhằm tạo thông báo cho khách hàng của chúng tôi trong thời gian gần thực như một chiến lược phòng ngừa nhằm giúp giảm thiểu các khiếu nại. Yêu cầu bồi thường xảy ra do khách hàng không nhận thức được mức độ rủi ro mà họ phải chịu. Giải pháp cho phép chúng tôi tạo ra nhận thức ở khách hàng, biến rủi ro thành một thứ có thể đo lường được trong các tình huống cụ thể. ”

- Julian Rico, Trưởng phòng Nghiên cứu và Kiến thức tại Seguros Bolívar.

Seguros Bolívar đã làm việc với AWS để tái cấu trúc giải pháp của họ; nó hiện dựa vào SageMaker và giống với cái được mô tả trong bài đăng này.

Kết luận

Phân loại Zero-shot là lý tưởng khi bạn có ít dữ liệu để đào tạo trình phân loại văn bản tùy chỉnh hoặc khi bạn không đủ khả năng đào tạo mô hình NLP tùy chỉnh. Đối với các trường hợp sử dụng chuyên biệt, khi văn bản dựa trên các từ hoặc thuật ngữ cụ thể, tốt hơn nên sử dụng mô hình phân loại có giám sát dựa trên tập huấn luyện tùy chỉnh.

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách tạo bộ phân loại tin tức bằng cách sử dụng mô hình chụp bằng khuôn mặt ôm lấy khuôn mặt trên AWS. Chúng tôi đã sử dụng Twitter làm nguồn tin tức của mình, nhưng bạn có thể chọn nguồn tin tức phù hợp hơn với nhu cầu cụ thể của mình. Hơn nữa, bạn có thể dễ dàng thay đổi mô hình, chỉ cần chỉ định mô hình đã chọn của bạn trong mẫu CloudFormation.

Đối với mã nguồn, hãy tham khảo Kho GitHub Nó bao gồm các hướng dẫn thiết lập đầy đủ. Bạn có thể sao chép, thay đổi, triển khai và tự chạy nó. Bạn cũng có thể sử dụng nó như một điểm bắt đầu và tùy chỉnh các danh mục và logic cảnh báo hoặc xây dựng một giải pháp khác cho một trường hợp sử dụng tương tự.

Hãy thử và cho chúng tôi biết suy nghĩ của bạn. Như mọi khi, chúng tôi mong nhận được phản hồi của bạn. Bạn có thể gửi nó đến các địa chỉ liên hệ Hỗ trợ AWS thông thường của mình hoặc trong Diễn đàn AWS dành cho SageMaker.


Giới thiệu về tác giả

Xây dựng hệ thống cảnh báo theo thời gian thực dựa trên tin tức với Twitter, Amazon SageMaker và Hugging Face PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.david laredo là Kiến trúc sư tạo mẫu tại AWS Envision Engineering ở LATAM, nơi anh ấy đã giúp phát triển nhiều nguyên mẫu máy học. Trước đây, anh ấy đã từng là Kỹ sư học máy và đã làm công việc học máy được hơn 5 năm. Các lĩnh vực anh ấy quan tâm là NLP, chuỗi thời gian và ML đầu cuối.

Xây dựng hệ thống cảnh báo theo thời gian thực dựa trên tin tức với Twitter, Amazon SageMaker và Hugging Face PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Rafa Werneck là Kiến trúc sư tạo mẫu cao cấp tại AWS Envision Engineering, có trụ sở tại Brazil. Trước đây, anh ấy đã từng làm việc với tư cách là Kỹ sư phát triển phần mềm trên Amazon.com.br và Amazon RDS Performance Insights.

Xây dựng hệ thống cảnh báo theo thời gian thực dựa trên tin tức với Twitter, Amazon SageMaker và Hugging Face PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Vikram Elango là Kiến trúc sư Giải pháp Chuyên gia về 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 lĩnh vực tài chính và bảo hiểm có khả năng lãnh đạo về thiết kế và tư duy để xây dựng và triển khai các ứng dụng học máy 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 có trách nhiệm, tối ưu hóa suy luận và mở rộng ML trong 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.

Dấu thời gian:

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