Bagaimana Amazon SageMaker membantu Widebot memberikan analisis sentimen berbahasa Arab

Bagaimana konten ini?

Perusahaan rintisan identik dengan pentingnya menciptakan pengalaman pelanggan yang luar biasa. Analisis sentimen adalah salah satu alat yang membantu dalam hal ini. Alat ini mengategorikan data sebagai positif, negatif, atau netral berdasarkan teknik machine learning, seperti analisis teks dan pemrosesan bahasa alami (NLP). Perusahaan menggunakan analisis sentimen untuk mengukur kepuasan klien untuk produk atau layanan target.

Analisis sentimen bisa menjadi tantangan yang besar untuk dilakukan bagi pengguna akhir bahasa Arab: Orang-orang di seluruh wilayah Timur Tengah dan Afrika Utara (MENA) berbicara dalam lebih dari 20 dialek bahasa Arab, dengan Bahasa Arab Standar Modern menjadi bahasa yang paling umum.

Dalam posting blog ini, kami menjelaskan bagaimana Widebot menggunakan Amazon Sagemaker agar berhasil menerapkan pengklasifikasi sentimen. Widebot adalah salah satu platform chatbot kecerdasan buatan (AI) percakapan berbasis bahasa Arab terkemuka di wilayah MENA. Pengklasifikasi sentimen mereka mendukung Bahasa Arab Standar Modern, serta dialek bahasa Arab Mesir, dengan akurasi tinggi saat diuji pada beberapa set data dari domain yang berbeda.

Model Widebot dapat dengan mudah disetel setelah diberi beberapa ratus sampel dari domain atau set data baru. Hal ini menjadikan solusi bersifat umum dan mudah beradaptasi dengan domain dan kasus penggunaan yang berbeda.

Karakteristik chatbot yang sukses

Chatbot adalah alat yang berguna untuk mengelola dan meningkatkan pengalaman pelanggan, serta mengotomatiskan tugas agar karyawan dapat fokus pada pekerjaan yang penting bagi misi perusahaannya. Perusahaan rintisan, khususnya, sudah akrab dengan nilai dari penggunaan layanan terkelola sehingga karyawan dapat menghabiskan waktu pada tugas-tugas yang paling penting untuk kesuksesannya.

Penting bagi chatbot untuk mengukur pelanggan yang puas atau tidak puas, serta mendokumentasikan tingkat konversi dari puas menjadi tidak puas (atau sebaliknya). Untuk memenuhi persyaratan ini, solusi Widebot:

  • Membantu pengguna menganalisis performa sistem chatbot-nya
  • Meningkatkan pengambilan keputusan chatbot
  • Membantu model machine learning (ML) hilir lainnya

Tantangan teknis dalam membangun analisis sentimen

Ilmuwan data Widebot selalu berinovasi dalam meningkatkan dan mengoptimalkan model deep learning agar memenuhi harapan pelanggan yang semakin meningkat. Untuk melayani pelanggan chatbot berbahasa Arab dengan lebih baik, mereka bekerja mengembangkan solusi baru untuk model deep learning analisis sentimen berbahasa Arab.

Tantangan ini mencakup:

  • Skalabilitas model
  • Waktu respons
  • Permintaan bersamaan besar-besaran
  • Total biaya berjalan

Seperti halnya banyak perusahaan rintisan, awalnya mereka melakukan deployment model pada infrastruktur yang terkelola mandiri dan server tujuan umum. Namun, ketika perusahaan rintisannya bertumbuh, mereka tidak dapat menskalakan model secara efisien untuk mengakomodasi data yang berkembang dan lonjakan permintaan bersamaan.

Widebot mulai mencari solusi untuk membantunya fokus membangun model dengan cepat, tanpa membuang waktu percuma untuk mengelola dan menskalakan alur kerja infrastruktur dan operasi machine learning (MLOps) yang mendasarinya.

Deployment model di Amazon SageMaker

Widebot memilih SageMaker karena menyediakan banyak pilihan infrastruktur dan opsi deployment model ML untuk memenuhi semua kebutuhan inferensi ML-nya. SageMaker memudahkan perusahaan rintisan untuk melakukan deployment model ML dengan performa harga terbaik.

“Untungnya, kami menemukan bahwa Amazon SageMaker memberi kami kepemilikan dan kontrol penuh atas seluruh siklus pengembangan model. Alat SageMaker yang sederhana dan kuat memungkinkan kami untuk mengotomatiskan dan menstandardisasi praktik MLOps untuk membangun, melatih, melakukan deployment, dan mengelola model dengan lebih mudah dan cepat dari yang mungkin dilakukan melalui infrastruktur terkelola mandiri,” kata Mohamed Mostafa, rekan pendiri dan Chief Technology Officer (CTO), Widebot.

Tim Widebot sekarang dapat fokus untuk membangun dan meningkatkan model ML mereka guna memenuhi harapan pelanggan, sementara SageMaker menangani pengaturan dan pengelolaan instans, kompatibilitas versi perangkat lunak, dan versi patching. SageMaker juga menyediakan metrik dan log bawaan bagi titik akhir untuk terus memantau kondisi dan performa model.

