Memajukan Penelusuran Neural dengan Jina 2.0 – Menuju AI — Teknologi, Sains, dan Teknik Terbaik

Penulis (s): Shubham Saboo

Pembelajaran Mendalam

Dengan dimulainya Era Informasi, kemampuan untuk secara cerdas mencari informasi dalam jumlah besar telah menjadi bagian integral dari kehidupan kita sehari-hari…

Defying Convention — Menjelajahi masa depan pencarian dengan Jina 2.0!

Pra-Persyaratan

Untuk memahami dasar-dasar pencarian saraf dan perbedaannya dari pencarian konvensional, silakan kunjungi blog saya sebelumnya di “Next-gen powered by Jina”. Ini menjelaskan bagaimana Jina- perusahaan cloud-native, open-source merintis bidang pencarian saraf. Ini dibangun di atas ide pencarian semantik dan menjelaskan blok bangunan dasar kerangka kerja Jina yang diperlukan untuk membangun aplikasi pencarian cerdas.

RE: Pencarian Saraf

Sama seperti rekap, ide di balik pencarian saraf adalah untuk memanfaatkan jaringan saraf dalam yang canggih untuk secara cerdas mengambil informasi yang relevan secara kontekstual dan semantik dari tumpukan data. Sistem pencarian saraf dapat melampaui pencarian teks sederhana dengan memungkinkan Anda untuk mencari melalui semua format data termasuk gambar, video, audio, dan bahkan PDF.

Aplikasi Pencarian Saraf

Chatbot penjawab pertanyaan dapat diberdayakan oleh pencarian saraf: dengan terlebih dahulu mengindeks semua pasangan QA yang dikodekan secara keras dan kemudian secara semantik memetakan dialog pengguna ke pasangan tersebut. Speaker pintar dapat didukung oleh pencarian saraf: dengan menerapkan pengenalan STT (speech-to-text) dan kemudian memetakan teks secara semantik ke perintah internal. Sistem rekomendasi dapat didukung oleh pencarian saraf: dengan menyematkan informasi item pengguna dalam bentuk vektor numerik dan menemukan tetangga terdekat K teratas dari pengguna/item tertentu.

Neural Search telah menciptakan cara baru untuk memahami dunia dan memberi kami kemampuan untuk melakukan pengambilan informasi cerdas pada tumpukan dan tumpukan data yang universal di seluruh internet. Jina adalah platform pencarian neural cloud-native yang berada di garis depan dalam menciptakan masa depan pencarian!

Jina 2.0 — Apa yang Berubah?

Nama 1.xv / s Nama 2.0

Jina 1.x adalah binatang yang kompleks dengan banyak kode boilerplate dan tidak begitu banyak transparansi tetapi Jina 2.0 menganut prinsip “eksplisit di atas implisit”. Untuk merangkul kekuatan pencarian saraf dan membuatnya dapat diakses oleh khalayak yang lebih luas, Jina meluncurkan versi 2.0 yang lebih mudah dipelajari, lebih ramping untuk diadopsi, dan lebih cepat dipelajari.

Jina 1.x lebih sulit dipelajari dan sulit untuk terbiasa dengan komponen yang berbeda dan menempatkannya secara koheren agar aplikasi dapat bekerja. Semua komponen individu ini diabstraksikan oleh lapisan sederhana hanya Aliran dan Pelaksana, semua lapisan tengah termasuk pod, kacang polong tersembunyi di balik layar yang memungkinkan Anda untuk hanya fokus pada “Apa yang benar-benar penting”.

Untuk memulai Jina 2.0 dalam perjalanan membangun sistem pencarian cerdas, Anda hanya perlu mengetahui tiga konsep – Dokumen, Pelaksana, dan Aliran dan dengan antarmuka pythonic yang ramah pengguna, Anda akan mendapatkan kecepatan dalam waktu singkat.

Komponen Dasar Jina 2.0

Dokumen, Pelaksana, dan Aliran adalah tiga konsep dasar di Jina.

A Document adalah tipe data dasar di Jina An Executor adalah bagaimana Jina memproses Documents A Flow adalah bagaimana Jina merampingkan dan menskalakan Executor

Dokumen

Dokumen adalah tipe data dasar yang digunakan Jina, tidak sesuai dengan tipe / format data. Teks, gambar, audio, video semuanya dianggap sebagai dokumen di Jina. Superset dari tipe data dokumen adalah DocumentArray, itu membungkus beberapa dokumen individu dan bertindak sebagai wadah untuk mereka.

Anda dapat menganggap DocumentArray sebagai file teks yang terdiri dari beberapa kalimat di mana setiap kalimat mewakili Dokumen. DocumentArray adalah warga kelas satu dari Pelaksana Jina yang berfungsi sebagai input dan output Pelaksana. Untuk orang-orang data, Anda dapat memahami “dokumen” dengan analogi sederhana ke perpustakaan Numpy yang terkenal.

Dokumen = np.float; DocumentArray = np.ndarray

pelaksana

Executor adalah unit algoritma terkecil di Jina yang digunakan untuk memproses dokumen baik itu encoding gambar menjadi vektor, menyimpan vektor pada disk, hasil pemeringkatan semuanya dirumuskan sebagai eksekutor. Executor menyediakan antarmuka intuitif, memungkinkan pengembang dan insinyur AI untuk benar-benar fokus pada algoritme. Beberapa pelaksana umum adalah sebagai berikut:

Crafter: Crafter digunakan untuk pra-pemrosesan dokumen menjadi potongan-potongan. Encoder: Encoder mengambil chuck dokumen yang telah diproses sebelumnya dari perajin dan mengkodekannya ke dalam vektor embedding. Pengindeks: Pengindeks mengambil vektor yang dikodekan sebagai input dan mengindeks dan menyimpan vektor dalam mode nilai kunci. Ranker: Ranker berjalan pada penyimpanan yang diindeks dan mengurutkan hasil berdasarkan peringkat tertentu.

Pelaksana memproses DocumentArray di tempat melalui fungsi yang dihiasi dengan @requests. Berikut ini adalah ciri-ciri eksekutor di Jina:

Executor harus mensubclass langsung dari jina.Executor class. Kelas Executor adalah tas fungsi dengan status bersama (melalui self) yang memungkinkannya berisi sejumlah fungsi dengan nama yang berubah-ubah. Fungsi yang didekorasi dengan @requests, dekorator akan dipanggil sesuai dengan titik akhir on= mereka.

Ada dua cara utama untuk mendesain eksekutor di Jina, jadi mari kita lihat contoh sederhana bagaimana kita bisa membuat eksekutor menggunakan Python dan YAML:

Untuk membuat eksekutor dengan python, Anda hanya perlu mengimpor kelas eksekutor asli dari inti Jina dan membuat subkelas yang sama. Di bawah subkelas MyExecutor, Anda dapat menentukan sejumlah fungsi dengan melampirkan dekorator @requests di atas fungsi-fungsi ini agar dapat diakses dalam alur.

Setelah mendefinisikan subkelas eksekutor, Anda dapat membuat alur dan memanggil eksekutor melalui titik akhir permintaan /random_work, berikut adalah cuplikan kode yang menunjukkan cara menggunakan eksekutor:

https://medium.com/media/e82f2896d8c4560aa7c02311db3ca488/href

Pelaksana dapat dimuat dari dan disimpan ke file YAML. Berikut ini adalah replika eksekutor python yang dibuat di atas, Anda dapat menyimpan file ini sebagai “exec.yml”.

https://medium.com/media/5a108cf61b6b62613a2707bd0a41771a/href

Setelah menyimpan file exec.yml, Anda dapat membuat eksekutor menggunakan yang sama dan menambahkannya ke aliran Jina baru atau yang sudah ada:

https://medium.com/media/efa6e0d6661779ca57b10cbb86477bb3/href

Mengalir

Flow adalah bagaimana Jina merampingkan dan menskalakan pelaksana, ini mewakili tugas tingkat tinggi seperti pengindeksan, pencarian, pelatihan, dll. Ia bertindak sebagai manajer konteks dan mengatur sekelompok pelaksana untuk menyelesaikan satu tugas misalnya jika Anda ingin mengindeks data yang Anda membutuhkan urutan pelaksana seperti perajin, encoder, pengindeks untuk bekerja bersama-sama untuk mencapai hasil yang diinginkan.

Flow adalah layanan, yang memungkinkan banyak klien mengaksesnya melalui gRPC / REST / WebSocket dari jaringan publik atau pribadi.

Aliran mengikuti pola konstruksi yang malas, sehingga tidak akan benar-benar berjalan sampai Anda menggunakannya dengan untuk membukanya. Alur dapat dibuat hanya dengan mengimpornya dari pustaka inti jina, lalu menambahkan eksekutor ke dalamnya. Untuk menjalankan aliran, Anda cukup membukanya melalui dengan dan dapat mengirim permintaan data seperti yang kami lakukan pada contoh di bawah ini:

https://medium.com/media/f442f3154f83b26e84e234522286b972/href

Referensi

https://github.com/jina-ai/jina https://github.com/jina-ai/jina/tree/master/.github/2.0/cookbooks https://www.thinkwithgoogle.com

Jika Anda ingin mempelajari lebih lanjut atau ingin saya menulis lebih banyak tentang topik ini, jangan ragu untuk menghubungi saya.

Tautan sosial saya: LinkedIn| Twitter | Github

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

Advancing Neural Search dengan Jina 2.0 awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI