deepspeedai / deepspeedai/DeepSpeedExamples
Why Does vf_loss Take the Maximum Value, Rendering Clamp Meaningless?
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 6.8k
- Forks
- 1.1k
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 1
Description
critic_loss:
def critic_loss_fn(self, values, old_values, returns, mask):
value loss
values_clipped = torch.clamp(
values,
old_values - self.cliprange_value,
old_values + self.cliprange_value,
)
vf_loss1 = (values - returns) ** 2
vf_loss2 = (values_clipped - returns) ** 2
vf_loss = 0.5 * torch.sum(
torch.max(vf_loss1, vf_loss2) * mask) / mask.sum()
return vf_loss
Why does vf_loss take the maximum value? If that's the case, wouldn't the clamp be meaningless?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the critic_loss_fn implementation shown in the issue, focusing on values_clipped, vf_loss1, vf_loss2, torch.max, and mask. Compare the loss calculation with the intended value-loss behavior and determine whether the clamp is effective; done means documenting the rationale or identifying a confirmed implementation problem.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100