Menjalankan Milvus Lite Secara Lokal
Halaman ini mengilustrasikan cara menjalankan Milvus secara lokal dengan Milvus Lite. Milvus Lite adalah versi ringan dari Milvus, sebuah database vektor sumber terbuka yang mendukung aplikasi AI dengan penyematan vektor dan pencarian kemiripan.
Gambaran Umum
Milvus Lite dapat diimpor ke dalam aplikasi Python Anda, menyediakan fungsionalitas pencarian vektor inti Milvus. Milvus Lite sudah termasuk dalam Python SDK dari Milvus. Hal ini dapat dengan mudah digunakan dengan pip install pymilvus
.
Dengan Milvus Lite, Anda dapat mulai membangun aplikasi AI dengan pencarian kemiripan vektor dalam hitungan menit! Milvus Lite bagus untuk dijalankan di lingkungan berikut ini:
- Notebook Jupyter / Google Colab
- Laptop
- Perangkat Tepi
Milvus Lite memiliki API yang sama dengan Milvus Standalone dan Distributed, dan mencakup sebagian besar fitur seperti persistensi dan manajemen data vektor, operasi CRUD vektor, pencarian vektor yang jarang dan padat, pemfilteran metadata, multi-vektor, dan pencarian hybrid. Bersama-sama, mereka memberikan pengalaman yang konsisten di berbagai jenis lingkungan, mulai dari perangkat edge hingga cluster di cloud, yang sesuai dengan kasus penggunaan dengan ukuran berbeda. Dengan kode sisi klien yang sama, Anda dapat menjalankan aplikasi GenAI dengan Milvus Lite di laptop atau Notebook Jupyter, atau Milvus Standalone di kontainer Docker, atau Milvus Didistribusikan di klaster Kubernetes berskala masif yang melayani miliaran vektor dalam produksi.
Prasyarat
Milvus Lite saat ini mendukung lingkungan berikut:
- Ubuntu >= 20.04 (x86_64 dan arm64)
- MacOS >= 11.0 (Apple Silicon M1/M2 dan x86_64)
Harap diperhatikan bahwa Milvus Lite hanya cocok untuk kasus pencarian vektor skala kecil. Untuk kasus penggunaan skala besar, kami merekomendasikan untuk menggunakan Milvus Standalone atau Milvus Distributed. Anda juga dapat mempertimbangkan Milvus yang dikelola secara penuh di Zilliz Cloud.
Menyiapkan Milvus Lite
pip install -U pymilvus
Kami merekomendasikan menggunakan pymilvus
. Karena milvus-lite
termasuk dalam pymilvus
versi 2.4.2 atau lebih tinggi, Anda dapat pip install
dengan -U
untuk memaksa pembaruan ke versi terbaru dan milvus-lite
diinstal secara otomatis.
Jika Anda ingin secara eksplisit menginstal paket milvus-lite
, atau Anda telah menginstal versi yang lebih lama dari milvus-lite
dan ingin memperbaruinya, Anda dapat melakukan pip install -U milvus-lite
.
Menghubungkan ke Milvus Lite
Pada pymilvus
, tentukan nama file lokal sebagai parameter uri dari MilvusClient yang akan digunakan oleh Milvus Lite.
from pymilvus import MilvusClient
client = MilvusClient("./milvus_demo.db")
Setelah menjalankan potongan kode di atas, sebuah file database bernama milvus_demo.db akan dibuat di folder saat ini.
CATATAN: Perhatikan bahwa API yang sama juga berlaku untuk Milvus Standalone, Milvus Distributed dan Zilliz Cloud, perbedaannya hanya pada penggantian nama file lokal ke endpoint dan kredensial server jarak jauh, misalnya
client = MilvusClient(uri="http://localhost:19530", token="username:password")
.
Contoh
Berikut ini adalah demo sederhana yang menunjukkan cara menggunakan Milvus Lite untuk pencarian teks. Ada contoh yang lebih komprehensif untuk menggunakan Milvus Lite untuk membangun aplikasi seperti RAG, pencarian gambar, dan menggunakan Milvus Lite dalam kerangka kerja RAG yang populer seperti LangChain dan LlamaIndex!
from pymilvus import MilvusClient
import numpy as np
client = MilvusClient("./milvus_demo.db")
client.create_collection(
collection_name="demo_collection",
dimension=384 # The vectors we will use in this demo has 384 dimensions
)
# Text strings to search from.
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
# For illustration, here we use fake vectors with random numbers (384 dimension).
vectors = [[ np.random.uniform(-1, 1) for _ in range(384) ] for _ in range(len(docs)) ]
data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(vectors)) ]
res = client.insert(
collection_name="demo_collection",
data=data
)
# This will exclude any text in "history" subject despite close to the query vector.
res = client.search(
collection_name="demo_collection",
data=[vectors[0]],
filter="subject == 'history'",
limit=2,
output_fields=["text", "subject"],
)
print(res)
# a query that retrieves all entities matching filter expressions.
res = client.query(
collection_name="demo_collection",
filter="subject == 'history'",
output_fields=["text", "subject"],
)
print(res)
# delete
res = client.delete(
collection_name="demo_collection",
filter="subject == 'history'",
)
print(res)
Batasan
Ketika menjalankan Milvus Lite, perhatikan bahwa beberapa fitur tidak didukung. Tabel berikut ini merangkum batasan penggunaan Milvus Lite.
Koleksi
Metode / Parameter | Didukung di Milvus Lite |
---|---|
membuat_koleksi() | Dukungan dengan parameter terbatas |
collection_name | Y |
dimension | Y |
primary_field_name | Y |
id_type | Y |
vector_field_name | Y |
metric_type | Y |
auto_id | Y |
schema | Y |
index_params | Y |
enable_dynamic_field | Y |
num_shards | N |
partition_key_field | N |
num_partitions | N |
consistency_level | N (Hanya mendukung Strong ; Konfigurasi apa pun akan diperlakukan sebagai Strong .) |
get_collection_stats() | Mendukung mendapatkan statistik koleksi. |
collection_name | Y |
timeout | Y |
describe_collection() | num_shards , consistency_level , dan collection_id sebagai respons tidak valid. |
timeout | Y |
has_collection() | Mendukung pengecekan apakah sebuah koleksi ada. |
collection_name | Y |
timeout | Y |
daftar_koleksi() | Mendukung daftar semua koleksi. |
drop_collection() | Mendukung proses membuang koleksi. |
collection_name | Y |
timeout | Y |
ganti_nama_koleksi() | Mengganti nama koleksi tidak didukung. |
Bidang & Skema
Metode / Parameter | Didukung di Milvus Lite |
---|---|
create_schema() | Dukungan dengan parameter terbatas |
auto_id | Y |
enable_dynamic_field | Y |
primary_field | Y |
partition_key_field | N |
add_field() | Dukungan dengan parameter terbatas |
field_name | Y |
datatype | Y |
is_primary | Y |
max_length | Y |
element_type | Y |
max_capacity | Y |
dim | Y |
is_partition_key | N |
Sisipkan & Cari
Metode / Parameter | Didukung di Milvus Lite |
---|---|
cari() | Dukungan dengan parameter terbatas |
collection_name | Y |
data | Y |
filter | Y |
limit | Y |
output_fields | Y |
search_params | Y |
timeout | Y |
partition_names | N |
anns_field | Y |
query() | Dukungan dengan parameter terbatas |
collection_name | Y |
filter | Y |
output_fields | Y |
timeout | Y |
ids | Y |
partition_names | N |
get() | Dukungan dengan parameter terbatas |
collection_name | Y |
ids | Y |
output_fields | Y |
timeout | Y |
partition_names | N |
hapus() | Dukungan dengan parameter terbatas |
collection_name | Y |
ids | Y |
timeout | Y |
filter | Y |
partition_name | N |
masukkan () | Dukungan dengan parameter terbatas |
collection_name | Y |
data | Y |
timeout | Y |
partition_name | N |
upsert() | Dukungan dengan parameter terbatas |
collection_name | Y |
data | Y |
timeout | Y |
partition_name | N |
Muat & Lepas
Metode / Parameter | Didukung di Milvus Lite |
---|---|
load_collection() | Y |
collection_name | Y |
timeout | Y |
lepaskan_koleksi() | Y |
collection_name | Y |
timeout | Y |
get_load_state() | Mendapatkan status beban tidak didukung. |
refresh_load() | Memuat data yang tidak dimuat dari koleksi yang dimuat tidak didukung. |
close() | Y |
Indeks
Metode / Parameter | Didukung di Milvus Lite |
---|---|
list_indexes() | Mencantumkan indeks didukung. |
collection_name | Y |
field_name | Y |
create_index() | Hanya mendukung tipe indeks FLAT . |
index_params | Y |
timeout | Y |
drop_index() | Menjatuhkan indeks didukung. |
collection_name | Y |
index_name | Y |
timeout | Y |
mendeskripsikan_indeks() | Mendeskripsikan indeks didukung. |
collection_name | Y |
index_name | Y |
timeout | Y |
Jenis Indeks Vektor
Milvus Lite hanya mendukung jenis indeks FLAT. Ia menggunakan jenis FLAT terlepas dari jenis indeks yang ditentukan dalam koleksi.
Fitur Pencarian
Milvus Lite mendukung Vektor Jarang, Multi-vektor, Pencarian Hibrida.
Partisi
Milvus Lite tidak mendukung partisi dan metode yang berhubungan dengan partisi.
Pengguna & Peran
Milvus Lite tidak mendukung pengguna dan peran serta metode terkait.
Alias
Milvus Lite tidak mendukung alias dan metode terkait alias.
Memigrasi data dari Milvus Lite
Semua data yang disimpan di Milvus Lite dapat dengan mudah diekspor dan dimuat ke dalam jenis penerapan Milvus lainnya, seperti Milvus Standalone di Docker, Milvus Distributed di K8, atau Milvus yang dikelola sepenuhnya di Zilliz Cloud.
Milvus Lite menyediakan alat baris perintah yang dapat membuang data ke dalam file json, yang dapat diimpor ke dalam milvus dan Zilliz Cloud(layanan cloud terkelola penuh untuk Milvus). Perintah milvus-lite akan diinstal bersama dengan paket python milvus-lite
# Install
pip install -U "pymilvus[bulk_writer]"
milvus-lite dump -h
usage: milvus-lite dump [-h] [-d DB_FILE] [-c COLLECTION] [-p PATH]
optional arguments:
-h, --help show this help message and exit
-d DB_FILE, --db-file DB_FILE
milvus lite db file
-c COLLECTION, --collection COLLECTION
collection that need to be dumped
-p PATH, --path PATH dump file storage dir
Contoh berikut ini membuang semua data dari koleksi demo_collection
yang disimpan di ./milvus_demo.db
(file basis data Milvus Lite)
Untuk mengekspor data:
milvus-lite dump -d ./milvus_demo.db -c demo_collection -p ./data_dir
# ./milvus_demo.db: milvus lite db file
# demo_collection: collection that need to be dumped
#./data_dir : dump file storage dir
Dengan file dump, Anda dapat mengunggah data ke Zilliz Cloud melalui Impor Data, atau mengunggah data ke server Milvus melalui Bulk Insert.
Apa selanjutnya
Setelah terhubung ke Milvus Lite, Anda dapat:
Memeriksa Mulai Cepat untuk melihat apa yang dapat dilakukan Milvus.
Mempelajari operasi dasar Milvus:
Mengaturskala cluster Milvus Anda.
Menerapkan cluster Milvus Anda di awan:
Jelajahi Milvus Backup, alat sumber terbuka untuk pencadangan data Milvus.
Jelajahi Birdwatcher, alat sumber terbuka untuk men-debug Milvus dan pembaruan konfigurasi dinamis.
Jelajahi Attu, alat GUI sumber terbuka untuk manajemen Milvus yang intuitif.