ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenResearch 方法图与架构图绘制指南:用 TikZ 画出可审稿、可维护的论文示意图

OpenResearch 方法图与架构图绘制指南:用 TikZ 画出可审稿、可维护的论文示意图 OpenResearch 方法图与架构图绘制指南用 TikZ 画出可审稿、可维护的论文示意图【免费下载链接】OpenResearchTurn your coding agents into research agents项目地址: https://gitcode.com/GitHub_Trending/op/OpenResearch导读在论文写作中方法图method diagram回答的是一个最根本的问题这个方法是什么——它的 pipeline 是怎样的、架构如何组织、你的贡献点在整个流程中位于何处。本文是 OpenResearchorx-figures技能模块中「方法图与架构图」专项参考agent-skills/orx-figures/references/diagram.md的完整展开面向科研 Agent 与研究人员读完你将掌握如何基于仓库自带的共享 TikZ 脚手架搭建方法图、如何用相对定位排版、如何用「单一强调色 单一流向」突出贡献点、如何规避scale陷阱与外部化陷阱以及如何把成图正确嵌入论文并保证编译通过。TikZ 为什么是方法图的首选在 OpenResearch 的绘图方法论中TikZ 画示意图matplotlib 画数据图这个分工是被严格维持的矢量输出TikZ 天然是矢量PDF不是 PNG 化的画布符合orx-figures模块的「非协商项」——真正矢量、按印刷宽度构建文本由与论文相同的引擎排字图内文字与正文同源字体风格统一能在 git 中 diff审稿人说「把 loss 项挪一下」在 TikZ 里是一行编辑而不是重画一遍图克制引入第二套绘图栈一张用 pgfplots 画的柱状图意味着要为它维护一套独立的绘图体系没有收益。但需要诚实说明文档中的边界TikZ 是推荐而非强制习惯。大多数 ML 论文的示意图确实来自绘图工具导出。文档给出的选择标准是——当图高度偏插画性质时选择绘图工具当图是「方框、箭头、符号」构成的大多数方法图正是如此时选择 TikZ。从共享脚手架开始搭建仓库在 agent-skills/orx-figures/assets/orx-tikz-preamble.tex 中预置了共享 TikZ 前置文件定义了块、数据、箭头、阶段四种样式以及和数据图orx_figstyle.py的 PALETTE完全一致的 Okabe-Ito 调色板保证一张论文里示意图与曲线图对「ours」的颜色认知一致。该路径是相对于本模块SKILL.md的因此用orx skill命令可以从任意目录打印它mkdir -p figs orx skill figures/assets/orx-tikz-preamble.tex figs/method.tex这对应orx skill命令的 resource 打印能力参见 src/commands/skill.rs 中对find_resource的处理按module/path定位捆绑资源并打印到 stdout。工作树中的.tex就地编译所以figs/method.tex会在旁边产出figs/method.pdf直接供\includegraphics使用编译与引擎选择机制详见orx-paper模块agent-skills/orx-paper/SKILL.md。前置文件里定义了哪些样式脚手架 orx-tikz-preamble.tex 中每一个\tikzset样式都有明确语义理解它们是把图画对的前提样式含义关键实现orx每张图的基座统一箭头、线宽、字体font\sffamily\footnotesizeStealth[round,...]箭头线宽 0.5ptnode distance6mm and 14mm横向间距为边上的形状标签留出空间block计算带参数或变换的模块圆角 1ptminimum height6.5mmminimum width15mm居中对齐ours贡献点全图唯一强调色block基础上draworxblue, fillorxblue!7, line width0.7ptmuted必须存在但不是重点的上下文drawblack!30, fillblack!3, textblack!65data张量、数据集、工件而非运算梯形trapezium left angle72, right angle108trapezium stretches bodyflow前向数据流-, drawblack!65backflow梯度、stop-gradient 等非前向路径-, draworxorange, dashed橙色虚线与贡献蓝区分edgelbl边上的形状/损失标注\sffamily\scriptsize, fillwhite白底遮挡穿过它的线stage/stagelbl虚线框起的阶段分组浅灰虚线圆角框 斜体小字标签调色板五个色值orxblue 0072B2、orxorange E69F00、orxgreen 009E73、orxred D55E00、orxpurple CC79A7与 matplotlib 风格模块orx_figstyle.py的 PALETTE 同源这正是「一张论文里示意图和曲线图对 ours 的颜色认知一致」的实现保证。永远使用相对定位方法图必须使用positioning库——rightof encoder、below4mm of loss——绝不使用绝对坐标。理由很实际用绝对坐标画出的图每次某个方框的标签变长整张图就要重排一次而基于相对位置的图会自动 reflow。这正是「审稿后你愿意更新它」与「你不愿意更新它」两种图的区别。前置文件第 13 行已经加载了全部所需库\usetikzlibrary{arrows.meta, positioning, fit, backgrounds, calc, shapes.geometric}positioning提供rightof/belowof语法shapes.geometric提供trapeziumarrows.meta提供Stealthfit提供fit(...)backgrounds提供on background layer。文档特别提醒如果你要把图内联进论文 preamble漏掉这些库任何一个论文就会编译失败。一条强调色一个流向方法图有两个「一眼可读」原则来自 diagram.md 并直接对应脚手架的样式设计贡献点是唯一被强调的元素。其余一切用中性的block或muted样式。一张五个地方都上了色的图等于告诉读者「哪个是新的」毫无信息——强调没有对比就失效。这也是为什么ours样式只有一种蓝色。单一流向要么从左到右要么从上到下。需要折返的箭头梯度、stop-gradient、teacher 信号必须刻意地用不同样式表达——即backflow的橙色虚线——而不是因为布局没排开而顺手折返。同时形状承载类型矩形是计算梯形data是张量和数据集虚线框stage是阶段分组。读者无需文字即可从形状读出图中元素的类型。尺寸与scale陷阱\begin{tikzpicture}[scale0.8]缩放的是坐标不缩放节点文字——于是方框向标签合拢直到碰撞。加transform shape会让文字一起缩放——但那样图内文字就比题注还小恰恰违反了本模块「图内文字不得低于 5pt 下限」的规则。正确做法是直接按印刷宽度构建这张图。如果画出来太宽就缩短标签、把布局改成堆叠、或砍掉一个阶段。不要整体缩小也不要靠width\linewidth去「救」一张画宽了的图——这正是这条规则要阻止的「缩放式救援」。在\includegraphics之前先检查编译出的 PDF 实际宽度。配套的宽度体系在 orx_figstyle.py 中定义COLUMN 3.25双栏论文单栏、TEXT 5.5单栏论文\textwidth、WIDE 6.75双栏论文figure*跨双栏。按目标宽度构建、再用width\linewidth以 1.0 倍插入两者缺一不可。标注边最低成本的阅读性提升在箭头上标注张量形状、损失和维度edgelbl是「最便宜的阅读性提升」能顺着形状走完图的读者不需要读正文就能重构方法。边上的一个$B\times T\times d$可以替代第 3 节里的整整一句话。这对应脚手架里node distance6mm and 14mm的横向间距设计——「宽到足够在边上放一个形状标签」。陷阱清单完整继承文档给出了完整陷阱表逐条落实陷阱修正scale0.7硬塞进版面按目标宽度重建缩短标签绝对坐标\node at (3.4, -1.2)用positioningrightof prev图内放标题节点题注就是标题删掉它每个方框一个颜色贡献点一个强调色其余中性\tikzexternalize、pgfplots外部化、minted不可用——文档以-no-shell-escape编译无理由交叉的箭头重排节点交叉应当有意义图内字体小于题注节点用\footnotesize边标签用\scriptsize不得更低关于-no-shell-escape这是 OpenResearch 编译管线有意强制执行的约束而非文档的随意建议。在 src/local/latex.rs 中无论是latexmk驱动还是直接驱动引擎编译参数都固定带上-no-shell-escapetectonic 分支则不带因为其架构本身不提供 shell escape。这意味着文档是 agent 编写的、以无 shell escape 方式编译的\tikzexternalize、minted、\write18这类依赖 shell escape 的功能在 OpenResearch 环境中天然不可用。完整模板figs/method.tex以脚手架为头部紧跟 picture 本体% ... contents of orx-tikz-preamble.tex above this line ... \begin{document} \begin{tikzpicture}[orx] \node[data] (x) {Batch\\$B\times T$}; \node[block, rightof x] (enc) {Encoder\\$L$ layers}; \node[ours, rightof enc] (mod) {Adaptive\\router}; \node[block, rightof mod] (dec) {Decoder}; \node[data, rightof dec] (yhat) {Logits\\$B\times T\times V$}; \draw[flow] (x) -- node[edgelbl, above] {$B\times T$} (enc); \draw[flow] (enc) -- node[edgelbl, above] {$B\times T\times d$} (mod); \draw[flow] (mod) -- (dec); \draw[flow] (dec) -- (yhat); \node[muted, below6mm of dec] (loss) {Cross-entropy}; \draw[flow] (yhat.south) |- (loss.east); \draw[backflow] (loss.west) -| node[edgelbl, pos0.25, below] {$\nabla$} (mod.south); \begin{scope}[on background layer] \node[stage, fit(enc)(mod)(dec)] (trunk) {}; \end{scope} \node[stagelbl, above1mm of trunk] {trained end-to-end}; \end{tikzpicture} \end{document}对照样式表逐行解读这段模板能看出它把前面所有原则压缩成了一个可复制的最小样例五种节点覆盖全部四种形状语义Batch/Logits是data梯形张量Encoder/Decoder是block矩形计算Adaptive router是ours唯一蓝色强调——这就是贡献点全部相对定位每一个rightof、below6mm of零绝对坐标单一流向主链路自左向右一条线\nabla梯度回路刻意用backflow橙色虚线表达并在pos0.25处标注阶段分组fit(enc)(mod)(dec)在背景层画虚线框stagelbl标注「trained end-to-end」——用虚线框而非颜色来表达分组把「颜色」这个稀缺资源只留给贡献点。按目标宽度构建后与仓库里所有图一样用width\linewidth插入\begin{figure}[t] \centering \includegraphics[width\linewidth]{figs/method.pdf} \caption{The router replaces the fixed gate in the decoder trunk; gradients reach it through the standard cross-entropy path.} \label{fig:method} \end{figure}注意题注的写法与orx-figures模块的「题注即标题」原则一致以加粗的断言短语开头router 替代了固定 gate随后给出信任它所需的细节梯度经标准交叉熵路径到达。figure*仅在双栏论文中需要跨双栏WIDE时使用参见 agent-skills/orx-figures/SKILL.md。内联进论文正文的正确姿势如果想把图直接画在正文里而不是引用外部 PDF需要把以下四块搬进论文 preamble\usepackage{tikz}、\usetikzlibrary{...}行、\definecolor块、\tikzset块然后用\input引入tikzpicture主体。两个硬性要求库不能漏trapeziumshapes.geometric、Stealtharrows.meta、fitfit、on background layerbackgrounds各自来自一个库漏一个论文就编译失败不要把\familydefault带过去无衬线字面是挂在orx、edgelbl、stagelbl这三个样式里的它会随 picture 一起移动、不触碰正文其他部分。一旦你把\familydefault带到论文 preamble整个正文都会变成无衬线——前置文件第 19-20 行注释明确警告了这一点。引擎方面论文默认以 pdfLaTeX 编译需要 XeLaTeX/LuaLaTeX 的文档必须在首行声明% !TeX program lualatex详见 agent-skills/orx-paper/SKILL.md。OpenResearch 的编译器选择逻辑在 src/local/latex.rs 中优先latexmk对 Overleaf 对齐其次直接驱动pdflatex/xelatex/lualatex最后退到tectonic——tectonic 只能替代 XeTeX且编译时同样受无 shell escape 约束。成图前的 Checklist文档以一张可执行清单收尾逐项自检每个节点都用positioning放置无绝对坐标恰好一个强调元素且它就是贡献点单一流向非前向边以专门样式backflow表达边上有益处以形状或数量标注无scale编译出的 PDF 已是目标宽度无标题节点解释由题注承担能编译并且你已经亲眼看过了 PDF。最后一条不是套话orx-paper模块把「不能编译的文档等于什么都没有」定为铁律——TeX 日志第一行以!开头的那条信息就是诊断入口修好源头再重新构建绝不把一个编译不过的文档交出去。与其他绘图参考的关系方法图只是orx-figures六类图之一选型按「图回答什么问题」而非「你想画什么形状」进行agent-skills/orx-figures/SKILL.md指标随训练如何变化 → references/curves.md性能随规模如何变化 → references/scaling.md哪个方法在 benchmark 上胜出 / 哪个消融组件起作用 → references/comparison.md什么与什么此消彼长reward vs KL、质量 vs 成本 → references/pareto.md2D 网格、混淆矩阵、sweep → references/matrix.md方法、架构、pipeline 是什么 → 本文对应的 references/diagram.md本文的模板写入figs/论文目的地若目标是报告或聊天答复则按orx-reports的约定把模板中的脚本与输出路径改到 artifacts 目录下的对应文件夹。无论哪种目的地orx-figures的八条非协商项始终生效按印刷尺寸构建、矢量输出、每个数字来自真实运行orx logs、题注即标题、展示不确定性否则说明没有、坐标轴带单位标注、色盲安全、无衬线且全篇同字面。【免费下载链接】OpenResearchTurn your coding agents into research agents项目地址: https://gitcode.com/GitHub_Trending/op/OpenResearch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表