以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:Milvus(向量搜索引擎)、Annoy(求近似最近邻的库)、Vearch(分布式向量搜索系统)、sk-dist(PySpark中的分布式scikit-learn元估计器)。

1、Milvus(向量搜索引擎)

Milvus,为海量特征向量的近似最近邻搜索(ANNS)而设计。相比 Faiss 和 SPTAG 这样的算子库,Milvus 提供完整的向量数据更新,索引与查询框架。Milvus 利用 GPU(Nvidia)进行索引加速与查询加速,能大幅提高单机性能。

Milvus 向量搜索引擎可以广泛地和各种深度学习模型进行整合,简化 AI 应用落地的难度。

目前Milvus已经得到了头部机器视觉公司的技术认可。我们正在构建广泛的技术社区,诚邀有兴趣的AI开发者加入。

开发语言:C++,SDK:C++/Python/Java/RESTful API

体验Milvus:

感兴趣的开发者可以根据以下教程,在自己的 PC(16GB内存)上轻松实现 1 亿级向量(数据来自SIFT1billion)搜索。

Milvus 在单机 10 亿向量(SIFT1B 数据集)上的性能也是表现出色的。

Milvus索引类型:

IVF:Faiss IVF,Milvus 团队自研 IVF。

Graph:Milvus 团队实现的 NSG 索引。

Tree & Graph:集成微软 SPTAG。

IVF & Graph:Milvus 团队实现中。

软件需求:

Ubuntu 18.04或更高版本。

CMake 3.14或更高。

CUDA 10.0或更高。

NVIDIA驱动程序418或更高版本。

构建:

步骤1、安装依赖项

$ cd [Milvus sourcecode path]/core

./ubuntu_build_deps.sh

步骤2、建立

$ cd [Milvus sourcecode path]/core

$ ./build.sh -t Debug

or

$ ./build.sh -t Release

构建完成后,运行Milvus所需的所有内容都将安装在[Milvus root path]/core/milvus下。

启动Milvus服务器:

$ cd [Milvus root path]/core/milvus

将lib/目录添加到LD_LIBRARY_PATH:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/milvus/lib

然后启动Milvus服务器:

$ cd scripts

$ ./start_server.sh

要停止Milvus服务器,请运行:

$ ./stop_server.sh

要在conf/server_config.yaml和conf/log_config.conf中编辑Milvus设置。

下载地址:https://github.com/milvus-io/milvus

2、Annoy(求近似最近邻的库)

Annoy 是 Spotify 开源的高维空间求近似最近邻的库,在 Spotify 使用它进行音乐推荐。最邻近搜索(Nearest Neighbor Search, NNS)又称为“最近点搜索”(Closest point search),是一个在尺度空间中寻找最近点的优化问题。

Annoy 能够使用静态文件作为索引,意味着可以跨进程共享索引。它还创建了大量的基于只读文件的数据结构,这些数据结构被嵌入内存中,以便许多进程可以共享相同的数据。Annoy 的另一个好处是它试图最小化内存占用,因此索引非常小。

特性:

欧几里德距离, 曼哈顿距离, 余弦距离, 汉明距离或 点(内)积距离。

