0Pricing
Learn AI with Python · レッスン

プロフェッショナルな AI プロジェクトのディレクトリ構成

data/、notebooks/、src/、models/、tests/ の構成と cookiecutter-data-science パターンを扱います。

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

構成が重要な理由

final.ipynb、final2.ipynb、really_final.ipynbという名前のノートブックを積み重ねるだけでは、AIプロジェクトはいずれ破綻します。一貫したディレクトリ構成にすると、プロジェクトが読みやすく、再現可能になり、共同作業もしやすくなります。

このレッスンでは、広く使われているCookiecutter Data Scienceの構成を扱います。

dataフォルダー

入力データが上書きされないように、処理段階ごとにデータを分けます。

  • data/raw/ — 元の変更されないソースデータ
  • data/processed/ — クリーニング済みでモデルに利用できるデータ
  • data/interim/ — 中間的な変換結果

data/rawは読み取り専用として扱います。そこから他のすべてを常に再生成できるようにしてください。

rawデータを変更しない理由

クリーニングのバグによってデータの唯一のコピーが壊れると、プロジェクトは立ち行かなくなります。data/rawを変更せずに保てば、パイプラインを再実行することで、処理済みファイルをすべて再現できます。

処理済みの出力は使い捨てにできますが、rawデータは決して変更してはいけません。

notebooksフォルダー

notebooks/には、探索やレポート作成に使うノートブックを格納します。一般的な慣例として、処理段階の番号と作成者のイニシャルを付けます。たとえば 1.0-mk-eda.ipynb のようにします。

ノートブックは探索用です。再利用するロジックは src/ に移してください。

srcパッケージ

src/には、インポート可能なPythonコードを責務ごとに分けて格納します。

  • src/data/ — データの読み込みと処理のスクリプト
  • src/features/ — 特徴量エンジニアリング
  • src/models/ — 学習と予測のコード
  • src/visualization/ — プロットとレポート

src/featuresとsrc/models

特徴量エンジニアリングとモデリングを別のモジュールに分けると、多くのメリットがあります。特徴量のコードを単体テストでき、複数のノートブックで再利用でき、データ準備を書き直さずにモデルを入れ替えられます。

from src.features.build_features import make_features
from src.models.train import train_model

X = make_features(df)
model = train_model(X, y)

modelsフォルダー

models/には、学習済みのシリアライズ済みアーティファクト(例:model.pkl、model.joblib)を保存します。これらはソースコードではなく、出力です。

通常、大きなモデルファイルはGitに入れるべきではありません。代わりに、DVCやオブジェクトストレージで管理します(次のレッスンで扱います)。

reportsフォルダー

reports/には、人が読むために生成した出力を格納します。reports/figures/にはプロットを置き、プロジェクトのルートにはレポート文書を置きます。これらはコードから生成するため、再生成できます。

設定ファイルと環境ファイル

プロジェクトレベルのファイルを追加して、構成を整えます。

  • requirements.txtまたはenvironment.yml — 依存関係
  • config.yaml — ハイパーパラメーターとパス
  • README.md — プロジェクトの概要と実行方法
  • .gitignore — Gitが無視する対象

完全な構成

これらをまとめると、整理されたAIプロジェクトは次のようになります。

project/
  data/
    raw/
    interim/
    processed/
  notebooks/
  src/
    data/
    features/
    models/
    visualization/
  models/
  reports/
    figures/
  config.yaml
  requirements.txt
  README.md

Cookiecutterで構成を生成する

この構成を毎回手作業で作る必要はありません。cookiecutter-data-scienceテンプレートを使えば、1つのコマンドで構成全体をひな形として生成できます。

# pip install cookiecutter
# cookiecutter -c v1 https://github.com/drivendata/cookiecutter-data-science
# Answer a few prompts -> full project tree created

クイックチェック:rawデータはどこに置くか

データ提供元から元のCSVファイルをダウンロードしたとします。

振り返り:プロジェクト構成

プロフェッショナルなAIプロジェクトの構成を学びました。

  • data/raw(変更不可)と、処理段階ごとのdata/processed
  • 探索用のnotebooks/と、再利用可能なコード用のsrc/featuresおよびsrc/models
  • アーティファクト用のmodels/と、出力用のreports/
  • ルートに配置する設定ファイル、requirements、README、.gitignore
  • 構成全体をすぐにひな形として生成するcookiecutter-data-science

次は、AIプロジェクトでGitを効果的に使う方法です。

よくある質問

「プロフェッショナルな AI プロジェクトのディレクトリ構成」レッスンは無料ですか?

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

「プロフェッショナルな AI プロジェクトのディレクトリ構成」で何を学びますか?

data/、notebooks/、src/、models/、tests/ の構成と cookiecutter-data-science パターンを扱います。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「プロフェッショナルな AI プロジェクトのディレクトリ構成」レッスンにはどのくらい時間がかかりますか?

ほとんどの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に戻る