Reliability l ブランチの動作・精度を担保できる l ローカルでは動いていたようだが、綺麗な環境にcloneしてエンドツーエンドで実⾏して⾒ると、動かない or 精度が聞いていたのと異なることがある。 ローカルにのみあるデータに依存していたり、暗黙的にノートブックの実⾏順序が決まっていたり l また、レビュー時に、ソースだけでなく、データとハイパーパラメータ、推論結果についても断⾯を揃え(バージョンコントロール)、再現性を担保した 上で確認する必要がある l Accuracy l ⾃動化をすることで、上記のような反復的な⼀連の作業を、⼈為的なエラーなく正確に実施することができる 13
analyzing Jupyter Notebooks. l コマンド例: $ papermill sample01.ipynb s3://bucket001/outputs/sample01.ipynb l ローカルで動くS3互換のストレージ。AWS CLIで操作できる。 処理の流れ②: Papermillでノートブックを実⾏し、MINIOにアップロードする 20 l Papermill(シェルスクリプトでラップ)でノートブックを実⾏し、MINIOにアップロードする l ← コミットされたノートブックを特定し、ノートブックをPapermillで実⾏する l 実⾏済みノートブックは、MINIOにアップロードする 概要 ポイント 補⾜ l 変更があったノートブックは⾃動で漏れなく特定するようにした。(開発者が都度指定する必要がないように) l 実⾏済みノートブックはS3に格納するPJもあるため、今回のオンプレ環境ではS3互換のMINIOを利⽤した。
Google Cloud Storage or MinIO 処理の流れ③: jnotebook_readerで実⾏済みノートブックをブラウザから確認する 22 l jnotebook_readerで、MINIO(、S3)に格納した実⾏済みノートブックをブラウザから確認する 概要 ポイント 補⾜ l MINIO(、S3) に配置したノートブックをブラウザから⾒れるようにした。(特にレビュワーのため) l 以前は類似のツールであるcommuterを利⽤していたが、Python/Flaskで書かれていて(私にとって)中⾝が分かりやすい jnotebook-readerを利⽤することにした。
an API and UI for logging parameters, code versions, metrics, and output files when running your machine learning code and for later visualizing the results. 処理の流れ④: MLflowにメタデータを連携し、実験管理をする 24 l CIジョブとして実⾏されるスクリプトの中で、実験管理に必要なメタデータをMLflowに連携し、⼀覧管理できるようにする 概要 ポイント 補⾜ l 実験の再現性担保に必要な情報を⾃動で連携するようにする l 開発者が各⾃ノートブック内に実装することで追加で⾃由に情報を連携できるようにしつつも、必須の項⽬は⾃動で連携するようにする l 実⾏時刻・実⾏ファイル名・コミットID・コミットユーザ・コミットコメント・実⾏結果ファイル格納先パス、等