Machine learning adalah cara bikin program yang aturannya gak kamu tulis sendiri: program itu mencarinya dari contoh. Bayangin kamu baru pindah kota dan naik ojek lima kali. Gak ada yang kasih tahu tarifnya, tapi dari lima perjalanan itu kamu bisa menebak aturannya: sekian rupiah per kilometer, plus biaya awal. Menebak aturan dari contoh itu namanya training. Memakai aturan yang sudah ketemu untuk perjalanan keenam namanya inference.
🧪 Tebakan cepat: sebuah model memberi kata " ada" peluang 61,9% sebagai kata berikutnya. Kalau temperature diturunkan dari 1 ke 0,2, peluangnya jadi berapa: tetap 61,9%, sekitar 86%, atau 99,3%? Tebak dulu, jawabannya ada di bagian "Temperature: seberapa berani memilih".
Training: model mencari aturannya sendiri
Toko Buku mau menebak berapa eksemplar terjual dari berapa kali halaman bukunya dilihat. Ini datanya (angka contoh untuk belajar, bukan data penjualan asli):
Dilihat (ratus kali), x |
1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
Terjual (eksemplar), y |
2 | 3 | 5 | 6 | 8 |
Model kita cuma satu rumus garis: prediksi = w × x + b. Angka w dan b disebut parameter (atau bobot). Awalnya keduanya 0. Training mengubahnya sedikit demi sedikit supaya loss, rata-rata kuadrat selisih prediksi dan jawaban asli, makin kecil:
const data = [[1, 2], [2, 3], [3, 5], [4, 6], [5, 8]];
let w = 0;
let b = 0;
const lr = 0.05; // learning rate: seberapa besar tiap langkah
function loss() {
return data.reduce((s, [x, y]) => s + (w * x + b - y) ** 2, 0) / data.length;
}
for (let langkah = 1; langkah <= 500; langkah++) {
let gw = 0;
let gb = 0;
for (const [x, y] of data) {
const selisih = w * x + b - y;
gw += (2 * selisih * x) / data.length; // arah perubahan loss kalau w naik
gb += (2 * selisih) / data.length; // arah perubahan loss kalau b naik
}
w -= lr * gw; // geser berlawanan arah supaya loss turun
b -= lr * gb;
}
console.log(w.toFixed(2), b.toFixed(2), loss().toFixed(2)); // 1.50 0.30 0.06
selisihpositif artinya tebakannya kebesaran.gwdangb(namanya gradient) bilang ke arah mana loss naik, jadi kita melangkah ke arah sebaliknya.lrmengatur besar langkah. Kebesaran, garisnya melompat-lompat dan gak pernah pas.
Jalannya training, dihitung beneran dengan kode di atas:
| Langkah | w |
b |
Loss |
|---|---|---|---|
| 0 | 0 | 0 | 27,6 |
| 1 | 1,74 | 0,48 | 0,99 |
| 2 | 1,42 | 0,39 | 0,093 |
| 10 | 1,475 | 0,390 | 0,0615 |
| 200 | 1,499 | 0,304 | 0,0600 |
| 500 | 1,500 | 0,300 | 0,0600 |
Hasilnya prediksi = 1,5 × x + 0,3. Loss gak sampai 0 karena titik-titiknya memang gak segaris sempurna.
Supervised dan unsupervised
Data kita punya jawaban untuk tiap contoh (kolom terjual). Jawaban itu disebut label, dan belajar dari data berlabel disebut supervised learning. Kalau datanya gak punya label, misalnya riwayat belanja pelanggan tanpa keterangan apa pun, model hanya bisa mencari pola sendiri, misalnya mengelompokkan pelanggan yang suka novel sejarah. Itu unsupervised learning.
Inference: memakai model yang sudah jadi
Setelah training, w dan b dibekukan. Menebak penjualan untuk 600 kali dilihat cukup satu hitungan: 1,5 × 6 + 0,3 = 9,3 eksemplar. Itu inference: murah dan cepat.
Model bahasa besar sama, cuma jauh lebih besar. Training-nya memakai teks dalam jumlah sangat besar, ribuan GPU, dan waktu berbulan-bulan, dan itu dikerjakan provider. Waktu kamu memanggil API, kamu cuma menjalankan inference: parameternya gak berubah, dan model gak belajar dari percakapanmu.
LLM: menebak token berikutnya
LLM (Large Language Model) adalah model deep learning, yaitu jaringan saraf dengan miliaran parameter seperti w dan b, yang dilatih pada teks dalam jumlah sangat besar sampai bisa memahami dan menghasilkan bahasa. Kerjanya berulang: lihat teks sejauh ini, tebak potongan berikutnya, tambahkan, ulangi.
Potongan itu disebut token: bisa satu kata, bagian kata, atau tanda baca. Dengan tokenizer o200k_base milik OpenAI (dipakai GPT-4o; model lain bisa memotong sedikit beda), Stok Laskar Pelangi masih ada? jadi 9 token: St ok L askar Pel angi masih ada ?. Kata ketersediaan jadi 4 token, sedangkan availability cuma 1. Teks bahasa Indonesia sering butuh lebih banyak token, dan biaya API dihitung per token.
Untuk Stok Laskar Pelangi masih, model memberi tiap kandidat token berikutnya sebuah skor mentah, namanya logit. Tabel ini ilustrasi: logit-nya kami karang supaya hitungannya bisa diikuti, bukan diambil dari model asli. Persentasenya dihitung beneran dari logit itu:
| Kandidat | Logit | Peluang (temperature 1) |
|---|---|---|
ada |
4,0 | 61,9% |
tersedia |
3,0 | 22,8% |
12 |
2,0 | 8,4% |
banyak |
1,5 | 5,1% |
habis |
0,5 | 1,9% |
Temperature: seberapa berani memilih
Logit diubah jadi peluang dengan softmax, setelah dibagi dulu dengan temperature:
function softmax(logits, temperature) {
const z = logits.map((l) => l / temperature);
const max = Math.max(...z); // dikurangi max supaya Math.exp gak meledak
const e = z.map((v) => Math.exp(v - max));
const total = e.reduce((a, c) => a + c, 0);
return e.map((v) => v / total);
}
console.log(softmax([4, 3, 2, 1.5, 0.5], 0.2).map((p) => (p * 100).toFixed(1)));
// [ '99.3', '0.7', '0.0', '0.0', '0.0' ]
| Kandidat | T = 0,2 | T = 1 | T = 1,5 |
|---|---|---|---|
ada |
99,3% | 61,9% | 48,5% |
tersedia |
0,7% | 22,8% | 24,9% |
12 |
0,0% | 8,4% | 12,8% |
banyak |
0,0% | 5,1% | 9,2% |
habis |
0,0% | 1,9% | 4,7% |
Di temperature 0,2, ada jadi 99,3%. Itu jawaban tebakannya. Temperature kecil membuat yang sudah unggul makin unggul; temperature besar meratakan peluang.
Model gak selalu mengambil kandidat teratas. Dia mengambil sampel sesuai peluangnya: di temperature 1, ada keluar sekitar 6 dari 10 kali, sisanya kata lain. Itu sebabnya pertanyaan yang sama bisa dapat jawaban berbeda. Temperature rendah bikin jawaban lebih konsisten, tapi provider gak menjanjikan hasil yang persis sama setiap kali.
Per Oktober 2026, panduan "Using GPT-6" dari OpenAI menulis: temperature hanya boleh dikirim kalau reasoning effort-nya none. Model yang "berpikir" dulu sebelum menjawab gak menerima parameter itu.
⚠️ Jebakan yang sering ketemu
- Learning rate kebesaran. Dengan
lr = 0.1, data yang sama bikin loss meledak: setelah 50 langkahwsudah sekitar -8,8 juta. Turunkanlr, jangan tambah langkahnya. - Mengira model API belajar dari percakapanmu. Memanggil API itu inference: parameternya gak berubah. Model juga gak ingat request sebelumnya kecuali kamu kirim ulang riwayatnya.
- Mengira temperature rendah berarti jawabannya benar. Lebih konsisten bukan berarti lebih benar. Kalau datanya gak dikirim, model bisa konsisten mengarang angka yang sama.
- Menghitung panjang teks dalam huruf. Batas konteks dan biaya dihitung dalam token.
ketersediaan12 huruf tapi 4 token.
TL;DR: Machine learning mencari aturan dari contoh. Training mengubah parameter (w, b) langkah demi langkah supaya loss turun: data contoh Toko Buku menghasilkan prediksi = 1,5 × x + 0,3, loss 0,06. Inference memakai parameter yang sudah beku: 600 kali dilihat jadi 9,3 eksemplar. Supervised belajar dari data berlabel, unsupervised mencari pola tanpa label. LLM adalah model deep learning yang dilatih pada teks sangat banyak dan menebak token berikutnya berulang-ulang; token bisa kata atau bagian kata, dan bahasa Indonesia sering butuh lebih banyak token. Softmax mengubah logit jadi peluang setelah dibagi temperature: kecil (0,2) hampir selalu memilih yang teratas (99,3%), besar meratakan pilihan. Model mengambil sampel, jadi jawabannya bisa beda-beda. Memanggil API cuma inference: model gak belajar dari percakapanmu.