🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
Beranda
  • Memulai
    • Instal Milvus
  • Home
  • Docs
  • Memulai

  • Instal Milvus

  • Jalankan Milvus Lite

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, misalnyaclient = 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 / ParameterDidukung di Milvus Lite
membuat_koleksi()Dukungan dengan parameter terbatas
collection_nameY
dimensionY
primary_field_nameY
id_typeY
vector_field_nameY
metric_typeY
auto_idY
schemaY
index_paramsY
enable_dynamic_fieldY
num_shardsN
partition_key_fieldN
num_partitionsN
consistency_levelN (Hanya mendukung Strong; Konfigurasi apa pun akan diperlakukan sebagai Strong.)
get_collection_stats()Mendukung mendapatkan statistik koleksi.
collection_nameY
timeoutY
describe_collection()num_shards, consistency_level, dan collection_id sebagai respons tidak valid.
timeoutY
has_collection()Mendukung pengecekan apakah sebuah koleksi ada.
collection_nameY
timeoutY
daftar_koleksi()Mendukung daftar semua koleksi.
drop_collection()Mendukung proses membuang koleksi.
collection_nameY
timeoutY
ganti_nama_koleksi()Mengganti nama koleksi tidak didukung.

Bidang & Skema

Metode / ParameterDidukung di Milvus Lite
create_schema()Dukungan dengan parameter terbatas
auto_idY
enable_dynamic_fieldY
primary_fieldY
partition_key_fieldN
add_field()Dukungan dengan parameter terbatas
field_nameY
datatypeY
is_primaryY
max_lengthY
element_typeY
max_capacityY
dimY
is_partition_keyN
Metode / ParameterDidukung di Milvus Lite
cari()Dukungan dengan parameter terbatas
collection_nameY
dataY
filterY
limitY
output_fieldsY
search_paramsY
timeoutY
partition_namesN
anns_fieldY
query()Dukungan dengan parameter terbatas
collection_nameY
filterY
output_fieldsY
timeoutY
idsY
partition_namesN
get()Dukungan dengan parameter terbatas
collection_nameY
idsY
output_fieldsY
timeoutY
partition_namesN
hapus()Dukungan dengan parameter terbatas
collection_nameY
idsY
timeoutY
filterY
partition_nameN
masukkan ()Dukungan dengan parameter terbatas
collection_nameY
dataY
timeoutY
partition_nameN
upsert()Dukungan dengan parameter terbatas
collection_nameY
dataY
timeoutY
partition_nameN

Muat & Lepas

Metode / ParameterDidukung di Milvus Lite
load_collection()Y
collection_nameY
timeoutY
lepaskan_koleksi()Y
collection_nameY
timeoutY
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 / ParameterDidukung di Milvus Lite
list_indexes()Mencantumkan indeks didukung.
collection_nameY
field_nameY
create_index()Hanya mendukung tipe indeks FLAT.
index_paramsY
timeoutY
drop_index()Menjatuhkan indeks didukung.
collection_nameY
index_nameY
timeoutY
mendeskripsikan_indeks()Mendeskripsikan indeks didukung.
collection_nameY
index_nameY
timeoutY

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:

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?