这是第 868 集,我们二月份错过的内容集。欢迎回到超级数据科学播客。我是你的主持人,约翰·克罗恩。这是一集“你可能错过的内容”节目,重点介绍了过去一个月我们在节目中进行的对话的最佳部分。
所以你在……中提到的一件事
从某种程度上专注于像 Tableau 这样的可视化工具的数据分析师过渡到分析工程,你越来越关注 dbt 了,对吧?是的。是的。那么,告诉我们关于 dbt 的信息,为什么公司会使用它,你如何与它互动,它能做什么。是的。所以 dbt 是一种数据构建工具,本质上 dbt
哦,你已经知道了。是的。所以我实际上认为,我确实查了一下,我想是在几个月前,因为我想再次确认,因为我今年参加了 dbt 大会,那次会议非常有趣。而且,因为有人问我,我当时想,好吧,我相信它是数据构建工具的缩写,但我想要再次确认。我想以前是,但现在他们已经改成了 dbt。所以,但我的意思是,它仍然是,是的,但它仍然是数据构建工具。
所以,基本上,如果我们的数据已经存在于我们的数据库中,但它处于原始格式,我们需要以某种方式公开或呈现它,以便我们的利益相关者在可视化工具中使用它,我们会进入,我们会获取它的原始来源,基本上你或多或少是在编写 SQL。所以 dbt 也有
它内部的 Python 类型编码允许你,我想说的是,它允许你对 SQL 进行一些增强。所以你可以用它做一些不同的事情,特别是如果你的代码中有一些冗余内容,它们有不同的函数允许你进行整合以加快速度。嗯,
这真的,真的很好。所以基本上这就是我们日常所做的。我想说的是,一开始我并没有,
从头开始构建模型,但我将添加到已经存在的模型中。添加不同的字段,添加许多业务逻辑,因为这也很重要。我非常喜欢 dbt 的一点是,你可以将你的业务逻辑,你与利益相关者商定的业务逻辑嵌入其中,然后进行记录。这真的是我非常喜欢的一件非常重要的事情。所以 dbt 的工具 dbt docs 有一个文档部分,
允许你进行定义。实际上,他们现在有一个自动化版本,这太棒了。因为我不会撒谎,当你构建一个模型时,特别是从头开始,假设你有
30 个、40 个字段在你的模型中,你最不想做的事情就是构建一个文档,然后写出所有这些东西的所有定义,尤其是在你感觉,例如,如果它说创建日期,你会想,好吧,它是创建日期。我需要吗?但很多时候你可能需要这个定义,因为创建日期并不总是意味着你认为的意思。
所以……听起来好像会有一个生成式 AI 辅助工具出现。是的。听起来,你知道,实际上这是一个很好的用途。在我的生活中,生成式 AI 出现在各种场合。例如,我不知道,你有没有用过或者你是否使用 Whoop 来追踪你的睡眠?所以我有一个 Oura 环,但类似。是的,是的。那么,在 2024 年的生成式 AI 热潮中,Whoop 将其整合到每日……
生成式 AI 指导中,我曾经看过一次,我想,请永远不要再给我看这个了。这只是,你不需要这些东西。就像你已经获得了你需要的所有信息。我不需要这种概括性的,就像,你知道的,它使用关于健身的通用建议,我想也许有些人觉得它有用,但这就像,嗯,确保你一天喝很多水,就像,是的。是的。
是的,这很有趣。我的意思是,我相信我们可以就此偏离主题,但这很有趣,人工智能如此强大,而且非常酷,但有趣的是
但它也不需要在某些事情中无处不在。但特别是对于……哦,对不起,你要说……但是是的,但在 DBT 中,自动为数据文件中所有字段创建文档,这听起来至少可以,你知道,你应该阅读并确保它是准确的。但这为你节省了空白页的问题。是的。那么,现在他们还有一个功能可以识别……
一个字段,我相信它们被称为文档块,你可以在你的初始暂存层模型中定义一个字段。然后你可以在整个血统中引用它,无论该列或字段在你的下游模型中走到哪里,这非常好,因为然后你只需要提高效率,你可以花更多的时间
处理实际模型本身,但我喜欢这个组件。而且我还认为它真的,真的很好,因为它迫使人们
数据团队与你的利益相关者合作,真正达成一致,嘿,这是我们的逻辑,这是我们对这件事的定义。因为你不能指望,特别是如果你想改变团队谈论的内容,比如说,活跃客户意味着什么之类的事情。如果你的数据没有体现这一点,那么用你的对话来进行这种改变将会非常困难。
所以,不仅让你的利益相关者可以参考,而且当有新的工程师加入时,这也很重要。当他们试图了解数据意味着什么以及你的模型的粒度是什么等等时,这无限有帮助。因此,能够使用这样的技术栈真是太棒了。
太棒了。而且,再说一次,它可能会变得有点乏味,特别是,但我的意思是,现在我们有了这个生成过程,它,你知道,根本不需要很长时间,但拥有它仍然非常好,不,这就是我们所做的。就像任何创建的模型一样,例如,一切都需要有定义。所以,基本上这就是我们所做的。然后,你知道,开始逐步构建
当我们获得新数据时,从头开始构建模型,然后将其公开到像 Tableau 或 Sigma 这样的工具中,然后构建仪表板
供我们的团队使用。什么是 Sigma?Sigma 是另一个数据可视化工具。所以它真的很好——所以 Tableau,好吧,我想你可以用几种方式运行它。但基本上,对于 Sigma 来说,它直接位于 Snowflake 之上,并且与之配合得非常好。所以摄取过程被去除了。我们在 Snowflake 中拥有的任何东西,我们都可以在 Sigma 中构建。
而且它真的很好,我想说的是,当我打开 Sigma 时,它肯定看起来有点像 Excel,这让我觉得,哦,我不知道。然后……
然后,特别是因为我觉得我相信很多数据领域的人都能理解这一点,但很多时候你试图让人们摆脱 SQL 或不摆脱 SQL,摆脱 Excel。并非总是如此。有时这是必要的,但在大多数情况下,你希望它得到整合。你希望每个人都在查看相同的数字。因此,当我们谈论一致地做出业务决策时,就会有一致性。
但它很棒,因为我认为它有能力允许从事数据分析的人使用它来进行非常高级的分析和洞察。但就 PM 和其他人进入并非常熟悉 Excel 而言,它很棒。所以他们会说,哦,太好了。
这太棒了。它就像 Excel Plus,并且它还有许多其他功能。因此,就团队的采用而言,这真的很好,这真的很酷。对于数据科学家来说,思考那些可能不太懂技术的人如何采用他们提出的工具非常重要。在第 859 集中,我和 Y Combinator 支持的企业家 Vaibhav Gupta 谈论了有助于防止错误(例如实习生破坏整个生产应用程序)的工具类型。
在这里,Vaibhav 和我讨论了 BAML,他创建的基本但机器学习编程语言,它可以帮助公司保护自己免受善意的错误的影响。所以你是 Boundary 的首席执行官兼联合创始人,Boundary 是 BAML(B-A-M-L)编程语言的创建者。它是一种用于文本生成的表达性语言。所以我们的听众,我们可能有很多听众是调用者。
调用 LLM,为各种目的微调它们,而 BAML 是为他们设计的。那么,告诉我们关于 BAML 的信息,首字母缩写词的含义,以及你为什么决定做这个愚蠢的事情。是的,让我们首先从首字母缩写词开始。BAML 代表基本询问机器学习,但如果你告诉你的老板,你可以说基本上是一种虚构的语言。所以……
但 BAML 的前提实际上来自于关于 Web 开发如何开始的理论。所以当我们都开始编码时,至少对我来说,当我开始编写网站代码时,它都是一堆 PHP 和 HTML 拼凑在一起以使网站工作。然后我记得在 Meta 实习,他们制作了 React。我认为他们制作 React 的部分原因是他们的代码库开始变得难以维护。
想象一下,有一堆字符串连接你的 HTML 语法,现在一个实习生,像我一样,忘记了一个结束 div,现在你的新闻提要坏了。这并不是我们想要编写代码的方式,数十亿美元的企业依赖于实习生正确地关闭字符串。这实际上也不是实习生的错,因为他们怎么能真正阅读一个巨大的块呢?我几乎不读论文。实习生怎么能做到呢?但是像 React 这样的编译器……
实际上可以纠正这些错误。如果你通过创建新的语法将 HTML 和 JavaScript 添加到相同的语法中,这些想法就更容易表达了。现在,在两毫秒内,你会看到一条红色的波浪线,上面写着单元关闭 div 标签。在这个 Web 开发循环中,它重新定义了我们所有人开始思考 Web 开发的方式。与其说是事情会坏掉,我们可以进行状态管理,因为 React 为我们处理了它。
我们可以做一些事情,例如热重载单个组件并让周围的状态持续存在,因为 React 为我们做了这件事。它做得很好,即使它需要学习新东西。我们问,在这个我们都走向的人工智能世界中,我们认为一些事情将会是真实的。首先,每个代码库在以后的每一年中都将比前一年拥有更多的提示。
如果这是真的,我们可能不希望所有这些未关闭的 div 类型的错误永远存在。当你提到提示时,你的意思是像 LLM 提示一样吗?是的,就像 LLM 一样,是的,调用某种 LLM。我认为 LLM 是一个开始,但我认为从长远来看,所有模型都将被使用。对于那些对机器学习一无所知的人来说,模型只会变得越来越容易使用。
所以,是的,我们最近做了一些剧集,例如,人们可以收听第 853 集,我们讨论了将 LLM 更广泛地推广到基础模型,例如视觉模型,在这种模型中,你并不一定需要语言输入或输出。但即使是这种类型的模型,即使是在视觉用例中。
它也可能会有所帮助。如果他们不必编写代码,而是可以使用自然语言提示,那么它可以使调用该视觉模型的人们更容易一些。所以,我 100% 同意你的观点。越来越频繁地,我们调用的模型,无论是大型基础模型还是
包括专门的 LLM 或较小的模型,在其中使用自然语言提示可以非常轻松地获得你想要的东西,甚至可能只是从一个情节中获得。是的,完全正确。我认为我们必须考虑的是,随着这些东西变得越来越普遍,实际上必须随之而来的开发工具。就像 React 必须存在才能出现 Next.js、Tide Trip 和所有其他东西,使我们的生活变得更好一样。
在 Web 开发领域,我们询问在 LLM 和一般人工智能模型的世界中必须存在什么,作为开发人员,而不是作为可能正在生产模型的人,因为这是一个不同的世界,而只是使用模型的人。无论模型变得多么好,在某些时候你都必须编写机器上翻转的位,那就是代码。它必须以一种有意义的方式插入你的代码库。
就像 JavaScript 很糟糕一样,TypeScript 更好,因为我们获得了类型安全性和静态分析
当我们制作 BAML 时,我们想要做一些算法工作来重新定义用户的问题。我们继续讨论技术中的最新工具,我的下一个片段是关于这个主题的。在第 863 集中,我和 Frank Huta 教授谈论了 TabPFN 在科学和医学领域取得的巨大进步。对于那些不了解的人来说,TabPFN 是一个基础模型,用于令人印象深刻地建模表格数据,这是深度学习模型直到现在才难以实现的壮举。
一些著名的 TabPFN 应用的惊人结果已经发表在《自然》和《科学》等领先的同行评审期刊上了。我问 Frank 哪些 TabPFN 应用最让他兴奋,以及听众如何开始将 TabPFN 用于他们自己的用例。是的,非常令人兴奋。从版本一到版本二的所有这些重大更新。正如你提到的,对于版本一来说,TabPFN 的适用性相对有限,但尽管如此,它仍然产生了一些很棒的用例。
其中一个是科学论文。因此,除了《自然》之外,你发表论文的另一份大型通用科学论文是《科学》。所以有这篇论文。我甚至不会试图解释这其中的生物学含义,但我们会将这篇论文包含在节目说明中。它被称为大规模化学蛋白质组学加速配体发现并预测细胞中的配体行为。嗯,
所以我无法真正解释这是什么。它与确定蛋白质结构有关。但关键是,TabPFN 被用作他们在该论文中做出的推论的一部分。我还将在节目说明中提供一个链接到一个名为 AwesomeTabPFN 的 GitHub 存储库,该存储库列出了大约十几个现有的应用程序
TabPFN 跨越健康保险、工厂故障分类。其中有金融应用。其中有一篇关于野火传播的论文,以及一些生物学论文。所以是的,显然有很多不同的应用程序,即使对于 V1 也是如此。我不知道你是否想详细讨论它们,Frank,但我了解
你当然希望更多的人尝试 TabPFN,尤其是在版本二可以处理更多种数据类型、可以处理缺失数据、可以处理异常值以及可以处理更大的数据集之后。所以
所以听众们,如果你有表格数据,你可以前往我们也在节目说明中提供了链接的 TabPFN GitHub 存储库,你可以立即开始使用。是的,太棒了。非常感谢你提到这个很棒的 TabPFN 存储库。我今天才创建它。所以我希望在节目播出时,那里会有超过十几个应用程序。是的,
请随时在你拥有应用程序或用例时,向我们发送便条,或者实际上这是一个你可以通过拉取请求添加你自己的应用程序、添加你自己的论文的存储库,我们将对其进行宣传。此外,如果有一些很酷的应用程序,我们很乐意发布博客文章或转发你的内容等等。我认为我们真的想建立这个
热爱 TabPFN 并在此基础上进行构建的人们的社区。开源社区已经接受了这一点。在《自然》论文发表后的几天内,ShappIQ 上就有一个关于可解释性的存储库,直接将 TabPFN 放入其中。所以是的,看到开源社区的速度真是太令人惊叹了
工作,我非常期待人们还会用它来构建什么。一件很酷的事情,我想提到的科学论文是,是的,我对化学蛋白质组学也不了解,但这很酷。我仍然可以在此工作,因为,好吧,我们有这种非常通用的方法,如果那里有来自化学蛋白质组学的数据,那么我们就可以对其进行微调,并获得对该用例更好的东西。而且
所以我对各种用例的这些事情感到非常兴奋。也已经有一些东西可以预测……藻华!是的,藻类!是的,藻类,我知道,以及藻华……但是是的,对环境有益的事情等等。我认为我对这些类型的应用程序感到非常兴奋。医学方面有很多应用程序
在金融等方面的应用论文并不多,因为,好吧,人们通常不会发表这些类型的应用。但是医学等等,有很多。是的,真的希望很多人能用它来为世界做一些好事。
看到 TabPFN 在相对较短的时间内取得如此巨大的进步令人难以置信。那么,如何建立像这样的成功的科技公司呢?在第 865 集中,我和 Kal Aldubaib 谈论了如何使用他非常成功的公司 Pandata 作为案例来启动和扩展数据科学咨询公司。
让我们谈谈使 Pandata 如此成功的事情。我们已经有了这个让它变得无聊的想法,即让它对数据科学家来说变得无聊,让你的客户能够轻松理解你正在交付的数据科学。扩展成功的数科咨询公司的其他关键是什么?在我第一次创业时,我并没有完全掌握的一件事,那就是产品市场契合度。
任何从事创业领域的人都会听到这个词。对于那些没有从事创业领域的人来说,这意味着你发现了一个痛点,有人愿意花钱来解决。并且有足够多的人在足够大的规模上,你知道如何接触他们,并且你可以持续地交付他们愿意为之付费的东西。而且……
客户用钱投票。我早期发现,因为我是自筹资金的,这意味着我没有筹集任何资金。我唯一的增长来源是当客户愿意为此付费时。所以,当有人说,嘿,这是一个好主意时,这是一回事。当他们愿意签署一张大支票让你解决这个问题时,这是另一回事。然后他们一次又一次地回到你这里来解决同样的问题或类似的问题。
所以产品市场契合度以及倾听人们愿意为之付费的东西是 Pandata 的一个非常重要的部分。我的第一年,我所要做的就是说,“嘿,我们可以做数据科学方面的事情。”我能够获得一些合同,但这是一个旋转窗口。我会与一家企业合作,然后他们会离开。另一家企业会来,这对咨询公司来说是一个非常普遍的故事。可能只有一两家客户留了下来或不断回到我们这里。
我记得和那里的利益相关者进行过一次谈话。我终于鼓起勇气说,我不是想让你质疑这种情况,但你为什么回来?我当时真的试图做一些市场调查并了解情况。事实证明,他们真的很喜欢我们平易近人,对吧?这是我们的核心价值观之一,即避免使用术语,始终直截了当地说话。
然后我们意外地做了一些公式化的事情。我们有一个叫做发现和设计的流程,现在这是一个强制性要求。任何雇用我们做任何工作的人,我都说你必须事先这样做,否则我不会与你合作。对于那些客户,我们意外地做到了。这就是我们花费的时间
30 天,六周,深入研究一个问题,试图找出骨架是否可解?我们如何处理这个问题?未知的未知是什么,这是解决以前从未使用模式匹配算法解决过的问题的一个非常重要的部分,只是为了简化它。而且
所以我试图重现这种魔力。所以我们有一些属性变成了我们的核心价值观。我们有五个核心价值观,我稍后可以谈谈。然后还有这些流程。其中一个流程是发现和设计。现在,有趣的是,我决定,好吧,我现在不再与任何不想这样做的人合作了。我们将收取任意金额的费用。
当时的参与规模为 50,000 美元。那只有区区的 12,000 美元。作为一个第一次创业的人,我真的很紧张,担心会把这个扔掉。但我当时说,嘿,你知道吗?除非你愿意花钱,否则我甚至不想和你合作。
它帮助我剔除了两件事。首先,那些不认真的客户,如果他们不愿意为此付费,他们肯定也不愿意为其余的参与付费。其次,如果他们从哲学上不同意这一步骤的重要性,那么我知道他们很可能会对结果感到持续失望,因为他们并没有完全理解数据科学流程。
所以我从花费大量时间与许多最初似乎对数据科学感兴趣的人交谈开始。然后我得到了不,不,不,不,我的渠道开始枯竭。这是 Pandata 银行账户达到不到一个月生活费的三次之一。我想,这是结束,这可能是最愚蠢的想法。而且
在同一时期,我获得了有史以来参与过的三家最大的客户,其中两家一直是客户,直到 Pandata 退出。大约六年时间。这个过程成为我们能够比大多数小型个体户咨询公司规模大得多的一个部分。对。所以关键是……
在尝试与某人进行咨询的开始阶段,进行为期 30 天的发现设计初始参与,你会说,你知道,进行这项为期 30 天的初始参与将需要 50,000 美元的价位。而且
所以这最初似乎让你陷入危险之中,你的渠道枯竭了,每个人都说不行,但最终它确实导致发现了可靠的长期客户,他们与你合作了六年以上。酷。好吧,所以我将使用这种策略,现在我使用这种策略来吓跑不认真的人。它实际上可以让我节省时间。它可以让我节省时间。然后我找到那些说,
是的,这听起来很棒,我喜欢你对这个问题的思考方式,海里有很多鱼,这完全是关于这种匹配过程,我学到的一堂违反直觉的课程是说不或通过对他人说不来排除他人,它真的让你能够花更多时间在更大的事情、更有价值的事情上,这是我在大多数非常成功的朋友身上经常看到的一种策略,对,对,这很棘手,很难
是的。对规模较小或更具挑战性的项目说不,因为你记得那些你只剩下一个月生活费的时候。哦,你银行账户里剩下的价值。好吧,我想我最好对所有事情都说“是”。但这最终会减慢你的速度。你会有死于一千刀之痛。
所有这些低价值的接触点。当我们对这次收购进行尽职调查时,财务报表中大约有三个点被他们几乎圈了出来。他们说,我们想谈谈这个。
这个和这个。我们不喜欢那样。我说,我也不喜欢那些。对我来说,那些也是非常糟糕的时刻。好了,今天的“你可能错过的内容”节目就到这里。为了确保不会错过我们任何令人兴奋的即将播出的剧集,如果你还没有订阅这个播客,请务必订阅。但最重要的是,我只是希望你会继续收听。直到下次,继续在那里摇滚吧。我期待着很快与你一起再次享受超级数据科学播客。