return _CheckpointScope(region_fqns=frozenset(), unit_fqns=block_fqns)
recompute_spec = _adapter_recompute_spec(model, required=False)
if recompute_spec is None or not recompute_spec.region_patterns:
return _CheckpointScope(region_fqns=selected_layers, unit_fqns=block_fqns)
module_by_fqn = dict(model.named_modules())
roots = _select_layer_region_roots(module_by_fqn, selected_layers, recompute_spec)
if not roots:
raise ValueError(
"model adapter recompute patterns matched no region in the selected layers"
)
region_fqns = frozenset(fqn for fqn, _ in roots)
excluded = _select_excluded_targets(module_by_fqn, roots, recompute_spec)
exclude_fqns = frozenset(fqn for fqn, _ in excluded)
return _CheckpointScope(
region_fqns=region_fqns,
exclude_fqns=exclude_fqns,
unit_fqns=block_fqns,
)