0
1

Pythonユーザーのためのデータの保管方法

Last updated at Posted at 2024-08-29

この文書の目的

pythonプログラマのためのスキルを標準化するための情報へのリンクを示します。
個別の内容については、それぞれ詳しい記事がネット上に書かれているので、
この文章では詳細は省略します。

想定する読者

gitリポジトリに少量のテスト用データファイルを置く

  • リポジトリのモジュールのテストのために少しだけデータをおかなきゃならないことがある。

git lfs

リポジトリのルートで以下のコマンドを入力する。

git lfs track "*.jpg" "*.png" "*.ply" "*.npy"

そうすると.gitattributes ファイルに以下の内容が追加される。

 cat .gitattributes 
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.ply filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text

そうすると、これらのパターンにマッチするファイルは、Git LFS (large file system) を使って管理されるものになる。
その分、gitサーバーの負担が少し軽くなる。
fileのチェックサムを使ってファイルに変更があるかどうかを管理するようになる。
テキストの場合のようにdiffを参照しようとはしなくなる。

Google Drive 上にデータをおいて、そこからダウンロードさせる場合

【Python】GoogleDriveからファイルをダウンロード

gdown --fuzzy についても調べてみてください

難点

  • Google Drive のアカウントがなくなると、Google Drive上のデータも削除されてしまう。
  • 組織として恒久的にデータ管理するには向かない
  • Google Drive上のデータはアクセス管理に適さない
  • データのバージョン管理がむずかしい。

標準的なツール

pythonでの標準的なツール

local とremoteとのフォルダ構成を比較しながら対話的に操作するには

Google Cloud Storage

【Google Cloud Platformの使い方】GCP Storage にファイルの出し入れ(python3/Web API)

アクセス権の設定を必要とします。
アクセスにはTOKENを必要とします。
認証されたマシンにかぎってアクセスが可能になります。

DVC(Data Version Control)

DVC
Git LFS からDVC(Data Version Control) に移行した話

huggingface に重みデータを登録する

  • あなたの実装がOSSであって、重みファイルも公開するものである場合には、huggingfaceに重みデータを登録するということが可能である。
  • そうすれば、コミュニティにも寄与できます。

Google Colab で使うためのデータ

Google Colab はJupyter notebook と同様なインタフェースでpythonを使える環境です。

Google Colaboratoryでのファイル読み込み方法

Google Colabのはじめ方
Google Colab ファイル読み込み方法

  1. Google Colabで、Google Driveをマウント
  2. Google Driveに、対象のファイルをアップロード
  3. Google Colabで、対象のファイルを読み込んで利用
    などが書かれています。

これらを使うことで、Google Driveにあるデータを使ってGoogle Colab 上でnotebook を実行できます。

チームとして機械学習を行うためには

  • 一人の作業PCで動くだけではだめ。
  • 結果をすぐに、関係者に共有できることが大事

日々の推論の実行環境の案

  • 学習済みのファイルがあれば、各人の環境で簡単に推論できるように環境構築を自動化することが必須。
    例: git clone して pip でインストールすれば環境構築できるようにしてしまう。
    一連のスクリプトの実行の中で、最新のpretrained-modelをダウンロードするようにしておく
    ユーザはそのことを意識しなくても済むように作っておく。
git clone git@github.com:someone/foo.git
python3 -m pip install .

日々の推論の実行環境の案(その2)

  • 推論を行う環境を作ったサーバーを用意しておいて、それをネットワーク越しに接続してもらう。
  • 例:jupyter notebookのページにネットワーク越しにアクセスしてもらう。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1