チェックポイントと LoRA:違いは?

モデルチェックポイントは特定時点のモデル状態を記録します。画像生成コミュニティでは、「チェックポイント」は読み込み可能な完全モデルウェイト一式を指すこともあります。LoRA は、互換性のあるベースモデルに適用する、はるかに小さな学習済み更新を保存します。チェックポイントは対象パイプラインで単独動作する場合がありますが、LoRA にそのベースは含まれません。

完全なモデル格子と、別のベースモデルに重ねられた小さな LoRA アダプター。
完全なチェックポイントは広範なモデル状態を持ちます。LoRA は対象を絞った更新を持ち、トレーニング対象のベースと組み合わせて初めて意味を持ちます。

「チェックポイント」には関連する二つの意味があります

トレーニング中のチェックポイントは、作業を評価または再開できる保存済み状態です。モデルウェイト、オプティマイザー状態、スケジューラー状態、乱数状態、およびトレーニングメタデータを含む場合があります。推論チェックポイントは、多くの場合、モデルの読み込みに必要なウェイトと設定だけを含む、より簡素なエクスポートです。

Stable Diffusion コミュニティでは、「チェックポイント」は UI で選択する主要モデルファイルの略称でもあります。すべての依存関係が内包される保証はありません。パイプラインには、アプリケーションまたは付属パッケージが提供する VAE、テキストエンコーダー、トークナイザー、または設定が必要な場合があります。復元しようとするローダーを基準に「完全」を定義してください。

LoRA は学習済みの更新であり、二つ目の完全モデルではない

Low-Rank Adaptation は、事前トレーニング済みウェイトを固定したまま、選択した層の低ランク更新を学習します。推論時には、フレームワークがその更新をベースへ動的に適用するか、派生コピーに統合できます。アダプターが小さいのは更新を保存するからであり、すべてのベースウェイトを密かに圧縮しているからではありません。

この依存関係こそ、チェックポイントと LoRA を分ける中心的な違いです。ある Stable Diffusion ファミリー向けにトレーニングした肖像スタイルの LoRA が、別のアーキテクチャでも動作するとは限りません。言語モデルのアダプターも同様に、設定で記述されたベースモデルおよび対象モジュールに依存します。

実践比較

疑問チェックポイントLoRA
保存内容広範なモデル状態。追加のトレーニング状態を含む場合もある低ランクのアダプターウェイトと設定
単独で実行できる?対象パイプラインでは主要モデルとして読み込めることが多いいいえ。互換性のあるベースとローダーが必要
一般的な用途ベースモデル、完全ファインチューニング、マイルストーン、または再開地点効率的な特化、スタイル、被写体、またはタスク適応
ストレージはるかに多くの状態を表すため、通常かなり大きい選択した更新だけを学習するため、通常はるかに小さい
復元に関する疑問必要な完全パッケージまたはトレーニング状態が揃っている?完全に互換性のあるベース、アダプター設定、ウェイトが揃っている?

LoRA をマージするとチェックポイントになる?

アダプターをベースへ統合またはマージすると、派生ウェイトが生成されます。ツールがそれらを一般にチェックポイントと呼ばれるファイルへ保存する場合もありますが、その出力は元のベースではなく、ベースとアダプターをきれいかつ可逆的に分離した状態を必ずしも保持しません。浮動小数点演算、dtype 変換、エクスポート設定はいずれも結果に影響します。

強度を変更し、アダプターを組み合わせ、またはマージを再現したい場合は、未統合アダプターと完全なベースを保持します。その正確なデプロイファイルが運用上重要なら、マージ済み成果物も保持します。一つのマージ済みファイルが一度正常に読み込めただけで、ソースを削除しないでください。

ファインチューニング中に保持するもの

進行中の実行では、中間チェックポイントが評価や中断からの復旧に役立ちます。実行完了後は、実際の疑問に答えるマイルストーンを保持します。選択した最終アダプター、一つ以上の説明可能な比較チェックポイント、設定、トレーニングコードまたはコマンド、データセット参照、および評価記録です。LoRA トレーニングチェックポイントのガイドでは、これを一律の「すべて保持」ではなく、再現性に関する判断として扱います。

最終アダプターは再開可能なトレーニング状態ではありません。エクスポート済み LoRA ウェイトは推論には十分でも、トレーニングを完全に継続するために必要なオプティマイザーおよびスケジューラーの状態が含まれない場合があります。

ファイル名を単独で扱わず、ファミリーをアーカイブ

有用な LoRA ファミリーには、互換性のあるベースを特定し取得するのに十分な情報が含まれます。ベースが希少、非公開、またはローカルで変更済みなら、アダプターと一緒に保持します。チェックポイントファミリーには、初回読み込み時にランタイムが暗黙に提供した付随コンポーネントが含まれる場合があります。

Tensor Archive は、選択したローカルテンソルを関連ファミリーとして保持し検証するのに役立ちます。ファイル名から互換性を推測したり、欠けたトレーニング状態を再構築したり、LoRA を単独のベースモデルへ変えたりはしません。

手元にある成果物に応じて続ける

分かりにくいのがアダプター拡張部分なら、LoRA ファイルに含まれるものをお読みください。トレーニング手法を選ぶ場合はLoRA と QLoRA の比較を使います。ストレージ不足が理由なら、LoRA ウェイトを変えずにディスク容量を空ける方法をご覧ください。

出典

ベースとアダプターをまとめて保持。無料ダウンロード ↓