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

Refactor inference optimizations #1094

Merged
merged 1 commit into from
Aug 25, 2023
Merged

Conversation

xingniu
Copy link
Contributor

@xingniu xingniu commented Aug 15, 2023

This PR refactors inference optimizations:

  • Make the inference_only mode switchable.
  • Simplify inference optimizations by
    (1) using eval() to disable dropout instead of explicitly setting dropout modules to None;
    (2) always using default value inplace=False for activation modules.

Pull Request Checklist

  • Changes are complete (if posting work-in-progress code, prefix your pull request title with '[WIP]'
    until you can check this box.
  • Unit tests pass (pytest)
  • Were system tests modified? If so did you run these at least 5 times to account for the variation across runs?
  • System tests pass (pytest test/system)
  • Passed code style checking (./style-check.sh)
  • You have considered writing a test
  • Updated major/minor version in sockeye/__init__.py. Major version bump if this is a backwards incompatible change.
  • Updated CHANGELOG.md

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Copy link
Contributor

@mjdenkowski mjdenkowski left a comment

Choose a reason for hiding this comment

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

Thanks for working on this! I've added a few comments.

sockeye/inference.py Outdated Show resolved Hide resolved
sockeye/layers.py Outdated Show resolved Hide resolved
sockeye/model.py Outdated Show resolved Hide resolved
sockeye/layers.py Outdated Show resolved Hide resolved
sockeye/model.py Outdated Show resolved Hide resolved
sockeye/model.py Outdated Show resolved Hide resolved
sockeye/model.py Outdated Show resolved Hide resolved
Copy link
Contributor

@mjdenkowski mjdenkowski left a comment

Choose a reason for hiding this comment

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

Thanks Xing! Can you make another pass to double check that any class that has a set_inference_only method also sets self.inference_only in both set_inference_only and __init__? The idea is that any class that supports switching in/out of inference mode can always be queried for its current state.

sockeye/layers.py Show resolved Hide resolved
sockeye/transformer.py Show resolved Hide resolved
Copy link
Contributor

@mjdenkowski mjdenkowski left a comment

Choose a reason for hiding this comment

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

Looks good!

@mjdenkowski mjdenkowski merged commit a59e7a2 into awslabs:main Aug 25, 2023
4 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.

2 participants