Bangun sistem peringatan real-time berbasis berita dengan Twitter, Amazon SageMaker, dan Hugging Face PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Bangun sistem peringatan real-time berbasis berita dengan Twitter, Amazon SageMaker, dan Hugging Face

Saat ini, media sosial adalah sumber berita yang sangat besar. Pengguna mengandalkan platform seperti Facebook dan Twitter untuk mengonsumsi berita. Untuk industri tertentu seperti perusahaan asuransi, responden pertama, penegak hukum, dan lembaga pemerintah, dapat dengan cepat memproses berita tentang peristiwa relevan yang terjadi dapat membantu mereka mengambil tindakan saat peristiwa ini masih berlangsung.

Bukan hal yang aneh bagi organisasi yang mencoba mengekstrak nilai dari data teks untuk mencari solusi yang tidak melibatkan pelatihan model NLP (pemrosesan bahasa alami) yang kompleks. Untuk organisasi tersebut, menggunakan model NLP pra-terlatih lebih praktis. Selanjutnya, jika model yang dipilih tidak memenuhi metrik keberhasilan mereka, organisasi ingin dapat dengan mudah memilih model lain dan menilai kembali.

Saat ini, mengekstrak informasi dari data teks lebih mudah dari sebelumnya berkat hal berikut:

  • Munculnya arsitektur NLP tujuan umum yang canggih seperti transformer
  • Kemampuan yang dimiliki developer dan ilmuwan data untuk dengan cepat membangun, melatih, dan menerapkan model pembelajaran mesin (ML) dalam skala besar di cloud dengan layanan seperti Amazon SageMaker
  • Ketersediaan ribuan model NLP pra-terlatih dalam ratusan bahasa dan dengan dukungan untuk berbagai kerangka kerja yang disediakan oleh komunitas di platform seperti Memeluk Wajah Hub

Dalam posting ini, kami menunjukkan kepada Anda cara membangun sistem peringatan waktu nyata yang menggunakan berita dari Twitter dan mengklasifikasikan tweet menggunakan model yang telah dilatih sebelumnya dari Hugging Face Hub. Anda dapat menggunakan solusi ini untuk klasifikasi zero-shot, artinya Anda dapat mengklasifikasikan tweet di hampir semua rangkaian kategori, dan menerapkan model dengan SageMaker untuk inferensi waktu nyata.

Atau, jika Anda mencari wawasan tentang percakapan pelanggan Anda dan memperdalam kesadaran merek dengan menganalisis interaksi media sosial, kami mendorong Anda untuk memeriksa Dasbor Media Sosial Berbasis AI. Solusinya menggunakan Amazon Comprehend, layanan NLP yang terkelola sepenuhnya yang mengungkap wawasan dan koneksi berharga dalam teks tanpa memerlukan pengalaman pembelajaran mesin.

Pembelajaran zero-shot

Bidang NLP dan pemahaman bahasa alami (NLU) telah berkembang pesat untuk menangani kasus penggunaan yang melibatkan klasifikasi teks, menjawab pertanyaan, ringkasan, pembuatan teks, dan banyak lagi. Evolusi ini telah dimungkinkan, sebagian, berkat munculnya arsitektur tujuan umum yang canggih seperti transformer, tetapi juga ketersediaan korpora teks yang lebih banyak dan berkualitas lebih baik yang tersedia untuk pelatihan model semacam itu.

Arsitektur transformator adalah jaringan saraf kompleks yang membutuhkan keahlian domain dan sejumlah besar data untuk dilatih dari awal. Praktik yang umum adalah menggunakan transformator canggih yang telah dilatih sebelumnya seperti BERT, RoBERTa, T5, GPT-2, atau DistilBERT dan menyempurnakan (mempelajari transfer) model ke kasus penggunaan tertentu.

Namun demikian, bahkan melakukan pembelajaran transfer pada model NLP yang telah dilatih sebelumnya seringkali dapat menjadi tugas yang menantang, membutuhkan sejumlah besar data teks berlabel dan tim ahli untuk mengkurasi data. Kompleksitas ini mencegah sebagian besar organisasi menggunakan model ini secara efektif, tetapi pembelajaran tanpa sasaran membantu praktisi dan organisasi ML mengatasi kekurangan ini.

