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

P-tuning refactor Part 2/N #6056

Merged
merged 105 commits into from
Feb 24, 2023
Merged

P-tuning refactor Part 2/N #6056

merged 105 commits into from
Feb 24, 2023

Conversation

arendu
Copy link
Collaborator

@arendu arendu commented Feb 18, 2023

What does this PR do ?

Follow up of #6054

Refactor of GPT Prompt Tuning to use the same code structure as P-Tuning.

Collection: [NLP]

Changelog

  • Adds an option to train a PromptEncoder with just the embeddings which is functionally same as prompt-tuning.
  • Removes references to prompt_tables in gpt prompt learning model.
  • streamlines the training and inference time code

Usage

  • You can potentially add a usage example below
# Add a code snippet demonstrating how to use this 

Before your PR is "Ready for review"

Pre checks:

  • Make sure you read and followed Contributor guidelines
  • Did you write any new necessary tests?
  • Did you add or update any necessary documentation?
  • Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
    • Reviewer: Does the PR have correct import guards for all optional libraries?

PR Type:

  • New Feature
  • Bugfix
  • Documentation

If you haven't finished some of the above items you can still open "Draft" PR.

Who can review?

Anyone in the community is free to review the PR once the checks have passed.
Contributor guidelines contains specific people who can review PRs to various areas.

Additional Information

  • Related to # (issue)

arendu and others added 30 commits December 15, 2022 10:51
Signed-off-by: arendu <[email protected]>
Signed-off-by: arendu <[email protected]>
@arendu
Copy link
Collaborator Author

arendu commented Feb 20, 2023

Verified val loss curves on main vs this PR
https://wandb.ai/nvidia/p_tuning_refactor?workspace=user-adithyare

Signed-off-by: arendu <[email protected]>
Copy link
Collaborator

@Zhilin123 Zhilin123 left a comment

Choose a reason for hiding this comment

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

LGTM, remaining some stylistic issues to be addressed in follow up PR

@arendu arendu merged commit 7b36e62 into main Feb 24, 2023
@arendu arendu deleted the adithyare/refac_ptuning_part2 branch February 24, 2023 02:55
titu1994 pushed a commit to titu1994/NeMo that referenced this pull request Mar 24, 2023
* patch to allow using tokenizers without additional_special_tokens_ids attribute

Signed-off-by: arendu <[email protected]>

* early stop callback for prompt/p tuning

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* update

Signed-off-by: arendu <[email protected]>

* added exp manager config for early stop

Signed-off-by: arendu <[email protected]>

* pushed logic for creating early stopping inside exp manager

Signed-off-by: arendu <[email protected]>

* pushed logic for creating early stopping inside exp manager

Signed-off-by: arendu <[email protected]>

* minor updates and added dataclass check

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* more args

Signed-off-by: arendu <[email protected]>

* more args

Signed-off-by: arendu <[email protected]>

* wrap tpmlp inside prompt encoder

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* updates removed unused imports

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* removes typecheck for tpmlp module

Signed-off-by: arendu <[email protected]>

* refac

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* removing refs to PROMPT_TABLE

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove ref to PROMPT_TABLE

Signed-off-by: arendu <[email protected]>

* minor fix

Signed-off-by: arendu <[email protected]>

* merged conficts

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* bug fix with tpmlp

Signed-off-by: arendu <[email protected]>

* inference seems to be working

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* phasing out prompt learning in t5

Signed-off-by: arendu <[email protected]>

* revert prompt table to allow t5 to work

Signed-off-by: arendu <[email protected]>

* updates

Signed-off-by: arendu <[email protected]>

* updates

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* make prompt encoder None in init

Signed-off-by: arendu <[email protected]>

* update test

Signed-off-by: arendu <[email protected]>

* fixed init

Signed-off-by: arendu <[email protected]>

* setting lstm params the old way

Signed-off-by: arendu <[email protected]>

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* save to now works with pp>1

Signed-off-by: arendu <[email protected]>

* revert t5 datasets

Signed-off-by: arendu <[email protected]>

* unused args

Signed-off-by: arendu <[email protected]>

* make prompt encoder state_dict backwards compatible

Signed-off-by: arendu <[email protected]>

* pipe taskname to prompt encoder

Signed-off-by: arendu <[email protected]>

* update

Signed-off-by: arendu <[email protected]>

* update

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* comment

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Signed-off-by: arendu <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
hsiehjackson pushed a commit to hsiehjackson/NeMo that referenced this pull request Jun 2, 2023
* patch to allow using tokenizers without additional_special_tokens_ids attribute

Signed-off-by: arendu <[email protected]>

* early stop callback for prompt/p tuning

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* update

Signed-off-by: arendu <[email protected]>

* added exp manager config for early stop

Signed-off-by: arendu <[email protected]>

* pushed logic for creating early stopping inside exp manager

Signed-off-by: arendu <[email protected]>

* pushed logic for creating early stopping inside exp manager

Signed-off-by: arendu <[email protected]>

* minor updates and added dataclass check

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* more args

Signed-off-by: arendu <[email protected]>

* more args

Signed-off-by: arendu <[email protected]>

* wrap tpmlp inside prompt encoder

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* updates removed unused imports

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* removes typecheck for tpmlp module

Signed-off-by: arendu <[email protected]>

* refac

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* removing refs to PROMPT_TABLE

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove ref to PROMPT_TABLE

Signed-off-by: arendu <[email protected]>

* minor fix

Signed-off-by: arendu <[email protected]>

* merged conficts

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* bug fix with tpmlp

Signed-off-by: arendu <[email protected]>

* inference seems to be working

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* phasing out prompt learning in t5

Signed-off-by: arendu <[email protected]>

* revert prompt table to allow t5 to work

Signed-off-by: arendu <[email protected]>

* updates

Signed-off-by: arendu <[email protected]>

* updates

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* make prompt encoder None in init

Signed-off-by: arendu <[email protected]>

* update test

Signed-off-by: arendu <[email protected]>

* fixed init

Signed-off-by: arendu <[email protected]>

* setting lstm params the old way

Signed-off-by: arendu <[email protected]>

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* revert t5 dataset

Signed-off-by: arendu <[email protected]>

* save to now works with pp>1

Signed-off-by: arendu <[email protected]>

* revert t5 datasets

Signed-off-by: arendu <[email protected]>

* unused args

Signed-off-by: arendu <[email protected]>

* make prompt encoder state_dict backwards compatible

Signed-off-by: arendu <[email protected]>

* pipe taskname to prompt encoder

Signed-off-by: arendu <[email protected]>

* update

Signed-off-by: arendu <[email protected]>

* update

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* comment

Signed-off-by: arendu <[email protected]>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Signed-off-by: arendu <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Signed-off-by: hsiehjackson <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants