Kategori
machine learning malware

Midalf – Multimodal image and Audio Late fusion for malware detection

Malware is getting smarter, and traditional detection often struggle to keep up. Most malware detection rely on just on type of data. But what if we could use multiple types of data to get a clearer picture of malware.

That’s exactly MIDALF (Multimodal Image and Audio Late Fusion for malware detection does. Our newly published research introduces a fresh approach to malware detection by combining image and audio representation to improve accuracy.

How does MIDALF work?

Instead of just looking at malware as a raw code, we transfoem it into two different formats: Images and Audio. We then use Self-supervised learning (SSL) and convolutional neural network (CNN) to extract useful patterns. Finally, we combine the insights from Image and Audio rerpesentation with late fusion to make better decision whether a file is malicious or not.

Why is this important?

Better detection – by using two different views of malware representation, we can catch threats that might slip past traditional methods

Less reliance on labeled data – SSL helps learn useful features without needing tons of labeled malware samples

Harder to evade – malware authors often try to bypass detection, but combining multiple data types makes that much more difficult.

Want to dive into the details? Check out our paper! https://rdcu.be/eaq8k

Paper kami tentang teknik deteksi malware menggunakan multimodal baru saja terbit. Pada paper ini kami mengembangkan metode deteksi malware dengan menggunakan teknik multimodal. Silahkan akses pada link berikut. https://rdcu.be/eaq8k

Kategori
machine learning

Pengenalan SSL

Berikut ini materi kuliah machine learning di STEI ITB tentang pengenalan SSL (Self-Supervised Learning) tanggal 12 November 2024

https://de.slideshare.net/slideshow/introduction-to-self-supervised-learning-kuliah-machine-learning-stei-itb/273221174

referensi:

  1. presentasi yann lecun, Deep Learning Hardware: Past, Present, & Future di ISSCC, San Francisco, 2019-02-18, http://yann.lecun.com
  2. presentasi ishan misra, Self-supervised learning in computer vision, https://atcold.github.io/NYU-DLSP21/en/week10/10-1/
Kategori
machine learning

Tugas 2 Deep Learning

Tujuan:

Tujuan dari tugas ini adalah untuk mengenalkan konsep utama dalam Deep Learning dengan membimbing siswa dalam proses membangun, melatih, dan mengevaluasi model pengklasifikasi gambar sederhana menggunakan Convolutional Neural Network (CNN). Siswa juga akan melakukan eksperimen dengan berbagai hyperparameter dan menganalisis kinerja model mereka.

Persyaratan:

  • Pengetahuan dasar tentang Python dan konsep dasar deep learning.
  • Lingkungan Jupyter Notebook atau Google Colab.
  • TensorFlow atau PyTorch yang sudah terinstal.
  • Boleh menggunakan bahasa R
  • Dikerjakan berdua

Gambaran Tugas:

  1. Dataset: Menggunakan dataset CIFAR-10, yang berisi 60.000 gambar warna 32×32 dalam 10 kelas.
  2. Arsitektur Model: Membuat CNN sederhana dengan 2-3 lapisan konvolusi.
  3. Pelatihan dan Evaluasi: Melatih model dan mengevaluasi akurasinya pada dataset pengujian.
  4. Eksperimen: Memodifikasi hyperparameter dan mengamati efeknya pada kinerja.
  5. Analisis dan Refleksi: Menulis laporan singkat yang merangkum temuan.

Bagian 1: Menyiapkan Lingkungan dan Dataset

  1. Memuat Dataset:
    • Memuat dataset CIFAR-10 dari pustaka TensorFlow/Keras atau PyTorch.
    • Melakukan preprocessing dasar (normalisasi dan reshaping).
  2. Visualisasi Dataset:
    • Memplot beberapa gambar sampel dengan labelnya masing-masing.

Bagian 2: Membangun Model CNN

  1. Mendefinisikan Model:
    • Membuat arsitektur CNN sederhana dengan 2-3 lapisan konvolusi diikuti oleh lapisan fully connected.
    • Menggunakan aktivasi ReLU dan Softmax untuk lapisan output.
  2. Mengkompilasi Model:
    • Memilih optimizer seperti Adam dan menggunakan cross-entropy loss sebagai fungsi loss.
    • Menampilkan ringkasan model.

Bagian 3: Melatih dan Mengevaluasi Model

  1. Melatih Model:
    • Melatih model pada set pelatihan CIFAR-10 untuk jumlah epoch tertentu (misalnya, 10 epoch).
    • Memplot akurasi dan loss pada pelatihan dan validasi.
  2. Mengevaluasi Model:
    • Menghitung akurasi model pada set pengujian.
    • Memplot confusion matriks untuk memahami kinerja model.

Bagian 4: Eksperimen dan Penyetelan Hyperparameter

  1. Mengubah Hyperparameter:
    • Memodifikasi minimal dua hyperparameter (misalnya, learning rate, jumlah lapisan, dropout rate) dan mengamati dampaknya pada waktu pelatihan dan akurasi.
    • Mencoba menambahkan augmentasi data untuk meningkatkan akurasi.
  2. Membandingkan Hasil:
    • Memplot dan membandingkan hasil dari model dan konfigurasi yang berbeda.

Bagian 5: Analisis dan Refleksi

  1. Merefleksikan Kinerja Model:
    • Mengidentifikasi kelas di mana model memiliki kinerja yang buruk dan mengusulkan potensi perbaikan.
    • Merefleksikan efek perubahan hyperparameter.
  2. Mengumpulkan Laporan:
    • Menulis laporan sepanjang 1-2 halaman yang menjelaskan arsitektur, eksperimen, dan wawasan utama dari tugas ini. Sertakan visualisasi, plot akurasi, dan confusion matriks .

Hasil yang Dikumpulkan:

  1. Notebook Kode (dalam format .ipynb) yang berisi semua kode dan output.
  2. Laporan (dalam format .pdf atau .doc) yang merangkum temuan.

Kriteria Penilaian:

  • Kelengkapan kode dan implementasi semua langkah dengan benar.
  • Kualitas analisis dan wawasan dalam laporan.
  • Usaha dalam eksperimen dan penyetelan hyperparameter.

Kumpulkan ke email: setia.ismail [at] gmail.com sebelum kuliah 12 november 2024 subject: tugas 2 deep learning

beberapa referensi:

Tutorial Resmi TensorFlowhttps://www.tensorflow.org/tutorials

Tutorial Convolutional Neural Network pada CIFAR-10https://www.tensorflow.org/tutorials/images/cnn

Tutorial Resmi PyTorchhttps://pytorch.org/tutorials/

PyTorch CIFAR-10 Tutorialhttps://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html

Panduan Menggunakan Google Colabhttps://colab.research.google.com/notebooks/intro.ipynb

Panduan Menggunakan GPU di Google Colabhttps://colab.research.google.com/notebooks/gpu.ipynb

slide kuliah:

https://de.slideshare.net/slideshow/materi-lanjutan-deep-learning-s1-telekomunikasi-stei-itb/272934292

Kategori
machine learning

Tugas Deep Learning

Tujuan:

Tugas ini bertujuan untuk membantu Anda memahami komponen utama dari neural networks (layer, neuron, activation function, dll.) dan bagaimana mereka memengaruhi kinerja model. Anda akan menggunakan TensorFlow Playground (sebuah alat interaktif) untuk bereksperimen dengan pengaturan yang berbeda dan mengamati efeknya pada tugas klasifikasi sederhana.

Instruksi:

  1. Akses TensorFlow Playground:
  2. Buka https://playground.tensorflow.org/
  3. Luangkan beberapa menit untuk mengeksplorasi antarmuka dan berbagai opsi yang tersedia. Biasakan diri dengan konsep neuron, layer, dan data points.

Tugas 1: Memahami Dataset

Dataset: Pilih dataset klasifikasi (spiral atau circle dataset).

Amati bagaimana titik-titik data terdistribusi. Apa yang direpresentasikan oleh warna-warna tersebut? Bisakah Anda mengidentifikasi apa yang harus diklasifikasikan oleh jaringan?

Pertanyaan:

  1. Masalah apa yang sedang dipecahkan oleh jaringan ini (klasifikasi atau regresi)?
  2. Apa yang direpresentasikan oleh titik-titik biru dan oranye?

2. Tugas 2: Mengatur Neuron dan Layer

  • Mulai dengan pengaturan default: 1 hidden layer dengan 4 neuron.
  • Klik Run untuk melatih jaringan dan amati bagaimana decision boundary terbentuk.

   Eksperimen:

   – Coba tingkatkan jumlah neuron dalam hidden layer. Mulailah dengan 4, kemudian tingkatkan menjadi 6, 8, dan 10. Jalankan model setiap kali dan amati hasilnya.

   – Selanjutnya, tambahkan lebih banyak hidden layer (hingga 3 layer). Jalankan model setelah setiap perubahan.

   Pertanyaan:

   a. Bagaimana penambahan jumlah neuron dalam satu layer mempengaruhi decision boundary dan kinerja model?

   b.  Bagaimana penambahan lebih banyak layer mengubah perilaku model? Apakah model menjadi lebih baik atau lebih buruk? Mengapa?

3. Tugas 3: Activation Functions

   – Secara default, activation function disetel ke ReLU.

   – Coba ganti activation function ke Tanh dan Sigmoid. Jalankan model untuk setiap pengaturan dan amati perbedaan dalam evolusi decision boundary.

   Pertanyaan:

   a. Apa peran activation function dalam jaringan?

   b. Activation function mana yang menghasilkan hasil terbaik untuk dataset ini? Mengapa ?

4. Tugas 4: Mengeksplorasi Learning Rate

   – Atur hidden layer dan neuron ke konfigurasi pilihan Anda dari Tugas 2.

   – Sesuaikan slider Learning Rate untuk bereksperimen dengan nilai-nilai berbeda (misalnya, coba 0,01, 0,03, 0,1, dan 0,3).

   – Amati bagaimana kinerja jaringan berubah ketika learning rate meningkat atau menurun.

   Pertanyaan:

   a. Apa yang terjadi ketika learning rate terlalu rendah atau terlalu tinggi?

   b. Learning rate mana yang memungkinkan model belajar dengan paling efektif? Mengapa?

5. Tugas 5: Regularization

   – Atur hidden layer dan neuron ke konfigurasi pilihan Anda dari Tugas 2.

   – Aktifkan Regularization (L2) dan sesuaikan tingkat regularisasi (coba nilai seperti 0, 0,001, dan 0,1).

   Pertanyaan:

   a. Bagaimana regularization memengaruhi decision boundary?

   b.  Mengapa kita menggunakan regularization dalam melatih neural networks?

6. Tugas 6:

   Coba selesaikan dataset “Spiral” dengan akurasi minimal 90% dengan menyesuaikan neuron, layer, activation functions, dan learning rates. Tuliskan konfigurasi terbaik yang Anda temukan.

   Pertanyaan:

   a. Kombinasi neuron, layer, activation function, dan learning rate mana yang paling berhasil untuk dataset spiral? Mengapa Anda berpikir kombinasi itu efektif?

7. Serahkan laporan singkat (1–2 halaman) yang berisi:

  a. Jawaban atas semua pertanyaan di setiap tugas.

  b. Screenshoot dari konfigurasi akhir Anda (misalnya, neuron, layer, activation function, learning rate) untuk Tugas 2 dan Tugas 5.   c. kumpulkan ke email: subject: tugas deep learning – NIM ; sebelum: Kuliah selasa 15 oktober 2024

Semoga Bermanfaat!

Slide kuliah

https://de.slideshare.net/slideshow/slide-materi-pengantar-kuliah-deep-learning-stei-itb/272303847

Kategori
machine learning

Teknologi Terkini Generative AI – 2023

Saya baru baca tulisan di AItidbids tentang state-of-the art di bidang generative AI. State-of-the-art itu bisa diartikan sebagai teknologi terkini, atau yang paling unggul. Jadi Aitidbits ini membuat daftar teknologi terkini di bidang generative AI tahun 2023, kayak semacam kaleidoskop.

Model bahasa (language model)

Model open source:

Yi: https://github.com/01-ai/Yi

Mistral: https://mistral.ai

Llama2: https://ai.meta.com/llama/

Code lama: https://ai.meta.com/blog/code-llama-large-language-model-coding/

Vicuna: https://lmsys.org/blog/2023-03-30-vicuna/

Benchmark model LLM:

Huggingface:

https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard

Hendrycks dkk

https://arxiv.org/abs/2009.03300

Truthful QA:

https://arxiv.org/abs/2109.07958

Model Berbayar:

GPT4 Turbo

Gemini Ultra

https://deepmind.google/technologies/gemini/#introduction

Claude 2.1

https://www.anthropic.com/index/claude-2-1

Multimodal

Open Source:

CogVLM

https://github.com/THUDM/CogVLM

Adept Fuyu

https://www.adept.ai/blog/fuyu-8b

ImigeBind

https://ai.meta.com/blog/imagebind-six-modalities-binding-ai/

AnyMal

https://arxiv.org/abs/2309.16058

Lava

https://llava-vl.github.io

data2vec:

https://ai.meta.com/blog/ai-self-supervised-learning-data2vec/

Commercial:

GPT & Gemini

Autonomous Agent:

Simulacra:

https://arxiv.org/abs/2304.03442

Agent Builder:

AutoGPT:

https://github.com/Significant-Gravitas/AutoGPT

BabyAGI:

https://github.com/yoheinakajima/babyagi

Agent-based app:

GPT Engineer:

https://github.com/gpt-engineer-org/gpt-engineer

Meta GPT

https://github.com/geekan/MetaGPT


Sota Model: CogAgent:

https://arxiv.org/abs/2312.08914

Berbayar:

Adept AI:

https://www.adept.ai

Embra:

https://embra.app

Lindy:

https://www.lindy.ai

Induced:

https://www.induced.ai

Hyperwrite:

https://www.hyperwriteai.com/personal-assistant

Sampe sini dulu nanti saya lanjutkan tentang State-of-the-art untuk image generation, video generation dll:

reference:

https://www.aitidbits.ai/p/2023-sota-report

Kategori
machine learning Uncategorized @id

Kuliah AI-Big Data – Latihan

  1. Jelaskan strategi apa saja yang dapat dilakukan untuk meningkatkan performa dari sebuah model machine learning?(minimal 5)
  2. Jelaskan bagaimana sebaiknya kita membagi sebuah dataset machine learning?
  3. Model machine learning diharapkan memiliki performa yang baik pada tahap: 

a) training, 

b) validasi, 

c) testing dan 

d) implementasi di dunia nyata. 

Setiap tahapan memiliki strategi optimasi performa yang berbeda. Jelaskan langkah apa saja yang dapat dilakukan untuk meningkatkan performa pada setiap tahapan?

4. Jelaskan evaluation metrik apa saja yang dapat kita gunakan untuk menguji performa model machine learning!

5. Jelaskan bagaimana hubungan antara bias, variance dan human level performance!

Semoga Bermanfaat!

Kategori
machine learning

Platform Lightly AI

Saya lagi nyoba platform lightly.ai tools machine learning. Lightly ini tools buat mempermudah kita untuk memproses dataset yang besar. Dia punya tools seperti Datasource, lightly worker, lightly platform dan lightly python client.

Datasource ini bisa digunakan untuk ngakses dataset kita yang disimpan di cloud kayak AWS S3 bucket, Google cloud bucket dan Azure. Lightly worker tuh container docker untuk memproses dataset besar. Lightly platform ini buat liat dataset, sharing dataset dll. Sementara lightly python client ini buat ngirim perintah ke lightly platform dan worker.

Karena dataset saya lokal, jadi saya cuman pake python clientnya doang. instalasinya python clietnya pake perintah:

pip3 install lightly

Terus saya coba tutorial training model SimCLR untuk klasifikasi gambar. Tutorialnya bisa dilihat disini

https://docs.lightly.ai/self-supervised-learning/tutorials/package/tutorial_simclr_clothing.html

SimCLR ini slaah satu model Self Supervised learning (SSL). Dengan model ini kita gak perlu ngasih label ke dataset kita satu persatu. Model SSL yang dipake dia menggunakan Resnet18, dengan teknik augmentasi vertical flip, random rotation. Parameter yang dia ukur disini adalah loss. Untuk SimCLR loss yang dipake adalah NTXentLoss. Saya coba running di PC saya dengan 1 GPU gak nyampe 1 jam dah beres.

Ada banyak model SSL lagi yang disediakan sama lightly, diantaranya BarlowTwins, BYOL, Dino, MoCo, SimSiam, SwaV dll. Semoga bermanfaat!

referensi

https://docs.lightly.ai

Kategori
machine learning

Big Self-Supervised Models – Chen

Saya lagi baca paper Big Self-Supervised models are strong semi-supervised learners dari Ting Chen dkk. Mereka ini dari tim research Google . Salah satu teknik untuk learning dengan jumlah label sedikit adalah dengan menggunakan pretraining secara unsupervised pada jumlah data tidak berlabel yang banyak, kemudian diikuti dengan fine-tuning secara supervised. Dibandingkan dengan semi-supervised learning metode Self-supervised leabih efektif.

