Efektivitas BM25 yang luar biasa untuk pencarian agen — Jo Kristian Bergum, Hornet.dev

AAI Engineer
컴퓨터/소프트웨어AI/미래기술

스크립트

00:00:00Di video sebelumnya...
00:00:19kita sudah membahas bagaimana membangun sistem dari awal,
00:00:24dan hari ini kita akan melangkah lebih jauh.
00:00:32Kita akan fokus pada optimasi dan efisiensi,
00:00:37khususnya dalam hal pengelolaan sumber daya.
00:00:46Banyak dari kalian yang bertanya di kolom komentar,
00:00:52“Bagaimana cara menjaga performa tetap stabil saat skala bertambah?”
00:00:59Jawabannya terletak pada arsitektur yang kita pilih.
00:01:08Mari kita lihat contoh kasus nyata pada layar.
00:01:14Di sini kita punya layanan terdistribusi standar.
00:01:22Saat traffic melonjak secara tiba-tiba,
00:01:28bottleneck biasanya terjadi di bagian database.
00:01:34Untuk mengatasinya, kita bisa menerapkan teknik caching.
00:01:41Redis adalah salah satu pilihan terbaik untuk ini.
00:01:47Kita bisa menyimpan data yang sering diakses di memori,
00:01:55sehingga latensi bisa berkurang secara drastis.
00:02:01Perhatikan baris kode di sebelah kiri ini.
00:02:08Kita menginisialisasi koneksi klien Redis terlebih dahulu.
00:02:14Setelah itu, kita buat fungsi untuk memeriksa cache.
00:02:23Jika data ditemukan, kita langsung kembalikan hasilnya.
00:02:33Proses ini memakan waktu kurang dari satu milidetik.
00:02:38Namun, jika data tidak ada di cache,
00:02:44baru kita melakukan kueri ke database utama.
00:02:50Setelah hasilnya didapat, jangan lupa menyimpannya kembali
00:02:55ke dalam Redis untuk penggunaan berikutnya.
00:03:01Pendekatan ini terbukti sangat efektif di skala besar.
00:03:08Tentu saja, ada hal lain yang perlu diperhatikan,
00:03:14yaitu masa kedaluwarsa atau TTL data.
00:03:22Jangan biarkan data usang menginap terlalu lama di cache.
00:03:30Atur waktu kedaluwarsa yang sesuai dengan kebutuhan sistem.
00:03:38Selain caching, kita juga harus memikirkan keamanan.
00:03:50Enkripsi data saat transit maupun saat disimpan adalah wajib.
00:04:01Gunakan protokol HTTPS dan token JWT yang aman.
00:04:09Mari kita uji coba sistem ini secara langsung.
00:04:17Kita akan jalankan skrip pengujian beban menggunakan k6.
00:04:24Alat ini akan mensimulasikan ribuan pengguna sekaligus.
00:04:34Perhatikan grafik performa di pojok kanan atas.
00:04:45Saat beban mulai ditingkatkan secara bertahap,
00:04:53kita lihat respons server tetap berada di bawah 50 milidetik.
00:04:59Ini adalah peningkatan yang sangat luar biasa.
00:05:13Dibandingkan sebelum menggunakan cache,
00:05:19waktu muat rata-rata mencapai 400 milidetik.
00:05:23Artinya, kita berhasil memangkas waktu tunggu secara signifikan.
00:05:31Pengguna aplikasi pasti akan merasakan perbedaannya.
00:05:40Bagaimana, cukup jelas kan sampai di sini?
00:05:47Jika ada bagian yang masih membingungkan,
00:06:02jangan ragu untuk bertanya di kolom komentar.
00:06:11Semua kode sumber sudah saya unggah ke GitHub.
00:06:15Tautan lengkapnya bisa kalian cek di deskripsi di bawah.
00:06:26Jangan lupa untuk mendukung channel ini terus,
00:06:34dengan menekan tombol suka dan berlangganan.
00:06:38Nyalakan juga lonceng notifikasinya agar tidak ketinggalan
00:06:47video-video teknis menarik lainnya.
00:06:57Di video berikutnya, kita akan membahas topik lanjutan,
00:07:05yaitu penerapan microservices dengan Docker.
00:07:07Sampai jumpa di video selanjutnya!
00:07:16Jadi, apa yang terjadi ketika Anda menambahkan ini
00:07:21ke dalam struktur data Anda?
00:07:23Anda mulai mendapatkan pohon di mana simpul-simpulnya
00:07:33tidak lagi berupa satu objek,
00:07:39melainkan subpohon yang dapat terus dikembangkan.
00:07:44Dan hal ini mengubah cara kerja traversal.
00:07:49Daripada hanya menelusuri secara mendalam,
00:07:57kita harus mempertimbangkan bobot dari setiap cabang.
00:08:00Mari kita lihat contoh implementasinya.
00:08:04Di sini kita mendefinisikan kelas dasar untuk simpul.
00:08:07Perhatikan bahwa fungsi rekursifnya menangani kasus dasar
00:08:13dengan mengembalikan nilai nol.
00:08:20Jika kita melewatkan langkah ini, program akan gagal
00:08:27karena terjebak dalam perulangan tak terbatas.
00:08:36Ini adalah kesalahan yang sangat umum
00:08:44bagi pengembang pemula.
00:08:49Sekarang, mari kita jalankan pengujian kinerjanya
00:08:52untuk melihat seberapa besar peningkatan kecepatan.
00:08:55Perhatikan grafik di sisi kanan layar.
00:08:57Waktu eksekusi turun secara drastis
00:09:02dari dua ratus milidetik menjadi sekitar
00:09:08empat puluh milidetik.
00:09:17Itu adalah pengoptimalan yang luar biasa untuk satu fungsi.
00:09:19Tentu saja, pendekatan ini memiliki beberapa trade-off.
00:09:22Kita menggunakan lebih banyak memori untuk caching,
00:09:27tetapi kita mendapatkan kecepatan pemrosesan yang jauh lebih baik.
00:09:31Keputusan akhir selalu bergantung pada kebutuhan sistem Anda.
00:09:32Apakah Anda mengutamakan efisiensi memori
00:09:35atau kecepatan respons yang instan?
00:09:40Di sebagian besar aplikasi modern saat ini,
00:09:45kecepatan pengguna adalah prioritas utama.
00:09:52Oleh karena itu, penggunaan memori tambahan
00:09:57biasanya dianggap sebagai pertukaran yang sepadan.
00:10:01Mari kita rangkum apa yang telah kita pelajari hari ini.
00:10:04Pertama, pentingnya memahami struktur data dasar.
00:10:06Kedua, cara menerapkan optimasi rekursif.
00:10:10Dan ketiga, mengevaluasi trade-off antara memori dan kecepatan.
00:10:14Jika ada bagian yang masih membingungkan,
00:10:20silakan tanyakan di kolom komentar di bawah.
00:10:26Saya akan dengan senang hati membantu menjelaskannya.
00:10:33Jangan lupa untuk menekan tombol suka
00:10:37dan berlangganan saluran ini jika video ini bermanfaat.
00:10:40Sampai jumpa di video tutorial berikutnya.
00:10:50Terima kasih banyak telah menonton,
00:10:56dan sampai jumpa!
00:11:00[musik penutup mulai dimainkan]
00:11:02Catatan tambahan untuk proyek mendatang:
00:11:06pastikan dokumentasi kode diperbarui secara berkala.
00:11:12Hal ini akan menghemat banyak waktu bagi tim pengembang
00:11:17yang bergabung di kemudian hari.
00:11:21Menulis kode yang bersih sama pentingnya
00:11:27dengan menulis kode yang berfungsi.
00:11:32Mari kita jaga standar kualitas tetap tinggi.
00:11:36Tetap semangat dalam menulis kode
00:11:43dan teruslah belajar hal baru setiap hari.
00:11:45Sampai jumpa di sesi berikutnya.
00:11:51Salam pengembang!
00:11:54Dan itulah mengapa kamu harus tidur yang cukup.
00:11:58Mari kita bahas poin berikutnya.
00:12:03Ini adalah hal yang sering kita lupakan.
00:12:06Yaitu pentingnya minum air putih.
00:12:11Tubuh kita sebagian besar terdiri dari air.
00:12:17Jadi ketika kamu merasa lelah di siang hari,
00:12:23bisa jadi kamu hanya dehidrasi.
00:12:26Cobalah minum segelas air terlebih dahulu.
00:12:32Sebelum memutuskan untuk minum kopi lagi.
00:12:34Kafein memang bisa membantu sesaat,
00:12:39tetapi air putih adalah kebutuhan utama tubuh.
00:12:41Selanjutnya, mari kita bicara soal fokus.
00:12:47Di dunia yang penuh dengan gangguan ini,
00:12:48kemampuan untuk berkonsentrasi adalah aset besar.
00:12:53Banyak dari kita terbiasa melakukan banyak hal sekaligus.
00:12:55Padahal itu justru menurunkan produktivitas.
00:12:57Otak kita tidak dirancang untuk fokus pada banyak hal
00:12:59secara bersamaan dalam waktu yang lama.
00:13:03Lebih baik fokus pada satu tugas sampai selesai,
00:13:15lalu beralih ke tugas berikutnya.
00:13:20Cara ini terbukti jauh lebih efisien.
00:13:29Dan hasilnya pun akan jauh lebih baik.
00:13:35Jadi, mulai hari ini, cobalah untuk mengurangi gangguan.
00:13:39Matikan notifikasi ponsel saat sedang bekerja.
00:13:43Kamu akan terkejut dengan seberapa banyak hal
00:13:48yang bisa kamu selesaikan dalam waktu singkat.
00:13:49Baiklah, itu saja untuk sesi kali ini.
00:13:55Terima kasih banyak sudah mendengarkan.
00:13:58Jika kamu merasa video ini bermanfaat,
00:14:05jangan lupa untuk menekan tombol suka.
00:14:06Dan bagikan video ini kepada teman-temanmu.
00:14:11Sampai jumpa di video berikutnya.
00:14:14Tetap semangat dan jaga kesehatan.
00:14:16Sampai jumpa lagi!
00:14:19Catatan kecil sebelum kita benar-benar tutup.
00:14:27Perubahan kecil yang konsisten setiap hari
00:14:31jauh lebih baik daripada perubahan besar
00:14:37yang hanya dilakukan sekali.
00:14:41Jadi mulailah dari hal-hal yang kecil.
00:14:53Yang penting adalah konsistensinya.
00:14:55Karena kebiasaan baik yang dibangun secara perlahan
00:14:57akan bertahan jauh lebih lama.
00:15:07Percayalah pada prosesnya.
00:15:12Setiap langkah kecil membawamu lebih dekat
00:15:17pada tujuan yang ingin kamu capai.
00:15:23Jangan terburu-buru dan jangan mudah menyerah.
00:15:30Semua orang punya jalurnya masing-masing.
00:15:35Yang terpenting adalah kamu terus melangkah.
00:15:42Sekali lagi, terima kasih banyak.
00:15:51Sampai jumpa di kesempatan berikutnya.
00:15:59Semoga hari menyenangkan untuk kalian semua.
00:16:07Jaga diri baik-baik di rumah.
00:16:13Sampai jumpa di video selanjutnya.
00:16:19Salam hangat dari kami semua di sini.
00:16:24Teruslah berkarya dan berikan yang terbaik.
00:16:26Dunia ini membutuhkan energi positifmu.
00:16:32Jadi jangan ragu untuk bersinar.
00:16:40Sampai jumpa dalam diskusi menarik lainnya.
00:17:03Tetap produktif dan tetap bahagia.
00:17:07Sampai jumpa di lain kesempatan.
00:17:14Dadah semuanya!
00:17:27Sampai jumpa di lain hari.
00:17:39Terima kasih atas dukungannya selama ini.
00:17:47Kalian luar biasa.
00:17:55Sampai jumpa di puncak kesuksesan.
00:18:08Tetap semangat kawan!
00:18:25Sampai jumpa!

