[Python] Sagemaker's SklearnModel requirements.txt not getting installed

Discussão em 'Python' iniciado por Stack, Dezembro 20, 2024.

  1. Stack

    Stack Membro Participativo

    This is my code:

    from sagemaker.sklearn import SKLearnModel


    role = sagemaker.get_execution_role()

    model = SKLearnModel(
    model_data= f"s3://{default_bucket}/{prefix}/model.tar.gz",
    role=role,
    entry_point="inference.py",
    framework_version="1.2-1",
    py_version="py3",
    )

    predictor = model.deploy(
    instance_type="ml.c5.large",
    initial_instance_count=1,
    container_startup_health_check_timeout=180
    )


    s3://{default_bucket}/{prefix}/model.tar.gz contains:

    Contents of the tarball: (I also tried putting requirements.txt in code/ as advised on documentation for pytorch models on tarball structure)
    ?rw-r--r-- sagemaker-user/users 4349839 2024-11-29 19:22:21 model.pkl
    ?rw-r--r-- sagemaker-user/users 24 2024-12-02 14:43:26 inference.py
    ?rw-r--r-- sagemaker-user/users 44212 2024-11-29 19:23:17 explainer
    ?rw-r--r-- sagemaker-user/users 24 2024-12-02 14:43:26 requirements.txt


    requirements.txt contains:

    dill
    pandas
    joblib


    (and I even know pandas is installed by default, checking the aws code)

    When I try to deploy I get an error because inference.py has on the first line import dill saying the module is not found and in Cloudwatch I see only inference 1.0.0 is installed (which I assume is my script).

    I know I could probably create a subprocess within inference.py and call pip there, but I want to do this properly.

    Continue reading...

Compartilhe esta Página