From 31fa2b6c683b7d7ca2621ccb11d0e2653fe2f5f7 Mon Sep 17 00:00:00 2001 From: Herumb Shandilya <43719685+krypticmouse@users.noreply.github.com> Date: Tue, 28 Feb 2023 20:42:42 +0530 Subject: [PATCH] [GPTJ] Fix gradient checkpointing bug (#21794) * If applied, this commit fixes generate bug in gptj * Remove extra same code block * formatting and test fix * Conflict fix and declaration error fix --------- Co-authored-by: Sylvain Gugger <35901082+sgugger@users.noreply.github.com> --- src/transformers/models/gptj/modeling_gptj.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/transformers/models/gptj/modeling_gptj.py b/src/transformers/models/gptj/modeling_gptj.py index 543eb6937fa..5530638c1dd 100755 --- a/src/transformers/models/gptj/modeling_gptj.py +++ b/src/transformers/models/gptj/modeling_gptj.py @@ -633,6 +633,13 @@ class GPTJModel(GPTJPreTrainedModel): output_shape = input_shape + (hidden_states.size(-1),) + if self.gradient_checkpointing and self.training: + if use_cache: + logger.warning_once( + "`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`..." + ) + use_cache = False + presents = () if use_cache else None all_self_attentions = () if output_attentions else None all_hidden_states = () if output_hidden_states else None @@ -652,11 +659,6 @@ class GPTJModel(GPTJPreTrainedModel): all_hidden_states = all_hidden_states + (hidden_states,) if self.gradient_checkpointing and self.training: - if use_cache: - logger.warning_once( - "`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`..." - ) - use_cache = False def create_custom_forward(module): def custom_forward(*inputs):