Chen dkk menggunakan jaringan yang besar dan dalam selama pretraining dan fine-tuning. Mereka menemukan semakin sedikit label naja semakin besar manfaat dari penggunaan jaringan yang besar. Setelah fine-tuning, model dapat ditingkatkan dan didistilasi menjadi jaringan yang lebih kecil dengan loss kecil pada akurasi klasifikasi dengan menggunakan input tidak berlabel lagi tapi pada task yang spesifik.

Mereka membagi algoritma usulannya jadi 3 langkah:

  1. Pretraining secara unsupervised dengan model ResNet besar menggunakan SimCLRv2
  2. Fine-tuning secara supervised pada data dengan label yang sedikit
  3. Distilasi pada sampel tidak berlabel untuk meningkatkan performa dan transfer learning pada task tertentu.

Eksperimen yang mereka lakukan menghasilkan akurasi 73,9% pada ImageNet dengan hanya menggunakan data berlabel 1% (<13 gambar berlabel pada setiap kelas) dengan menggunakan ResNet-50. Dengan 10% label, Resnet-50 yang ditrain dengan model ini mencapai akurasi 77,5%

Pendekatan Self-supervised learning telah banyak digunakan pada NLP. Misalnya kita melakukan training pada model bahasa besar pada text, contohnya pada wikipedia, kemudin melakukan fine-tuning model pada data dengan label yang sedikit.

Pendekatan lain pada komputer vision adalah dengan menggunakan data tidak berlabel secara langsung selama supervised learning, sebagai bentuk regularisasi. Pendekatan ini menggunakan data tidak berlabal dalam task spesifik untuk meningkatkan konsistensi label kelas yang diprediksi pada data tidak berlabel diantara model-model yang berbeda, atau antara augmentasi data yang berbeda.

Pada saat preptraining secara slef-supervised, gambar tanpa label digunakan , secara task-agnostic, sehingga representasi tidak dirancang khusus pada klasifikasi task tertentu. Metode ini memerlukan ukuran jaringan yang sangat besar. Menggunakan neural network yang besar dan dalam akan sangat mempengaruhi akurasi.

Setelah pre-training dan fine-tuned, Chen menemukan bahwa hasil prediksi bisa ditingkatkan dan didistillasikan menjadi jaringan2 kecil. Chen menggunakan data tidak berlabel untuk mendorong student network untuk meniru prediksi label teacher network. Distillation menggunakan data tidak berlabel adalah menyerupai pseudo-label pada self training, namun lebih sederhana.

Chen menyimpulkan semakin sedikit label maka diperlukan model yang lebih besar. Model yang lebih besar membutuhkan label yang lebih efision, menghasilkan performa yang lebih baik bila di fine-tuned hanya pada contoh label yang sedikit, walaupun memiliki kemungkinan overfit

Walaupun model besar penting untuk mempelajari representasi visual secara umum, namum kapasitas ekstra tidak diperlukan pada task tertentu. Sehingga dengan penggunaan task spesifik dari data tidak berlabel, performa prediksi dari model dapat ditingkatkan dan dapat ditransfer pada jaringan yang lebih kecil.

Transformasi nonlinear (projection head) sangat penting setelah layer konvoluse digunakan pada SimCLR. Projection head yang lebih dalam tidak hanya meningkatkan kualitas representasi yang diukur dengan evaluasi linear, namun juga meningkatkan performa semi-supervised ketika fine-tuning dari middle layer dari projection head.

SimCLRv2 menghasilkan akurasi 79,8 dengan protokol evaluasi linear. Ketika dilakukan finetuning dengan hanya 1% atau 10% data dan di distilasikan pada arsitektur yang sama, dihcapai akurasi 76,6% atau 80,9%. Dengan distilasi, model bisa ditransfer menjadi jaringan ResNet-50 yang lebih kecil yang menghasilkan akurasi 73,9% – 77,5% hanya menggunakan 1% atau 10% label.

Sampai disini dulu, insyallah besok saya lanjutkan pembahasan paper ini

https://arxiv.org/abs/2006.10029

Kategori
machine learning

Entity – NLP

Saya lanjutkan catatan dari training AI102, masih tentang NLP, kali ini tentang Entity. Entity digunakan untuk menambahkan konteks khusus pada intents. Contohnya, kita mendefinisikan TurnOnDevice intent yang dapat diterapkan untuk banyak perangkat. Entity digunakan untuk menentukan perangkat yang berbeda. Berikut ini contoh pasangan utterance, intents dan entity:

  1. Utterance (what is the time?) ; Intent (GetTime); entity (-)
  2. U(What time is it in London) ; I (GetTime); E (Location: London)
  3. U( What’s the weather forecast for paris?); I(GetWeather); E(Location:Paris)
  4. U(Will I need an Umbrella tonight); I(GetWeather); E(Time:tonight)
  5. U(What’s the forecast for Seattle tomorrow); I(GetWeather); E(Location:Seattle ; Time: tomorrow)
  6. U(Turn the light on) ; I (TurnOnDevice); E(Device: light)
  7. U(Switch on the fan) ; I (TurnOnDevice): E(Device:fan)

Ada beberapa tipe entity, beberapa cara mendefinisikan entity adalah:

  1. Machine learned (dipelajari mesin) entity ini adalah yang paling fleksibel, dan paling banyak digunakan. Kita menentukan sebuah entity yang dipelajari mesin dengan sebuah nama yang sesuai, kemudian menghubungkan kata atau frase-nya dengan training utterances. Ketika kita melakukan training sebuah model, model akan mempelajari elemen yang sesuai pada utterance dengan entity
  2. List; entity dengan beberapa kemungkinan value, contohnya days of the week (hari-hari dalam minggu). Kita dapat memasukan sinonim dalam sebuah definisi entity list, sehingga kita bisa mendefinisikan entity DayOfWeek, yang memiliki value “sunday”, “Monday” dst dengan sinonim “sun”, “mon”, tue” dst
  3. Regular expression atau regex untuk entity yang memiliki format/string tertentu. Contohnya tanggal menggunakan format MM/DD/YYYY atau nomor penerbangan dengan format AB-1234
  4. Pattern.any() entity yang memiliki pola tertentu.

Bila model kita membutuhkan multiple intent dimana ada kemiripan dalam utterance, kita bisa menggunakan pattern untuk membedakan intents dengan beberapa sampel. Contohnya utterance2 berikut ini: “Turn the kitchen light on”, “Is the kitchen light on?”. “Turn the kitchen light off”

Contoh utterance diatas adalah mirip, dengan urutan kata yang berbeda. Namun ketiganya memiliki intents yang berbeda, yaitu TurnOnDevice,GetDeviceStatus dan TurnOffDevice. Intents dapat diterapkan pada berbagai nilai entity. Contohnya untuk “kitchen light” intent dapat diterapkan juga untuk “living room light”, “bedside lamp”, “fan”, “television” maupun perangkat lain yang digunakan model.

Untuk melakukan training model perlu memasukan kombinasi utterance untuk setiap kemungkinan entity dengan semua (ketiga) intents. Namun agar lebih efektif untuk menentukan patterns bisa memasukan template utterancce seperti berikut ini:

