Kata Andrej Karpathy Tokenization itu penting, Kenapa penting ?
Beberapa hari yang lalu, Andrej Karpathy, seorang legenda di dunia AI, memposting video di YouTube-nya dan menyatakan bahwa tokenization adalah kunci dari Large Language Models (LLM). Namun, sebenarnya apa sih tokenization itu? Dan mengapa ia memegang peranan penting dalam model Transformer seperti GPT dan BERT?
Apa itu Tokenization?
Tokenization adalah proses memecah teks menjadi unit-unit yang lebih kecil yang disebut token. Token dapat berupa kata, sub-kata, atau karakter tergantung pada metode tokenization yang digunakan. Dalam konteks Natural Language Processing (NLP) dan model Transformer, tokenization adalah langkah awal yang sangat penting.
Mengapa Tokenization Penting dalam Transformer?
- Representasi Teks yang Dapat Diolah: Tokenization memungkinkan model untuk mengubah teks yang berupa urutan karakter menjadi urutan token yang dapat diolah lebih lanjut. Model Transformer bekerja dengan data numerik, sehingga setiap token perlu diubah menjadi representasi vektor yang dapat diinterpretasikan oleh model.
- Konsistensi Pemrosesan: Dengan tokenization, teks yang panjang dan kompleks bisa dipecah menjadi bagian-bagian yang lebih kecil dan seragam. Ini memudahkan model Transformer untuk menangani variasi bahasa yang luas dan mengurangi kompleksitas pemrosesan.
- Pemahaman Konteks: Dalam Transformer, token-token ini digunakan untuk membangun representasi kontekstual dari teks. Model Transformer seperti BERT dan GPT menggunakan mekanisme self-attention yang membutuhkan input dalam bentuk token untuk memahami hubungan antara kata-kata dalam konteks yang lebih luas.
- Efisiensi Komputasi: Memecah teks menjadi token memungkinkan model Transformer untuk memproses teks dalam batch yang lebih kecil dan efisien. Ini juga memudahkan penggunaan padding dan masking untuk menyelaraskan panjang urutan token dalam batch yang diproses secara bersamaan.
Proses Tokenization
Proses tokenization biasanya melibatkan beberapa langkah:
- Text Cleaning: Langkah pertama adalah membersihkan teks dari karakter atau simbol yang tidak diperlukan, seperti tanda baca berlebih atau spasi ganda.
- Token Splitting: Teks kemudian dipecah menjadi token berdasarkan spasi atau tanda baca. Misalnya, kalimat “Ini adalah contoh tokenization.” akan dipecah menjadi [“Ini”, “adalah”, “contoh”, “tokenization”, “.”].
- Sub-word Tokenization: Dalam beberapa kasus, tokenization dilakukan pada tingkat sub-kata untuk menangani kata-kata yang jarang muncul atau bahasa yang memiliki banyak morfem. Teknik ini digunakan oleh Byte Pair Encoding (BPE) dan WordPiece.
- Numerical Encoding: Setelah teks dipecah menjadi token, setiap token diubah menjadi angka (ID token) yang merujuk pada posisi token dalam vocabulary (kamus kata) model.
Contoh Tokenization dalam Transformer
Misalnya, dalam model BERT, proses tokenization menggunakan metode WordPiece. Kalimat “Tokenization is important in NLP.” akan di-tokenize menjadi [“[CLS]”, “Token”, “##ization”, “is”, “important”, “in”, “NL”, “##P”, “.”, “[SEP]”].
- [CLS] dan [SEP] adalah token khusus yang digunakan oleh model BERT untuk menandai awal dan akhir dari teks input.
- “Token” dan “##ization” menunjukkan tokenisasi sub-kata, di mana “##” menunjukkan bahwa bagian ini adalah kelanjutan dari token sebelumnya.
Kesimpulan
Tokenization adalah langkah penting dalam pemrosesan teks oleh model Transformer. Dengan mengubah teks menjadi token yang lebih kecil dan seragam, tokenization memungkinkan model untuk memproses, memahami, dan mempelajari representasi kontekstual dari teks. Tanpa tokenization, model Transformer tidak akan dapat menangani kompleksitas dan variasi bahasa secara efektif.