技术干货

Milvus Lite 已交卷!轻量版 Milvus,主打就是一个轻便、无负担

2023-06-08
Zilliz

Zilliz

Milvus Lite 已交卷!轻量版 Milvus,主打就是一个轻便、无负担

想要体验世界上最快的向量数据库?缺少专业的工程师团队作为支撑?Milvus 安装环境受限?

别担心,轻量版 Milvus 来啦!

在正式介绍 Milvus Lite 之前,先简单回顾一下 Milvus。Milvus 是一款开源的向量数据库,专门用于索引、存储以及查询那些由深度神经网络和其他机器学习(ML)模型生成的向量,支持十亿级别的数据规模,已成为许多公司、研究人员和开发者处理大规模数据集相似性搜索的首选工具。

不过,也有用户反馈刚开始接触 Milvus 或者想要在 Notebook 中进行快速实验时,安装或部署 Milvus 有些力不从心 。为此,Milvus 社区的 Committer 嵇斌开发出 Milvus Lite,即 Milvus 的轻量级版本,方便有相关需求的用户进行体验。可以这样理解,Milvus Lite 为没有专业运维团队支撑、安装部署环境受限的群体提供了新的可能。

(https://github.com/milvus-io/milvus-lite)

Milvus Lite 的优势

作为 Milvus 的轻量级版本,Milvus Lite 有不少优势,例如:

  • 可以轻松将 Milvus Lite 集成到 Python 应用程序中,不需要任何其他依赖项;
  • 可以作为 library 导入到其他 Python 程序中,并使用命令行接口(CLI);
  • 与 Google Colab 和 Jupyter Notebook 的集成变得更容易;
  • 安全迁移,应用程序代码和数据都可以丝滑地迁移到 Milvus集群或 Zilliz Cloud中。

Milvus Lite 的适配场景

Milvus Lite 的典型使用场景:

  • 用户在使用 Milvus 的过程中不方便使用 K8s、容器等技术工具(例如 Milvus Operator,Helm 或 Docker Compose)时;
  • 想要将 Milvus 的功能集成到 Python 应用程序中;
  • 想在 Colab 或 Notebook 中进行快速实验时迅速启动 Milvus 实例。

需要注意的是,我们不推荐在任何生产环境中使用 Milvus Lite,也不推荐在需要高性能、高可用性或高可扩展性时的场景下使用 Milvus Lite。相反,当大家有类似需求时,我们更推荐 Milvus 集群或 Zilliz Cloud(提供开箱即用的向量数据库服务,6 月底即将登陆阿里云)进行部署。

如何安装、部署和使用 Milvus Lite?

  • 准备工作

在正式安装 Milvus Lite 以前,需要做足以下准备:

  • 安装 Python 3.7 或更高版本。
  • 使用下述任何一个经过验证的操作系统:Ubuntu >= 20.04 (x86_64);CentOS >= 7.0 (x86_64);MacOS >= 11.0 (Apple Silicon)

值得注意的是,Milvus Lite 用 manylinux2014作为基础镜像,以便与 Linux 用户的大多数发行版兼容。

  • 安装 Milvus Lite
  • Milvus Lite 可以在 PyPI 中下载安装,我们可以通过 pip进行安装。
$ python3 -m pip install milvus
  • 或者大家也可以通过 PyMilvus 进行安装,具体操作如下:
$ python3 -m pip install milvus[client]
  • 使用并启动 Milvus Lite

从我们的项目库的示例文件夹中下载示例代码(https://github.com/milvus-io/milvus-lite/tree/main/examples)。有两种方式可以使用 Milvus Lite:将其作为 Python 库导入或用 CLI 在机器上将它作为独立服务器运行。

  • 将 Milvus Lite 作为 Python 模块启动,执行以下命令:
from milvus import default_server
from pymilvus import connections, utility

# Start your milvus server
default_server.start()

# Now you can connect with localhost and the given port
# Port is defined by default_server.listen_port
connections.connect(host='127.0.0.1', port=default_server.listen_port)

# Check if the server is ready.
print(utility.get_server_version())
# Stop your milvus server
default_server.stop()

大家也可以将 server 实例,放在 with语句的上下文中,以实现自动启停:

from milvus import default_server

with default_server:
  # Milvus Lite has already started, use default_server here.
  connections.connect(host='127.0.0.1', port=default_server.listen_port)
  • 通过 CLI 来启动 Milvus Lite,执行以下命令:
milvus-server

启动 Milvus Lite 后,大家就可以使用 PyMilvus 或自己顺手的工具来连接独立服务器了。

  • 用调试模式启动 Milvus Lite
  • 将 Milvus Lite 作为 Python 模块以调试模式运行,执行以下命令:
from milvus import debug_server, MilvusServer

debug_server.run()

# Or you can create a MilvusServer by yourself
# server = MilvusServer(debug=True)
  • 在调试模式下运行 Milvus Lite,请执行以下命令:
milvus-server --debug
  • 持久化数据和日志
  • 执行以下命令创建一个本地目录,用于存储所有相关的 Milvus Lite 数据和日志:
 from milvus import default_server
with default_server:
  default_server.set_base_dir('milvus_data')
  • 为了将 Milvus Lite 生成的所有数据和日志保存在本地磁盘上,执行以下命令:
 $ milvus-server --data milvus_data
  • 配置 Milvus Lite

配置 Milvus Lite 与使用 Python API 或 CLI 设置 Milvus 的实例相似。

  • 用 Python API 配置 Milvus Lite ,可以使用 MilvusServer实例的 config.set来设置基本和额外的设置:
from milvus import default_server
with default_server:
  default_server.config.set('system_Log_level', 'info') 
  default_server.config.set('proxy_port', 19531)
  default_server.config.set('dataCoord.segment.maxSize', 1024)
  • 用 CLI 配置 Milvus Lite,运行以下命令进行基本设置:
$ milvus-server --system-log-level info
$ milvus-server --proxy-port 19531
  • 或者,运行以下命令以进行额外配置:
$ milvus-server --extra-config dataCoord.segment.maxSize=1024

所有配置参数都在 Milvus 工具包中附带的 config.yaml模板中。想了解更多关于安装和配置 Milvus Lite 的技术细节,可以复制链接或点击【阅读原文】查看https://milvus.io/docs/milvus_lite.md#Prerequisites

总结

总体而言,无论用户是何种身份(研究人员、开发者或者数据科学家),Milvus Lite 都是一个不错的选择,尤其对于那些想要在受限的环境中使用 Milvus 功能的用户而言,更是如此。

Milvus Lite 是开源社区或者说开源文化下的产物,背后折射出的是开发者们对于开源的热爱。在此,我们尤其要感谢 Milvus 社区 Committer 嵇斌,没有他就没有 Milvus Lite!我们也期待有更多开发者参与进来,和我们一起探讨 Milvus 的未来,在这个极具创新性与发展性的集市模式的加持下,Milvus 一定会变得越来越好,从而更好地满足用户的需求。

最后,如果大家在安装或使用 Milvus Lite 时遇到问题,可以复制链接提交问题,https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmilvus-io%2Fmilvus-lite%2Fissues%2Fnew,当然也可以扫码加入 Zilliz 技术交流群,我们的专业工程师将全程在线,为大家答疑解惑。


🌟全托管 Milvus SaaS/PaaS 即将上线,由 Zilliz 原厂打造!覆盖阿里云、百度智能云、腾讯云、金山云。目前已支持申请试用,企业用户 PoC 申请或其他商务合作请联系 business@zilliz.com。