aws / aws/sagemaker-python-sdk

ModelBuilder fails w/ DJL container using HF_MODEL_ID

Đang mở Phù hợp với người mới
#5,588 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
2.3k
Fork
1.3k
Merge trung bình
1 ngày 22 giờ
Pull request đã merge (30 ngày)
35

Mô tả

**PySDK Version**
- [ ] PySDK V2 (2.x)
- [X] PySDK V3 (3.4.0)

**Describe the bug**
When using ModelBuilder in "passthrough" mode (image_uri + env_vars, no model
or inference_spec), `build()` fails with a ValidationException because a
non-existent S3 path is injected as `ModelDataUrl` in the CreateModel request.

Passthrough mode is the intended path for deploying models on custom/DJL
containers where the container itself handles model loading (e.g. via
HF_MODEL_ID env var pointing to S3).

**Expected behavior**
Expected: Model created with no ModelDataUrl (container loads via HF_MODEL_ID)
Actual: ValidationException -- "Could not find model data at
s3:///model-builder///"

**Suggested Fix**

In `_build_for_passthrough()`, also clear `s3_model_data_url`:

def _build_for_passthrough(self) -> Model:
if not self.image_uri:
raise ValueError("image_uri is required for pass-through cases")
self.s3_upload_path = None
self.s3_model_data_url = None # <-- add this line
return self._create_model()

**To reproduce**
```
from sagemaker.core.helper.session_helper import Session, get_execution_role
from sagemaker.serve.model_builder import ModelBuilder

sagemaker_session = Session()
region = sagemaker_session.boto_session.region_name
role = get_execution_role(sagemaker_session, use_default=True)
bucket = sagemaker_session.default_bucket()

image_uri = f"763104351884.dkr.ecr.{region}.amazonaws.com/djl-inference:0.33.0-lmi15.0.0-cu128"

model_builder = ModelBuilder(
image_uri=image_uri,
role_arn=role,
sagemaker_session=sagemaker_session,
instance_type="ml.g5.2xlarge",
env_vars={
"HF_MODEL_ID": f"s3://{bucket}/models/any-model",
"OPTION_ROLLING_BATCH": "vllm",
},
)

model_builder.build(model_name="passthrough-bug-repro")

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu tại ModelBuilder._build_for_passthrough() và theo dõi các giá trị được truyền vào _create_model(). Tái hiện bản build passthrough với image_uri và HF_MODEL_ID, sau đó xác minh rằng một yêu cầu CreateModel thành công không có ModelDataUrl và container có thể tải mô hình đã cấu hình từ S3.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
aws, python
Lĩnh vực
cloud, machine-learning
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
68/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.