Obsah
Milvus (vektorová databáze)
Milvus je vysoce výkonná open-source vektorová databáze navržená pro ukládání, indexování a správu masivních objemů vektorů (tzv. embeddings). Byla vytvořena společností Zilliz, uvolněna jako open-source v roce 2019 a dnes patří mezi nejpopulárnější nástroje pro vývoj aplikací využívajících umělou inteligenci (AI) a strojové učení (ML).
Hlavní vlastnosti
Milvus se vyznačuje několika klíčovými vlastnostmi, které z něj činí ideální volbu pro moderní AI architektury:
- Vysoký výkon a škálovatelnost: Architektura je plně distribuovaná a cloud-native. Odděluje datové úložiště od výpočetních prostředků, což umožňuje snadné horizontální škálování.
- Podpora různých metrik vzdálenosti: Umožňuje měřit podobnost vektorů pomocí euklidovské vzdálenosti (L2), kosinové podobnosti (Cosine) nebo vnitřního součinu (IP).
- Pokročilé indexování: Nabízí širokou škálu algoritmů pro přibližné hledání nejbližšího souseda (ANN), včetně indexů jako jsou IVF_FLAT, HNSW nebo DiskANN.
- Široká ekosystémová integrace: Databáze má oficiální integrace s moderními frameworky pro práci s velkými jazykovými modely (LLM), jako jsou LangChain či LlamaIndex.
Architektura
Architektura databáze Milvus je postavena na moderních principech a skládá se ze čtyř nezávisle škálovatelných vrstev:
- Přístupová vrstva (Access Layer): Zajišťuje API rozhraní pro klienty (dostupné SDK pro Python, Java, Go, Node.js a další).
- Koordinační služba (Coordinator Service): Mozek celého systému, který spravuje topologii clusteru a přiřazuje úkoly.
- Pracovní uzly (Worker Nodes): Provádějí samotné těžké operace, jako je dotazování (hledání podobností) a vkládání dat.
- Úložiště (Storage): Zajišťuje perzistenci dat. Pro uchovávání transakčních logů využívá zprávové systémy (např. Apache Pulsar nebo Kafka) a pro samotná data objektová úložiště (AWS S3, MinIO).
Případy užití (Use Cases)
Díky schopnosti bleskově vyhledávat v miliardách vektorů má Milvus široké uplatnění:
- Sémantické vyhledávání textu: Vyhledávání na základě skutečného významu vět pomocí NLP modelů, nikoliv jen na základě shody klíčových slov.
- Retrieval-Augmented Generation (RAG): Slouží jako externí „dlouhodobá paměť“ pro velké jazykové modely (např. ChatGPT), kterým dodává relevantní kontext z firemních dat.
- Multimodální vyhledávání: Rozpoznávání a hledání vizuálně nebo zvukově podobných obrázků, videí a audia.
- Doporučovací systémy (Recommender Systems): Nabízení produktů nebo obsahu uživatelům na základě vektorové podobnosti jejich preferencí.
Instalace a základní použití
Pro lokální testování a vývoj je nejrychlejší využít odlehčenou verzi Milvus Lite, kterou lze nainstalovat jako standardní Python knihovnu bez nutnosti konfigurovat kontejnery:
pip install pymilvus
Níže je ukázka základního připojení a vytvoření kolekce v jazyce Python:
from pymilvus import MilvusClient # Inicializace lokálního klienta (vytvoří soubor milvus_demo.db) client = MilvusClient("milvus_demo.db") # Vytvoření nové kolekce client.create_collection( collection_name="ai_dokumenty", dimension=768 # Dimenze musí odpovídat výstupu vašeho embedding modelu ) print("Kolekce byla úspěšně vytvořena.")
