🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
  • Home
  • Blog
  • Настройка Milvus в Google Colaboratory для простого создания приложений ML

Настройка Milvus в Google Colaboratory для простого создания приложений ML

  • Engineering
December 23, 2020
milvus

Технологический прогресс постоянно делает искусственный интеллект (ИИ) и машинную аналитику более доступными и простыми в использовании. Распространение программного обеспечения с открытым исходным кодом, публичных наборов данных и других бесплатных инструментов является основной движущей силой этой тенденции. Объединив два бесплатных ресурса, Milvus и Google Colaboratory ("Colab"), каждый может создавать мощные, гибкие решения для ИИ и анализа данных. В этой статье приведены инструкции по настройке Milvus в Colab, а также по выполнению основных операций с помощью набора средств разработки программного обеспечения (SDK) на языке Python.

Перейти к:

Что такое 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:

  1. Загрузите исходный код Milvus: Milvus_tutorial.ipynb.

Wget https://raw.githubusercontent.com/milvus-io/bootcamp/0.10.0/getting_started/basics/milvus_tutorial/Milvus_tutorial.ipynb

  1. Загрузите исходный код Milvus в Google Colab и создайте новый блокнот.

Blog_Set Up Milvus in Google Colaboratory for Easy ML Application Building_2.png 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 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 Started

    Like the article? Spread the word

    Продолжить чтение