关于 implement-paper
implement-paper 是将研究论文转为交互式 marimo 笔记本的技能。它先根据读者目标确定范围,再指导构建精简实现,并加入说明、可视化和适当交互。
主要功能
- 01明确论文范围与学习目标
- 02获取结构化论文内容
- 03规划聚焦的笔记本大纲
- 04构建带说明和交互的笔记本
- 05用图表和公式呈现方法
适用场景
- 01探索论文的核心算法
- 02复现选定的实验结果
- 03以交互方式讲解论文方法
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ marimo-team/ skills --skill implement-paper安装后在 Claude Code 中输入/implement-paper确认已加载。
附带文件references/anywidget.mdreferences/fetching-papers.md
详细介绍
实现论文
将一篇研究论文转化为交互式 marimo 笔记本。有关 marimo 笔记本的通用约定(单元格结构、PEP 723 元数据、输出渲染、marimo check、变量命名等),请参阅 marimo-notebook 技能。
第 1 步:了解用户的需求
在获取或阅读任何内容之前,先与用户简短交流,明确工作范围。询问用户:
- 论文中哪部分最令你感兴趣? 一篇论文可能有多项贡献,用户可能只关心其中一两项。不要实现整篇论文。
- 目标是什么? 他们是想理解方法、复现结果、将方法应用到自己的数据,还是教给别人?这会影响笔记本的语气和深度。
- 想使用特定数据集吗? 如果相关,请询问。否则,建议模拟数据。
- 是否需要使用 PyTorch? 有些论文需要,很多则不需要。如果不确定,请询问——它是一个重量级依赖。
- 你的背景是什么? 论文旨在填补知识空白——了解用户已经掌握的内容,才能让笔记本贴合他们的水平。跳过他们熟悉的基础知识,解释他们尚不了解的前置知识。
只有在充分了解要构建的内容后,才能继续。
第 2 步:获取论文
如果用户提供了 Arxiv/AlphaXiv 链接,你可以高效地阅读论文。
有关如何通过 alphaxiv.org 获取论文内容,请参阅 references/fetching-papers.md。这样可以避免阅读原始 PDF,并获取结构化 Markdown。
第 3 步:规划笔记本
阅读论文后,在编写代码前先向用户概述笔记本结构。
尽可能精简笔记本。 有时,只需一个交互式控件就能很好地说明核心思想——如果需要自定义控件,可以考虑使用 anywidget 技能。其他时候则需要完整的训练循环——如果是这样,可以考虑使用 marimo-batch 技能处理繁重计算。目标是用尽可能少的代码传达核心思想。
典型结构:
| 章节 | 目的 | 常见元素 |
|---|---|---|
| 标题与背景 | 让读者了解主题 | 使用 mo.md() 展示论文标题、作者和链接 |
| 背景知识 | 介绍前置知识 | Markdown + 公式 |
| 方法 | 分步讲解核心算法 | 代码与 Markdown 交替呈现 |
| 实验 | 复现关键结果 | 交互式控件 + 图表 |
| 结论 | 总结要点 | mo.md() |
并非每本笔记本都需要包含所有章节。先与用户分享大纲,并在编写代码前根据反馈调整。
第 4 步:构建笔记本
遵循 marimo-notebook 技能的约定来创建 marimo 笔记本。
关键指南:
- 切勿假定数据集。 使用用户在第 1 步指定的数据集。如果用户没有指定,就模拟数据。
- 确保内容自包含。 读者无需阅读完整论文,也能理解笔记本。
- 使用 KaTeX 展示公式。 使用
mo.md(r"""$...$""")渲染关键公式,让笔记本沿用论文中的符号。确保符号与论文保持一致。 - 在有助于理解时加入交互功能。 超参数滑块、数据集变体下拉菜单或消融实验开关,都能帮助读者建立直觉。
- 用图表说话,而不只是文字说明。 尽量用图表或表格代替段落说明。
- 在可行的情况下,使用与论文一致的变量名(例如
alpha、X、W),并添加注释说明它们对应的公式编号。
提示
- 不要复现整篇论文。 聚焦于用户在第 1 步提出的需求。
- 通过视觉效果逐步迭代。 逐步构建图表(例如,先展示数据,再展示模型拟合结果,最后展示残差),而不是把所有内容都塞进一张图中。
- 如果论文使用了大量复杂符号,请添加一个简短的“符号参考”单元格,用 Markdown 表格列出符号及其说明。
如果用户想要自定义 anywidget,请参阅 references/anywidget.md。