SnowPro Advanced: MLOps Engineer 無料問題 4 / 10 ・ 分野2: MLOps Infrastructure and Management
データサイエンティストは、ノートパソコンの VS Code で開発している。Python の学習の関数を1つ、Snowflake の GPU のコンピューティングプールで動かしたいが、作業は VS Code のまま続けたい。ML Jobs のドキュメントはこれにどんな方法を示しているか。
- 関数のオブジェクトを、プールの名前と一緒に submit_file に渡す
- ジョブはそこから始まるので、関数を Workspaces のノートブックに写す
- 関数に @remote のデコレーターを付け、プールとステージを指定する
- Snowpark 最適化ウェアハウスの上のストアドプロシージャに包む
正解と解説を見る
正解: C
正解の理由
「Run a Python function as a Snowflake ML Job」の節には、Function Dispatch を使い、@remote のデコレーターで個々の Python の関数を Snowflake の計算資源の上で遠隔で動かすと書かれている。デコレーターは関数とその依存を直列化し、特定の Container Runtime の中で実行する。例では、コンピューティングプールの名前をデコレーターに渡している。デコレーターを付けた関数を呼ぶとジョブが送られて MLJob のオブジェクトが返るので、データサイエンティストはエディターを使い続けたまま、学習を GPU のプールで動かせる。
違う選択肢
「ジョブはそこから始まるので、関数を Workspaces のノートブックに写す」… ML Jobs のページには、ジョブはどの開発環境からでも動かせ、Snowflake のワークシートやノートブックでコードを動かす必要は無いと書かれている。VS Code で作業を続けることは、ページが挙げる使い方の1つである。
「関数のオブジェクトを、プールの名前と一緒に submit_file に渡す」… submit_file はファイルを渡す方法の1つで、1つの Python のファイルを動かす。個々の関数を送るのはデコレーターで、関数とその依存を直列化する。
「Snowpark 最適化ウェアハウスの上のストアドプロシージャに包む」… ウェアハウスの上のストアドプロシージャは、コードを動かす別の場所である。ML Jobs は、コンピューティングプールの上の Snowflake ML のコンテナランタイムで動き、ページはそこに GPU のインスタンスも含まれるとしている。チームが欲しいのはその計算資源である。
関数かファイルか
ML Jobs の入り口は2つある。1つの関数には @remote のデコレーター、スクリプトやプロジェクトのフォルダーにはファイルを渡す方法である。コードの形で選ぶ。どちらでも、送るには手元に Snowpark のセッションが要り、返ってきた MLJob のオブジェクトで実行を追う。