尽管生成式人工智能在今年极其引人注目,但新时代的最大变革可能深藏在软件堆栈中。AI算法在视野之外改变着世界,生成式人工智能正在颠覆传统数据库中的固定结构表格,用更复杂、适应性强且更直观的新AI能力来追踪和处理这个世界的数据。
数据库的更新涉及到数据存储堆栈的每个层级,基本数据结构正在被审查。数据库厂商正在改变我们存储信息的方式,以更好地与AI模型配合工作。数据库管理员的角色,曾经沉闷而枯燥,但现在正演变为更加广泛的角色。
以下是数据库随着AI的发展而发生变化、适应或改进的10种方式。
向量和嵌入
AI开发人员喜欢将信息存储为一长串数字的向量。过去,数据库将这些值存储为行,每个数字位于单独的列中。现在,一些数据库支持纯向量,因此无需将信息拆分为行和列,用于存储的某些向量可能由数百甚至数千个数字组成。
这样的向量通常与嵌入配对使用,嵌入是一种将复杂数据转换为单个数字列表的模式。设计嵌入仍然是一门艺术,并且常常依赖于对底层领域的知识。当嵌入设计良好时,数据库可以提供快速访问和复杂查询。
像Pinecone、Vespa、Milvus、Margo和Weaviate等公司正在构建专门用于存储向量的新型数据库。其他公司如PostgreSQL正在将向量添加到其现有工具中。
查询模型
将向量添加到数据库带来的不仅仅是方便。新的查询函数不仅可以搜索精确匹配,还可以定位“最接近”的值,这有助于实现推荐引擎或异常检测等系统。将数据嵌入向量空间简化了涉及匹配和关联的棘手问题,使其变为纯粹的几何距离。
Pinecone、Vespa、Milvus、Margo和Weaviate等向量数据库提供向量查询。一些意想不到的工具,如Lucene或Solr,也提供相似度匹配功能,可以通过大块非结构化文本提供类似的结果。
推荐
新的基于向量的查询系统比过去的查询方式更神奇且富有神秘感。旧的查询只会寻找匹配项;而这些由人工智能驱动的数据库有时更像是在读取用户的思维。它们使用相似度搜索来找到“接近”的数据项,这些数据项通常与用户所需相符。底层的数学原理可能仅仅是在n维空间中计算距离,但不知何故,这已经足以提供意想不到的结果。这些算法长期以来一直作为完整应用程序独立运行,但它们正在逐渐被融入数据库本身,从而可以支持更好、更复杂的查询。
Oracle只是一个针对这个市场的数据库示例。Oracle长期以来一直提供各种模糊匹配和相似度搜索功能。现在它直接提供了针对在线零售等行业定制的工具。
索引范例
过去,数据库构建了简单的索引,支持按特定列进行更快的搜索。数据库管理员擅长使用连接和过滤子句来创建复杂查询,通过适当的索引可以提高查询速度。现在,向量数据库被设计为创建跨向量所有值的有效索引。我们刚刚开始探索各种应用程序来找到彼此“相邻”的向量。
但这只是个开始。当AI在数据库上进行训练时,它会吸收其中所有信息。现在,我们可以用普通语言向AI发送查询,而AI将以复杂但自适应的方式进行搜索。
数据分类
人工智能不仅仅是在数据库中添加一些新的结构,有时,它会在数据的内部添加新的结构。有些数据以一堆凌乱的位表示。可能存在没有注释的图像或很久以前某人写的大块文本。人工智能算法会清理混乱,并对混乱的数据集进行排序。它们可以自动填写表格,对一块文本进行情感分类,猜测照片中面部的态度,从图像中提取细节,并且算法还可以学会检测模式。它们对数据进行分类、提取重要细节,并创建一个规则清晰的信息表格视图。
亚马逊网络服务(Amazon Web Services)将SageMaker等人工智能工具与Aurora等数据库连接起来,提供各种数据分类服务,。
更好的性能
好的数据库可以处理许多数据存储的细节。在过去,程序员仍然需要花时间纠结于数据库使用的各种参数和模式,以使其高效运行。数据库管理员的角色是为了处理这些任务而设立的。
现在许多这些高级元任务都正在自动化进行,通常通过使用机器学习算法来理解查询模式和数据结构。它们能够监控服务器上的流量,制定调整策略以满足需求,并且可以实时适应并学会预测用户所需。
Oracle提供了最好的例子之一。过去,公司为数据库管理员支付高薪。现在,Oracle将其数据库称为自主数据库,因为它们配备了先进的人工智能算法,可以实时调整性能。
数据清洁度
运行一个良好的数据库不仅需要保持软件的正常运行,还需要确保数据尽可能干净且没有故障。人工智能通过搜索异常、标记异常并可能提出修正建议简化了这项工作量。它们可以找到客户姓名拼写错误的地方,然后通过搜索其他数据找到正确的拼写。它们还可以学习传入数据格式,并将数据摄取到一个单一统一的语料库中,使所有名称、日期和其他细节以尽可能一致的方式呈现。
微软的SQL Server是一个与数据质量服务紧密集成的数据库示例,可以清理具有问题(如缺失字段或重复日期)的数据。
欺诈检测
创建更安全的数据存储是机器学习的一个特殊应用。一些人正在使用机器学习算法来查找其数据流中的异常情况,因为这些异常情况往往是欺诈行为的很好指标。某人是否在深夜首次去自动取款机?此人是否曾在该大陆使用过信用卡?AI算法可以嗅探出危险信号,并将数据库转变为欺诈检测系统。
例如,Google的Web服务提供了几种选项,可以将欺诈检测集成到您的数据存储堆栈中。
更严密的安全性
一些组织正在内部应用这些算法。人工智能不仅仅是为了优化数据库的使用模式,它们还在寻找可能表明有人正在入侵的异常情况。远程用户不会每天都请求完整复制整个表格。一个好的AI可以嗅出可疑之处。
IBM的Guardium Security就是一个与数据存储层集成以控制访问并监测异常情况的工具示例。
将数据库和生成式AI融合
过去,人工智能与数据库相分离。在训练模型时,数据会从数据库中提取出来,重新格式化,然后输入到人工智能中。现在的新系统直接从现有的数据中训练模型。对于最大的任务来说,这样做可以节省时间和能源,因为仅仅将数据迁移可能需要几天甚至几周的时间。这也简化了开发运维团队的生活,使得训练一个人工智能模型就像发出一个命令一样简单。
甚至有人提议完全替换数据库。不再将查询发送到关系型数据库,而是直接发送给一个人工智能,它会以任何格式回答查询。谷歌提供了Bard,微软则推出了ChatGPT。它们都是取代搜索引擎的严肃竞争对手。它们同样完全可以取代传统的数据库。
这种方法也有一些缺点。在某些情况下,人工智能会产生幻觉,并给出完全错误的答案。在其他情况下,它们可能会心血来潮从而改变输出的格式。
但是,当领域足够垂直、训练集深度且完整时,人工智能可以提供令人满意的结果。而且,它能够避免定义表格结构和强迫用户编写查询来查找数据的麻烦。使用生成式人工智能来存储和搜索数据可以更加灵活,适用于用户和创建者双方。
作者 | Peter Wayner
原文链接 | 10
ways generative AI upends the traditional database | InfoWorld