Milvus是一个开源项目,可以为开源人工智能生态提供数据服务功能。人们需要了解如何从中受益。提到开源人工智能项目,人们通常会想到谷歌TensorFlow、PyTorch等模型框架项目,由于模型框架是训练人工智能模型的关键组成部分,这些项目通常最受关注。但人工智能不是单一的技术,而是一个复杂的技术领域,涉及多个子领域和许多不同的组成部分。向人工智能过渡的拐点一般而言,技术升级的拐点是回报远大于成本。当应用于AI改造时,会涉及到一些基础因素,包括模型(算法)、模型推理和数据服务。在谈论模型时,人们需要了解利用AI技术会带来什么。如果人工智能技术有望打败和取代人类,比如用人工智能对话机器人取代所有客户支持专家,那么对人工智能模型的需求将非常高,短期内不会实现。如果企业希望将客户支持专家从日常工作中解放出来,这意味着计划使用人工智能技术来提高人类的生产力和能力,那么当前的模型在许多情况下都可以实现。这听起来令人鼓舞。但关于模型的激烈争论是,虽然有一些模型可用,但没有单一的最佳模型。雇用AI科学家的公司拥有这些最先进的(SOTA)模型。如果只使用公共模型,是否会失去竞争优势?人们对此感到困惑,因为他们认为更高效的模型将带来更高的商业价值,这可能是错误的。在大多数情况下,模型有效性和业务价值之间的关系既不是线性的,也不是单调递增的。该函数的图形如下所示。这是一个分段函数。在第一阶段,模型在应用场景中实用之前,没有商业价值。在第二阶段,虽然理论上更好的模型应该有更好的性能(响应时间和有效性等),但在实际场景中可能没有那么明显。在下面了解更多信息。在医生确认患者是否有肺部感染之前,需要对其肺部进行CT扫描,大约会生成300张CT图像。一个有经验的医生需要花费5到15分钟来研究这些CT图像。通常,如果治疗的患者人数少,没有问题。但在极端情况下,例如持续的冠状病毒爆发,患者数量的激增将使医生不堪重负。好消息是,数据科学家正在努力用计算机视觉帮助医生。他们训练的模型可以处理数百或数千张CT图像,并在几秒钟内提供诊断建议。因此,医生查看模型生成的结果只需1分钟。因此,在机器学习之前,医生平均需要10分钟来查看CT扫描生成的结果;现在大约需要一分钟。生产率提高了近90%。如果有一个更快的模型可以在3秒内生成结果怎么办?如果有更高效的模型可以将准确率从80%提高到90%会怎么样?医生检查的结果会更少?答案是否定的,那是因为在模型中,如果十分之一的人是错误的,但他们不知道哪些是错误的,医生必须审查所有的结果。因此,不会节省更多的诊断时间。此外,为了降低模型推理服务的成本,有时需要牺牲模型的有效性。例如,一家拥有5500万张商标图片的商业智能平台提供商希望提供一项服务,让用户可以搜索这些商标的所有者。用户通过上传徽标图像作为输入查询而不是提供关键字来执行搜索。其背后的技术是计算机视觉,例如VGG模型。如果企业在后端服务器上运行模型推理,则必须在数据中心分配和预留硬件资源。另一种选择是部署较小规模的模型,这样企业就可以将模型推理放在边缘计算设备(大多数情况下是智能手机)上。它肯定会降低GPU等昂贵的模型推理硬件的成本。这又是一个SOTA模型不可能在所有场景下都具有竞争力的例子。我们已经处于AI转型的转折点。下一个问题是如何度过这个拐点,采用人工智能技术来提升业务能力。一个可用的模型是先决条件。然而,仅使用模型无法轻松开发AI程序。与传统应用一样,数据服务始终是至关重要的一环。如您所见,它已成为当今采用人工智能的重要组成部分。这就是为什么要启动开源项目Milvus以加速人工智能的采用。采用AI的数据挑战一些企业尝试通过AI技术处理的大多数数据都是非结构化的,因此期望Milvus项目为非结构化数据服务提供坚实的基础。人们通常将数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据包括数字、日期、字符串等。半结构化数据通常包括特定格式的文本信息,如各种计算机系统日志。非结构化数据包括图片、视频、语音、自然语言以及任何其他计算机无法直接处理的数据。据估计,非结构化数据至少占数字数据世界的80%。例如,人们每天可能与家人、朋友或同事发送和接收几千字节的短信。但即使在移动设备(例如配备12兆像素摄像头的iPhone11)上只拍摄一张照片,也可能需要几兆字节。那么,如果您拍摄720p分辨率的视频呢?一些公司开发了关系数据库和大数据等技术来高效处理结构化数据。半结构化数据可以通过Lucene、Solr、Elasticsearch等基于文本的搜索引擎进行处理,但是对于大量的非结构化数据,以往并没有有效的分析方法。直到近年来深度学习技术的兴起,非结构化数据处理技术得到了快速发展。非结构化数据服务嵌入是深度学习中的一个术语,指的是通过模型将非结构化数据转化为特征向量。由于特征向量是数字数组,因此很容易被计算机处理。因此,非结构化数据的分析可以转化为向量计算。最常见的争论之一是特征向量似乎是非结构化数据处理的中间结果。那么有必要建立一个通用的向量相似度搜索引擎吗?它应该包含在模型中吗?专家认为,特征向量不仅仅是中间结果。它是深度学习场景中非结构化数据的知识表示。这也称为特征学习。另一个争论是为什么不在现有的数据处理平台(如数据库)或计算框架(如Spark)上进行向量计算,因为特征向量也包含数值。准确地说,向量由数字列表组成。这导致了矢量计算和数值运算之间的两个重要区别。首先,对向量和数字最频繁的操作是不同的。加法、减法、乘法和除法是最常见的数字运算。但是对于向量,最常见的要求是计算相似度。会看到这里给出了计算欧几里得距离的公式,向量计算比普通的数值计算要昂贵得多。其次,数据的索引方式不同。两个数字之间,可以相互比较数值。通过这种方式,可以根据B-trees等算法创建数值索引。但是在两个向量之间,无法进行比较。只能计算它们之间的相似度。因此向量索引通常基于近似最近邻神经网络算法。由于这些显着差异,传统的数据库和大数据技术很难满足矢量分析的要求。他们支持的算法和关注的场景是不一样的。
