Showing posts with label Artificial Intelligence. Show all posts
Showing posts with label Artificial Intelligence. Show all posts

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.

Fuzzy Logic

No Comments


Fuzzy Logic adalah suatu cabang ilmu Artificial Intelligence, ialah suatu pengetahuan yang membuat komputer dapat meniru kecerdasan manusia. Dengan kata lain fuzzy logic mempunyai fungsi untuk “meniru” kecerdasan yang dimiliki manusia untuk melakukan sesuatu dan mengimplementasikannya ke suatu perangkat, misalnya robot, kendaraan, peralatan rumah tangga, dan lain-lain.

Sejarah Fuzzy Logic

Konsep Fuzzy Logic diperkenalkan oleh Prof. Lotfi Zadeh dari Universitas California di Berkeley pada 1965 dan dipresentasikan bukan sebagai suatu metodologi kontrol, tetapi sebagai suatu cara pemrosesan data dengan memperkenankan penggunaan partial set membership dibanding crisp set membership atau non-membership.Pendekatan pada set teori ini tidak diaplikasikan pada sistem kontrol sampai tahun 70-an karena kemampuan komputer yang tidak cukup pada saat itu. Profesor Zadeh berpikir bahwa orang tidak membutuhkan kepastian, masukan informasi numerik, dan belum mampu terhadap kontrol adaptif yang tinggi.

Konsep fuzzy logic kemudian berhasil diaplikasikan dalam bidang kontrol oleh E.H. Mamdani. Sejak saat itu aplikasi fuzzy berkembang kian pesat. Di tahun 1980-an negara Jepang dan negara-negara di Eropa secara agresif membangun produk nyata sehubungan dengan konsep fuzzy logic yang diintegrasikan dalam produk-produk kebutuhan rumah tangga seperti vacuum cleaner, microwave oven dan kamera video.  Sementara pengusaha di Amerika Serikat tidak secepat itu mencakup teknologi ini. Fuzzy logic  berkembang pesat selama beberapa tahun terakhir. Terdapat lebih dari dua ribu produk dipasaran yang menggunakan konsep fuzzy logic, mulai dari mesin cuci hingga kereta berkecepatan tinggi. Setiap aplikasi tentunya menyadari beberapa keuntungan dari fuzzy logic seperti performa, kesederhaan, biaya rendah dan produktifitasnya.

Konsep Fuzzy Logic
  • Fuzzy logic umumnya diterapkan pada masalahmasalah yang mengandung unsur ketidakpastian (uncertainty), ketidaktepatan (imprecise), noisy, dan sebagainya.
  • Fuzzy logic menjembatani bahasa mesin yang presisi dengan bahasa manusia yang menekankan pada makna atau arti (significance).
  • Fuzzy logic dikembangkan berdasarkan cara berfikir manusia
 Contoh- Contoh Ketidakpastian:

Contoh 1 : Seseorang dikatakan “tinggi” jika tinggi badannya lebih dari 1,7 meter. Bagaimana dengan orang yang mempunyai tinggi badan 1,6999 meter atau 1,65 meter, apakah termasuk kategori orang yang tinggi? Menurut persepsi manusia, orang yang mempunyai tinggi badan sekitar 1,7 meter dikatakan “kurang lebih tinggi” atau “agak tinggi”.

Contoh 2 : Kecepatan “pelan” didefinisikan di bawah 20 km/jam. Bagaimana dengan kecepatan 20,001 km/jam, apakah masih dapat dikatakan pelan? Manusia mungkin mengatakan bahwa kecepatan 20,001 km/jam itu “agak pelan”.

Arsitektur Fuzzy Logic 
Ada tiga proses utama jika ingin mengimplementasikan fuzzy logic pada suatu perangkat, yaitu fuzzifikasi, evaluasi rule, dan defuzzifikasi.
  1. Fuzzification, merupakan suatu proses untuk mengubah suatu masukan dari bentuk tegas (crisp) menjadi fuzzy yang biasanya disajikan dalam bentuk himpunan-himpunan fuzzy dengan suatu fungsi kenggotaannya masing-masing.
  2. Interference System (Evaluasi Rule), merupakan sebagai acuan untuk menjelaskan hubungan antara variable-variabel masukan dan keluaran yang mana variabel yang diproses dan yang dihasilkan berbentuk fuzzy. Untuk menjelaskan hubungan antara masukan dan keluaran biasanya menggunakan “IF-THEN”.
  3. Defuzzification, merupakan proses pengubahan variabel berbentuk fuzzy tersebut menjadi data-data pasti (crisp) yang dapat dikirimkan ke peralatan pengendalian.
Berikut diagram alir prosesnya.


 sumber: amarnotes.wordpress.com