Menjelajahi Training Language Model (LLM)

No Comments

 

Pertumbuhan pesat dalam bidang kecerdasan buatan telah membawa munculnya teknologi yang semakin canggih, salah satunya adalah Language Model (LM) atau model bahasa. Salah satu jenis LM yang paling menonjol adalah Language Model berbasis transformasi (TLM), seperti GPT (Generative Pre-trained Transformer) yang dikembangkan oleh OpenAI. Training Language Model (LLM) merupakan proses penting dalam pengembangan model bahasa yang berkualitas dan mampu menghasilkan teks yang semakin mendekati tingkat kecerdasan manusia.


Proses Training Language Model (LLM)

Proses training LLM biasanya melibatkan langkah-langkah berikut:

  1. Pengumpulan Data: Data yang berkualitas dan beragam sangat penting dalam pelatihan model bahasa yang efektif. Data ini bisa berupa teks dari berbagai sumber, seperti buku, artikel, situs web, dan lain-lain.

  2. Pra-Pemrosesan Data: Langkah ini melibatkan pembersihan dan penyusunan data. Ini termasuk menghapus karakter khusus, tokenisasi teks, normalisasi teks, dan banyak lagi.

  3. Tokenisasi: Tokenisasi adalah proses memecah teks menjadi token-token atau unit-unit kecil yang dapat diproses oleh model. Ini bisa berupa kata-kata, sub-kata, atau karakter.

  4. Pembuatan Batch: Data biasanya dibagi menjadi batch-batch kecil untuk melatih model secara bertahap. Ini membantu dalam mempercepat proses pelatihan dan mengelola memori dengan lebih efisien.

  5. Pelatihan Model: Proses utama pelatihan, di mana model diberi masukan dalam bentuk batch-batch data dan diperbarui berulang kali untuk meningkatkan kualitasnya. Pelatihan ini dapat memakan waktu yang sangat lama, tergantung pada ukuran data dan kompleksitas model.

  6. Penilaian dan Penyetelan: Setelah model selesai dilatih, itu dievaluasi menggunakan metrik yang relevan dan kemudian disesuaikan atau disempurnakan jika diperlukan. Ini dapat melibatkan penyetelan parameter, penambahan lapisan tambahan, atau perubahan arsitektur.

  7. Fine-Tuning Opsional: Kadang-kadang, model yang sudah dilatih kemudian disesuaikan dengan data khusus atau domain tertentu melalui proses fine-tuning. Ini membantu model untuk menjadi lebih spesifik dan akurat dalam konteks tertentu.

Contoh Kode Python untuk Training LLM

Berikut ini adalah contoh menggunakan dataset Wikipedia dalam bahasa Inggris untuk melatih model bahasa sederhana menggunakan TensorFlow:

 

 <code>
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
import urllib.request

<!-- Download dataset Wikipedia -->
url = "https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2"
urllib.request.urlretrieve(url, "enwiki-latest-pages-articles.xml.bz2")

<!-- Process Wikipedia data -->
from gensim.corpora.wikicorpus import WikiCorpus
wiki = WikiCorpus("enwiki-latest-pages-articles.xml.bz2", lemmatize=False)

<!-- Generate text from Wikipedia data -->
text = ""
for article in wiki.get_texts():
    text += " ".join(article) + " "

<!-- Split text into lines -->
corpus = text.split("\n")

<!-- Tokenization -->
tokenizer = Tokenizer()
tokenizer.fit_on_texts(corpus)
total_words = len(tokenizer.word_index) + 1

<!-- Sequencing -->
input_sequences = []
for line in corpus:
    token_list = tokenizer.texts_to_sequences([line])[0]
    for i in range(1, len(token_list)):
        n_gram_sequence = token_list[:i+1]
        input_sequences.append(n_gram_sequence)

<!-- Padding -->
max_sequence_len = max([len(x) for x in input_sequences])
input_sequences = pad_sequences(input_sequences, maxlen=max_sequence_len, padding='pre')

<!-- Creating input and output -->
input_sequences = tf.convert_to_tensor(input_sequences)
xs, labels = input_sequences[:,:-1],input_sequences[:,-1]

<!-- Building a simple model -->
model = tf.keras.Sequential([
    tf.keras.layers.Embedding(total_words, 64, input_length=max_sequence_len-1),
    tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(20)),
    tf.keras.layers.Dense(total_words, activation='softmax')
])

model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(xs, labels, epochs=5, verbose=1)

<!-- Example of using the model -->
seed_text = "Artificial intelligence"
next_words = 10

for _ in range(next_words):
    token_list = tokenizer.texts_to_sequences([seed_text])[0]
    token_list = pad_sequences([token_list], maxlen=max_sequence_len-1, padding='pre')
    predicted = model.predict_classes(token_list, verbose=0)
    output_word = ""
    for word, index in tokenizer.word_index.items():
        if index == predicted:
            output_word = word
            break
    seed_text += " " + output_word
print(seed_text)
</code>

Dalam contoh di atas, kita menggunakan WikiCorpus dari library gensim untuk memproses data Wikipedia dan kemudian menggunakan Tokenizer dari TensorFlow untuk memproses dan membagi teks menjadi token. Kemudian, kita membangun dan melatih model bahasa menggunakan pendekatan yang sama dengan contoh sebelumnya. Anda juga dapat mengunduh notebooknya di sini.

Machine Learning: Definisi dan Contoh Penerapannya dalam Kehidupan Sehari-hari

No Comments


Pendahuluan

Machine learning, atau pembelajaran mesin, adalah cabang ilmu kecerdasan buatan yang berfokus pada pengembangan sistem yang mampu belajar dan meningkatkan kinerjanya secara mandiri tanpa harus secara eksplisit diprogram. Dalam artikel ini, kita akan membahas konsep machine learning secara umum, prinsip dasarnya, dan beberapa contoh penerapannya yang dapat kita temui dalam kehidupan sehari-hari.


Definisi Machine Learning

Machine learning merujuk pada kemampuan komputer untuk belajar dari data dan pengalaman yang diberikan, tanpa harus secara langsung diprogram. Metode ini berfokus pada pengembangan algoritma yang memungkinkan komputer untuk mengenali pola, membuat prediksi, dan mengambil keputusan berdasarkan data yang diberikan. Machine learning melibatkan tiga elemen penting: input data, model atau algoritma yang digunakan, dan keluaran atau prediksi yang dihasilkan.




Contoh Penerapan Machine Learning


1. Deteksi Spam Email

Salah satu contoh penerapan machine learning adalah dalam deteksi spam email. Algoritma machine learning dapat dilatih dengan memberikan contoh email yang telah diklasifikasikan sebagai spam atau bukan spam. Berdasarkan contoh ini, sistem belajar mengenali pola dan fitur yang umumnya terkait dengan email spam. Setelah proses pelatihan, algoritma dapat memprediksi dengan tingkat akurasi yang tinggi apakah suatu email baru adalah spam atau bukan.


2. Rekomendasi Produk

Sistem rekomendasi yang digunakan oleh platform seperti Amazon atau Netflix juga merupakan contoh penerapan machine learning. Algoritma machine learning digunakan untuk menganalisis pola pembelian atau penonton dari pengguna dan memprediksi preferensi mereka. Berdasarkan analisis ini, sistem dapat memberikan rekomendasi produk atau konten yang relevan untuk meningkatkan pengalaman pengguna dan mendorong penjualan.


3. Kendaraan Otonom

Kendaraan otonom atau self-driving cars juga bergantung pada teknologi machine learning. Dalam hal ini, algoritma machine learning digunakan untuk menganalisis data dari berbagai sensor seperti kamera, radar, dan lidar untuk mengidentifikasi objek di sekitarnya seperti kendaraan, pejalan kaki, dan rambu lalu lintas. Berdasarkan analisis ini, sistem dapat mengambil keputusan real-time untuk mengemudi secara aman dan efisien.


4. Penerjemahan Otomatis

Penerjemahan otomatis adalah contoh lain dari penerapan machine learning. Dengan menggunakan teknik machine learning, algoritma dapat belajar dari pasangan kalimat terjemahan yang diberikan dalam berbagai bahasa. Algoritma ini kemudian dapat menerapkan pola-pola yang telah dipelajari untuk menerjemahkan teks dari satu bahasa ke bahasa lain secara otomatis dengan akurasi yang semakin meningkat.


5. Diagnosis Medis

Machine learning juga memiliki potensi besar dalam bidang medis. Dalam diagnosis medis, algoritma machine learning dapat mempelajari pola

Machine Learning: Teknologi Revolusioner yang Mendorong Inovasi di Berbagai Industri

No Comments

 


Machine learning adalah salah satu teknologi yang sedang berkembang pesat dalam bidang kecerdasan buatan (AI). Dalam dasarnya, machine learning adalah metode pembelajaran mesin di mana komputer menggunakan algoritma dan data untuk belajar sendiri tanpa harus diprogram secara eksplisit. Machine learning memiliki banyak aplikasi di berbagai industri, termasuk bisnis, kesehatan, transportasi, hingga keamanan siber.

Berikut adalah beberapa contoh penggunaan machine learning:


 

  1. Analisis data dan prediksi: Machine learning dapat digunakan untuk menganalisis data besar dan memberikan prediksi tentang tren bisnis atau permintaan pelanggan. Contohnya adalah prediksi harga saham, prediksi cuaca, atau prediksi hasil pemilihan.

  2. Pemasaran dan personalisasi: Machine learning dapat membantu perusahaan memahami perilaku konsumen dan memberikan pengalaman yang lebih personal. Contohnya adalah pemberian rekomendasi produk atau layanan yang relevan dengan preferensi pengguna.

  3. Pemrosesan bahasa alami: Machine learning dapat digunakan untuk memproses bahasa alami dan memberikan respons yang lebih baik dan cepat. Contohnya adalah penggunaan chatbot untuk layanan pelanggan atau analisis sentimen di media sosial.

  4. Deteksi penipuan dan keamanan siber: Machine learning dapat membantu deteksi penipuan dalam transaksi online dan memberikan perlindungan keamanan siber. Contohnya adalah deteksi aktivitas mencurigakan pada rekening bank atau pengenalan wajah pada sistem keamanan.

Meskipun memiliki banyak manfaat, penggunaan machine learning juga membutuhkan perhatian dan pertimbangan yang cermat. Beberapa tantangan yang dihadapi dalam penggunaan machine learning adalah kurangnya data berkualitas, keamanan dan privasi, serta bias dan diskriminasi.

Oleh karena itu, perlu dilakukan evaluasi dan pengujian yang cermat untuk memastikan bahwa machine learning dapat memberikan hasil yang akurat dan adil. Selain itu, regulasi dan etika dalam penggunaan machine learning juga perlu dipertimbangkan.

Meningkatkan Efisiensi dan Pengalaman Pengguna dengan Chatbot: Keuntungan dan Tantangan

No Comments

 


Chatbot adalah program komputer yang dirancang untuk meniru percakapan manusia melalui pesan teks atau suara. Chatbot biasanya digunakan untuk menjawab pertanyaan atau memberikan informasi kepada pengguna, dan sering kali terintegrasi dengan platform media sosial atau situs web perusahaan.

Chatbot telah menjadi semakin populer dalam beberapa tahun terakhir, terutama dalam industri layanan pelanggan dan pemasaran. Beberapa keuntungan dari penggunaan chatbot adalah sebagai berikut:

  1. Meningkatkan efisiensi: Chatbot dapat merespons pertanyaan dan permintaan pelanggan dengan cepat dan efisien, mengurangi waktu yang dibutuhkan untuk menunggu respons dari agen layanan pelanggan manusia.

  2. Menyediakan layanan 24/7: Chatbot dapat bekerja secara otomatis dan tersedia sepanjang waktu, memberikan layanan pelanggan yang dapat diakses kapan saja, tanpa tergantung pada jadwal kerja agen manusia.

  3. Menyediakan pengalaman pengguna yang personal: Chatbot dapat menyesuaikan responsnya berdasarkan data pengguna, memberikan pengalaman yang lebih personal dan relevan untuk setiap pelanggan.

  4. Mengurangi biaya: Dalam jangka panjang, penggunaan chatbot dapat mengurangi biaya operasional perusahaan dengan mengurangi kebutuhan akan agen layanan pelanggan manusia.

Penggunaan chatbot tidak hanya terbatas pada industri layanan pelanggan dan pemasaran. Contoh penggunaan chatbot lainnya termasuk dalam bidang pendidikan, kesehatan, keuangan, dan transportasi.

Misalnya, di bidang pendidikan, chatbot dapat membantu siswa dengan pertanyaan dan permintaan tentang jadwal kuliah, tugas, dan pengumuman. Di bidang kesehatan, chatbot dapat memberikan informasi medis dan saran kesehatan dasar. Di bidang keuangan, chatbot dapat membantu pengguna mengakses informasi tentang rekening bank dan mengelola keuangan mereka. Di bidang transportasi, chatbot dapat membantu pengguna memesan tiket atau mendapatkan informasi tentang jadwal penerbangan.

Namun, meskipun chatbot dapat membantu meningkatkan efisiensi dan pengalaman pengguna, ada juga beberapa kelemahan yang harus dipertimbangkan. Misalnya, chatbot belum sepenuhnya dapat menggantikan agen layanan pelanggan manusia dalam beberapa situasi, terutama jika permintaan pelanggan lebih kompleks atau memerlukan penilaian moral atau empati.

Secara keseluruhan, penggunaan chatbot dapat memberikan manfaat bagi perusahaan dan pengguna, tetapi perlu diimbangi dengan pertimbangan yang cermat dan terus menerus evaluasi kinerjanya.

Single-link : minimum similarity HAC

No Comments



 

Figure 2.  Single-link:  minimum similarity



complete-link: minimum similarity


 centroid: average inter-similarity


         Group-average: average of all similarities





A single-link (left) and complete-link (right) clustering of eight documents. The ellipses correspond to successive clustering stages. Left: The single-link similarity of the two upper two-point clusters is the similarity of d2 and d3 (solid line), which is greater than the single-link similarity of the two left two-point clusters (dashed line). Right: The complete-link similarity of the two upper two-point clusters is the similarity of d1 and d4 (dashed line), which is smaller than the complete-link similarity of the two left two-point clusters (solid line).


Social Computing

No Comments

Dengan adanya internet dan globalisasi seperti saat ini mengubah perilaku pengguna internet dari pasif menjadi lebih aktif. Internet menjadi salah satu sarana penting untuk berkomunikasi saat ini. Social computing adalah sitem terkomputerisasi yang memungkinkan komunikasi dan kolaborasi terjadi untuk berbagai aspek.

Perkembangan dari web 2.0 yang memungkinkan pengguna internet untuk dapat saling berinteraksi. Mulai pada tahun 2006, terjadi perkembangan yang signifikan pada area social computing, seperti halnya social commerce dan perkembangan social software bagi perusahaan. Dengan kemungkinan untuk berinteraksi dan fitur untuk berkomunikasi, social computing mulai dilirik untuk diadopsi dalam perkembangan pendidikan dan area pengetahuan disamping diadopsi oleh bisnis yang menjadikannya sebagai social commerce dan cukup popular saat ini.

Beberapa contoh fitur yang ditawarkan sebuah social computing diantaranya:
  • Blog
Blog merupakan salah satu contoh social computing yang sangat dikenal dan sangat mudah untuk diadopsi. Blog membantu beberapa kelompok penguna untuk dapat saling berinteraksi dan berbagi nformasi. Melaui hal ini, maka pengetahuan juga akan menjadi lebih cepat untuk di transfer. Beberapa yang sangat popular adalah gawker, typepad, sharepoint atau weblogs.com. Perusahaan dapat membuat blog internal dimana menyediakan wadah bagi para karyawan untuk dapat menuliskan pengetahuan yang mereka miliki misalnya artikel.
  • Wiki
Wiki merupakan salah satu software yang memungkinkan untuk kolaborasi. Pengguna internet yang bisa berkolaborasi dalam satu tulisan bisa berasal dari mana saja, bisa ekspert ataupun pelajar baru. Tujuannya adalah agar satu topik yang dibicarakan dapat dikembangkan sedemikian rupa dari mendapatkan berbagai masukan dan ilmu baru. Sehingga belajar tidak hanya dari satu sumber saja. Beberapa software aplikasi yang mirip dengan wiki adalah seperti basecamp, socialtext, dan lain lain.
  • Game Online
Game online yang sangat banyak diminati oleh masyarakat juga bisa dikategorikan sebagai social computing. Ketika bermain game, user dimungkinkan untuk dapat berinteraksi secara langung, berkomunikasi/chatting dengan lawan main atau teman main satu grup. Ini akan membangun jaringan komunikasi dan komunitas.
  • Media Sosial
Sudah tak diragukan lagi bahwa media social saat ini sudah sangat marak untuk digunakan oleh seluruh pengguna internet baik tua ataupun muda. Media social merupakan media yang menjadi tempat bagi orang – orang untuk berbagi hal yang bersifat umum atau pribadi bahkan memungkinkan untuk dapat berinteraksi seperti facebook, twitter, skype, youtube, linkedIn, myspace, dan lain sebagainya.
  • Online Dating
Begitu maraknya aplikasi online saat ini termasuk online dating yang dapat mempertemukan dua orang yang sedang mencari pasangan. Contoh web online dating yang popular adalah OkCupid, Match.com, eharmony, dll
  • Social Commerce
Dunia bisnis pun saat ini mendapatkan keuntungan yang sangat banyak dengan adanya social computing karena ini berarti bahwa mereka dapat memberikan promosi yang lebih besar dan mendapatkan pelanggan lebih banyak. Namun perusahaan juga harus menjaga agar bukan berita buruk yang tersebar. Yang termasuk ke dalam social commerce adalah seperti kaskus, shopee, dll.
Resources: www.sis.binus.ac.id

ANALISIS ALGORITMA

1 comment



-       Algoritma adalah urutan langkah yang tepat dan pasti dalam memecahkan suatu masalah secara logis.
-       Beberapa masalah dapat diselesaikan dengan algoritma yang bermacam macam asal hasilnya sama.
-       Setiap bahasa pemrograman memiliki kelebihan dan kekurangan dalam mengimplementasikan algoritma dan setiap pemrogram dapat mengimplementasikan suatu algoritma dengan cara yang berbeda-beda pula.
-       Namun algoritma dapat dianalisis efisiensi dan kompleksitasnya.
-       Penilaian algoritma didasarkan pada:
·         Waktu eksekusi (paling utama)
·         Penggunaan memori/sumber daya
·         Kesederhanaan dan kejelasan algoritma
-       Analisis algoritma tidak mudah dilakukan secara pasti, maka hanya diambil:
·         Kondisi rata-rata (average case)
·         Kondisi terburuk (worst case)
-       Waktu eksekusi dipengaruhi oleh:
·         Jenis data input
·         Jumlah data input
·         Pemilihan instruksi bahasa pemrograman
-       Faktor-faktor yang menyulitkan analisis disebabkan oleh:
·         Implementasi instruksi oleh bahasa pemrograman yang berbeda
·         Ketergantungan algoritma terhadap jenis data
·         Ketidakjelasan algoritma yang diimplementasikan
-       Langkah-langkah analisis algoritma
·         Menentukan jenis/sifat data input.
·         Mengidentifikasi abstract operation dari data input.
·         Menganalisis secara matematis untuk menentukan average case atau worst case nya.

NOTASI Big-Oh
adalah fungsi yang lebih berkaitan dengan kelajuan proses daripada kelajuan pertambahan data.
T(n) = O(f(n))
jika ada konstan c dan no sedemikian rupa sehingga
T(n) ≤ c.f(n) untuk n ≥ no
Secara sederhana dikatakan bahwa O(f(n)) dpt dianggap sebagai nilai maksimum dari c.f(n).
Contoh:
Jika f(n) = 2n2 maka T(n) = O(n2)
Jika f(n) = 4n2 + 7n + 3 maka T(n) = O(n2)
Contoh program:

Penghitungan eksekusi:
˚       sum = 0                      dieksekusi 1 kali
˚       i = 0                             dieksekusi 1 kali
˚       i < n                            diekseklusi n kali
˚       i++                               dieksekusi n kali
˚       sum = sum + a[i]       dieksekusi n kali
----------------------
2 + 3n kali
Jadi T(n) = O(n)
Contoh program:

Penghitungan eksekusi:
-       sum = 0                            dieksekusi 1 kali
-       i = 0                                   dieksekusi 1 kali
-       i < n                                  dieksekusi 1 kali
-       i++                                     dieksekusi n kali
-       j = o                                   dieksekusi n kali
-       j < n                                   dieksekusi n × n kali
-       j++                                     dieksekusi n × n kali
-       sum = sum + a[ j ]           dieksekusi n × n kali
---------------------------
3 + 2n + 3n2 kali


  • Jika sebagian besar instruksi pada program hanya dieksekusi constant kali.
  • Bersifat konstan, tidak bergantung pada parameter atau banyak data yang diolah
  • Merupakan algoritma paling ideal
Contoh:

  • Waktu eksekusinya sebanding/sama dengan jumlah data.
  • Setiap data input hanya diolah secara sederhana. Misal hanya di tambah,
  • dikurangi, dikalikan, dan dibagi.
  • Inilah kondisi optimal yang dicari dalam membuat algoritma.
Contoh :

  • Waktu eksekusi berbading dengan kwadrat jumlah data. Misal:
·         Jika n=10 waktu eksekusinya 100
·         Jika n=20 waktu eksekusinya 400
  • Biasanya timbul karena setiap data dieksekusi 2 kali, misal dlm nested loop.
  • Contoh : Algoritma Bublesort
Contoh:

  • Waktu eksekusi sebanding dengan logaritma dari jumlah data.
  • Misal jumlah data menjadi 2 kali semula berarti waktu proses bertama 1 unit, jika 1000 kali bertambah 10 unit, jika sejuta berarti 20 satuan.
  • Biasanya untuk algoritma yang memecah masalah besar kedalam sub masalah yang lebih kecil.
  • Contoh : Algoritma binary search dan algoritma fungsi rekursif

  • Bersifat linieritmis (linier dan logaritmis)
  • Untuk algoritma yang memecah masalah besar menjadi sub-masalah yang lebih kecil dan diselesaikan secara terpisah, kemudian hasilnya digabungkan.
  • Contoh : Quicksort

Untuk algoritma yang mengolah setiap data input 3 kali. Biasanya berupa 3 buah nested loop.
  • Algoritma semacam ini sebisa mungkin dihindari.
Contoh:



  • Pada implementasinya, algoritma kadang-kadang memiliki Big-Oh yang merupakan kombinasi dari klasifikasi dasar tersebut.
  • Perancangan algoritma yang memiliki Big-Oh baik tetapi rumit tidak selalu menguntungkan apabila jumlah data inputnya hanya sedikit.
  • Nilai Big-Oh adalah nilai worst case, sehingga dalam implementasinya biasanya tidak mencapai nilai setinggi itu.
CONTOH DAN ATURAN
1.    For loop (perulangan)
Waktu eksekusi pada for loop, maksimum sebanyak waktu eksekusi statement-statement yang ada di dalam loop dikalikan banyaknya iterasi.
Contoh:
Waktu eksekusi = 2 x n kali
Jadi T(n) = O(n)
2.    Nested for loop (perulangan bersarang)
·         Dianalisis dari loop terdalam kemudian keluar.
·         Waktu eksekusi total sebuah statement adalah waktu eksekusi statement tsb dikalikan hasil kali dari banyaknya iterasi semua loop yang ada diluarnya.
Contoh:
a[i,j] akan dieksekusi sebanyak (m x n) kali.
Jadi T(n) = O(n2)
3.   Consecutive Statement (statement yang berurutan)
·         Untuk statement yang berurutan, waktu eksekusinya adalah jml dari masing-masing statement.
·         Berdasarkan pengertian Big-OH, hal tsb akan diambil nilai yang terbesar.
Contoh:
 Jadi T(n) = T1(n) + T2(n) = O(n2)
4.   if else
Total waktu eksekusi adalah waktu test ditambah waktu yang terbesar dari eksekusi Statemen1 atau Statemen2
Contoh:

Jadi total waktu eksekusi adalah 1 + 10 = 11
Jadi T(n) = O(n)