Amazon SageMaker Inference Recommender membantu Widebot memilih instans dan konfigurasi komputasi terbaik untuk melakukan deployment model ML-nya demi performa dan biaya inferensi yang optimal. SageMaker Inference Recommender memilih secara otomatis tipe instans komputasi, jumlah instans, parameter kontainer, dan optimalisasi model untuk inferensi guna memaksimalkan performa dan meminimalkan biaya.

Widebot juga menggunakan berbagai layanan AWS untuk membangun arsitekturnya, termasuk Amazon Simple Storage Service (Amazon S3), AWS Lambda, Amazon API Gateway, dan Amazon Elastic Container Registry (ECR):

Widebot sedang mencari solusi untuk menerbitkan model ML yang mereka kembangkan dengan aman bagi pelanggannya sebagai titik akhir API. Mereka menggunakan API Gateway, sebuah layanan terkelola penuh, untuk menerbitkan, memelihara, memantau, dan mengamankan titik akhir API dari model ML yang dilakukan deployment di SageMaker. API Gateway digunakan sebagai titik masuk tunggal yang menghadap ke luar untuk titik akhir SageMaker sehingga membuatnya mudah dan aman diakses dari klien.

Klien berinteraksi dengan titik akhir inferensi SageMaker dengan mengirimkan permintaan API ke titik akhir Gateway API. Gateway API memetakan permintaan klien ke titik akhir inferensi SageMaker yang sesuai dan menginvokasi titik akhir untuk mendapatkan inferensi dari model. Selanjutnya, Gateway API menerima respons dari titik akhir SageMaker dan memetakannya kembali, sebagai respons yang dikirim ke klien.

Gambaran umum solusi

Bagaimana Widebot membangun solusi baru yang sukses untuk model deep learning analisis sentimen berbahasa Arab? Berikut langkah-langkah yang mereka ikuti:

Pengumpulan dan penyusunan set data

Kumpulkan puluhan ribu sampel data dari berbagai sumber data (baik publik maupun internal).

Tinjau set data dengan cermat, terapkan pelabelan data, dan tingkatkan kualitas data dengan menghapus sampel yang tidak relevan.

Tim data melakukan proses anotasi, menggunakan Amazon SageMaker Ground Truth untuk membubuhi keterangan sampel yang cukup dari berbagai domain dan gaya penulisan untuk memperkaya set data yang digunakan.

Kirim sampel melalui alur prapemrosesan, sebelum melatih model menggunakan deep learning untuk mengklasifikasikan teks input sebagai positif, negatif, atau netral, dengan probabilitas masing-masing.

Membangun dan melatih model

Gunakan model Jaringan Neural Konvolusional (CNN) yang dilatih menggunakan Keras dan TensorFlow.

Terapkan banyak iterasi untuk menguji alur prapemrosesan, arsitektur, dan tokenizer yang berbeda hingga mencapai arsitektur yang mengeluarkan hasil terbaik pada set data sampel yang berbeda dan dari domain yang berbeda.

Gunakan alur prapemrosesan asli yang dikembangkan sendiri untuk menghapus informasi yang tidak perlu dari teks: tanggal, URL, sebutan, alamat email, tanda baca (kecuali '!?') , dan angka.

Terapkan langkah-langkah normalisasi teks berbahasa Arab, seperti menghapus diakritik dan menormalkan beberapa huruf yang digunakan pengguna secara bergantian, seperti (ء أ ئ ؤ إ) atau yaa (ي ى) atau karakter lainnya.

Terapkan stemming ringan pada teks yang menghapus beberapa sufiks dan prefiks dan mengurangi beberapa kata yang dikembangkan hingga ke akarnya (misalnya, (التعيينات) dikurangi menjadi (تعيين)).

Simpan model, praprosesor, hyperparameter, dan tokenizer menggunakan serialisasi dan ekspor sebagai file.h5 dan .pickle.

Melakukan deployment pada model di Amazon SageMaker

Bungkus model ke dalam API, titik akhir prediksi. Titik akhir tersebut menerima input JSON dari pengguna akhir dan mengubah data menjadi struktur data yang lebih mudah, membersihkannya, dan mengembalikan hasil sentimen data input.

Buat citra Docker yang berisi kode, semua dependensi, dan instruksi yang diperlukan untuk membangun dan menjalankan komponen di lingkungan apa pun.

Unggah artefak model ke bucket Amazon S3 dan citra Docker ke Amazon ECR.

Lakukan deployment pada model menggunakan SageMaker, pilih lokasi citra di Amazon ECR dan URI artefak di bucket Amazon S3.

Buat titik akhir menggunakan SageMaker dan manfaatkan Gateway API untuk menerbitkan titik akhir ke kliennya.

Tipe dan volume data

Untuk membangun modelnya, data Widebot terdiri dari sekitar 100.000 pesan berbeda untuk pelatihan dan 20.000 pesan untuk validasi dan pengujian. Pesan tersebut:

  • Berasal dari berbagai industri, seperti e-commerce, makanan dan minuman, dan jasa keuangan.
  • Termasuk ulasan untuk berbagai layanan atau produk. Misalnya, ulasan hotel, ulasan pemesanan, ulasan restoran, dan ulasan perusahaan.
  • Nada berkisar dari bahasa yang sangat formal hingga penggunaan kata-kata kasar yang parah.
  • Ditulis dalam dialek berbahasa Mesir dan Arab Standar Modern.
  • Diklasifikasikan ke dalam salah satu dari tiga kelas: negatif, netral, atau positif.

Tabel berikut menunjukkan contoh pesan:

ContohSentimenPercaya Diri
الخدمة لديكم مناسبة “Layanan Anda sangat baik”positif0,8471
شكرا لحسن تعاونكم “Terima kasih atas kerja samanya”positif0,9688
الخدمة والتعامل لديكم دون المستوى “Layanan Anda di bawah standar”negatif0,8982
حالة الجو سيئة جدا “Cuacanya sangat buruk”negatif0,9737
سأعاود الإتصال بكم وقت لاحق “Saya akan menghubungi Anda nanti”netral0,8255
رارد السسالام الام الالرات “Saya ingin menanyakan tentang layanan”netral0,9728

Ringkasan Hasil

Widebot menguji modelnya terhadap set data teks berbahasa Arab yang berbeda dalam berbagai dialek. Metrik ini diukur menggunakan set data dengan ribuan sampel. Skor F1 digunakan untuk mengukur akurasi model dengan set data yang berbeda. Rata-rata makro dan tertimbang dari skor F1 digunakan untuk mengukur presisi dan performa keseluruhan.

Akurasi model

Set data pengujian (20.679 sampel dalam rasio 5.004:1.783:13.892)

F1 NegatifF1 NetralF1 Positif Tingkat keakuratan keseluruhanRata-rata makroRata-rata tertimbang
89,979,495,192,588,192,5

Waktu respons model

Widebot mengukur waktu respons menggunakan rata-rata (AVG), minimum (MIN), dan maksimum (MAX) detik per respons (dtk./respons):

  • AVG: 0,106 dtk./respons
  • MIN: 0,088 dtk./respons
  • MAX: 0,957 dtk./respons

Berikut ini membandingkan metrik waktu respons antara menggunakan platform komputasi tujuan umum dan menggunakan Amazon SageMaker untuk hosting model saat melakukan deployment set data yang sama dengan ukuran muatan rata-rata 2 KB.

Total waktu responsTotal waktu respons Platform komputasi umum (instans EC2: p2.xlarge)Amazon SageMaker (instans SageMaker: ml.m4.xlarge)
Rata-rata0,202 dtk./respons0,106 dtk./respons
Minimum0,097 dtk./respons0,088 dtk./respons
Maksimum8,458 dtk/respons0,957 dtk./respons

Konkurensi model

Model ini mampu menangani 1.000 permintaan bersamaan yang disajikan rata-rata dalam 164 milidetik.

Kesimpulan

Posting ini menunjukkan bagaimana layanan AWS membantu Widebot membangun solusi komprehensif untuk mengekstrak sentimen dari teks obrolan dalam berbagai dialek berbahasa Arab, yang menggunakan model deep learning yang dihosting di SageMaker.

SageMaker membantu Widebot berinovasi lebih cepat dan melakukan deployment pada pengklasifikasi sentimennya untuk memecahkan masalah ML yang kompleks dalam mengekstraksi sentimen dari teks percakapan berbahasa Arab dan menerbitkannya sebagai titik akhir RESTful publik agar klien dapat mengakses dengan mudah dan aman melalui API Gateway.

Pendekatan ini dapat berguna bagi banyak kasus penggunaan yang serupa, di mana pelanggan ingin membangun, melatih, dan melakukan deployment pada model ML mereka di SageMaker lalu menerbitkan titik akhir inferensi model untuk pelanggannya dengan cara yang sederhana namun aman, menggunakan Gateway API.

Jika Anda tertarik untuk membaca selengkapnya mengenai keragaman linguistik dan cara menyempurnakan model bahasa berbasis transformer yang telah dilatih sebelumnya di Amazon SageMaker, Anda dapat membaca posting blog ini.

Mohamed Mostafa

Mohamed Mostafa

Mohamed Mostafa adalah co-founder dan CTO di WideBot. Dia bersemangat menerapkan praktik teknik modern dan mengembangkan perangkat lunak berkualitas tinggi untuk meningkatkan pengalaman pengguna.

Ahmed Azzam

Ahmed Azzam

Ahmed Azzam adalah Senior Solutions Architect yang berbasis di Dubai, UEA. Dia bersemangat membantu Startups tidak hanya merancang dan mengembangkan aplikasi yang dapat diskalakan, tetapi juga memikirkan solusi inovatif menggunakan layanan AWS.

Bagaimana konten ini?