-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Unable to ensure consistent versions of the SDK in AzureML Pipelines #1115
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
FWIW, here is the AutoML step:
It's the same as in the link above. |
Just a heads up, Here are some things I've tried:
|
Adding @anupsms Please, involve folks from the team to advice here about AutoMLStep. |
Appreciate the tip, but I feel like the issue is more around enforcing packages that work before running. My biggest concern with AutoML is that I spend all of my time troubleshooting the SDK and never get to do any data science. I could download the definition, then create an env to match, but that will take a lot of extra time and hassle. |
@CESARDELATORRE can you pls review this issue? |
In the end the workaround that made this happen was: cd = CondaDependencies.create(
pip_packages=[
"pandas",
"numpy",
"azureml-sdk[automl,interpret]",
"azureml-defaults",
"azureml-train-automl-runtime",
],
conda_packages=["xlrd", "scikit-learn", "numpy", "pyyaml", "pip"],
)
amlcompute_run_config = RunConfiguration(conda_dependencies=cd)
amlcompute_run_config.environment.docker.enabled = True
amlcompute_run_config.environment = Environment.get(
ws, name='AzureML-AutoML').clone("bills-test") so there is an |
User program failed with ImportError: cannot import name 'RollingOriginValidator'
Using 1.12.0
I learned in this issue that
RollingOriginValidator
is caused due to discrepancies in different SDK versions in pipeline runs. Like when your local version is different than the version in which an AutoML model is trained.Now that I've got my full code working, I'm getting an error that a
PythonScriptStep
has a different sdk version than theAutoMLStep
.AutoMLStep
doesn't accept aRunConfiguration
so I have no way of controling the SDK version that AutoML will use.My question is: Is there a way to enforce an SDK version in the AutoMLStep, so that I can get consistent outputs? OR is there a way to find out which version of the SDK the AutoMLStep is using so that I can enforce that version in pipeline runs.
Honestly, I don't see why the user is expected to sort this out. In earlier versions the cloud SDK would just sync with the SDK version used locally. Now this no longer works and users have to add this to their tech debt when using AzureML.
Full code here: https://github.com/BillmanH/learn-azureml
You can see RunConfiguration, AutoMLStep, and PythonScriptStep in the
main_run.py
. All of the steps work fine except for the last stepscore_step
, which crashes due to the library importError: 'RollingOriginValidator'The text was updated successfully, but these errors were encountered: