aws / aws/sagemaker-python-sdk

`ModelTrainer` bug with method to load hyperparameters from file for Amazon Nova Recipe

未关闭 适合新手
#5,770 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
2.3k
派生
1.3k
平均合并
1 天 22 小时
30 天内合并 PR
35

描述

`**PySDK` Version**
- [ ] PySDK V2 (2.x)
- [x ] PySDK V3 (3.x)

**Describe the bug**
[Code](https://github.com/aws/sagemaker-python-sdk/blob/98683ac4cf5fcb0e734ff46ec046d32ade44494e/sagemaker-train/src/sagemaker/train/model_trainer.py#L1215-L1220) is using method `self._validate_and_load_hyperparameters_file` instead of self._validate_and_fetch_hyperparameters_file`:
```
if is_nova:
if hyperparameters and isinstance(hyperparameters, str):
hyperparameters = cls._validate_and_load_hyperparameters_file(hyperparameters) # bug
model_trainer_args["hyperparameters"].update(hyperparameters)
elif hyperparameters and isinstance(hyperparameters, dict):
model_trainer_args["hyperparameters"].update(hyperparameters)
```

**To reproduce**
```
from sagemaker.train.model_trainer import ModelTrainer
from sagemaker.train.configs import Compute

model_trainer = ModelTrainer.from_recipe(
training_image="327873000638.dkr.ecr.us-east-1.amazonaws.com/hyperpod-recipes:verl-v1.0.0-smtj",
training_recipe="training/nova/nova_1_0/nova_lite/CPT/nova_lite_1_0_p5x16_gpu_pretrain",
compute=Compute(instance_type="ml.m5.xlarge"),
hyperparameters="test",
)
```
```
│ │
│ 287 │ │ │ private_attributes = self.__dict__.get('__private_attributes__') │
│ 288 │ │ │ if private_attributes and item in private_attributes: │
│ 289 │ │ │ │ return private_attributes[item] │
│ ❱ 290 │ │ │ raise AttributeError(item) │
│ 291 │ │
│ 292 │ @classmethod │
│ 293 │ def __prepare__(cls, *args: Any, **kwargs: Any) -> dict[str, object]: │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: _validate_and_load_hyperparameters_file
```
**Expected behavior**
No `AttributeError` to be raised when using hyperparameter file (string).

贡献指南

打开贡献指南

调研方向

从 sagemaker-train/src/sagemaker/train/model_trainer.py 中 ModelTrainer.from_recipe 逻辑所在的位置开始,约在第 1215-1220 行。跟踪字符串超参数的路径,并比较所引用的验证方法。当 Amazon Nova Recipe 的超参数文件字符串不再引发 AttributeError,并通过预期的方法获取时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
machine-learning
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
冷清
描述清晰度
描述清楚
新手友好度
82/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。