《云栖战略参考》由阿里云与钛媒体联合策划,呈现云计算与人工智能领域的最新技术战略观点与业务实践探索,希望这些内容能让您有所启发。
文/黄铭钧「新加坡国立大学李光前百年纪念讲席教授、浙江大学长江讲座(Adjunct)教授、清华大学杰出访问教授、新加坡科学院院士、新加坡工程院院士、中国科学院外籍院士、欧洲人文和自然科学院外籍院士、ACM Fellow、IEEE Fellow」
—
随着云计算的日益普及,其降低成本、简化运维流程的优势正吸引着越来越多的企业将业务迁移至云端。
对于开发人员而言,采用云计算产品技术意味着可以摆脱对负载均衡等基础设施问题的困扰,使得开发者得以更加高效地提升应用性能,并减少对横向扩展等复杂技术问题的关注,从而将更多精力投入到代码逻辑与应用程序等核心业务的开发与创新。
采用云计算架构已成为业内常态,并且越来越流行。虽然它支持独立地扩展计算及存储资源,但这种架构却并非无可挑剔。逻辑层之间的通信、接口整合、信号处理以及数据传输都涉及额外成本,并且要求大量的工程以确保系统的优化与高效运行。在处理这些挑战时,我们必须仔细权衡设计决策,以确保云计算架构既能满足性能要求,又能保持成本效益。
在这方面,云原生数据库PolarDB率先迈出了重要的一步。云数据库实现了存储与计算的分离解耦,具备三个方面的优势:第一,高性能,存储和计算独立可扩展;第二,可伸缩性,实现动态扩缩容;第三,低成本,通过资源池化从而提高资源利用率。
云原生数据库2.0时代:人工智能与云数据库的深度结合
在人工智能技术不断取得突破的推动下,云原生数据库迎来了2.0时代的新篇章。AI与云原生数据库的深度融合,也将大有可为。
人工智能融入云原生数据库,旨在提高数据库系统的处理效率,实现更加细致的负载平衡和更精确的用户行为预测,进而高效、精准地评估并满足用户需求。因此,我们需要基于AI算法对云数据库进行优化,例如用深度学习的方法对云数据库资源进行调度;同时,我们也需要基于云数据库对AI应用进行优化,例如用数据库高效支持数据驱动的AI应用。而随着人工智能模型规模的扩大,我们必须提供充足的数据支持。这不仅涉及大型语言模型(LLM)和推理技术的应用,也意味着随着模型规模的扩大,数据需求亦相应上升。因此,供给高质量数据,从而助力AI大模型的训练和决策过程,尤显重要。
经过数字化的发展,我们已经掌握了海量数据,其中有20%为结构化的表格数据,这部分数据最值得关注。通过挖掘这些数据的内在逻辑,并思考如何高效地将其融入到大模型中,对实现更精确预测与作出有力决策至关重要。
当前,我们正积极探索如何拓展深度学习技术的应用,并研究如何从数据库系统中汲取知识精髓,以强化模型训练与推理的性能。在这一创新征程中,两项关键技术显得尤为重要:其一,数据库内部的模型选择机制;其二,模型在数据库内的精细化切片。这两大技术将作为推动未来数据库技术发展的关键因素,使云原生数据库能更加有效地整合并发挥人工智能的力量。
数据库内部的模型选择机制
随着大数据和人工智能技术的快速发展,模型选择已经成为了数据分析中不可或缺的关键环节。其核心任务是在众多可用模型中,精准有效地筛选出与特定数据集相契合的模型,因为选择最恰当的模型对于提供预测任务的强力支持、优化应用性能具有决定性意义。
因此,将模型选择过程集成到数据库系统内部,比如PolarDB或PostgreSQL,已变得至关重要。云原生数据库为模型选择算法也提供了一个高效的支撑平台。
一个理想的模型选择系统,应同时具备高性能和低成本的特性。然而,传统的模型选择方法往往包括复杂的步骤:首先,在数据处理环节,需要执行一系列操作,如从数据库导出数据、排序、进行ETL(提取、转换、加载)操作,并对数据进行预处理。接着,在模型选择过程中,必须遍历整个模型空间,逐个对模型进行采样,并依靠训练数据进行数百到数千次的迭代训练。这个过程复杂且耗时,不仅消耗大量内存,而且全面地训练模型直至拟合所需的成本也非常高。此外,最终选择的模型通常基于其表现能力和训练的可行性进行评估。
为了在数据库系统中高效、准确且节约资源地识别适合特定应用和数据的深度学习模型,我们引入了“资源节约型两阶段模型选择算法”。在过滤阶段,该算法使用一个高效的、无需训练的模型评估矩阵,以筛选出潜在最适合应用和数据需求的模型。这一过程不涉及直接训练模型,而是依据特定评价指标来识别具有潜力的模型。在细化阶段,算法挑选几个潜在最适宜的模型进行深入训练。此外,算法包含一个协调器,能自动调整两个阶段的时间比例,以符合服务水平协议(SLA),确保精准地选出最优模型。
这一机制在本质上类似于数据库查询处理中的执行计划评估——从评估全套计划开始,逐步缩减至最优计划的选择。遵循类似原则,这种方法旨在迅速淘汰非优选项,同时基于成本与效益的最优化来做出最佳选择。
为了降低模型选择过程中数据读取的开销,我们将提出的“资源节约型两阶段模型选择算法”以非侵入式方法与PostgreSQL和PolarDB集成。对于I/O密集的过滤阶段,我们通过用户自定义函数(User Define Function,UDF)来执行,并利用服务器编程接口(Serial Peripheral Interface,SPI)来加速数据读取。
对于计算密集的细化阶段,我们利用外部GPU并行执行模型训练,并采用管道并行技术加速数据读取,以此来提高整体性能。这种方法旨在优化数据处理效率,确保模型选择过程既快速又高效。
这项设计实现了高性能与低成本相平衡的模型选择。在性能方面,与传统系统相比,结构化和非结构化数据集上的模型搜索速度分别获得了高达24.38倍和52.10倍的显著提升。在成本方面,对结构化数据集而言,搜索同等性能的模型所需的系统GPU使用时间降低了29.32倍。
这一创新方法为云原生数据库技术在模型选择领域的应用奠定了坚实的基础,并有望推动人工智能与数据库技术的进一步结合。
数据库内的模型切片
在云计算时代,随着数据呈指数级增长,数据分析对AI模型提出了更高的要求。通用模型无法满足预测任务日益增长的精准度和效率需求,考虑到在预测任务中所涉及的查询条件会携带预测目标的元信息,如何有效利用此信息使得模型预测更加精准成为了问题所在。
由此,数据库内部的模型切片技术应时而生。模型切片是一项模型增强技术,通过对查询条件进行深度建模和利用,构建任务专用模型,从而在预测的精度和效率上得到显著提高。
我们提出了一种新型的模型切片方法,基于混合专家网络进行设计。该方法对查询条件进行编码,转化为易于机器处理的向量特征,同时对基础模型进行了横向扩展。该方法基于查询向量进行条件计算,在扩展后的专家模型集合中智能选择出最适合当前预测任务的组合,以提高在该任务下的预测表现。
我们不满足于简单的基于SQL查询的模型切片算法。在实际应用中,如何将算法整合于数据库中,提供便捷的使用接口,真正为分析人员提供准确且高效的数据分析功能较之更为重要。
例如,在分析特定数据集(如特定年龄或人群)时,深度分析变得不可或缺。基于SQL语句所提供的信息,我们能够对数据视图、评价体系以及隐私保护进行更有力的控制与管理。
数据库内的模型切片功能通过数据库原生的PGX进行实现,并以用户自定义函数(UDF)的形式集成于Postgres之中。其中利用Rust调用Postgres的系统编程接口SPI进行数据交互,利用Python实现模型推理。SPI可帮助优化数据读取的I/O开销,同时共享内存的设置可以减小上下文切换的成本。
这类改进显著提升了模型的准确度和运算效率。在多个领域的结构化数据预测任务中,使用模型切片技术后的结果中,AUC-ROC值相较于基础模型提升了2.4%;对于大量预测请求,内置于数据库的模型切片分析技术相较于传统数据分析方法提速1.22倍。
理论上来说,增加更多专家模型数量可以提高准确性,但也会带来更高的计算成本。所以,我们也正致力于进一步优化性能,减少混合专家模型(Mixture of Experts,MoE)的计算成本。