Настройка Milvus в Google Colaboratory для простого создания приложений ML
Технологический прогресс постоянно делает искусственный интеллект (ИИ) и машинную аналитику более доступными и простыми в использовании. Распространение программного обеспечения с открытым исходным кодом, публичных наборов данных и других бесплатных инструментов является основной движущей силой этой тенденции. Объединив два бесплатных ресурса, Milvus и Google Colaboratory ("Colab"), каждый может создавать мощные, гибкие решения для ИИ и анализа данных. В этой статье приведены инструкции по настройке Milvus в Colab, а также по выполнению основных операций с помощью набора средств разработки программного обеспечения (SDK) на языке Python.
Перейти к:
- Что такое Milvus?
- Что такое Google Colaboratory?
- Начало работы с Milvus в Google Colaboratory
- Выполнение основных операций Milvus в Google Colab с помощью Python
- Milvus и Google Colaboratory прекрасно работают вместе
Что такое Milvus?
Milvus - это поисковая система векторного сходства с открытым исходным кодом, которая может интегрироваться с широко распространенными индексными библиотеками, включая Faiss, NMSLIB и Annoy. Платформа также включает в себя полный набор интуитивно понятных API. Сопряжение Milvus с моделями искусственного интеллекта (ИИ) позволяет создавать самые разнообразные приложения, включая:
- Поисковые системы по изображениям, видео, аудио и семантическому тексту.
- Рекомендательные системы и чат-боты.
- Разработка новых лекарств, генетический скрининг и другие биомедицинские приложения.
Что такое Google Colaboratory?
Google Colaboratory - это продукт команды Google Research, который позволяет любому человеку писать и выполнять код на языке python через веб-браузер. Colab был создан с учетом задач машинного обучения и анализа данных, предлагает бесплатную среду Jupyter notebook, синхронизируется с Google Drive и предоставляет пользователям доступ к мощным облачным вычислительным ресурсам (включая GPU). Платформа поддерживает множество популярных библиотек машинного обучения и может быть интегрирована с PyTorch, TensorFlow, Keras и OpenCV.
Начало работы с Milvus в Google Colaboratory
Хотя Milvus рекомендует использовать Docker для установки и запуска сервиса, текущая облачная среда Google Colab не поддерживает установку Docker. Кроме того, это руководство стремится быть максимально доступным - не все используют Docker. Чтобы избежать использования Docker, установите и запустите систему, скомпилировав исходный код Milvus.
Загрузите исходный код Milvus и создайте новый блокнот в Colab
Google Colab поставляется с предустановленным программным обеспечением для Milvus, включая необходимые инструменты компиляции GCC, CMake и Git, а также драйверы CUDA и NVIDIA, что упрощает процесс установки и настройки Milvus. Чтобы начать работу, загрузите исходный код Milvus и создайте новый блокнот в Google Colab:
- Загрузите исходный код Milvus: Milvus_tutorial.ipynb.
Wget https://raw.githubusercontent.com/milvus-io/bootcamp/0.10.0/getting_started/basics/milvus_tutorial/Milvus_tutorial.ipynb
- Загрузите исходный код Milvus в Google Colab и создайте новый блокнот.
Blog_Set Up Milvus in Google Colaboratory for Easy ML Application Building_2.png
Скомпилируйте Milvus из исходного кода
Загрузите исходный код Milvus
git clone -b 0.10.3 https://github.com/milvus-io/milvus.git
Установите зависимости
% cd /content/milvus/core ./ubuntu_build_deps.sh./ubuntu_build_deps.sh
Соберите исходный код Milvus
% cd /content/milvus/core
!ls
!./build.sh -t Release
# To build GPU version, add -g option, and switch the notebook settings with GPU
#((Edit -> Notebook settings -> select GPU))
# !./build.sh -t Release -g
Примечание: Если GPU-версия скомпилирована правильно, появится уведомление "GPU-ресурсы ENABLED!".
Запустите сервер Milvus
Добавьте каталог lib/ в LD_LIBRARY_PATH:
% cd /content/milvus/core/milvus
! echo $LD_LIBRARY_PATH
import os
os.environ['LD_LIBRARY_PATH'] +=":/content/milvus/core/milvus/lib"
! echo $LD_LIBRARY_PATH
Запустите и запустите сервер Milvus в фоновом режиме:
% cd scripts
! ls
! nohup ./start_server.sh &
Показать состояние сервера Milvus:
! ls
! cat nohup.out
Примечание: Если сервер Milvus запущен успешно, появится следующее сообщение:
Blog_Set Up Milvus in Google Colaboratory for Easy ML Application Building_3.png
Выполнение основных операций Milvus в Google Colab с помощью Python
После успешного запуска в Google Colab Milvus может предоставлять различные API-интерфейсы для Python, Java, Go, Restful и C++. Ниже приведены инструкции по использованию интерфейса Python для выполнения основных операций Milvus в Colab.
Установите pymilvus:
! pip install pymilvus==0.2.14
Подключитесь к серверу:
# Connect to Milvus Server
milvus = Milvus(_HOST, _PORT)
# Return the status of the Milvus server.
server_status = milvus.server_status(timeout=10)
Создайте коллекцию/раздел/индекс:
# Information needed to create a collection
param={'collection_name':collection_name, 'dimension': _DIM, 'index_file_size': _INDEX_FILE_SIZE, 'metric_type': MetricType.L2}
# Create a collection.
milvus.create_collection(param, timeout=10)
# Create a partition for a collection.
milvus.create_partition(collection_name=collection_name, partition_tag=partition_tag, timeout=10)
ivf_param = {'nlist': 16384}
# Create index for a collection.
milvus.create_index(collection_name=collection_name, index_type=IndexType.IVF_FLAT, params=ivf_param)
Вставить и промыть:
# Insert vectors to a collection.
milvus.insert(collection_name=collection_name, records=vectors, ids=ids)
# Flush vector data in one collection or multiple collections to disk.
milvus.flush(collection_name_array=[collection_name], timeout=None)
Загрузка и поиск:
# Load a collection for caching.
milvus.load_collection(collection_name=collection_name, timeout=None)
# Search vectors in a collection.
search_param = { "nprobe": 16 }
milvus.search(collection_name=collection_name,query_records=[vectors[0]],partition_tags=None,top_k=10,params=search_param)
Получить информацию о коллекции/индексе:
# Return information of a collection. milvus.get_collection_info(collection_name=collection_name, timeout=10)
# Show index information of a collection. milvus.get_index_info(collection_name=collection_name, timeout=10)
Получить векторы по ID:
# List the ids in segment
# you can get the segment_name list by get_collection_stats() function.
milvus.list_id_in_segment(collection_name =collection_name, segment_name='1600328539015368000', timeout=None)
# Return raw vectors according to ids, and you can get the ids list by list_id_in_segment() function.
milvus.get_entity_by_id(collection_name=collection_name, ids=[0], timeout=None)
Получить/установить параметры:
# Get Milvus configurations. milvus.get_config(parent_key='cache', child_key='cache_size')
# Set Milvus configurations. milvus.set_config(parent_key='cache', child_key='cache_size', value='5G')
Удалить индекс/векторы/раздел/коллекцию:
# Remove an index. milvus.drop_index(collection_name=collection_name, timeout=None)
# Delete vectors in a collection by vector ID.
# id_array (list[int]) -- list of vector id milvus.delete_entity_by_id(collection_name=collection_name, id_array=[0], timeout=None)
# Delete a partition in a collection. milvus.drop_partition(collection_name=collection_name, partition_tag=partition_tag, timeout=None)
# Delete a collection by name. milvus.drop_collection(collection_name=collection_name, timeout=10)
Milvus и Google Colaboratory прекрасно работают вместе
Google Colaboratory - это бесплатный и интуитивно понятный облачный сервис, который значительно упрощает компиляцию Milvus из исходного кода и выполнение основных операций на Python. Оба ресурса доступны для всех желающих, что делает технологии искусственного интеллекта и машинного обучения более доступными для каждого. Более подробную информацию о Milvus можно найти на следующих ресурсах:
- Дополнительные учебные пособия, охватывающие широкий спектр приложений, можно найти на сайте Milvus Bootcamp.
- Разработчики, заинтересованные во внесении вклада или использовании системы, могут найти Milvus на GitHub.
- Более подробную информацию о компании, создавшей Milvus, можно найти на сайте Zilliz.com.
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word