Pembelajaran zero-shot adalah tugas ML spesifik di mana pengklasifikasi belajar pada satu set label selama pelatihan, dan kemudian selama inferensi dievaluasi pada set label berbeda yang belum pernah dilihat oleh pengklasifikasi sebelumnya. Di NLP, Anda dapat menggunakan pengklasifikasi urutan zero-shot yang dilatih pada tugas inferensi bahasa alami (NLI) untuk mengklasifikasikan teks tanpa penyesuaian apa pun. Dalam posting ini, kami menggunakan NLI yang populer BART model bart-large-mnli untuk mengklasifikasikan tweet. Ini adalah model besar yang telah dilatih sebelumnya (1.6 GB), tersedia di hub model Hugging Face.

Hugging Face adalah perusahaan AI yang mengelola platform sumber terbuka (Hugging Face Hub) dengan ribuan model NLP (transformer) yang telah dilatih sebelumnya dalam lebih dari 100 bahasa yang berbeda dan dengan dukungan untuk kerangka kerja yang berbeda seperti TensorFlow dan PyTorch. Pustaka transformer membantu pengembang dan ilmuwan data memulai tugas NLP dan NLU yang kompleks seperti klasifikasi, ekstraksi informasi, penjawab pertanyaan, peringkasan, terjemahan, dan pembuatan teks.

AWS dan Memeluk Wajah telah berkolaborasi untuk menyederhanakan dan mempercepat adopsi model NLP. Satu set Deep Learning Containers (DLC) untuk pelatihan dan inferensi di PyTorch atau TensorFlow, dan estimator dan prediktor Hugging Face untuk SageMaker Python SDK kini tersedia. Kemampuan ini membantu pengembang dengan semua tingkat keahlian memulai NLP dengan mudah.

Ikhtisar solusi

Kami menyediakan solusi kerja yang mengambil tweet secara real time dari akun Twitter yang dipilih. Untuk demonstrasi solusi kami, kami menggunakan tiga akun, Amazon Web Services (@tokopedia), Keamanan AWS (@Info KeamananAWS), dan Ilmu Amazon (@AmazonIlmu Pengetahuan), dan mengklasifikasikan kontennya ke dalam salah satu kategori berikut: keamanan, database, komputasi, penyimpanan, dan pembelajaran mesin. Jika model mengembalikan kategori dengan skor kepercayaan lebih besar dari 40%, pemberitahuan akan dikirim.

Dalam contoh berikut, model mengklasifikasikan tweet dari Amazon Web Services dalam kategori pembelajaran mesin, dengan skor kepercayaan 97%, menghasilkan peringatan.

Solusinya bergantung pada model transformator terlatih Hugging Face (dari Hugging Face Hub) untuk mengklasifikasikan tweet berdasarkan sekumpulan label yang diberikan pada waktu inferensiโ€”model tidak perlu dilatih. Tangkapan layar berikut menunjukkan lebih banyak contoh dan bagaimana mereka diklasifikasikan.
Beberapa contoh yang relevan
Kami mendorong Anda untuk mencoba solusinya sendiri. Cukup unduh kode sumber dari Repositori GitHub dan ikuti petunjuk penerapan di file README.

Arsitektur solusi

Solusinya menjaga koneksi tetap terbuka ke titik akhir Twitter dan, ketika tweet baru tiba, mengirim pesan ke antrian. Konsumen membaca pesan dari antrian, memanggil titik akhir klasifikasi, dan, tergantung pada hasilnya, memberi tahu pengguna akhir.

Berikut ini adalah diagram arsitektur solusinya.
Lingkup solusi
Alur kerja solusi terdiri dari komponen berikut:

  1. Solusinya bergantung pada Stream API Twitter untuk mendapatkan tweet yang sesuai dengan aturan yang dikonfigurasi (tweet dari akun yang diminati) secara real time. Untuk melakukannya, aplikasi yang berjalan di dalam wadah membuat koneksi terbuka ke titik akhir Twitter. Mengacu pada API Twitter lebih lanjut.
  2. Kontainer berjalan pada Layanan Kontainer Amazon Elastic (Amazon ECS), layanan orkestrasi container terkelola sepenuhnya yang memudahkan Anda untuk menerapkan, mengelola, dan menskalakan aplikasi dalam container. Satu tugas berjalan pada infrastruktur tanpa server yang dikelola oleh Fargate AWS.
  3. Token Twitter Bearer disimpan dengan aman di Penyimpanan Parameter Manajer Sistem AWS, kemampuan Manajer Sistem AWS yang menyediakan penyimpanan hierarkis yang aman untuk data konfigurasi dan rahasia. Gambar kontainer di-host di Registry Kontainer Elastis Amazon (Amazon ECR), registri kontainer yang dikelola sepenuhnya yang menawarkan hosting berkinerja tinggi.
  4. Setiap kali ada tweet baru, aplikasi container akan memasukkan tweet ke dalam Layanan Antrian Sederhana Amazon (Amazon SQS) antrian. Amazon SQS adalah layanan antrian pesan terkelola sepenuhnya yang memungkinkan Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server.
  5. Logika solusi berada di AWS Lambda fungsi. Lambda adalah layanan komputasi berbasis peristiwa tanpa server. Fungsi menggunakan tweet baru dari antrian dan mengklasifikasikannya dengan memanggil titik akhir.
  6. Titik akhir bergantung pada model Wajah Memeluk dan di-host di SageMaker. Titik akhir menjalankan inferensi dan menampilkan kelas tweet.
  7. Tergantung pada klasifikasinya, fungsi menghasilkan notifikasi melalui Layanan Pemberitahuan Sederhana Amazon (Amazon SNS), layanan perpesanan yang dikelola sepenuhnya. Anda dapat berlangganan topik SNS, dan beberapa tujuan dapat menerima pemberitahuan itu (lihat Tujuan acara Amazon SNS). Misalnya, Anda dapat mengirimkan pemberitahuan ke kotak masuk sebagai pesan email (lihat Notifikasi email).

Terapkan model Memeluk Wajah dengan SageMaker

Anda dapat memilih salah satu dari lebih dari 10,000 model yang tersedia untuk umum dari Memeluk Wajah Model Hub dan menyebarkannya dengan SageMaker dengan menggunakan Memeluk DLC Inferensi Wajah.

Ketika menggunakan Formasi AWS Cloud, Anda memilih salah satu yang tersedia untuk umum Memeluk Wadah Inferensi Wajah dan mengkonfigurasi model dan tugas. Solusi ini menggunakan facebook/bart-besar-mnli model dan tugas klasifikasi zero-shot, tetapi Anda dapat memilih salah satu model di bawah Klasifikasi Zero-Shot di Hub Model Wajah Memeluk. Anda mengonfigurasinya dengan menyetel variabel lingkungan HF_MODEL_ID dan HF_TASK di template CloudFormation Anda, seperti pada kode berikut:

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

Atau, jika Anda tidak menggunakan AWS CloudFormation, Anda dapat mencapai hasil yang sama dengan beberapa baris kode. Mengacu pada Terapkan model ke Amazon SageMaker lebih lanjut.

Untuk mengklasifikasikan konten, Anda cukup memanggil titik akhir SageMaker. Berikut ini adalah cuplikan kode 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())

Perhatikan Salah nilai untuk multi_kelas parameter untuk menunjukkan bahwa jumlah semua probabilitas untuk setiap kelas akan bertambah hingga 1.

Peningkatan solusi

Anda dapat meningkatkan solusi yang diusulkan di sini dengan menyimpan tweet dan hasil model. Layanan Penyimpanan Sederhana Amazon (Amazon S3), layanan penyimpanan objek, adalah salah satu opsi. Anda dapat menulis tweet, hasil, dan metadata lainnya sebagai objek JSON ke dalam ember S3. Anda kemudian dapat melakukan kueri ad hoc terhadap konten tersebut menggunakan Amazon Athena, layanan kueri interaktif yang memudahkan analisis data di Amazon S3 menggunakan SQL standar.

Anda dapat menggunakan riwayat tidak hanya untuk mengekstrak wawasan tetapi juga untuk melatih model khusus. Anda dapat menggunakan dukungan Memeluk Wajah untuk melatih model dengan data Anda sendiri dengan SageMaker. Pelajari lebih lanjut tentang Jalankan pelatihan di Amazon SageMaker.

Kasus penggunaan dunia nyata

