AutoDL 同期
このスキルにバンドルされているスクリプトを使用して、プロジェクトを同期します。
これらのスクリプトが要求された操作を実行できる場合は、手動で scp や rsync コマンドを構築しないでください。
プロジェクトの検出
同期スクリプトは動的にプロジェクトルートを決定します。
Git リポジトリのルートを優先します。カレントディレクトリが Git リポジトリ内にない場合、上方向に .autodl-sync を探します。
ローカルプロジェクトパスをハードコードしないでください。
プロジェクト設定
プロジェクト固有の同期設定は以下に保存されます:
<project-root>/.autodl-sync
設定では以下を定義できます:
- リモート SSH ホスト
- リモートベースディレクトリ
- リモートプロジェクト名
- 明示的なリモートディレクトリ
- Git 対応または明示的なアップロード除外
- 追加のアップロード除外
- 選択的または全プロジェクトの結果ダウンロード
- プル除外、最大ファイルサイズ、削除および上書き動作
- rsync の動作
同期設定は、提供されたスクリプトを通じて読み取り、設定ロジックを複製しないでください。
コードのアップロード
ユーザーが次のように要求した場合:
- コードを同期
- コードをアップロード
- 現在のソースコードをデプロイ
- AutoDL のコピーを更新
次のコマンドを実行します:
scripts/push-code.sh <project-root>
プロジェクトルートがすでにカレントワーキングディレクトリである場合、引数は省略できます。
アップロードフィルターは常に必須の安全除外を適用します。auto モードでは、リポジトリのルートに .gitignore がある場合、Git の追跡ファイルと無視されないファイルリストを使用します。それ以外の場合は設定された除外を使用します。プロジェクトの EXCLUDES_APPEND エントリはすべてのモードで適用されます。
SYNC_DELETE=true は、解決されたアップロードモードが excludes の場合にのみサポートされます。Git ファイルリストモードでは、リモート上の古いファイルを安全に特定できないため、完全な削除ミラーを暗示するのではなく、失敗する必要があります。
結果のダウンロード
ユーザーが次のように要求した場合:
- トレーニング結果をプル
- チェックポイントをダウンロード
- ログを取得
- 予測を取得
- 実験出力を同期
次のコマンドを実行します:
scripts/pull-results.sh <project-root>
PULL_DIRS エントリは REMOTE_DIR からの相対パスです。空の配列は何もプルしません。PULL_ALL=true はリモートプロジェクト全体を明示的にプルし、空でない PULL_DIRS と組み合わせてはいけません。プル除外、最大ファイルサイズ、ローカル削除、上書き保護はアップロードフィルタリングとは独立しています。
コーディングワークフロー
プロジェクトの指示がコード変更後の同期を明示的に要求する場合:
- 要求されたソースコードの修正を完了します。
- 適切なローカル検証またはテストを実行します。
- 検証が成功した場合、
push-code.shを実行します。 - 同期が成功したかどうかを報告します。
ユーザーが明示的にリモート実行を要求しない限り、自動的にリモートトレーニングを開始しないでください。
SSH 認証
AutoDL 認証では、プロジェクトの .autodl-sync で設定された専用のローカル SSH キーを使用します。
秘密鍵はローカルマシン上に残す必要があります。
新しい AutoDL インスタンスに対して公開鍵認証がまだ設定されていない場合、次のコマンドを実行します:
scripts/setup-key.sh <project-root>
この操作は、公開鍵をインストールするために、AutoDL アカウントのパスワードを1回だけ対話的に要求することがあります。
セットアップが成功した後は、プッシュおよびプル操作で公開鍵認証を使用する必要があります。
SSH 秘密鍵を決して表示、読み取り、アップロード、コピー、露出しないでください。
安全性
SSH 秘密鍵を決して検査、表示、コピー、または変更しないでください。
SSH 接続設定はプロジェクトの .autodl-sync から読み取られ、ssh および rsync に明示的に渡されます。スクリプトは ~/.ssh/config のエントリを必要としません。
認証情報や秘密をアップロードしないでください。
プロジェクトの .autodl-sync で定義された除外と同期動作を尊重してください。
プロジェクト設定が明示的に要求しない限り、アップロードまたはプルの削除を有効にしないでください。各同期後、スクリプトのファイル操作サマリーをユーザーに報告してください。