Skip to content

[fix bug] logits's shape different from label's shape in preprocess_logits_for_metrics#31447

Merged
muellerzr merged 5 commits into
huggingface:mainfrom
wiserxin:main
Jul 3, 2024
Merged

[fix bug] logits's shape different from label's shape in preprocess_logits_for_metrics#31447
muellerzr merged 5 commits into
huggingface:mainfrom
wiserxin:main

Conversation

@wiserxin

@wiserxin wiserxin commented Jun 17, 2024

Copy link
Copy Markdown
Contributor

What does this PR do?

After update my tranformers 4.39.3 --> 4.41.2, training LLM with deepspeed DDP method, something wrong when it goes to my preprocess_logits_for_metrics function: logits's shape is different from label's shape.

Then i discover that in latest trainer code, before passing to preprocess_logits_for_metrics, logits are padded by function pad_across_processes but labels are not.

It seems like a bug unexpectedly introduced .

Before submitting

  • This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
  • Did you read the contributor guideline,
    Pull Request section?
  • Was this discussed/approved via a Github issue or the forum? Please add a link
    to it if that's the case.
  • Did you make sure to update the documentation with your changes? Here are the
    documentation guidelines, and
    here are tips on formatting docstrings.
  • Did you write any new necessary tests?

Who can review?

Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

@amyeroberts

Copy link
Copy Markdown
Contributor

cc @muellerzr @SunMarc

@SunMarc

SunMarc commented Jun 17, 2024

Copy link
Copy Markdown
Member

Hi @wiserxin, this bug was indeed introduced by this PR #30267. The padding of the labels happens after preprocess_logits_for_metrics, hence the issue that you are experiencing. @qubvel, is it safe to put it back where it was ?

@qubvel

qubvel commented Jun 17, 2024

Copy link
Copy Markdown
Contributor

Oh, that's true. @SunMarc yes, should be safe. Alternatively, we can just move the "if" block with labels padding before the "if" block with logits.

@SunMarc

SunMarc commented Jun 17, 2024

Copy link
Copy Markdown
Member

Alternatively, we can just move the "if" block with labels padding before the "if" block with logits

Yeah, I think that's would be better for readability + it was the previous behavior ! Could you make the change @wiserxin ?

@wiserxin

Copy link
Copy Markdown
Contributor Author

Alternatively, we can just move the "if" block with labels padding before the "if" block with logits

Yeah, I think that's would be better for readability + it was the previous behavior ! Could you make the change @wiserxin ?

sure

wiserxin added 2 commits June 18, 2024 11:03
labels can't use  `gather` before pass to `preprocess_logits_for_metrics`, so must split into 2 if-block

@SunMarc SunMarc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM ! Thanks for the PR @wiserxin !

@SunMarc SunMarc requested a review from amyeroberts June 18, 2024 11:56
@qubvel

qubvel commented Jun 18, 2024

Copy link
Copy Markdown
Contributor

@SunMarc @wiserxin let's maybe add a comment about the order of this "if" block to avoid the same bug in the future. :)

@HuggingFaceDocBuilderDev

Copy link
Copy Markdown

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@amyeroberts amyeroberts left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for fixing!

+1 on @qubvel's comment

@wiserxin

Copy link
Copy Markdown
Contributor Author

@SunMarc @wiserxin let's maybe add a comment about the order of this "if" block to avoid the same bug in the future. :)

good idea

@muellerzr muellerzr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks a bunch!

@muellerzr muellerzr merged commit 534cbf8 into huggingface:main Jul 3, 2024
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.

6 participants