Database vektor

BERLAKU UNTUK: Nosql MongoDB vCore Postgresql

Database vektor digunakan dalam berbagai domain dan situasi di seluruh AI analitik dan generatif, termasuk pemrosesan bahasa alami, pengenalan video dan gambar, sistem rekomendasi, dan pencarian, antara lain.

Pada tahun 2023, tren penting dalam perangkat lunak adalah integrasi peningkatan AI, sering dicapai dengan menggabungkan database vektor mandiri khusus ke dalam tumpukan teknologi yang ada. Artikel ini menjelaskan apa itu database vektor dan menyajikan arsitektur alternatif yang mungkin ingin Anda pertimbangkan: menggunakan database vektor terintegrasi di NoSQL atau database relasional yang sudah Anda gunakan, terutama saat bekerja dengan data multi-modal. Pendekatan ini tidak hanya memungkinkan Anda mengurangi biaya tetapi juga mencapai konsistensi, skalabilitas, dan performa data yang lebih besar.

Tip

Konsistensi, skalabilitas, dan performa data sangat penting untuk aplikasi intensif data, itulah sebabnya OpenAI memilih untuk membangun layanan ChatGPT di atas Azure Cosmos DB. Anda juga dapat memanfaatkan database vektor terintegrasinya, serta waktu respons milidetik satu digit, skalabilitas otomatis dan instan, dan kecepatan yang dijamin pada skala apa pun. Lihat sampel implementasi dan coba secara gratis.

Apa itu database vektor?

Database vektor adalah database yang dirancang untuk menyimpan dan mengelola penyematan vektor, yang merupakan representasi matematis data dalam ruang dimensi tinggi. Dalam ruang ini, setiap dimensi sesuai dengan fitur data, dan puluhan ribu dimensi mungkin digunakan untuk mewakili data canggih. Posisi vektor dalam ruang ini mewakili karakteristiknya. Kata, frasa, atau seluruh dokumen, dan gambar, audio, dan jenis data lainnya semuanya dapat di-vektorisasi. Penyematan vektor ini digunakan dalam pencarian kesamaan, pencarian multi-modal, mesin rekomendasi, model bahasa besar (LLM), dll.

Dalam database vektor, penyematan diindeks dan dikueri melalui algoritma pencarian vektor berdasarkan jarak vektor atau kesamaannya. Mekanisme yang kuat diperlukan untuk mengidentifikasi data yang paling relevan. Beberapa algoritma pencarian vektor terkenal termasuk Hierarkis Navigable Small World (HNSW), Inverted File (IVF), DiskANN, dll.

Database vektor terintegrasi vs database vektor murni

Ada dua jenis umum implementasi database vektor - database vektor murni dan database vektor terintegrasi dalam Database NoSQL atau relasional.

Database vektor murni dirancang untuk menyimpan dan mengelola penyematan vektor secara efisien, bersama dengan sejumlah kecil metadata; ini terpisah dari sumber data dari mana penyematan diturunkan.

Database vektor yang terintegrasi dalam NoSQL berkinerja tinggi atau database relasional menyediakan kemampuan tambahan. Database vektor terintegrasi dalam database NoSQL atau relasional dapat menyimpan, mengindeks, dan mengkueri penyematan bersama data asli yang sesuai. Pendekatan ini menghilangkan biaya tambahan untuk mereplikasi data dalam database vektor murni terpisah. Selain itu, menjaga penyematan vektor dan data asli bersama-sama lebih memfasilitasi operasi data multi-modal, dan memungkinkan konsistensi, skala, dan performa data yang lebih besar.

Kasus penggunaan database vektor

Database vektor digunakan dalam berbagai domain dan situasi di seluruh AI analitik dan generatif, termasuk pemrosesan bahasa alami, pengenalan video dan gambar, sistem rekomendasi, pencarian, dll. Misalnya, Anda dapat menggunakan database vektor untuk:

  • mengidentifikasi gambar, dokumen, dan lagu serupa berdasarkan konten, tema, sentimen, dan gayanya
  • mengidentifikasi produk serupa berdasarkan karakteristik, fitur, dan grup pengguna mereka
  • merekomendasikan konten, produk, atau layanan berdasarkan preferensi individu
  • merekomendasikan konten, produk, atau layanan berdasarkan kesamaan grup pengguna
  • mengidentifikasi opsi potensial yang paling sesuai dari kumpulan pilihan besar untuk memenuhi persyaratan kompleks
  • mengidentifikasi anomali data atau aktivitas penipuan yang berbeda dari pola dominan atau normal
  • menerapkan memori persisten untuk agen AI

Tip

Selain kasus penggunaan umum ini untuk database vektor, database vektor terintegrasi kami juga merupakan solusi ideal untuk penembolokan LLM tingkat produksi berkat latensi rendah, skalabilitas tinggi, dan ketersediaan tinggi.

Sangat populer untuk menggunakan database vektor untuk mengaktifkan retrieval-augmented generation (RAG) yang memanfaatkan LLM dan data kustom atau informasi khusus domain. Pendekatan ini memungkinkan Anda untuk:

  • Menghasilkan respons yang relevan dan akurat secara kontekstual terhadap permintaan pengguna dari model AI
  • Mengatasi batas token LLM
  • Mengurangi biaya dari seringnya penyempurnaan pada data yang diperbarui

Proses ini melibatkan ekstraksi informasi yang berkaitan dari sumber data kustom dan mengintegrasikannya ke dalam permintaan model melalui rekayasa prompt. Sebelum mengirim permintaan ke LLM, input/kueri/permintaan pengguna juga diubah menjadi penyematan, dan teknik pencarian vektor digunakan untuk menemukan penyematan yang paling mirip dalam database. Teknik ini memungkinkan identifikasi rekaman data yang paling relevan dalam database. Rekaman yang diambil ini kemudian disediakan sebagai input ke permintaan LLM menggunakan rekayasa prompt.

Penyematan

Penyematan adalah format khusus representasi data yang dapat digunakan oleh model dan algoritma pembelajaran mesin. Penyematan adalah representasi padat informasi dari arti semantik dari sepotong teks. Setiap penyematan adalah vektor angka floating-point, sehingga jarak antara dua penyematan di ruang vektor berkorelasi dengan kesamaan semantik antara dua input dalam format asli. Misalnya, jika ada dua teks serupa, maka representasi vektornya juga harus serupa. Ekstensi database vektor yang memungkinkan Anda menyimpan penyematan dengan data asli Anda memastikan konsistensi, skala, dan performa data. [Kembali]

Pencarian vektor adalah metode yang membantu Anda menemukan item serupa berdasarkan karakteristik datanya daripada dengan kecocokan yang tepat pada bidang properti. Teknik ini berguna dalam aplikasi seperti mencari teks serupa, menemukan gambar terkait, membuat rekomendasi, atau bahkan mendeteksi anomali. Ini berfungsi dengan mengambil representasi vektor (daftar angka) data Anda yang Anda buat dengan menggunakan model pembelajaran mesin dengan menggunakan API penyematan, seperti Azure OpenAI Embeddings atau Hugging Face di Azure. Kemudian mengukur jarak antara vektor data dan vektor kueri Anda. Vektor data yang paling dekat dengan vektor kueri Anda adalah vektor yang ditemukan paling mirip secara semantik. Menggunakan fitur pencarian vektor asli menawarkan cara yang efisien untuk menyimpan, mengindeks, dan mencari data vektor dimensi tinggi langsung bersama data aplikasi lainnya. Pendekatan ini menghapus kebutuhan migrasi data Anda ke database vektor alternatif yang lebih mahal dan menyediakan integrasi aplikasi berbasis AI Anda yang mulus. [Kembali]

Meminta dan meminta rekayasa

Perintah mengacu pada teks atau informasi tertentu yang dapat berfungsi sebagai instruksi ke LLM, atau sebagai data kontekstual yang dapat dibangun LLM. Perintah dapat mengambil berbagai formulir, seperti pertanyaan, pernyataan, atau bahkan cuplikan kode. Prompt dapat berfungsi sebagai:

  • Instruksi memberikan arahan ke LLM
  • Konten utama: memberikan informasi kepada LLM untuk diproses
  • Contoh: membantu mengkondisikan model ke tugas atau proses tertentu
  • Isti: arahkan output LLM ke arah yang benar
  • Konten pendukung: mewakili informasi tambahan yang dapat digunakan LLM untuk menghasilkan output

Proses pembuatan permintaan yang baik untuk skenario disebut rekayasa prompt. Untuk informasi selengkapnya tentang perintah dan praktik terbaik untuk rekayasa yang cepat, lihat Teknik rekayasa prompt Azure OpenAI Service. [Kembali]

Token

Token adalah potongan kecil teks yang dihasilkan dengan memisahkan teks input menjadi segmen yang lebih kecil. Segmen-segmen ini dapat berupa kata atau grup karakter, bervariasi panjangnya dari satu karakter ke seluruh kata. Misalnya, kata hamburger akan dibagi menjadi token seperti ham, bur, dan ger sementara kata pendek dan umum seperti pir akan dianggap sebagai token tunggal. LLM seperti ChatGPT, GPT-3.5, atau GPT-4 memecah kata-kata menjadi token untuk diproses. [Kembali]

Pengambilan-augmented generation

Retrieval-augmentated generation (RAG) adalah arsitektur yang menambah kemampuan LLM seperti ChatGPT, GPT-3.5, atau GPT-4 dengan menambahkan sistem pengambilan informasi seperti pencarian vektor yang menyediakan data grounding, seperti yang disimpan dalam database vektor. Pendekatan ini memungkinkan LLM Anda untuk menghasilkan respons yang relevan dan akurat secara kontekstual berdasarkan data kustom Anda yang bersumber dari dokumen, gambar, audio, video, dll.

Pola RAG sederhana menggunakan Azure Cosmos DB for NoSQL bisa jadi:

  1. Menyisipkan data ke dalam Azure Cosmos DB untuk database dan koleksi NoSQL
  2. Membuat penyematan dari properti data menggunakan Azure OpenAI Embeddings
  3. Tautkan Azure Cosmos DB for NoSQL ke Azure Cognitive Search (untuk pengindeksan/pencarian vektor)
  4. Membuat indeks vektor di atas properti penyematan
  5. Membuat fungsi untuk melakukan pencarian kesamaan vektor berdasarkan permintaan pengguna
  6. Melakukan jawaban atas data menggunakan model Penyelesaian Azure OpenAI

Pola RAG, dengan rekayasa yang cepat, melayani tujuan meningkatkan kualitas respons dengan menawarkan informasi yang lebih kontekstual ke model. RAG memungkinkan model untuk menerapkan basis pengetahuan yang lebih luas dengan menggabungkan sumber eksternal yang relevan ke dalam proses pembuatan, menghasilkan respons yang lebih komprehensif dan terinformasi. Untuk informasi selengkapnya tentang LLM "grounding", lihat LLM grounding. [Kembali]

Berikut adalah beberapa cara untuk menerapkan RAG pada data Anda dengan menggunakan fungsionalitas database vektor terintegrasi kami:

Cara menerapkan fungsionalitas database vektor terintegrasi

Anda dapat menerapkan fungsionalitas database vektor terintegrasi untuk API Azure Cosmos DB berikut:

API untuk MongoDB

Gunakan database vektor terintegrasi asli di Azure Cosmos DB for MongoDB (arsitektur vCore), yang menawarkan cara yang efisien untuk menyimpan, mengindeks, dan mencari data vektor dimensi tinggi langsung bersama data aplikasi lainnya. Pendekatan ini menghapus kebutuhan migrasi data Anda ke database vektor alternatif yang lebih mahal dan menyediakan integrasi aplikasi berbasis AI Anda yang mulus.

Sampel kode

API untuk PostgreSQL

Gunakan database vektor terintegrasi asli di Azure Cosmos DB for PostgreSQL, yang menawarkan cara yang efisien untuk menyimpan, mengindeks, dan mencari data vektor dimensi tinggi secara langsung bersama data aplikasi lainnya. Pendekatan ini menghapus kebutuhan migrasi data Anda ke database vektor alternatif yang lebih mahal dan menyediakan integrasi aplikasi berbasis AI Anda yang mulus.

Sampel kode

NoSQL API

Catatan

Untuk NOSQL API kami, integrasi asli algoritma pengindeksan vektor canggih akan diumumkan selama Build pada bulan Mei 2024. Harap tetap disetel.

Database vektor terintegrasi asli di NoSQL API sedang dikembangkan. Sementara itu, Anda dapat menerapkan pola RAG dengan Azure Cosmos DB untuk NoSQL dan Azure AI Search. Pendekatan ini memungkinkan integrasi yang kuat dari data Anda yang berada di NoSQL API ke dalam aplikasi berorientasi AI Anda.

Sampel kode

Langkah selanjutnya

Uji Coba Gratis 30 hari tanpa langganan Azure

Uji Coba Gratis 90 hari dan kredit throughput hingga $6.000 dengan Keuntungan Azure AI

Solusi database vektor lainnya

Diagram layanan pengindeksan Vektor.