0Pricing
Learn AI with Python · レッスン

Jupyter Notebook のベストプラクティス

セルの番号付け、コミット前の出力クリア、パラメータ化実行のための papermill を学びます。

「Jupyter Notebook のベストプラクティス」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

ノートブックの両刃の剣

Jupyterノートブックは、コードをセルで実行し、プロットをインラインで確認しながら素早く試行錯誤できるため、探索に最適です。しかし、その柔軟性は、規律を守らなければ、整理されておらず再現できない作業を生み出す原因にもなります。

このレッスンでは、ノートブックを整理され、信頼できる状態に保つための習慣を扱います。

隠れた状態:核心的な問題

セルは任意の順序で実行でき、以前の結果はメモリに残り続けます。この隠れた状態により、ノートブックには正しい出力が表示されていても、最初から実行すると再現できないことがあります。

ノートブックのベストプラクティスのほとんどは、隠れた状態への対策です。

セルを順番に実行する

セルの横に表示される実行番号([1]、[2])は、上から下に向かって増えている必要があります。[7] が [3] より上にあるような順序外の番号は、ノートブックが隠れた状態に依存している危険信号です。

ノートブックは、上から順に読み進めるだけで内容を理解できるように記述します。

カーネルを再起動してすべて実行する

黄金律は、ノートブックを信頼したりコミットしたりする前に、カーネル → 再起動 & すべて実行を行うことです。これによりメモリが消去され、すべてのセルが最初から実行されます。

上から下まで問題なく実行できれば、そのノートブックは再現可能です。途中でエラーになれば、隠れた状態によるバグを発見できたことになります。

セルの役割を絞る

1つのセルに1つの論理的なステップだけを含めると、ノートブックが読みやすくなり、再実行もしやすくなります。10個の処理を行う巨大なセルや、1つの操作を多数の小さすぎるセルに分散させる構成は避けます。

レポートのように各セクションの内容を説明するには、Markdownセルを使用します。

再利用可能なコードをモジュールに移す

ある関数が役立つと分かったら、ノートブックの外にある src/ へ移してインポートします。これにより、ノートブックを簡潔に保ち、コードをテスト可能にし、ノートブック間でコピー&ペーストしたコードが少しずつずれていく問題を防げます。

from src.features.build_features import make_features

X = make_features(df)   # logic lives in a tested module

出力による差分の問題

ノートブックは、セルの出力(テキスト、大きな表、base64画像)を .ipynb JSONの内部に保存します。それらをコミットすると、Gitの差分が大きく煩雑になるうえ、データが漏えいする可能性もあります。

解決策は、コミット前に出力を削除することです。

nbstripoutで出力を削除する

nbstripoutは、ノートブックから出力を自動的に削除します。Gitフィルターとしてインストールすれば、覚えておかなくてもコミットのたびに出力が削除されます。

# pip install nbstripout
nbstripout --install      # adds a git filter for this repo
# now committed notebooks have clean, output-free diffs

papermillでノートブックをパラメータ化する

papermillは、関数を呼び出すように、パラメータを注入してノートブックをプログラムから実行します。セルに parameters というタグを付けると、papermillは実行ごとにその値を上書きします。

# pip install papermill
# papermill analysis.ipynb out.ipynb -p dataset "may.csv" -p seed 42

コードでパラメータ付き実行を行う

Pythonからpapermillを実行して、同じ分析ノートブックをさまざまな入力に対して実行することもできます。これは、実験をまとめて実行するためのすっきりした方法です。

import papermill as pm

for ds in ["jan.csv", "feb.csv", "mar.csv"]:
    pm.execute_notebook(
        "analysis.ipynb",
        f"out_{ds}.ipynb",
        parameters={"dataset": ds, "seed": 42},
    )

ノートブックの整理チェックリスト

ノートブックを共有またはコミットする前に、次を確認します。

  • カーネルを再起動してすべて実行し、問題なく完了する
  • セルが上から下へ順番に実行され、実行番号が増えている
  • 再利用可能なロジックを src/ に移している
  • 出力を削除している(nbstripout)
  • Markdownで内容の流れを説明している

クイックチェック:ノートブックの信頼性を確認する

コミットする前に、ノートブックが再現可能で、隠れた状態によるバグがないことを確認したいとします。

まとめ:ノートブックのベストプラクティス

ノートブックを整理され、再現可能な状態に保つ方法を学びました。

  • 隠れた状態に対処するため、セルを順番に実行する
  • 信頼したりコミットしたりする前に、再起動 & すべて実行を行う
  • 再利用可能なコードを src/ モジュールに移す
  • きれいなGit差分を保つため、nbstripoutで出力を削除する
  • パラメータ付きのノートブックの一括実行には、papermillを使用する

これで、AIプロジェクト構成とGitワークフローのコースは完了です。

よくある質問

「Jupyter Notebook のベストプラクティス」レッスンは無料ですか?

はい。「Jupyter Notebook のベストプラクティス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「Jupyter Notebook のベストプラクティス」で何を学びますか?

セルの番号付け、コミット前の出力クリア、パラメータ化実行のための papermill を学びます。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Jupyter Notebook のベストプラクティス」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. プロフェッショナルな AI プロジェクトのディレクトリ構成
  2. AI プロジェクトのための Git
  3. 再現性:シード、設定、環境
  4. Jupyter Notebook のベストプラクティス
← Learn AI with Pythonに戻る