Deep Learning Academy · Pelajaran

Pengekodan Kedudukan untuk Susunan

Suntik kedudukan jujukan ke dalam token.

Pelajaran 3 daripada 413 langkah

Pengekodan Kedudukan untuk Susunan ialah pelajaran Deep Learning Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Deep Learning Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Deep Learning Academy merangkumi sejumlah 4 pelajaran.

Perhatian Mengabaikan Susunan

Perhatian kendiri menganggap ayat sebagai himpunan token. Susun semula perkataan dan matematiknya hampir tidak berubah, jadi model tidak mempunyai deria terbina dalam tentang susunan.

Susunan Membawa Makna

Namun susunan penting: "dog bites man" tidak sama dengan "man bites dog". Kita perlu memberikan model isyarat tentang kedudukan setiap token.

Tambah, Jangan Cantumkan

Caranya ialah menambah vektor kedudukan secara terus kepada pembenaman setiap token. Bentuknya sama, jadi perhatian melihat kandungan dan tempat sebagai satu gabungan.

x = token_emb + pos_emb

Pengekodan Sinus

Transformer asal menggunakan gelombang sinus dan kosinus tetap dengan frekuensi yang berbeza, satu corak bagi setiap dimensi, untuk menandakan setiap kedudukan.

Mengapa Gelombang Sinus

Pencampuran frekuensi memberikan setiap kedudukan cap jari yang unik, dan gelombang licin membolehkan model membuat generalisasi kepada panjang yang tidak pernah dilihatnya semasa latihan.

Formula

Dimensi genap menggunakan sinus, manakala dimensi ganjil menggunakan kosinus, dengan panjang gelombang yang meningkat merentas dimensi. Itulah keseluruhan resipi pengekodan.

pe[:, 0::2] = torch.sin(pos / div)
pe[:, 1::2] = torch.cos(pos / div)

Jarak Relatif

Satu kelebihan menarik: dengan gelombang sinus, ofset antara dua kedudukan mudah dinyatakan, lalu membantu perhatian menaakul tentang jarak relatif.

Kedudukan yang Dipelajari

Model moden sering meninggalkan gelombang sinus dan menggunakan jadual pembenaman yang dipelajari, iaitu satu vektor boleh dilatih bagi setiap kedudukan, sama seperti pembenaman perkataan.

self.pos_emb = nn.Embedding(max_len, d_model)

Tetap berbanding Dipelajari

Gelombang sinus tetap boleh diekstrapolasi kepada panjang baharu secara percuma; jadual yang dipelajari sesuai dengan data anda tetapi terhad kepada panjang maksimum yang digunakan semasa latihan.

Pengekodan Putaran

Transformer yang lebih baharu mengutamakan pengekodan kedudukan putaran, yang memutarkan vektor pertanyaan dan kunci mengikut sudut yang berkaitan dengan kedudukan, lalu memasukkan susunan terus ke dalam perhatian.

Lokasinya

Walau apa pun skema yang anda pilih, maklumat kedudukan disuntik sekali pada input, sebelum lapisan perhatian pertama dijalankan.

Semakan Ringkas

Mari semak sebab pengekodan kedudukan wujud.

Rumusan

Anda telah belajar bahawa perhatian mengabaikan susunan, jadi kita menambah pengekodan kedudukan, sama ada berbentuk sinus, dipelajari atau putaran, untuk memberitahu lokasi token. Syabas!

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Pengekodan Kedudukan untuk Susunan” percuma?

Ya — teks penuh “Pengekodan Kedudukan untuk Susunan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Deep Learning Academy, tingkat taraf kepada CoddyKit PRO. Kursus Deep Learning Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengekodan Kedudukan untuk Susunan”?

Suntik kedudukan jujukan ke dalam token. Anda berlatih Deep Learning Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Deep Learning Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Deep Learning Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Pengekodan Kedudukan untuk Susunan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Deep Learning Academy ini?

Ya. Setiap pelajaran Deep Learning Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Perhatian Kendiri: Query, Key dan Value
  2. Hasil Darab Titik Berskala dan Berbilang Kepala
  3. Pengekodan Kedudukan untuk Susunan
  4. Tindan Blok Pengekod Transformer
← Kembali ke Deep Learning Academy