dot 快速的未来正在您所在的城市举行活动。

加入我们参加 Redis 发布会

什么是 Jupyter?为什么你应该关心它?

新技术来来往往,比季节变化还快。作为一名开发者,有时很难判断哪些工具值得学习和使用,哪些工具将在两个月内就会过时。然而,Jupyter 项目绝对值得您花时间学习。他们已经为开发者创建了近十年的工具。他们的执行委员会和软件指导委员会包括来自 AWS、Netflix 和 Apple 等一流公司的成员。他们每年还表彰杰出贡献者。经典的 Jupyter Notebook 已经融入教育和学习,原因很充分。所以,如果您最近是一名开发者,您可能听说过或甚至使用过 Jupyter Notebook。您可能甚至使用过 JupyterLab 及其提供的先进工具。但如果没有,什么是 Jupyter Notebook 和 JupyterLab?为什么这些工具有用?

那么,它对向量搜索有什么用呢?

首先,如果您有一些想要向量化的数据,并且想要尝试不同的模型,并且想要尝试不同的相似性类型;那么还有什么比使用一个工具更容易地动态更改事物呢?这个工具允许您运行单个单元,而无需重新运行处理、导入或其他您不想更改的内容。凭借这些产品允许的增量开发,您可以在代码中途导入新的库,并逐个单元地尝试它们,而无需投入太多时间和精力。

多年来,Jupyter 项目发布了许多工具,这些工具使增量更改和调整模型变得非常容易。最酷的功能之一是 widget,它实际上允许您使用滑块来调整变量输入,并实时显示对函数的任何图表或输出的更改。

如果您想立即开始使用 Jupyter、Redis 和向量搜索,您可以查看一个 GitHub 上的演示,它可以帮助您入门。

Jupyter 项目

“Jupyter”这个名字是它最初支持的三种编程语言的组合:Julia、Python 和 R。但是,它的范围已扩展到支持多种语言,提供来自 Jupyter 项目的多个内核(在 Notebook 中运行代码的工具)。

Jupyter 已经成为教育环境中的普遍工具,其灵活性和交互性对学生和教育工作者都具有巨大的吸引力。能够向学生展示不同的变量、不同的排序等对单个数据集的影响,只需运行一个单元即可。通过 Jupyter Notebook,文本、代码和可视化的结合可以使教育工作者以交互式且快速适应的方式进行教学。

Jupyter 项目的核心是提供一个交互式计算环境,它可以无缝集成代码、数据和可视化。这个项目不仅仅是关于创建工具;它还是关于培养开放、协作和可重复研究的文化。

Jupyter Notebook

Jupyter Notebook 是 Jupyter 项目的旗舰产品。它是一种开放式文档格式,允许用户创建和共享包含代码、方程式、可视化和叙述文本的文档。Notebook 可通过基于 Web 的界面访问,使其独立于平台,并可轻松地在不同设备之间共享。对于任何开发者来说,这些 Notebook 都是工具箱中必不可少的工具。它们使开发成为一个增量过程,为开发者节省了因代码错误而不得不再次运行整个程序或脚本的挫败感。相反,Jupyter Notebook 可以分段运行代码,在每个段保存状态,因此我们不必每次想要尝试不同内容时都重新加载数据集。虽然数据加载问题也可以通过使用 向量数据库(如 Redis)来解决,但这种逐步运行代码还有很多其他好处。

Jupyter Notebook 被组织成单元,每个单元可以包含代码、文本或多媒体元素。这种结构提供了一种自然的方式,可以将复杂的问题分解成可管理的、模块化的组件。这些单元可以单独运行,也可以按顺序或不按顺序运行,向用户展示每个单元的具体变化。跳过一个单元特别有用,可以用来演示为什么需要某一个步骤,并且使用这种单元结构可以轻松实现。查看每个中间结果可以真正增强学习数据科学的探索性。虽然许多调试器提供逐步执行代码的功能,但仍然很少见的功能是能够回溯时间。但是 Jupyter 允许您做到!您可以更改最后一个单元,并且只需重新运行最后一个单元,您就可以实质上回溯时间(至少就您的程序而言),回到它根本没有运行之前。它不仅仅是最后一个单元,您还可以从 Notebook 的任何地方开始,更改接下来的内容,而无需重新运行前面的单元。仅此一项好处就非常大,并且为我节省了大量调试和更改编程逻辑的时间,因为我能够单独调整循环,而无需运行整个 Python 脚本。

Notebook 的另一个很棒的功能是丰富的可视化功能,支持集成交互式图表、图形和其他视觉元素。这使得数据探索和分析更加直观和有见地。通过集成 Matplotlib、Plotly 和 Seaborn 等库,用户可以直接在 Notebook 环境中生成高质量的可视化。

JupyterLab

虽然 Jupyter Notebook 为交互式计算奠定了基础,但 JupyterLab 代表了下一步演变。JupyterLab 是一个可扩展的环境,它为交互式计算提供灵活而强大的界面。它保留了 Jupyter Notebook 的关键功能,但引入了一个更模块化和可扩展的架构。

JupyterLab 的优势之一在于其可扩展性。用户可以通过安装扩展来定制他们的环境,这些扩展添加了新功能和功能。这种可扩展性促进了创新,使社区能够开发和分享满足特定需求的工具,从增强的文本编辑到高级数据可视化。这些扩展包括但不限于渲染不同文件类型(如 DMN)、使用语言服务器协议进行代码辅助、GUI 风格的 Python 代码生成器,甚至可以将您的 Notebook 转换为包含文本、代码和图像幻灯片的幻灯片的软件包。还有一些网站(如 Binder)可以将 GitHub 存储库转换为一个包含它们的“binder”,使您的整个存储库可以由任何人复制。

What-is-Jupyter-blog

自 Notebook 以来,另一个重大进步是引入了交互式 widget。上面显示的示例来自 Jupyter 项目自己的试用演示。这里,“solve_lorenz”是在上面一个单元中定义的函数,但在这里与交互式 widget 一起使用以显示变量范围。这些滑块可以使用鼠标单击和拖动移动,每次移动滑块时都会更新结果绘图。这种可视化非常酷,这个工具也可能非常有用。与其使用您认为需要的变量来调用函数,不如使用这些滑块以一种有趣且引人入胜的方式来处理输入。可视化更新新参数的速度也表明了 Jupyter 项目背后的计算能力有多强。

总之

Jupyter 项目超越了许多科技趋势的短暂性,它提供了一个不仅促进而且激发创新的平台。它与 Redis 集成用于向量搜索任务,体现了 Jupyter 在不断变化的计算挑战面前适应和蓬勃发展的潜力。对于开发者和数据科学家来说,花时间掌握 Jupyter 并探索它与 Redis 的结合应用,不仅有利,而且对于保持技术领先地位至关重要。