Closed4
colabratoryとmlflowの連携をするときに使うコード集
GCSの設定
- GCSでバケットを作る
-
サービス アカウントとして認証する | Google Cloud
- 設定してjsonをダウンロードする
- 認証を試す
- python環境は作っておく必要がある https://cloud.google.com/python/docs/setup?hl=ja
mlflowで作られるファイルのダウンロードとアップロード
設定
from pathlib import Path
from google.cloud import storage
BUCKET_NAME = '<バケットの名前>'
MLRUN_DIR = Path('<mlrunが保存されるディレクトリ>')
JSON_PATH = '<GCSの設定でダウンロードしたjsonのpath>'
storage_client = storage.Client.from_service_account_json(JSON_PATH)
bucket = storage_client.bucket(BUCKET_NAME)
ダウンロード
上の記事のコードから、yamlファイルのみをダウンロードするように変更した。要動作確認
blobs = storage_client.list_blobs(BUCKET_NAME)
for blob in blobs:
filepath = blob.name
if filepath[-5:]=='.yaml':
dir_ = (MLRUN_DIR / '/'.join(filepath.split("/")[1:-1]))
dir_.mkdir(exist_ok=True, parents=True)
blob.download_to_filename(filepath)
アップロード
gcsにないファイルをアップロードする。
files = [str(f) for f in MLRUN_DIR.glob('**/*') if str(f)[:8]!="mlruns/." and not f.is_dir()]
files_in_bucket = [f.name for f in storage_client.list_blobs(BUCKET_NAME)]
for f in files:
if f not in files_in_bucket:
blob = bucket.blob(f)
blob.upload_from_filename(f)
gceの設定(更新中)
- インスタンスを作成
- Ubuntu 18.04 LTS・e2-micro
- ファイアウォールの作成
- 外向き
- tcp:5000
- ログインし、次を実行
sudo apt update
sudo apt install python3 python3-dev python3-venv python3-pip
pip3 install mlflow
gsutil -mq cp -rn gs://<バケットの名前>/mlruns ./
mlflow server --host XX.XX.XX.XX
XX.XX.XX.XXは、GCEインスタンスのインターナルIP
このスクラップは2021/11/06にクローズされました