大きなローカルAIモデルを保管したとき、ダウンロードが終わった表示だけで完成とは判断しませんでした。対象は約346.4GB、7ファイルに分かれたモデルです。途中再開しても別の版のファイルが混ざらないよう、何を、どの版で、いくつ取得するかを先に揃えました。
ファイル名とサイズだけでは、同じ内容か分からない
ファイルを取得するとき、配布元の版を固定し、各ファイルの名前とサイズ、公開されているSHA-256を一覧にします。SHA-256はファイル全体から作る短い識別値で、サイズが同じでも中身が変われば照合で気づけます。全体を読み直すため、大容量では検査だけにも時間がかかります。これはファイルの検査で、モデルをGPUで動かしている時間とは別です。
途中から再開するときは、続きの位置を確認する
今回、安定しない転送には範囲指定を使って途中から続きを取得しました。手元に何バイトあるかを控え、配布元が返した範囲が要求した位置と一致するか確かめます。サーバーが範囲指定を無視して先頭から返した場合、その内容を途中へ足すと壊れます。中断ファイルは完成済みの名前にせず、照合が通ってから完成として扱います。
保管と起動を一緒にしない
最終的に7ファイルすべてでサイズとSHA-256の一致、未完了ファイルが残っていないことを確認しました。今回は保管用として終えており、RelayDeskへは登録も実行もしていません。読者が使うために取得するなら、保管の検査に加え、実行環境での読み込みと代表的な入力に対する応答が次の工程です。
もう一歩、手元で確かめる
途中再開を例にすると、手元に64MiBあるなら、次の応答がその直後の位置から始まることを確認します。応答の範囲を示す情報を見て、開始位置や全体サイズが想定と異なれば追加を止めます。名前やサイズが似た別リビジョンを途中から混ぜないよう、取得元と版も同じ記録に置きます。
棚卸しするときは、合計容量だけでなく、ファイル一つずつの状態を見ます。七つのうち六つが合っていても一つが不足すれば全体は使えません。完成品フォルダを見た別の人が迷わないよう、どの版を照合し、何点が一致し、いつ確認したかを検査記録へ書きます。保管用と実行用を分けておけば、検査のために稼働中のGPUを占有する必要もありません。
AIへの依頼例
配布元の版を固定して、取得前にファイル一覧・サイズ・照合値を記録する。中断分は完成品と分ける。最後に全ファイルを照合し、登録や実行の有無を報告する。
コメント