TurnOnDevice: “Turn the {DeviceName} on” ; “Switch the {DeviceName} on”; “Turn on the {DeviceName}”

GetDeviceStatus: “Is the {DeviceName} on [?]”

TurnOffDevice: “Turn the {DeviceName} off” ; “Switch the {DeviceName} off”; “Turn off the {DeviceName}”

Utterance diatas memiliki placeholder untuk sebuah entity Pattern.any() dengan nama DeviceName, mengurangi jumlah utterance yang dibutuhkan untuk melakukan training model. Pattern dapat menggunakan elemen opsional seperti punctuation (contohnya [?] untuk memberikan petunjuk tambahan tentang intent yang sesuai.

Pattern yang didefinisikan pada template utterance, termauk posisi dari entity Pattern.any() dan kata-kata atau punctuation, membantu model mengenali intents dan nilai entity dari sedikit contoh. Berikut ini contoh pasangan Utterence, Intent dan Entity:

  1. Utterance (Turn the kitchen light on); Intent (TurnOnDevice); Entity (DeviceName – kitchen light)
  2. U(Is the bedroom lamp on); I(GetDeviceStatus); E(DeviceName-bedroom lamp)
  3. U(Switch the TV off); I(TurnOffDevicE); E(DeviceName-TV)

Informasi lebih lanjut tentang pattern bisa dilihat disini:

https://docs.microsoft.com/id-id/azure/cognitive-services/LUIS/concepts/patterns-features

Semoga Bermanfaat!

Kategori
machine learning

Language Understanding service

Saya lanjutkan catatan dari training azure AI102, kali ini language understanding service. Modul ini tentang NLP (Natural language processing). NLP ini fungsinya adalah menginterpretasi makna semantik dari input berupa bahasa (suara atau tulisan). NLP membutuhkan sebuah language model untuk memahami bahasa. Seringkali fungsi ini dinamakan sebagai natural language understanding (NLU).

NLU di azure dapat digunakan untuk melakukan training sebuah language model (Language understanding conversation app). Model ini dapat memahami maksud dari pembicara (intent) dan entity. Contohnya user menyebutkan “switch the kitchen light on” dan model NLU akan menerjemahkan intent sebagai “TurnOnDevice” dan mendeteksi “kitchen light” sebagai entity.

Kita dapat menggunakan interface REST atau SDK untuk mengunakan, men-training dan mem-publish model Language understanding. Namun lebih umum digunakan portal Language understanding berikut ini:

https://www.luis.ai

Setelah melakukan training dan mem-publish sebuah model language understanding untuk menentukan intents dan entity, kita dapat menggunakan model ini di aplikasi kita.

Untuk menggunakan layanan ini, kita perlu punya dua resource di azure, yaitu: language understanding-authoring resource dan language understanding-prediction resource. Authoring digunakan untuk melatih model language understanding. Sementara prediction resource digunakan untuk men-host model yang sudah ditraining dan memproses rikues dari aplikasi client.

Authoring resource dapat dibuat pada 3 area berikut: Asia Pasific, Europe dan US. Untuk mendeploy model, prediction resource harus berada pada area yang sama dengan authoring resource.

Utterance adalah frase yang digunakan user ketika berinteraksi dengan aplikasi. Intent adalah task atau aksi yang diinginkan oleh user, dapat disebut juga arti dari utterace. Kita membuat model dengan mendefinisikan intent dan menghubungkannya pada satu atau lebih utterance. Contohnya adalah pasangan intent dan utterance berikut:

  1. GetTime: “What time is it?” ; “What is the time?” ; “Tell me the time”
  2. GetWeather: “What is the weather forecast?” ; “Do I need an umbrella?” ; “will it snow?”
  3. TurnOnDevice: “Turn the light on” ; “Switch on the light” ; “Turn on the fan”
  4. None: “Hello”; “Goodbye”

Pada model language understanding, kita harus mendefinisikan intent,sehingga kita perlu mempelajari domain dari model yang diinginkan, serta aksi apa atau informasi apa yang diinginkan user. Setiap model biasanya memiliki intent None yang perlu didefinisikan. Sampai disini dulu, semoga Bermanfaat!