Skip to content

Conversation

@avelinoapheris
Copy link

  • Allow training without templates. The current setup will crash if the templates directories are not given, whoever we find use cases where we will like to train without them.
  • Allows running a validation dataset whose cache do not have "token_count" or "use_metric" fields. This is useful if one wants to run .validate on the training dataset.
  • Fix a bug that requires the "ema" weights to be present when loading a checkpoint manually. There are cases where we want to start from a public checkpoint with only the weights of the model.
  • Expose all the arguments for the lightning checkpoint callback.

…oint without ema weights + add extra options for the Checkpoint callback + allows running .validate with caches that do not have token size or use metric flag
Copy link
Contributor

@jnwei jnwei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for adding the fixes for supporting fine tuning and enabling computation of metrics on the training set.

One suggestion: would it be possible to add a test to check that the case where dataset_config.dataset_paths.template_structure_array_directory is None works as intended? Perhaps a test that is a variation of the tests that are used to test training dataset runner yamls would be suitable, e.g. https://github.com/aqlaboratory/openfold-3/blob/main/openfold3/tests/test_entry_points.py#L63

k = np.min([np.random.randint(0, l), n_templates])

if k > 0:
if (k > 0) and (template_cache_directory is not None):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could the parentheses around the individual statements be removed? I believe this will cause an issue for our ruff formatter.

class CheckpointConfig(BaseModel):
"""Settings for training checkpoint writing."""

model_config = PydanticConfigDict(extra="allow")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is extra="allow" required to support backwards compatibility with old versions of the code?

We generally prefer to set extra="forbid" to help catch instances where a field might be ignored if it is not recognized by the Model (e.g. in the case of a typo or a new field).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants