git pushから本番環境でのファインチューンモデルへ ノート

git pushから本番環境でのファインチューンモデルへ

著者は、Nebius AI Cloud 上でのモデルのファインチューニングとデプロイを自動化するための GitHub Actions のセットである nebius-actions を開発しました。目標は、GitHub での単一のボタンクリックによってトリガーされる完全に自動化されたパイプラインを実現することでした。このパイプラインには、GPU インフラストラクチャの起動、モデルのファインチューニング、パッケージ化、エンドポイントへのデプロイ、テスト、およびすべてのリソースのクリーンアップが含まれます。デモワークフローは、submit、wait、deploy、try、cleanup の 5 つの異なる GitHub ジョブを通じてこれをオーケストレーションします。状態情報は、これらのジョブ間で出力を使用して渡されます。ほとんどのロジックを含む submit ジョブは、Axolotl 設定と bash スクリプトをインラインで作成します。このスクリプトは、Axolotl を使用したファインチューニング プロセスを処理し、アダプターをパッケージ化し、サービング イメージを Nebius Container Registry にプッシュします。また、実行ごとに新しい S3 バケットをプロビジョニングし、Nebius Job を作成します。認証は、短命の IAM トークンを使用して安全に管理されます。wait ジョブは、Nebius GPU ジョブからのログをストリーミングし、そのステータスをポーリングします。特に、予期しないコストを防ぐために、GitHub ワークフローがキャンセルされた場合に GPU ジョブをキャンセルするロジックが含まれています。deploy ジョブは、新しくビルドされたイメージを使用して Nebius Endpoint を作成し、その後、別の wait ジョブがエンドポイントの準備ができるまでポーリングします。try ジョブは、エンドポイントのヘルスをチェックし、サンプル API コールを行って機能を確認することにより、単純なスモーク テストを実行します。最後に、常に実行される cleanup ジョブは、デプロイされたエンドポイントとプロビジョニングされた S3 バケットが削除されることを保証し、残りのリソースとクラウド請求を防ぎます。イメージは、再デプロイの可能性のためにレジストリに残ります。nebius-actions は、各アクションが単一のリソースを管理する、小さく構成可能なビルディング ブロックとして設計されています。