
Seorang insinyur perangkat lunak dari New York merasa sangat muak dengan hasil yang tidak relevan dan spam SEO di mesin pencari sehingga ia memutuskan untuk menciptakan mesin pencari yang lebih baik. Dua bulan kemudian, ia telah berhasil menjalankan demo mesin pencari. Berikut cara ia melakukannya, dan empat wawasan penting tentang apa yang menurutnya menjadi kendala dalam menciptakan mesin pencari berkualitas tinggi.
Salah satu motif pembuatan mesin pencari baru adalah persepsi bahwa mesin pencari arus utama mengandung spam SEO yang semakin banyak. Setelah dua bulan, insinyur perangkat lunak tersebut menulis tentang pembuatannya:
“Yang hebat adalah tidak adanya spam SEO yang sebanding.”
Penanaman Saraf
Insinyur perangkat lunak, Wilson Lin, memutuskan bahwa pendekatan terbaik adalah penyisipan saraf. Ia membuat uji coba skala kecil untuk memvalidasi pendekatan tersebut dan mencatat bahwa pendekatan penyisipan berhasil.
Membagi Konten
Tahap selanjutnya adalah bagaimana memproses data, misalnya, apakah data tersebut harus dibagi menjadi blok-blok paragraf atau kalimat? Ia memutuskan bahwa tingkat kalimat adalah tingkat paling terperinci yang masuk akal karena memungkinkan identifikasi jawaban yang paling relevan dalam sebuah kalimat sekaligus memungkinkan terciptanya unit-unit penyisipan tingkat paragraf yang lebih besar untuk konteks dan koherensi semantik.
Namun, ia masih mengalami kesulitan dalam mengidentifikasi konteks dengan referensi tidak langsung yang menggunakan kata-kata seperti “it” atau “the” sehingga ia mengambil langkah tambahan agar dapat lebih memahami konteks:
Saya melatih model pengklasifikasi DistilBERT yang akan mengambil sebuah kalimat dan kalimat-kalimat sebelumnya, lalu memberi label kalimat mana (jika ada) yang bergantung padanya agar maknanya tetap terjaga. Oleh karena itu, ketika menyematkan sebuah pernyataan, saya akan menelusuri “rantai” secara mundur untuk memastikan semua dependen juga disertakan dalam konteksnya.
Hal ini juga memiliki manfaat untuk memberi label pada kalimat-kalimat yang tidak boleh dicocokkan, karena kalimat-kalimat tersebut bukanlah kalimat “daun” itu sendiri.
Mengidentifikasi Konten Utama
Tantangan dalam perayapan adalah mengembangkan cara untuk mengabaikan bagian-bagian non-konten dari suatu halaman web agar dapat mengindeks apa yang disebut Google sebagai Konten Utama (MC). Hal yang membuat hal ini menantang adalah kenyataan bahwa setiap situs web menggunakan markup yang berbeda untuk menandai bagian-bagian halaman web, dan meskipun ia tidak menyebutkannya, tidak semua situs web menggunakan HTML semantik, yang akan sangat memudahkan perayap untuk mengidentifikasi di mana konten utama berada.
Jadi dia pada dasarnya mengandalkan tag HTML seperti tag paragraf <p> untuk mengidentifikasi bagian mana dari halaman web yang berisi konten dan bagian mana yang tidak.
Berikut adalah daftar tag HTML yang diandalkannya untuk mengidentifikasi konten utama:
- blockquote – Sebuah kutipan
- dl – Daftar deskripsi (daftar deskripsi atau definisi)
- ol – Daftar berurutan (seperti daftar bernomor)
- p – Elemen paragraf
- pra – Teks yang telah diformat sebelumnya
- tabel – Elemen untuk data tabular
- ul – Daftar yang tidak berurutan (seperti poin-poin)
Masalah Dengan Perayapan
Perayapan adalah bagian lain yang juga memiliki banyak masalah yang harus dipecahkan. Misalnya, ia terkejut ketika menemukan bahwa resolusi DNS merupakan titik kegagalan yang cukup sering terjadi. Jenis URL juga menjadi masalah, di mana ia harus memblokir perayapan URL apa pun yang tidak menggunakan protokol HTTPS.
Berikut ini adalah beberapa tantangannya:
“Mereka harus memiliki protokol https:, bukan ftp:, data:, javascript:, dll.
Mereka harus memiliki eTLD dan nama host yang valid, dan tidak boleh memiliki port, nama pengguna, atau kata sandi.
Kanonisasi dilakukan untuk menghilangkan duplikasi. Semua komponen didekodekan berdasarkan persentase, kemudian dikodekan ulang dengan charset minimal yang konsisten. Parameter kueri dihapus atau diurutkan. Asal ditulis dengan huruf kecil.
Beberapa URL sangat panjang, dan Anda dapat mengalami batasan langka seperti header HTTP dan ukuran halaman indeks basis data.
Beberapa URL juga memiliki karakter aneh yang tidak Anda duga akan ada di URL, tetapi akan ditolak oleh sistem seperti PostgreSQL dan SQS.”
Penyimpanan
Pada awalnya, Wilson memilih Oracle Cloud karena rendahnya biaya transfer data keluar (egress costs).
Dia menjelaskan:
Awalnya saya memilih Oracle Cloud untuk kebutuhan infrastruktur karena biaya egress mereka yang sangat rendah, dengan 10 TB gratis per bulan. Karena saya menyimpan data hingga terabyte, ini menjadi jaminan yang baik bahwa jika saya perlu memindahkan atau mengekspor data (misalnya pemrosesan, pencadangan), saya tidak akan kehabisan dana. Komputasi mereka juga jauh lebih murah daripada cloud lain, namun tetap menjadi penyedia utama yang andal.
Namun, solusi Oracle Cloud mengalami masalah penskalaan. Oleh karena itu, ia memindahkan proyeknya ke PostgreSQL, mengalami serangkaian masalah teknis yang berbeda, dan akhirnya memilih RocksDB, yang ternyata berjalan dengan baik.
Dia menjelaskan:
“Saya memilih satu set tetap 64 pecahan RocksDB, yang menyederhanakan operasi dan perutean klien, sekaligus menyediakan kapasitas distribusi yang cukup untuk masa mendatang.
…Pada puncaknya, sistem ini dapat memproses 200 ribu penulisan per detik dari ribuan klien (perayap, pengurai, vektorisator). Setiap halaman web tidak hanya terdiri dari HTML sumber mentah, tetapi juga data yang dinormalisasi, potongan kontekstual, ratusan embedding berdimensi tinggi, dan banyak metadata.
GPU
Wilson menggunakan inferensi bertenaga GPU untuk menghasilkan embedding vektor semantik dari konten web yang di-crawl menggunakan model transformer. Awalnya, ia menggunakan embedding OpenAI melalui API, tetapi biayanya menjadi mahal seiring dengan skala proyek. Ia kemudian beralih ke solusi inferensi self-hosted menggunakan GPU dari perusahaan bernama Runpod.
Dia menjelaskan:
Dalam pencarian solusi skalabel yang paling hemat biaya, saya menemukan Runpod, yang menawarkan GPU berkinerja tinggi per dolar seperti RTX 4090 dengan tarif per jam yang jauh lebih murah daripada AWS dan Lambda. GPU-GPU ini dioperasikan dari DC tingkat 3 dengan jaringan yang stabil dan cepat serta kapasitas komputasi yang andal.
Kurangnya Spam SEO
Insinyur perangkat lunak tersebut mengklaim bahwa mesin pencarinya memiliki lebih sedikit spam pencarian dan menggunakan contoh kueri “blog pemrograman terbaik” untuk mengilustrasikan argumennya. Ia juga menunjukkan bahwa mesin pencarinya dapat memahami kueri yang kompleks dan memberikan contoh memasukkan seluruh paragraf konten dan menemukan artikel menarik tentang topik-topik dalam paragraf tersebut.
Empat Poin Penting
Wilson mencantumkan banyak penemuan, tetapi berikut adalah empat yang mungkin menarik bagi pemasar dan penerbit digital yang tertarik dalam perjalanan menciptakan mesin pencari ini:
1. Ukuran Indeks Itu Penting
Salah satu hal terpenting yang dipelajari Wilson dari dua bulan membangun mesin pencari adalah bahwa ukuran indeks pencarian itu penting karena menurutnya, “cakupan menentukan kualitas.”
2. Perayapan dan Penyaringan Adalah Masalah yang Paling Sulit
Meskipun merayapi konten sebanyak mungkin penting untuk memunculkan konten yang bermanfaat, Wilson juga menyadari bahwa memfilter konten berkualitas rendah itu sulit karena harus menyeimbangkan kebutuhan akan kuantitas dengan kesia-siaan merayapi jaring konten yang tampaknya tak berujung dan tidak berguna atau sampah. Ia menemukan bahwa diperlukan cara untuk menyaring konten yang tidak berguna tersebut.
Inilah masalah yang dipecahkan oleh Sergey Brin dan Larry Page dengan Page Rank. Page Rank memodelkan perilaku pengguna, pilihan, dan suara manusia yang memvalidasi halaman web dengan tautan. Meskipun Page Rank sudah berusia hampir 30 tahun, intuisi yang mendasarinya masih sangat relevan hingga saat ini sehingga mesin pencari AI Perplexity menggunakan versi modifikasinya untuk mesin pencarinya sendiri.
3. Keterbatasan Mesin Pencari Skala Kecil
Pelajaran lain yang ia temukan adalah bahwa ada batasan seberapa sukses sebuah mesin pencari independen kecil. Wilson menyebutkan ketidakmampuan untuk menjelajahi seluruh web sebagai kendala yang menciptakan kesenjangan cakupan.
4. Menilai kepercayaan dan keaslian dalam skala besar adalah hal yang rumit
Menentukan orisinalitas, akurasi, dan kualitas secara otomatis pada data tidak terstruktur bukanlah hal yang mudah
Wilson menulis:
Menentukan keaslian, kepercayaan, orisinalitas, akurasi, dan kualitas secara otomatis bukanlah hal yang mudah. …kalau saya mulai dari awal lagi, saya akan lebih menekankan riset dan pengembangan aspek ini terlebih dahulu.
Sayangnya, mesin pencari menggunakan ribuan sinyal untuk menentukan peringkat dan menyaring halaman, tetapi saya yakin pendekatan berbasis transformator yang lebih baru terhadap evaluasi konten dan analisis tautan seharusnya lebih sederhana, hemat biaya, dan lebih akurat.
Tertarik mencoba mesin pencari ini? Anda bisa menemukannya di sini dan membaca detail teknis lengkapnya di sini .