在Jupyter笔记本中日复一日地工作时,很容易写出杂乱的代码 — 你可能会不按顺序执行单元格,重复执行同一个单元格,编辑或删除单元格,直到获得满意的结果,特别是在生成表格、模型和图表时。然而,这种高度动态和交互式的笔记本使用可能会引入一些问题。我们的同事可能无法通过重新运行我们的笔记本来重现我们的结果,更糟糕的是,我们自己可能会忘记产生之前结果所需的步骤。
避免这个问题的一种方法是在开发过程中不断重新执行整个笔记本,保持笔记本的顺序性。然而,这种方法会打断我们自然的工作流程和思路,降低我们的生产力。因此,更常见的做法是在开发后清理笔记本。这是一个耗时的过程,而且不能免于由删除的单元格和不按顺序执行单元格造成的可重现性问题。
要了解LineaPy如何帮助处理杂乱的笔记本,请查看此处的演示或<a href="https://bit.ly/3SuC4nm"><img src="https://yellow-cdn.veclightyear.com/835a84d5/29fc93fb-b2e0-4801-bf0c-a91aacd5a5d5.svg" alt="在Colab中打开"/></a>。
数据科学通常是一项团队努力,一个人的工作依赖于其他人的结果。例如,构建模型的数据科学家可能会使用其他同事设计的特征。在使用其他人生成的结果时,我们可能会遇到数据质量问题,包括缺失值、可疑数字和难以理解的变量名。当我们遇到这些问题时,我们可能需要检查这些结果是如何产生的。通常,这意味着要追溯用于生成相关结果的代码。在实践中,这可能是一项具有挑战性的任务,因为我们可能不知道是谁产生了这个结果。即使我们知道该问询谁,那个人可能也不记得确切版本的代码存储在哪里,更糟糕的是,可能在没有版本控制的情况下覆盖了代码。此外,该人可能已经离开了组织,没有移交相关知识。在这些情况下,识别任何问题的根源变得极其困难,使得结果不可靠甚至无法使用。
要了解LineaPy如何在这里提供帮助,请查看此处的演示或<a href="https://bit.ly/3fsA9RL"><img src="https://yellow-cdn.veclightyear.com/835a84d5/29fc93fb-b2e0-4801-bf0c-a91aacd5a5d5.svg" alt="在Colab中打开"/></a>。
随着我们的笔记本变得更加成熟,我们可能会像使用管道一样使用它们。例如,我们的笔记本可能会处理最新的数据以更新仪表板,或者预处理数据并将其转储到文件系统中以供下游模型开发使用。为了保持结果的最新状态,我们可能需要定期重新执行这些过程。手动运行笔记本是一个容易出错的脆弱过程,因此我们可能 希望为生产环境设置适当的管道。如果没有相关的工程支持,我们需要清理和重构我们的笔记本代码,以便在编排系统或作业调度器中使用,如cron、Apache Airflow、Argo、Kubeflow、DVC或Ray。当然,这假设我们已经知道这些工具是如何工作的以及如何使用它们 — 如果不知道,我们需要先花时间学习它们!所有这些操作工作都非常耗时,会分散我们作为数据科学家的核心职责。
要了解LineaPy如何在这里提供帮助,请查看此处的演示或<a href="https://bit.ly/3SJewuO"><img src="https://yellow-cdn.veclightyear.com/835a84d5/29fc93fb-b2e0-4801-bf0c-a91aacd5a5d5.svg" alt="在Colab中打开"/></a>。
LineaPy是一个用于捕获、分析和自动化数据科学工作流程的Python包。 从高层次来看,LineaPy跟踪代码执行的顺序,以全面理解代码及其上下文。 这种理解使LineaPy能够提供一套工具,帮助数据科学家更快、更轻松地将工作投入生产,仅需两行代码。
查看本节了解LineaPy可以帮助解决的问题类型。
LineaPy运行在Python>=3.7,<3.11
和IPython>=7.0.0
上。它不附带Jupyter安装,
因此您需要安装一个用于交互式计算。
要安装LineaPy,运行:
pip install lineapy
如果您想直接从源代码运行最新版本的LineaPy,请按照这里的说明进行操作。
LineaPy提供了几个扩展来扩展其核心功能,例如对PostgreSQL或Amazon S3的支持。 在这里了解更多关于这些和其他安装选项的信息。
要在交互式计算环境(如Jupyter Notebook/Lab或IPython)中使用LineaPy,请在会话开始时执行以下命令来加载其扩展:
%load_ext lineapy
请注意:
您必须将此命令作为给定会话中的第一个命令运行。在会话中途执行它 将导致LineaPy的错误行为。
此命令仅为当前会话加载扩展。它不会延续到不同的会话,因此您需要为每个新会话重复执行它。
或者,您可以使用lineapy
命令启动环境,如下所示:
lineapy jupyter notebook
lineapy jupyter lab
lineapy ipython
这将在相应的交互式shell应用程序中自动加载LineaPy扩展, 您无需为每个新会话手动加载它。
注意: 如果您的Jupyter环境有多个内核,请选择lineapy
默认使用的Python 3 (ipykernel)
。
您也可以将LineaPy作为CLI命令或可运行的Python模块使用。要查看可用选项,请运行以下命令:
# 将LineaPy作为CLI命令 lineapy python --help
或
# 将LineaPy作为可运行的Python模块 python -m lineapy --help
一旦安装并加载了LineaPy,您就可以开始使用该软件包了。让我们看一个使用鸢尾花数据集的简单示例,来演示如何使用LineaPy:1) 存储变量的历史,2) 获取其清理后的代码,以及3) 为该变量构建可执行的管道。
以下开发代码将线性回归模型拟合到鸢尾花数据集:
import lineapy import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 加载数据 url = "https://raw.githubusercontent.com/LineaLabs/lineapy/main/examples/tutorials/data/iris.csv" df = pd.read_csv(url) # 将每个物种映射到一种颜色 color_map = {"Setosa": "green", "Versicolor": "blue", "Virginica": "red"} df["variety_color"] = df["variety"].map(color_map) # 按物种绘制花瓣宽度与萼片宽度的散点图 df.plot.scatter("petal.width", "sepal.width", c="variety_color") plt.show() # 创建编码物种的虚拟变量 df["d_versicolor"] = df["variety"].apply(lambda x: 1 if x == "Versicolor" else 0) df["d_virginica"] = df["variety"].apply(lambda x: 1 if x == "Virginica" else 0) # 初始化模型 mod = LinearRegression() # 拟合模型 mod.fit( X=df[["petal.width", "d_versicolor", "d_virginica"]], y=df["sepal.width"], )
假设您对上面的代码感到满意,并决定保存训练好的模型。您可以使用以下代码将模型存储为LineaPy工件:
# 将模型保存为工件 lineapy.save(mod, "iris_model")
LineaPy工件同时封装了值和代码,因此您可以轻松检索模型的代码,如下所示:
# 检索模型工件 artifact = lineapy.get("iris_model") # 查看模型工件的代码 print(artifact.get_code())
打印语句将输出:
import pandas as pd
from sklearn.linear_model import LinearRegression
url = "https://raw.githubusercontent.com/LineaLabs/lineapy/main/examples/tutorials/data/iris.csv"
df = pd.read_csv(url)
color_map = {"Setosa": "green", "Versicolor": "blue", "Virginica": "red"}
df["variety_color"] = df["variety"].map(color_map)
df["d_versicolor"] = df["variety"].apply(lambda x: 1 if x == "Versicolor" else 0)
df["d_virginica"] = df["variety"].apply(lambda x: 1 if x == "Virginica" else 0)
mod = LinearRegression()
mod.fit(
X=df[["petal.width", "d_versicolor", "d_virginica"]],
y=df["sepal.width"],
)
请注意,这些是生成模型所需的最小必要步骤。也就是说,LineaPy已自动清理了原始代码,删除了不影响模型的多余操作(例如绘图)。
假设您被要求定期重新训练模型以考虑源数据的任何更新。您需要设置一个管道来训练模型 — LineaPy使这一过程变得简单,只需一个函数调用:
lineapy.to_pipeline( artifacts=["iris_model"], input_parameters=["url"], # 指定要参数化的变量 pipeline_name="iris_model_pipeline", output_dir="output/", framework="AIRFLOW", )
该命令生成了几个可用于从UI或CLI执行管道的文件。(有关更多详细信息,请查看此教程。)
简而言之,LineaPy自动化了数据科学工作流程中耗时的手动步骤,帮助我们更快、更轻松地将工作投入生产。
LineaPy收集匿名使用数据,以帮助我们的团队改进产品。只报告LineaPy的API调用和CLI命令。我们尽可能去除潜在的敏感信息,绝不会收集用户代码、数据、变量名或堆栈跟踪。
您可以通过设置环境变量来选择退出使用跟踪:
export LINEAPY_DO_NOT_TRACK=true
要了解有关LineaPy的更多信息,请查看项目文档,其中包含许多可供参考的示例。一些关键资源包括:
资源 | 描述 |
---|---|
文档 | 这是我们的知识中心 — 有疑问时,从这里开始! |
概念 | 了解LineaPy的基本概念! |
教程 | 这些笔记本教程将帮助您更好地理解LineaPy的核心功能 |
用例 | 这些领域示例说明了LineaPy如何在实际应用中提供帮助 |
API参考 | 需要更多技术细节?这个参考可能会有帮助! |
贡献 | 想要贡献?这些说明将帮助您开始! |
Slack | 有未解决的问题或疑问?加入我们的社区并提问! |
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工 具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内 容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号