Press enter to see results or esc to cancel.

Bagaimana Transformer Bekerja

Pada materi ini kita akan merujuk pada Roadmap LLM Engineer yang tlah ada. Berikut ini rencana pembelajaran kita.

Table of Content

  • Large Language Model
    •  Foundation Model
    •  Penggunaan
  • Text Generation sebelum LLM
    •  RNN dan Analogi Sederhana
  • Transformer: Attention is All You Need
    •  Arsitektur

Large Language Model

Pada materi sebelumnya kita sudah memulai mengenal dasar LLM melalui LM (Language Model) dalam memprediksi probabilitas urutan kata dalam sebuah kalimat.

Kali ini kita akan lebih mendalami lagi Generative AI dan LLM untuk melihat lebih lengkap dengan Generativr AI dan LLM beserta contohnya.

LLM tlah dilatih triliunan kata-kata (scopus) selama berbulan-bulan dan dengan komputasi komputer yang besar.💡

Saya lebih suka membayangkan model dalam LLM sebagai Memori Model, semakin banyak parameter yang dimiliki model, semakin banyak memori yang dimiliki dan semakin canggih model tersebut.

Foundation Model

Berikut ini merupakan beberapa Foundation Model yang ada

Berikut adalah tabel perbandingan beberapa model yang disebutkan pada gambar Anda, dengan informasi seperti tujuan, jumlah parameter, dan fakta penting lainnya:

ModelTujuan UtamaParameterInfo Penting
GPTGenerasi teks, summarization, chatbotsGPT-4: ~1 Triliun+ (perkiraan)Dikembangkan oleh OpenAI, mampu memahami dan menghasilkan teks secara kontekstual. Digunakan dalam ChatGPT.
BERTPemahaman teks (klasifikasi, Q&A, NER)~110M (BERT-Base), ~340M (BERT-Large)Dikembangkan oleh Google, menggunakan pendekatan bidirectional untuk memahami konteks penuh kalimat.
FLAN-T5Generalisasi multi-tugas berbasis instruksi11B (FLAN-T5-XXL)Dikembangkan oleh Google, fine-tuned untuk berbagai tugas NLP melalui pendekatan berbasis instruksi.
LLaMaModel ringan untuk pemrosesan teks7B, 13B, 30B, 65BDikembangkan oleh Meta, dirancang agar lebih efisien dengan performa tinggi pada hardware biasa.
BLOOMGenerasi teks multibahasa176BDikembangkan oleh BigScience, bersifat open-source dan mendukung lebih dari 46 bahasa.
PaLMGenerasi teks, logika, dan reasoning540BDikembangkan oleh Google, unggul dalam tugas reasoning dan logika tingkat lanjut.

💡

Foundation Model:

  • Merupakan model dasar yang telah dilatih pada data dalam jumlah besar.
  • Setelah dilatih, model ini dapat disesuaikan (fine-tuned) untuk tugas spesifik seperti pembuatan teks, klasifikasi, penerjemahan, atau lainnya.
  • Contoh: GPT (Generative Pre-trained Transformer) digunakan untuk berbagai tugas pembuatan teks, sementara BERT digunakan untuk pemahaman bahasa.
  • Foundation Model berbeda dengan Base Model dalam kematangan model, Base Model cendrung menggunakan data yang mentah (Belum di Fine-Tuning)

Penggunaan LLM

Berikut tabel untuk use case LLM dan kasus penggunaannya secara singkat:

Nama Use CaseKasus Penggunaan Singkat
Customer SupportChatbot otomatis untuk FAQ dan panduan troubleshooting.
Konten GenerasiMenulis artikel, deskripsi produk, dan email pemasaran.
TranslationMembantu translate dari bahasa tertentu ke bahasa lainnya
Analisis SentimenMenganalisis ulasan pelanggan dan feedback untuk sentimen.

Text Generation sebelum LLM

Text Generation sebelum LLM banyak menggunakan RNN atau disebut dengan Jaringan Saraf Berulang,

Recurrent Neural Network (RNN) adalah jenis jaringan neural yang dirancang untuk menangani data berurutan, seperti teks, audio, atau data time series.

Cara Kerja Singkat:

  • RNN mengingat informasi sebelumnya menggunakan hidden state yang dibawa dari satu langkah ke langkah berikutnya dalam urutan data.
  • Model ini memproses data satu elemen pada satu waktu (misalnya, satu kata dalam kalimat atau satu frame audio), dengan memanfaatkan informasi dari elemen sebelumnya.

RNN dan Analogi Sederhana

Misalkan kita akan menulis sebuah kalimat, tetapi hanya bisa mengingat kata terakhir yang baru saja ditulis.

Cara Kerja RNN:

  1. Kita mulai dengan kata pertama (misalnya, “Hello”).
  2. Kemudian kamu berpikir, “Apa yang sebaiknya saya tulis berikutnya?” Untuk menjawab ini, kamu hanya mengingat kata terakhir (“Hello”).
  3. Kamu menulis kata berikutnya berdasarkan ingatan kamu (misalnya, “world”). Sekarang kamu melupakan “Hello” dan hanya mengingat “world”.
  4. Proses ini diulang untuk setiap kata. Setiap keputusan hanya didasarkan pada kata terakhir yang kamu ingat.

Hasil akhirnya mungkin adalah sesuatu seperti:

Hello → world → how → are → you

Kelemahan RNN: Ingatan Pendek

Sekarang bayangkan kamu menulis cerita panjang, tetapi hanya bisa mengingat kata terakhir setiap saat. Jika kamu menulis:

Kemarin saya pergi ke taman dan melihat indahnya ...

Kamu mungkin lupa konteks awal (”Kemarin saya pergi ke taman”) dan menulis sesuatu yang tidak nyambung seperti:


... pisang di dalam kulkas.

Ini adalah kelemahan RNN, yaitu kesulitan mengingat konteks yang lebih jauh ke belakang. RNN cenderung melupakan informasi lama ketika data terlalu panjang.

Transformer: Attention is All You Need

“Attention is All You Need” adalah makalah penelitian yang diterbitkan pada tahun 2017 oleh para peneliti Google, yang memperkenalkan model Transformer, sebuah arsitektur baru yang merevolusi bidang pemrosesan bahasa alami (NLP) dan menjadi dasar bagi LLM yang kita kenal sekarang – seperti GPT, PaLM, dan lainnya. Makalah ini mengusulkan arsitektur jaringan saraf yang menggantikan jaringan saraf berulang (RNN) dan jaringan saraf konvolusional (CNN) tradisional dengan mekanisme yang sepenuhnya berbasis perhatian.

Model Transformer menggunakan perhatian mandiri untuk menghitung representasi urutan masukan, yang memungkinkannya untuk menangkap ketergantungan jangka panjang dan memparalelkan komputasi secara efektif. Para penulis menunjukkan bahwa model mereka mencapai kinerja mutakhir pada beberapa tugas penerjemahan mesin dan mengungguli model sebelumnya yang mengandalkan RNN atau CNN.

Arsitektur Transformer terdiri dari encoder dan decoder, yang masing-masing terdiri dari beberapa lapisan. Setiap lapisan terdiri dari dua sublapisan: mekanisme self multi-head attention dan jaringan saraf feed-forward. Mekanisme self-attention multi-head memungkinkan model untuk memperhatikan bagian-bagian berbeda dari urutan input, sementara jaringan feed-forward menerapkan lapisan yang terhubung penuh secara titik-demi-titik ke setiap posisi secara terpisah dan identik.

Kemampuan utama Transformer adalah dapat mempelajari relevansi dan konteks dari semua kata dalam sebuah kalimat.

image.png

Transformer dapat memahami hubungan antar kata:

  • The – Teacher
  • The – Taught
  • The – [ke kata lainnya]
  • Teacher – Taught
  • Teacher – Student
  • dstnya..

Sehingga dapat menerapkan bobot keterhubungan antar kata.

image.png

Proses memahami keterhubungan antar kata ini disebut dengan Self-Attention.

Self-Attention Diagram Map

Self-Attention Diagram Map💡

Self Attention adalah mekanisme dalam Large Language Model (LLM) yang memungkinkan model untuk fokus pada bagian-bagian berbeda dari urutan masukan dan memahami hubungan antar kata.

Komponen pada Self-Attention

ComponentDescription
QueryVektor yang mewakili fokus model pada kata tertentu dalam urutan
KeyLabel atau titik referensi untuk setiap kata dalam urutan
ValueInformasi aktual yang terkait dengan setiap kata
Attention scoreDihitung dengan membandingkan vector query dengan vector kunci dari semua kata lainnya
OutputTotal penjumlahan bobot dari nilai vector dimana besaran bobot dihasilkan oleh Attention Score

Simulasi Diagram Map Self-Attention

Mekanisme Self-Attention

Mekanisme Self-Attention

Arsitektur Transformer

Arsitektur Transformer

Self-Attention adalah salah satu bagian utama yang sudah kita bahas sebelumnya, sekarang kita pelajari lebih dalam lagi Arsitektur Transformer.

Diagram arsitektur di atas bila di sederhanakan akan seperti ini:

Secara high-level, Transformer akan diterbagi menjadi 2 yaitu Encoder dan Decoder, keduanya berjalan terpisah dan berbagi beberapa kesamaan.

Pembacaannya dari bawah (input) ke atas (output). Berikut ini adalah tahapan di dalam Arsitektur Transformer.

Cara Kerja Transformer

1. Tokenisasi

Pada proses paling awal, setiap input yang nantinya akan disebut dengan Prompt akan dikonversi menjadi angka-angka.

Tokenizer

Tokenizer💡

“Tokenizer” dalam Large Language Model (LLM) adalah komponen perangkat lunak yang memecah teks mentah menjadi unit-unit yang lebih kecil dan mudah dikelola yang disebut “token”, yang merupakan blok-blok dasar yang dapat diproses dan dipahami oleh LLM; pada dasarnya, ia menerjemahkan bahasa manusia ke dalam format yang dapat digunakan oleh model dengan membagi teks menjadi bagian-bagian terpisah seperti kata, subkata, atau karakter, tergantung pada metode yang dipilih.

2. Embedding

image.png

Pada tahap ini, input sudah berupa angka (token), layer ini adalah trainable vector embedding space dimana setiap token disimpan menjadi vector yang mengisi lokasi yang unik dalam ruang tersebut.

image.png

Di dalam embedding, setiap kata yang sudah menjadi token melalui proses tokenisasi selanjutnya akan dipetakan menjadi vector. Vector ini seperti array matriks yang panjang umumnya adalah 512 dimensi yang ditunjukkan oleh gambar di atas.

image.png

Bayangkan vector 3 dimensi di atas ini sebelum membayangkan 512 dimensi. Setiap kata akan yang tlah di representasikan sebagai angka akan di menempati posisi-posisi tertentu, setiap kata tersebut akan memiliki kecendrungan dekat dan jauh terhadap kata-kata yang ada.

image.png

Kita bisa melihat kedekatan kata antar kata, seperti kata student dengan book yang diperjelas dengan sudut pengukuran. Melalui perhitungan sudut inilah Transformer dalam memahami bahasa secara sistematis.

3. Positional Encoding

image.png

Pada tahapan ini, terjadi proses pengkodean posisi dengan tujuan model tidak kehilangan urutan token. Ilustrasi detailnya sebagai berikut.

image.png

Model memproses setiap token input secara paralel dengan menambahkan pengkodean posisi, Model menyimpan informasi tentang urutan kata agar tidak kehilangan relevansi posisi kata dalam kalimat.

  1. Token Embeddings:
    • Setiap kata (atau token) dalam kalimat diubah menjadi representasi vektor melalui embedding (misalnya, vektor x₁, x₂, x₃). Ini mewakili arti kata tersebut.
  2. Position Embeddings:
    • Positional encoding menambahkan informasi tentang posisi token dalam urutan. Misalnya, vektor posisi untuk token pertama (x₁) berbeda dari token kedua (x₂), meskipun kata-kata itu mungkin sama. Ini memberikan konteks posisi kepada model.
  3. Proses Penjumlahan:
    • Vektor token embeddings dan position embeddings dijumlahkan untuk menghasilkan representasi gabungan. Hasil ini memiliki informasi tentang makna token dan juga posisinya dalam urutan.
  4. Fungsi Positional Encoding:
    • Biasanya, positional encoding dihitung menggunakan fungsi sinus dan cosinus dengan frekuensi berbeda. Ini memungkinkan model menangkap pola urutan, terlepas dari panjangnya.

Contoh Sederhana

Bayangkan Anda memberi Transformer kalimat: “Saya makan apel.”

  • Token embeddings akan memberi tahu model arti dari “Saya,” “makan,” dan “apel.”
  • Positional encoding memberi tahu bahwa “Saya” ada di posisi pertama, “makan” kedua, dan “apel” ketiga.

4. Mekanisme Self-Attention & Multi-Headed Self-Attention

image.png

Hasil penjumlahan dari token embeddings dan position embeddings selanjutnya akan diteruskan ke layer Self-Attention. Disini model akan menganalisa hubungan antar token sesuai dengan urutan input. Ini memungkinkan model untuk memperhatikan bagian yang berbeda dari urutan untuk menangkap dependensi kontektual antar kata-kata lebih baik.

Contohnya

image.png

Yuk kita balik ke contoh sebelumnya bagaimana keterhubungan antar kata. Nah, dalam Self-Attention coba dianalisa keterhubungannya antar satu sama lain untuk mendapatkan makna sesungguhnya dari keterhubungan kata.

image.png

Hasil dari Self-Attention yang berupa bobot akan disimpan dalam layer ini dan pada dasarnya proses Self-Attention ini tidak dilakukan sekali melainkan berulang dan simultan, proses ini disebut sebagai Multi-Headed Self-Attention.

Jika Self-Attention membantu model memahami hubungan antara kata-kata dalam satu kalimat. Contohnya:

  • Dalam kalimat “Saya makan apel karena saya lapar”, kata “saya” pertama dan kedua saling berhubungan. Self-Attention membantu model melihat hubungan ini.

Bagaimana Multi-Headed Self-Attention Bekerja?

Bayangkan kamu adalah seorang detektif yang menyelidiki sebuah kasus. Kamu melihat setiap petunjuk (kata dalam kalimat) dari berbagai sudut pandang (multi-heads) untuk memahami keseluruhan cerita.

Langkah-Langkahnya (Analogi):

  1. Mengamati Petunjuk (Self-Attention):
    • Setiap “petunjuk” (kata) memiliki arti yang berbeda tergantung pada konteksnya.
    • Untuk memahami hubungan antar kata, Kamu “bertanya” ke setiap kata:
      • Query (Q): Apa yang saya cari? (Apa yang “saya” ingin tahu tentang kata lainnya?)
      • Key (K): Apa informasi penting yang saya miliki? (Apa yang kata lainnya miliki yang relevan untuk “saya”?)
      • Value (V): Apa nilai yang harus saya ambil? (Informasi apa yang benar-benar berguna?)
    Model menghitung skor perhatian antara setiap pasangan kata (Query-Key) untuk menentukan seberapa penting hubungan antar kata tersebut.Analogi Visual:Bayangkan sebuah tim investigasi:
    • Setiap anggota tim (head) memiliki keahlian berbeda (misalnya, ahli sidik jari, ahli DNA, dan ahli forensik).
    • Semua anggota melihat kasus yang sama (kalimat), tetapi dari sudut pandang berbeda.
    • Di akhir, mereka mengumpulkan semua temuan mereka untuk menghasilkan laporan lengkap (pemahaman model tentang kalimat).

5. Feed Forward Network

image.png

Feed Forward Network adalah bagian di mana setiap token diproses secara individual untuk menyempurnakan calon response yang dihasilkan agar lebih kaya dan lebih sesuai dengan konteks yang sudah didapat sebelumnya.

Bayangkan kita punya selembar kertas catatan dari Multi-Headed Self-Attention. Sekarang, kita akan memperbaiki, saring, dan memperkaya catatan ini agar lebih mudah dimengerti.

Analogi Sederhana:

Bayangkan kita sedang menulis esai.

  • Langkah 1: Kita menulis draft awal dengan banyak ide kasar. (Output dari Multi-Headed Self-Attention.)
  • Langkah 2: Sekarang, kita perbaiki draft itu:
    • Lapisan Pertama: Kita tambahkan detail tambahan ke setiap kalimat agar lebih jelas. (Memperbesar dimensi informasi.)
    • Aktivasi: Kita memutuskan detail mana yang penting dan mana yang harus diabaikan. (Menggunakan ReLU.)
    • Lapisan Kedua: Kita ringkas kalimat kembali ke versi yang lebih sederhana tapi tetap kaya informasi. (Proyeksi ke dimensi awal.)

Hasil akhirnya adalah esai yang lebih baik dan lebih terstruktur.💡

ReLU (Rectified Linear Unit) adalah salah satu fungsi aktivasi yang paling umum digunakan dalam jaringan saraf tiruan (neural network).

6. Softmax

Softmax adalah fungsi matematika yang mengubah angka-angka menjadi probabilitas. Probabilitas ini menggambarkan seberapa besar kemungkinan setiap pilihan (atau kelas) benar. Di dalam proses ini semua hasil analisa dari Encoder maupun Decoder akan di ubah menjadi probabilitas hasil.

7. Detokenisasi

  • Detokenisasi adalah proses mengubah token menjadi kata-kata atau kalimat.
  • Model menghasilkan token (angka) setelah Softmax menentukan token mana yang dipilih.
  • Library atau framework memanfaatkan kosakata (vocabulary) untuk mengubah token tersebut kembali menjadi kata.

💡

Tokenisasi dan detokenisasi adalah proses yang saling berhubungan dan harus menggunakan library atau model tokenizer yang sama agar hasilnya konsisten.


Referensi

https://www.coursera.org/learn/generative-ai-with-llms/lecture/IrsEw/generative-ai-llms

https://medium.com/thedeephub/all-you-need-to-know-about-tokenization-in-llms-7a801302cf54#:~:text=Tokenization is the process of,token in the language model.

https://www.datacamp.com/blog/attention-mechanism-in-llms-intuition