Pencarian Generasi Berikutnya didukung oleh Jina – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Shubham Saboo

Teknologi

Sejak dimulainya penelusuran online, dunia telah berubah secara dramatis, tetapi “rasa ingin tahu” yang mendorong bisnis tetap konstan…

“Tujuannya bukan untuk membuat tautan Anda tampak alami, namun tujuannya adalah agar tautan Anda alami” – Matt Cutts

Apa itu Neural Semantic Search?

Pencarian saraf adalah pendekatan cerdas untuk mendapatkan informasi kontekstual dan semantik yang relevan. Alih-alih memberi tahu mesin sekumpulan aturan untuk memahami data apa, penelusuran neural melakukan hal yang sama dengan jaringan neural terlatih. Ini berarti pengembang tidak perlu menulis setiap aturan kecil, menghemat waktu dan sakit kepala mereka, dan sistem melatih dirinya sendiri untuk menjadi lebih baik seiring berjalannya waktu.

Pencarian Konvensional v / s Neural Search

Pencarian konvensional

Pencarian konvensional bersifat simbolis dan didorong oleh kata kunci karena tidak memiliki konteks yang diperlukan. Pencarian konvensional rapuh karena mesin aturannya yang dikodekan keras. Pencarian konvensional memerlukan pembaruan aturan dengan penambahan data baru, menjadikannya tidak dapat diskalakan dan memakan waktu. Pencarian konvensional membutuhkan tingkat pengetahuan domain untuk diterapkan.

Pencarian Neural / Semantik

Pencarian neural didorong oleh konteks yang memungkinkannya menemukan informasi yang relevan secara semantik. Pencarian saraf fleksibel dalam beradaptasi dengan semua casing sudut dan tahan terhadap kebisingan. Pencarian saraf di sisi lain dapat melatih dirinya sendiri pada data baru menggunakan kesimpulan / konteks sebelumnya sehingga sangat dapat diskalakan dan efisien. Pencarian saraf membutuhkan sedikit atau tanpa pengetahuan domain untuk diterapkan.

Apa itu Jina?

Jina adalah platform pencarian neural cloud-native. Ini dapat diterapkan di container, clod, atau server on-prem. Ini menawarkan pencarian apapun-ke-apapun mulai dari Teks-ke-teks, gambar-ke-gambar, video-ke-video, atau tipe data lain yang dapat Anda masukkan sebagai masukan ke mesin. Jina beroperasi pada tipe data primitifnya yang dikenal sebagai dokumen. Dokumen adalah potongan data dalam kumpulan data apa pun yang ingin Anda cari, dan kueri masukan yang Anda gunakan untuk menemukan apa yang Anda inginkan.

Pada dasarnya, mereka adalah data masukan dan keluaran untuk alur kerja pencarian Jina. Inti Jina terdiri dari dua aliran utama, yang merupakan jantung dan jiwa mesin pencari semantik:

Arus Pengindeksan: Alur pengindeksan membuat seluruh korpus dapat dicari dengan kalimat. Alur pengindeksan mempersiapkan dan memproses sebelumnya data yang akan dicari. Dokumen masukan dimasukkan, diproses, dan keluaran di ujung lain disimpan sebagai indeks yang dapat dicari.
Alur Kueri: Alur kueri mengambil kueri pengguna sebagai dokumen input (tipe data Jina primitif) dan mengembalikan daftar peringkat yang cocok berdasarkan skor kesamaan dalam kata embeddings.

Komponen Nama

Arus mewakili tugas tingkat tinggi, misalnya pengindeksan, pencarian, pelatihan. Ini terdiri dari sekelompok pod, mengaturnya untuk menyelesaikan satu tugas. Pod adalah sekelompok eksekutor yang berbagi properti yang sama, memungkinkan eksekusi paralel dari beberapa eksekutor serta menambahkan konteks dan kontrol ke eksekutor.

Pelaksana mewakili unit algoritmik di Jina. Algoritma seperti pengkodean gambar menjadi vektor, menyimpan vektor pada disk, hasil pemeringkatan, semuanya dapat dirumuskan sebagai Pelaksana. Pelaksana menyediakan antarmuka yang berguna, memungkinkan pengembang dan insinyur AI untuk benar-benar fokus pada algoritme. Beberapa pelaksana yang umum adalah sebagai berikut:

Perajin: Perajin digunakan untuk pra-pemrosesan dan dokumen menjadi potongan-potongan. Encoder: Encoder mengambil masukan pra-pemrosesan dokumen dari perajin dan mengkodekannya menjadi vektor embedding. Pengindeks: Pengindeks mengambil vektor yang dikodekan sebagai input dan indeks dan menyimpan vektor dengan cara nilai-kunci. Penyerang: Penyerang menjalankan penyimpanan yang diindeks dan mengurutkan hasil berdasarkan peringkat tertentu.

Modalitas Pencarian

Jina adalah kerangka kerja agnostik tipe data, yang memungkinkan Anda bekerja dengan semua jenis data dan menjalankan Alur pencarian lintas-modal dan multi-modal.

Modalitas Tunggal: Dalam jenis pencarian ini jenis masukan dan jenis keluaran tetap sama, termasuk pencarian teks-ke-teks, pencarian gambar-ke-gambar, pencarian audio-ke-audio, dll. Dalam modalitas tunggal , pencarian dirancang untuk menangani satu tipe data sehingga kurang fleksibel dan rentan terhadap input tipe data yang berbeda. Pencarian Modalitas Lintas: Ini memungkinkan Anda untuk secara efektif menemukan dokumen yang relevan dari modalitas A (katakanlah – “gambar”) dengan menanyakan dokumen dari modalitas B (katakanlah – “teks”). Modalitas Silang mengacu pada sekumpulan aplikasi di mana Anda dapat mencari dokumen dari satu modalitas (mis. Gambar) dengan kueri dari yang lain (mis. Teks). Pencarian Multi-Modalitas: Ini memungkinkan Anda untuk memproyeksikan dokumen dari berbagai modalitas ke dalam ruang penyematan umum, dan menemukan dokumen yang relevan sehubungan dengan penggabungan beberapa modalitas Multi-Modalitas adalah saat Anda menggabungkan informasi dalam kueri dari berbagai modalitas seperti dalam menyediakan input infus yang terdiri dari (teks + gambar) untuk mendapatkan output yang fleksibel tergantung interpretasi model.

Dukungan untuk berbagai jenis modalitas membuka banyak pola yang kuat dan membuat Jina sepenuhnya fleksibel dan agnostik terhadap apa yang dapat dicari.

Semua dalam satu, platform pencarian agnostik tipe data …

Jina beraksi

Untuk menampilkan demo langsung, saya telah merancang pencarian semantik saraf sederhana untuk data tekstual. Model dilatih berdasarkan data yang diambil dari halaman Wikipedia acak. Jina mengambil dokumen masukan dan mengikuti alur Jina internal (Pengindeksan diikuti oleh Kueri) untuk menghasilkan mesin pencari.

Kerangka / Alat yang Digunakan:

Jina Core: Ini memungkinkan alur kerja pengindeksan dan kueri untuk masing-masing aplikasi. Model Bahasa: Model bahasa yang digunakan di sini berasal dari keluarga BERT (representasi Encoder Bi-directional untuk Transformers), di sini kami telah menggunakan “distilbert-bert-cased” untuk memahami konteks di bawah aliran query Jina. Jina Box: Jina Box adalah komponen web front-end yang mudah digunakan, ringan, dapat disesuaikan untuk jenis data pencarian agnostik (baik itu teks, audio, video, dll.) Yang dapat dengan mudah dihubungkan ke backend Jina selama pengguna dengan antarmuka yang sederhana dan efisien untuk berinteraksi dengan mesin pencari. Python 3.7: Ini digunakan sebagai lingkungan pengembangan untuk Aplikasi Jina.

Contoh: Di sini, di kotak pencarian kami mencoba untuk mencari “komputer” dan mendapatkan hasil sebagai berikut. Sangat menarik untuk melihat bahwa tidak ada penyebutan kata “komputer” yang tepat di manapun dalam dokumen yang diindeks, tetap saja model tersebut menggambarkan kalimat yang berhubungan secara kontekstual atau semantik komputer.

Jina melakukan sihir!

Referensi

https://github.com/jina-ai/jina https://docs.jina.ai https://www.thinkwithgoogle.com

Jika Anda ingin mempelajari lebih lanjut atau ingin saya menulis lebih banyak tentang subjek ini, silakan hubungi kami.

Tautan sosial saya: LinkedIn | Twitter | Github

Jika Anda menyukai posting ini atau merasa terbantu, silakan luangkan waktu sebentar untuk menekan tombol tepuk, ini meningkatkan visibilitas posting untuk pengguna media lainnya.

Pencarian Generasi Berikutnya yang diberdayakan oleh Jina awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Towards AI