这是超级数据科学播客第八百三十四期,如果你错过了十月播出的内容。
欢迎回到超级数据科学播客。我是你们的节目主持人,约翰·克罗恩。这是“如果你错过了它”系列播客,重点介绍了过去一个月节目中最佳对话部分。
我的第一个片段来自第八百二十九期节目,与布拉德利·沃伊特克博士(Brad Voytek)对话。布拉德是认知科学副教授。
我问他数据科学如何促进我们对大脑的理解。特别是数据科学,我认为像岛屿这样的东西。我们稍后会谈到这一点。我认为它能够加速许多不同领域的发现,包括神经科学。我的意思是,你真的认为在未来十年中,会出现哪些新兴的数据科学技术或方法,能够加速我们对大脑的理解?
当然?我的意思是,这几乎是理所当然的,它必须并且将会发生。就像说,你认为计算器会加速科学吗?是的。
你认为搜索引擎会……我甚至无法想象没有搜索引擎的科研实验室,对吧?我只是能够快速、轻松地发现信息的速度,对每个人做科学研究的方式都有巨大的影响,对吧?所以谷歌可能是过去一百年来科学转型方面的重要因素之一,对吧,它显著地改变了我们查找和检索信息的方式,这让我们能够继续发展科学、进行更好的研究、更准确、更快。
所以我认为人工智能也会类似,对吧?是的,当前的人工智能版本存在很多问题,例如偏见等等,对吧?但是,你可以看到未来会是什么样子。所以,举一个具体的例子,当我攻读博士学位时,我特别关注的是前额叶皮层中非常局部的脑损伤对大脑中两个相互连接的结构(已知参与高级认知)的影响。
如果有人中风,损伤了这些大脑区域中的一个,会对他们的记忆功能产生什么影响?这就是我在2004年攻读博士学位初期所做的研究。在当时,我相信一定有某个网站,我可以点击大脑中的前额叶皮层图像,然后列出该大脑区域的所有输入和输出。但当时还没有。这仍然不存在。这让我非常沮丧,最终导致了多年后我和妻子一起发表的一项研究项目。这项研究的出发点是,我们希望能够轻松地发现这些大脑区域的输入和输出,而不是像以前那样,需要查阅1970年代的伯克利加州大学档案,阅读大量旧报纸,才能找到这些解剖追踪研究,并从中找出这些大脑区域的输入和输出。
2010年左右,我在斯坦福大学的一个小组会议上,与一些(我相信听众应该熟悉的)人工智能和神经科学领域知名人士一起参加了会议。有人在小组讨论中提出一个问题,我回答说,同行评审的神经科学期刊(例如《自然》)可能包含了大约300万篇已发表且公开索引的神经科学论文,这些论文都存储在国家医学图书馆和生物医学研究同行评审数据库中。如果我们能够利用所有这些知识,我们可能在神经科学领域取得50%的进展。但是,我们人类的能力有限,无法阅读和综合所有这些信息。
其中一位(该领域的巨擘)基本上说,这太愚蠢了,对吧?我非常确定自己是对的。所以,在2010年左右,我和妻子做了一个NLP原型项目,我编写了Python代码来提取所有这些论文摘要中的文本,并分析单词和短语的出现频率,假设在同行评审文献中讨论得越频繁的两个想法,它们之间就越有可能存在联系。因此,非常简单地说,如果一篇论文讨论阿尔茨海默病,那么它往往也会讨论记忆,因为阿尔茨海默病会显著影响记忆。
但它也提到了淀粉样蛋白斑块,这是我们认为阿尔茨海默病发生机制之一。但是,讨论阿尔茨海默病的论文不太可能讨论帕金森病中更常见的症状——进行性运动迟缓。因此,通过分析单词频率和非常简单的NLP原型,我们构建了一个神经科学知识图谱。这项研究于2012年发表。
我们花了2010年和2012年时间才发表这项研究,因为我们希望得到好的评价。我们构建了这个知识图谱,然后在图谱中发现了集群。我们发表了这篇论文,并说:“看,我们可以从自然语言、自由形式的同行评审文本中发现相互关联的话题集群,例如帕金森病与多巴胺(一种神经递质)和黑质(产生运动震颤的多巴胺能神经元)高度相关。”这就像我们通过文本挖掘发现了这些知识。然后,专家们说:“是的,我知道这些知识,作为一名研究神经科学20年的专家,我知道这些知识,但现在数学也知道了,这太令人惊奇了。”但在2010年,人们并没有真正接受这些发现。
现在,我认为我们已经进入了一个时代,可以在我的实验室中做同样的事情,但更复杂,更先进,对吧?我们实际上正在构建一个网站,你可以在上面点击前额叶皮层或任何大脑区域,该网站基于我们已知的公开人类大脑成像数据集。例如,艾伦脑研究所拥有人类大脑基因表达数据库。
大约有2万多种基因在人类大脑中差异表达。因此,我们提取了这些数据集,然后提取了基于正电子发射断层扫描的神经递质密度数据集。这些工作已经由梅奥诊所的合作者完成,他们创建了一个名为“神经图谱”的开源Python包。我认为罗斯、马克·凯洛和贾斯汀·汉森是该论文的第一作者,该论文在几年前发表在《神经科学》杂志上,他们收集了所有这些公开可用数据。
因此,我们正在做的就是构建一个大脑图谱,它包含所有这些数据集,以便你可以在浏览器中点击任意大脑区域,并获得我们已知的所有关于该大脑区域的信息。下一步,我们正在尝试与(目前尚未正式合作)的行业合作伙伴一起构建一个功能,在浏览器中添加一个大型语言模型聊天窗口,你可以在其中说“显示海马体”,然后人工智能会显示海马体,并在动态大脑视图中突出显示它。然后你可以问:“海马体中表达最强的10个基因是什么?”,它会显示这些基因,以及它们与其他大脑区域的差异。
然后你可以问:“主要的输入和输出是什么?”,它会显示主要的输入和输出。我们正在尝试构建一个由大型语言模型支持的大脑发现引擎,该引擎经过这些同行评审论文和开放数据集的训练,以便你能够进行更好的神经科学发现,从而打破神经科学、神经遗传学等不同领域的界限,我们不知道如何思考神经解剖学,对吧?我们正在尝试打破这些界限,将所有这些数据集整合到一个易于理解的平台中。所以,你知道,这可能还需要几年时间。但我们现在正在进行原型设计。
布拉德谈到技术如何帮助我们收集和整理关于大脑的知识,这非常有趣。我很期待他的实验室和大脑可视化工具准备好后进行体验。下一个片段来自第八百二十三期节目,与纳塔莉·蒙比奥特(Natalie Monbiot)对话,她是基因工作室的策略主管。
我们谈论了创建我们自己的数字化身,以帮助扩展我们在线公众形象。你是我们的策略主管,我们致力于开发逼真的视频化身或人工智能人类模型。你称它们为虚拟人类或虚拟双胞胎,并推广了虚拟人类经济,我们稍后会讨论。所以,这项技术提供了哪些价值?虚拟人类有哪些用途?以及如何创造虚拟人类经济?
首先,虚拟人类不应该取代真实人类。我认为我们刚刚提出的问题的前提表明,虚拟人类和在内容中使用人工智能化身已经取得了成功,并且应该继续部署在人类不必要参与的领域。也就是说,让我们从我们找到产品市场契合度的领域开始。
核电站网站。
是的,或者学习和发展,企业组织,人们对这类内容感到厌倦,必须阅读这些内容。人们需要学习从安全隐患到合规性等各种知识。
这类内容的预算很大。它不是盈利性的,但很无聊。它通常以PDF格式存在,对吧?所以,人工智能化身和生成的视频内容可以发挥作用。
所以,你可以做的是,你可以把PDF文件转换成引人入胜的演示视频,使用平台上可选择的各种人工智能化身,并使用不同的模板,让它们看起来像真人。你已经投入了大量精力在视频编辑上,你可以立即提升你的内容。这是一个非常基本的领域,不需要太多。
在过去几年中,它取得了巨大的产品市场契合度。然后,我认为下一个领域是,随着人工智能在社会和文化中变得越来越普遍,至少在ChatGPT出现之后,我们看到了这项技术的更多用途。例如,我们的客户之一,一个名为Critical Brand的品牌,在其亚马逊产品页面上使用人工智能化身来解释婴儿配方奶粉产品。
所以,这仍然是一个人类不需要参与的领域,但这些产品的说明文字不容易理解,而且很重要。年轻的父母需要了解这些信息。所以,这些说明文字被转换成这些友好的、引人入胜的人工智能化身视频,以一种更容易理解的方式解释产品。
今天可以做到吗?我知道这可以做到,而且根据你描述的播客内容,这似乎是可能或正在开发中的,我知道这是可能的。但是,在亚马逊产品页面上解释产品,亚马逊购物者可以提问并获得回应吗?
目前可以吗?在亚马逊的案例中,你可以通过让产品页面支持视频来做到这一点。所以,静态图像和视频。所以,在这种情况下,你可以有一系列视频来回答不同的问题。
是的,我认为我们现在可以与人工智能化身进行对话。但实时对话的视觉质量不会像预先渲染的视频化身那样好。所以,存在一些权衡,但我们正在接近一个可以进行逼真实时对话的阶段,感觉就像真人一样。但这需要时间。
我们谈到了学习和发展培训,你谈到了解释产品说明。所以,现在我认为你将要谈论的是……
虚拟人类行动。是的,我认为现在,在人工智能的时代,我们看到思想领袖以一种实现其愿景的方式使用这项技术,即以人们能理解的方式传播他们的观点。所以,我们一直在尝试使用人工智能双胞胎来帮助他传播他的思想。
他还将演讲翻译成十多种语言,以便他能够与世界各地的人们沟通。自那以后,我们学到了很多东西。这项合作仍在继续。但是,我们看到的是,那些拥有清晰想法、观点和自我形象的人,可以通过这项技术获得很多好处。
而且,人们也开始习惯于克隆自己,对吧?所以,这有点像一个转折点。我一直的愿景是,每个人都拥有一个LinkedIn个人资料,并拥有一个可以代表他们进行沟通、提高效率和增强技能的人工智能化身。我认为我们现在正处于这个转折点。
所以,更现实的AI模型,人们会对AI更友善,更容易接受AI作为沟通媒介。此外,思想领袖现在也看到了使用这项技术来实现其品牌建设目标的好处,这涉及到虚拟人类经济,你可以利用虚拟人类来帮助你完成任何想要做的事情。在某些情况下,我们谈论的是一些知名人士利用虚拟双胞胎来扩展和内容,这只是一方面,但你也可以用它来创造产品X。我们实际上已经看到,思想领袖可以通过AI头像在不同的平台上获得收入。
例如,我们有未来学家Krafft,他的AI双胞胎成为了一个名为Finance Media的新闻平台的AI回应者,这是一个百分百数字化的平台。AI首先使用AI头像进行演示,这是一种全新的交易方式。
能够扩展自己,然后从你的AI双胞胎身上赚钱,这非常令人着迷。所以,这就是我所说的虚拟人类经济,我们可以创建AI代理人,并以各种方式为我们工作。当我从一个物理AI头像(我们数字形象的体现)的角度思考时,它同样可以是你所做的工作、你的著作、你的思维方式和你的专业知识。因为我了解你,所以你可以看到它在娱乐和网红领域是如何运作的,他们已经利用自己的资产来进行交易。
但是对于白领来说,情况又是如何呢?我认为我们将会看到平台能够让人们复制他们的专业知识,并以更低的价格提供他们的专业知识,比普通情况下能提供的要低,如果你需要那个时间,并且让那些可能负担不起的人也能接触到这种专业知识。或者,想象一下,我所希望的,你只需要一个合同来审查。
你不需要花数千美元,花费数周时间来完成这些事情,而是可以根据需要授权访问这些专业知识,这很有趣。我也可以成为这些专家的潜在客户生成器。所以,如果你喜欢你看到的,喜欢我专业知识的少量试用,那么可能会有一个更深入的项目,然后我们可以亲自参与。
我们继续讨论AI商业应用的潜力,与Lightning AI首席技术官Luca Antiga在第831集的访谈中,他解释了AI如何对我们的专业形象产生影响,并展望未来。AI无疑正在改变开发人员和数据科学家的工作方式。你认为开发人员和数据科学家需要掌握哪些新技能和知识才能在这个AI世界中保持相关性?
是的,这很有趣,因为我听到很多人都在使用语言模型,我也在使用,可能不是大量的使用,这取决于我正在做的事情。我们可能已经找到了与AI协同工作的秘诀,但同时,对于更繁琐的任务,它非常棒。对于复杂的事情,它也很棒,但你需要找到你的维度,你需要把它当作一个反弹想法的工具。当我有想法,甚至有一些数学理论支持时,它就能帮助我,我可能会在谷歌上查找论文。
有时,语言模型(如果知道如何反弹想法)可以帮助你接近你想要的目标。你需要掌握的技能,有时我是在后端开发,我看到很多事情如果能委托给别人会更容易,而这个人可以是语言模型,因为这些任务非常可预测和重复。当然,你可以使用库来完成这些事情,但是当出现问题时,会有很多层需要处理。
也许从库的角度来看,保持简单更容易,并感受到你和愿意投入时间以及需要完成的任务之间的差距。我认为将来你只需要编写一个函数或调用一个函数,这个函数在你调用它时才存在。或者你会以多种方式获得回报。但毫无疑问,你需要从上到下整合所有内容,在这个重复性的领域中,某些层可能会再次被委托。
我认为我们还没有到可以声明软件开发将被淘汰的地步。我认为这更像是个人自动化越来越接近,然后软件开发将如何演变。
当然,如果你想成为一个超级专家,精通语言模型,那很好。但这可能不是未来的发展方向,尽管仍然会有需求,但数量会减少。
我将在另一个视频中谈到,当我第一次与HyperCard互动时,它让我想起了我过去使用过的东西。
是的,HyperCard。
HyperCard是由一位受海洋影响的人创造的。但它实际上是苹果公司在MacOS经典时代推出的一款产品。我不确定它是否是一种更轻松的方式来与计算机交互,但我记得它不是试图让那些没有编程经验的人也能进行自动化、编程和构建系统。它有一个名为HyperCard Script的脚本语言,从语法角度来看,它类似于英语。问题在于语法不是问题。
问题在于,如果你需要编写for循环,你的思维方式必须能够理解for循环的作用,并跟踪简单的事情。所以,你可以用分号或其他方式来编写它,或者用英语来编写它,但最终结果并不重要。我试图从语法和可访问性的角度解决这个问题,但它并没有真正解决问题,即如何用自然语言表达我的需求。
当然,技术不允许用自然语言表达我的需求,因为这在当时被认为是科幻电影中的内容。但它的全部意义在于,我可以让那些没有科学背景的人也能创建自己的东西,让自己的想法变成现实,因为他们需要解决一个非常具体的问题,并且希望以适合他们自身的方式来解决这个问题。
我认为我们已经到了技术可以实现这一目标的阶段。我认为最让我兴奋的是,能够实现自动化,能够用意图而不是步骤来表达算法。
所以,我认为是的,我认为这是未来开发可能的样子。这将变得更容易访问,所以我可以直接使用它,这在某种程度上已经部分实现了,但它只是非常……你将与代理人合作,然后将会有另一组人深入研究并使用语言模型来帮助他们更快地思考并获得结果。这很好。
是的。所以,总而言之,你描述的是,通过通用AI,我们今天已经有一些个人自动化,你可以委托一些软件开发或数据科学任务。随着时间的推移,这将变得更加可靠和高效。
但是,至少在可预见的未来,软件开发人员和数据科学家的角色不会消失。只是会有越来越多的自动化可以轻松启动。所以,它提供了更多的可访问性。这意味着你不需要精通所有正在开发的编程语言。
因此,在这种环境中,比编程语言更重要的技能可能是与团队进行协作,了解产品和业务需求,以及提出能够真正推动产品或组织发展的解决方案,以及围绕架构和系统工作原理的原则。所以,它会让你在堆栈中提升,你不需要那么担心底层编码。作为开发人员或数据科学家,你将思考更高层次的问题,可能更接近产品。
是的,这是真的。我同意。尽管最后,就像区块链一样,你需要了解系统中的底层才能准确地了解你想要的东西。我们还没有达到最终系统能够为你构建架构的程度,但它会帮助你更快地迭代架构。我认为目前还没有任何系统能够完全取代整个堆栈,你仍然需要成为全栈开发人员,但由于你不需要掌握所有知识就能达到可接受的速度,所以成为全栈开发人员实际上更容易。
可访问性也与Chat Sanderson关于数据契约的工作有关。正如在第825集中提到的那样,当我们处理涉及数据科学家的项目时,我们总是需要考虑其他用户如何解释我们的数据。这就是为什么Chat认为数据契约如此重要,以及为什么他正在阅读一本关于它的书。
你是Gable的数据契约平台的首席执行官,正在撰写一本关于数据契约的权威指南,与我们领域最负盛名的技术出版商合作。你能谈谈数据契约吗?
你的书将它们作为解决组织面临的持续数据质量和数据治理问题的一种解决方案。但是坦率地说,当我第一次看到它时,我并没有听说过太多关于它的内容。这是你的专业领域。我当时在想Web3或区块链,这听起来像某种合同,但我从未将其与任何事情联系起来。
没错。在过去的十年或十五年里,一个主要问题显现出来,尤其是在云计算时代,公司存储大量数据的首要场所是,在旧时代,数据生产者和数据消费者之间联系紧密,并且有一个更集中的团队负责数据架构,以及哪些数据可以被数据科学家、数据工程师或分析师使用。
他们花费大量时间和精力来构建一个高度可用且语义上表示良好的数据模型。但是现在,由于互联网和云计算,来自数百个不同来源的数据都在涌入。当事情发生变化时,这会给任何依赖这些数据(模型、报告、仪表板等)的人带来很多问题。
因此,数据契约开始采用与软件工程师使用应用程序(实际上是服务契约)相似的术语和技术。工程师说:“我的应用程序会产生这些内容。”
你可以预期它不会改变。这里有一些关于该服务的隔离,你可以相信它始终会有一个特定的延迟和可用性水平。我们正在采用这种方法并将其应用于数据。
数据,对吧?所以,这类似于软件工程师的概念,即……
服务契约。
是的,是的,所以你正在从工程领域获取这些想法,并将它们应用于数据库。
当然,数据与应用程序不同,你需要考虑在特定时间点有多少记录正在被添加。如果一个团队总是期望每小时有 1000 个事件,而某一小时只有 1 或 2 个事件,那肯定是一个大问题。
模式非常重要,如果你突然删除或添加一个新列,这相当于对先前列的增量版本。如果更改了数据的语义含义,那将是一个非常大的问题。
如果我作为生产者定义它为公里,然后将其更改为英里,这将导致问题。所以,与应用程序服务类似,我们也从生产者那里获得明确的期望定义。我们将把这种方法应用于数据生产者,而不仅仅是软件工程师。
非常棒。听起来非常有价值。在即将出版的书的第二章中,你讨论了质量不仅仅是拥有正确数据,而是理解在不同正确性水平上实现数据运营的权衡。组织如何在数据质量和数据交付速度之间取得平衡?
这是一个非常好的问题。我认为我对数据质量的定义与其他人在软件世界中的定义略有不同。在软件世界中,人们认为质量是确定性的,当我编写一个功能或构建一个应用程序时,我有一组应用程序要求。
如果软件不再满足这些要求,那就是我们所说的错误,会造成质量问题。但在数据领域,数据生产者可能会以某种方式更改数据输入或收集数据,这对于他们的用例来说是完全合理的。例如,我有一个名为“时间戳”的列,目前以本地时间记录。
然后,我作为工程师决定将其更改为UTC格式。完全没问题。这可能是你应该做的。但是,如果我下游的某个人期望看到本地时间,他们将会遇到数据质量问题。因此,我的观点是,数据质量实际上是数据生产者和数据消费者之间预期管理不善的结果。数据契约的功能在于帮助这两方更好地相互协作,更好地一起工作,而不是阻止变化的发生。
当你刚才提到数据生产者和数据消费者时,通常指的是内部组织还是外部组织?或者两者都适用?
完全正确。我们的生产者实际上是指任何以某种方式对数据进行独特转换的人,这可能意味着数据本身的创建。这可能是内部软件工程师,他正在创建从前端(例如用户点击网页上的按钮)接收的事件;也可能是拥有数据库的DBA;也可能是将所有这些数据聚合在一起并读取银、铜、金数据模型的数据工程师;也可能是将数据聚合到训练集中,最终供公司内的另一位数据科学家使用的数据科学家;也可能是像Salesforce(CRM)或SAP(ERP)这样的工具;或者可能是公司外部的人,例如提供API或NFT服务的公司。无论如何,问题都是一样的。
你能为我们分解一下吗?现在我们一直在谈论数据契约,我有点明白了它的用处,但是你能为我分解一下吗?它们是什么样的?如何共享?以及如何接收?
如何阅读?是的。数据契约与服务契约略有不同,后者拥有像开放API标准这样的东西。在数据契约的世界里,它更多地关注于拥有一个一致的抽象,然后能够强制执行或监控该抽象在创建或移动数据的不同技术中的应用。
我更喜欢使用像YAML或JSON这样的东西来描述我的契约,它包含各种组件。你可能会列出模式、数据所有者、SA、正在定义或被契约引用的实际数据资产、任何数据质量规则、PI规则等等。然后,目标是将所有这些约束转换为监控和检查数据本身在系统之间流动时的行为,甚至可能在数据被生产或部署之前。但是,在那些将数据契约作为协作页面、Excel电子表格等工具使用的团队中,我认为这对于生产者掌控数据资产来说是一个很好的第一步。
太棒了。是的,克里斯,很清楚。让我们谈谈数据可靠性。我们已经谈论了数据正确性,它与可靠性有关。你认为数据的价值取决于它的可靠性。那么数据契约如何建立数据生产者和消费者之间的信任?如果信任已经丢失,数据契约在重建信任方面扮演什么角色?
我认为信任包含几个组成部分。信任的一个组成部分是理解,另一个组成部分是满足一致的预期。当我说理解时,我的意思是,如果我理解了数据源或数据集实际上代表什么,我更有可能信任它。例如,如果一个表被称为“客户订单”,
这是否意味着通过我们的网站、应用程序或客户服务热线下达的客户订单?它是否仅指特定类型的客户或特定类型的订单?因此,我对该数据资产了解得越多,我就越能信任它。然后,信任的第二个部分是设定预期。
随着时间的推移,该数据集会发生什么变化?它每月都会改变吗?我是否知道它何时会发生变化?我是否知道变化的背景,以便调整我的训练数据?或者,我认为在现实生活中也是如此,对吧?如果有人对你说:“约翰,我稍后会去你家,但由于交通,我可能要晚30到45分钟。”
你的反应会与有人只是迟到45分钟,而没有告诉你,只是直接出现的情况大相径庭。我认为这就是信任的来源。数据契约的重点在于引导预期,并帮助人们理解数据实际含义以及如何使用它。
我从这个精彩的访谈月里最喜欢的片段之一来自第827集,与里奇·文克(Richie Vink)的访谈。他是Polar Incorporated的首席执行官兼联合创始人,他非常适合回答我们听众关于使用流行的Pandas库进行数据帧操作的所有问题。我们进行了关于Python开源库、令人难以置信的功能以及用户可以期待什么的精彩对话。里奇,秘诀是什么?我想这并不秘密,因为你已经写过博客,解释了Pandas如此快且内存效率更高的秘密,相对于其他关系型数据处理框架。
有很多方法可以做到这一点。实际上,关系型数据处理已经存在很长时间了,数据库已经做了几十年了。它就像我们、Snowflake等。所有这些数据库都存在,并且具有不同的性能,这些不同的性能源于各种原因。
例如,如果你查看一个单线程,它只面向行,这对于事务处理非常有用。事务数据处理是指当你加载数据时,当你拥有数据库并使用它时,当你进行事务处理时,例如购买产品,你更新数据库,然后需要检查该事务是否成功,否则你需要回滚。这就是数据库的应用。
另一个是分析数据处理,这就是Polar或Snowflake发挥作用的地方。在这种情况下,以列为单位处理数据的方式要快得多。
这与我们也一样。它们基于NumPy,但存在所有你需要处理的问题,例如多处理或多线程并行编程。我的笔记本电脑有16个核心可用。我想使用它们。如果你只使用一个核心来执行昂贵的操作(例如Pandas或NumPy),那么这些资源就浪费了。
另一个是Pandas更接近于NumPy,它旨在用于数值数据分析。它很棒,但是当你处理字符串数据时,早期版本中没有真正好的解决方案。如果你谈论其他数据类型,例如列表和字典,以及任意类型,Pandas实际上放弃了,因为它只是使用Python对象类型,这意味着“我不知道该如何处理它”。
我们让Python解释器自己决定如何处理它。从这个意义上说,Polar是建立在Pandas之上的,但它从未真正旨在构建像数据库这样的数据处理工具。它从头开始编写,用Rust编写,我们控制着每个性能关键的数据结构。
通过这种控制,我们可以拥有非常有效的缓存行为、非常有效的资源分配以及对内存的非常有效的控制。这是最重要的一部分,因为很多计算机资源都由内存控制。
然后,我认为第三点非常重要,我们还使用了优化。因此,我们实际上做了不同的事情。如果你查看数据库,它可能非常快,因为性能和编写代码的方式,以及执行计算的内核的方式。但是,优化也会确保你只执行必要的计算。
这与C编译器非常相似。如果你编写C代码,你可以确信编译器永远不会让计算机执行你没有写的东西。
中间会有一个编译器,它会尽力证明某些计算不需要执行。这与数据处理非常相似。如果你不需要加载列,这将节省I/O操作。
这将节省所有读取和定位时间。所以这可以节省很多工作。
这就是今天的内容。如果你错过了本期节目,请确保订阅我们的播客,这样你就可以不错过任何精彩的后续节目。最重要的是,我希望你继续收听,直到下次节目,继续保持动力,期待很快再次与你分享SuperDataScience播客。