Pelanggan sudah bereksperimen dengan model Memeluk Wajah di SageMaker. Asuransi Bolivia, sebuah perusahaan keuangan dan asuransi Kolombia yang didirikan pada tahun 1939, adalah contohnya.

โ€œKami mengembangkan solusi pemberitahuan ancaman untuk pelanggan dan pialang asuransi. Kami menggunakan model NLP terlatih Hugging Face untuk mengklasifikasikan tweet dari akun yang relevan untuk menghasilkan notifikasi bagi pelanggan kami secara hampir real-time sebagai strategi pencegahan untuk membantu mengurangi klaim. Klaim terjadi karena nasabah tidak menyadari tingkat risiko yang dihadapinya. Solusi ini memungkinkan kami untuk membangkitkan kesadaran pelanggan kami, mengubah risiko menjadi sesuatu yang terukur dalam situasi nyata.โ€

โ€“ Julian Rico, Kepala Penelitian dan Pengetahuan di Seguros Bolรญvar.

Seguros Bolรญvar bekerja dengan AWS untuk mengarsitektur ulang solusi mereka; sekarang bergantung pada SageMaker dan menyerupai yang dijelaskan dalam posting ini.

Kesimpulan

Klasifikasi zero-shot sangat ideal ketika Anda memiliki sedikit data untuk melatih pengklasifikasi teks kustom atau ketika Anda tidak mampu untuk melatih model NLP kustom. Untuk kasus penggunaan khusus, ketika teks didasarkan pada kata atau istilah tertentu, lebih baik menggunakan model klasifikasi yang diawasi berdasarkan kumpulan pelatihan khusus.

Dalam postingan ini, kami menunjukkan cara membuat pengklasifikasi berita menggunakan model zero-shot Hugging Face di AWS. Kami menggunakan Twitter sebagai sumber berita kami, tetapi Anda dapat memilih sumber berita yang lebih sesuai dengan kebutuhan spesifik Anda. Selanjutnya, Anda dapat dengan mudah mengubah model, cukup tentukan model pilihan Anda di template CloudFormation.

Untuk kode sumber, lihat Repositori GitHub Ini termasuk petunjuk pengaturan lengkap. Anda dapat mengkloning, mengubah, menyebarkan, dan menjalankannya sendiri. Anda juga dapat menggunakannya sebagai titik awal dan menyesuaikan kategori dan logika peringatan atau membangun solusi lain untuk kasus penggunaan serupa.

Silakan mencobanya, dan beri tahu kami pendapat Anda. Seperti biasa, kami menantikan masukan Anda. Anda dapat mengirimkannya ke kontak AWS Support biasa Anda, atau di Forum AWS untuk SageMaker.


Tentang penulis

Bangun sistem peringatan real-time berbasis berita dengan Twitter, Amazon SageMaker, dan Hugging Face PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.David Laredo adalah Arsitek Prototyping di AWS Envision Engineering di LATAM, di mana dia telah membantu mengembangkan beberapa prototipe pembelajaran mesin. Sebelumnya ia telah bekerja sebagai Machine Learning Engineer dan telah melakukan machine learning selama lebih dari 5 tahun. Bidang minatnya adalah NLP, deret waktu, dan ML ujung ke ujung.

Bangun sistem peringatan real-time berbasis berita dengan Twitter, Amazon SageMaker, dan Hugging Face PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Rafael Werneck adalah Arsitek Prototipe Senior di AWS Envision Engineering, yang berbasis di Brasil. Sebelumnya, ia bekerja sebagai Software Development Engineer di Amazon.com.br dan Amazon RDS Performance Insights.

Bangun sistem peringatan real-time berbasis berita dengan Twitter, Amazon SageMaker, dan Hugging Face PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Vikram Elango adalah Arsitek Solusi Spesialis AI/ML di Amazon Web Services, yang berbasis di Virginia, AS. Vikram membantu pelanggan industri keuangan dan asuransi dengan kepemimpinan desain dan pemikiran untuk membangun dan menerapkan aplikasi pembelajaran mesin dalam skala besar. Dia saat ini fokus pada pemrosesan bahasa alami, AI yang bertanggung jawab, pengoptimalan inferensi, dan penskalaan ML di seluruh perusahaan. Di waktu senggangnya, ia senang bepergian, mendaki gunung, memasak, dan berkemah bersama keluarganya.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS