Langsung ke konten

Apa itu Positional Encoding (Pengkodean Posisi)?

Positional encoding adalah informasi tambahan yang diberikan kepada model transformer untuk memberi tahu urutan token dalam kalimat, karena transformer sendiri tidak memiliki konsep urutan bawaan.

Apa itu positional encoding?

Transformer memproses semua token secara paralel—ini yang membuatnya cepat. Tapi ada konsekuensinya: tanpa informasi tambahan, transformer tidak tahu apakah "kucing mengejar tikus" atau "tikus mengejar kucing" memiliki urutan yang berbeda.

Positional encoding (PE) adalah solusinya: sebelum token diproses oleh layer pertama transformer, setiap token ditambahkan vektor angka yang mencerminkan posisinya. Token ke-1 dapat vektor posisi 1, token ke-5 dapat vektor posisi 5, dan seterusnya.

Cara kerjanya

Sinusoidal PE (paper asli Transformer, 2017)

Paper "Attention Is All You Need" (Vaswani et al.) memperkenalkan PE berbasis fungsi sinus dan kosinus:

PE(pos, 2i)   = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

Di mana pos adalah posisi token dan i adalah dimensi. Hasil: setiap posisi mendapat vektor unik yang ditambahkan ke embedding token.

Kenapa sinus/kosinus? Fungsi ini punya sifat matematis yang memudahkan model mempelajari hubungan jarak relatif antar posisi—"posisi 5 berjarak 3 dari posisi 2" bisa dihitung dari vektor PE tanpa data eksplisit.

Learned PE (BERT, GPT)

Alih-alih fungsi matematis tetap, BERT dan GPT-2 mempelajari vektor posisi langsung dari data pelatihan. Setiap slot posisi punya embedding yang dapat diperbarui (trainable). Lebih fleksibel, tapi tidak bisa generalisasi ke panjang teks yang belum pernah dilihat saat pelatihan.

RoPE (Rotary Position Embedding)

Diperkenalkan dalam paper Su et al. (2021), RoPE kini dipakai oleh LLaMA, Mistral, dan Qwen. Cara kerjanya berbeda: PE diaplikasikan langsung ke query dan key dalam mekanisme attention (bukan ke embedding input), menggunakan rotasi matriks.

Keunggulan RoPE: secara alami mendukung extrapolation—model bisa menangani teks yang lebih panjang dari yang dilihat saat pelatihan, terutama dengan teknik RoPE scaling.

ALiBi (Attention with Linear Biases)

Dipakai oleh MPT dan BLOOM. PE digantikan oleh bias linear pada skor attention berdasarkan jarak token. Lebih sederhana dan extrapolasi lebih baik untuk teks panjang.

Perbandingan teknik

Teknik Dipakai oleh Generalisasi ke panjang baru
Sinusoidal (fixed) Transformer asli (2017) Terbatas
Learned BERT, GPT-2 Tidak bisa
RoPE LLaMA, Mistral, Qwen Baik (dengan scaling)
ALiBi MPT, BLOOM Sangat baik

Batasan dan salah paham umum

Bukan tentang "posisi kata di kamus": PE tidak ada hubungannya dengan makna kata. Ini murni tentang urutan dalam kalimat.

Context window bukan hanya soal memori: Batas context window sebagian besar ditentukan oleh PE—di luar batas yang dipelajari saat pelatihan, model tidak "tahu" cara memproses posisi itu.

RoPE bukan solusi ajaib untuk context tak terbatas: Walau RoPE lebih baik dalam extrapolation, kualitas attention tetap menurun untuk teks sangat panjang tanpa teknik tambahan seperti sliding window attention.

Istilah terkait

  • Transformer
  • Self-Attention
  • Context Window
  • RoPE
  • Embedding AI

Rujukan resmi

Istilah Terkait

TransformerSelf-AttentionContext WindowRoPEEmbedding AI