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 ノートブックにします。セル構造、PEP 723 メタデータ、出力のレンダリング、marimo check、変数名など、marimo ノートブックの一般的な規則については、marimo-notebook スキルを参照してください。
ステップ 1:ユーザーの要望を理解する
何かを取得したり読んだりする前に、短い会話をして作業の範囲を確認します。ユーザーに次のことを尋ねてください。
- 論文のどの部分に最も関心がありますか? 論文には複数の貢献がある場合があり、ユーザーが関心を持っているのはそのうちの1つか2つでしょう。論文全体を実装しないでください。
- 目的は何ですか? 手法を理解したいのか、結果を再現したいのか、自分のデータに適用したいのか、それとも誰かに教えたいのかを尋ねます。これによってノートブックのトーンや詳しさが変わります。
- 特定のデータセットを使いたいですか? 関連する場合は尋ねてください。そうでなければ、データのシミュレーションを提案します。
- PyTorch が必要ですか? 必要な論文もありますが、多くは必要ありません。不明な場合は尋ねてください。依存関係が重いためです。
- どのような背景知識がありますか? 論文は知識のギャップを埋めることを目指しています。ユーザーがすでに知っていることを確認し、ユーザーに合わせたノートブックにします。すでに知っている基礎事項は省き、知らない前提知識は説明してください。
何を作るべきかが明確になってから、次に進んでください。
ステップ 2:論文を取得する
ユーザーが Arxiv/AlphaXiv のリンクを提示した場合、効率的に論文を読むことができます。
alphaxiv.org 経由で論文の内容を取得する方法については、references/fetching-papers.md を参照してください。これにより、生の PDF を読む必要がなくなり、構造化された Markdown を利用できます。
ステップ 3:ノートブックを計画する
論文を読んだ後、コードを書く前にノートブックの構成案をユーザーに提示します。
ノートブックはできるだけ小さく保ってください。 アイデアを伝えるのに、インタラクティブなウィジェットが1つあれば十分な場合もあります。カスタムウィジェットが必要なら、anywidget スキルを検討してください。また、完全な学習ループが必要な場合は、計算負荷の高い処理に marimo-batch スキルを利用することを検討してください。目的は、アイデアを伝えるために必要なコードを最小限にすることです。
典型的な構成は次のとおりです。
| セクション | 目的 | 一般的な要素 |
|---|---|---|
| タイトルと背景 | 読者に概要を伝える | 論文のタイトル、著者、リンクを含む mo.md() |
| 背景知識 | 前提事項を説明する | Markdown と数式 |
| 手法 | 中核となるアルゴリズムを順を追って説明する | コードと Markdown を交互に配置 |
| 実験 | 主な結果を再現する | インタラクティブなウィジェットとプロット |
| 結論 | 要点をまとめる | mo.md() |
すべてのノートブックに全セクションが必要なわけではありません。構成案をユーザーに共有し、コードを書く前に調整してください。
ステップ 4:ノートブックを作成する
marimo-notebook スキルの規則に従って、marimo ノートブックを作成します。
主なガイドライン:
- データセットを決めつけないでください。 ステップ 1 でユーザーが指定したものを使います。指定がなければ、データをシミュレーションします。
- 自己完結型にしてください。 読者が論文全体を読まなくてもノートブックを理解できるようにします。
- 数式には KaTeX を使ってください。
mo.md(r"""$...$""")で重要な数式をレンダリングし、ノートブックの表記を論文に合わせます。記法は論文と一貫させてください。 - 理解に役立つ箇所にインタラクティブ性を加えてください。 ハイパーパラメーター用のスライダー、データセットのバリエーションを選ぶドロップダウン、アブレーション用の切り替えなどは、読者の直感を養うのに役立ちます。
- 説明するだけでなく、実際に見せてください。 段落で説明するより、プロットや表を優先します。
- 実用上可能な場合は、論文の表記に合わせて変数名を付けてください(例:
alpha、X、W)。また、対応する数式番号をコメントに記載してください。
ヒント
- 論文全体を再現しないでください。 ステップ 1 でユーザーが尋ねた内容に焦点を当ててください。
- 見た目を確認しながら進めてください。 すべてを1つのプロットに詰め込むのではなく、データを表示し、モデルの適合を示し、残差を表示する、といった具合に図を段階的に作成します。
- 論文の記法が複雑な場合は、記号と説明を対応付けた Markdown の表を含む、小さな「記法リファレンス」セルを追加してください。
ユーザーがカスタム anywidget を希望する場合は、references/anywidget.md を参照してください。