| fix: 修复多个潜在bug以提高代码健壮性
Co-authored-by: 王姜奔<wangjiangben@huawei.com>
# message auto-generated for no-merge-commit merge:
!4362 merge master into master
fix: 修复多个潜在bug以提高代码健壮性
Created-by: wangjiangben
Commit-by: 王姜奔
Merged-by: ascend-robot
Description: ## 修复内容
本PR修复了代码仓库中发现的多个潜在bug,以提高代码的健壮性和稳定性。
### 修复详情
#### 1. 修复裸except语句
**问题**: 使用裸的except:会捕获所有异常包括系统异常,可能导致难以调试的问题。
**修复**: 改为except Exception:,只捕获标准异常。
**影响文件**:
- mindspeed_llm/tasks/checkpoint/loader_hf.py
- mindspeed_llm/tasks/checkpoint/loader_mg.py
#### 2. 修复除零检查逻辑错误
**问题**: check_divisible_by_zero函数逻辑错误,原条件会导致非整数除数直接执行除法。
**修复**: 简化为if divisor != 0:,正确处理所有数值类型。
**影响文件**:
- mindspeed_llm/tasks/utils/error_utils.py
#### 3. 修复DPO训练器除零风险
**问题**: chosen_log_probs / chosen_length在chosen_length为0时会引发除零异常。
**修复**: 使用torch.clamp(chosen_length, min=1)确保安全除法。
**影响文件**:
- mindspeed_llm/tasks/posttrain/dpo/dpo_trainer.py
#### 4. 修复BBH评估除零风险
**问题**: loss_values.sum(-1).cpu().numpy() / token_ids.size(1)在token序列为空时会除零。
**修复**: 使用max(token_ids.size(1), 1)防止除零。
**影响文件**:
- mindspeed_llm/tasks/evaluation/eval_impl/bbh_eval.py
## 测试计划
- [x] 代码修改已完成
- [x] 修改已提交到本地仓库
- [x] 修改已推送到远程仓库
- [x] 等待CI测试通过
- [ ] 等待代码审查
## 影响范围
这些修复主要影响:
- 异常处理机制
- 数值计算安全性
- 边缘情况处理
所有修改都是防御性编程,不会改变正常情况下的行为逻辑。
See merge request: Ascend/MindSpeed-LLM!4362 | 1 个月前 |