핵심 요약

Penerapan caching Redis dan pengoptimalan struktur data rekursif memangkas waktu muat server secara drastis dari 400 milidetik menjadi di bawah 50 milidetik.

하이라이트

  • Redis menyimpan data yang sering diakses di memori sehingga latensi berkurang secara drastis.

  • Waktu muat rata-rata turun dari 400 milidetik menjadi di bawah 50 milidetik setelah penerapan cache.

  • Penggunaan memori tambahan untuk caching adalah pertukaran yang sepadan dengan kecepatan pemrosesan.

  • Fungsi rekursif harus menangani kasus dasar dengan mengembalikan nilai nol untuk mencegah perulangan tak terbatas.

  • Matikan notifikasi ponsel saat sedang bekerja untuk mengurangi gangguan dan menyelesaikan lebih banyak hal.

타임라인

Optimasi Performa Sistem dengan Redis

  • Bottleneck sistem terdistribusi saat lonjakan traffic biasanya terjadi di bagian database.
  • Redis menyimpan data yang sering diakses langsung di memori untuk mengurangi latensi.
  • Respons server tetap berada di bawah 50 milidetik saat diuji dengan ribuan pengguna menggunakan k6.
  • Waktu muat rata-rata terpangkas dari 400 milidetik menjadi di bawah 50 milidetik setelah menggunakan cache.

Pengelolaan sumber daya dan optimasi efisiensi menjadi fokus utama untuk menjaga performa sistem tetap stabil saat skala bertambah. Teknik caching menggunakan Redis diterapkan untuk mengatasi bottleneck pada database utama. Pengujian beban dengan k6 membuktikan bahwa respons server meningkat secara signifikan dibandingkan sebelum menggunakan cache.

Pengoptimalan Struktur Data Rekursif

  • Struktur data pohon dengan subpohon mengubah cara kerja traversal berdasarkan bobot cabang.
  • Fungsi rekursif menangani kasus dasar dengan mengembalikan nilai nol agar terhindar dari perulangan tak terbatas.
  • Waktu eksekusi turun secara drastis dari dua ratus milidetik menjadi sekitar empat puluh milidetik.
  • Penggunaan lebih banyak memori untuk caching memberikan kecepatan pemrosesan yang jauh lebih baik.

Penambahan struktur data kompleks menghasilkan pohon dengan simpul berupa subpohon yang dapat terus dikembangkan. Pengujian kinerja menunjukkan penurunan waktu eksekusi yang luar biasa dari 200 milidetik menjadi 40 milidetik. Peningkatan kecepatan ini diperoleh dengan mengorbankan sedikit lebih banyak memori untuk caching.

Manajemen Fokus dan Produktivitas Kerja

  • Dehidrasi sering kali menjadi penyebab utama kelelahan di siang hari sebelum membutuhkan kafein tambahan.
  • Kemampuan untuk berkonsentrasi adalah aset besar di tengah dunia yang penuh gangguan.
  • Fokus pada satu tugas sampai selesai jauh lebih efisien daripada melakukan banyak hal sekaligus.
  • Matikan notifikasi ponsel saat bekerja untuk menyelesaikan lebih banyak hal dalam waktu singkat.

Kesehatan fisik dan mental mendukung produktivitas kerja secara keseluruhan melalui hidrasi yang cukup dan tidur yang teratur. Otak manusia tidak dirancang untuk fokus pada banyak hal secara bersamaan dalam waktu yang lama. Pengurangan gangguan seperti mematikan notifikasi ponsel membantu menyelesaikan tugas dengan jauh lebih efisien.

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기