Kursus Matematika untuk AI · Pelajaran 7 dari 180

Pangkat untuk AI: Mengapa Menggandakan Konteks Dapat Melipatgandakan Kerja Attention Empat Kali

Pelajari hukum pangkat dan akar, lalu gunakan penjelajah skala logaritmik dan NumPy untuk melihat mengapa dimensi model atau konteks yang digandakan dapat menghasilkan empat kali lebih banyak kuantitas.

Bagikan artikel ini

Sebuah urutan sepanjang 2,0482{,}048 token berisi 4,194,3044{,}194{,}304 pasangan token berurutan. Gandakan urutan itu menjadi 4,0964{,}096 token dan jumlah pasangan menjadi 16,777,21616{,}777{,}216—empat kali lebih banyak. Tidak ada yang berubah pada angka 22; yang berubah adalah operasi yang diterapkan padanya.

Operasi itu adalah pangkat. Pangkat memadatkan perkalian berulang menjadi superskrip kecil, dan superskrip memberi tahu kita bagaimana suatu kuantitas merespons ketika skala masukannya berubah. Pada akhir pelajaran ini, Anda akan dapat memanipulasi eksponen positif, nol, negatif, dan pecahan; memperlakukan akar sebagai pangkat invers dengan batas domain bilangan real; serta menghitung kapan kuantitas AI bertumbuh secara linear atau kuadratik.

Pelajaran ini dibangun di atas pandangan Pelajaran 2 tentang fungsi sebagai aturan yang dapat digunakan ulang. Di sini, aturannya dapat berupa f(n)=n2f(n)=n^2, dan pertanyaannya adalah bagaimana keluarannya berubah ketika nn berubah. Situs pendamping resmi Mathematics for Machine Learning memisahkan fondasi matematika dari sistem pembelajaran mesin yang menggunakannya. Bab pengantarnya memotivasi fondasi tersebut sebagai alat untuk memahami model dan asumsinya; aljabar eksponen di bawah ini adalah jembatan prasyarat orisinal yang dikembangkan untuk kursus ini.

Satu superskrip mengendalikan aturan pertumbuhan

Dalam apa^p, aa adalah basis dan pp adalah eksponen. Eksponen menyatakan bagaimana basis berpartisipasi dalam operasi.

Intuisinya adalah “kalikan basis dengan dirinya sendiri sebanyak pp kali”, tetapi itu hanya mendefinisikan eksponen bilangan bulat positif. Titik awal formalnya adalah:

Eksponen nol dan negatif memperluas definisi ini sambil mempertahankan hukum aljabar yang sama. Untuk setiap aa yang bukan nol,

a0=1danap=1ap.a^0=1 \qquad\text{dan}\qquad a^{-p}=\frac{1}{a^p}.

Syarat a0a\ne0 penting. Pangkat negatif menghasilkan kebalikan, dan pembagian dengan nol tidak terdefinisi. Misalnya,

23=123=18,2^{-3}=\frac{1}{2^3}=\frac{1}{8},

sedangkan 030^{-3} tidak memiliki nilai real.

Aturan eksponen nol mengikuti hukum hasil bagi, bukan dari “tidak ada perkalian sama sekali”. Jika a0a\ne0, maka

a3a3=1dana3a3=a33=a0.\frac{a^3}{a^3}=1 \qquad\text{dan}\qquad \frac{a^3}{a^3}=a^{3-3}=a^0.

Kedua ekspresi hanya dapat sama jika a0=1a^0=1. Karena pembatalan ini menggunakan a0a\ne0, argumen tersebut tidak menentukan 000^0; batas ini memerlukan konteksnya sendiri.

Hukum eksponen memperhitungkan setiap faktor

Untuk bilangan bulat positif mm dan nn, mengalikan dua pangkat dengan basis sama berarti menyambungkan faktor-faktor berulangnya:

aman=aam faktoraan faktor=am+n.a^m a^n =\underbrace{a\cdots a}_{m\text{ faktor}} \underbrace{a\cdots a}_{n\text{ faktor}} =a^{m+n}.

Gagasan menghitung yang sama menghasilkan hukum inti berikut. Eksponen negatif membutuhkan basis tak nol, sedangkan eksponen pecahan membutuhkan perhatian pada domain yang diperkenalkan di bagian berikutnya.

OperasiHukumKehati-hatian yang diperlukan
Mengalikan basis samaaman=am+na^m a^n=a^{m+n}Kedua pangkat harus terdefinisi
Membagi basis samaaman=amn\dfrac{a^m}{a^n}=a^{m-n}a0a\ne0
Memangkatkan pangkat(am)n=amn(a^m)^n=a^{mn}Periksa domain bilangan real untuk pangkat pecahan
Memangkatkan hasil kali(ab)n=anbn(ab)^n=a^n b^nSelalu aman untuk nn bilangan bulat; berhati-hati untuk eksponen real

Ada pola yang menggoda tetapi bukan hukum eksponen:

(a+b)pap+bpsecara umum.(a+b)^p\ne a^p+b^p\quad\text{secara umum}.

Untuk a=2a=2, b=3b=3, dan p=2p=2, sisi kiri adalah 52=255^2=25, sedangkan sisi kanan yang diusulkan adalah 22+32=132^2+3^2=13. Penjumlahan di dalam tanda kurung harus ditangani lebih dahulu, atau dikembangkan dengan hukum distributif.

Akar membalikkan pangkat, dengan domain yang menyertainya

Akar kuadrat utama dari bilangan real nonnegatif yy, ditulis y\sqrt{y}, adalah bilangan real nonnegatif rr yang kuadratnya sama dengan yy:

r=yr0 dan r2=y.r=\sqrt{y} \quad\Longleftrightarrow\quad r\ge0\text{ dan }r^2=y.

Jadi 49=7\sqrt{49}=7. Walaupun 727^2 dan (7)2(-7)^2 sama-sama bernilai 4949, simbol radikal 49\sqrt{49} menunjuk akar nonnegatif. Menyelesaikan persamaan x2=49x^2=49 adalah tugas yang berbeda dan memiliki dua solusi real, x=7x=7 dan x=7x=-7.

Untuk a0a\ge0, akar kuadrat adalah pangkat satu per dua:

a1/2=a.a^{1/2}=\sqrt{a}.

Secara lebih umum, untuk aa positif dan bilangan bulat positif qq, a1/q=aqa^{1/q}=\sqrt[q]{a}. Eksponen rasional menggabungkan akar dan pangkat:

am/q=(aq)m.a^{m/q}=\left(\sqrt[q]{a}\right)^m.

Akar kuadrat bukan berarti “membagi dengan dua”. Nilai 36/236/2 adalah 1818, sedangkan 36=6\sqrt{36}=6 karena 62=366^2=36. Eksponennyalah yang dibagi dua: a4=(a4)1/2=a2\sqrt{a^4}=(a^4)^{1/2}=a^2 untuk aa real. Secara umum, x2=x\sqrt{x^2}=|x|, bukan selalu xx; untuk x=5x=-5, kedua sisi sama-sama 55.

Uji penggandaan menunjukkan pertumbuhan linear dan kuadratik

Misalkan suatu kuantitas mengikuti aturan pangkat

f(n)=Cnp,f(n)=C n^p,

dengan n>0n>0 sebagai ukuran masukan, pp sebagai eksponen penskalaan, dan C>0C>0 sebagai konstanta yang tidak berubah selama perbandingan. Jika masukan dikalikan faktor skala k>0k>0, maka

f(kn)=C(kn)p=Ckpnp=kpf(n).f(kn)=C(kn)^p=Ck^pn^p=k^p f(n).

Jadi keluaran berubah sebesar faktor kpk^p. Saat menggandakan, k=2k=2:

Eksponen ppAturanEfek n2nn\to2nNama yang digunakan
11CnCn21=22^1=2 kalipertumbuhan linear
22Cn2Cn^222=42^2=4 kalipertumbuhan kuadratik
33Cn3Cn^323=82^3=8 kalipertumbuhan kubik
1-1Cn1=C/nCn^{-1}=C/nsebesar 21=1/22^{-1}=1/2 dari semulapertumbuhan invers

Penjelajah menempatkan pangkat-pangkat dari 2 pada jarak yang sama di setiap sumbu. Itu adalah skala logaritmik: langkah yang sama mewakili faktor perkalian yang sama, bukan penambahan yang sama. Gerakkan kontrol panjang urutan dengan penunjuk atau tombol panah, lalu bandingkan garis solid lurus nn dengan kurva kotak putus-putus n2n^2.

Bandingkan pertumbuhan linear dan kuadratik dari baseline 128 token. Grafik, pembacaan, dan tabel data yang dapat dibuka menampilkan nilai yang sama.

Pilih panjang yang merupakan pangkat dari 2, dari 128 hingga 8.192 token. Tombol panah bergerak satu penggandaan setiap kali.

1.024
Linear nKuadratik n²
Pertumbuhan linear dan kuadratik pada sumbu logaritmikGaris solid dengan penanda lingkaran menunjukkan pertumbuhan linear, sedangkan garis putus-putus dengan penanda persegi naik dua kali lebih jauh setiap kali penggandaan dan menunjukkan pertumbuhan kuadratik. Panduan titik-titik vertikal menandai panjang urutan yang dipilih.1×4×16×64×256×1.024×4.096×1282565121.0242.0484.0968.192Panjang urutan n (token, log basis 2)Pertumbuhan relatif terhadap n = 128 (log basis 2)
Panjang yang dipilih
1.024
Pertumbuhan linear
8×
Pertumbuhan kuadratik
64×
Posisi skor n²
1.048.576

Pada n = 1.024, pertumbuhan linear adalah 8× baseline dan pertumbuhan kuadratik adalah 64×, menghasilkan 1.048.576 posisi skor.

Tampilkan data grafik sebagai tabel
Pertumbuhan linear dan kuadratik relatif terhadap 128 token
Panjang urutan nLinear nKuadratik n²Posisi skor n²Keadaan saat ini
1281×1×16.384
2562×4×65.536
5124×16×262.144
1.0248×64×1.048.576← Dipilih
2.04816×256×4.194.304
4.09632×1.024×16.777.216
8.19264×4.096×67.108.864

Keadaan awal yang dirender di server memilih n=1,024n=1{,}024. Relatif terhadap 128128, panjangnya 88 kali lebih besar, tetapi kuadratnya 82=648^2=64 kali lebih besar. Tabel di bawah grafik mempertahankan setiap nilai yang diplot tanpa bergantung pada bentuk visual atau JavaScript.

Attention padat mengubah pasangan token menjadi persegi

Makalah Transformer asli mendefinisikan scaled dot-product attention dengan QKTQK^{\mathsf T}: setiap query dibandingkan dengan setiap key sebelum skor diskalakan, dinormalisasi, dan digunakan untuk menggabungkan value. Dalam analisis self-attention padat klasik, makalah tersebut melaporkan suku kompleksitas per lapisan sebesar O(n2d)O(n^2d), dengan nn sebagai panjang urutan dan dd sebagai lebar representasi (Vaswani dkk., Attention Is All You Need).

Notasi matriks itu dapat dibaca sebagai grid bahkan sebelum kursus ini memperkenalkan matriks secara formal. Dengan nn posisi token:

  • ada nn baris query;
  • setiap baris memiliki satu posisi skor untuk masing-masing dari nn key; dan
  • seluruh grid skor karena itu berisi n×n=n2n\times n=n^2 posisi per head.

Jika setiap perbandingan query-key menggunakan dkd_k fitur, pembentukan dot product tersebut memiliki suku aritmetika utama yang sebanding dengan n2dkn^2d_k. Dengan mempertahankan dkd_k tetap dan hanya mengubah nn, kita memperoleh perhitungan penggandaan dari pembukaan:

Hitungan ini adalah sifat matematis dari grid skor padat penuh. Ini tidak menjamin waktu jam dinding atau memori puncak akan naik tepat 44 kali. Perangkat keras paralel, tiling, kernel yang difusikan atau dihitung ulang, masking, dan mekanisme attention yang menghindari grid penuh dapat mengubah apa yang disimpan implementasi dan seberapa cepat ia berjalan. Klaim yang aman lebih sempit: self-attention padat klasik memiliki n2n^2 posisi skor query-key, dan kompleksitas aritmetika standarnya memuat suku panjang urutan kuadratik.

Pertumbuhan parameter bergantung pada dimensi mana yang berubah

Lapisan padat yang memetakan dind_{\text{in}} fitur masukan ke doutd_{\text{out}} fitur keluaran membutuhkan satu bobot untuk setiap pasangan masukan-keluaran:

Nweights=dindout.N_{\text{weights}}=d_{\text{in}}d_{\text{out}}.

Bias opsional menambah doutd_{\text{out}} parameter, tetapi tabel bobot berpasangan adalah hubungan penskalaan utama dalam contoh ini.

Misalkan lapisan berubah dari 512512 masukan dan 2,0482{,}048 keluaran menjadi 1,0241{,}024 masukan dan 4,0964{,}096 keluaran. Kedua dimensi digandakan:

Nold=512×2,048=1,048,576,Nnew=1,024×4,096=4,194,304.\begin{aligned} N_{\text{old}} &= 512\times2{,}048=1{,}048{,}576,\\ N_{\text{new}} &= 1{,}024\times4{,}096=4{,}194{,}304. \end{aligned}

Rasionya memperlihatkan eksponen:

NnewNold=(2512)(22,048)5122,048=22=22=4.\frac{N_{\text{new}}}{N_{\text{old}}} =\frac{(2\cdot512)(2\cdot2{,}048)}{512\cdot2{,}048} =2\cdot2 =2^2 =4.

Jika hanya lebar keluaran yang digandakan, jumlahnya juga hanya akan berlipat dua. Menyebut semua pertumbuhan parameter “kuadratik” menyembunyikan dimensi mana yang benar-benar berubah. Hukum kuadrat hanya muncul di sini ketika dua dimensi yang dikalikan meningkat bersama.

NumPy memungkinkan formula dan inversnya saling memeriksa

np.logspace milik NumPy membangun nilai pada interval yang sama di skala log; dengan basis 22, titik akhir bilangan bulat 77 hingga 1313 menghasilkan panjang konteks 272^7 hingga 2132^{13}. np.power menaikkan elemen array yang bersesuaian ke pangkat, sedangkan np.sqrt mengembalikan akar kuadrat nonnegatif elemen demi elemen.

import numpy as np

lengths = np.logspace(7, 13, num=7, base=2, dtype=np.int64)
score_positions = np.power(lengths, 2)
quadratic_growth = score_positions // score_positions[0]
recovered_lengths = np.sqrt(score_positions)

print("lengths:", lengths)
print("score positions:", score_positions)
print("quadratic growth:", quadratic_growth)
print("recovered lengths:", recovered_lengths)
lengths: [ 128  256  512 1024 2048 4096 8192]
score positions: [   16384    65536   262144  1048576  4194304 16777216 67108864]
quadratic growth: [   1    4   16   64  256 1024 4096]
recovered lengths: [ 128.  256.  512. 1024. 2048. 4096. 8192.]

Baris terakhir memeriksa hubungan invers pada masukan nonnegatif: n2=n\sqrt{n^2}=n karena setiap panjang urutan dalam array positif. Untuk array yang dapat memuat nn negatif, identitas yang benar adalah n2=n\sqrt{n^2}=|n|.

Kasus batas adalah bagian dari operasi

Notasi eksponen cukup ringkas untuk menyembunyikan kesalahan domain. Kasus-kasus ini harus tetap terlihat saat membaca persamaan atau kode:

  • 000^0 bergantung pada konteks. Aturan a0=1a^0=1 di atas mengasumsikan a0a\ne0, sedangkan 0p=00^p=0 untuk pp positif. Pada 000^0, kedua perluasan itu bertemu tanpa menentukan satu nilai. Sebagian rumus kombinatorial dan sistem perangkat lunak mendefinisikannya sebagai 11 demi kemudahan; aljabar eksponen real elementer sering membiarkannya tak terdefinisi. Nyatakan konvensinya, jangan memilih diam-diam.
  • Akar genap dari bilangan real negatif bukan bilangan real. Tidak ada real rr yang memenuhi r2=9r^2=-9, sehingga 9\sqrt{-9} tidak memiliki nilai real. Bilangan kompleks memperluas domain, tetapi berada di luar pelajaran ini.
  • Basis negatif dengan eksponen pecahan memerlukan kehati-hatian khusus. Akar pangkat tiga real 83=2\sqrt[3]{-8}=-2 ada, sehingga ekspresi rasional eksak (8)1/3(-8)^{1/3} dapat ditafsirkan sebagai 2-2. Namun eksponen floating-point seperti 1 / 3 adalah pendekatan, dan np.power bernilai real milik NumPy mengembalikan nan untuk basis negatif dengan eksponen non-integral. Jangan menganggap perangkat lunak akan memulihkan pecahan yang dimaksud.
  • Pangkat tidak terdistribusi atas penjumlahan. Contoh tandingan (2+3)2=2513=22+32(2+3)^2=25\ne13=2^2+3^2 cukup untuk menolak jalan pintas itu.
  • Akar tidak membagi nilai dengan indeksnya. 36=6\sqrt{36}=6, bukan 1818. Akar membagi eksponen jika asumsi domain yang sesuai terpenuhi.

Penjelajah skala logaritmik sudah mengisyaratkan pertanyaan berikutnya. Jika 2p=82^p=8, operasi apa yang memulihkan p=3p=3? Pelajaran 8 memperkenalkan logaritma sebagai pangkat invers dan menggunakannya untuk mengubah skala perkalian menjadi langkah penjumlahan. Sampai pelajaran itu aktif, halaman kursus Math for AI mempertahankan urutan publikasi yang telah diverifikasi.

Periksa pemahaman Anda

Pertanyaan 1

Hitung 3⁴ dengan mengembangkan pangkatnya, lalu identifikasi basis dan eksponennya.

Tampilkan solusi langkah demi langkah

Dalam 343^4, basisnya adalah 33 dan eksponennya 44. Eksponen bilangan bulat positif menghitung faktor basis yang berulang:

34=3×3×3×3.3^4=3\times3\times3\times3.

Kalikan bertahap:

3×3=9,9×3=27,27×3=81.3\times3=9, \qquad 9\times3=27, \qquad 27\times3=81.

Jadi 34=813^4=81. Mengalikan 3×4=123\times4=12 akan mencampuradukkan jumlah faktor dengan perkalian biasa.

Pertanyaan 2

Untuk x ≠ 0, sederhanakan x³x⁻⁵, tulis hasilnya tanpa eksponen negatif, lalu periksa pada x = 2.

Tampilkan solusi langkah demi langkah

Basisnya sama, jadi eksponen dijumlahkan ketika dikalikan:

x3x5=x3+(5)=x2.x^3x^{-5}=x^{3+(-5)}=x^{-2}.

Eksponen negatif berarti kebalikan, dan asumsi x0x\ne0 membuat kebalikan itu valid:

x2=1x2.x^{-2}=\frac{1}{x^2}.

Pada x=2x=2,

2325=8132=14.2^3\cdot2^{-5} =8\cdot\frac{1}{32} =\frac{1}{4}.

Bentuk sederhananya juga menghasilkan 1/22=1/41/2^2=1/4, sehingga perhitungannya terverifikasi.

Pertanyaan 3

Hitung 64⁻²ᐟ³ dan jelaskan peran tanda negatif, pembilang 2, dan penyebut 3 pada eksponennya.

Tampilkan solusi langkah demi langkah

Tanda negatif meminta kebalikan:

642/3=1642/3.64^{-2/3}=\frac{1}{64^{2/3}}.

Penyebut 33 meminta akar pangkat tiga, dan pembilang 22 kemudian meminta kuadrat:

642/3=(643)2=42=16.64^{2/3}=\left(\sqrt[3]{64}\right)^2=4^2=16.

Menggabungkan langkah-langkah tersebut menghasilkan

642/3=116.64^{-2/3}=\frac{1}{16}.

Basis 6464 positif dan bukan nol, sehingga akar dan kebalikannya valid dalam bilangan real.

Pertanyaan 4

Sebuah lapisan padat bertumbuh dari 300 × 200 bobot menjadi 600 × 400 bobot. Hitung kedua jumlah dan jelaskan mengapa menggandakan kedua dimensi menghasilkan perubahan empat kali lipat.

Tampilkan solusi langkah demi langkah

Lapisan awal memiliki satu bobot untuk setiap pasangan masukan-keluaran:

300×200=60,000 bobot.300\times200=60{,}000\text{ bobot}.

Lapisan yang lebih besar memiliki

600×400=240,000 bobot.600\times400=240{,}000\text{ bobot}.

Rasionya adalah

240,00060,000=4.\frac{240{,}000}{60{,}000}=4.

Secara ekuivalen, setiap dimensi mendapat faktor 22, sehingga hasil kalinya mendapat 2×2=22=42\times2=2^2=4. Penalaran ini hanya menghitung bobot; bias opsional menambah satu nilai per keluaran, bukan satu tabel pasangan penuh lagi.

Pertanyaan 5

Self-attention padat klasik meningkatkan urutan dari 512 menjadi 1.024 token sementara lebar head tetap. Hitung posisi skor query-key sebelum dan sesudah, lalu nyatakan apa yang dibuktikan dan tidak dibuktikan oleh rasionya.

Tampilkan solusi langkah demi langkah

Untuk grid query-key padat penuh, jumlah posisinya adalah n2n^2. Sebelum peningkatan,

5122=262,144.512^2=262{,}144.

Setelah panjang digandakan,

1,0242=1,048,576.1{,}024^2=1{,}048{,}576.

Rasionya adalah

1,048,576262,144=4.\frac{1{,}048{,}576}{262{,}144}=4.

Ini membuktikan bahwa grid penuh memiliki empat kali lebih banyak posisi skor dan bahwa aritmetika attention padat standar memiliki suku panjang kuadratik ketika lebar head tetap. Ini tidak membuktikan perubahan tepat 4×4\times pada latensi terukur atau memori puncak, karena implementasi dan perilaku perangkat keras adalah variabel tambahan.

Pertanyaan 6

Seorang siswa mengklaim (a + b)² = a² + b². Uji klaim itu dengan a = 2 dan b = 3, lalu berikan pengembangan yang benar.

Tampilkan solusi langkah demi langkah

Mensubstitusikan a=2a=2 dan b=3b=3 ke sisi kiri menghasilkan

(2+3)2=52=25.(2+3)^2=5^2=25.

Sisi kanan yang diklaim menghasilkan

22+32=4+9=13.2^2+3^2=4+9=13.

Karena 251325\ne13, satu contoh tandingan membantah identitas yang diklaim. Pengembangan yang benar mengikuti distribusi kedua faktor:

(a+b)2=(a+b)(a+b)=a2+ab+ba+b2=a2+2ab+b2.\begin{aligned} (a+b)^2 &=(a+b)(a+b)\\ &=a^2+ab+ba+b^2\\ &=a^2+2ab+b^2. \end{aligned}

Untuk a=2a=2 dan b=3b=3, hasilnya 4+12+9=254+12+9=25, sesuai dengan sisi kiri.

Pertanyaan 7

Dalam bilangan real, klasifikasikan 0⁻², √(−9), (−8)¹ᐟ³, √((−5)²), dan 0⁰. Berikan alasan atau peringatan konvensi untuk masing-masing.

Tampilkan solusi langkah demi langkah

Pertimbangkan setiap ekspresi dengan domain yang diperlukannya:

  1. 02=1/020^{-2}=1/0^2 akan membagi dengan nol, jadi tidak terdefinisi.
  2. 9\sqrt{-9} tidak memiliki nilai real karena tidak ada bilangan real yang kuadratnya 9-9.
  3. (8)1/3(-8)^{1/3} dapat dibaca sebagai akar pangkat tiga real 83=2\sqrt[3]{-8}=-2 karena indeks akarnya ganjil. Fungsi pangkat floating-point mungkin tidak mempertahankan interpretasi rasional eksak ini.
  4. (5)2=25=5\sqrt{(-5)^2}=\sqrt{25}=5. Akar kuadrat utama tidak negatif, sehingga ini sama dengan 5|-5|, bukan 5-5.
  5. 000^0 bergantung pada konteks. Penurunan eksponen nol mengasumsikan basis tak nol, sehingga tidak menyelesaikan kasus ini. Rumus atau sistem perangkat lunak harus menyatakan apakah ia memakai nilai seperti 11 atau membiarkan ekspresi itu tak terdefinisi.

Pelajaran umumnya adalah bahwa notasi saja tidak menghapus asumsi yang digunakan untuk mendefinisikan operasi.

Sumber

  1. Mathematics for Machine Learning companion website
  2. Mathematics for Machine Learning book PDF
  3. NumPy documentation: numpy.power
  4. NumPy documentation: numpy.sqrt
  5. NumPy documentation: numpy.logspace
  6. Attention Is All You Need