Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk
Untuk database vektor terbaru dan sampel aplikasi pola RAG, kunjungi Galeri Sampel Azure Cosmos DB.
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.
Petunjuk
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), dan DiskANN.
Database Vektor yang Terintegrasi vs Database Vektor yang 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 berasal.
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 melakukan kueri embedding 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. Database yang sangat berkinerja tinggi dengan fleksibilitas skema dan database vektor terintegrasi sangat optimal untuk agen AI.
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, dan pencarian. 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
- Identifikasi 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
Petunjuk
Selain kasus penggunaan umum ini untuk database vektor, database vektor terintegrasi kami juga merupakan solusi ideal untuk penyimpanan sementara LLM level produksi karena latensi rendah, skalabilitas tinggi, dan ketersediaan tinggi.
Database vektor sangat populer untuk memungkinkan 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 prompt engineering.
Nota
Tertarik dengan kemampuan pencarian vektor ultra throughput tinggi? Azure Cosmos DB sedang mengembangkan fitur pencarian vektor canggih yang dirancang untuk himpunan data vektor besar dan dilengkapi dengan kemampuan sisipan serta pencarian berkecepatan ultra-tinggi. Ini dapat mengakomodasi jutaan kueri per detik (QPS) dengan latensi yang dapat diprediksi, latensi rendah, dan efisiensi biaya yang tak tertandingi. Daftar untuk mempelajari selengkapnya tentang peluang akses awal dan dapatkan pemberitahuan saat kemampuan ini tersedia.
Konsep terkait database vektor
Pemadanan
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.
Pencarian vektor
Pencarian vektor adalah metode yang membantu Anda menemukan item serupa berdasarkan karakteristik datanya, daripada mencari kecocokan yang tepat pada field 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 yang Anda buat dengan 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.
Permintaan dan rekayasa permintaan
Prompt merujuk pada teks atau informasi spesifik yang dapat berfungsi sebagai instruksi untuk LLM, atau sebagai data kontekstual yang dapat digunakan oleh LLM untuk membangun. Pengarahan dapat mengambil berbagai bentuk, seperti pertanyaan, pernyataan, atau bahkan cuplikan kode. Prompt dapat berfungsi sebagai:
- Instruksi yang memberikan arahan ke LLM
- Konten utama yang memberikan informasi kepada LLM untuk diproses
- Contoh untuk membantu mengkondisikan model ke tugas atau proses tertentu
- Petunjuk untuk mengarahkan output LLM ke arah yang tepat.
- Konten pendukung yang mewakili informasi tambahan yang dapat digunakan LLM untuk menghasilkan output
Proses pembuatan prompt yang baik untuk skenario disebut rekayasa prompt. Untuk informasi selengkapnya tentang perintah dan praktik terbaik untuk rekayasa cepat, lihat Desain pesan sistem.
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]
Generasi yang Diperkaya dengan Pengambilan
Retrieval-augmented generation (RAG) adalah arsitektur yang meningkatkan kemampuan LLM seperti ChatGPT, GPT-3.5, atau GPT-4 dengan menambahkan sistem pencarian informasi seperti pencarian vektor yang menyediakan data dasar, 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 untuk NoSQL dapat:
- Mengaktifkan Indeks Vektor NoSQL Azure Cosmos DB
- Menyiapkan database dan kontainer dengan kebijakan vektor kontainer dan indeks vektor
- Menyisipkan data ke dalam Azure Cosmos DB untuk database dan kontainer NoSQL
- Membuat penyematan dari properti data menggunakan Azure OpenAI Embeddings
- Tautkan Azure Cosmos DB untuk NoSQL.
- Membuat indeks vektor terhadap properti embedding
- Membuat fungsi untuk melakukan pencarian kesamaan vektor berdasarkan permintaan pengguna
- 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, lihat Grounding LLM.
Cara menerapkan fungsionalitas database vektor terintegrasi
Anda dapat menerapkan fungsionalitas database vektor terintegrasi untuk Azure Cosmos DB dan berbagai API kompatibilitasnya.
NoSQL API
Azure Cosmos DB for NoSQL adalah database vektor NoSQL tanpa server pertama di dunia. Simpan vektor dan data Anda bersama-sama di Azure Cosmos DB untuk NoSQL dengan kemampuan database vektor terintegrasi tempat Anda dapat membuat indeks vektor berdasarkan DiskANN, serangkaian algoritma pengindeksan vektor berkinerja tinggi yang dikembangkan oleh Microsoft Research.
DiskANN memungkinkan Anda untuk melakukan kueri dengan latensi rendah yang sangat akurat pada skala apa pun sambil memanfaatkan seluruh manfaat Azure Cosmos DB untuk NoSQL seperti 99,999% SLA (dengan ketersediaan tinggi), replikasi geografis, transisi mulus dari tanpa server ke throughput yang disediakan (RU) semuanya dalam satu penyimpanan data.
Tautan dan sampel
- Apa database di belakang ChatGPT? - Microsoft Mechanics
- Pengindeksan vektor di Azure Cosmos DB untuk NoSQL
- Kueri NoSQL fungsi sistem VectorDistance
- Pencarian Vektor di Azure Cosmos DB untuk NoSQL
- Python - Tutorial buku catatan
- C# - Bangun Akselerator Solusi Copilot Lengkap Anda Sendiri dengan AKS dan Kernel Semantik
- C# - Buat Aplikasi Contoh Copilot Anda Sendiri dan Lab Praktis
- Python - Movie Chatbot
Sampel kode
- Python Notebook - Integrasi database vektor melalui tutorial LangChain
- Python Notebook - Integrasi penyimpanan sementara LLM melalui tutorial LangChain
- Python - Integrasi LlamaIndex
- Python - Integrasi memori Kernel Semantik
- Buku Catatan Python - Chatbot Film
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.