Lompat ke konten utama
←

Membangun Aplikasi LLM dengan Python

Pelajaran 8 dari 19

Retrieval: memotong dan mencari dokumen

Kemiripan kosinus dan top-k

Setelah pelajaran ini kamu bisa menghitung kemiripan kosinus dua vektor dengan numpy dan memilih k potongan teratas yang melewati ambang skor.

±13 menitDiperiksa 23 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Embedding adalah vektor bilangan yang mewakili makna teks. Panduan Embeddings OpenAI menyatakan jarak dua vektor mengukur keterkaitan teksnya: makin dekat, makin terkait. Pertanyaan dan setiap potongan dijadikan vektor dengan model embedding yang sama, lalu dibandingkan. Latihan kelas ini memakai vektor kecil karangan; model embedding sungguhan menghasilkan ratusan sampai ribuan dimensi.

Ukuran yang direkomendasikan panduan itu adalah kemiripan kosinus: hasil kali titik dua vektor dibagi hasil kali panjangnya, cos = (a · b) ÷ (|a| × |b|). Nilainya 1 bila arahnya sama dan 0 bila tegak lurus. Di numpy, hasil kali titik dihitung np.dot dan panjang vektor np.linalg.norm. Bila embedding sudah dinormalisasi ke panjang 1, panduan yang sama mencatat kosinus cukup dihitung dengan hasil kali titik, dan urutannya sama dengan urutan jarak Euclides.

import numpy as np

a = np.array([3.0, 4.0])
b = np.array([4.0, 3.0])
print(np.dot(a, b))                                          # 24.0
print(np.linalg.norm(a), np.linalg.norm(b))                  # 5.0 5.0
print(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)))  # 0.96

Pencarian lalu mengambil k potongan berskor tertinggi (top-k). Ambang skor membuang potongan yang terlalu jauh; panduan Retrieval OpenAI mencatat ambang yang tinggi membatasi hasil ke potongan yang lebih relevan, tetapi bisa ikut membuang potongan yang berguna. Dokumentasi Python menyatakan sorted tetap stabil walaupun reverse=True, jadi potongan berskor sama tetap dalam urutan aslinya. Kosinus pada vektor TF-IDF dibahas di kelas Mengolah Teks dengan Python.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Vektor pertanyaan a = [2, 1, 2] dan vektor potongan b = [1, 2, 2]. Berapa kemiripan kosinusnya? Tulis dua angka di belakang koma.

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 3 lagi