肉球でキーボード

MLエンジニアの技術ブログです

2023-01-01から1年間の記事一覧

PrefectワークフローをKubernetes Jobで実行する

この記事は MLOps Advent Calendar 2023の20日目の投稿記事です。 PrefectワークフローをKubernetes Jobで実行する方法を紹介します。 本文中コード: code-for-blogpost/prefect_gke at main · nsakki55/code-for-blogpost · GitHub Prefect × Kubernetes Pr…

Prefect WorkerをKubernetesにデプロイする

Prefect 2.10以降、インフラ管理の方法はAgentが非推奨となりWorkerが推奨となりました。 PrefectのWorkerについてのまとめ、KubernetesにWorkerをデプロイする場合のmanifestを紹介します。 本文中コード: code-for-blogpost/prefect_kubernetes_worker at …

プロダクトマネージャーのしごとを読みました

「プロダクトマネージャーのしごと」を読んだので、メモをかねて各章の感想を書きます。 www.oreilly.co.jp 全体を通しての感想 原本は Product Management in Practice, 2nd Edition で本書は日本語訳となります。 本書が出版された時にプロダクトマネージ…

機械学習システムデザインを読みました

「機械学習システムデザイン」を読んだので、感想・各章の内容についてまとめます www.oreilly.co.jp 全体を通しての感想 原本は Designing Machine Learning Systems で本書は日本語訳版となります。 原本の著者である Chip Huyen氏が書籍に関する情報をま…

HHKBキーボードの修理サポートが最高だった

自分はキーボードに HHKB を愛用しています。プライベートでも仕事でも HHKB キーボードを使用していて、毎日 HHKB キーボードを使っています。 今回、動作異常が発生したので製造元の PFU に修理対応をしてもらったところ、サポートが最高だったので感謝の…

パケットをゼロから自作してPythonのsocket通信で送る

ゼロから自作したパケットをpythonのsocket通信を用いてサーバーに送信します。 SYNフラグのパケットをサーバーに送り、SYN, ACKフラグのパケットが返ってくるところまで確認します。 実行環境 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20…

Pythonメモリプロファイルツールmemrayを使う

Pythonのメモリプロファイルを行うためにmemrayを使用したところ、インストールからプロファイル実行まで手軽にでき、レポート方法が豊富で使い勝手が良かったので使用方法を紹介します。 本文中コード:code-for-blogpost/memray at main · nsakki55/code-f…

GitHub ActionsでPrefectのdeploymentを一括登録する

概要 Prefectを本番運用する場合、Flowの実行設定であるDeploymentをPrefect Cloudに登録する必要があります。 Prefectでワークフローを運用する場合、FlowとDeploymentをGitHubレポジトリでコード管理するケースが多いと思います。 この記事では、レポジト…

PrefectでSub Flowごとに実行環境を分ける方法

概要 PrefectではFlow内部で別のFlowを実行する、Sub Flowという概念があります。 Flows - Prefect Docs 例えばMLの学習パイプラインを 学習データの取得 前処理 学習 のように処理に分ける場合、各処理を1つのFlowとしてグループ化できます。 Sub Flowを呼…

PrefectのFlow実行名を変更する

PrefectでFlow実行名を変更する方法を紹介します。 本文中コード: code-for-blogpost/prefect_rename_flow at main · nsakki55/code-for-blogpost · GitHub flow実行名の変更について PrefectのFlow実行名は、デフォルトではランダムに名前が割り当てられま…

pythonパッケージ管理ツールryeを使う

Pythonパッケージ管理ツール ryeの使い勝手がよかったので使用方法をまとめました。 ryeとは GitHub: https://github.com/mitsuhiko/rye flaskの作者である Armin Ronacher氏 (GitHubアカウント @mitsuhiko)が個人利用目的で作成した、Pythonのパッケージ関…

Prefect FlowをECS Taskで実行する方法

概要 PrefectではInfrastructure blockにECS Task Blockを指定することで、FlowをECS Taskで実行することができます。 本記事では、FlowをECS Taskで実行する2パターンの手順を紹介します。 本文中コード: https://github.com/nsakki55/prefect-ecs-task-flo…

Prefect 2.0に入門する

本文中のコード github.com Prefect 2.0 2022年7月にPrefect 2.0が正式リリースされました。 Prefect1.0のサポートが2023年5月1日に終了するため、Prefect 2.0への移行が必須となっています。 Prefect 1.0から2.0に移行するメリットは次のmediumの記事が参考…

MLOps論文 Machine Learning Operations (MLOps): Overview, Definition, and Architecture の要点まとめ

MLOpsを体系的にまとめた論文「Machine Learning Operations (MLOps): Overview, Definition, and Architecture」を読んだので、要点をまとめました。 元論文:https://arxiv.org/abs/2205.02302 TL;DR 「MLOpsって何?」に答えた論文 MLOpsに関わる文献調査…

SageMaker Endpointのレイテンシー高速化実験

SageMaker推論高速化のTIPS サービスの中でMLによるリアルタイム推論を行う場合、レイテンシーは重要な指標となります。 SageMakerによるリアルタイム推論の導入を検討してる場合、レイテンシーがサービス要件に合うかは気にする場合が多いと思います。 本記…