自治数据库旨在齐全自动化数据库部署中的配置和运维工作,例如建设索引和进行参数调优。实现自治数据库的要害是建设可能预测各种优化工作的开销和收益的行为模型。但数据库的零碎复杂度、并发操作、以及训练数据的获取代价使得建模具备挑战性。
基于此,明天为大家带来 OceanBase Paper Time 第二期文字版分享回顾,由 卡耐基梅隆大学博士后马林 分享《为自治数据库建设行为模型》,原论文名为“MB2: Decomposed Behavior Modeling for Self-Driving Database Management Systems”。为大家介绍一种合成式的建模框架解决上述难点,并利用所建模型精确预测不同优化工作的开销和收益,欢送大家一起学习探讨分享。
以下为直播实录:
大家好,我是马林,当初 CMU 博士后在读,明天我跟大家分享的论文为“MB2: Decomposed Behavior Modeling for Self-Driving Database Management Systems”,是 2021 SIGMOD 上发表的论文。
MB2 是一个合成式的自治数据库建设行为模型的框架。在当初互联网时代,各种资源、数据十分多的状况下,人们通常会用数据管理系统去控制数据的存储和拜访。但随着数据的爆发式增长,数据管理自身也变得越来越简单,尤其随同数据量级和数据多样性的增长,这些零碎自身须要有很多的设置工作。
咱们通常须要 DBA 去治理数据库系统部署中的各种工作,比如说数据管理员须要设置各种各样的索引(一种减速局部数据拜访的一种数据结构);或者数据管理员要设置数据库各种各样的参数,比如说进行日志治理的距离等;尤其是云时代,数据库管理员要去设置数据库资源的大小,有多少 CPU,多少 Memory,多少 IO 等等。这就导致企业须要破费很大老本去雇佣数据库管理员,对于很多大公司或者云数据库的服务商,可能要治理几千个、几十万个数据库,如果每一个数据库都要调配一个数据库管理员的话,就很不事实。
供
当今时代曾经对数据驱动、数据密集型利用的部署造成了很多挑战,目前也有很多的解决办法。在数据库行业倒退的很多年里,各个厂商、研究员开发了很多帮忙数据管理的工具。但在工具应用的场景中,还须要借助很多人为的力量去应用这些工具。比方一个数据管理员想设置数据库的索引,或者设置一些参数。他先要筹备一个具备代表性的数据库负载(workload),同时还要筹备一些空余的硬件,而后再在硬件下来复制一些数据库的内容。要在空余的硬件上和筹备好的 workload 上,去运行数据库调优、或者是举荐索引的工具。拿到这些举荐之后,在各种各样举荐的索引当中抉择一个比拟好的或者最优的索引,最初决定什么工夫更改,这都须要人为的更改。通常这些更改都须要在数据库负载比拟低的时候,比方凌晨三四点,对于数据库管理人员来说,这种流程很是苦楚。
之前这些大部分管理工具都是关注在数据库的某一个方面。比如说有的工具关注索引,有的工具关注怎么和用户协同,不同的数据放到不同的分区,而后很多工具进行参数的调整。很多工具要一遍一遍的反复这个过程,不同的工具都要用一遍是十分繁琐的过程。正因而,我明天为大家带来一种新思路。
我在另一篇论文中对数据库的自主帮忙治理、主动部署的等级进行了辨别(Make Your Database System Dream of Electric Sheep: Towards Self-Driving Operation, VLDB 2021)。
最低级,所有的数据都须要数据管理员本人用。有一些不同的厂商,会在两头档次帮忙数据库进行自我管理的工具,比如说去管制某一个小的局部。然而咱们在这里的我的项目就是心愿达到最高等级——主动驾驶(self-driving)或者是自治的级别。意思是数据库能够齐全主动治理不同的方面,包含索引、参数等等,通过一个对立的要害框架去治理,这个自治数据库不仅仅是给 DBA 去进行一些举荐,而且能预知之后的事件,就比如说数据库的负载是什么?怎么去进行数据库的主动调优、扭转安顿,并且齐全能够主动的进行,不须要人为干涉,这是咱们要达到的指标。
简略定义下自治数据库:自治数据库是一个能够齐全可能设置调优并且优化零碎的各个方面,也不须要任何人为干涉的数据库。
具体来说就是它能够主动优化任何跟数据库性能相干的方面。比如说 physical design(索引),或者冷热拆散、调参数、资源配置。然而有一些设置还是须要人去进行价值判断,比如说数据库的哪一个表,或者哪一列,什么人会有权限去操作,数据库的自身依然不能确定。
为什么在这个时代有可能做自治数据库?有几方面起因。
首先,在数据驱动的时代,不光是数据库自身能够存储很多客户的数据,同时数据库能够去对数据库自身的运行状态,去记录很多的指标、参数、运行状态的历史记录,还有数据库自身的运行状态。咱们也能够尝试去挖掘反对、帮忙数据库进行主动优化。第二,咱们这里有很多更好的硬件,能够存储更多这样的数据,也能够更疾速地解决这些数据,并且实现数据库的主动优化。最初,当初这个时代有很多不便的人工智能、机器学习方面的库和工具,来帮忙咱们去部署这些主动调节的算法。
自治数据库的挑战
听起来有很多的机会、趋势去帮忙咱们实现这个工作,甚至感觉将一个现成的人工智能算法往数据库的零碎上一套,就能实现齐全的“主动驾驶”,但在事实当中还是有一些挑战。
第一,数据库自身是一个非常复杂的零碎,如果你想要一个对立的框架去齐全的去管制数据库各个方面复杂度很高。
第二,在数据库当中的很多操作,比如说想应用机器学习这些算法去训练模型、去管制智能化的数据库,须要数据去训练这些模型,然而数据库当中的很多操作,它其实是要花很多工夫的,获取这些模型的训练数据也要花很多工夫。比如说建一个索引,如果这个表上有几十亿个行,建一个可能就要好几个小时,好几天。
第三,你在实验室或者开发环境当中训练了一些模型,而后去部署这个智能数据库。但模型不是百分之百精确的,很难保障在这个开发环境当中训练的这些模型,在部署当中还能有好的成果。
还有一些其余的方面,比如说智能数据库或者本人数据库的可解释性,这个排除故障的难易水平等等,对于一个理论比拟事实的自治数据库开发来说,这些方面都是须要解决的难点。
咱们称之为自治数据库(self-driving database),其开发零碎是受了主动驾驶的启发。然而我要说的是,事实当中主动驾驶的技术是非常复杂的,然而我感觉在这儿作为一个比喻对于了解还是很有帮忙的。
一辆主动驾驶的汽车,它大略是这么几个局部。首先是感知局部,汽车须要感知其余的汽车、行人在路上的地位,并且也要预测一下车或者行人往哪挪动,而后计算了一个汽车。第二,它对它本人管制的这些操作有一些模型能够预测,比如说方向盘打了多少度、汽车往哪拐,他须要有模型,这里数据库略微有点不同,待会能够讲一下。
第三点,数据库对于路线其余货色的感知和一些操作模型。这个数据库最终要一个打算阶段,咱们设计的自治数据库架构和主动驾驶汽车有很多类似。
首先,感知局部。咱们感觉数据库首先要去接管和监测收到了哪些工作负载,并且他也要预测将来数据库一段时间内的工作负载是什么样。比如说负载高,负载低等等,因为将来这些负载,就是数据库它要主动优化的指标,咱们叫这个为负载预测。
第二,数据库要进行不同的主动优化操作。比如说建索引,调参数等等。那你还是须要模型去预计你不同操作的开销和收益。因为这是你做决定的根据,这里和汽车不太一样,须要你本人建设一些模型。
第三,如果咱们有了一些可能备选的优化操作,并且咱们也晓得将来的负载状态,咱们最初就要抉择在什么时间段去利用什么样的优化。比如说这个时间段的负载量比拟低,咱们能够在这个时间段内建一个索引。如果你要达到这个指标,你须要一个打算,依据预测和数据库操作开销和收益的模型等操作去主动优化数据库的性能。
对于自治数据库的框架。咱们是集成在 CMU 数据库系统外面,叫做 NoisePage,咱们这个是从头开发的去反对自动化的操作。它既反对这个事务型,也反对剖析型,并且它是 MIT license,兼容 Postgres 接口和 Arrow 存储格局。
行为建模
接下来分享一下怎么给这个自治数据库去建设这些模型——即行为建模。具体来说,用行为模型的指标去预计不同数据库自动化的操作、开销和收益。这个模型输出包含两局部,一部分是预测的将来数据库负载。假如咱们能够预测将来数据库里有什么负载,并且同时也要给这些模型一个可能的操作。比如说建设一个索引,或者是找一个参数,输入这个可能的操作在预测将来负载上的开销和收益。
略微更进一步的阐释为什么这些模型很重要,咱们用一个简略的试验来阐明。假如咱们有一个数据集,但它一开始没有适合的二级索引,但咱们要去假如有自治的操作,而后建一个二级索引,对这个负载进行减速。咱们有两个选项,八个线程或四个线程,咱们试图去减速查问。在这个负载一开始的时候,没有二级索引,它的 查问绝对提早比拟高。而后咱们大略在 50 秒钟的时候去建设索引。在不同的情景当中,尽管说最终查问都被减速了,然而它对数据库性能的影响十分不一样。如果你用八个线程,这个索引实现的特地快,但在这个实现的过程当中他有更大的开销,他对数据库过程中的影响十分大。而四个索引说就是背面,就是说在不同的利用的操作抉择、工夫点,实际上依据不同客户的要求、零碎的要求、零碎的理论状态,而后他最终的抉择都是很不一样的,所以说能精确的预测自动化操作的影响,对自治数据库至关重要。但这外面也有几个挑战。
第一,当初的数据库非常复杂,可能有很多不同的负载。如果你想用一个繁多的机器模型,去包含数据库的各个方面、各个操作等等。这个模型就很容易十分高维,作为后果,这个模型可能须要很多的训练数据去训练,并且可能也不太容易去排除故障,不太容易解释等等。
第二,当初的这些数据库在硬件上,大部分状况下都不是单线程的,很多时候都是多线程并发操作。这种状况下,不同线程上的并发操作相互之间可能会有影响,比方资源竞争等。那就是说这个模型要包含这些可能的操作状况,随着并发竞争维度的回升,它就呈指数级别、至多是组合数级别回升。
第三,很多数据库操作十分费时,怎么高效获取高质量的训练数据很有挑战。如果你获取一个新的数据就曾经花了几个小时,这就很不事实。当然有一些其余的算法对数据库操作、运行状态、执行进行了一些建模。
它的建模形式大略能够分为两种。
第一种叫剖析性模型,次要针对查问的执行,往往针对数据库的其余局部有专家去剖析各个局部的操作个性,不须要任何的训练数据去写各种各样的公式,去刻画操作的行为。但这也有两方面的毛病,一方面须要专家十分理解数据库的每个局部,具体的行为是什么,可能有哪些的输出的变量,操作怎么用一个数学公式去表白,对于专家来说,要花很多工夫能力把这个公式写进去。另一方面,它是比拟难以迁徙的。比如说数据库有一个模块进行了代码更新,进行了替换,那之前写的公式就不论用了,那就要从新再写一个公式。
第二种,机器学习类模型。用一些机器学习的形式去对这个数据库的操作,尤其是对查问的执行进行建模。这个益处是不须要太过于专家的剖析,也不须要数学公式对数据库的操作有十分深的了解,也比拟容易去进行迁徙。但它的问题就是大部分技术模型它首先只关注繁多查问的。然而数据库很多时候有不同的查问,甚至是不同的组成。有的时候执行须要建索引时,有的时候要进行这个日志的写入和收集。这些数据库的不同操作,不同局部之间怎么进行建模,它没有很好解决的。
依据之前的试验后果,这些机器学习类模型往往有另一个问题,在实验室或者开发环境当中,你建设一个模型并且测试好了,模型的准确度很高。然而当你把这个模型部署到不同的数据集上,或者是部署到实际当中,这个模型的准确度,因为训练数据不一样,模型训练数据都会大大降落。
MB2 建模框架
我来介绍一下咱们工作的次要解决形式,咱们提供了 MB2 这样一个为自治数据库进行了建模的框架,它属于两头型(半剖析半学习的建模形式),大略联合了咱们方才说的剖析性模型和机器学习模型的长处。它是一个线下的框架,在本人的开发或者实验室环境当中就能够去做。当你建完这个模型之后,间接去进行部署,这里由几个局部组成。
首先,咱们会有一些特定的 runner(运行器),去对数据库不同局部,就比如说建索引、查问执行等等,有特定的工作负载去测试数据库不同的局部在不同的状况下通过不同的行为去取得很多的训练数据。尽管它们会有不同的运行器去测试,然而咱们有一个对立的数据收集零碎,次要应用线程本地的存储去减速存储,使得数据库能够高效地去收集不同局部的训练数据,而后将收集的数据送到训练核心去测试不同的机器学习模型,最初去建设对数据库的两种模型,一种是咱们叫 operating unit model——针对各个局部的操作单元模型,一种是 interference model ——针对不同的并发操作之间的相互影响。
很重要的一点,我要强调:MB2 是线下的建模框架,可能会略微多一些开销,然而它是和数据库具体的负载和具体数据集什么样是独立的。尽管这个线下模型你须要花一些工夫去训练数据,然而你把它部署在任何一个理论的或者数据集下面。数据集和工作负载自身没有太多的关联性。或者说这些模型尽量的去包含了各种各样的不同的数据集和负载,所以说线上就不须要再确定,但大部分状况下,线上不须要做十分繁琐的操作。
具体来说,这个自治数据库建模的核心思想是用一个合成式的建模形式。意思就是说咱们会去把数据库的各种各样的操作去分解成比拟小的操作单元。对于每一个操作单元,咱们会去特定的收集训练数据,并且去建设模型。益处就是每一个模型它比拟小,不须要很多很多的训练数据,比拟容易去解释,如果出了问题也比拟容易排除故障。如果这个数据库有一个软件的局部进行了更新,那也比拟容易更新这些模型,因为每一个模型都是独立的。如果说数据库的某一个局部结构性的,你只须要把针对这一个局部,就比如说它的索引局部更新了,那你就依据这一个局部的模型,进行从新的训练就能够了,你不须要把所有的这些模型都从新的实验室数据收集和训练。
举一个略微具体的例子,比如说咱们的 NoisePage 零碎,咱们大略把它分成了 20 个根底的操作单元,比如说建哈希表、建索引、序列化日志等等,针对不同的操作单元,咱们叫 input feature(输出特色),不同的操作单元有不同的输出特色,这些输出特色也会包含数据库的不同参数,如果这些参数影响到某一个操作单元,当中也会包含这些参数,然而所有的这些操作单元的模型,它的输入标签都是对立的。这些输入的标签会包含这些操作单元的实现工夫、进行某个操作须要多少 CPU、多少 CPU、IO、多少 memory 等等。最初,如果说数据库要预计某一个自动化操作的开销和收益,它就先把这些自动化操作在具体的负载上,它有各种各样可能的影响都会分解成操作单元,进行别离预测并相加。
具体来说,在咱们这个 NoisePage 的数据库当中,咱们大略是有三种不同类型的操作单元。
第一种是繁多的操作单元。比如说咱们建一个哈希表,或者咱们对某些数据进行一次排序这种简略的操作。
第二种是批处理的操作单元。就是说数据库当中有一些工作,它是分周期的被唤醒而后执行,比如说他们会去写日志,很难预测繁多一次写了多少,写到哪儿。通过这种周期性进行唤醒的工作去预测一段时间之内这些操作带来的开销和影响。
第三种是并发的操作单元。数据库中有一些操作可能会进行多线程执行。比如说去建一个索引,建设索引自身就有多个线程同时实现。在这种状况下,多线程实现之间会有同步的机制,这些同步的机制会产生开销。所以说这些操作单元和相应的操作单元的输出特色当中,要包含这些同步机制的信息、线程、锁等等。
举例来说,咱们建一个哈希表就是数据库中的一个操作单元。一个操作单元咱们去用模型去刻画它有什么样的特色呢?这个哈希表有多少行,每一行总共的数据有多大大小,它的 cardinality estimation 是多少。建设哈希表有一些相干的参数可能会影响这个成果。比如说在咱们的配置零碎外面,它的解释模式、编译模式等等都会影响操作单元的运行状态。
在数据库当中,你须要收集、产生和训练数据去建设这些模型,去解决这个问题能够去利用一些定制的运行器去充沛测试每个操作单元,而后去遍历它各种各样可能的输出特色的状况,并收集训练数据。比如说数据库有 N 个操作单元,相应的就有 N 个运行器,运行器它会执行一些工作负载,但这些都是咱们本人写的合成的负载。它们去遍历各种可能的输出特色。比如说方才这个建设哈希表的操作单元,它的运行去遍历了不同的行,不同的列、不同的列大小、不同的参数等等。这些组合对测试哈希表,在不同状况下测试它的运行成果,而后咱们收集训练数据送到训练的核心,训练核心用一个 cross validation 的形式去遍历各种各样的比拟风行的机器学习模型。比如说线性回归、随机森林、深度神经网络等等,去为每一个操作单元抉择对他来说最好的模型。
在咱们的察看当中,对于大部分操作人员,对咱们数据的体量和特色状况来说,这个 gradient boosting 模型在大部分时候体现最好。
还有一个优化点,在数据库当中很多时候它收集训练数据十分低廉,建一个索引可能就花了几个小时甚至更长的工夫。这种开销是你不太可能接受的。咱们察看到在数据库当中,其实很多咱们规定进去的操作单元有确定的复杂度。比如说建一个哈希表,它的复杂度是 O(N) 的,排序的复杂度是 O(NlogN) 的。
因为它是渐进的复杂度,当这个 N 大到肯定水平的时候,这个操作单元的开销复杂度和 N 的复杂度是成比例关系的。咱们能够把每一个单元输入的标签去除以对应的复杂度,差不多能够失去每一个记录的操作单元的输入标签。
所以说如果咱们用这种形式去进行预测的时候,咱们其实并不需要收集到十分多的数据。因为咱们只有收集到 N 大到一定量级,比如说在咱们察看当中 100 万行的时候,它的输入曾经十分稳固。你只须要再往上给这个标签的数量给它成比例的减少就能够了,这样咱们须要训练的数据量就会大大减小。
给大家展现模型框架的预测后果:首先展现在繁多线程外面的后果,对这个后果咱们去测试了它既在剖析场景下,又在事务场景下的预测成果。咱们对于 MB2 的线下框架,他永远用的对立系列、一次建成的这些操作单元的行为指标模型,只是一套模型,但能够利用在不同的数据集上。
作为一个比拟的 baseline,咱们用的办法叫做 QPPNet,它是之前在数据库畛域进行查问运行预测最好的 baseline,然而这个 QPPNet 就和很多其余的数据库模型一样,它是你在某一个数据集上训练,而后在其余的数据集上测试,问题就是它没有一个系统性的产生训练数据的形式,所以咱们在不同的 workload 下面,选某一个负载去训练这个 QPPNet,并且在其余的负载进行测试。
这是 MB2 和 QPPNet 预测某个查问的执行工夫在不同的数据集上的后果。这里的纵轴代表预测的谬误,就是说这个纵轴越低,这个预测的错误率越低。如果你先去看这些数据集,既训练了 QPPNet,并且在同样的数据集上再进行测试,在这样的数据集上,QPPNet 的准确度和 MB2 相比是类似的,甚至更好。那是因为咱们就是在某个数据集上训练的 QPPNet 的模型,同时咱们又在这个数据集上进行测试,同一个数据集 QPPNet 有很多的模型构造,去捕获训练数据集上具体个性,所以它的预测性比拟好。
然而当你迁徙到不同的数据集上,比如说你在某个数据集上训练 QPPNet,然而你在不同的数据集上测试,这个时候它的预测后果大大不如 MB2。MB2 是同一个模型定位在不同的数据库上,因为 MB2 有一个框架去把这个简单的数据库外面的各种操作解形成繁多独立的操作,并且每一个操作单元收集了足够的数据去建设精确的小模型,它更容易在不同的场景下进行迁徙。这和机器学习,或者数据为核心的人工智能的一些察看是类似的。
对于利用机器学习的场景当中,很多时候除了机器学习优良模型之外,怎么样去系统性的收集高质量的训练数据,这对模型的准确度有十分大的影响的。方才咱们展现的试验,只是在繁多线程的状况下且没有任何并发状况下对某一个查问的执行工夫预测。然而在事实当中,数据库通常是多线程的,在多线程的状况下,数据库的几个、10 个、20 个核都跑满了,此时查问执行工夫可能会成倍缩短,此时用之前的繁多模型合成独立预测进去就不准了,所以须要有一个模型去捕获有很多工作在并发执行的状况下,他们之间的竞争是什么样的,负载十分高的时候怎么对每一个操作台进行影响的。
咱们建设了另外一个烦扰 / 竞争模型(Interference model)去捕获影响,烦扰模型利用的信息恰好就是刚刚操作单元模型的输入。因为每个操作单元的输入,就是每一个操作单元的运行工夫、CPU 耗费、memory 耗费等等,所以咱们就利用这些作为输入。具体一点,依据咱们之前对于负载的预测,在某一个时间段内并发的操作,咱们先用操作单元模型预测资源耗费,而后利用一些统计数据,比如说操作单元总共的资源耗费的工夫负载,或者 50 percentile,90 percentile 等等,作为这个时间段内这些操作单元它可能的影响的负载的刻画,这是它的输出特色。
影响烦扰模型的输入特色,就是在这个时间段内,我有这些操作单元的负载及散布等等,它的输入在均匀状况下,它对每一个查问会造成多大的影响,比如说每个查问慢了一倍,慢了两倍等等,这个相似的咱们之前的对每个操作单元有一些运行去收集数据、训练这个模型。
MB2 模型应用
咱们回顾一下怎么应用整个模型。首先对于咱们预测进去的某一个时间段内的数据库的负载,和某一个咱们要想要进行的自动化的可能优化,咱们先把它拆解成各个不同的小的操作单元。比如说建一个索引,比如说去扫描一些数据,建设哈希表等等,这是在同一个时间段内的。
对于这些操作,咱们先用这个操作单元模型去预测。如果说是他本人的状况下,齐全独立的状况下,他有多少的开销,有多少的工夫等等。咱们就把这些开销略微汇总一下,作为输出数据放到烦扰模型里边,而后去预测在这个简单的状况下,咱们该怎么样对每一个操作的运行工夫进行调整,把它变成了两倍长等等,而后最初把所有的后果加起来,这就是数据库最终的行为。
咱们用一个端到端的试验去展现一下。咱们去测试一个数据库失常的运行状况下,去利用各种各样不同的自动化操作,这个模型能不能对这些操作的开销和益处进行精确的预测。这里咱们首先是用了一个模仿的日夜周期,就是说白天是事务性,早晨是剖析模仿的负载,然而这个工夫就放大了,只有两分钟。白天用 TPCC 模仿,早晨用 TPCH 模仿。很重要的一点就是说咱们关注模型的预测,所以咱们假如将来的负载预测和最初的打算都曾经给定,而后看看咱们这个模型预测的成果。
首先负载分为几个阶段。白天 TPCC 到早晨的 TPCH 再到白天的 TPCC,而后提早也合规范,就是把它放到同一个规格上。在这个开始阶段没有最优的设置,没有最优的索引,所以它的提早相对来说比拟高。而后在 TPCH 阶段,数据库主动扭转了一个查问执行模式的参数操作,MB2 这个模型就很精确地预测了这个操作对数据库可能有什么样的影响。
方才是某一个参数,数据库对于剖析型工作负载有肯定的优化,然而对于事务型工作负载,数据库须要建一个索引。在这个时候,咱们就利用了建设八个索引的操作。在这个操作上,不光是说咱们这个模型精确预测操作之后,对这个数据库有什么样的益处,并且利用这个数据库操作的时候,咱们也预测到了这个操作对这个数据库有什么样的影响,因为资源竞争的关系,他的提早其实在减少。
不仅如此,这个合成式的建模形式还可能去预测具体的某一个数据库的查问变慢或者变快的起因。比如说资源怎么样减少?或者是某一个查问因为这个多维的索引怎么样持续减速?这些具体的对于某一个数据库的各个局部都能进行精确的预测,我感觉最终对一个自治数据库去高效进行自动化操作,有十分多的帮忙。
结语
略微总结一下,咱们认为对于数据库进行了行为建模,结构模型去预测各种数据库的自动化操作的分销和收益,对于建设一个自治数据库,是一个基础性的步骤。咱们明天介绍了一种解构式 / 合成式的对于数据库进行行为建模的形式,尤其是咱们用各个运行器去对每一个数据库的操作单元去收集足够的训练数据,而后去建设精确的模型。
还有一点十分重要,就像在机器学习数据里察看到的,当初很多机器学习的利用都是以数据为核心。数据对机器学习的成果有大大的影响。咱们也察看到很多时候如果是利用机器学习或者人工智能的技术在数据库外面,怎么样零碎、高效的去收集高质量的训练数据,对最终模型的准确度、智能度也是至关重要的。
以上为马林老师上期直播的全副分享实录,心愿大家有所播种!
第三期 Paper Time 由武汉大学计算机学院副教授 王胜为大家带来“开放式时空大数据助力智能公交路线布局”的分享。
本周三晚 19:00
咱们 Paper Time No.3 不见不散
欢送大家微信扫描上方二维码预约报名~