MBKM Tugas KB Muhamad Ridho Tetlageni 1911502159 Universitas Budi Luhur
MBKM Tugas KB Muhamad Ridho Tetlageni 1911502159 Universitas Budi Luhur
Home
Selamat datang di pusat pendidikan Rasa, tempat terbaik untuk mempelajari semua
tentang percakapan AI. Kamu dapat mempelajari tentang semua :
1.1 Program Rasa
Bentuk Rasa
Transformers
Penyematan Bias
Sebelum Anda memulai kursus ini, Anda harus memastikan bahwa Rasa sudah
terinstal terlebih dahulu.
• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu
Inti dari membangun asisten Rasa adalah memberikan contoh yang dipelajari oleh
sistem Anda. Dengan begitu, Rasa dapat mencoba menggeneralisasi pola dalam
data Anda. Kami membangun Rasa agar sangat dapat disesuaikan dan mendukung
semuanya, mulai dari proyek hobi hingga sistem perusahaan yang kompleks.
b. Dua Sistem
Secara umum ada dua mekanisme di dalam Rasa yang menggerakkan Percakapan
AI.
c. NLU
NLU adalah singkatan dari pemahaman bahasa alami. Dalam konteks Rasa kita
biasanya berbicara tentang bagian dari sistem yang menerima teks mentah yang
masuk dan informasi yang dapat dibaca mesin yang keluar. Itu biasanya berarti
bahwa itu adalah bagian yang menerima teks dan dapat mengubahnya menjadi
maksud dan entitas.
Ini dapat berbasis aturan , dalam hal ini kita mungkin menggunakan Regex atau
dapat didasarkan pada jaringan saraf . Rasa hadir dengan arsitektur jaringan saraf,
yang disebut DIET, yang mengurutkan teks menjadi maksud dan entitas
berdasarkan contoh yang diberikan.
Kebijakan dapat lagi didasarkan pada aturan atau metode saraf. Rasa
memungkinkan Anda untuk menentukan aturan ringan Anda sendiri untuk
menentukan apa yang perlu terjadi. Tetapi untuk memungkinkan generalisasi,
Rasa juga menyediakan jaringan saraf yang disebut TED yang memilih giliran
terbaik berikutnya berdasarkan percakapan sejauh ini dan semua percakapan yang
dilatihnya.
g. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Apa perbedaan antara sistem NLU di Rasa dan sistem Kebijakan di Rasa?
• Apa perbedaan praktis antara metode berbasis aturan dan metode saraf?
b. Instalalsi
Secara umum, yang Anda perlukan untuk menginstal Rasa adalah perintah ini:
Anda harus menginstal python terlebih dahulu. Jadi jangan ragu untuk memeriksa
panduan instalasi berikut untuk bantuan tambahan.
• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu
Jika Rasa telah terinstal, sekarang kita dapat mulai menjelajahi beberapa perintah
dasar.
c. Kode
Jika Rasa telah diinstal, Anda dapat memulai asisten baru dengan menjalankan:
Ini akan memulai prompt yang akan menghasilkan asisten baru. Anda dapat
menunjukkan di mana Anda ingin membuat proyek baru dan Anda juga dapat
melatih asisten baru setelah file dibuat.
Asisten yang akan Anda buat disebut "moodbot". Ini adalah asisten sederhana
yang mencoba menghibur Anda jika Anda sedih. Jika Anda senang bot hanya
akan mengatakan "selamat tinggal" dan jika Anda sedih bot akan mencoba
menunjukkan gambar harimau yang lucu.
d. File
Proyek Rasa yang baru saja Anda buat harus memiliki struktur file berikut.
e. Perintah
Ada beberapa perintah yang di gunakan di Rasa.
• rasa init memungkinkan Anda untuk memulai proyek Rasa baru.
• rasa train memungkinkan Anda melatih asisten baru berdasarkan data
pelatihan Anda saat ini.
• rasa shell memungkinkan Anda untuk mengobrol dengan asisten terlatih.
• rasa -h memungkinkan Anda menerima teks bantuan yang relevan untuk
sebuah perintah.
• rasa --debug memberi Anda output log tambahan saat menjalankan
perintah.
f. Tautan
• Panduan Instalasi Langkah demi langkah
• Dokumentasi Baris Perintah Rasa
g. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Apa perintah utama yang akan Anda gunakan untuk menginstal Rasa?
• Apa perbedaan antara file domain.yml dan config.yml file.
• Dua perintah apa yang paling sering Anda gunakan saat mengembangkan
asisten Anda sendiri dari terminal?
c. Responses(Tanggapan)
Berikut adalah contoh Snippet dari domain.yml file yang menunjukkan beberapa
contoh tanggapan.
Terdapat utter_<thing> konvensi penamaan sehingga setiap respons dimulai
dengan "utter". Perhatikan bahwa kami sangat menyarankan untuk memiliki
utter_iamabot file domain Anda karena asisten harus dapat menjelaskan bahwa
mereka bukan manusia.
Anda tidak terbatas pada respons statis. Anda juga dapat menentukan respons
yang dinamis seperti berikut :
Dalam hal ini, Rasa akan secara acak memilih salah satu dari dua respons kapan
pun ia perlu mengirim utter_greet respons. Itu juga akan mengisi {name}
variabel dengan nilai slot jika ada yang tersedia.
Anda juga dapat memiliki tanggapan yang berisi gambar atau tombol juga seperti
berikut :
Anda bahkan dapat menyesuaikan pesan berdasarkan saluran yang Anda gunakan.
Dengan cara ini, pengguna slack akan bisa mendapatkan pesan yang berbeda.
Anda bahkan dapat mengirim muatan khusus jika Anda telah membuat saluran
sendiri. Ini adalah kasus penggunaan tingkat lanjut, tetapi Rasa benar-benar
memungkinkan Anda untuk menyesuaikan apa yang Anda kirim ke front-end.
Sekali lagi, ini adalah kasus penggunaan tingkat lanjut untuk “Responses”. Tapi
ada baiknya untuk mengetahuinya.
d. Intents(Maksud)
Respons adalah hal-hal yang dapat Anda kirim ke pengguna, tetapi kita juga perlu
mendefinisikan maksud yang dapat dikirim pengguna ke asisten. Itu sebabnya file
domain juga membutuhkan daftar maksud yang digunakan.
Data pelatihan untuk maksud ini dapat ditemukan dalam nlu.yml file. Kami
merekomendasikan memulai hanya dengan beberapa maksud saat Anda memulai,
tetapi Anda perlu menentukan maksud yang ingin Anda gunakan dalam
domain.yml file.
e. Tautan
• Dokumentasi Domain Rasa
f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Lampiran
Saat Anda membuat asisten dengan Rasa, Anda harus memiliki data pelatihan. Ini
mengacu pada data teks yang digunakan untuk melatih model atau fitur apa pun
yang Anda gunakan. Ini termasuk teks yang dibuat pengguna serta pola
percakapan. Ini dapat mencakup log dukungan pelanggan, dengan asumsi
pengumpulan & penggunaan kembali data tercakup dalam kebijakan privasi
Anda, atau percakapan pengguna dengan asisten Anda.
Meskipun log yang sudah ada sebelumnya menawarkan tempat yang baik untuk
memulai, data dari pengguna aktual yang berinteraksi dengan asisten Anda selalu
merupakan data terbaik untuk digunakan.
Sekarang mari kita bahas bagian-bagian berbeda dari data yang akan Anda
berikan.
c. Stories(Cerita)
Cerita mewakili data pelatihan untuk mengajari asisten Anda apa yang harus
dilakukan selanjutnya. Jika Anda sudah memiliki data percakapan, ada baiknya
memulai dengan pola yang Anda temukan di sana. Anda juga dapat membuat pola
Anda sendiri, tetapi kami menyarankan Anda untuk menggunakan pembelajaran
interaktif (melalui rasa interactive perintah) untuk memulai. Anda dapat mulai
membuat alur umum dan "happy flows" dan kemudian mencoba menambahkan
beberapa cerita yang berisi penyimpangan umum.
d. Contoh
Berikut adalah contoh Stories(cerita) :
e. Aturan
Aturan adalah jenis data pelatihan yang digunakan untuk melatih model
manajemen dialog asisten Anda. Aturan menyediakan cara untuk menggambarkan
potongan percakapan pendek yang harus selalu berjalan dengan cara yang sama.
Perbedaan utama antara aturan dan cerita adalah bahwa cerita dapat dilihat
sebagai contoh untuk dipelajari, sedangkan aturan adalah pola yang harus diikuti
oleh asisten .
Berikut adalah contoh aturan yang mungkin Anda miliki di rules.yml file Anda.
Aturan ini mengatakan "setiap kali saya melihat pengguna menggunakan maksud
salam, responsnya harus selalu menjadi utter_greet respons". Kami akan
berbicara lebih mendalam tentang aturan di video mendatang karena mereka juga
memainkan peran besar dalam menggunakan formulir, tetapi untuk saat ini kami
dapat melihatnya sebagai file lain yang berisi data untuk asisten kami.
f. Intents(Maksud)
Contoh maksud Anda disimpan dalam nlu.yml file Anda . Berikut ini contoh file
seperti itu:
g. Beberapa Tips
Saat Anda menambahkan data pelatihan. Ini membantu untuk mengingat tema-
tema berikut.
Saat Anda memulai dengan log yang sudah ada sebelumnya, kami sarankan untuk
menelusuri log untuk melihat apakah Anda dapat menemukan contoh yang sesuai
dengan maksud secara manual. Anda mungkin dapat menggunakan teknik
pembelajaran mesin untuk membantu Anda menemukan maksud, tetapi kami
menyarankan untuk selalu menjaga manusia dalam lingkaran sehingga Anda
dapat menjamin kebenarannya.
Jika Anda tidak memiliki log untuk memulai, pertimbangkan untuk memulai
dengan maksud yang paling umum dan coba gunakan pengetahuan domain atau
pengalaman kolega Anda untuk memberikan contoh yang masuk akal. Anda
selalu dapat menambahkan maksud "di luar cakupan" untuk teks yang tidak
langsung tercakup oleh asisten Anda. Setelah Anda mendapatkan beberapa
maksud dasar, yang terbaik adalah mulai membagikan asisten Anda sehingga
Anda dapat belajar dari data pengguna.
Data yang dihasilkan pengguna lebih baik daripada data sintetis. Kami tertarik
untuk mempelajari bagaimana pengguna berinteraksi dengan asisten dan kami
tidak ingin mengambil risiko overfitting pada data sintetis.
Setiap ucapan harus cocok dengan tepat satu maksud dalam data pelatihan Anda.
Rasa menyediakan sistem pembelajaran ujung ke ujung yang tidak bergantung
pada maksud untuk situasi di mana ucapan mungkin ambigu. Jika Anda memiliki
beberapa ucapan ambigu, mereka dapat ditambahkan, lakukan cerita seperti ini:
Alasan kami menggunakan contoh "Ciao!" di sini adalah karena itu bisa berarti
"halo" atau "selamat tinggal". Dalam konteks cerita yang ditampilkan itu berarti
"halo", tetapi kita tidak boleh menambahkan "Ciao!" sebagai contoh untuk
maksud "halo" karena ambigu. Itu juga bisa berarti "selamat tinggal".
h. Tautan
• Dokumentasi Format Pelatihan Rasa
• Kehilangan Dokumentasi Data NLU
• Dokumentasi Cerita Rasa
• Dokumentasi Aturan Rasa
i. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
2.6 Entitas
a. Video
Berkut video tentang entitas klik disini
b. Lampiran
Rasa dapat dilatih untuk mendeteksi maksud suatu ujaran, tetapi juga dapat
mendeteksi entitas dalam suatu ujaran. Entitas dapat berupa detail penting apa pun
yang dapat digunakan asisten Anda nanti dalam percakapan. Ini termasuk:
• Angka
• tanggal
• Nama negara
• Nama produk
Kemudian ingin mendeteksi Sydney sebagai entitas jenis "tujuan" dengan nilai
"Sydney."
c. Data Pelatihan
Anda dapat memberikan contoh entitas dalam nlu.yml file and. Contohnya
sebagai berikut :
Dapat diuraikan oleh spaCy untuk mendeteksi bahwa "Kanada" adalah lokasi
sementara Duckling mendeteksi bahwa "500" adalah angka.
Untuk mendeteksi entitas dengan model yang disediakan, Anda harus memastikan
bahwa alur pembelajaran mesin Anda juga dikonfigurasi dengan benar. Tapi kita
akan membahasnya di segmen selanjutnya.
e. Regex
Anda juga dapat menggunakan regex untuk mendeteksi entitas. Ini adalah pilihan
yang bagus ketika Anda berurusan dengan nomor telepon, kode pos, atau nomor
rekening.
Berikut adalah contoh pola ekspresi reguler yang ditambahkan ke data pelatihan
sebagai berikut :
Dan juga dapat menggunakan tabel pencarian untuk menghasilkan pola ekspresi
reguler peka huruf besar/kecil dengan contoh sebagai berikut :
Untuk mendeteksi entitas dengan pola regex yang disediakan, Anda harus
memastikan bahwa pipeline machine learning Anda juga dikonfigurasi dengan
benar. Akan dibahas di segmen selanjutnya.
f. Pembelajaran Mesin
Opsi lainnya adalah melatih model pembelajaran mesin Anda sendiri untuk
mendeteksi entitas. Model Rasa dasar, yang disebut DIET, mampu menangani ini
untuk Anda. Kelemahan dari pendekatan ini adalah Anda perlu menambahkan
contoh pelatihan yang memadai tetapi keuntungannya adalah Anda tidak terbatas
pada apa yang dapat ditawarkan oleh perpustakaan premade kepada Anda.
Model DIET dapat melatih data ini, dan memberikan output dalam format
berikut:
g. Sinonim
Entitas biasanya tidak hanya terdeteksi, mereka juga digunakan oleh komponen
lain di Rasa. Dengan mengingat hal itu, masuk akal untuk membakukan entitas
Anda dengan menggunakan sinonim. Anda dapat menentukan daftar sinonim di
nlu.yml file Anda seperti berikut :
Kami tertarik untuk mendeteksi dua kota, "New York" dan "Boston", tetapi kami
juga ingin mendeteksi informasi tambahan. "New York" adalah asalnya dan
"Boston" adalah tujuannya. Ini juga sesuatu yang ingin kami deteksi.
Sintaks sebaris entitas juga dapat digunakan untuk mendefinisikan peran dan grup
entitas, yang kemudian dapat diprediksi oleh DIET. Inilah yang mungkin terlihat
seperti dalam nlu.yml file sebagai berikut:
j. Tautan
• Dokumentasi Format Pelatihan Rasa
k. Latihan
Cobalah untuk menjawab Pertanyaan-pertanyaan berikut untuk menguji
penegetahuan anda.
• Bisakah satu kata dalam kalimat menjadi bagian dari dua entitas?
• Apa tiga cara utama untuk mendeteksi entitas di Rasa?
n
2.7 Slot
a. Video
Berkut video tentang slot klik disini
b. Lampiran
Di Rasa, slot adalah memori jangka panjang Anda dalam sebuah percakapan. Jika
ada informasi yang ingin Anda simpan untuk digunakan nanti, Anda biasanya
ingin menyimpannya di slot. Penting untuk dipahami bahwa slot tidak sama
dengan entitas. Anda dapat menyimpan informasi apa pun dalam slot, meskipun
tidak ada entitas yang terdeteksi. Yang mengatakan, sangat umum untuk mengisi
nilai slot dengan nilai entitas.
Anda akan melihat bahwa dalam konfigurasi ini kami telah menambahkan
influence_conversation tag. Pasalnya, slot bisa mempengaruhi sebuah cerita.
Anda mungkin memiliki sesuatu seperti ini di stories.yml file Anda .
Jika slot Anda dikonfigurasi untuk memengaruhi alur percakapan, Anda harus
memasukkannya ke dalam cerita pelatihan Anda.
c. Pengaturan Slot
Biasanya, nilai slot akan disetel oleh entita yang terdeteksi. Dalam situasi ini,
domain.yml file akan menyertakan entitas.
Dengan cara ini, ketika suatu entitas terdeteksi, ia dapat mengisi nilai slot. Anda
juga dapat menyetel nilai slot dengan tindakan khusus, tetapi kami akan
membahas cara melakukannya di video selanjutnya.
d. Isi Otomatis
Secara default, slot yang memiliki nama entitas yang cocok akan secara otomatis
diisi dengan nilai entitas tersebut. Anda dapat menonaktifkan perilaku ini dengan
mengubah konfigurasi auto_fill parameter menjadi false.
e. Jenis
Di Rasa, slot memiliki jenis. Ini berguna, karena jenis informasi tertentu
merupakan server yang lebih baik sebagai angka daripada string teks.
f. Teks Slot
Teks jenis slot dapat digunakan untuk menyimpan informasi teks apa pun. Itu
dapat mempengaruhi percakapan berdasarkan apakah slot telah diatur atau tidak.
g. Boolean Slot
Jenis slot Boolean dapat digunakan untuk menyimpan informasi yang bisa
mendapatkan nilai True atau False
h. Catagorical Slot
Kategoris jenis slot dapat digunakan untuk menyimpan nilai yang bisa
mendapatkan salah satu dari kumpulan nilai yang mungkin telah ditentukan
sebelumnya.
i. Float Slot
Float tipe ini dapat digunakan untuk menyimpan nilai numerik.
j. List Slot
Slot ini dapat digunakan untuk menyimpan daftar nilai. Saat dikonfigurasi, hanya
keberadaan slot yang dapat memengaruhi alur percakapan. Nilai-nilai itu sendiri
tidak akan diperhitungkan.
k. ‘Any’ Slot
Jenis slot ini dapat digunakan untuk menyimpan nilai arbitrer apa pun. Slot jenis
ini tidak berpengaruh terhadap alur percakapan yang artinya nilai dan keberadaan
slot tidak berpengaruh terhadap jalannya percakapan.
l. Initial Values
Terakhir, ada baiknya mengetahui bahwa Anda juga dapat menetapkan nilai
default pada slot dengan mengonfigurasi initial_value parameter. Nilai akan
ditetapkan ke slot dari awal percakapan dan dapat disetel ulang nanti oleh NLU
atau tindakan khusus.
m. Tautan
• Dokumentasi Slot Rasa
n. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
2.8 Tanggapan
a. Video
Berikut video tentang Tanggapan klik disini
b. Lampiran
Berikut adalah contoh cuplikan dari domain.yml file yang menunjukkan beberapa
contoh tanggapan.
Dalam hal ini, Rasa akan secara acak memilih salah satu dari tiga respons kapan
pun ia perlu mengirim utter_greet respons. Anda dapat membuatnya lebih
dinamis dengan memasukkan slot dalam tanggapan.
Itu juga akan mengisi {name}variabel dengan nilai slot jika ada yang tersedia.
c. Respon Konten
Anda juga dapat memiliki tanggapan yang berisi gambar atau tombol juga seperti
contoh sebagai berikut :
Anda bahkan dapat menyesuaikan pesan berdasarkan saluran yang digunakan.
Dengan cara ini, pengguna slack akan bisa mendapatkan pesan yang berbeda.
Anda bahkan dapat mengirim muatan khusus jika Anda telah membuat saluran
sendiri. Ini adalah kasus penggunaan tingkat lanjut, tetapi Rasa benar-benar
memungkinkan Anda untuk menyesuaikan apa yang Anda kirim ke front-end.
d. Pelatihan
ika Anda ingin asisten Anda benar-benar menggunakan respons yang ditentukan,
Anda juga harus memasukkannya ke dalam cerita pelatihan Anda. Sebagai
contoh:
e. Tautan
• Dokumentasi Tanggapan Rasa
f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Lampiran
Rasa menggunakan pembelajaran mesin untuk membuat prediksi tentang niat
pengguna serta tindakan terbaik berikutnya yang harus diambil. Pipeline
pembelajaran mesin ini perlu dikonfigurasi di config.yml file Anda. Berikut
adalah contoh dasar tentang tampilan config.yml file.
config.yml file terdiri dari dua bagian. Bagian tersebut pipeline menangani
prediksi maksud dan ekstraksi entitas. Policies bagian tersebut menangani
pemilihan tindakan berikutnya.
c. Pipeline
Ada berbagai jenis komponen yang dapat Anda temukan di jalur Rasa Pipeline.
Antara lain sebagai berikut :
• Tokenizer
• Fitur
• Pengklasifikasi Intent
• Ekstraktor Entitas
Mari kita bahas apa yang dilakukan masing-masing jenis komponen di atas.
d. Tokeniser
Langkah pertama dalam pipeline Rasa adalah membagi ucapan menjadi potongan
teks yang lebih kecil, yang dikenal sebagai token. Ini harus terjadi sebelum teks
ditampilkan untuk pembelajaran mesin, itulah sebabnya Anda biasanya
mencantumkan tokenizer terlebih dahulu di awal pipeline.
e. Fitur
Setelah kami memiliki token, kami dapat mulai menambahkan fitur pembelajaran
mesin numerik. Itulah yang dilakukan fitur. Diagram di bawah ini menunjukkan
bagaimana kata "Hai" dapat dikodekan.
Ada dua jenis fitur di Rasa :
Rasa menerapkan fitur ini ke semua token tetapi juga menghasilkan fitur untuk
seluruh kalimat. Ini kadang-kadang juga disebut sebagai CLS fitur atau sentence
fitur.
Secara historis, fitur token digunakan untuk mengekstrak entitas sementara fitur
kalimat digunakan untuk mendeteksi maksud. Dengan diperkenalkannya
algoritma DIET Rasa, ini telah berubah, tetapi ada baiknya untuk mengetahui
pilihan desain aslinya.
f. Pengklafikasi Intent
Setelah kami membuat fitur untuk semua token dan untuk seluruh kalimat, kami
dapat meneruskannya ke model klasifikasi maksud. Kami merekomendasikan
penggunaan model DIET Rasa yang dapat menangani klasifikasi maksud serta
ekstraksi entitas. Itu juga dapat belajar dari fitur token dan kalimat.
g. Ekstantor Entitas
Meskipun DIET mampu mempelajari cara mendeteksi entitas, kami tidak selalu
menyarankan untuk menggunakannya untuk setiap jenis entitas di luar sana.
Misalnya, entitas yang mengikuti pola terstruktur, seperti nomor telepon, tidak
benar-benar membutuhkan algoritme untuk mendeteksinya. Anda bisa
menanganinya dengan RegexEntityExtractor sebagai gantinya. Anda juga dapat
mempertimbangkan untuk menambahkan DucklingEntityExtractor atau
SpacyEntityExtractor jika cocok dengan kasus penggunaan Anda.
h. Ouput
Pipeline di Rasa adalah sistem yang dapat mengubah ucapan, seperti "Pesan
penerbangan dari Berlin ke SF", menjadi data terstruktur yang ditunjukkan di
bawah ini.
Mengingat bahwa kita sekarang memiliki maksud dan entitas, bagaimana kita bisa
memprediksi tindakan selanjutnya?
i. Kebijakan
Saat Rasa memprediksi suatu tindakan, itu tidak hanya melihat maksud dan
entitas saat ini. Itu juga terlihat dari percakapan selama ini.
Rrasa menggunakan kebijakan untuk memutuskan tindakan mana yang akan
diambil pada setiap langkah dalam percakapan. Ada tiga kebijakan utama yang
config.yml dimulai dengan file default :
j. Aturan Kebijakan
RulePolicy memungkinkan Anda untuk memberlakukan perilaku berbasis aturan
ketat pada asisten Anda.
Kebijakan akan memeriksa definisi aturan di rules.yml file Anda dan akan
menerapkannya. Anda dapat melihat contoh aturan seperti itu di bawah ini.
k. Kebijakan Memoisasi
MemoizationPolicy diterapkan setiap kali cerita saat ini mirip dengan cerita yang
sudah ada sebelumnya. Sebagai contoh. Jika ini adalah cerita sejauh ini.
Jika Anda memiliki percakapan yang sangat rumit di mana konteksnya benar
benar penting, mungkin masuk akal untuk meningkatkan max_history
parameternya. Perhatikan bahwa max_history parameter yang lebih tinggi
mungkin memerlukan waktu lebih lama untuk melatih model Anda.
m. Catatan Akhir
Rasa menyediakan banyak komponen yang dapat Anda gunakan untuk
membangun alur pembelajaran mesin Anda dan kami hanya menggores
permukaan dari apa yang tersedia di bagian ini. Secara umum kami sangat
menyarankan untuk tidak mengoptimalkan sistem Anda sebelum waktunya, tetapi
kami ingin menekankan bahwa Rasa juga mendukung banyak komponen untuk
pipeline Non-Bahasa Inggris. Anda juga dapat membuat komponen Anda sendiri
dengan Python jika itu menarik.
n. Tautan
• Blogpost terperinci tentang alat Non-Bahasa Inggris
• Blogpost terperinci tentang NLU Pipelines
• Blogpost terperinci tentang Kebijakan Dialog
• Dokumentasi Komponen Rasa Config
• Contoh Komponen Kustom
o. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Lampiran
Katakanlah kita telah memperkirakan tindakan selanjutnya yang akan diambil atas
nama pengguna. Kemudian kita mungkin perlu mengirim tanggapan yang sesuai
pada waktu tertentu, tetapi di lain waktu kita mungkin perlu melakukan tugas lain.
Hal-hal seperti:
f. Menjalankan Aksi
Jika Anda ingin berinteraksi dengan asisten yang memiliki tindakan kustom ini,
ingatlah bahwa sebelum menjalankan, rasa shell Anda harus memulai server
tindakan terlebih dahulu.
Anda juga harus memeriksa endpoints.yml file Anda sebelum menjalankan shell
Rasa. Anda ingin memastikan bahwa shell Rasa Anda dapat menemukan tindakan
kustom. Pastikan saja Anda memiliki titik akhir tindakan yang dikonfigurasi
dengan benar. Jika Anda menjalankan tindakan khusus pada port 5055, ini sudah
cukup:
h. Pengaturan Slot
Pertama, kami akan menambahkan tindakan khusus yang dapat mendaftarkan
informasi di slot atas nama pengguna.
Anda mungkin telah memperhatikan sebelumnya bahwa tindakan kustom
mengembalikan daftar. Ini dimaksudkan sebagai cara bagi Anda untuk memberi
tahu Rasa untuk menjalankan acara tertentu. Dalam contoh kami, kami
menunjukkan cara memancarkan SlotSet-event, tetapi Rasa juga mendukung
event lain. Periksa dokumen untuk informasi lebih lanjut.
i. Mengambil Slot
Tindakan yang dapat mengambil nilai slot ditunjukkan di bawah ini.
Sekali lagi Anda dapat melihat bahwa tindakan kustom ini benar-benar mencoba
untuk menjadi kuat terhadap kejadian tak terduga. Bahkan jika nilai slot kosong,
atau jika nilai slot tidak cocok dengan entri database, kita dapat "gagal dengan
baik".
j. Tautan
• Dokumentasi Pelacak
• Dokumentasi Acara Rasa SDK
k. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Lampiran
Ada banyak kasus penggunaan untuk mengumpulkan informasi dari pengguna
sebelum mengambil tindakan atas nama mereka. Jika kita ingin, misalnya,
memesan pizza maka kita perlu mengetahui jenis dan ukuran pizza tersebut. Untuk
mempermudah pengumpulan informasi, Rasa memiliki fitur "Formulir" yang kami
selami di segmen ini.
Oleh karena itu, untuk menyiapkan formulir dasar, Anda perlu mengubah
domain.ymlfile untuk mengonfigurasi formulir dan slot, tetapi Anda juga perlu
memperbarui rules.ymlfile agar Rasa mengerti saat Anda memicu loop formulir.
Oleh karena itu, untuk menyiapkan formulir dasar, Anda perlu mengubah
domain.yml file untuk mengonfigurasi formulir dan slot, tetapi Anda juga perlu
memperbarui rules.yml file agar Rasa mengerti saat Anda memicu loop formulir.
Contoh domain.yml dibawah ini menunjukan cara mengatur simple for dengan
dua slot untuk diisi.
Dalam situasi ini kami ingin memvalidasi dan menangkap ucapan yang tidak
valid ini sehingga kami dapat meminta pengguna untuk mencoba lagi.
g. Kode Python
Contoh validator untuk formulir kami dapat dilihat di bawah ini.
Ada beberapa hal yang perlu diperhatikan.
• Perhatikan bahwa ValidateSimplePizzaFormkelas kita mewarisi dari
FormValidationAction, yang berbeda dari Actionkelas standar yang
diwarisi dari tindakan kustom.
• The nameMetode mendefinisikan nama validator, yang perlu bersesuaian
dengan nama di kami domain.ymlberkas dan kebutuhan untuk mematuhi
validate_<form_name>konvensi penamaan.
• Untuk setiap slot kami memiliki validate_<slot_name>metode. Sekali lagi,
kita perlu mengikuti konvensi penamaan.
• Perhatikan bahwa setiap metode validator mengembalikan kamus. Anda
dapat mengatur slot Noneyang akan membatalkannya.
h. Menjelajahi Formulir
Jika Anda ingin menjelajahi formulir Anda, sebaiknya gunakan rasa interactive.
Ini memberi Anda shell interaktif yang juga menunjukkan status slot, yang sangat
berguna saat Anda men-debug formulir.
i. Tautan
• Dokumentasi Formulir Rasa
j. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Lampiran
Anda mungkin telah merencanakan formular menggunakan diagram seperti
dibawah ini.
Tetapi suatu bentuk juga harus kuat terhadap jalan yang tidak menyenangkan.
Mungkin akan berurusan dengan pengguna yang meminta klarifikasi saat mereka
memberikan informasi kepada asisten.
Kapan pun ini terjadi, anda ingin asisten menjawab perintah, dan setelah itu
Kembali ke formular.
Jadi mari kita bahas cara konfigurasi formular Rasa mengenai hal di atas.
c. Kode Github
Kami akan membagikan cuplikan kode di bawah ini. Tetapi kami juga memiliki
repositori Github dengan seluruh proyek Rasa. Jika Anda lebih suka menjelajahi
kode seperti itu, cukup buka repositori di sini.
Mari mulai dengan mengadaptasi rules.yml file kita.
Idenya di sini adalah bahwa kita dapat menambahkan aturan yang mampu
menangani "interupsi" yang terjadi dari dalam formulir. Dalam hal ini, setelah
utter_iamabot respons dikirim, kontrol diberikan kembali ke loop formulir.
d. Menghentikan Formulir
Biasanya, formulir akan ditutup secara otomatis setelah pengguna memberikan
semua slot yang diperlukan. Tetapi bagaimana jika pengguna menghentikan
formulir sebelum waktunya? Dalam hal ini kita perlu memikirkan cara untuk
menonaktifkan loop dari suatu formulir.
Mari kita coba menerapkan perilaku ini, mengikuti diagram di bawah ini.
Jika Anda mencoba membangun alur ini, kami sangat menyarankan menggunakan
rasa interactive perintah sebagai cara untuk memulai.
Ini juga bagus untuk mengamati muatan dari semua tombol. Idenya adalah ketika
pengguna menekan tombol dengan muatan "fungi", Rasa akan menerimanya
seolah-olah pengguna mengetik "jamur" di kotak dialog. Jika payload dimulai
dengan garis miring terbalik, seperti di "/affirm", itu akan ditafsirkan sebagai
maksud.
f. Validasi
Kami fancy_pizza_form masih membutuhkan validator. Ini didefinisikan di
bawah ini.
Ada beberapa hal yang perlu diperhatikan di sini.
g. Cobalah!
Jika Anda tertarik untuk bereksperimen dengan ini, kami sarankan Anda
menggunakan rasa interactive. Dengan begitu, Anda juga dapat memeriksa nilai
slot saat percakapan berlanjut.
h. Tautan
• Dokumentasi Formulir Rasa
i. Latihan
b. Lampiran
Sebelum menjelaskan cara menambahkan Rasa ke situs web, mungkin masuk akal
untuk membicarakan arsitektur Rasa secara umum. Anda mungkin ingat dari
video sebelumnya bahwa penerapan Rasa yang menggunakan tindakan kustom
terdiri dari dua layanan terpisah. Satu layanan menangani tindakan kustom dan
layanan lainnya menangani alur pembelajaran mesin dan peristiwa percakapan.
Jika kami ingin mendorong ini ke produksi, kami akan membutuhkan lebih
banyak layanan yang terpasang.
Ada satu hal tambahan yang hilang dalam diagram ini, dan begitulah cara
pengguna kami terhubung ke asisten kami.
Selama ini kami hanya berinteraksi dengan Rasa melalui terminal. Saat Anda
meluncurkan, rasa shell Anda akan memulai server kecil di mesin Anda dan
terminal Anda akan berkomunikasi dengan Rasa melalui HTTP di bawah tenda.
Mampu berkomunikasi melalui HTTP sangat bagus karena itu berarti kita juga
dapat menghubungkan situs web ke sana, tetapi ada baiknya untuk memahami
bahwa ini hanyalah salah satu dari banyak saluran yang didukung Rasa.
c. Kode
Anda juga dapat menyalin proyek lengkap dari Github jika anda mau.
Mari kita terapkan front end yang sangat mendasar dengan Rasa. Kami akan
menggunakan proyek chatroom.js untuk ini. Berikut index.html file yang akan
kita gunakan.
Kami dapat meluncurkan situs statis dengan menjalankan dua perintah di dua
terminal.
d. Debug
Jika anda sedang membangun sebuah situs dan anda sedang men-debug,
sebaiknya jalankan Rasa Melalui :
Dengan begitu, Anda akan mendapatkan lebih banyak log, yang dapat membantu
Anda melakukan debug.
e. Tautan
• Ikhtisal Arsitektur Rasa
f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Bisakah Anda menjelaskan untuk apa toko Tracker dan Lock store?
b. Lampiran
Salah satu risiko terbesar dalam pembelajaran mesin adalah kami akhirnya
mengoptimalkan kumpulan data yang tidak mencerminkan minat pengguna kami.
Untuk mencegah fenomena "mengoptimalkan hal yang salah" ini, kami sarankan
untuk mengikuti metodologi pengembangan yang disebut Pengembangan
Berbasis Percakapan.
CDD bukanlah proses linier; Anda akan berputar kembali ke tindakan yang sama
berulang-ulang saat Anda mengembangkan dan meningkatkan bot Anda.
c. Rasa X
Untuk mempermudah memulai Pengembangan Berbasis Percakapan, kami
sarankan untuk bekerja dengan Rasa X. Ini adalah alat sumber tertutup, tetapi
gratis, yang bekerja di atas Sumber Terbuka Rasa. Salah satu manfaat utama
adalah dapat diterapkan di mana saja, sehingga data pelatihan Anda tidak keluar
dari organisasi Anda.
d. Arsitektur Rasa X
Sebelum berbicara tentang bagaimana Anda dapat menggunakan Rasa X, ada
baiknya untuk memahami cara berkomunikasi dengan Rasa. Jadi mari kita mulai
dengan diagram yang disederhanakan.
e. Instalasi
ika Anda ingin menjalankan Rasa X secara lokal, Anda harus menginstalnya
terlebih dahulu. Anda dapat melakukan ini dengan pip tetapi Anda harus
memastikan bahwa Anda mengatur url indeks untuk menunjuk ke server Rasa.
Opsional, Anda juga dapat menginstal ngrok jika Anda ingin berbagi asisten lokal
Anda dengan pengguna di internet. Jika Anda lebih menyukai panduan langkah
demi langkah tentang cara menginstal Rasa X, Anda mungkin menghargai video
instalasi ini yang menjelaskan langkah-langkah per sistem operasi.
f. Kode
Setelah terinstal, anda dapat menjalankan Rasa X di terminal melalui :
Jika Anda ingin membagikan asisten Anda melalui ngrok. Anda harus terlebih
dahulu membagikan asisten dari menu. Ini akan memberi Anda URL yang dapat
Anda bagikan yang akan terlihat seperti:
Anda menggunakan ngrok di terminal kedua dan mengarahkannya ke port yang
benar melalui:
g. Tautan
• Dokumentasi Rasa X
• Panduan Rasa X & ngrok
• Panduan Koneksi Rasa X & Git
h. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Apa 6 tindakan utama yang akan Anda ikuti saat berlatih CDD?
• Apakah Rasa X merupakan produk yang mengandung Rasa Open Source
atau bekerja di atas Rasa Open Source?
2.15 Rasa Selalu Meningkat
a. Video
Berikut video mengenai peningkatan dari framework Rasa klik disini
b. Lampiran
Mari kita lakukan eksperimen pikiran. Mari kita pertimbangkan sebuah ucapan
dan mari kita coba mencari tahu apa maksud yang terkait :
• Kata 1: “yes”
Seperti “affirm” mungkin ada niat baik untuk yang satu ini.
• Kata 2: “no”
Yang satu ini juga cukup mudah. Rasanya "deny" mungkin ada niat baik
untuk yang satu ini.
c. Peningkatan Rasa
Anda dapat membuat asisten menggunakan maksud, tetapi maksud pada dasarnya
terbatas. Bahasa asli jauh lebih fleksibel dan ekspresif daripada yang diizinkan
oleh maksud, jadi di Rasa kami meneliti metode untuk memungkinkan
percakapan tanpa maksud.
Ini adalah contoh yang baik untuk ditunjukkan, karena itu adalah contoh
bagaimana Rasa selalu berkembang. Rasa memiliki tim riset yang besar dan aktif
yang terus meningkatkan cara Anda membangun asisten. Kami baru-baru ini
merilis fitur ujung ke ujung tanpa maksud dari Rasa. Sebelum menyelami cara
kerjanya, ada baiknya menjelaskan keseluruhan visi kami tentang bagaimana AI
Percakapan akan berkembang dalam beberapa tahun ke depan.
j. Menaikan Tangga
Di setiap level, kami mengurangi beban pengguna akhir, serta perancang
percakapan, untuk menerjemahkan apa yang mereka inginkan ke dalam bahasa
asisten percakapan. Di situlah nilai AI percakapan.
k. Pembelajaran Akhir
Saat ini, kami percaya bahwa mungkin untuk membuat asisten level tiga dengan
Rasa. Mulai Rasa 2.2, kami telah merilis fitur pembelajaran "end-to-end" yang
memungkinkan Anda melatih ucapan yang tidak termasuk dalam maksud.
l. Kode
Sekarang kami akan menjelaskan fitur end-to-end yang kami jelaskan di video.
Anda dapat mengikuti, tetapi Anda juga dapat membandingkan proyek standar
dengan proyek ujung ke ujung di Github.
Jika Anda ingin asisten dapat menangani ucapan tanpa maksud, Anda terutama
perlu menambahkan ucapan ke stories.yml file Anda.
Dalam contoh ini kami memiliki cerita dari asisten yang menanyakan pengguna
apakah mereka tertarik untuk membeli pizza. Ketika pengguna mengatakan
bahwa "I already had that yesterday." kami dapat menafsirkannya sebagai
"deny" maksud dalam konteks percakapan, tetapi itu akan menjadi contoh yang
sangat aneh tanpa konteks. Itulah mengapa contoh-contoh ini adalah contoh yang
bagus untuk pembelajaran ujung ke ujung.
m. Masa Depan
Fitur pembelajaran end-to-end hanyalah satu, dari banyak, peningkatan Rasa.
Kami membutuhkan banyak peningkatan bertahap untuk membangun
infrastruktur yang diperlukan guna membangun asisten level lima, tetapi kami
juga perlu memungkinkan setiap pengembang untuk mendorong apa yang
mungkin dilakukan dengan AI percakapan. Bukan hanya perusahaan teknologi
besar.
Kami tidak akan tahu peningkatan apa yang akan kami lihat selama beberapa
tahun ke depan, tetapi kami memiliki strategi.
n. Sumber Terbuka
Bagian pertama dari strategi kami adalah open source. Kode sumber terbuka
membuat kemajuan bidang jauh lebih cepat daripada menyimpannya di balik
jeruji. Membangun asisten level lima itu sulit, dan sepertinya kami di Rasa tidak
memiliki semua jawabannya. Pengembang secara teratur meretas berbagai hal ke
dalam kerangka sumber terbuka kami untuk tujuan mereka sendiri dan selama
peretasan inilah penemuan baru dibuat. Siapa pun dapat memperluas infrastruktur
kami dan menerapkan ide baru mereka. Sebagai contoh, ada komunitas kecil
pengembang di Cina yang membuat komponen Rasa berfungsi dengan baik untuk
bahasa Cina, tetapi ada banyak proyek sampingan yang menawarkan komponen
NLU untuk bahasa Non-Inggris .
Manfaat lain dari ekosistem open source adalah Rasa dapat terhubung ke alat
yang ada juga. Rasa secara native mendukung spaCy dan hugface dan setiap
peningkatan pada alat ini juga akan menyebabkan peningkatan pada ekosistem
Rasa.
o. Riset
Bagian kedua dari strategi kami adalah bahwa kami banyak berinvestasi dalam
penelitian. Kami memiliki tim peneliti yang besar dan pekerjaan mereka selalu
berakhir di basis kode Rasa. Rasa berkontribusi dalam dua cara: kami melakukan
penelitian kami sendiri tentang pendekatan yang kami yakini akan membawa
kami ke tingkat berikutnya, dan kami mencari terobosan yang paling berarti dan
menemukan cara untuk membuat komunitas kami mendapat manfaat darinya.
Banyak dari versi pertama proyek penelitian ini dilakukan di depan umum
sehingga komunitas kami dapat berkolaborasi dan memberi kami umpan balik.
p. Komunitas
Ini membawa kita ke bagian ketiga dari strategi kita: komunitas kita. Sebagai
sebuah perusahaan, kami tidak akan menghasilkan setiap ide yang memajukan
tumpukan teknologi. Kami berinvestasi dalam komunitas pengembang global
yang ramah yang bertukar ide. Kami secara aktif berinvestasi dalam pendidikan
pengembang kami, tetapi kami juga menyelenggarakan forum yang secara aktif
dikelola oleh semua orang di perusahaan. Ini juga merupakan tempat di mana
banyak teknik dan alat Non-Inggris dibahas.
Pembelajaran Mesin bukan bidang khusus lagi dan menjadi bagian dari rekayasa
perangkat lunak standar. Jadi kami perlu memastikan bahwa tumpukan teknologi
kami dapat dimengerti oleh pengembang. Itu sebabnya kami juga banyak
berinvestasi dalam materi pendidikan. Kami menawarkan banyak kursus gratis di
pusat pembelajaran kami, tetapi Anda juga dapat menemukan banyak sumber
pendidikan di saluran Youtube kami.
• Rasa Tutorial Youtube Playlist
• NLP untuk Daftar Putar Pengembang
• Papan Tulis Algoritma
q. Tautan
• Posting blog ujung ke ujung
• Lima Tingkat Blogpost AI Percakapan
Anda dapat memiliki dua upaya untuk lulus tes dan hingga satu jam untuk setiap
upaya. Jika Anda terganggu, Anda dapat menyimpan pekerjaan Anda dan pergi
dan itu akan menjeda pengatur waktu.
Jika Anda lulus dengan akurasi minimal 85%, sertifikat Anda akan dibuat dan
dapat langsung diunduh. Setelah lulus ujian, Anda dapat mengunduh sertifikat
untuk dibagikan atau langsung dicetak.
Anda dapat memiliki dua upaya untuk lulus tes dan hingga satu jam untuk setiap
upaya. Jika Anda terganggu, Anda dapat menyimpan pekerjaan Anda dan pergi
dan itu akan menjeda pengatur waktu.
Jika Anda lulus dengan akurasi minimal 85%, sertifikat Anda akan dibuat dan
dapat langsung diunduh. Setelah lulus ujian, Anda dapat mengunduh sertifikat
untuk dibagikan atau langsung dicetak.
b. Cara Belajar
Cara terbaik untuk belajar untuk ujian sertifikasi adalah dengan membangun
asisten Rasa. Anda juga dapat melihat video Conversational AI dengan Rasa kami
di YouTube atau menggunakan tujuan pembelajaran di bawah ini untuk memandu
pembelajaran Anda sendiri. Anda akan dievaluasi pada masing-masing tujuan
pembelajaran ini selama ujian.
b. Prasayarat
Dalam rangkaian video ini, kami akan menggunakan pustaka whatlies untuk
membantu menjelaskan properti penyisipan kata. Kami berasumsi bahwa Anda
sudah agak familiar dengan word embeddings sebelum memulai kursus ini.
a. Video
Berikut video mengenai mengukur bia klik disini
b. Kode
Kami akan mulai dengan mengimpor backend bahasa yang berbeda. Perhatikan
bahwa Anda mungkin perlu mengunduh embeddings terlebih dahulu.
Anda dapat menghitung kesamaan antara "arah penyematan" melalui:
Selanjutnya, kita akan membuat grafik dengan kata berpasangan. Kami menggunakan
ini, tetapi jangan ragu untuk menggunakan yang lain.
Grafik korelasi sekarang dapat dibuat melalui.
c. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Kami mulai mengukur bias dalam video ini. Apakah ada cara lain untuk
mengukur bias?
• Kami mulai mengukur bias dalam hal profesi dan bias pria/wanita.
Bisakah Anda menemukan kapak lain yang mungkin ingin kami
perhatikan juga?
b. Kode
Ini kode dari video sebelumnya.
Kami sekarang akan menghasilkan grafik yang sama tetapi sekarang dengan
proyeksi pada arah "he-she".
c. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Kita akan melihat di video selanjutnya bahwa trik proyek ini memiliki
beberapa kekurangan. Bisakah Anda memprediksi di mana
kekurangannya?
• Jika Anda ingin melakukan latihan pemrograman; coba ulangi latihan
tetapi dengan jenis bias yang berbeda.
Untuk menjalankan model standar ini tanpa debiasing, Anda dapat menjalankan:
f. Kesimpulan
Jarak kosinus tampaknya menunjukkan bahwa kami dapat menghapus "arah"
gender dari embeddings kami dengan menggunakan proyeksi linier sebagai teknik
debiasing. Namun, jika kami menggunakan penyematan yang tidak bias untuk
memprediksi jenis kelamin, tampaknya kami masih menyimpan banyak kekuatan
prediksi.
Itu sebabnya kami tidak bisa mengatakan bahwa teknik penyangkalan ini sudah
cukup! Ada banyak alasan untuk tetap berhati-hati dan kritis saat menerapkan
penyematan kata dalam praktik.
g. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Bisakah Anda memikirkan alasan mengapa trik proyeksi kami tampaknya
tidak berfungsi saat kami melihat efek dalam kesamaan kosinus?
b. Kode
Meskipun video ini sebagian besar merupakan eksplorasi visual, kami telah
menambahkan kode python untuk menghasilkan grafik 3d yang bagus.
b. Kode
Mari kita gunakan whatlies untuk mengeksplorasi analogi-analogi ini.
Kita bisa mulai dengan mengambil embedding yang paling mirip berdasarkan
jarak cosinus.
c. Jelajahi
Masih banyak lagi contoh-contoh ini yang perlu ditelusuri. Namun secara umum,
aman untuk mengatakan bahwa analogi kata tidak berlaku. Jika Anda tertarik
untuk menjelajahi lebih banyak, Anda mungkin menghargai fungsi pembantu ini.
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Apa analogi lain yang bisa Anda temukan selain king - man + woman?
Dapatkah Anda memvariasikan jika ini berlaku?
• Jika Anda suka melakukan latihan pengkodean kecil; dapatkah Anda
mengonfirmasi bahwa analogi tidak berlaku untuk model jenis BERT?
5. Rasa Forms
5.1 Apa yang akan anda pelajari?
a. Bentuk Rasa
Salah satu pola percakapan yang paling umum adalah mengumpulkan beberapa
informasi dari pengguna untuk melakukan sesuatu. Misalnya, jika Anda ingin
memesan pizza atas nama pengguna, Anda harus mengetahui ukuran pizza yang
diinginkan pengguna serta toppingnya.
Proses ini juga disebut pengisian slot. Kami menyimpan informasi dalam slot
berumur panjang yang berfungsi sebagai memori asisten Anda. Anda dapat
mengumpulkan slot dengan banyak cara di Rasa tetapi formulir adalah metode
yang disarankan untuk mengumpulkan informasi ini.
c. Prasayrat
Sebelum Anda memulai kursus ini, Anda harus memastikan bahwa Rasa sudah
terinstal terlebih dahulu.
• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu
c. Kode
Dalam video ini kami mendemonstrasikan cara menulis tindakan kustom di Rasa.
Dalam video kami menunjukkan tindakan khusus yang akan mengambil waktu
saat ini. Berikut kode dari actions/actions.py file.
Perhatikan bahwa sangat penting untuk mendapatkan name hak, Anda dapat
melihatnya disorot di codeblock. Jika ini tidak sesuai dengan domain.yml file
maka tindakan tidak akan ditemukan.
Jika Anda ingin menjalankan tindakan kustom ini, Anda harus memastikan bahwa
endpoints.yml file Anda dikonfigurasi dengan benar.
d. Tautan
• repo GitHub
• Rasa Open Source Documents
• Rasa SDK Docs
e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
c. Kode
Jika Anda ingin menggunakan slot di Rasa, Anda harus terlebih dahulu membuat
domain.yml file Anda diketahui. Inilah yang kami tambahkan di video kami.
Perhatikan bahwa jika Anda ingin menjalankan tindakan kustom ini, Anda harus
memastikan bahwa endpoints.ymlfile Anda dikonfigurasi dengan benar.
d. Interkatif
Jika Anda berlari, rasa interactive Anda akan dapat melihat status slot saat
percakapan sedang berlangsung. Ketika Anda memutuskan untuk menyimpan
hasil, Anda mungkin melihat bagian baru di stories.yml file Anda seperti di
bawah ini.
e. Tautan
• repo GitHub
• Rasa Open Source Documents
f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Video
Berikut video mengenai pengenalan bentuk rasa klik disini
c. Kode
Ada beberapa perubahan penting yang kami buat pada domain.yml file kami.
Anda dapat melihatnya disorot di blok kode di bawah ini.
d. Defenisi Formulir
Pertama, file domain memiliki bentuk yang ditentukan. Ini didefinisikan di bagian
ini:
Kami menyatakan bahwa formulir kami memiliki dua slot yang ingin kami isi;
first_name dan last_name.
e. Definisi Slot
Kedua, file domain memiliki slot yang ditentukan. Perhatikan bahwa nama slot ini
sesuai dengan nama dalam definisi formulir kami.
Perhatikan bahwa kedua slot ini memiliki tipe yang terpasang. Dalam hal ini kami
menggunakan string tetapi Rasa memungkinkan banyak jenis slot yang berbeda.
f. Definisi Ucapan
Akhirnya, kami juga menambahkan beberapa ucapan dalam domain.ymlfile. Ini
digunakan dalam cerita kita.
Anda mungkin juga memperhatikan bahwa beberapa ucapan mengikuti konvensi
penamaan tertentu utter_ask_<slotname>. Ucapan-ucapan ini akan diambil oleh
formulir kami untuk meminta nilai slot. Ini dieksplorasi lebih detail di video
berikutnya.
g. Cerita
Dialog dalam video direkam melalui rasa interactive dan itu akan menghasilkan
cerita di stories.yml file kami . Meskipun tidak ditampilkan di video, kami ingin
berbagi cerita di sini.
h. Tautan
• repo GitHub
• Rasa Open Source Documents
i. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Video
Berikut video menegenai querry kustom klik disini
c. Kode
Mari kita lihat domain.yml file kita lagi. Secara khusus, mari kita perbesar dua
tanggapan.
Jadi mari kita hapus standar utter_ask_last_name dari file domain.yml kita dan
ganti dengan kueri yang ditulis sebagai tindakan kustom. Kode tindakan kustom
dari video tercantum di bawah ini.
Untuk menjalankan tindakan kustom ini, kita perlu memperbarui domain.yml file
kita sehingga menyadari tindakan kustom baru ini.
Setelah selesai, Anda dapat melatih kembali model Rasa baru dan mengonfirmasi
bahwa formulir tersebut sekarang menggunakan tindakan kustom untuk
mengkueri pengguna. Catatan untuk menjalankan ini, Anda harus mengonfigurasi
endpoints.yml file Anda terlebih dahulu.
Setelah model baru dilatih, Anda dapat memulai layanan tindakan kustom yang
dapat diajak bicara oleh Rasa.
e. Tautan
• repo GitHub
• Rasa Open Source Documents
f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Video
Berikut video mengenai Validasi Data klik disini
c. Kode
Tindakan kustom yang menangani validasi ditunjukan di bawah ini.
The ValidateNameForm kelas mengimplementasikan metode validasi untuk slot
di name_form. Perhatikan konvensi penamaan yang digunakan di kelas.
Jika Anda ingin membatalkan slot, Anda harus mengembalikan kamus yang
menetapkan nama slot ke None. Biasanya merupakan ide yang baik untuk
melampirkan pesan pengguna saat ini terjadi sehingga Anda dapat memberi tahu
pengguna bahwa ada yang tidak beres.
d. Protip
Anda mungkin telah memperhatikan bahwa kode validator kami berisi pernyataan
cetak. Ini ditambahkan untuk membantu kami men-debug kode kami. Dalam
produksi, Anda mungkin ingin menghapus pernyataan cetak tetapi sangat
disarankan ketika Anda baru memulai.
e. Tautan
• repo GitHub
• Rasa Open Source Documents
f. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Video
Berikut video tentang menanyakan nama klik disini
c. Instal
Jika Anda belum menginstalnya, pastikan Anda menginstal Rasa X terlebih
dahulu. Anda dapat menginstalnya secara lokal melalui pip.
Jika Anda menghargai panduan lebih lanjut, kami juga mendapatkan video
instalasi untuk Rasa X.
• Instalasi Windows
• Instalasi MacOS
• Instalasi Ubuntu
d. Kode
Sebagian besar keajaiban demo ini ditangani dalam actions.py file. Terutama
kami menggunakan required_slots metode untuk menunjukkan slot mana yang
diperlukan pada titik tertentu dalam formulir.
Idenya di sini adalah jika kita melihat nama yang tidak muncul dalam daftar nama
yang telah ditentukan sebelumnya, kita akan menambahkan slot lain yang
diperlukan. Slot yang diperlukan ini akan memungkinkan kami untuk memeriksa
ulang apakah pengguna mengeja namanya dengan benar. Cara kami meminta slot
ini ditentukan dalam domain.yml file kami.
e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
6. Transformers
6.1 Apa yang akan anda pelajari?
a. Transformer
Transformers adalah keluarga arsitektur pembelajaran mesin yang sangat menarik
dan Anda dapat menemukannya di banyak algoritme yang disediakan Rasa.
Rangkaian video ini menjelaskan secara langsung cara kerja trafo modern, dan
alasannya.
b. Prasyarat
Kami beramsusi bahwa anda sudah mempelajari jaringan syaraf. Kursus ini juga
akan menggunakan sedikit matematika
6.2 Perhatian Diri
a. Perhatian Diri
Ini adalah video pertama tentang mekanisme perhatian. Kami akan mulai dengan
perhatian pada diri sendiri dan mencoba menjelaskan mengapa itu hanya taktik
pembobotan ulang.
b. Video
Berikut video mengenai perhatian diri klik disini
c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.
• Transformer dari Awal
• Transformator Bergambar
• Perhatian Multi-Kepala dari d2l.ai
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Video
Berikut video mengenai kunci, nilai, queries klik disini
c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Bagian mana dari blok perhatian diri yang dapat dilatih ketika kita
memiliki kunci, kueri, dan nilai?
• Jika kita ingin bentuk output berbeda dengan input, bagian mana dari blok
perhatian diri yang harus kita ubah?
6.4 Multi Head Attention
a. Multi Head Attention
Ini adalah video ketiga tentang mekanisme perhatian. Di video sebelumnya kami
memperkenalkan kunci, kueri, dan nilai, dan di video ini kami memperkenalkan
konsep banyak kepala.
b. Video
Berikut video mengenai multi head attention klik disini
c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Video
Berikut video mengenai transformer klik disini
c. Tautan
Saat membuat video ini, kami menemukan bahwa sumber-sumber ini sangat
berguna untuk dimiliki. Bukan hanya karena mereka membantu pemahaman
konseptual tetapi juga karena beberapa dari mereka menawarkan contoh kode.
d. Latihan
b. Video
Berikut video mengenai deployment rasa klik disini
Tetapi jika Anda tidak terbiasa dengan Kubernetes, ini bisa menjadi tugas yang
menakutkan. Tujuan dari rangkaian video ini adalah untuk mengajari Anda cara
menerapkan Rasa dari bawah ke atas. Kami akan membahas arsitektur Rasa X
tetapi kami juga akan menjelaskan topik yang relevan dengan penerapan Rasa,
seperti docker , helm dan kubernetes.
Kursus ini dirancang sedemikian rupa sehingga jika Anda sudah tahu cara
menjalankan dan membangun asisten Rasa di mesin lokal Anda, Anda akan dapat
memahami cara menyebarkannya ke dunia luar.
d. Intsalasi
Anda dapat menonton video di waktu luang Anda, tetapi jika Anda ingin
mengikuti, Anda perlu menginstal beberapa perangkat lunak untuk kursus ini.
Kami berasumsi bahwa Anda bekerja pada mesin mac atau linux yang dapat
menjalankan docker , helm dan kind pada baris perintah
e. Berjalan di VM
Jika Anda ingin mengikuti dengan menjalankan semuanya di VM Ubuntu,
cuplikan berikut harus menangani semuanya.
b. Video
Berikut video mengenai containers klik disini
d. File Docker
Mari kita lihat apakah kita bisa membangun image Docker untuk Rasa. Dengan
begitu, kami mungkin lebih mudah membagikan kode kami untuk penerapan.
Untuk melakukan ini kita harus menulis Dockerfile dulu.
Untuk memastikan bahwa kami tidak menyalin file ke dalam wadah yang tidak
kami perlukan, kami akan menambahkan .dockerignore file.
Dengan cara ini, buruh pelabuhan tidak akan menyalin semua file dalam wadah
menjalankan COPY perintah.
Setelah image dibuat, kita dapat menjalankan container dengan perintah berikut;
f. Titik Masuk
Anda dapat melakukan lebih banyak lagi dengan wadah yang kami miliki saat
ini. Misalnya, Anda dapat menjalankan shell rasa melalui entrypoint kami.
Perhatikan bahwa perintah ini setara dengan menjalankan rasa shell dari baris
perintah.
g. Tekan
Anda juga dapat mendorong wadah ke repositori sehingga tersedia untuk orang
lain.
h. Langkah Selanjutnya
Di video berikutnya kita akan menggunakan wadah buruh pelabuhan yang
Rasakan di dockerhub daripada menulis sendiri dari awal.
i. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Konten
Anda dapat membuat container Docker Anda sendiri, tetapi Anda juga dapat
menggunakan container yang telah dibuat sebelumnya oleh orang lain. Secara
khusus, Rasa menghosting banyak container Docker yang sudah dibuat
sebelumnya di dockerhub yang juga dapat Anda jalankan secara lokal.
Wadah dari Rasa didesain berbeda dengan wadah yang kami buat di video
sebelumnya. Di video sebelumnya kami melatih model baru sebagai bagian dari
proses pembangunan. Wadah Rasa berasumsi bahwa Anda sudah memiliki model
terlatih dan Anda hanya ingin menjalankannya di dalam wadah. Itu berarti kita
perlu membuat wadah mengetahui sistem file sehingga dapat menemukan model
yang kita minati.
Inilah perintah yang kami gunakan dalam video untuk menjalankan wadah Rasa.
Anda juga dapat menentukan versi Rasa yang ingin Anda jalankan dan Rasa juga
menawarkan wadah yang dilengkapi dengan dependensi opsional yang diinstal.
Anda dapat menjelajahi semua tag yang tersedia di dockerhub untuk mendapatkan
kesan tentang apa yang tersedia. Perintah berikut menggunakan Rasa versi 2.8.1
dengan semua dependensi opsional.
Jika Anda memiliki model terlatih yang dilatih pada nlu dan dialog, Anda harus
dapat mengonfirmasi versi Rasa dengan melakukan ping ke localhost:8080/
version titik akhir.
c. Langkah Selanjutnya
Di video berikutnya, kita akan membahas kebutuhan alat seperti Kubernetes
untuk menjalankan container kita.
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
b. Konten
Anda dapat menjalankan container di VM. Anda bahkan dapat
mempertimbangkan untuk menggunakan layanan seperti docker compose jika
Anda ingin menjalankan beberapa container. Tapi pendekatan ini akan memukul
beberapa masalah. Jika VM pernah mati, seluruh aplikasi akan ikut mati. Itu
sebabnya kami membutuhkan sistem yang dapat dijalankan pada sekelompok
mesin sebagai gantinya. Kami dapat mereplikasi satu aplikasi di sekelompok
mesin sehingga jika satu mesin mati, aplikasi akan tetap tersedia.
c. Langkah Selanjutnya
Di video berikutnya, kita akan membahas blok penyusun kluster Kubernetes
sehingga kita mengetahui abstraksi yang diberikannya.
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Ketika Anda berpikir tentang penyebaran Rasa, layanan apa yang kami
butuhkan dalam arsitektur kami? Coba jawab tanpa mengintip, tapi
jawabannya ada di sini.
• Saat Anda berpikir tentang penerapan Rasa X, layanan apa yang kami
butuhkan dalam arsitektur kami? Coba jawab tanpa mengintip, tapi
jawabannya ada di sini.
b. Video
Berikut video mengenai abstrak Kubernetes klik disini
c. Konten
Saat Anda bekerja dengan Kubernetes, ada beberapa istilah yang perlu Anda
pahami.
• Pod. Pod adalah unit dasar komputasi di Kubernetes. Pod dapat
menghosting sebuah container dan mereka memiliki alamat ip dinamis
yang terpasang yang dapat mengekspos sebuah port.
• Jasa. Layanan adalah cara untuk mengekspos port dan satu set pod.
Mereka dapat digunakan untuk mengatur alamat ip statis untuk sebuah
wadah tetapi mereka juga digunakan untuk penyeimbangan beban.
• Masuknya Ingress adalah cara untuk mengekspos layanan ke internet.
Sebuah layanan masih dimaksudkan sebagai layanan internal, tetapi ketika
kita kembali ke ingress kita mengacu pada layanan yang dapat
berkomunikasi dengan dunia luar.
• Ruang nama. Namespace adalah cara untuk mengelompokkan
sekumpulan pod dan layanan. Ini sangat berguna ketika Anda memiliki
banyak tim yang mengerjakan beberapa proyek dalam satu kluster.
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
c. Perintah
Secara lokal kami memulai cluster kubernetes menggunakan kind.
Mari tunjukkan beberapa perintah dasar yang dapat Anda jalankan dengan
kubernetes.
Sekarang mari kita pertimbangkan apa yang mungkin kita perlukan untuk
menjalankan wadah Rasa.
Pertama-tama kita akan membuat file manifes yang berisi pod dan layanan kita.
Berikut tabel yang kami dapatkan sebagai output. Nama Anda kemungkinan akan
berbeda karena nama-nama tersebut memiliki beberapa keacakan di dalamnya.
d. Langkah Selanjutnya
Di video berikutnya, kita akan berbicara tentang helm dan mengapa helm ini
menyelesaikan masalah menghubungkan layanan ke pod.
e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Apa yang mungkin menjadi alasan mengapa kubectl get podspod yang
Anda minati tidak ditampilkan?
• Perintah apa yang Anda perlukan untuk mengambil log dari pod yang
sedang berjalan?
b. Video
Berikut video mengenai helm klik disini
c. Konten
Anda mungkin pernah mendengar pip. Ini adalah alat untuk menginstal paket
Python dengan dependensinya untuk lingkungan Python lokal Anda. Dengan cara
yang sama, Anda dapat menganggapnya helm sebagai alat untuk menginstal
penerapan Kubernetes dengan semua dependensi siap. Di dalam pip Anda akan
menginstal sebuah paket, di dalam helm Anda akan menginstal sebuah bagan.
Dari perspektif tingkat tinggi, helmsangat mirip dengan pipdalam arti bahwa itu
adalah alat untuk menginstal paket. Perbedaannya adalah bahwa helmperlu
disesuaikan agar berguna. Seperti yang akan kita lihat di video berikutnya, Anda
harus memasang diagram kemudi dengan beberapa nilai.
d. Langkah Selanjutnya
Di video berikutnya, kita akan memulai dari awal dan menginstal proyek Rasa X
di Kubernetes menggunakan Helm.
e. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.
• Masalah apa yang akan helm memecahkan bagi kita yang kubectl tidak
memecahkan bagi kita?
b. Video
Berikut video mengenai penggunaan helm untuk rasa x klik disini
c. Konten
• Langkah 1: Buat Cluster
d. Latihan
Cobalah untuk menjawab pertanyaan-pertanyaan berikut untuk menguji
pengetahuan Anda.