ModelBuilder fails w/ DJL container using HF_MODEL_ID

Abierto Apto para principiantes
#5,588 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
aws, python

Línea de trabajo

Comienza en ModelBuilder._build_for_passthrough() y sigue los valores que se pasan a _create_model(). Reproduce la compilación passthrough con image_uri y HF_MODEL_ID y, a continuación, verifica que una solicitud CreateModel exitosa omita ModelDataUrl y que el contenedor pueda cargar el modelo configurado desde S3.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

PySDK Version

  • PySDK V2 (2.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")

Lenguaje dominante
Python
Estrellas
2.3k
Forks
1.3k
Merge medio
3 d 9 h
PR fusionados (30 d)
42

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aws/sagemaker-python-sdk

Todos los issues de aws/sagemaker-python-sdk

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.