Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrating Huggingface models in Deepchem #3362

Merged
merged 16 commits into from
May 4, 2023

Conversation

arunppsg
Copy link
Contributor

Description

Integrating huggingface models in DeepChem.

Type of change

Please check the option that is related to your PR.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • In this case, we recommend to discuss your modification on GitHub issues before creating the PR
  • Documentations (modification for documents)

Checklist

  • My code follows the style guidelines of this project
    • Run yapf -i <modified file> and check no errors (yapf version must be 0.32.0)
    • Run mypy -p deepchem and check no errors
    • Run flake8 <modified file> --count and check no errors
    • Run python -m doctest <modified file> and check no errors
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New unit tests pass locally with my changes
  • I have checked my code and corrected any misspellings

@arunppsg arunppsg marked this pull request as ready for review May 1, 2023 09:29
@arunppsg arunppsg force-pushed the hf-models branch 2 times, most recently from f546899 to bdb1564 Compare May 1, 2023 12:50
Copy link
Member

@rbharath rbharath left a comment

Choose a reason for hiding this comment

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

A few comments here about more docs and some design questions about fit/predict

deepchem/models/torch_models/hf_models.py Outdated Show resolved Hide resolved
deepchem/models/torch_models/hf_models.py Outdated Show resolved Hide resolved
deepchem/models/torch_models/hf_models.py Outdated Show resolved Hide resolved
deepchem/models/torch_models/hf_models.py Outdated Show resolved Hide resolved
inputs, labels, weights = self._prepare_batch(batch)

optimizer.zero_grad()
outputs = self.model(**inputs)
Copy link
Member

Choose a reason for hiding this comment

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

Let's consider whether we should generalize TorchModel instead of reimplementing fit here since a lot of this code is identical to TorchModel

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There are a couple of ways we can generalize TorchModel here maintaining backward compatability.

  1. check type of inputs and if it is an instance of Dict, then invoke as model(**inputs) else the old style - model(inputs)
  2. Delegate model(inputs) call to a function - say forward() which can be implemented in child classes as well.

Copy link
Member

Choose a reason for hiding this comment

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

Documenting offline discussion, it's ok to leave this code as-is for now, but we should come back and consider refactoring for maintainability

logger.info("TIMING: model fitting took %0.3f s" % (time2 - time1))
return last_avg_loss

def _predict(self, generator: Iterable[Tuple[Any, Any, Any]],
Copy link
Member

Choose a reason for hiding this comment

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

Same point here; we may want to consider generalizing TorchModel

Copy link
Member

Choose a reason for hiding this comment

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

Same comment as above from offline discussion

Copy link
Member

@rbharath rbharath left a comment

Choose a reason for hiding this comment

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

LGTM, feel free to merge once CI is clear

@arunppsg arunppsg merged commit 7ad6bd8 into deepchem:master May 4, 2023
23 of 33 checks passed
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.

None yet

2 participants