こすたろーんエンジニアの試行錯誤部屋

作成物の備忘録を書いていきますー

Jetson Xavier NXとdockerでnetflix製Metaflowが使える環境を構築

MLOpsの勉強をしている中で管理モジュールのmetaflowが使える環境を構築しました
このブログは備忘録です

目次

スポンサーリンク

この記事でわかること

Jetson Xavier NXとdockerでmetaflowの実行環境構築方法

1.Metaflowとは

Netflixが公開しているワークフロー管理モジュールです
metaflow.org

2.実行環境

Jetson Xavier NX
ubuntu18.04
docker
python3.x

3.Dockerfile作成

FROM nvcr.io/nvidia/l4t-pytorch:r32.7.1-pth1.10-py3

ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

RUN pip3 install --upgrade pip
RUN pip3 install --ignore-installed PyYAML
RUN pip3 install metaflow

ARG USERNAME=your_name
ARG GROUPNAME=your_group_name
ARG UID=1000
ARG GID=1000
RUN groupadd -g $GID $GROUPNAME && \
    useradd -m -s /bin/bash -u $UID -g $GID $USERNAME
USER $USERNAME

4.docker imageの作成

以下コマンドでdocker imageを作成します

sudo docker build . -t tag_name

5.containerの作成

以下コマンドでコンテナーを作成し、立ち上げます

sudo docker run -it --rm --runtime nvidia --network host -v path/to/metaflow/workspace/:/workspace --name metaflow tag_name

6. sampleコードの実行

以下ページのサンプルコードを実行します

from metaflow import FlowSpec, step

class HelloFlow(FlowSpec):
    """
    A flow where Metaflow prints 'Hi'.
    Run this flow to validate that Metaflow is installed correctly.
    """
    @step
    def start(self):
        """
        This is the 'start' step. All flows must have a step named 'start' that
        is the first step in the flow.
        """
        print("HelloFlow is starting.")
        self.next(self.hello)

    @step
    def hello(self):
        """
        A step for metaflow to introduce itself.
        """
        print("Metaflow says: Hi!")
        self.next(self.end)

    @step
    def end(self):
        """
        This is the 'end' step. All flows must have an 'end' step, which is the
        last step in the flow.
        """
        print("HelloFlow is all done.")

if __name__ == '__main__':
    HelloFlow()

-> 実行後に.metaflowディレクトリが生成されていればOKです

deeplearning関連記事

technoxs-stacker.hatenablog.com technoxs-stacker.hatenablog.com technoxs-stacker.hatenablog.com

参考

www.nogawanogawa.com

感想

とりあえず動かす環境ができたので、いろいろ試してみたいところです

スポンサーリンク