余弦距离等价于归一化向量的欧氏距离=sqrt(2-2*cos(u,v)。

如果你的维度不多(比如<100),效果会更好,即使达到 1000 个维度,它也表现得非常出色。

内存使用量小。

允许你在多个进程之间共享内存。

索引创建与查找是分开的(特别是在创建树后,就无法添加更多项目)。

原生 Python 支持。

在磁盘上生成索引,以便为不适合内存的大型数据集建立索引。

安装:

要安装,只需执行pip install --user annoy。

对于C++版本,只需克隆存储库并#include "annoylib.h"。

下载地址:https://github.com/spotify/annoy

3、Vearch(分布式向量搜索系统)

注:以上为架构图。

Vearch 是一个分布式向量搜索系统,可以用来计算向量相似度,或用于机器学习领域,如:图像识别、视频识别或自然语言处理等各个领域。

本系统基于 Faiss 实现,提供了快速的向量检索功能。

提供类似 Elasticsearch 的 Restful API 可以方便地对数据及表结构进行管理查询等工作。

下载地址:https://gitee.com/vearch/vearch

4、sk-dist(PySpark中的分布式scikit-learn元估计器)

PySpark中的分布式scikit-learn元估计器。

sk-dist是一个用于机器学习的Python模块,构建于scikit-learn之上,并在Apache 2.0软件许可下发布。sk-dist模块可以被认为是“分布式scikit-learn”,因为它的核心功能是将scikit-learn内置的joblib并行化的meta-estimator训练扩展到spark。

主要特点:

分布式训练 -  sk-dist使用PySpark将scikit-learn元估计器的训练并行化。这允许对这些估计器进行分布式训练,而不对任何一台机器的物理资源进行任何限制。在所有情况下,火花伪像会自动从拟合估算器中剥离。然后可以对这些估计器进行酸洗和未腌制以用于预测任务,在预测时间对他们的scikit-learn对应物进行相同的操作。支持的任务是:

网格搜索:分配超参数优化技术,特别是GridSearchCV和RandomizedSeachCV,使得每个参数集候选被并行训练。

多类策略:分布多类分类策略,特别是OneVsRestClassifier和OneVsOneClassifier,使得每个二进制问题都是并行训练的。

树集合:分布和回归的决策树集合,特别是RandomForest和ExtraTrees,是分布式的,以便每个树都是并行训练的。

分布式预测 -  sk-dist提供了一个预测模块,该模块使用拟合的scikit-learn估算器为PySpark DataFrames构建矢量化UDF。这分配了scikit-learn估计器的predict和predict_proba方法,通过scikit-learn实现大规模预测。

特征编码 -  sk-dist提供了一个名为Encoderizer的灵活的特征编码实用程序,它使用默认行为或用户定义的可自定义设置对混合类型的特征空间进行编码。它特别针对文本功能,但它还处理数字和字典类型的功能空间。

用户安装:

安装sk-dist的最简单方法是使用pip:

pip install --upgrade sk-dist

您还可以下载源代码:

git clone https://github.com/Ibotta/sk-dist.git

测试:

安装pytest后,您可以在本地运行测试:

pytest sk-dist

下载地址:https://github.com/Ibotta/sk-dist

注明

以上就是机器/深度学习Milvus、Annoy、Vearch、sk-dist的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

机器/深度学习Milvus、Annoy、Vearch、sk-dist介绍相关推荐

  1. 【20210922】【机器/深度学习】KNN (K近邻) 算法详解

    一.算法概念 KNN, K-near neighbor,即最近邻算法.它是一种分类算法,算法思想是:一个样本与数据集中的 k 个样本最相似,如果这 k 个样本中的大多数属于某一个类别,则该样本也属于这 ...

  2. 2021 年了,机器/深度学习还有哪些坑比较好挖?

    作者丨张趔趄.微调.金雪锋 来源丨知乎问答 编辑丨极市平台 导读 深度学习以及机器学习发展至今,涌入了大量的人才和资源,有很多方向已经达到了一个瓶颈,短时间内有非常大的突破有些难以实现.那么对于有学术 ...

  3. 送你一份机器/深度学习自学指南(附视频amp;速成方案)

    本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处. 本文约3052字,建议阅读6分钟. 本文详细讲解了机器/深度学习的学习方法,一共为分三个部分,做出了详细的指南. 怎么入 ...

  4. Java还欠缺什么才能真正支持机器/深度学习?

    如何让团队开始使用ML以及如何最好地将ML与我们运行的现有系统集成? 实际上没有用Java构建的ML框架(有DL4J,但我真的不知道有谁使用它,MXNet有一个Scala API而不是Java,而且它 ...

  5. 深度学习如何入门?怎么入门机器/深度学习?

    链接:https://www.zhihu.com/question/26006703/answer/536169538 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备 ...

  6. 纯新手入门机器/深度学习自学指南(附一个月速成方案)

    原作:Masum Hasan 问耕 编译整理 量子位 出品 | 公众号 QbitAI 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备用三个月入门,和想要一个月速成,肯 ...

  7. [面经整理] 机器/深度学习补充篇

    文章目录 ~~~~~~~~传统图像处理~~~~~~~~ 介绍canny边缘检测算法 1. 图像降噪 简单易懂的高斯滤波 2. 计算图像梯度 图像梯度的基本原理 sobel算子 3.非极大值抑制NMS ...

  8. ECG ×AI: 机器/深度学习的ECG应用入门(1)

    前言 你好,我是研究ECG算法的搬砖工Winham.目前搞这个方向已经挺长时间了,总想着把自己的一些入门经验分享一下,却不知道从何下手.说实话,关于ECG算法的研究相对冷门一些,网络上系统的资料也比较 ...

  9. ECG ×AI: 机器/深度学习的ECG应用入门(3)

    QRS心拍定位: 解决识别对象问题 1.引言 上一节我们解决了数据来源问题,成功将ECG数据读入了Matlab中.而我们现在还不能马上使用高大上的机器/深度学习算法,原因在于一个问题:在这个问题中,对 ...

最新文章

  1. 【Qt】Qt5.9.0: error: GL/gl.h: 没有那个文件或目录
  2. 熬夜翻译完的PureFTPd配置文件
  3. 7999元大疆最新无人机,支持第一人称视角极速拍摄,直接起飞
  4. Token 防盗链详解
  5. 看你的样子对Vue研究挺深的,我司招Vue,五险一金有兴趣吗?
  6. OPENCV学习笔记2-5_扫描图像并访问相邻像素
  7. 应用squid全面加速web(全)
  8. Java 集合框架详解
  9. (转)Bootstrap 之 Metronic 模板的学习之路 - (2)源码分析之 head 部分
  10. 收集一些常用的CDN链接!无需下载快速使用!
  11. 从SVN资源库下载项目
  12. win10卸载db2_如何在Linux下干净卸载db2数据库
  13. android中常用的开源项目
  14. VMware12安装win7图文教程
  15. 迎新春 送温暖——郧阳小红花健康守护包发放
  16. c语言打包游戏补丁,C语言实现的系统补丁自动安装工具.doc
  17. X86_64 GNU汇编、寄存器、内嵌汇编
  18. 四、 按键控制流水灯的运行与暂停
  19. 微信小程序原生上传图片封装
  20. 使用阿里云PCDN降低内容分发成本

热门文章

  1. vue 项目统计网站pv uv
  2. java搭建分布式项目
  3. Go核心开发学习笔记(廿九) —— 反射
  4. Android如何实现引导页
  5. 三、清除域控信息已经不存在的域控制器对象
  6. !false==fasle
  7. 关于平均情况困难问题与最坏情况困难问题的理解
  8. pppd详解_【求解】pptpd 619错误详解
  9. uniapp小程序使用symbol格式图标(阿里图标库)
  10. 【基础】js 获取当前地址或IP