From a7ca64f9196b6d1f71a45439535a98dc9ac3b7f6 Mon Sep 17 00:00:00 2001 From: Rupal jain Date: Mon, 21 Aug 2023 14:05:00 +0530 Subject: [PATCH] Main to vision foundation model (#2579) * Automation test for spark CLI samples (#2377) * Enable test for submit_spark_standalone_jobs * Generate workflow yaml * update spark job files for automation test * Add workflow for serverless spark with user identity job * Add scripts to upload input data * Update workflow to refer the script * Update source file path * Update workflow with correct file path * Update working directory * Update workflow * Update the path * Update the script to upload data * Update the overwrite mode * Update destination blob name * Use blob upload batch * Add spark pipeline tests * Update spark component extension * Add script to attache uai * Update property name in workflow * Update script parameters * Update assign uai script * Format the script * Update setup identities script * Update path to infra bootstraping * Enable automation test for attached spark job * Update resource path * Update setup attached resource script * Update script of setup resources * Update setup attached resource script2 * Add logic to assign identity role * Format the empty check * Check if identity is empty * Update to get compute properties * update readme * Reformat the script * Update schema location and revert sdk notebook changes * Attach pool first * Rename resources and merge main * Update format in yml * Add role assigment to uid * Enable sdk spark batch samples automation test (#2394) * Initial update to enable sdk spark samples automation test * Add script to setup spark resources * Update the script path * replace attached pool name with value * Assign sai permission to spark pool * Update component name * Add two additional spark notebooks to cover with automation test * Update spark version and use managedidentityconfiguration * Format the samples * Update uai compute name and remove vnet notebook test temporarily * Update condition check * Condition format * Assign uai synapse role * Update compute name to be valid * Add readme changes * Substituate variables * Rename the synapse workspace * Substitue synapse ws name in notebook * Create unique file syanpse per rg * replace synapse pool name * bump RAI text and vision component versions to 0.0.8 (#2437) * Pmanoj/read model specific defaults (#2442) * reading the model specific defaults from model card * updating the metric defaults for the tasks * updating the defaults from bool -> string * fixing formatting issues * add llama acs notebook (#2430) * copy acs notebook * add docker * add ncd score.py * remove monitoring * add acs * add safety * update score to support chunk * update input and fix score.py * move asc client to init * clear output * support chat bot * make notebook compatible to chat model * remove unused * use 7b as default * format * update per comments * pin model version, use studio to check env status * add uai creation * update folder structure * handle -chat input * format json * rename nb * fix input * remove junk * Add compute name and instance type param in sdk and cli (#2446) * added compute_name in cli * add serverless code cell * removed extra cell & add MD * changed device type to auto * adding truncation for summarization data * chged device type to auto * remove custom environment (#2445) * Clean up (#2449) * Clean up * Delete llama-safe-online-deployment.ipynb * Delete prepare_uai.ipynb * Update deploy-and-run.sh (#2443) * Update deploy-and-run.sh (#2413) * Update deploy-and-run.sh * Update deploy-and-run.sh * Update sdk-deploy-and-test.ipynb (#2412) * add incremental embedding with table notebook (#2428) * add incremental embedding with table notebook * fix comments --------- Co-authored-by: Lucas Pickup * Update RAG notebooks to use generate_embedding component. (#2450) * Update RAG notebooks to use generate_embedding component. * Rebase and fixup formatting. * Missed testgen notebook --------- Co-authored-by: Lucas Pickup * Add online_enabled flag (#2405) * Add online_enabled falg * Add support for network isolation scenario * Modifying file * minor update * update the descriptions * reformat --------- Co-authored-by: Shail Paragbhai Shah Co-authored-by: Qianjun Xu Co-authored-by: rsethur Co-authored-by: Sethu Raman * Changed to Standard_NC6s_v3 because Standard_NC6 is deprecated. (#2456) * Changed to Standard_NC6s_v3 because Standard_NC6 is deprecated * Updated SDK Version to 1.52.0 in automl_env files * Updated credentials for V1 notebooks * Fix typo (#2459) * [Notebook] Add dbcopilot notebook (#2427) * [Notebook] Add dbcopilot notebook * fix * fix format * fix format --------- Co-authored-by: Xia Xiao * Add Hugging Face inference text-classification streaming example notebook (#2458) * Added Hugging Face inference text-classification streaming example * Update sdk/python/foundation-models/huggingface/inference/text-generation-streaming/text-generation-streaming-online-endpoint.ipynb Co-authored-by: Manoj Bableshwar --------- Co-authored-by: Manoj Bableshwar * Fixed missing comma (#2461) * Automation test for spark job with managed vnet and interactive session notebook (#2436) * Automation test for spark job with managed vnet * Update to keyword arguments in provision vnet * Add test for data wrangling interactive notebook * Add permanent delete to worksapce cleanup * Rename the vnet workspace * Support interactive session test * rename run session file notebook * Update to use ipython * Add py file for notebook session * Update relative path to py file * Update continaer value * Update expiry time * upload wrangling data to gen2 storage * Remove gen2 using service principal * Remove session mount script * Move test file into folder and updae variables * Update to new workflow * Update blob storage name * Add test files (#2464) * Add test files * checkin all * checkin all * checkin all * Switched to new GPU SKU because NC6 is deprecated (#2462) * Switched to new GPU SKU because NC6 is deprecated * Updated credentials for remaining V1 notebooks * Updated gpu-cluster in bootstrap.sh * compute update and viz error fix (#2454) * compute update and viz error fix * v1 notebooks compute update * format updates * format updates * format updates * compute name update * cluster name update * cluster update * use nc6_v2 instead of nc6 (#2469) Co-authored-by: Hannah Westra (SHE/HER) * Update Standard_NC6 compute for v2 notebooks. (#2465) * Change NC6 to NC6s_v3 * Update endpoint compute * modified the register output path (#2474) Co-authored-by: bhavanatumma * chore(pr_template): Add a checklist item for file deletion (#2466) * Changed gpu-K80-2 to gpu-V100-2 because NC is deprecated (#2472) * Changed gpu-K80-2 to gpu-V100-2 because NC is deprecated * Added python-sdk-tutorial prefix to V1 automl actions * Update quickstart.ipynb (#2457) * Update quickstart.ipynb * Update quickstart.ipynb * Update quickstart.ipynb * Update quickstart.ipynb * Update quickstart.ipynb * Update train-model.ipynb * Update train-model.ipynb * Update train-model.ipynb * Update train-model.ipynb * Update quickstart.ipynb * Update train-model.ipynb * Update pipeline.ipynb * Update pipeline.ipynb * Update pipeline.ipynb * Update quickstart.ipynb * Update train-model.ipynb * Update quickstart.ipynb * Update pipeline.ipynb * Update train-model.ipynb * Update train-model.ipynb * Update quickstart.ipynb * Update train-model.ipynb * Update quickstart.ipynb * Update train-model.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update pipeline.ipynb * Update sklearn-diabetes.ipynb * Update sklearn-diabetes.ipynb * Update sklearn-diabetes.ipynb * Update iris-scikit-learn.ipynb * Update iris-scikit-learn.ipynb * Update sklearn-diabetes.ipynb * Update sklearn-mnist.ipynb * Update debug-and-monitor.ipynb * Update distributed-cifar10.ipynb * Update distributed-cifar10.ipynb * Update distributed-cifar10.ipynb * Update distributed-cifar10.ipynb * Update distributed-cifar10.ipynb * Update objectdetectionAzureML.ipynb * Update distributed-cifar10.ipynb * Update pytorch-iris.ipynb * Update tensorflow-mnist.ipynb * Update tensorflow-mnist.ipynb * Update tensorflow-mnist.ipynb * Update debug-and-monitor.ipynb * Update objectdetectionAzureML.ipynb * Update distributed-cifar10.ipynb * Update pytorch-iris.ipynb * Update sklearn-diabetes.ipynb * Update iris-scikit-learn.ipynb * Update sklearn-mnist.ipynb * Update tensorflow-mnist.ipynb * Update distributed-cifar10.ipynb * Update objectdetectionAzureML.ipynb * Update tensorflow-mnist.ipynb * Update tensorflow-mnist.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update distributed-cifar10.ipynb * Update objectdetectionAzureML.ipynb * Update tensorflow-mnist.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update automl-forecasting-recipe-univariate-run.ipynb * Update tensorflow-mnist.ipynb * Update e2e-object-classification-distributed-pytorch.ipynb * Update auto-ml-forecasting-bike-share.ipynb * Update auto-ml-forecasting-github-dau.ipynb * Update auto-ml-forecasting-github-dau.ipynb * Update automl-classification-task-bankmarketing-serverless.ipynb * Update automl-forecasting-orange-juice-sales-mlflow.ipynb * Update azureml-getting-started-studio.ipynb * Update automl-regression-task-hardware-performance.ipynb * Update automl-regression-task-hardware-performance.ipynb * Update automl-nlp-text-ner-task.ipynb * Update automl-nlp-text-ner-task.ipynb * Update automl-nlp-text-ner-task.ipynb * Update automl-nlp-text-ner-task.ipynb * Update automl-nlp-multiclass-sentiment-mlflow.ipynb * Update automl-nlp-multiclass-sentiment-mlflow.ipynb * Update automl-nlp-multiclass-sentiment-mlflow.ipynb * Update automl-nlp-multiclass-sentiment-mlflow.ipynb * Update automl-nlp-multiclass-sentiment.ipynb * Update automl-nlp-multilabel-paper-cat.ipynb * Update automl-forecasting-task-energy-demand-advanced.ipynb * Update automl-nlp-multiclass-sentiment-mlflow.ipynb * Update automl-nlp-multilabel-paper-cat.ipynb * Update automl-nlp-text-ner-task.ipynb * Update automl-nlp-multiclass-sentiment-mlflow.ipynb * Update automl-nlp-multiclass-sentiment.ipynb * Update automl-nlp-multilabel-paper-cat.ipynb * Update automl-nlp-text-ner-task.ipynb * Updated asr inference sample score, online and batch endpoint notebooks (#2441) * Updated asr inference sample score, online and batch endpoint notebooks * Updated openai whisper model from 8 to 10 in the batch deployment notebook * Add UAI to llama deployment (#2473) * add uai * fix typo * fix typo * reformat * Update feature store example (#2480) * update sdk version * add sdk version update * update retrieval component version * Add component-based demand forecasting notebooks (#2470) * added notebooks * linter * added exceptions, readme and workflow files * changed registries from dev to preview and prod * fixed compute creation step * deleted redundant file. Added try-exccept to avoid the http connection timeout issues * changed gpu compute type due to availability in the test region * added forece rerun setting to pipeline definition * removed forced re-run setting since in the test environment is it triggered by default. * removed repeated experiement name from the HTS nb * added pipeline description to mm and hts nb * removing single model nb and associated files * Removed local data files from the mm nb. Will use data from the public datastore. * modified mm nb to download data from public blob and save as parquet * linter * changed parameter names to be consistent with components' input names in HTS nb * changed parameter names to be consistent with components' input names in MM nb * removed code that enables private features * fixed section reference hyperlinks and removed unused impots from helper scripts * pre-formatted section headers; minor code reformat * added experiment and timout restictions to the MM and HTS nb * added check to make sure all job child runs are posted before downloading forecast results * workround for the PipelinJob bug which is stuck in the preparing state * fix llama for empty request/response * Excluded yolov5/tutorial (#2487) * update code to fix pipeline test by updating the outbound rule (#2488) * fix: Update cli/setup.sh to ensure that release candidates are actually installed during sample validation (#2492) * fix: Update instructructions in cli/setup.sh for validating a release candidate * [skip ci] Remove dead code * Add preview label to HTS and MM notebooks and update data sources (#2490) * Addedd preview label to HTS and MM notebooks, removed data folder from the HTS nb, changed data URIs in the MM nb. * fixed section reference links * dropped pre-formatting * Batch inference sample scripts for foundation models (#2367) * fill-mask, qna, summarization * Add all tasks * black formatting * Make delete compute step optional * Fix wording --------- Co-authored-by: Sumadhva Sridhar <109793745+susridhar@users.noreply.github.com> * [RAG] Move from text-davinci-003 to gpt-3.5 turbo (#2493) * mdc/monitoring cli samples (#2479) * add data collector cli samples * add custom monitoring signal samples * add relvant supporting files and additional samples * remove data from this PR, update custom samples * remove model from this PR * update email: * chore: Run black on monitoring cli samples (#2499) * chore: Update cron schedule for automated-cleanup-resources (#2498) Will go at about 1am PST * fix: updating deployments schemas (#2497) * replace the public data source to a public Azure blob one (#2500) * replace the public data source to a public Azure blob one, to solve mount/download issue * update pipeline registered data asset name to resolve conflict * update e2e flow with same data asset register meta * update file name to csv, which is the actual exist one * update code and environment * bump custom env version --------- Co-authored-by: Anthony Hu * Sdg pipeline (#2496) * revise pipeline & data notebooks * wording * fix error when data version exists * reformat * fix cli files to pass smoke test * many models and HTS cli (#2505) * Update LlaMa notebooks to use HF TGI container (#2475) * first draft * llama hf tgi (#2476) * Update notebook * update * update response format, input format, use env vars * default sharding to true * update scoring changes and notebook * udpate * update scoring script to use AACS (#2481) * update scoring script to use AACS * Add mlflow * update * fixes to scoring script * remove /n * update scoring script to have system prompt --------- Co-authored-by: Gaurav Singh * black + minor fixes * update default * add gen params validation (#2489) * add top_p in text-gen examples * score.py changes * update * fix * update scoring to include new aacs key * add checking for empty string --------- Co-authored-by: Gaurav Singh Co-authored-by: Ayush Mishra <61145377+novaturient95@users.noreply.github.com> Co-authored-by: Ayush Mishra Co-authored-by: Ke Xu Co-authored-by: xuke444 <40614413+xuke444@users.noreply.github.com> * switch from building inf env to using train env (#2508) * fix iris download error by adding iris_data.csv (#2502) * fix iris download error by adding iris_data.csv * fix precompilation issue * added valid sink argument * fix BoundsError * fix bounds error * fix distributed tf notebook (#2509) * update mscoco RAI object detection notebook to increase num masks and reduce images in dataset (#2514) * register model under outputs/mlflow-model (#2407) * register model under outputs/mlflow-model * update SDK register.py * [LLM] RAG Examples - Remove link to old registry (#2519) Co-authored-by: Gerard * Update client registry to public for AutoML forecasting components (#2522) * update client registry to public * update registries for cli components * add falcon model safe deployment notebook (#2512) * add falcon model notebook * update md cell * rename * rename registry * Add distributed TCN (v2) notebook (#2516) * distributed tcn notebook * Added cluster name to notebooks_config.ini. Increased experiment timeout to 1 hour * modified readme.py to add mlflow to requirements without explicitly calling import mlflow * re-ran readmy.py to reflect changes in the workflwo file * removed best run line from artifacts download * added logging of the best child run ID to file an ICM for the service team. * changed to public client registry * print format * add tracking URI for mlflow * replaced mlflowclient due to deprecation * added disclaimer and increase experiment limit to 60 min * added sleep import * update code to fix pipeline test by updating the outbound rule (#2542) * Update resources name (#2521) * Update keyvault name * Update attached compute name * Fix if condition * Update compute name * Update joblib import so that new scikit-learn versions can be used (#2546) * Update Llamav2 to default to hf-tgi (#2548) * default to hf_tgi * remove docker env * remove hf env vars --------- Co-authored-by: svaruag * pin compute metrics component to 0.0.10. The later versions of this component break the pipelines due to the latest changes by the component owners (#2549) * Update V2 sample joblib import so that new scikit-learn can be used (#2547) * Update V2 sample joblib import so that new scikit-learn can be used * Removed stderr check for orange juice sales because of download messages and blank lines * Add default score file for non hftgi (#2552) * add default score file for non hftgi * rev * black * add excount --------- Co-authored-by: svaruag Co-authored-by: Srujan Saggam <41802116+srsaggam@users.noreply.github.com> * Add warning message with links to the v1 forecasting notebooks (#2553) * added warning message with links to v1 forecasting notebooks * fixed default kernels; fixed link rendering; add warning to the output check * link rendering * added comma to the output check * changed the compute type due to quota issues. This notebook has been failing since 7/18/23 because of this. * changed many models v1 compute name * added warning to the notebook check * Add random numbers at the end of endpoint name in workflows (#2558) * Add random numbers at the end of endpoint name * Fix bootstrapping directory * Improve getting environment in helper script. (#2560) * Fix environment * Fix regression-explanation-featurization * Fix loading of environments * Fix linting * pin version of scikit-learn (#2540) Co-authored-by: Aishani Bhalla Co-authored-by: Vivian Li * New embedding step should use instance_count==1 (#2562) * New embedding step should use instance_count==1 * Revert registry change. --------- Co-authored-by: Lucas Pickup * Pin version of scikit-learn for inference-schema sample (#2564) Co-authored-by: Aishani Bhalla * Ignore Downloading artifact messages to stderr (#2568) * Fix multilabel notebook to work with the new scikit-learn (#2563) * Fix notebook * Fix notbook gate * Fix notebook runs * Fix workspaces * Fix multiclass/multilabel runs. * Remove v1 samples from repository (#2559) * Remove v1 samples from v2 repo * Remove v1 from table of contents * Remove v1 test files * Remove v1 test files * Remove v1 workflows * [RAG] Remove local testing raise exception (#2561) * [RAG] Match document_path_replacement_regex with AzureML-Assets Components * Remove regex changes --------- Co-authored-by: Gerard * [LLM] RAG Examples - Remove link to old registry (#2569) Co-authored-by: Gerard * Revert "Remove v1 samples from repository" (#2577) * Revert "Remove v1 samples from repository (#2559)" This reverts commit 81175f62f56bb8400a2f9c42c0dffcd1b4f5e876. * Increase size limit to allow revert * Add/update for managed online endpoint examples for vnet (#2570) * Create deploy-managed-online-endpoint-workspacevnet.sh * Rename deploy-moe-vnet-mlflow.sh to deploy-moe-vnet-mlflow-legacy.sh * Rename deploy-moe-vnet.sh to deploy-moe-vnet-legacy.sh * rename legacy vnet folder * rerun readme.py to reflect folder changes * Revert "rerun readme.py to reflect folder changes" This reverts commit cf9eedbd0034bef0d4ae5fe1ca875960fc0f5a59. * Revert "rename legacy vnet folder" This reverts commit 6ede0bfab93582426be55eee200faf202c8ba139. * clarify legacy without changing folder name * add code for possible combinations * fix: Reset PR size limit to 2MB (#2578) --------- Co-authored-by: Fred Li <51424245+fredms@users.noreply.github.com> Co-authored-by: Ilya Matiach Co-authored-by: pmanoj Co-authored-by: xuke444 <40614413+xuke444@users.noreply.github.com> Co-authored-by: Aditi Singh <114134940+s-aditi@users.noreply.github.com> Co-authored-by: Man <43016276+Man-MSFT@users.noreply.github.com> Co-authored-by: Facundo Santiago Co-authored-by: Sachin Paryani Co-authored-by: Lucas Pickup Co-authored-by: Lucas Pickup Co-authored-by: shail2208 <59747407+shail2208@users.noreply.github.com> Co-authored-by: Shail Paragbhai Shah Co-authored-by: Qianjun Xu Co-authored-by: rsethur Co-authored-by: Sethu Raman Co-authored-by: jeff-shepherd <39775772+jeff-shepherd@users.noreply.github.com> Co-authored-by: arun-rajora <108084827+arun-rajora@users.noreply.github.com> Co-authored-by: xia-xiao <87464698+xia-xiao@users.noreply.github.com> Co-authored-by: Xia Xiao Co-authored-by: erjms <90470932+erjms@users.noreply.github.com> Co-authored-by: Manoj Bableshwar Co-authored-by: Ramu Vadthyavath Co-authored-by: Hannah Westra (SHE/HER) Co-authored-by: Bhavana Co-authored-by: bhavanatumma Co-authored-by: kdestin <101366538+kdestin@users.noreply.github.com> Co-authored-by: vijetajo <40418529+vijetajo@users.noreply.github.com> Co-authored-by: tanmaybansal104 <137794577+tanmaybansal104@users.noreply.github.com> Co-authored-by: qjxu <74025864+qjxu@users.noreply.github.com> Co-authored-by: vbejan-msft <65432549+vlbejan@users.noreply.github.com> Co-authored-by: shreeyaharma <129339198+shreeyaharma@users.noreply.github.com> Co-authored-by: Sumadhva Sridhar <109793745+sumadhva30@users.noreply.github.com> Co-authored-by: Sumadhva Sridhar <109793745+susridhar@users.noreply.github.com> Co-authored-by: Gerard Woods <99283778+gjwoods@users.noreply.github.com> Co-authored-by: Alexander Hughes <108831604+ahughes-msft@users.noreply.github.com> Co-authored-by: eniac871 Co-authored-by: Anthony Hu Co-authored-by: Sheri Gilley Co-authored-by: Gaurav Singh Co-authored-by: Gaurav Singh Co-authored-by: Ayush Mishra <61145377+novaturient95@users.noreply.github.com> Co-authored-by: Ayush Mishra Co-authored-by: Ke Xu Co-authored-by: Rahul Kumar <74648335+iamrk04@users.noreply.github.com> Co-authored-by: Gerard Co-authored-by: Srujan Saggam <41802116+srsaggam@users.noreply.github.com> Co-authored-by: Vivian Li Co-authored-by: nick863 <30440255+nick863@users.noreply.github.com> Co-authored-by: Aishani Bhalla Co-authored-by: Aishani Bhalla Co-authored-by: Diondra <16376603+diondrapeck@users.noreply.github.com> Co-authored-by: SeokJin Han <4353157+dem108@users.noreply.github.com> --- .github/PULL_REQUEST_TEMPLATE.md | 1 + ...forecasting-orange-juice-sales-mlflow.json | 2 +- .../workflows/automated-cleanup-resources.yml | 2 +- ...models-custom-outputs-parquet-endpoint.yml | 8 +- ...odels-heart-classifier-mlflow-endpoint.yml | 6 +- ...uggingface-text-summarization-endpoint.yml | 8 +- ...oy-models-imagenet-classifier-endpoint.yml | 6 +- ...eploy-models-mnist-classifier-endpoint.yml | 6 +- ...ch-scoring-with-preprocessing-endpoint.yml | 71 + ...-deploy-pipelines-hello-batch-endpoint.yml | 71 + ...ines-training-with-components-endpoint.yml | 64 + ...multimodel-minimal-multimodel-endpoint.yml | 6 +- ...gle-model-conda-in-dockerfile-endpoint.yml | 6 +- ...le-model-minimal-single-model-endpoint.yml | 6 +- ...multideployment-scikit-mlflow-endpoint.yml | 6 +- ...tainer-r-multimodel-plumber-r-endpoint.yml | 6 +- ...orchserve-densenet-torchserve-endpoint.yml | 6 +- ...triton-single-model-triton-cc-endpoint.yml | 6 +- ...-online-kubernetes-kubernetes-endpoint.yml | 8 +- ...dpoints-online-managed-sample-endpoint.yml | 10 +- ...ts-online-managed-vnet-mlflow-endpoint.yml | 6 +- ...ts-online-managed-vnet-sample-endpoint.yml | 6 +- ...cal-timeseries-hts_evaluation_pipeline.yml | 51 + ...models-many_models_evaluation_pipeline.yml | 51 + ...tached-spark-pipeline-default-identity.yml | 61 + ...tached-spark-pipeline-managed-identity.yml | 66 + ...-attached-spark-pipeline-user-identity.yml | 61 + ...ched-spark-standalone-default-identity.yml | 61 + ...ched-spark-standalone-managed-identity.yml | 66 + ...ttached-spark-standalone-user-identity.yml | 61 + ...erless-spark-pipeline-default-identity.yml | 55 + ...erless-spark-pipeline-managed-identity.yml | 61 + ...erverless-spark-pipeline-user-identity.yml | 55 + ...less-spark-standalone-default-identity.yml | 55 + ...less-spark-standalone-managed-identity.yml | 61 + ...verless-spark-standalone-user-identity.yml | 55 + .../python-sdk-deploy-pytorch-mnist-job.yml | 2 +- ...n-sdk-deploy-scikit-learn-diabetes-job.yml | 2 +- ...utoml-model-testing-classification-tsi.yml | 4 +- ...l-automl-model-testing-forecasting-tsi.yml | 4 +- ...al-automl-model-testing-regression-tsi.yml | 4 +- .../python-sdk-train-deepspeed-cifar-job.yml | 2 +- ...n-sdk-train-deepspeed-transformers-job.yml | 2 +- .../python-sdk-train-fastai-mnist-job.yml | 2 +- ...n-sdk-train-fastai-mnist-mlproject-job.yml | 2 +- .../python-sdk-train-lightgbm-iris-job.yml | 2 +- ...dk-train-pytorch-cifar-distributed-job.yml | 2 +- .../python-sdk-train-pytorch-mnist-job.yml | 2 +- ...-sdk-train-pytorch-mnist-mlproject-job.yml | 2 +- ...on-sdk-train-scikit-learn-diabetes-job.yml | 2 +- ...in-scikit-learn-diabetes-mlproject-job.yml | 2 +- ...nsorflow-mnist-distributed-horovod-job.yml | 2 +- ...train-tensorflow-mnist-distributed-job.yml | 2 +- .../python-sdk-train-tensorflow-mnist-job.yml | 2 +- ...n-transformers-glue-1-aml-finetune-job.yml | 2 +- ...rmers-glue-2-aml-comparison-of-sku-job.yml | 2 +- ...transformers-glue-3-aml-hyperdrive-job.yml | 2 +- .../python-sdk-train-xgboost-iris-job.yml | 2 +- ...sification-bank-marketing-all-features.yml | 4 +- ...classification-credit-card-fraud-local.yml | 6 +- ...to-ml-classification-credit-card-fraud.yml | 4 +- ...torial-auto-ml-classification-text-dnn.yml | 4 +- ...tutorial-auto-ml-continuous-retraining.yml | 4 +- ...to-ml-forecasting-backtest-many-models.yml | 4 +- ...o-ml-forecasting-backtest-single-model.yml | 4 +- ...utorial-auto-ml-forecasting-bike-share.yml | 2 +- ...l-auto-ml-forecasting-data-preparation.yml | 4 +- ...casting-demand-forecasting-many-models.yml | 2 +- ...utorial-auto-ml-forecasting-demand-tcn.yml | 6 +- ...rial-auto-ml-forecasting-energy-demand.yml | 4 +- ...-tutorial-auto-ml-forecasting-function.yml | 6 +- ...utorial-auto-ml-forecasting-github-dau.yml | 4 +- ...ml-forecasting-hierarchical-timeseries.yml | 6 +- ...torial-auto-ml-forecasting-many-models.yml | 6 +- ...auto-ml-forecasting-orange-juice-sales.yml | 4 +- ...tutorial-auto-ml-forecasting-pipelines.yml | 6 +- ...-univariate-recipe-experiment-settings.yml | 4 +- ...sting-univariate-recipe-run-experiment.yml | 4 +- ...lassification-multiclass-batch-scoring.yml | 6 +- ...uto-ml-image-classification-multiclass.yml | 6 +- ...uto-ml-image-classification-multilabel.yml | 6 +- ...al-auto-ml-image-instance-segmentation.yml | 6 +- ...utorial-auto-ml-image-object-detection.yml | 6 +- ...l-regression-explanation-featurization.yml | 6 +- ...python-sdk-tutorial-auto-ml-regression.yml | 6 +- ...hon-sdk-tutorial-automl-nlp-multiclass.yml | 6 +- ...hon-sdk-tutorial-automl-nlp-multilabel.yml | 6 +- .../python-sdk-tutorial-automl-nlp-ner.yml | 4 +- ...ython-sdk-tutorial-automl-with-pycaret.yml | 34 - .../python-sdk-tutorial-dataset-uploads.yml | 2 +- .../python-sdk-tutorial-deploy-local.yml | 2 +- .../python-sdk-tutorial-deploy-triton.yml | 2 +- ...ication-metric-and-confidence-interval.yml | 4 +- ...rial-train-on-low-priority-aml-compute.yml | 4 +- .../python-sdk-tutorial-using-pipelines.yml | 2 +- ...n-sdk-tutorial-using-pytorch-lightning.yml | 2 +- .../python-sdk-tutorial-using-rapids.yml | 2 +- ...tcn-automl-forecasting-distributed-tcn.yml | 80 + ...-forecasting-orange-juice-sales-mlflow.yml | 2 +- ...nstance-segmentation-task-fridge-items.yml | 2 +- ..._spark_nodes-pipeline_with_spark_nodes.yml | 80 + ...nd-hierarchical-timeseries-in-pipeline.yml | 75 + ...casting-demand-many-models-in-pipeline.yml | 75 + ...ation-run_interactive_session_notebook.yml | 80 + ...jobs-spark-submit_spark_pipeline_jobs.yml} | 25 +- ...obs-spark-submit_spark_standalone_jobs.yml | 80 + ...mit_spark_standalone_jobs_managed_vnet.yml | 80 + ...rces-compute-attach_manage_spark_pools.yml | 80 + cli/README.md | 2 + ...y-managed-online-endpoint-workspacevnet.sh | 88 + ...-moe-vnet.sh => deploy-moe-vnet-legacy.sh} | 4 +- ...ow.sh => deploy-moe-vnet-mlflow-legacy.sh} | 3 +- .../imagenet-classifier/deploy-and-run.sh | 6 +- .../deployment.yml | 2 +- .../hello-batch/deployment-from-job.yml | 2 +- .../hello-batch/deployment.yml | 2 +- .../deployment-onehot/deployment.yml | 2 +- .../deployment-ordinal/deployment.yml | 2 +- cli/endpoints/online/data-collector/README.md | 7 + .../custom-blob-storage/README.md | 11 + .../custom-blob-storage.YAML | 18 + .../workspace-blob-storage/README.md | 12 + .../workspace-blob-storage-custom1.YAML | 10 + .../workspace-blob-storage-custom2.YAML | 16 + .../workspace-blob-storage-payload1.YAML | 10 + .../workspace-blob-storage-payload2.YAML | 12 + .../online/managed/inference-schema/env.yml | 2 +- .../fill-mask/fill-mask-pipeline.yml | 3 +- .../extractive-qa-pipeline.yml | 3 +- ...-and-extractive-summarization-pipeline.yml | 3 +- .../entailment-contradiction-pipeline.yml | 3 +- .../text-generation-pipeline.yml | 3 +- ...s-articles-entity-recognition-pipeline.yml | 3 +- .../translation/translation-pipeline.yml | 3 +- .../asr-batch-endpoint.sh | 96 + .../batch-deploy.yml | 13 + .../inference/fill-mask/batch-deploy.yml | 13 + .../fill-mask/fill-mask-batch-endpoint.sh | 96 + .../fill-mask/prepare-batch-dataset.py | 53 + .../question-answering/batch-deploy.yml | 13 + .../question-answering-batch-endpoint.sh | 96 + .../inference/summarization/batch-deploy.yml | 13 + .../summarization-batch-endpoint.sh | 96 + .../text-classification/batch-deploy.yml | 13 + .../text-classification-batch-endpoint.sh | 96 + .../text-generation/batch-deploy.yml | 13 + .../text-generation-batch-endpoint.sh | 96 + .../token-classification/batch-deploy.yml | 13 + .../token-classification-batch-endpoint.sh | 96 + .../inference/translation/batch-deploy.yml | 13 + .../translation/translation-batch-endpoint.sh | 96 + .../components/src/register.py | 2 +- ...this AutoML Job with CLI (Forecasting).txt | 9 + .../automl_settings_hts.yml | 18 + .../hts_evaluation_pipeline.yml | 85 + ...this AutoML Job with CLI (Forecasting).txt | 9 + .../automl_settings_many_models.yml | 19 + .../many_models_evaluation_pipeline.yml | 85 + .../uci_electro_small_cli_inference.parquet | Bin 0 -> 2744 bytes .../test/uci_electro_small_cli_test.parquet | Bin 0 -> 31370 bytes .../train/uci_electro_small_cli_train.parquet | Bin 0 -> 1663125 bytes .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- .../components/src/register.py | 2 +- cli/jobs/single-step/julia/iris/src/iris.jl | 9 +- .../single-step/julia/iris/src/iris_data.csv | 151 + cli/jobs/single-step/julia/iris/src/run.jl | 2 +- ...ached-spark-pipeline-default-identity.yml} | 6 +- ...ached-spark-pipeline-managed-identity.yml} | 6 +- ...attached-spark-pipeline-user-identity.yml} | 6 +- ...hed-spark-standalone-default-identity.yml} | 4 +- ...hed-spark-standalone-managed-identity.yml} | 4 +- ...tached-spark-standalone-user-identity.yml} | 4 +- ...rless-spark-pipeline-default-identity.yml} | 4 +- ...rless-spark-pipeline-managed-identity.yml} | 4 +- ...rverless-spark-pipeline-user-identity.yml} | 4 +- ...ess-spark-standalone-default-identity.yml} | 2 +- ...ess-spark-standalone-managed-identity.yml} | 2 +- ...erless-spark-standalone-user-identity.yml} | 2 +- cli/jobs/spark/setup-attached-resources.sh | 60 + cli/jobs/spark/setup-identities.sh | 24 + ...component.yaml => spark-job-component.yml} | 2 +- .../spark/{storage_pe.yaml => storage_pe.yml} | 0 cli/jobs/spark/user-assigned-identity.yaml | 7 - cli/jobs/spark/user-assigned-identity.yml | 6 + cli/monitoring/README.md | 29 + cli/monitoring/advanced-monitoring.yaml | 82 + .../components/custom_preprocessing/spec.yaml | 53 + .../custom_preprocessing/src/run.py | 139 + .../components/custom_signal/spec.yaml | 58 + .../components/custom_signal/src/run.py | 100 + cli/monitoring/custom-monitoring.yaml | 31 + cli/monitoring/out-of-box-monitoring.yaml | 20 + cli/readme.py | 56 +- .../attached-spark-system-identity.yaml | 9 - .../attached-spark-system-identity.yml | 9 + .../compute/attached-spark-user-identity.yaml | 11 - .../compute/attached-spark-user-identity.yml | 11 + cli/resources/compute/attached-spark.yaml | 6 - cli/resources/compute/attached-spark.yml | 6 + cli/setup.sh | 39 +- cli/upload-data-to-blob.sh | 19 + infra/bootstrapping/bootstrap.sh | 4 +- .../Resources/Compute/AMLComputeOperations.cs | 2 +- sdk/python/README.md | 4 + .../interactive_data_wrangling.ipynb | 70 +- .../interactive_data_wrangling.py | 152 + .../sdk-deploy-and-test.ipynb | 8 - .../online/managed/inference-schema/env.yml | 2 +- .../featureset_asset_offline_enabled.yaml | 1 + ...t_asset_offline_enabled_with_schedule.yaml | 1 + ...ialization and backfill feature data.ipynb | 2 +- .../Network Isolation for Feature store.ipynb | 64400 ++++++++++++++++ .../featurestore_sample/project/env/conda.yml | 2 +- .../pipelines/batch_inference_pipeline.yaml | 2 +- .../pipelines/training_pipeline.yaml | 2 +- .../sample_score.json | 1 + .../sample_score_backup.json | 1 + ...generation-streaming-online-endpoint.ipynb | 507 + .../evaluation/fill-mask/fill-mask.ipynb | 33 +- .../question-answering.ipynb | 28 +- ...ractive-and-extractive-summarization.ipynb | 39 +- .../entailment-contradiction.ipynb | 28 +- .../text-generation/text-generation.ipynb | 44 +- .../news-articles-entity-recognition.ipynb | 28 +- .../translation-romanian-to-english.ipynb | 28 +- .../question-answering/extractive-qa.ipynb | 60 +- .../finetune/summarization/news-summary.ipynb | 60 +- .../emotion-detection.ipynb | 60 +- .../token-classification.ipynb | 60 +- .../finetune/translation/translation.ipynb | 60 +- .../import/import_model_into_registry.ipynb | 2 +- .../asr-batch-endpoint.ipynb | 5 +- .../asr-online-endpoint.ipynb | 5 +- .../sample-request/sample_score.json | 4 +- .../text-generation/aacs-prepare-uai.ipynb | 448 + .../falcon-safe-online-deployment.ipynb | 617 + .../llama-files/data/file1.csv | 10 + .../llama-files/data/file2.csv | 10 + .../llama-files/data/file3.csv | 10 + .../llama-files/data/file4.csv | 10 + .../llama-files/docker_env/Dockerfile | 18 + .../docker_env/conda_dependencies.yaml | 34 + .../llama-files/score/default/score.py | 711 + .../llama-files/score/default/score_batch.py | 145 + .../llama-safe-batch-deployment.ipynb | 731 + .../llama-safe-online-deployment.ipynb | 709 + sdk/python/generative-ai/rag/README.md | 13 +- sdk/python/generative-ai/rag/TROUBLESHOOT.md | 2 +- .../generative-ai/rag/notebooks/README.md | 17 +- .../acs_mlindex_with_langchain.ipynb | 13 +- .../s3_to_acs_mlindex_with_langchain.ipynb | 13 +- .../rag/notebooks/db_copilot_with_rag.ipynb | 414 + .../data/General_and_administrative_q1.png | Bin 0 -> 11903 bytes .../data/General_and_administrative_q2.png | Bin 0 -> 15098 bytes .../notebooks/faiss/data/MSFT_FY23Q1_10Q.docx | Bin 0 -> 875618 bytes .../notebooks/faiss/data/MSFT_FY23Q2_10Q.docx | Bin 0 -> 963795 bytes .../faiss/faiss_mlindex_with_langchain.ipynb | 15 +- .../faiss/scheduled_update_faiss_index.ipynb | 13 +- ...emental_embeddings_with_tabular_data.ipynb | 1032 + .../mlindex_with_testgen_autoprompt.ipynb | 12 +- .../rag/notebooks/qa_data_generation.ipynb | 2 +- ...cation-task-bankmarketing-serverless.ipynb | 5 +- .../automl-forecasting-distributed-tcn.ipynb | 1352 + .../data/inference/MLTable | 7 + .../uci_electro_small_inference.parquet | Bin 0 -> 2746 bytes .../data/test/MLTable | 7 + .../data/test/uci_electro_small_test.parquet | Bin 0 -> 31372 bytes .../data/train/MLTable | 7 + .../train/uci_electro_small_train.parquet | Bin 0 -> 1608046 bytes .../data/valid/MLTable | 7 + .../valid/uci_electro_small_valid.parquet | Bin 0 -> 63028 bytes .../scripts/helper_scripts.py | 61 + .../auto-ml-forecasting-github-dau.ipynb | 5 +- .../helpers/forecasting_script.py | 2 +- ...orecasting-orange-juice-sales-mlflow.ipynb | 2 +- .../forecast/forecasting_script.py | 2 +- ...ml-forecasting-recipe-univariate-run.ipynb | 93 +- .../forecast/forecasting_script.py | 2 +- .../auto-ml-forecasting-bike-share.ipynb | 76 +- .../forecast/rolling_script.py | 2 +- ...ecasting-task-energy-demand-advanced.ipynb | 13 +- .../forecast/forecasting_script.py | 2 +- ...ication-multiclass-task-fridge-items.ipynb | 8 +- ...ication-multilabel-task-fridge-items.ipynb | 6 +- ...tance-segmentation-task-fridge-items.ipynb | 4 +- ...e-object-detection-task-fridge-items.ipynb | 2 +- ...toml-nlp-multiclass-sentiment-mlflow.ipynb | 48 +- .../automl-nlp-multiclass-sentiment.ipynb | 11 +- .../automl-nlp-multilabel-paper-cat.ipynb | 48 +- ...t-ner-task-distributed-with-sweeping.ipynb | 6 +- .../automl-nlp-text-ner-task.ipynb | 44 +- ...regression-task-hardware-performance.ipynb | 53 +- sdk/python/jobs/configuration.ipynb | 5 +- .../register.py | 2 +- .../register.py | 2 +- .../register.py | 2 +- .../register.py | 2 +- .../register.py | 2 +- .../register.py | 2 +- .../register.py | 2 +- .../register.py | 2 +- .../register.py | 2 +- .../pipeline_with_spark_nodes.ipynb | 10 +- ...-hierarchical-timeseries-in-pipeline.ipynb | 1394 + .../scripts/helper_scripts.py | 53 + ...sting-demand-many-models-in-pipeline.ipynb | 1493 + .../scripts/helper_scripts.py | 53 + sdk/python/jobs/pipelines/README.md | 5 +- .../debug-and-monitor/debug-and-monitor.ipynb | 10 +- .../objectdetectionAzureML.ipynb | 11 +- .../distributed-cifar10.ipynb | 36 +- .../pytorch/iris/pytorch-iris.ipynb | 9 +- ...erparameter-tune-deploy-with-pytorch.ipynb | 2 +- .../diabetes/sklearn-diabetes.ipynb | 9 +- .../scikit-learn/iris/iris-scikit-learn.ipynb | 11 +- .../scikit-learn/mnist/sklearn-mnist.ipynb | 9 +- .../tensorflow-mnist-distributed.ipynb | 28 +- .../tensorflow/mnist/tensorflow-mnist.ipynb | 15 +- ...yperparameter-tune-deploy-with-keras.ipynb | 2 +- ...arameter-tune-deploy-with-tensorflow.ipynb | 2 +- .../create_credential_less_data_store.yml | 6 + .../run_interactive_session_notebook.ipynb | 79 + .../automation/user-assigned-identity.yml | 7 + sdk/python/jobs/spark/setup_spark.sh | 203 + .../spark/submit_spark_pipeline_jobs.ipynb | 21 +- .../spark/submit_spark_standalone_jobs.ipynb | 9 +- ...t_spark_standalone_jobs_managed_vnet.ipynb | 12 +- sdk/python/notebooks_config.ini | 12 + sdk/python/readme.py | 35 +- .../compute/attach_manage_spark_pools.ipynb | 33 +- .../compute/attach_managed_spark_pools.py | 89 + ...bel-text-classification-covid-events.ipynb | 6 +- ...ashboard-text-classification-DBPedia.ipynb | 6 +- ...ard-text-classification-blbooksgenre.ipynb | 10 +- ...d-automl-image-classification-fridge.ipynb | 62 +- ...ashboard-image-classification-fridge.ipynb | 6 +- ...age-multilabel-classification-fridge.ipynb | 6 +- ...eaidashboard-object-detection-MSCOCO.ipynb | 10 +- .../azureml-getting-started-studio.ipynb | 2 +- .../azureml-in-a-day/azureml-in-a-day.ipynb | 26 +- ...t-classification-distributed-pytorch.ipynb | 25 +- .../e2e-ds-experience/e2e-ml-workflow.ipynb | 48 +- .../get-started-notebooks/explore-data.ipynb | 33 +- .../get-started-notebooks/pipeline.ipynb | 78 +- .../get-started-notebooks/quickstart.ipynb | 13 +- .../get-started-notebooks/train-model.ipynb | 15 +- v1/python-sdk/CONTRIBUTING.md | 2 +- .../1.train-single-node.ipynb | 2 +- .../2.log-with-tensorboard.ipynb | 2 +- .../3.log-with-mlflow.ipynb | 2 +- v1/python-sdk/setup-workspace.py | 8 +- ...l-nlp-text-classification-multiclass.ipynb | 2 +- .../automl-nlp-multiclass/update_env.yml | 6 +- ...l-nlp-text-classification-multilabel.ipynb | 6 +- .../automl-nlp-multilabel/update_env.yml | 6 +- .../automl-nlp-ner/automl-nlp-ner.ipynb | 2 +- .../automl-with-azureml/automl_env.yml | 13 +- .../automl-with-azureml/automl_env_linux.yml | 32 +- .../automl-with-azureml/automl_env_mac.yml | 18 +- .../auto-ml-classification-text-dnn.ipynb | 4 +- .../classification-text-dnn/helper.py | 12 +- .../classification-text-dnn/infer.py | 2 +- .../auto-ml-forecasting-bike-share.ipynb | 43 +- .../forecasting_script.py | 2 +- .../scripts/inference_script_naive.py | 2 +- .../scripts/inference_script_naive.py | 2 +- .../scripts/inference_script_tcn.py | 2 +- .../auto-ml-forecasting-energy-demand.ipynb | 401 +- .../forecasting_script.py | 2 +- .../auto-ml-forecasting-github-dau.ipynb | 9 +- .../forecasting-github-dau/infer.py | 2 +- ...-forecasting-hierarchical-timeseries.ipynb | 9 +- .../auto-ml-forecasting-many-models.ipynb | 17 +- ...to-ml-forecasting-orange-juice-sales.ipynb | 44 +- .../forecasting_script.py | 2 +- .../auto-ml-forecasting-pipelines.ipynb | 57 +- .../forecasting-pipelines/scripts/infer.py | 2 +- ...nivariate-recipe-experiment-settings.ipynb | 1013 +- ...ing-univariate-recipe-run-experiment.ipynb | 1197 +- .../forecasting_script.py | 2 +- .../automl-with-azureml/generate_workflows.py | 4 +- ...ssification-multiclass-batch-scoring.ipynb | 6 +- ...o-ml-image-classification-multiclass.ipynb | 8 +- ...o-ml-image-classification-multilabel.ipynb | 8 +- .../auto-ml-image-instance-segmentation.ipynb | 8 +- .../auto-ml-image-object-detection.ipynb | 8 +- ...regression-explanation-featurization.ipynb | 15 +- .../dataset-and-pipelineparameter.ipynb | 2 +- .../image-classification.ipynb | 2 +- .../publish-and-run-using-rest-endpoint.ipynb | 2 +- .../style-transfer-parallel-run.ipynb | 4 +- .../train/pytorch/cifar-distributed/job.py | 2 +- .../mnist-distributed-horovod/job.py | 2 +- .../train/tensorflow/mnist-distributed/job.py | 2 +- .../transformers/glue/1-aml-finetune-job.py | 2 +- .../glue/2-aml-comparison-of-sku-job.py | 2 +- .../transformers/glue/3-aml-hyperdrive-job.py | 2 +- .../validation/check_notebook_output.py | 20 +- 405 files changed, 81513 insertions(+), 2554 deletions(-) create mode 100644 .github/workflows/cli-endpoints-batch-deploy-pipelines-batch-scoring-with-preprocessing-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-batch-deploy-pipelines-hello-batch-endpoint.yml create mode 100644 .github/workflows/cli-endpoints-batch-deploy-pipelines-training-with-components-endpoint.yml create mode 100644 .github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline.yml create mode 100644 .github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline.yml create mode 100644 .github/workflows/cli-jobs-spark-attached-spark-pipeline-default-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-attached-spark-pipeline-managed-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-attached-spark-pipeline-user-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-attached-spark-standalone-default-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-attached-spark-standalone-managed-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-attached-spark-standalone-user-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-serverless-spark-pipeline-default-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-serverless-spark-pipeline-managed-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-serverless-spark-pipeline-user-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-serverless-spark-standalone-default-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-serverless-spark-standalone-managed-identity.yml create mode 100644 .github/workflows/cli-jobs-spark-serverless-spark-standalone-user-identity.yml delete mode 100644 .github/workflows/python-sdk-tutorial-automl-with-pycaret.yml create mode 100644 .github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-distributed-tcn-automl-forecasting-distributed-tcn.yml create mode 100644 .github/workflows/sdk-jobs-pipelines-1i_pipeline_with_spark_nodes-pipeline_with_spark_nodes.yml create mode 100644 .github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-hierarchical-timeseries-in-pipeline-automl-forecasting-demand-hierarchical-timeseries-in-pipeline.yml create mode 100644 .github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-many-models-in-pipeline-automl-forecasting-demand-many-models-in-pipeline.yml create mode 100644 .github/workflows/sdk-jobs-spark-automation-run_interactive_session_notebook.yml rename .github/workflows/{sdk-jobs-single-step-pytorch-distributed-training-yolov5-yolov5-tutorial.yml => sdk-jobs-spark-submit_spark_pipeline_jobs.yml} (76%) create mode 100644 .github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs.yml create mode 100644 .github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs_managed_vnet.yml create mode 100644 .github/workflows/sdk-resources-compute-attach_manage_spark_pools.yml create mode 100644 cli/deploy-managed-online-endpoint-workspacevnet.sh rename cli/{deploy-moe-vnet.sh => deploy-moe-vnet-legacy.sh} (96%) rename cli/{deploy-moe-vnet-mlflow.sh => deploy-moe-vnet-mlflow-legacy.sh} (96%) create mode 100644 cli/endpoints/online/data-collector/README.md create mode 100644 cli/endpoints/online/data-collector/custom-blob-storage/README.md create mode 100644 cli/endpoints/online/data-collector/custom-blob-storage/custom-blob-storage.YAML create mode 100644 cli/endpoints/online/data-collector/workspace-blob-storage/README.md create mode 100644 cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom1.YAML create mode 100644 cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom2.YAML create mode 100644 cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload1.YAML create mode 100644 cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload2.YAML create mode 100644 cli/foundation-models/system/inference/automatic-speech-recognition/asr-batch-endpoint.sh create mode 100644 cli/foundation-models/system/inference/automatic-speech-recognition/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/fill-mask/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/fill-mask/fill-mask-batch-endpoint.sh create mode 100644 cli/foundation-models/system/inference/fill-mask/prepare-batch-dataset.py create mode 100644 cli/foundation-models/system/inference/question-answering/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/question-answering/question-answering-batch-endpoint.sh create mode 100644 cli/foundation-models/system/inference/summarization/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/summarization/summarization-batch-endpoint.sh create mode 100644 cli/foundation-models/system/inference/text-classification/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/text-classification/text-classification-batch-endpoint.sh create mode 100644 cli/foundation-models/system/inference/text-generation/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/text-generation/text-generation-batch-endpoint.sh create mode 100644 cli/foundation-models/system/inference/token-classification/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/token-classification/token-classification-batch-endpoint.sh create mode 100644 cli/foundation-models/system/inference/translation/batch-deploy.yml create mode 100644 cli/foundation-models/system/inference/translation/translation-batch-endpoint.sh create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/How to Run this AutoML Job with CLI (Forecasting).txt create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/automl_settings_hts.yml create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/hts_evaluation_pipeline.yml create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/How to Run this AutoML Job with CLI (Forecasting).txt create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/automl_settings_many_models.yml create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/many_models_evaluation_pipeline.yml create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/inference/uci_electro_small_cli_inference.parquet create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/test/uci_electro_small_cli_test.parquet create mode 100644 cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/train/uci_electro_small_cli_train.parquet create mode 100644 cli/jobs/single-step/julia/iris/src/iris_data.csv rename cli/jobs/spark/{attached-spark-pipeline-default-identity.yaml => attached-spark-pipeline-default-identity.yml} (76%) rename cli/jobs/spark/{attached-spark-pipeline-managed-identity.yaml => attached-spark-pipeline-managed-identity.yml} (77%) rename cli/jobs/spark/{attached-spark-pipeline-user-identity.yaml => attached-spark-pipeline-user-identity.yml} (77%) rename cli/jobs/spark/{attached-spark-standalone-default-identity.yaml => attached-spark-standalone-default-identity.yml} (84%) rename cli/jobs/spark/{attached-spark-standalone-managed-identity.yaml => attached-spark-standalone-managed-identity.yml} (85%) rename cli/jobs/spark/{attached-spark-standalone-user-identity.yaml => attached-spark-standalone-user-identity.yml} (85%) rename cli/jobs/spark/{serverless-spark-pipeline-default-identity.yaml => serverless-spark-pipeline-default-identity.yml} (83%) rename cli/jobs/spark/{serverless-spark-pipeline-managed-identity.yaml => serverless-spark-pipeline-managed-identity.yml} (84%) rename cli/jobs/spark/{serverless-spark-pipeline-user-identity.yaml => serverless-spark-pipeline-user-identity.yml} (84%) rename cli/jobs/spark/{serverless-spark-standalone-default-identity.yaml => serverless-spark-standalone-default-identity.yml} (90%) rename cli/jobs/spark/{serverless-spark-standalone-managed-identity.yaml => serverless-spark-standalone-managed-identity.yml} (90%) rename cli/jobs/spark/{serverless-spark-standalone-user-identity.yaml => serverless-spark-standalone-user-identity.yml} (90%) create mode 100644 cli/jobs/spark/setup-attached-resources.sh create mode 100644 cli/jobs/spark/setup-identities.sh rename cli/jobs/spark/{spark-job-component.yaml => spark-job-component.yml} (89%) rename cli/jobs/spark/{storage_pe.yaml => storage_pe.yml} (100%) delete mode 100644 cli/jobs/spark/user-assigned-identity.yaml create mode 100644 cli/jobs/spark/user-assigned-identity.yml create mode 100644 cli/monitoring/README.md create mode 100644 cli/monitoring/advanced-monitoring.yaml create mode 100644 cli/monitoring/components/custom_preprocessing/spec.yaml create mode 100644 cli/monitoring/components/custom_preprocessing/src/run.py create mode 100644 cli/monitoring/components/custom_signal/spec.yaml create mode 100644 cli/monitoring/components/custom_signal/src/run.py create mode 100644 cli/monitoring/custom-monitoring.yaml create mode 100644 cli/monitoring/out-of-box-monitoring.yaml delete mode 100644 cli/resources/compute/attached-spark-system-identity.yaml create mode 100644 cli/resources/compute/attached-spark-system-identity.yml delete mode 100644 cli/resources/compute/attached-spark-user-identity.yaml create mode 100644 cli/resources/compute/attached-spark-user-identity.yml delete mode 100644 cli/resources/compute/attached-spark.yaml create mode 100644 cli/resources/compute/attached-spark.yml create mode 100644 cli/upload-data-to-blob.sh create mode 100644 sdk/python/data-wrangling/interactive_data_wrangling.py create mode 100644 sdk/python/featurestore_sample/notebooks/sdk_and_cli/network_isolation/Network Isolation for Feature store.ipynb create mode 100644 sdk/python/foundation-models/huggingface/inference/text-generation-streaming/sample_score.json create mode 100644 sdk/python/foundation-models/huggingface/inference/text-generation-streaming/sample_score_backup.json create mode 100644 sdk/python/foundation-models/huggingface/inference/text-generation-streaming/text-generation-streaming-online-endpoint.ipynb create mode 100644 sdk/python/foundation-models/system/inference/text-generation/aacs-prepare-uai.ipynb create mode 100644 sdk/python/foundation-models/system/inference/text-generation/falcon-safe-online-deployment.ipynb create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/data/file1.csv create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/data/file2.csv create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/data/file3.csv create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/data/file4.csv create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/docker_env/Dockerfile create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/docker_env/conda_dependencies.yaml create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/score/default/score.py create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-files/score/default/score_batch.py create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-safe-batch-deployment.ipynb create mode 100644 sdk/python/foundation-models/system/inference/text-generation/llama-safe-online-deployment.ipynb create mode 100644 sdk/python/generative-ai/rag/notebooks/db_copilot_with_rag.ipynb create mode 100644 sdk/python/generative-ai/rag/notebooks/faiss/data/General_and_administrative_q1.png create mode 100644 sdk/python/generative-ai/rag/notebooks/faiss/data/General_and_administrative_q2.png create mode 100644 sdk/python/generative-ai/rag/notebooks/faiss/data/MSFT_FY23Q1_10Q.docx create mode 100644 sdk/python/generative-ai/rag/notebooks/faiss/data/MSFT_FY23Q2_10Q.docx create mode 100644 sdk/python/generative-ai/rag/notebooks/faiss/url_to_faiss_incremental_embeddings_with_tabular_data.ipynb create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/automl-forecasting-distributed-tcn.ipynb create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/inference/MLTable create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/inference/uci_electro_small_inference.parquet create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/test/MLTable create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/test/uci_electro_small_test.parquet create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/train/MLTable create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/train/uci_electro_small_train.parquet create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/valid/MLTable create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/data/valid/uci_electro_small_valid.parquet create mode 100644 sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/scripts/helper_scripts.py create mode 100644 sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-hierarchical-timeseries-in-pipeline/automl-forecasting-demand-hierarchical-timeseries-in-pipeline.ipynb create mode 100644 sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-hierarchical-timeseries-in-pipeline/scripts/helper_scripts.py create mode 100644 sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-many-models-in-pipeline/automl-forecasting-demand-many-models-in-pipeline.ipynb create mode 100644 sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-many-models-in-pipeline/scripts/helper_scripts.py create mode 100644 sdk/python/jobs/spark/automation/create_credential_less_data_store.yml create mode 100644 sdk/python/jobs/spark/automation/run_interactive_session_notebook.ipynb create mode 100644 sdk/python/jobs/spark/automation/user-assigned-identity.yml create mode 100644 sdk/python/jobs/spark/setup_spark.sh create mode 100644 sdk/python/resources/compute/attach_managed_spark_pools.py diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 6c43fbae12..3fb98af839 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,4 +5,5 @@ - [ ] I have read the [contribution guidelines](https://github.com/Azure/azureml-examples/blob/main/CONTRIBUTING.md) +- [ ] I have coordinated with the docs team (mldocs@microsoft.com) if this PR deletes files or changes any file names or file extensions. - [ ] Pull request includes test coverage for the included changes. diff --git a/.github/test/sdk/jobs/automl-standalone-jobs/automl-forecasting-orange-juice-sales/automl-forecasting-orange-juice-sales-mlflow.json b/.github/test/sdk/jobs/automl-standalone-jobs/automl-forecasting-orange-juice-sales/automl-forecasting-orange-juice-sales-mlflow.json index c3f4953190..2e32415c02 100644 --- a/.github/test/sdk/jobs/automl-standalone-jobs/automl-forecasting-orange-juice-sales/automl-forecasting-orange-juice-sales-mlflow.json +++ b/.github/test/sdk/jobs/automl-standalone-jobs/automl-forecasting-orange-juice-sales/automl-forecasting-orange-juice-sales-mlflow.json @@ -3,7 +3,7 @@ { "name": "check notebook output", "params": { - "check": "warning stderr" + "check": "warning" } }, { diff --git a/.github/workflows/automated-cleanup-resources.yml b/.github/workflows/automated-cleanup-resources.yml index 4bea59e382..76cbd9a5cb 100644 --- a/.github/workflows/automated-cleanup-resources.yml +++ b/.github/workflows/automated-cleanup-resources.yml @@ -2,7 +2,7 @@ name: automated-cleanup-resources on: workflow_dispatch: schedule: - - cron: "45 */12 * * *" + - cron: "0 8 * * *" pull_request: branches: - main diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml index f5020fc873..35539a87f1 100644 --- a/.github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml +++ b/.github/workflows/cli-endpoints-batch-deploy-models-custom-outputs-parquet-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n customoutputsparquetendpoint -y + az ml batch-endpoint delete -n tomoutputsparquetendpoint8741 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,18 +54,18 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/batch/deploy-models/custom-outputs-parquet/endpoint.yml - az ml batch-endpoint create -n customoutputsparquetendpoint -f endpoints/batch/deploy-models/custom-outputs-parquet/endpoint.yml + az ml batch-endpoint create -n tomoutputsparquetendpoint8741 -f endpoints/batch/deploy-models/custom-outputs-parquet/endpoint.yml working-directory: cli - name: create deployment run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/batch/deploy-models/custom-outputs-parquet/deployment.yml - az ml batch-deployment create -e customoutputsparquetendpoint -f endpoints/batch/deploy-models/custom-outputs-parquet/deployment.yml + az ml batch-deployment create -e tomoutputsparquetendpoint8741 -f endpoints/batch/deploy-models/custom-outputs-parquet/deployment.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n customoutputsparquetendpoint -y + az ml batch-endpoint delete -n tomoutputsparquetendpoint8741 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml index e7e438ff28..574632363f 100644 --- a/.github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml +++ b/.github/workflows/cli-endpoints-batch-deploy-models-heart-classifier-mlflow-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n heartclassifiermlflowendpoint -y + az ml batch-endpoint delete -n tclassifiermlflowendpoint3191 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint.yml - az ml batch-endpoint create -n heartclassifiermlflowendpoint -f endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint.yml + az ml batch-endpoint create -n tclassifiermlflowendpoint3191 -f endpoints/batch/deploy-models/heart-classifier-mlflow/endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n heartclassifiermlflowendpoint -y + az ml batch-endpoint delete -n tclassifiermlflowendpoint3191 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml index 972168fb22..f8e62d8b4f 100644 --- a/.github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml +++ b/.github/workflows/cli-endpoints-batch-deploy-models-huggingface-text-summarization-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n facetextsummarizationendpoint -y + az ml batch-endpoint delete -n textsummarizationendpoint2742 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,18 +54,18 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/batch/deploy-models/huggingface-text-summarization/endpoint.yml - az ml batch-endpoint create -n facetextsummarizationendpoint -f endpoints/batch/deploy-models/huggingface-text-summarization/endpoint.yml + az ml batch-endpoint create -n textsummarizationendpoint2742 -f endpoints/batch/deploy-models/huggingface-text-summarization/endpoint.yml working-directory: cli - name: create deployment run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml - az ml batch-deployment create -e facetextsummarizationendpoint -f endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml + az ml batch-deployment create -e textsummarizationendpoint2742 -f endpoints/batch/deploy-models/huggingface-text-summarization/deployment.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n facetextsummarizationendpoint -y + az ml batch-endpoint delete -n textsummarizationendpoint2742 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml index b95338bb40..e4f3fe09b6 100644 --- a/.github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml +++ b/.github/workflows/cli-endpoints-batch-deploy-models-imagenet-classifier-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n elsimagenetclassifierendpoint -y + az ml batch-endpoint delete -n imagenetclassifierendpoint3948 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/batch/deploy-models/imagenet-classifier/endpoint.yml - az ml batch-endpoint create -n elsimagenetclassifierendpoint -f endpoints/batch/deploy-models/imagenet-classifier/endpoint.yml + az ml batch-endpoint create -n imagenetclassifierendpoint3948 -f endpoints/batch/deploy-models/imagenet-classifier/endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n elsimagenetclassifierendpoint -y + az ml batch-endpoint delete -n imagenetclassifierendpoint3948 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml index b76b98799b..2249264c40 100644 --- a/.github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml +++ b/.github/workflows/cli-endpoints-batch-deploy-models-mnist-classifier-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n modelsmnistclassifierendpoint -y + az ml batch-endpoint delete -n lsmnistclassifierendpoint9980 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/batch/deploy-models/mnist-classifier/endpoint.yml - az ml batch-endpoint create -n modelsmnistclassifierendpoint -f endpoints/batch/deploy-models/mnist-classifier/endpoint.yml + az ml batch-endpoint create -n lsmnistclassifierendpoint9980 -f endpoints/batch/deploy-models/mnist-classifier/endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml batch-endpoint delete -n modelsmnistclassifierendpoint -y + az ml batch-endpoint delete -n lsmnistclassifierendpoint9980 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-pipelines-batch-scoring-with-preprocessing-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-pipelines-batch-scoring-with-preprocessing-endpoint.yml new file mode 100644 index 0000000000..d8e2b77605 --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-pipelines-batch-scoring-with-preprocessing-endpoint.yml @@ -0,0 +1,71 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-pipelines-batch-scoring-with-preprocessing-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/** + - cli/endpoints/batch/** + - infra/bootstrapping/** + - .github/workflows/cli-endpoints-batch-deploy-pipelines-batch-scoring-with-preprocessing-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + az ml batch-endpoint delete -n withpreprocessingendpoint6601 -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + cat endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/endpoint.yml + az ml batch-endpoint create -n withpreprocessingendpoint6601 -f endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/endpoint.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + cat endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/deployment.yml + az ml batch-deployment create -e withpreprocessingendpoint6601 -f endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/deployment.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + az ml batch-endpoint delete -n withpreprocessingendpoint6601 -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-pipelines-hello-batch-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-pipelines-hello-batch-endpoint.yml new file mode 100644 index 0000000000..531b004ff6 --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-pipelines-hello-batch-endpoint.yml @@ -0,0 +1,71 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-pipelines-hello-batch-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-pipelines/hello-batch/** + - cli/endpoints/batch/** + - infra/bootstrapping/** + - .github/workflows/cli-endpoints-batch-deploy-pipelines-hello-batch-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + az ml batch-endpoint delete -n pelineshellobatchendpoint9006 -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + cat endpoints/batch/deploy-pipelines/hello-batch/endpoint.yml + az ml batch-endpoint create -n pelineshellobatchendpoint9006 -f endpoints/batch/deploy-pipelines/hello-batch/endpoint.yml + working-directory: cli + - name: create deployment + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + cat endpoints/batch/deploy-pipelines/hello-batch/deployment.yml + az ml batch-deployment create -e pelineshellobatchendpoint9006 -f endpoints/batch/deploy-pipelines/hello-batch/deployment.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + az ml batch-endpoint delete -n pelineshellobatchendpoint9006 -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-batch-deploy-pipelines-training-with-components-endpoint.yml b/.github/workflows/cli-endpoints-batch-deploy-pipelines-training-with-components-endpoint.yml new file mode 100644 index 0000000000..4380b774b2 --- /dev/null +++ b/.github/workflows/cli-endpoints-batch-deploy-pipelines-training-with-components-endpoint.yml @@ -0,0 +1,64 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-endpoints-batch-deploy-pipelines-training-with-components-endpoint +on: + workflow_dispatch: + schedule: + - cron: "18 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/endpoints/batch/deploy-pipelines/training-with-components/** + - cli/endpoints/batch/** + - infra/bootstrapping/** + - .github/workflows/cli-endpoints-batch-deploy-pipelines-training-with-components-endpoint.yml + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: delete endpoint if existing + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + az ml batch-endpoint delete -n ingwithcomponentsendpoint9219 -y + working-directory: cli + continue-on-error: true + - name: create endpoint + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + cat endpoints/batch/deploy-pipelines/training-with-components/endpoint.yml + az ml batch-endpoint create -n ingwithcomponentsendpoint9219 -f endpoints/batch/deploy-pipelines/training-with-components/endpoint.yml + working-directory: cli + - name: cleanup endpoint + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + az ml batch-endpoint delete -n ingwithcomponentsendpoint9219 -y + working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml index 2d1801fc28..89ad70c54e 100644 --- a/.github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-custom-container-minimal-multimodel-minimal-multimodel-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n odelminimalmultimodelendpoint -y + az ml online-endpoint delete -n minimalmultimodelendpoint9199 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml - az ml online-endpoint create -n odelminimalmultimodelendpoint -f endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml + az ml online-endpoint create -n minimalmultimodelendpoint9199 -f endpoints/online/custom-container/minimal/multimodel/minimal-multimodel-endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n odelminimalmultimodelendpoint -y + az ml online-endpoint delete -n minimalmultimodelendpoint9199 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml index dd1c463a13..c2b25884cc 100644 --- a/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-conda-in-dockerfile-minimal-single-model-conda-in-dockerfile-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n delcondaindockerfileendpoint -y + az ml online-endpoint delete -n condaindockerfileendpoint3179 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml - az ml online-endpoint create -n delcondaindockerfileendpoint -f endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml + az ml online-endpoint create -n condaindockerfileendpoint3179 -f endpoints/online/custom-container/minimal/single-model/conda-in-dockerfile/minimal-single-model-conda-in-dockerfile-endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n delcondaindockerfileendpoint -y + az ml online-endpoint delete -n condaindockerfileendpoint3179 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml index d54bddba7a..bbf2a417e0 100644 --- a/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-custom-container-minimal-single-model-minimal-single-model-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n elminimalsinglemodelendpoint -y + az ml online-endpoint delete -n inimalsinglemodelendpoint2770 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml - az ml online-endpoint create -n elminimalsinglemodelendpoint -f endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml + az ml online-endpoint create -n inimalsinglemodelendpoint2770 -f endpoints/online/custom-container/minimal/single-model/minimal-single-model-endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n elminimalsinglemodelendpoint -y + az ml online-endpoint delete -n inimalsinglemodelendpoint2770 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml index ceb21e7c61..2374135ad4 100644 --- a/.github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-custom-container-mlflow-multideployment-scikit-mlflow-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n eploymentscikitmlflowendpoint -y + az ml online-endpoint delete -n ymentscikitmlflowendpoint4848 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml - az ml online-endpoint create -n eploymentscikitmlflowendpoint -f endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml + az ml online-endpoint create -n ymentscikitmlflowendpoint4848 -f endpoints/online/custom-container/mlflow/multideployment-scikit/mlflow-endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n eploymentscikitmlflowendpoint -y + az ml online-endpoint delete -n ymentscikitmlflowendpoint4848 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml index 68e55bbab3..e25cfd01b3 100644 --- a/.github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-custom-container-r-multimodel-plumber-r-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n rmultimodelplumberrendpoint -y + az ml online-endpoint delete -n ultimodelplumberrendpoint9536 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/custom-container/r/multimodel-plumber/r-endpoint.yml - az ml online-endpoint create -n rmultimodelplumberrendpoint -f endpoints/online/custom-container/r/multimodel-plumber/r-endpoint.yml + az ml online-endpoint create -n ultimodelplumberrendpoint9536 -f endpoints/online/custom-container/r/multimodel-plumber/r-endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n rmultimodelplumberrendpoint -y + az ml online-endpoint delete -n ultimodelplumberrendpoint9536 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml index cf4baf8c0d..67941ea48a 100644 --- a/.github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-custom-container-torchserve-densenet-torchserve-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n rvedensenettorchserveendpoint -y + az ml online-endpoint delete -n densenettorchserveendpoint7556 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint.yml - az ml online-endpoint create -n rvedensenettorchserveendpoint -f endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint.yml + az ml online-endpoint create -n densenettorchserveendpoint7556 -f endpoints/online/custom-container/torchserve/densenet/torchserve-endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n rvedensenettorchserveendpoint -y + az ml online-endpoint delete -n densenettorchserveendpoint7556 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml b/.github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml index e464d7211b..03c70671a5 100644 --- a/.github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-custom-container-triton-single-model-triton-cc-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n singlemodeltritonccendpoint -y + az ml online-endpoint delete -n glemodeltritonccendpoint4238 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml - az ml online-endpoint create -n singlemodeltritonccendpoint -f endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml + az ml online-endpoint create -n glemodeltritonccendpoint4238 -f endpoints/online/custom-container/triton/single-model/triton-cc-endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n singlemodeltritonccendpoint -y + az ml online-endpoint delete -n glemodeltritonccendpoint4238 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml b/.github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml index 1c96e775c6..4ce466a79f 100644 --- a/.github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-kubernetes-kubernetes-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n ekuberneteskubernetesendpoint -y + az ml online-endpoint delete -n berneteskubernetesendpoint4232 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,18 +54,18 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/kubernetes/kubernetes-endpoint.yml - az ml online-endpoint create -n ekuberneteskubernetesendpoint -f endpoints/online/kubernetes/kubernetes-endpoint.yml + az ml online-endpoint create -n berneteskubernetesendpoint4232 -f endpoints/online/kubernetes/kubernetes-endpoint.yml working-directory: cli - name: create deployment run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/kubernetes/kubernetes-blue-deployment.yml - az ml online-deployment create -e ekuberneteskubernetesendpoint -f endpoints/online/kubernetes/kubernetes-blue-deployment.yml + az ml online-deployment create -e berneteskubernetesendpoint4232 -f endpoints/online/kubernetes/kubernetes-blue-deployment.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n ekuberneteskubernetesendpoint -y + az ml online-endpoint delete -n berneteskubernetesendpoint4232 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-managed-sample-endpoint.yml b/.github/workflows/cli-endpoints-online-managed-sample-endpoint.yml index 313158780e..128a17adbb 100644 --- a/.github/workflows/cli-endpoints-online-managed-sample-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-managed-sample-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n sonlinemanagedsampleendpoint -y + az ml online-endpoint delete -n linemanagedsampleendpoint6303 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,25 +54,25 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/managed/sample/endpoint.yml - az ml online-endpoint create -n sonlinemanagedsampleendpoint -f endpoints/online/managed/sample/endpoint.yml + az ml online-endpoint create -n linemanagedsampleendpoint6303 -f endpoints/online/managed/sample/endpoint.yml working-directory: cli - name: create deployment run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/managed/sample/blue-deployment.yml - az ml online-deployment create -e sonlinemanagedsampleendpoint -f endpoints/online/managed/sample/blue-deployment.yml + az ml online-deployment create -e linemanagedsampleendpoint6303 -f endpoints/online/managed/sample/blue-deployment.yml working-directory: cli - name: create deployment run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/managed/sample/green-deployment.yml - az ml online-deployment create -e sonlinemanagedsampleendpoint -f endpoints/online/managed/sample/green-deployment.yml + az ml online-deployment create -e linemanagedsampleendpoint6303 -f endpoints/online/managed/sample/green-deployment.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n sonlinemanagedsampleendpoint -y + az ml online-endpoint delete -n linemanagedsampleendpoint6303 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml b/.github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml index 1ae8c96869..5b3d13f00e 100644 --- a/.github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-managed-vnet-mlflow-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n inemanagedvnetmlflowendpoint -y + az ml online-endpoint delete -n managedvnetmlflowendpoint6555 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/managed/vnet/mlflow/endpoint.yml - az ml online-endpoint create -n inemanagedvnetmlflowendpoint -f endpoints/online/managed/vnet/mlflow/endpoint.yml + az ml online-endpoint create -n managedvnetmlflowendpoint6555 -f endpoints/online/managed/vnet/mlflow/endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n inemanagedvnetmlflowendpoint -y + az ml online-endpoint delete -n managedvnetmlflowendpoint6555 -y working-directory: cli diff --git a/.github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml b/.github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml index 29fca188f9..3f7493c9a0 100644 --- a/.github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml +++ b/.github/workflows/cli-endpoints-online-managed-vnet-sample-endpoint.yml @@ -46,7 +46,7 @@ jobs: run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n inemanagedvnetsampleendpoint -y + az ml online-endpoint delete -n managedvnetsampleendpoint8383 -y working-directory: cli continue-on-error: true - name: create endpoint @@ -54,11 +54,11 @@ jobs: source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; cat endpoints/online/managed/vnet/sample/endpoint.yml - az ml online-endpoint create -n inemanagedvnetsampleendpoint -f endpoints/online/managed/vnet/sample/endpoint.yml + az ml online-endpoint create -n managedvnetsampleendpoint8383 -f endpoints/online/managed/vnet/sample/endpoint.yml working-directory: cli - name: cleanup endpoint run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; - az ml online-endpoint delete -n inemanagedvnetsampleendpoint -y + az ml online-endpoint delete -n managedvnetsampleendpoint8383 -y working-directory: cli diff --git a/.github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline.yml b/.github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline.yml new file mode 100644 index 0000000000..8842a5483c --- /dev/null +++ b/.github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline.yml @@ -0,0 +1,51 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline +on: + workflow_dispatch: + schedule: + - cron: "55 9/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline.yml + - cli/run-pipeline-jobs.sh + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../../../../run-job.sh hts_evaluation_pipeline.yml + working-directory: cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries diff --git a/.github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline.yml b/.github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline.yml new file mode 100644 index 0000000000..218343b066 --- /dev/null +++ b/.github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline.yml @@ -0,0 +1,51 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline +on: + workflow_dispatch: + schedule: + - cron: "23 6/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline.yml + - cli/run-pipeline-jobs.sh + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../../../../run-job.sh many_models_evaluation_pipeline.yml + working-directory: cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models diff --git a/.github/workflows/cli-jobs-spark-attached-spark-pipeline-default-identity.yml b/.github/workflows/cli-jobs-spark-attached-spark-pipeline-default-identity.yml new file mode 100644 index 0000000000..3d375dfabc --- /dev/null +++ b/.github/workflows/cli-jobs-spark-attached-spark-pipeline-default-identity.yml @@ -0,0 +1,61 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-attached-spark-pipeline-default-identity +on: + workflow_dispatch: + schedule: + - cron: "30 9/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-attached-spark-pipeline-default-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup attached spark + working-directory: cli + continue-on-error: true + run: | + bash -x jobs/spark/setup-attached-resources.sh resources/compute/attached-spark.yml jobs/spark/attached-spark-pipeline-default-identity.yml + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh attached-spark-pipeline-default-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-attached-spark-pipeline-managed-identity.yml b/.github/workflows/cli-jobs-spark-attached-spark-pipeline-managed-identity.yml new file mode 100644 index 0000000000..3c976b95d7 --- /dev/null +++ b/.github/workflows/cli-jobs-spark-attached-spark-pipeline-managed-identity.yml @@ -0,0 +1,66 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-attached-spark-pipeline-managed-identity +on: + workflow_dispatch: + schedule: + - cron: "43 7/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-attached-spark-pipeline-managed-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup identities + run: | + bash -x setup-identities.sh + working-directory: cli/jobs/spark + continue-on-error: true + - name: setup attached spark + working-directory: cli + continue-on-error: true + run: | + bash -x jobs/spark/setup-attached-resources.sh resources/compute/attached-spark-system-identity.yml jobs/spark/attached-spark-pipeline-managed-identity.yml + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh attached-spark-pipeline-managed-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-attached-spark-pipeline-user-identity.yml b/.github/workflows/cli-jobs-spark-attached-spark-pipeline-user-identity.yml new file mode 100644 index 0000000000..3f44b9851b --- /dev/null +++ b/.github/workflows/cli-jobs-spark-attached-spark-pipeline-user-identity.yml @@ -0,0 +1,61 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-attached-spark-pipeline-user-identity +on: + workflow_dispatch: + schedule: + - cron: "15 4/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-attached-spark-pipeline-user-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup attached spark + working-directory: cli + continue-on-error: true + run: | + bash -x jobs/spark/setup-attached-resources.sh resources/compute/attached-spark-user-identity.yml jobs/spark/attached-spark-pipeline-user-identity.yml + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh attached-spark-pipeline-user-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-attached-spark-standalone-default-identity.yml b/.github/workflows/cli-jobs-spark-attached-spark-standalone-default-identity.yml new file mode 100644 index 0000000000..565f9967cd --- /dev/null +++ b/.github/workflows/cli-jobs-spark-attached-spark-standalone-default-identity.yml @@ -0,0 +1,61 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-attached-spark-standalone-default-identity +on: + workflow_dispatch: + schedule: + - cron: "15 0/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-attached-spark-standalone-default-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup attached spark + working-directory: cli + continue-on-error: true + run: | + bash -x jobs/spark/setup-attached-resources.sh resources/compute/attached-spark.yml jobs/spark/attached-spark-standalone-default-identity.yml + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh attached-spark-standalone-default-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-attached-spark-standalone-managed-identity.yml b/.github/workflows/cli-jobs-spark-attached-spark-standalone-managed-identity.yml new file mode 100644 index 0000000000..0994c8225c --- /dev/null +++ b/.github/workflows/cli-jobs-spark-attached-spark-standalone-managed-identity.yml @@ -0,0 +1,66 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-attached-spark-standalone-managed-identity +on: + workflow_dispatch: + schedule: + - cron: "16 1/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-attached-spark-standalone-managed-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup identities + run: | + bash -x setup-identities.sh + working-directory: cli/jobs/spark + continue-on-error: true + - name: setup attached spark + working-directory: cli + continue-on-error: true + run: | + bash -x jobs/spark/setup-attached-resources.sh resources/compute/attached-spark-system-identity.yml jobs/spark/attached-spark-standalone-managed-identity.yml + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh attached-spark-standalone-managed-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-attached-spark-standalone-user-identity.yml b/.github/workflows/cli-jobs-spark-attached-spark-standalone-user-identity.yml new file mode 100644 index 0000000000..978fb63ed0 --- /dev/null +++ b/.github/workflows/cli-jobs-spark-attached-spark-standalone-user-identity.yml @@ -0,0 +1,61 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-attached-spark-standalone-user-identity +on: + workflow_dispatch: + schedule: + - cron: "7 1/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-attached-spark-standalone-user-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup attached spark + working-directory: cli + continue-on-error: true + run: | + bash -x jobs/spark/setup-attached-resources.sh resources/compute/attached-spark-user-identity.yml jobs/spark/attached-spark-standalone-user-identity.yml + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh attached-spark-standalone-user-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-default-identity.yml b/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-default-identity.yml new file mode 100644 index 0000000000..70cdba7b0c --- /dev/null +++ b/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-default-identity.yml @@ -0,0 +1,55 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-serverless-spark-pipeline-default-identity +on: + workflow_dispatch: + schedule: + - cron: "33 10/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-serverless-spark-pipeline-default-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh serverless-spark-pipeline-default-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-managed-identity.yml b/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-managed-identity.yml new file mode 100644 index 0000000000..20e1214f5f --- /dev/null +++ b/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-managed-identity.yml @@ -0,0 +1,61 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-serverless-spark-pipeline-managed-identity +on: + workflow_dispatch: + schedule: + - cron: "57 5/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-serverless-spark-pipeline-managed-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup identities + run: | + bash -x setup-identities.sh + working-directory: cli/jobs/spark + continue-on-error: true + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh serverless-spark-pipeline-managed-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-user-identity.yml b/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-user-identity.yml new file mode 100644 index 0000000000..d4bab3b999 --- /dev/null +++ b/.github/workflows/cli-jobs-spark-serverless-spark-pipeline-user-identity.yml @@ -0,0 +1,55 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-serverless-spark-pipeline-user-identity +on: + workflow_dispatch: + schedule: + - cron: "56 7/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-serverless-spark-pipeline-user-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh serverless-spark-pipeline-user-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-serverless-spark-standalone-default-identity.yml b/.github/workflows/cli-jobs-spark-serverless-spark-standalone-default-identity.yml new file mode 100644 index 0000000000..bbff3d7c89 --- /dev/null +++ b/.github/workflows/cli-jobs-spark-serverless-spark-standalone-default-identity.yml @@ -0,0 +1,55 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-serverless-spark-standalone-default-identity +on: + workflow_dispatch: + schedule: + - cron: "19 11/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-serverless-spark-standalone-default-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh serverless-spark-standalone-default-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-serverless-spark-standalone-managed-identity.yml b/.github/workflows/cli-jobs-spark-serverless-spark-standalone-managed-identity.yml new file mode 100644 index 0000000000..a189d54e60 --- /dev/null +++ b/.github/workflows/cli-jobs-spark-serverless-spark-standalone-managed-identity.yml @@ -0,0 +1,61 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-serverless-spark-standalone-managed-identity +on: + workflow_dispatch: + schedule: + - cron: "46 0/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-serverless-spark-standalone-managed-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + continue-on-error: true + - name: setup identities + run: | + bash -x setup-identities.sh + working-directory: cli/jobs/spark + continue-on-error: true + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh serverless-spark-standalone-managed-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/cli-jobs-spark-serverless-spark-standalone-user-identity.yml b/.github/workflows/cli-jobs-spark-serverless-spark-standalone-user-identity.yml new file mode 100644 index 0000000000..fce4fbf974 --- /dev/null +++ b/.github/workflows/cli-jobs-spark-serverless-spark-standalone-user-identity.yml @@ -0,0 +1,55 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: cli-jobs-spark-serverless-spark-standalone-user-identity +on: + workflow_dispatch: + schedule: + - cron: "27 1/12 * * *" + pull_request: + branches: + - main + paths: + - cli/jobs/spark/** + - infra/bootstrapping/** + - .github/workflows/cli-jobs-spark-serverless-spark-standalone-user-identity.yml + - cli/jobs/spark/data/titanic.csv + - cli/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: upload data + run: | + bash -x upload-data-to-blob.sh jobs/spark/ + working-directory: cli + - name: run job + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash -x ../../run-job.sh serverless-spark-standalone-user-identity.yml + working-directory: cli/jobs/spark diff --git a/.github/workflows/python-sdk-deploy-pytorch-mnist-job.yml b/.github/workflows/python-sdk-deploy-pytorch-mnist-job.yml index caa218ed04..bea515bbe7 100644 --- a/.github/workflows/python-sdk-deploy-pytorch-mnist-job.yml +++ b/.github/workflows/python-sdk-deploy-pytorch-mnist-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-deploy-scikit-learn-diabetes-job.yml b/.github/workflows/python-sdk-deploy-scikit-learn-diabetes-job.yml index 5a0fea82ef..57a670aaea 100644 --- a/.github/workflows/python-sdk-deploy-scikit-learn-diabetes-job.yml +++ b/.github/workflows/python-sdk-deploy-scikit-learn-diabetes-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-experimental-automl-model-testing-classification-tsi.yml b/.github/workflows/python-sdk-experimental-automl-model-testing-classification-tsi.yml index edef04de09..e480f43025 100755 --- a/.github/workflows/python-sdk-experimental-automl-model-testing-classification-tsi.yml +++ b/.github/workflows/python-sdk-experimental-automl-model-testing-classification-tsi.yml @@ -43,14 +43,14 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_AE_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh ./v1/scripts/update-azure-extensions.sh shell: bash - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg + run: az ml folder attach -w main -g azureml-examples - name: run classification-TSI.ipynb run: papermill -k python classification-TSI.ipynb classification-TSI.output.ipynb working-directory: v1/python-sdk/experimental/automl-model-testing/classification diff --git a/.github/workflows/python-sdk-experimental-automl-model-testing-forecasting-tsi.yml b/.github/workflows/python-sdk-experimental-automl-model-testing-forecasting-tsi.yml index c5c81c719d..1105540386 100755 --- a/.github/workflows/python-sdk-experimental-automl-model-testing-forecasting-tsi.yml +++ b/.github/workflows/python-sdk-experimental-automl-model-testing-forecasting-tsi.yml @@ -43,14 +43,14 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_AE_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh ./v1/scripts/update-azure-extensions.sh shell: bash - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg + run: az ml folder attach -w main -g azureml-examples - name: run forecasting-TSI.ipynb run: papermill -k python forecasting-TSI.ipynb forecasting-TSI.output.ipynb working-directory: v1/python-sdk/experimental/automl-model-testing/forecasting diff --git a/.github/workflows/python-sdk-experimental-automl-model-testing-regression-tsi.yml b/.github/workflows/python-sdk-experimental-automl-model-testing-regression-tsi.yml index d437edac6a..c6166c7c0b 100755 --- a/.github/workflows/python-sdk-experimental-automl-model-testing-regression-tsi.yml +++ b/.github/workflows/python-sdk-experimental-automl-model-testing-regression-tsi.yml @@ -43,14 +43,14 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_AE_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh ./v1/scripts/update-azure-extensions.sh shell: bash - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg + run: az ml folder attach -w main -g azureml-examples - name: run regression-TSI.ipynb run: papermill -k python regression-TSI.ipynb regression-TSI.output.ipynb working-directory: v1/python-sdk/experimental/automl-model-testing/regression diff --git a/.github/workflows/python-sdk-train-deepspeed-cifar-job.yml b/.github/workflows/python-sdk-train-deepspeed-cifar-job.yml index a6860aec53..21a3a4385c 100644 --- a/.github/workflows/python-sdk-train-deepspeed-cifar-job.yml +++ b/.github/workflows/python-sdk-train-deepspeed-cifar-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-deepspeed-transformers-job.yml b/.github/workflows/python-sdk-train-deepspeed-transformers-job.yml index 7992f23217..565e743787 100644 --- a/.github/workflows/python-sdk-train-deepspeed-transformers-job.yml +++ b/.github/workflows/python-sdk-train-deepspeed-transformers-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-fastai-mnist-job.yml b/.github/workflows/python-sdk-train-fastai-mnist-job.yml index 8b1e3678ae..6a9c5d0c99 100644 --- a/.github/workflows/python-sdk-train-fastai-mnist-job.yml +++ b/.github/workflows/python-sdk-train-fastai-mnist-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-fastai-mnist-mlproject-job.yml b/.github/workflows/python-sdk-train-fastai-mnist-mlproject-job.yml index b69086c8a3..58dff74c84 100644 --- a/.github/workflows/python-sdk-train-fastai-mnist-mlproject-job.yml +++ b/.github/workflows/python-sdk-train-fastai-mnist-mlproject-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-lightgbm-iris-job.yml b/.github/workflows/python-sdk-train-lightgbm-iris-job.yml index 0addf92d29..dbae7107f4 100644 --- a/.github/workflows/python-sdk-train-lightgbm-iris-job.yml +++ b/.github/workflows/python-sdk-train-lightgbm-iris-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-pytorch-cifar-distributed-job.yml b/.github/workflows/python-sdk-train-pytorch-cifar-distributed-job.yml index 536ef232a3..06ee525e44 100644 --- a/.github/workflows/python-sdk-train-pytorch-cifar-distributed-job.yml +++ b/.github/workflows/python-sdk-train-pytorch-cifar-distributed-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-pytorch-mnist-job.yml b/.github/workflows/python-sdk-train-pytorch-mnist-job.yml index e0556afbca..e5e53bb91e 100644 --- a/.github/workflows/python-sdk-train-pytorch-mnist-job.yml +++ b/.github/workflows/python-sdk-train-pytorch-mnist-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-pytorch-mnist-mlproject-job.yml b/.github/workflows/python-sdk-train-pytorch-mnist-mlproject-job.yml index e2ce521204..674e9ff9d9 100644 --- a/.github/workflows/python-sdk-train-pytorch-mnist-mlproject-job.yml +++ b/.github/workflows/python-sdk-train-pytorch-mnist-mlproject-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-scikit-learn-diabetes-job.yml b/.github/workflows/python-sdk-train-scikit-learn-diabetes-job.yml index 90b09f9b55..4c7a282b6e 100644 --- a/.github/workflows/python-sdk-train-scikit-learn-diabetes-job.yml +++ b/.github/workflows/python-sdk-train-scikit-learn-diabetes-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-scikit-learn-diabetes-mlproject-job.yml b/.github/workflows/python-sdk-train-scikit-learn-diabetes-mlproject-job.yml index dc2495b7ee..d4cea139ab 100644 --- a/.github/workflows/python-sdk-train-scikit-learn-diabetes-mlproject-job.yml +++ b/.github/workflows/python-sdk-train-scikit-learn-diabetes-mlproject-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-horovod-job.yml b/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-horovod-job.yml index d531cca184..3483d4684f 100644 --- a/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-horovod-job.yml +++ b/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-horovod-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-job.yml b/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-job.yml index c01c748bab..f30cf1e181 100644 --- a/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-job.yml +++ b/.github/workflows/python-sdk-train-tensorflow-mnist-distributed-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-tensorflow-mnist-job.yml b/.github/workflows/python-sdk-train-tensorflow-mnist-job.yml index b522b32841..d0befb3b0b 100644 --- a/.github/workflows/python-sdk-train-tensorflow-mnist-job.yml +++ b/.github/workflows/python-sdk-train-tensorflow-mnist-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-transformers-glue-1-aml-finetune-job.yml b/.github/workflows/python-sdk-train-transformers-glue-1-aml-finetune-job.yml index 1724098300..324874f23e 100644 --- a/.github/workflows/python-sdk-train-transformers-glue-1-aml-finetune-job.yml +++ b/.github/workflows/python-sdk-train-transformers-glue-1-aml-finetune-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-transformers-glue-2-aml-comparison-of-sku-job.yml b/.github/workflows/python-sdk-train-transformers-glue-2-aml-comparison-of-sku-job.yml index bc351e7a6d..d49f62c321 100644 --- a/.github/workflows/python-sdk-train-transformers-glue-2-aml-comparison-of-sku-job.yml +++ b/.github/workflows/python-sdk-train-transformers-glue-2-aml-comparison-of-sku-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-transformers-glue-3-aml-hyperdrive-job.yml b/.github/workflows/python-sdk-train-transformers-glue-3-aml-hyperdrive-job.yml index a1ff64eb44..b69eb6de01 100644 --- a/.github/workflows/python-sdk-train-transformers-glue-3-aml-hyperdrive-job.yml +++ b/.github/workflows/python-sdk-train-transformers-glue-3-aml-hyperdrive-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-train-xgboost-iris-job.yml b/.github/workflows/python-sdk-train-xgboost-iris-job.yml index 6a41d32065..9f7180ece8 100644 --- a/.github/workflows/python-sdk-train-xgboost-iris-job.yml +++ b/.github/workflows/python-sdk-train-xgboost-iris-job.yml @@ -29,7 +29,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-classification-bank-marketing-all-features.yml b/.github/workflows/python-sdk-tutorial-auto-ml-classification-bank-marketing-all-features.yml index 21ce3e6591..39981f4a08 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-classification-bank-marketing-all-features.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-classification-bank-marketing-all-features.yml @@ -1,4 +1,4 @@ -name: auto-ml-classification-bank-marketing-all-features +name: python-sdk-tutorial-auto-ml-classification-bank-marketing-all-features # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud-local.yml b/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud-local.yml index c3f29c7a17..157cd56285 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud-local.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud-local.yml @@ -1,9 +1,9 @@ -name: auto-ml-classification-credit-card-fraud-local +name: python-sdk-tutorial-auto-ml-classification-credit-card-fraud-local # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 2 * * 2" + - cron: "0 3 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud.yml b/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud.yml index 96e695b1c3..597baf5a99 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-classification-credit-card-fraud.yml @@ -1,4 +1,4 @@ -name: auto-ml-classification-credit-card-fraud +name: python-sdk-tutorial-auto-ml-classification-credit-card-fraud # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-classification-text-dnn.yml b/.github/workflows/python-sdk-tutorial-auto-ml-classification-text-dnn.yml index b34ed04e14..464ad906f8 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-classification-text-dnn.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-classification-text-dnn.yml @@ -1,4 +1,4 @@ -name: auto-ml-classification-text-dnn +name: python-sdk-tutorial-auto-ml-classification-text-dnn # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-continuous-retraining.yml b/.github/workflows/python-sdk-tutorial-auto-ml-continuous-retraining.yml index a59a89a38d..8ca057a62b 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-continuous-retraining.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-continuous-retraining.yml @@ -1,4 +1,4 @@ -name: auto-ml-continuous-retraining +name: python-sdk-tutorial-auto-ml-continuous-retraining # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-many-models.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-many-models.yml index 79960af505..abadfdcf60 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-many-models.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-many-models.yml @@ -1,4 +1,4 @@ -name: auto-ml-forecasting-backtest-many-models +name: python-sdk-tutorial-auto-ml-forecasting-backtest-many-models # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -48,7 +48,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-single-model.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-single-model.yml index 561ca30cae..d0b15200d6 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-single-model.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-backtest-single-model.yml @@ -1,4 +1,4 @@ -name: auto-ml-forecasting-backtest-single-model +name: python-sdk-tutorial-auto-ml-forecasting-backtest-single-model # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-bike-share.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-bike-share.yml index 088318385f..a9f4e4f92a 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-bike-share.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-bike-share.yml @@ -1,4 +1,4 @@ -name: auto-ml-forecasting-bike-share +name: python-sdk-tutorial-auto-ml-forecasting-bike-share # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-data-preparation.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-data-preparation.yml index 1190004eae..839a669bc8 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-data-preparation.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-data-preparation.yml @@ -1,4 +1,4 @@ -name: auto-ml-forecasting-data-preparation +name: python-sdk-tutorial-auto-ml-forecasting-data-preparation # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-forecasting-many-models.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-forecasting-many-models.yml index a3cc46868e..bc58bd76de 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-forecasting-many-models.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-forecasting-many-models.yml @@ -1,4 +1,4 @@ -name: auto-ml-forecasting-demand-forecasting-many-models +name: python-sdk-tutorial-auto-ml-forecasting-demand-forecasting-many-models # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-tcn.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-tcn.yml index 11f6e3eff4..649502c9f2 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-tcn.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-demand-tcn.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-demand-tcn +name: python-sdk-tutorial-auto-ml-forecasting-demand-tcn # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 11 * * 2" + - cron: "0 12 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-energy-demand.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-energy-demand.yml index 5189358d03..a2a885d261 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-energy-demand.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-energy-demand.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-energy-demand +name: python-sdk-tutorial-auto-ml-forecasting-energy-demand # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 10 * * 2" + - cron: "0 13 * * 2" pull_request: branches: - main diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-function.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-function.yml index 7d1b82fbe8..e56ed5db55 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-function.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-function.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-function +name: python-sdk-tutorial-auto-ml-forecasting-function # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 11 * * 2" + - cron: "0 14 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-github-dau.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-github-dau.yml index 04839ac6bd..6358c0afc2 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-github-dau.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-github-dau.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-github-dau +name: python-sdk-tutorial-auto-ml-forecasting-github-dau # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 12 * * 2" + - cron: "0 15 * * 2" pull_request: branches: - main diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-hierarchical-timeseries.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-hierarchical-timeseries.yml index a7694c8927..10d74842b9 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-hierarchical-timeseries.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-hierarchical-timeseries.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-hierarchical-timeseries +name: python-sdk-tutorial-auto-ml-forecasting-hierarchical-timeseries # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 13 * * 2" + - cron: "0 16 * * 2" pull_request: branches: - main @@ -48,7 +48,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-many-models.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-many-models.yml index 3b15e2f336..684e934bdd 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-many-models.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-many-models.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-many-models +name: python-sdk-tutorial-auto-ml-forecasting-many-models # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 14 * * 2" + - cron: "0 17 * * 2" pull_request: branches: - main @@ -48,7 +48,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-orange-juice-sales.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-orange-juice-sales.yml index 585ad1fb9c..cc74092732 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-orange-juice-sales.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-orange-juice-sales.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-orange-juice-sales +name: python-sdk-tutorial-auto-ml-forecasting-orange-juice-sales # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 15 * * 2" + - cron: "0 18 * * 2" pull_request: branches: - main diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-pipelines.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-pipelines.yml index 925f2aa243..2a01fd36ac 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-pipelines.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-pipelines.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-pipelines +name: python-sdk-tutorial-auto-ml-forecasting-pipelines # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 16 * * 2" + - cron: "0 19 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-experiment-settings.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-experiment-settings.yml index f01d82bd1a..b7dca4bc0e 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-experiment-settings.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-experiment-settings.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-univariate-recipe-experiment-settings +name: python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-experiment-settings # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 17 * * 2" + - cron: "0 20 * * 2" pull_request: branches: - main diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-run-experiment.yml b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-run-experiment.yml index dd58ac7e57..8b7d2b42fb 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-run-experiment.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-run-experiment.yml @@ -1,9 +1,9 @@ -name: auto-ml-forecasting-univariate-recipe-run-experiment +name: python-sdk-tutorial-auto-ml-forecasting-univariate-recipe-run-experiment # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 18 * * 2" + - cron: "0 21 * * 2" pull_request: branches: - main diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass-batch-scoring.yml b/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass-batch-scoring.yml index ea36591f34..aa932f198d 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass-batch-scoring.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass-batch-scoring.yml @@ -1,9 +1,9 @@ -name: auto-ml-image-classification-multiclass-batch-scoring +name: python-sdk-tutorial-auto-ml-image-classification-multiclass-batch-scoring # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 20 * * 2" + - cron: "0 23 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass.yml b/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass.yml index 9af1308802..f48635a86c 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multiclass.yml @@ -1,9 +1,9 @@ -name: auto-ml-image-classification-multiclass +name: python-sdk-tutorial-auto-ml-image-classification-multiclass # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 19 * * 2" + - cron: "0 22 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multilabel.yml b/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multilabel.yml index 26b84a9d24..ac442dcd9b 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multilabel.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-image-classification-multilabel.yml @@ -1,9 +1,9 @@ -name: auto-ml-image-classification-multilabel +name: python-sdk-tutorial-auto-ml-image-classification-multilabel # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 21 * * 2" + - cron: "0 0 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-image-instance-segmentation.yml b/.github/workflows/python-sdk-tutorial-auto-ml-image-instance-segmentation.yml index 87744cbbf2..fd1acfe919 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-image-instance-segmentation.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-image-instance-segmentation.yml @@ -1,9 +1,9 @@ -name: auto-ml-image-instance-segmentation +name: python-sdk-tutorial-auto-ml-image-instance-segmentation # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 22 * * 2" + - cron: "0 1 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-image-object-detection.yml b/.github/workflows/python-sdk-tutorial-auto-ml-image-object-detection.yml index 47935a7475..f6491c5be8 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-image-object-detection.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-image-object-detection.yml @@ -1,9 +1,9 @@ -name: auto-ml-image-object-detection +name: python-sdk-tutorial-auto-ml-image-object-detection # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 23 * * 2" + - cron: "0 2 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-regression-explanation-featurization.yml b/.github/workflows/python-sdk-tutorial-auto-ml-regression-explanation-featurization.yml index 8357845318..9d7b3c664a 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-regression-explanation-featurization.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-regression-explanation-featurization.yml @@ -1,9 +1,9 @@ -name: auto-ml-regression-explanation-featurization +name: python-sdk-tutorial-auto-ml-regression-explanation-featurization # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 3 * * 2" + - cron: "0 6 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-auto-ml-regression.yml b/.github/workflows/python-sdk-tutorial-auto-ml-regression.yml index 09f4cd260f..7daf823caa 100644 --- a/.github/workflows/python-sdk-tutorial-auto-ml-regression.yml +++ b/.github/workflows/python-sdk-tutorial-auto-ml-regression.yml @@ -1,9 +1,9 @@ -name: auto-ml-regression +name: python-sdk-tutorial-auto-ml-regression # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: schedule: - - cron: "0 2 * * 2" + - cron: "0 5 * * 2" pull_request: branches: - main @@ -45,7 +45,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-automl-nlp-multiclass.yml b/.github/workflows/python-sdk-tutorial-automl-nlp-multiclass.yml index 78d3555936..82add38b20 100644 --- a/.github/workflows/python-sdk-tutorial-automl-nlp-multiclass.yml +++ b/.github/workflows/python-sdk-tutorial-automl-nlp-multiclass.yml @@ -11,7 +11,7 @@ on: - .github/workflows/python-sdk-tutorial-automl-nlp-multiclass.yml jobs: build: - runs-on: ubuntu-latest + runs-on: ${{vars.V1_UBUNTU_RUNNER}} defaults: run: shell: bash -l {0} @@ -46,14 +46,14 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_AE_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh ./v1/scripts/update-azure-extensions.sh shell: bash - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg + run: az ml folder attach -w main -g azureml-examples - name: run automl-nlp-text-classification-multiclass.ipynb run: papermill -k python automl-nlp-text-classification-multiclass.ipynb automl-nlp-text-classification-multiclass.output.ipynb working-directory: v1/python-sdk/tutorials/automl-with-azureml/automl-nlp-multiclass/ diff --git a/.github/workflows/python-sdk-tutorial-automl-nlp-multilabel.yml b/.github/workflows/python-sdk-tutorial-automl-nlp-multilabel.yml index b76c5f7b4d..b45f2379ff 100644 --- a/.github/workflows/python-sdk-tutorial-automl-nlp-multilabel.yml +++ b/.github/workflows/python-sdk-tutorial-automl-nlp-multilabel.yml @@ -11,7 +11,7 @@ on: - .github/workflows/python-sdk-tutorial-automl-nlp-multilabel.yml jobs: build: - runs-on: ubuntu-latest + runs-on: ${{vars.V1_UBUNTU_RUNNER}} defaults: run: shell: bash -l {0} @@ -46,14 +46,14 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_AE_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh ./v1/scripts/update-azure-extensions.sh shell: bash - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg + run: az ml folder attach -w main -g azureml-examples - name: run automl-nlp-text-classification-multilabel.ipynb run: papermill -k python automl-nlp-text-classification-multilabel.ipynb automl-nlp-text-classification-multilabel.output.ipynb working-directory: v1/python-sdk/tutorials/automl-with-azureml/automl-nlp-multilabel/ diff --git a/.github/workflows/python-sdk-tutorial-automl-nlp-ner.yml b/.github/workflows/python-sdk-tutorial-automl-nlp-ner.yml index 43f83aabeb..7dbd62e055 100644 --- a/.github/workflows/python-sdk-tutorial-automl-nlp-ner.yml +++ b/.github/workflows/python-sdk-tutorial-automl-nlp-ner.yml @@ -1,4 +1,4 @@ -name: automl-nlp-ner +name: python-sdk-tutorial-automl-nlp-ner # This file is generated by v1/python-sdk/tutorials/automl-with-azureml/generate_workflows.py on: workflow_dispatch: @@ -48,7 +48,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh diff --git a/.github/workflows/python-sdk-tutorial-automl-with-pycaret.yml b/.github/workflows/python-sdk-tutorial-automl-with-pycaret.yml deleted file mode 100644 index 00ee86639a..0000000000 --- a/.github/workflows/python-sdk-tutorial-automl-with-pycaret.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: python-sdk-tutorial-automl-with-pycaret -on: - schedule: - - cron: "0 8 * * *" - pull_request: - branches: - - main - paths: - - v1/tutorials/automl-with-pycaret/** - - .github/workflows/python-sdk/tutorial-automl-with-pycaret.yml - - v1/tutorials/requirements.txt -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: check out repo - uses: actions/checkout@v2 - - name: setup python - uses: actions/setup-python@v2 - with: - python-version: "3.8" - - name: pip install - run: pip install -r v1/python-sdk/requirements.txt - - name: azure login - uses: azure/login@v1 - with: - creds: ${{secrets.AZ_AE_CREDS}} - - name: install azmlcli - run: az extension add -n azure-cli-ml -y - - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg - - name: run 1.classification.ipynb - run: papermill 1.classification.ipynb - -k python - working-directory: v1/python-sdk/tutorials/automl-with-pycaret diff --git a/.github/workflows/python-sdk-tutorial-dataset-uploads.yml b/.github/workflows/python-sdk-tutorial-dataset-uploads.yml index 7aab3a7fe4..75a63d1846 100644 --- a/.github/workflows/python-sdk-tutorial-dataset-uploads.yml +++ b/.github/workflows/python-sdk-tutorial-dataset-uploads.yml @@ -32,7 +32,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: install azmlcli run: az extension add -n azure-cli-ml -y - name: attach to workspace diff --git a/.github/workflows/python-sdk-tutorial-deploy-local.yml b/.github/workflows/python-sdk-tutorial-deploy-local.yml index 12f94eb4f2..48a0cc85ef 100644 --- a/.github/workflows/python-sdk-tutorial-deploy-local.yml +++ b/.github/workflows/python-sdk-tutorial-deploy-local.yml @@ -26,7 +26,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: install azmlcli run: az extension add -n azure-cli-ml -y - name: attach to workspace diff --git a/.github/workflows/python-sdk-tutorial-deploy-triton.yml b/.github/workflows/python-sdk-tutorial-deploy-triton.yml index 6cf7fb1f19..aaad0e6158 100644 --- a/.github/workflows/python-sdk-tutorial-deploy-triton.yml +++ b/.github/workflows/python-sdk-tutorial-deploy-triton.yml @@ -26,7 +26,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: install azmlcli run: az extension add -n azure-cli-ml -y - name: attach to workspace diff --git a/.github/workflows/python-sdk-tutorial-metrics-binary-classification-metric-and-confidence-interval.yml b/.github/workflows/python-sdk-tutorial-metrics-binary-classification-metric-and-confidence-interval.yml index 6f51157f49..3ce3505808 100644 --- a/.github/workflows/python-sdk-tutorial-metrics-binary-classification-metric-and-confidence-interval.yml +++ b/.github/workflows/python-sdk-tutorial-metrics-binary-classification-metric-and-confidence-interval.yml @@ -43,14 +43,14 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_AE_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh ./v1/scripts/update-azure-extensions.sh shell: bash - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg + run: az ml folder attach -w main -g azureml-examples - name: run binary-classification-metric-and-confidence-interval.ipynb run: papermill -k python binary-classification-metric-and-confidence-interval.ipynb binary-classification-metric-and-confidence-interval.output.ipynb working-directory: v1/python-sdk/tutorials/automl-with-azureml/metrics diff --git a/.github/workflows/python-sdk-tutorial-train-on-low-priority-aml-compute.yml b/.github/workflows/python-sdk-tutorial-train-on-low-priority-aml-compute.yml index 2c6e0f9738..6c22ec749e 100644 --- a/.github/workflows/python-sdk-tutorial-train-on-low-priority-aml-compute.yml +++ b/.github/workflows/python-sdk-tutorial-train-on-low-priority-aml-compute.yml @@ -32,14 +32,14 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_AE_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: Run update-azure-extensions run: | chmod +x ./v1/scripts/update-azure-extensions.sh ./v1/scripts/update-azure-extensions.sh shell: bash - name: attach to workspace - run: az ml folder attach -w main-python-sdk -g azureml-examples-rg + run: az ml folder attach -w main -g azureml-examples - name: run train-on-low-priority-aml-compute run: papermill -k python train-on-low-priority-aml-compute.ipynb train-on-low-priority-aml-compute.output.ipynb working-directory: v1/python-sdk/tutorials/train-on-low-priority-aml-compute diff --git a/.github/workflows/python-sdk-tutorial-using-pipelines.yml b/.github/workflows/python-sdk-tutorial-using-pipelines.yml index 73caed60cc..9e49e898a9 100644 --- a/.github/workflows/python-sdk-tutorial-using-pipelines.yml +++ b/.github/workflows/python-sdk-tutorial-using-pipelines.yml @@ -32,7 +32,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: install azmlcli run: az extension add -n azure-cli-ml -y - name: attach to workspace diff --git a/.github/workflows/python-sdk-tutorial-using-pytorch-lightning.yml b/.github/workflows/python-sdk-tutorial-using-pytorch-lightning.yml index 10a190a37a..eb1df78114 100644 --- a/.github/workflows/python-sdk-tutorial-using-pytorch-lightning.yml +++ b/.github/workflows/python-sdk-tutorial-using-pytorch-lightning.yml @@ -26,7 +26,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: install azmlcli run: az extension add -n azure-cli-ml -y - name: attach to workspace diff --git a/.github/workflows/python-sdk-tutorial-using-rapids.yml b/.github/workflows/python-sdk-tutorial-using-rapids.yml index b9d5f75eb2..42a7f16188 100644 --- a/.github/workflows/python-sdk-tutorial-using-rapids.yml +++ b/.github/workflows/python-sdk-tutorial-using-rapids.yml @@ -26,7 +26,7 @@ jobs: - name: azure login uses: azure/login@v1 with: - creds: ${{secrets.AZ_CREDS}} + creds: ${{secrets.AZUREML_CREDENTIALS}} - name: install azmlcli run: az extension add -n azure-cli-ml -y - name: attach to workspace diff --git a/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-distributed-tcn-automl-forecasting-distributed-tcn.yml b/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-distributed-tcn-automl-forecasting-distributed-tcn.yml new file mode 100644 index 0000000000..52542d15c1 --- /dev/null +++ b/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-distributed-tcn-automl-forecasting-distributed-tcn.yml @@ -0,0 +1,80 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-jobs-automl-standalone-jobs-automl-forecasting-distributed-tcn-automl-forecasting-distributed-tcn +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "8 2/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/** + - .github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-distributed-tcn-automl-forecasting-distributed-tcn.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: pip install mlflow reqs + run: pip install -r sdk/python/mlflow-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: run jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn/automl-forecasting-distributed-tcn.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "automl-forecasting-distributed-tcn.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python -p compute_name automl-cpu-cluster automl-forecasting-distributed-tcn.ipynb automl-forecasting-distributed-tcn.output.ipynb + working-directory: sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: automl-forecasting-distributed-tcn + path: sdk/python/jobs/automl-standalone-jobs/automl-forecasting-distributed-tcn + + - name: Remove the compute if notebook did not done it properly. + run: bash "${{ github.workspace }}/infra/bootstrapping/remove_computes.sh" "distributed-tcn-cluster" diff --git a/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-orange-juice-sales-automl-forecasting-orange-juice-sales-mlflow.yml b/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-orange-juice-sales-automl-forecasting-orange-juice-sales-mlflow.yml index e69d1b74d6..33fa906c7f 100644 --- a/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-orange-juice-sales-automl-forecasting-orange-juice-sales-mlflow.yml +++ b/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-forecasting-orange-juice-sales-automl-forecasting-orange-juice-sales-mlflow.yml @@ -76,7 +76,7 @@ jobs: python ${{ github.workspace }}/v1/scripts/validation/check_notebook_output.py \ --file_name automl-forecasting-orange-juice-sales-mlflow.output.ipynb \ --folder . \ - --check warning stderr \ + --check warning \ working-directory: sdk/python/jobs/automl-standalone-jobs/automl-forecasting-orange-juice-sales - name: check v2 experiment result run: | diff --git a/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-image-instance-segmentation-task-fridge-items-automl-image-instance-segmentation-task-fridge-items.yml b/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-image-instance-segmentation-task-fridge-items-automl-image-instance-segmentation-task-fridge-items.yml index 1d9dd7ece5..e42381e255 100644 --- a/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-image-instance-segmentation-task-fridge-items-automl-image-instance-segmentation-task-fridge-items.yml +++ b/.github/workflows/sdk-jobs-automl-standalone-jobs-automl-image-instance-segmentation-task-fridge-items-automl-image-instance-segmentation-task-fridge-items.yml @@ -9,7 +9,7 @@ name: sdk-jobs-automl-standalone-jobs-automl-image-instance-segmentation-task-fr on: workflow_dispatch: schedule: - - cron: "32 8/12 * * *" + - cron: "32 10/12 * * *" pull_request: branches: - main diff --git a/.github/workflows/sdk-jobs-pipelines-1i_pipeline_with_spark_nodes-pipeline_with_spark_nodes.yml b/.github/workflows/sdk-jobs-pipelines-1i_pipeline_with_spark_nodes-pipeline_with_spark_nodes.yml new file mode 100644 index 0000000000..7af6fcd870 --- /dev/null +++ b/.github/workflows/sdk-jobs-pipelines-1i_pipeline_with_spark_nodes-pipeline_with_spark_nodes.yml @@ -0,0 +1,80 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-jobs-pipelines-1i_pipeline_with_spark_nodes-pipeline_with_spark_nodes +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "0 10/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/jobs/pipelines/1i_pipeline_with_spark_nodes/** + - .github/workflows/sdk-jobs-pipelines-1i_pipeline_with_spark_nodes-pipeline_with_spark_nodes.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: setup spark resources + run: | + bash -x jobs/spark/setup_spark.sh jobs/spark/ jobs/pipelines/1i_pipeline_with_spark_nodes/pipeline_with_spark_nodes.ipynb + working-directory: sdk/python + continue-on-error: true + - name: run jobs/pipelines/1i_pipeline_with_spark_nodes/pipeline_with_spark_nodes.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "pipeline_with_spark_nodes.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python pipeline_with_spark_nodes.ipynb pipeline_with_spark_nodes.output.ipynb + working-directory: sdk/python/jobs/pipelines/1i_pipeline_with_spark_nodes + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: pipeline_with_spark_nodes + path: sdk/python/jobs/pipelines/1i_pipeline_with_spark_nodes diff --git a/.github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-hierarchical-timeseries-in-pipeline-automl-forecasting-demand-hierarchical-timeseries-in-pipeline.yml b/.github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-hierarchical-timeseries-in-pipeline-automl-forecasting-demand-hierarchical-timeseries-in-pipeline.yml new file mode 100644 index 0000000000..222191365a --- /dev/null +++ b/.github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-hierarchical-timeseries-in-pipeline-automl-forecasting-demand-hierarchical-timeseries-in-pipeline.yml @@ -0,0 +1,75 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-hierarchical-timeseries-in-pipeline-automl-forecasting-demand-hierarchical-timeseries-in-pipeline +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "45 5/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-hierarchical-timeseries-in-pipeline/** + - .github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-hierarchical-timeseries-in-pipeline-automl-forecasting-demand-hierarchical-timeseries-in-pipeline.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: run jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-hierarchical-timeseries-in-pipeline/automl-forecasting-demand-hierarchical-timeseries-in-pipeline.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "automl-forecasting-demand-hierarchical-timeseries-in-pipeline.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python -p compute_name automl-cpu-cluster automl-forecasting-demand-hierarchical-timeseries-in-pipeline.ipynb automl-forecasting-demand-hierarchical-timeseries-in-pipeline.output.ipynb + working-directory: sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-hierarchical-timeseries-in-pipeline + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: automl-forecasting-demand-hierarchical-timeseries-in-pipeline + path: sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-hierarchical-timeseries-in-pipeline diff --git a/.github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-many-models-in-pipeline-automl-forecasting-demand-many-models-in-pipeline.yml b/.github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-many-models-in-pipeline-automl-forecasting-demand-many-models-in-pipeline.yml new file mode 100644 index 0000000000..e1285c7ad8 --- /dev/null +++ b/.github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-many-models-in-pipeline-automl-forecasting-demand-many-models-in-pipeline.yml @@ -0,0 +1,75 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-many-models-in-pipeline-automl-forecasting-demand-many-models-in-pipeline +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "59 7/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-many-models-in-pipeline/** + - .github/workflows/sdk-jobs-pipelines-1k_demand_forecasting_with_pipeline_components-automl-forecasting-demand-many-models-in-pipeline-automl-forecasting-demand-many-models-in-pipeline.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: run jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-many-models-in-pipeline/automl-forecasting-demand-many-models-in-pipeline.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "automl-forecasting-demand-many-models-in-pipeline.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python -p compute_name automl-cpu-cluster automl-forecasting-demand-many-models-in-pipeline.ipynb automl-forecasting-demand-many-models-in-pipeline.output.ipynb + working-directory: sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-many-models-in-pipeline + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: automl-forecasting-demand-many-models-in-pipeline + path: sdk/python/jobs/pipelines/1k_demand_forecasting_with_pipeline_components/automl-forecasting-demand-many-models-in-pipeline diff --git a/.github/workflows/sdk-jobs-spark-automation-run_interactive_session_notebook.yml b/.github/workflows/sdk-jobs-spark-automation-run_interactive_session_notebook.yml new file mode 100644 index 0000000000..8a2aa179ee --- /dev/null +++ b/.github/workflows/sdk-jobs-spark-automation-run_interactive_session_notebook.yml @@ -0,0 +1,80 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-jobs-spark-automation-run_interactive_session_notebook +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "30 11/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/jobs/spark/automation/** + - .github/workflows/sdk-jobs-spark-automation-run_interactive_session_notebook.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: setup spark resources + run: | + bash -x jobs/spark/setup_spark.sh jobs/spark/ jobs/spark/automation/run_interactive_session_notebook.ipynb + working-directory: sdk/python + continue-on-error: true + - name: run jobs/spark/automation/run_interactive_session_notebook.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "run_interactive_session_notebook.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python run_interactive_session_notebook.ipynb run_interactive_session_notebook.output.ipynb + working-directory: sdk/python/jobs/spark/automation + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: run_interactive_session_notebook + path: sdk/python/jobs/spark/automation diff --git a/.github/workflows/sdk-jobs-single-step-pytorch-distributed-training-yolov5-yolov5-tutorial.yml b/.github/workflows/sdk-jobs-spark-submit_spark_pipeline_jobs.yml similarity index 76% rename from .github/workflows/sdk-jobs-single-step-pytorch-distributed-training-yolov5-yolov5-tutorial.yml rename to .github/workflows/sdk-jobs-spark-submit_spark_pipeline_jobs.yml index b7fac945a9..0c286018e8 100644 --- a/.github/workflows/sdk-jobs-single-step-pytorch-distributed-training-yolov5-yolov5-tutorial.yml +++ b/.github/workflows/sdk-jobs-spark-submit_spark_pipeline_jobs.yml @@ -3,19 +3,19 @@ # Any manual changes to this file may cause incorrect behavior. # Any manual changes will be overwritten if the code is regenerated. -name: sdk-jobs-single-step-pytorch-distributed-training-yolov5-yolov5-tutorial +name: sdk-jobs-spark-submit_spark_pipeline_jobs # This file is created by sdk/python/readme.py. # Please do not edit directly. on: workflow_dispatch: schedule: - - cron: "10 5/12 * * *" + - cron: "33 1/12 * * *" pull_request: branches: - main paths: - - sdk/python/jobs/single-step/pytorch/distributed-training-yolov5/yolov5/** - - .github/workflows/sdk-jobs-single-step-pytorch-distributed-training-yolov5-yolov5-tutorial.yml + - sdk/python/jobs/spark/** + - .github/workflows/sdk-jobs-spark-submit_spark_pipeline_jobs.yml - sdk/python/dev-requirements.txt - infra/bootstrapping/** - sdk/python/setup.sh @@ -58,18 +58,23 @@ jobs: bash setup.sh working-directory: cli continue-on-error: true - - name: run jobs/single-step/pytorch/distributed-training-yolov5/yolov5/tutorial.ipynb + - name: setup spark resources + run: | + bash -x jobs/spark/setup_spark.sh jobs/spark/ jobs/spark/submit_spark_pipeline_jobs.ipynb + working-directory: sdk/python + continue-on-error: true + - name: run jobs/spark/submit_spark_pipeline_jobs.ipynb run: | source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; - bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "tutorial.ipynb"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "submit_spark_pipeline_jobs.ipynb"; [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; - papermill -k python tutorial.ipynb tutorial.output.ipynb - working-directory: sdk/python/jobs/single-step/pytorch/distributed-training-yolov5/yolov5 + papermill -k python submit_spark_pipeline_jobs.ipynb submit_spark_pipeline_jobs.output.ipynb + working-directory: sdk/python/jobs/spark - name: upload notebook's working folder as an artifact if: ${{ always() }} uses: actions/upload-artifact@v2 with: - name: tutorial - path: sdk/python/jobs/single-step/pytorch/distributed-training-yolov5/yolov5 + name: submit_spark_pipeline_jobs + path: sdk/python/jobs/spark diff --git a/.github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs.yml b/.github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs.yml new file mode 100644 index 0000000000..2be2661bfd --- /dev/null +++ b/.github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs.yml @@ -0,0 +1,80 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-jobs-spark-submit_spark_standalone_jobs +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "36 10/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/jobs/spark/** + - .github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: setup spark resources + run: | + bash -x jobs/spark/setup_spark.sh jobs/spark/ jobs/spark/submit_spark_standalone_jobs.ipynb + working-directory: sdk/python + continue-on-error: true + - name: run jobs/spark/submit_spark_standalone_jobs.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "submit_spark_standalone_jobs.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python submit_spark_standalone_jobs.ipynb submit_spark_standalone_jobs.output.ipynb + working-directory: sdk/python/jobs/spark + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: submit_spark_standalone_jobs + path: sdk/python/jobs/spark diff --git a/.github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs_managed_vnet.yml b/.github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs_managed_vnet.yml new file mode 100644 index 0000000000..89d7aa0dc6 --- /dev/null +++ b/.github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs_managed_vnet.yml @@ -0,0 +1,80 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-jobs-spark-submit_spark_standalone_jobs_managed_vnet +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "14 1/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/jobs/spark/** + - .github/workflows/sdk-jobs-spark-submit_spark_standalone_jobs_managed_vnet.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: setup spark resources + run: | + bash -x jobs/spark/setup_spark.sh jobs/spark/ jobs/spark/submit_spark_standalone_jobs_managed_vnet.ipynb + working-directory: sdk/python + continue-on-error: true + - name: run jobs/spark/submit_spark_standalone_jobs_managed_vnet.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "submit_spark_standalone_jobs_managed_vnet.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python submit_spark_standalone_jobs_managed_vnet.ipynb submit_spark_standalone_jobs_managed_vnet.output.ipynb + working-directory: sdk/python/jobs/spark + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: submit_spark_standalone_jobs_managed_vnet + path: sdk/python/jobs/spark diff --git a/.github/workflows/sdk-resources-compute-attach_manage_spark_pools.yml b/.github/workflows/sdk-resources-compute-attach_manage_spark_pools.yml new file mode 100644 index 0000000000..33d9bab2ac --- /dev/null +++ b/.github/workflows/sdk-resources-compute-attach_manage_spark_pools.yml @@ -0,0 +1,80 @@ +# This code is autogenerated. +# Code is generated by running custom script: python3 readme.py +# Any manual changes to this file may cause incorrect behavior. +# Any manual changes will be overwritten if the code is regenerated. + +name: sdk-resources-compute-attach_manage_spark_pools +# This file is created by sdk/python/readme.py. +# Please do not edit directly. +on: + workflow_dispatch: + schedule: + - cron: "27 3/12 * * *" + pull_request: + branches: + - main + paths: + - sdk/python/resources/compute/** + - .github/workflows/sdk-resources-compute-attach_manage_spark_pools.yml + - sdk/python/dev-requirements.txt + - infra/bootstrapping/** + - sdk/python/setup.sh +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: check out repo + uses: actions/checkout@v2 + - name: setup python + uses: actions/setup-python@v2 + with: + python-version: "3.8" + - name: pip install notebook reqs + run: pip install -r sdk/python/dev-requirements.txt + - name: azure login + uses: azure/login@v1 + with: + creds: ${{secrets.AZUREML_CREDENTIALS}} + - name: bootstrap resources + run: | + echo '${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}'; + bash bootstrap.sh + working-directory: infra/bootstrapping + continue-on-error: false + - name: setup SDK + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: sdk/python + continue-on-error: true + - name: setup-cli + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash setup.sh + working-directory: cli + continue-on-error: true + - name: setup spark resources + run: | + bash -x jobs/spark/setup_spark.sh jobs/spark/ resources/compute/attach_manage_spark_pools.ipynb + working-directory: sdk/python + continue-on-error: true + - name: run resources/compute/attach_manage_spark_pools.ipynb + run: | + source "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh"; + source "${{ github.workspace }}/infra/bootstrapping/init_environment.sh"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" generate_workspace_config "../../.azureml/config.json"; + bash "${{ github.workspace }}/infra/bootstrapping/sdk_helpers.sh" replace_template_values "attach_manage_spark_pools.ipynb"; + [ -f "../../.azureml/config" ] && cat "../../.azureml/config"; + papermill -k python attach_manage_spark_pools.ipynb attach_manage_spark_pools.output.ipynb + working-directory: sdk/python/resources/compute + - name: upload notebook's working folder as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: attach_manage_spark_pools + path: sdk/python/resources/compute diff --git a/cli/README.md b/cli/README.md index eaa5d729e6..a1269885e9 100644 --- a/cli/README.md +++ b/cli/README.md @@ -130,6 +130,8 @@ path|status|description [jobs/basics/hello-world-output.yml](jobs/basics/hello-world-output.yml)|[![jobs/basics/hello-world-output](https://github.com/Azure/azureml-examples/workflows/cli-jobs-basics-hello-world-output/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-basics-hello-world-output.yml)|*no description* [jobs/basics/hello-world.yml](jobs/basics/hello-world.yml)|[![jobs/basics/hello-world](https://github.com/Azure/azureml-examples/workflows/cli-jobs-basics-hello-world/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-basics-hello-world.yml)|*no description* [jobs/pipelines/automl/cli-automl-classification-task-bankmarketing-pipeline/pipeline.yml](jobs/pipelines/automl/cli-automl-classification-task-bankmarketing-pipeline/pipeline.yml)|[![jobs/pipelines/automl/cli-automl-classification-task-bankmarketing-pipeline/pipeline](https://github.com/Azure/azureml-examples/workflows/cli-jobs-pipelines-automl-cli-automl-classification-task-bankmarketing-pipeline-pipeline/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-pipelines-automl-cli-automl-classification-task-bankmarketing-pipeline-pipeline.yml)|Pipeline using AutoML classification task +[jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/hts_evaluation_pipeline.yml](jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/hts_evaluation_pipeline.yml)|[![jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/hts_evaluation_pipeline](https://github.com/Azure/azureml-examples/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-hierarchical-timeseries-hts_evaluation_pipeline.yml)|HTS evaluation pipeline using AutoML +[jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/many_models_evaluation_pipeline.yml](jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/many_models_evaluation_pipeline.yml)|[![jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/many_models_evaluation_pipeline](https://github.com/Azure/azureml-examples/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-pipelines-automl-cli-automl-forecasting-demand-with-pipeline-components-cli-automl-forecasting-demand-many-models-many_models_evaluation_pipeline.yml)|Many models evaluation pipeline using AutoML [jobs/pipelines/automl/cli-automl-regression-housepricing-pipeline/pipeline.yml](jobs/pipelines/automl/cli-automl-regression-housepricing-pipeline/pipeline.yml)|[![jobs/pipelines/automl/cli-automl-regression-housepricing-pipeline/pipeline](https://github.com/Azure/azureml-examples/workflows/cli-jobs-pipelines-automl-cli-automl-regression-housepricing-pipeline-pipeline/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-pipelines-automl-cli-automl-regression-housepricing-pipeline-pipeline.yml)|Pipeline using AutoML regression task [jobs/pipelines/automl/cli-automl-text-classification-multilabel-paper-categorization-pipeline/pipeline.yml](jobs/pipelines/automl/cli-automl-text-classification-multilabel-paper-categorization-pipeline/pipeline.yml)|[![jobs/pipelines/automl/cli-automl-text-classification-multilabel-paper-categorization-pipeline/pipeline](https://github.com/Azure/azureml-examples/workflows/cli-jobs-pipelines-automl-cli-automl-text-classification-multilabel-paper-categorization-pipeline-pipeline/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-pipelines-automl-cli-automl-text-classification-multilabel-paper-categorization-pipeline-pipeline.yml)|Pipeline using AutoML Text Classification Multilabel task [jobs/pipelines/automl/cli-automl-text-classification-newsgroup-pipeline/pipeline.yml](jobs/pipelines/automl/cli-automl-text-classification-newsgroup-pipeline/pipeline.yml)|[![jobs/pipelines/automl/cli-automl-text-classification-newsgroup-pipeline/pipeline](https://github.com/Azure/azureml-examples/workflows/cli-jobs-pipelines-automl-cli-automl-text-classification-newsgroup-pipeline-pipeline/badge.svg?branch=main)](https://github.com/Azure/azureml-examples/actions/workflows/cli-jobs-pipelines-automl-cli-automl-text-classification-newsgroup-pipeline-pipeline.yml)|Pipeline using AutoML Text Classification task diff --git a/cli/deploy-managed-online-endpoint-workspacevnet.sh b/cli/deploy-managed-online-endpoint-workspacevnet.sh new file mode 100644 index 0000000000..a9261a7709 --- /dev/null +++ b/cli/deploy-managed-online-endpoint-workspacevnet.sh @@ -0,0 +1,88 @@ +set -e + +export RESOURCEGROUP_NAME="" +export WORKSPACE_NAME="" + +# If you want to allow outbound traffic, use below instead. +# +# az ml workspace create -g $RESOURCEGROUP_NAME -n $WORKSPACE_NAME -m allow_internet_outbound +# + +# If you want to block outbound traffic, use below instead. +# +az ml workspace create -g $RESOURCEGROUP_NAME -n $WORKSPACE_NAME -m allow_only_approved_outbound +# + +az configure --defaults workspace=$WORKSPACE_NAME group=$RESOURCEGROUP_NAME + +# +export ENDPOINT_NAME="" +# + +export ENDPOINT_NAME=endpt-moe-`echo $RANDOM` + +# If you want to allow inbound traffic, use below instead. +# +# az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml +# + +# If you want to block inbound traffic, use below instead. +# +az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml --set public_network_access=disabled +# + +# +az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic +# + +# +az ml online-endpoint show -n $ENDPOINT_NAME +# + +# check if create was successful +endpoint_status=`az ml online-endpoint show --name $ENDPOINT_NAME --query "provisioning_state" -o tsv` +echo $endpoint_status +if [[ $endpoint_status == "Succeeded" ]] +then + echo "Endpoint created successfully" +else + echo "Endpoint creation failed" + exit 1 +fi + +deploy_status=`az ml online-deployment show --name blue --endpoint $ENDPOINT_NAME --query "provisioning_state" -o tsv` +echo $deploy_status +if [[ $deploy_status == "Succeeded" ]] +then + echo "Deployment completed successfully" +else + echo "Deployment failed" + exit 1 +fi + +# +az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json +# + +# supress printing secret +set +x + +# +ENDPOINT_KEY=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME -o tsv --query primaryKey) +# + +set -x + +# +SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri) + +curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --data @endpoints/online/model-1/sample-request.json +# + +# +az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME +# + +# +az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait +# diff --git a/cli/deploy-moe-vnet.sh b/cli/deploy-moe-vnet-legacy.sh similarity index 96% rename from cli/deploy-moe-vnet.sh rename to cli/deploy-moe-vnet-legacy.sh index fb65e9194a..2eeceed746 100644 --- a/cli/deploy-moe-vnet.sh +++ b/cli/deploy-moe-vnet-legacy.sh @@ -2,9 +2,9 @@ set -e +# This is now a legacy script that uses the old way of creating a managed vnet endpoint. The new way is to use Workspace Managed VNet. See cli\deploy-managed-online-endpoint-workspacevnet.sh for the new way. # This is the instructions for docs.User has to execute this from a test VM - that is why user cannot use defaults from their local setup - # export SUBSCRIPTION="" export RESOURCE_GROUP="" @@ -107,4 +107,4 @@ az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait # # az vm delete -n $VM_NAME -y --no-wait -# \ No newline at end of file +# diff --git a/cli/deploy-moe-vnet-mlflow.sh b/cli/deploy-moe-vnet-mlflow-legacy.sh similarity index 96% rename from cli/deploy-moe-vnet-mlflow.sh rename to cli/deploy-moe-vnet-mlflow-legacy.sh index 780397c39b..faa5ce4b2c 100644 --- a/cli/deploy-moe-vnet-mlflow.sh +++ b/cli/deploy-moe-vnet-mlflow-legacy.sh @@ -2,6 +2,7 @@ set -e +# This is now a legacy script that uses the old way of creating a managed vnet endpoint. The new way is to use Workspace Managed VNet. See cli\deploy-managed-online-endpoint-workspacevnet.sh for the new way. # This is the instructions for docs.User has to execute this from a test VM - that is why user cannot use defaults from their local setup # @@ -106,4 +107,4 @@ az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait # # az vm delete -n $VM_NAME -y --no-wait -# \ No newline at end of file +# diff --git a/cli/endpoints/batch/deploy-models/imagenet-classifier/deploy-and-run.sh b/cli/endpoints/batch/deploy-models/imagenet-classifier/deploy-and-run.sh index 8a3598a8b5..b0c20a6179 100644 --- a/cli/endpoints/batch/deploy-models/imagenet-classifier/deploy-and-run.sh +++ b/cli/endpoints/batch/deploy-models/imagenet-classifier/deploy-and-run.sh @@ -26,7 +26,7 @@ az ml model create --name $MODEL_NAME --path "model" echo "Creating compute with GPU" # -az ml compute create -n gpu-cluster --type amlcompute --size STANDARD_NC6 --min-instances 0 --max-instances 2 +az ml compute create -n gpu-cluster --type amlcompute --size STANDARD_NC6s_v3 --min-instances 0 --max-instances 2 # echo "Creating batch endpoint $ENDPOINT_NAME" @@ -51,7 +51,7 @@ az ml batch-deployment show --name $DEPLOYMENT_NAME --endpoint-name $ENDPOINT_NA # # -wget https://azuremlexampledata.blob.core.windows.net/data/imagenet-1000.zip +wget https://azuremlexampledata.blob.core.windows.net/data/imagenet/imagenet-1000.zip unzip imagenet-1000.zip -d data # @@ -96,7 +96,7 @@ az ml job download --name $JOB_NAME --output-name score --download-path . echo "Creating batch deployment for endpoint $ENDPOINT_NAME with high throughput" # -az ml batch-deployment create --file deployment-by-batch.yml --endpoint-name $ENDPOINT_NAME --default +az ml batch-deployment create --file deployment-by-batch.yml --endpoint-name $ENDPOINT_NAME --set-default # echo "Invoking batch endpoint with local data" diff --git a/cli/endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/deployment.yml b/cli/endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/deployment.yml index 702dcdd8d1..e5ba84a8db 100644 --- a/cli/endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/deployment.yml +++ b/cli/endpoints/batch/deploy-pipelines/batch-scoring-with-preprocessing/deployment.yml @@ -1,4 +1,4 @@ -$schema: http://azureml/sdk-2-0/BatchDeployment.json +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json name: uci-classifier-prepros-xgb description: A sample deployment with pre and post processing done before and after inference. endpoint_name: uci-classifier-batch diff --git a/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment-from-job.yml b/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment-from-job.yml index fc36675966..a26e2bbd79 100644 --- a/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment-from-job.yml +++ b/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment-from-job.yml @@ -1,4 +1,4 @@ -$schema: http://azureml/sdk-2-0/BatchDeployment.json +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json name: hello-batch-from-job description: A hello world deployment with a single step. This deployment is created from a pipeline job. endpoint_name: hello-pipeline-batch diff --git a/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment.yml b/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment.yml index 6381b53092..7bec95b816 100644 --- a/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment.yml +++ b/cli/endpoints/batch/deploy-pipelines/hello-batch/deployment.yml @@ -1,4 +1,4 @@ -$schema: http://azureml/sdk-2-0/BatchDeployment.json +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json name: hello-batch-dpl description: A hello world deployment with a single step. endpoint_name: hello-pipeline-batch diff --git a/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-onehot/deployment.yml b/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-onehot/deployment.yml index 40d29e4cfe..7644c3daad 100644 --- a/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-onehot/deployment.yml +++ b/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-onehot/deployment.yml @@ -1,4 +1,4 @@ -$schema: http://azureml/sdk-2-0/BatchDeployment.json +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json name: uci-classifier-train-onehot description: A sample deployment that trains an XGBoost model for the UCI dataset using onehot encoding for variables. endpoint_name: uci-classifier-train diff --git a/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-ordinal/deployment.yml b/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-ordinal/deployment.yml index bf307069e0..2a78481d98 100644 --- a/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-ordinal/deployment.yml +++ b/cli/endpoints/batch/deploy-pipelines/training-with-components/deployment-ordinal/deployment.yml @@ -1,4 +1,4 @@ -$schema: http://azureml/sdk-2-0/BatchDeployment.json +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json name: uci-classifier-train-xgb description: A sample deployment that trains an XGBoost model for the UCI dataset. endpoint_name: uci-classifier-train diff --git a/cli/endpoints/online/data-collector/README.md b/cli/endpoints/online/data-collector/README.md new file mode 100644 index 0000000000..5e12d74699 --- /dev/null +++ b/cli/endpoints/online/data-collector/README.md @@ -0,0 +1,7 @@ +# Azure Model Data Collector (MDC) Examples + +This directory contains examples on how to use **AzureML Model Data Collector (MDC)**. The feature is used to collect production inference data to a Blob storage container of your choice. The data can then be used for model monitoring purposes. Please find the documentation for the feature [here](https://learn.microsoft.com/en-us/azure/machine-learning/concept-data-collection?view=azureml-api-2). + +In this directory there are two sub-folders: (1) `workspace-blob-storage` and (2) `custom-blob-storage`. These folders refer to the data sink options within the data collector configuration. If you are interested in sending the data to the default sink (the workspace Blob storage), see the examples in the `workspace-blob-storage` folder. Otherwise, if you want to use a custom Blob storage container as the sink, see the examples in the `custom-blob-storage` folder. + +**AzureML Model Data Collector (MDC)** supports data logging for online endpoints (managed and Kubernetes). \ No newline at end of file diff --git a/cli/endpoints/online/data-collector/custom-blob-storage/README.md b/cli/endpoints/online/data-collector/custom-blob-storage/README.md new file mode 100644 index 0000000000..74f04ff298 --- /dev/null +++ b/cli/endpoints/online/data-collector/custom-blob-storage/README.md @@ -0,0 +1,11 @@ +# Collect data to workspace Blob storage + +This directory contains YAML configuration samples for **AzureML Model Data Collection (MDC)** logging production inference data to a Blob storage container of your choice. + +Before creating your deployment with these configuration YAMLs, follow the steps in [the documentation](https://learn.microsoft.com/en-us/azure/machine-learning/concept-data-collection?view=azureml-api-2) to ensure your endpoint has sufficient permissions to write to the Blob storage container of your choice. + +## Contents + +file|description +-|- +`custom-blob-storage.YAML`|Collect data to custom Blob storage sinks \ No newline at end of file diff --git a/cli/endpoints/online/data-collector/custom-blob-storage/custom-blob-storage.YAML b/cli/endpoints/online/data-collector/custom-blob-storage/custom-blob-storage.YAML new file mode 100644 index 0000000000..3546516477 --- /dev/null +++ b/cli/endpoints/online/data-collector/custom-blob-storage/custom-blob-storage.YAML @@ -0,0 +1,18 @@ +endpoint_name: my_endpoint +name: blue +model: azureml:my-model-m1:1 +environment: azureml:env-m1:1 +data_collector: + collections: + model_inputs: + enabled: 'True' + data: + name: my_model_inputs_data_asset + path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs + version: 1 + model_outputs: + enabled: 'True' + data: + name: my_model_outputs_data_asset + path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs + version: 1 \ No newline at end of file diff --git a/cli/endpoints/online/data-collector/workspace-blob-storage/README.md b/cli/endpoints/online/data-collector/workspace-blob-storage/README.md new file mode 100644 index 0000000000..cb74dcfa4b --- /dev/null +++ b/cli/endpoints/online/data-collector/workspace-blob-storage/README.md @@ -0,0 +1,12 @@ +# Collect data to workspace Blob storage + +This directory contains YAML configuration samples for **AzureML Model Data Collection (MDC)** with the data sink as your AzureML workspace Blob storage. + +## Contents + +file|description +-|- +`workspace-blob-storage-custom1.YAML`|Collect custom logging data (model_inputs, model_outputs) +`workspace-blob-storage-custom2.YAML`|Collect both payload data (request and response) and custom logging data (model_inputs, model_outputs), adjust rolling_rate and sampling_rate +`workspace-blob-storage-payload1.YAML`|Collect payload data (request and response) +`workspace-blob-storage-payload2.YAML`|Collect payload data (request and response), adjust rolling_rate and sampling_rate \ No newline at end of file diff --git a/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom1.YAML b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom1.YAML new file mode 100644 index 0000000000..d76ba419f0 --- /dev/null +++ b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom1.YAML @@ -0,0 +1,10 @@ +endpoint_name: my_endpoint +name: blue +model: azureml:my-model-m1:1 +environment: azureml:env-m1:1 +data_collector: + collections: + model_inputs: + enabled: 'True' # <'True', 'False'> + model_outputs: + enabled: 'True' # <'True', 'False'> \ No newline at end of file diff --git a/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom2.YAML b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom2.YAML new file mode 100644 index 0000000000..7e5907af84 --- /dev/null +++ b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-custom2.YAML @@ -0,0 +1,16 @@ +endpoint_name: my_endpoint +name: blue +model: azureml:my-model-m1:1 +environment: azureml:env-m1:1 +data_collector: + collections: + request: + enabled: 'True' # <'True', 'False'> + response: + enabled: 'True' # <'True', 'False'> + model_inputs: + enabled: 'True' # <'True', 'False'> + model_outputs: + enabled: 'True' # <'True', 'False'> + rolling_rate: hour # optional + sampling_rate: 1.0 # optional, 0.0-1.0, number to specify random sample % of traffic \ No newline at end of file diff --git a/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload1.YAML b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload1.YAML new file mode 100644 index 0000000000..b1f8796829 --- /dev/null +++ b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload1.YAML @@ -0,0 +1,10 @@ +endpoint_name: my_endpoint +name: blue +model: azureml:my-model-m1:1 +environment: azureml:env-m1:1 +data_collector: + collections: + request: + enabled: 'True' # <'True', 'False'> + response: + enabled: 'True' # <'True', 'False'> \ No newline at end of file diff --git a/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload2.YAML b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload2.YAML new file mode 100644 index 0000000000..5eaf3209a2 --- /dev/null +++ b/cli/endpoints/online/data-collector/workspace-blob-storage/workspace-blob-storage-payload2.YAML @@ -0,0 +1,12 @@ +endpoint_name: my_endpoint +name: blue +model: azureml:my-model-m1:1 +environment: azureml:env-m1:1 +data_collector: + collections: + request: + enabled: 'True' # <'True', 'False'> + response: + enabled: 'True' # <'True', 'False'> + rolling_rate: hour # optional + sampling_rate: 1.0 # optional, 0.0-1.0, number to specify random sample % of traffic \ No newline at end of file diff --git a/cli/endpoints/online/managed/inference-schema/env.yml b/cli/endpoints/online/managed/inference-schema/env.yml index b950f5cc74..6c575741b8 100644 --- a/cli/endpoints/online/managed/inference-schema/env.yml +++ b/cli/endpoints/online/managed/inference-schema/env.yml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - python=3.10 - - scikit-learn + - scikit-learn=1.2.2 - numpy - pandas - pip: diff --git a/cli/foundation-models/system/evaluation/fill-mask/fill-mask-pipeline.yml b/cli/foundation-models/system/evaluation/fill-mask/fill-mask-pipeline.yml index e1aaa2c2f3..38a3b2ff05 100644 --- a/cli/foundation-models/system/evaluation/fill-mask/fill-mask-pipeline.yml +++ b/cli/foundation-models/system/evaluation/fill-mask/fill-mask-pipeline.yml @@ -28,7 +28,8 @@ jobs: path: azureml://registries/azureml/models/bert-base-uncased/versions/4 input_column_names: input_string label_column_name: title - device: gpu + device: auto + compute_name: gpu-cluster-big evaluation_config: path: "../../../../../sdk/python/foundation-models/system/evaluation/fill-mask/eval-config.json" type: uri_file diff --git a/cli/foundation-models/system/evaluation/question-answering/extractive-qa-pipeline.yml b/cli/foundation-models/system/evaluation/question-answering/extractive-qa-pipeline.yml index 00a75dd49a..6742a8e473 100644 --- a/cli/foundation-models/system/evaluation/question-answering/extractive-qa-pipeline.yml +++ b/cli/foundation-models/system/evaluation/question-answering/extractive-qa-pipeline.yml @@ -27,7 +27,8 @@ jobs: path: azureml://registries/azureml/models/distilbert-base-uncased-distilled-squad/versions/4 input_column_names: context,question label_column_name: answer_text - device: gpu + device: auto + compute_name: gpu-cluster-big evaluation_config: path: "../../../../../sdk/python/foundation-models/system/evaluation/question-answering/eval-config.json" type: uri_file diff --git a/cli/foundation-models/system/evaluation/summarization/abstractive-and-extractive-summarization-pipeline.yml b/cli/foundation-models/system/evaluation/summarization/abstractive-and-extractive-summarization-pipeline.yml index f8aec36128..bbd318c4fc 100644 --- a/cli/foundation-models/system/evaluation/summarization/abstractive-and-extractive-summarization-pipeline.yml +++ b/cli/foundation-models/system/evaluation/summarization/abstractive-and-extractive-summarization-pipeline.yml @@ -28,7 +28,8 @@ jobs: path: azureml://registries/azureml/models/sshleifer-distilbart-cnn-12-6/versions/4 input_column_names: input_string label_column_name: summary - device: gpu + device: auto + compute_name: gpu-cluster-big evaluation_config: path: "../../../../../sdk/python/foundation-models/system/evaluation/summarization/eval-config.json" type: uri_file diff --git a/cli/foundation-models/system/evaluation/text-classification/entailment-contradiction-pipeline.yml b/cli/foundation-models/system/evaluation/text-classification/entailment-contradiction-pipeline.yml index 3388f67580..a1c3be3bc1 100644 --- a/cli/foundation-models/system/evaluation/text-classification/entailment-contradiction-pipeline.yml +++ b/cli/foundation-models/system/evaluation/text-classification/entailment-contradiction-pipeline.yml @@ -28,7 +28,8 @@ jobs: path: azureml://registries/azureml/models/microsoft-deberta-base-mnli/versions/4 input_column_names: input_string label_column_name: label_string - device: gpu + device: auto + compute_name: gpu-cluster-big evaluation_config: path: "../../../../../sdk/python/foundation-models/system/evaluation/text-classification/eval-config.json" type: uri_file diff --git a/cli/foundation-models/system/evaluation/text-generation/text-generation-pipeline.yml b/cli/foundation-models/system/evaluation/text-generation/text-generation-pipeline.yml index 00fe62d16e..9bf0c265ec 100644 --- a/cli/foundation-models/system/evaluation/text-generation/text-generation-pipeline.yml +++ b/cli/foundation-models/system/evaluation/text-generation/text-generation-pipeline.yml @@ -28,7 +28,8 @@ jobs: path: azureml://registries/azureml/models/gpt2/versions/4 input_column_names: input_string label_column_name: ground_truth - device: gpu + device: auto + compute_name: gpu-cluster-big evaluation_config: path: "../../../../../sdk/python/foundation-models/system/evaluation/text-generation/eval-config.json" type: uri_file diff --git a/cli/foundation-models/system/evaluation/token-classification/news-articles-entity-recognition-pipeline.yml b/cli/foundation-models/system/evaluation/token-classification/news-articles-entity-recognition-pipeline.yml index bc131919cd..9f1f781ee2 100644 --- a/cli/foundation-models/system/evaluation/token-classification/news-articles-entity-recognition-pipeline.yml +++ b/cli/foundation-models/system/evaluation/token-classification/news-articles-entity-recognition-pipeline.yml @@ -28,7 +28,8 @@ jobs: path: azureml://registries/azureml/models/jean-baptiste-camembert-ner/versions/4 input_column_names: input_string label_column_name: ner_tags_str - device: gpu + device: auto + compute_name: gpu-cluster-big evaluation_config: path: "../../../../../sdk/python/foundation-models/system/evaluation/token-classification/eval-config.json" type: uri_file diff --git a/cli/foundation-models/system/evaluation/translation/translation-pipeline.yml b/cli/foundation-models/system/evaluation/translation/translation-pipeline.yml index 1ddca81d27..bc6b34435a 100644 --- a/cli/foundation-models/system/evaluation/translation/translation-pipeline.yml +++ b/cli/foundation-models/system/evaluation/translation/translation-pipeline.yml @@ -28,7 +28,8 @@ jobs: path: azureml://registries/azureml/models/t5-base/versions/4 input_column_names: input_string label_column_name: ro - device: gpu + device: auto + compute_name: gpu-cluster-big evaluation_config: path: "../../../../../sdk/python/foundation-models/system/evaluation/translation/eval-config.json" type: uri_file diff --git a/cli/foundation-models/system/inference/automatic-speech-recognition/asr-batch-endpoint.sh b/cli/foundation-models/system/inference/automatic-speech-recognition/asr-batch-endpoint.sh new file mode 100644 index 0000000000..e121f839be --- /dev/null +++ b/cli/foundation-models/system/inference/automatic-speech-recognition/asr-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-asr + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="openai-whisper-large" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="asr-$version" +job_name="asr-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS5_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./input" +wget https://foundationmodelsamples.blob.core.windows.net/batch-inference-datasets/librispeech-dataset/batch/batch_input.csv -P $inputs_dir || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/foundation-models/system/inference/automatic-speech-recognition/batch-deploy.yml b/cli/foundation-models/system/inference/automatic-speech-recognition/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/automatic-speech-recognition/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/fill-mask/batch-deploy.yml b/cli/foundation-models/system/inference/fill-mask/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/fill-mask/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/fill-mask/fill-mask-batch-endpoint.sh b/cli/foundation-models/system/inference/fill-mask/fill-mask-batch-endpoint.sh new file mode 100644 index 0000000000..217039be0c --- /dev/null +++ b/cli/foundation-models/system/inference/fill-mask/fill-mask-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-fill-mask + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="bert-base-uncased" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="fill-mask-$version" +job_name="fill-mask-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS3_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./batch/inputs" +python prepare-batch-dataset.py --model_name $model_name || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/foundation-models/system/inference/fill-mask/prepare-batch-dataset.py b/cli/foundation-models/system/inference/fill-mask/prepare-batch-dataset.py new file mode 100644 index 0000000000..2131700967 --- /dev/null +++ b/cli/foundation-models/system/inference/fill-mask/prepare-batch-dataset.py @@ -0,0 +1,53 @@ +import os +import csv +import json +import random +import urllib +import argparse +import datasets +import pandas as pd + +# Get the model name from argument +parser = argparse.ArgumentParser() +parser.add_argument("--model_name", type=str, default="bert-base-uncased") +args = parser.parse_args() + +# Define directories and filenames as variables +dataset_dir = "dataset" +test_datafile = "test_100.csv" + +batch_dir = "batch" +batch_inputs_dir = os.path.join(batch_dir, "inputs") +batch_input_file = "batch_input.csv" +os.makedirs(dataset_dir, exist_ok=True) +os.makedirs(batch_dir, exist_ok=True) +os.makedirs(batch_inputs_dir, exist_ok=True) + +testdata = datasets.load_dataset("bookcorpus", split="train", streaming=True) + +test_df = pd.DataFrame(data=testdata.take(100)) + +# Get the right mask token from huggingface +with urllib.request.urlopen( + f"https://huggingface.co/api/models/{args.model_name}" +) as url: + data = json.load(url) + mask_token = data["mask_token"] + +# Take the value of the "text" column, replace a random word with the mask token, and save the result in the "masked_text" column +test_df["masked_text"] = test_df["text"].apply( + lambda x: x.replace(random.choice(x.split()), mask_token, 1) +) + +# Save the test_df dataframe to a csv file in the ./bookcorpus-dataset folder +test_df.to_csv(os.path.join(".", dataset_dir, test_datafile), index=False) + +batch_df = test_df[["masked_text"]].rename(columns={"masked_text": "input_string"}) + +# Divide this into files of 10 rows each +batch_size_per_predict = 10 +for i in range(0, len(batch_df), batch_size_per_predict): + j = i + batch_size_per_predict + batch_df[i:j].to_csv( + os.path.join(batch_inputs_dir, str(i) + batch_input_file), quoting=csv.QUOTE_ALL + ) diff --git a/cli/foundation-models/system/inference/question-answering/batch-deploy.yml b/cli/foundation-models/system/inference/question-answering/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/question-answering/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/question-answering/question-answering-batch-endpoint.sh b/cli/foundation-models/system/inference/question-answering/question-answering-batch-endpoint.sh new file mode 100644 index 0000000000..138210f520 --- /dev/null +++ b/cli/foundation-models/system/inference/question-answering/question-answering-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-question-answering + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="deepset-minilm-uncased-squad2" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="question-answering-$version" +job_name="question-answering-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS3_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./input" +wget https://foundationmodelsamples.blob.core.windows.net/batch-inference-datasets/squad-dataset/batch/batch_input.csv -P $inputs_dir || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/foundation-models/system/inference/summarization/batch-deploy.yml b/cli/foundation-models/system/inference/summarization/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/summarization/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/summarization/summarization-batch-endpoint.sh b/cli/foundation-models/system/inference/summarization/summarization-batch-endpoint.sh new file mode 100644 index 0000000000..b667341064 --- /dev/null +++ b/cli/foundation-models/system/inference/summarization/summarization-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-summarization + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="sshleifer-distilbart-cnn-12-6" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="summarization-$version" +job_name="summarization-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS5_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./input" +wget https://foundationmodelsamples.blob.core.windows.net/batch-inference-datasets/news-dataset/batch/batch_input.csv -P $inputs_dir || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/foundation-models/system/inference/text-classification/batch-deploy.yml b/cli/foundation-models/system/inference/text-classification/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/text-classification/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/text-classification/text-classification-batch-endpoint.sh b/cli/foundation-models/system/inference/text-classification/text-classification-batch-endpoint.sh new file mode 100644 index 0000000000..a1e31a8bb6 --- /dev/null +++ b/cli/foundation-models/system/inference/text-classification/text-classification-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-text-classification + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="microsoft-deberta-base-mnli" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="text-classification-$version" +job_name="text-classification-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS3_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./input" +wget https://foundationmodelsamples.blob.core.windows.net/batch-inference-datasets/glue-mnli-dataset/batch/batch_input.csv -P $inputs_dir || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/foundation-models/system/inference/text-generation/batch-deploy.yml b/cli/foundation-models/system/inference/text-generation/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/text-generation/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/text-generation/text-generation-batch-endpoint.sh b/cli/foundation-models/system/inference/text-generation/text-generation-batch-endpoint.sh new file mode 100644 index 0000000000..0d46a1c8ee --- /dev/null +++ b/cli/foundation-models/system/inference/text-generation/text-generation-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-text-generation + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="gpt2" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="text-generation-$version" +job_name="text-generation-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS3_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./input" +wget https://foundationmodelsamples.blob.core.windows.net/batch-inference-datasets/bookcorpus-dataset/batch_generation/batch_input.csv -P $inputs_dir || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/foundation-models/system/inference/token-classification/batch-deploy.yml b/cli/foundation-models/system/inference/token-classification/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/token-classification/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/token-classification/token-classification-batch-endpoint.sh b/cli/foundation-models/system/inference/token-classification/token-classification-batch-endpoint.sh new file mode 100644 index 0000000000..c35b17412f --- /dev/null +++ b/cli/foundation-models/system/inference/token-classification/token-classification-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-token-classification + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="Jean-Baptiste-camembert-ner" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="token-classification-$version" +job_name="token-classification-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS3_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./input" +wget https://foundationmodelsamples.blob.core.windows.net/batch-inference-datasets/Jean-Baptiste-wikiner_fr/batch/batch_input.csv -P $inputs_dir || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/foundation-models/system/inference/translation/batch-deploy.yml b/cli/foundation-models/system/inference/translation/batch-deploy.yml new file mode 100644 index 0000000000..2f66fbc630 --- /dev/null +++ b/cli/foundation-models/system/inference/translation/batch-deploy.yml @@ -0,0 +1,13 @@ +$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json +name: demo +compute: cpu-cluster +resources: + instance_count: 1 +error_threshold: 0 +logging_level: info +max_concurrency_per_instance: 2 +mini_batch_size: 10 +output_file_name: predictions.csv +retry_settings: + max_retries: 3 + timeout: 300 \ No newline at end of file diff --git a/cli/foundation-models/system/inference/translation/translation-batch-endpoint.sh b/cli/foundation-models/system/inference/translation/translation-batch-endpoint.sh new file mode 100644 index 0000000000..105cb829ca --- /dev/null +++ b/cli/foundation-models/system/inference/translation/translation-batch-endpoint.sh @@ -0,0 +1,96 @@ +set -x +# the commands in this file map to steps in this notebook: https://aka.ms/azureml-infer-batch-sdk-translation + +# script inputs +registry_name="azureml" +subscription_id="" +resource_group_name="" +workspace_name="" + +# This is the model from system registry that needs to be deployed +model_name="t5-small" + +# Validate the existence of the model in the registry and get the latest version +model_list=$(az ml model list --name ${model_name} --registry-name ${registry_name} 2>&1) +if [[ ${model_list} == *"[]"* ]]; then + echo "Model doesn't exist in registry. Check the model list and try again."; exit 1; +fi +version_temp=${model_list#*\"version\": \"} +model_version=${version_temp%%\"*} + +version=$(date +%s) +endpoint_name="translation-$version" +job_name="translation-job-$version" + +# todo: fetch compute_sku from the min_inference_sku tag of the model +compute_sku="Standard_DS3_v2" + +# 1. Setup pre-requisites +if [ "$subscription_id" = "" ] || \ + ["$resource_group_name" = "" ] || \ + [ "$workspace_name" = "" ]; then + echo "Please update the script with the subscription_id, resource_group_name and workspace_name" + exit 1 +fi + +az account set -s $subscription_id +workspace_info="--resource-group $resource_group_name --workspace-name $workspace_name" + +# 2. Check if the model exists in the registry +# need to confirm model show command works for registries outside the tenant (aka system registry) +if ! az ml model show --name $model_name --version $model_version --registry-name $registry_name +then + echo "Model $model_name:$model_version does not exist in registry $registry_name" + exit 1 +fi + +# Prepare the input data for the batch endpoint +inputs_dir="./input" +wget https://foundationmodelsamples.blob.core.windows.net/batch-inference-datasets/wmt16-de-en-dataset/batch/batch_input.csv -P $inputs_dir || { + echo "prepare batch inputs failed"; exit 1; +} + +# Create an AML compute for the batch deployment +az ml compute create --name cpu-cluster --type AmlCompute --min-instances 0 --max-instances 3 --size $compute_sku $workspace_info || { + echo "compute create failed"; exit 1; +} + +# 3. Deploy the model to an endpoint +# create batch endpoint +az ml batch-endpoint create --name $endpoint_name $workspace_info || { + echo "endpoint create failed"; exit 1; +} + +# deploy model from registry to endpoint in workspace +az ml batch-deployment create --file batch-deploy.yml --set-default $workspace_info --set \ + endpoint_name=$endpoint_name model=azureml://registries/$registry_name/models/$model_name/versions/$model_version || { + echo "deployment create failed"; exit 1; +} + +# 4. Invoke a job on the batch endpoint +invoke_output=$(az ml batch-endpoint invoke --name $endpoint_name --input $inputs_dir $workspace_info 2>&1) || { + echo "endpoint invoke failed"; exit 1; +} +invoke_temp=${invoke_output#*\"name\": \"} +job_name=${invoke_temp%%\"*} + +# 5. Stream the job logs +az ml job stream --name $job_name $workspace_info || { + echo "job stream-logs failed"; exit 1; +} + +# 6. Download the job output +az ml job download --name $job_name --download-path ./output $workspace_info || { + echo "job output download failed"; exit 1; +} + +# 5. Delete the endpoint +az ml batch-endpoint delete --name $endpoint_name $workspace_info --yes || { + echo "endpoint delete failed"; exit 1; +} + +# 6. Delete the compute cluster (Uncomment the below lines to delete the created cluster) +# az ml compute delete --name cpu-cluster $workspace_info --yes || { +# echo "compute delete failed"; exit 1; +# } + diff --git a/cli/jobs/pipelines/automl/cli-automl-classification-task-bankmarketing-pipeline/components/src/register.py b/cli/jobs/pipelines/automl/cli-automl-classification-task-bankmarketing-pipeline/components/src/register.py index d473107a2d..b08dbba36d 100644 --- a/cli/jobs/pipelines/automl/cli-automl-classification-task-bankmarketing-pipeline/components/src/register.py +++ b/cli/jobs/pipelines/automl/cli-automl-classification-task-bankmarketing-pipeline/components/src/register.py @@ -57,7 +57,7 @@ def main(args): runid = line.split(":")[1].strip() # Construct Model URI from run ID extract previously - model_uri = "runs:/{}/outputs/".format(runid) + model_uri = "runs:/{}/outputs/mlflow-model/".format(runid) print("Model URI: " + model_uri) # Register the model with Model URI and Name of choice diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/How to Run this AutoML Job with CLI (Forecasting).txt b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/How to Run this AutoML Job with CLI (Forecasting).txt new file mode 100644 index 0000000000..b7bfd74c46 --- /dev/null +++ b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/How to Run this AutoML Job with CLI (Forecasting).txt @@ -0,0 +1,9 @@ +How to Run this AutoML Job with CLI (Time-Series Forecasting) +=============================================================== + + +Run the AutoML CLI command pointing to the .YML file in this folder plus the Azure ML IDs needed: +---------------------------------------------------------------------------------------------------- + + +/> az ml job create --file ./hts_evaluation_pipeline.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION] diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/automl_settings_hts.yml b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/automl_settings_hts.yml new file mode 100644 index 0000000000..10f83eddb8 --- /dev/null +++ b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/automl_settings_hts.yml @@ -0,0 +1,18 @@ +debug_log: debug.txt +enable_early_stopping: true +forecast_horizon: 24 +forecast_step: 24 +hierarchy_column_names: +- group_id +- customer_id +hierarchy_training_level: customer_id +label_column_name: usage +max_trials: 25 +n_cross_validations: 3 +cv_step_size: 24 +primary_metric: normalized_root_mean_squared_error +task: forecasting +time_column_name: datetime +timeout_minutes: 60 +track_child_runs: false +trial_timeout_minutes: 5 diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/hts_evaluation_pipeline.yml b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/hts_evaluation_pipeline.yml new file mode 100644 index 0000000000..06319abd2a --- /dev/null +++ b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-hierarchical-timeseries/hts_evaluation_pipeline.yml @@ -0,0 +1,85 @@ +$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json +type: pipeline + +description: HTS evaluation pipeline using AutoML + +display_name: hts-evaluation-pipeline +experiment_name: automl-hts-evaluation-pipeline + +settings: + default_compute: azureml:cpu-cluster + +inputs: + raw_data: + type: uri_folder + path: ../data/train + inference_data: + type: uri_folder + path: ../data/test + automl_config: + type: uri_file + path: automl_settings_hts.yml + max_concurrency_per_node: 2 + parallel_step_timeout_in_seconds: 3700 + max_nodes: 5 + forecast_level: "customer_id" + forecast_mode: "rolling" + forecast_step: 24 + compute_name: "cpu-cluster" + +outputs: + forecast_results: + type: uri_file + mode: upload + evaluation_results: + type: uri_folder + mode: upload + +jobs: + automl_hts_training: + type: command + component: azureml://registries/azureml/components/automl_hts_training + inputs: + raw_data: ${{parent.inputs.raw_data}} + automl_config: ${{parent.inputs.automl_config}} + max_nodes: ${{parent.inputs.max_nodes}} + max_concurrency_per_node: ${{parent.inputs.max_concurrency_per_node}} + parallel_step_timeout_in_seconds: ${{parent.inputs.parallel_step_timeout_in_seconds}} + compute_name: ${{parent.inputs.compute_name}} + outputs: + run_output: + type: uri_folder + + automl_hts_inference: + type: command + component: azureml://registries/azureml/components/automl_hts_inference + inputs: + raw_data: ${{parent.inputs.inference_data}} + forecast_level: ${{parent.inputs.forecast_level}} + max_concurrency_per_node: ${{parent.inputs.max_concurrency_per_node}} + parallel_step_timeout_in_seconds: ${{parent.inputs.parallel_step_timeout_in_seconds}} + forecast_mode: ${{parent.inputs.forecast_mode}} + forecast_step: ${{parent.inputs.forecast_step}} + max_nodes: ${{parent.inputs.max_nodes}} + optional_train_metadata: ${{parent.jobs.automl_hts_training.outputs.run_output}} + compute_name: ${{parent.inputs.compute_name}} + outputs: + run_output: + type: uri_folder + evaluation_configs: + type: uri_file + evaluation_data: + type: uri_file + path: ${{parent.outputs.forecast_results}} + + compute_metrics: + type: command + component: azureml://registries/azureml/components/compute_metrics/versions/0.0.10 + inputs: + task: "tabular-forecasting" + ground_truth: ${{parent.jobs.automl_hts_inference.outputs.evaluation_data}} + prediction: ${{parent.jobs.automl_hts_inference.outputs.evaluation_data}} + evaluation_config: ${{parent.jobs.automl_hts_inference.outputs.evaluation_configs}} + compute: ${{parent.inputs.compute_name}} + outputs: + evaluation_result: ${{parent.outputs.evaluation_results}} diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/How to Run this AutoML Job with CLI (Forecasting).txt b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/How to Run this AutoML Job with CLI (Forecasting).txt new file mode 100644 index 0000000000..f1e1a87047 --- /dev/null +++ b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/How to Run this AutoML Job with CLI (Forecasting).txt @@ -0,0 +1,9 @@ +How to Run this AutoML Job with CLI (Time-Series Forecasting) +=============================================================== + + +Run the AutoML CLI command pointing to the .YML file in this folder plus the Azure ML IDs needed: +---------------------------------------------------------------------------------------------------- + + +/> az ml job create --file ./many_models_evaluation_pipeline.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION] diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/automl_settings_many_models.yml b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/automl_settings_many_models.yml new file mode 100644 index 0000000000..7d20ce6b27 --- /dev/null +++ b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/automl_settings_many_models.yml @@ -0,0 +1,19 @@ +allow_multi_partitions: false +debug_log: debug.txt +enable_early_stopping: true +forecast_horizon: 24 +forecast_step: 24 +label_column_name: usage +max_trials: 25 +n_cross_validations: 3 +cv_step_size: 24 +partition_column_names: +- customer_id +primary_metric: normalized_root_mean_squared_error +task: forecasting +time_column_name: datetime +time_series_id_column_names: +- customer_id +timeout_minutes: 60 +track_child_runs: false +trial_timeout_minutes: 5 diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/many_models_evaluation_pipeline.yml b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/many_models_evaluation_pipeline.yml new file mode 100644 index 0000000000..5b7d4c225b --- /dev/null +++ b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/cli-automl-forecasting-demand-many-models/many_models_evaluation_pipeline.yml @@ -0,0 +1,85 @@ +$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json +type: pipeline + +description: Many models evaluation pipeline using AutoML + +display_name: mm-evaluation-pipeline +experiment_name: automl-mm-evaluation-pipeline + +settings: + default_compute: azureml:cpu-cluster + +inputs: + raw_data: + type: uri_folder + path: ../data/train + inference_data: + type: uri_folder + path: ../data/test + automl_config: + type: uri_file + path: automl_settings_many_models.yml + max_concurrency_per_node: 2 + parallel_step_timeout_in_seconds: 3700 + max_nodes: 5 + retrain_failed_model: true + forecast_mode: "rolling" + forecast_step: 24 + compute_name: "cpu-cluster" + +outputs: + forecast_results: + type: uri_file + mode: upload + evaluation_results: + type: uri_folder + mode: upload + +jobs: + automl_mm_training: + type: command + component: azureml://registries/azureml/components/automl_many_models_training + inputs: + raw_data: ${{parent.inputs.raw_data}} + automl_config: ${{parent.inputs.automl_config}} + max_nodes: ${{parent.inputs.max_nodes}} + max_concurrency_per_node: ${{parent.inputs.max_concurrency_per_node}} + parallel_step_timeout_in_seconds: ${{parent.inputs.parallel_step_timeout_in_seconds}} + retrain_failed_model: ${{parent.inputs.retrain_failed_model}} + compute_name: ${{parent.inputs.compute_name}} + outputs: + run_output: + type: uri_folder + + automl_mm_inference: + type: command + component: azureml://registries/azureml/components/automl_many_models_inference + inputs: + raw_data: ${{parent.inputs.inference_data}} + max_concurrency_per_node: ${{parent.inputs.max_concurrency_per_node}} + parallel_step_timeout_in_seconds: ${{parent.inputs.parallel_step_timeout_in_seconds}} + forecast_mode: ${{parent.inputs.forecast_mode}} + forecast_step: ${{parent.inputs.forecast_step}} + max_nodes: ${{parent.inputs.max_nodes}} + optional_train_metadata: ${{parent.jobs.automl_mm_training.outputs.run_output}} + compute_name: ${{parent.inputs.compute_name}} + outputs: + run_output: + type: uri_folder + evaluation_configs: + type: uri_file + evaluation_data: + type: uri_file + path: ${{parent.outputs.forecast_results}} + + compute_metrics: + type: command + component: azureml://registries/azureml/components/compute_metrics/versions/0.0.10 + inputs: + task: "tabular-forecasting" + ground_truth: ${{parent.jobs.automl_mm_inference.outputs.evaluation_data}} + prediction: ${{parent.jobs.automl_mm_inference.outputs.evaluation_data}} + evaluation_config: ${{parent.jobs.automl_mm_inference.outputs.evaluation_configs}} + compute: ${{parent.inputs.compute_name}} + outputs: + evaluation_result: ${{parent.outputs.evaluation_results}} diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/inference/uci_electro_small_cli_inference.parquet b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/inference/uci_electro_small_cli_inference.parquet new file mode 100644 index 0000000000000000000000000000000000000000..6492c3f1c480725efeb305d857d2c7ad15064ab6 GIT binary patch literal 2744 zcmcguU1(cn82(O@W@laJ+R+md2w1`v3d`m>`RSUm!MK`PIt~p zmY=3+-K@IJI)ARb7$PWm;Y7h*?Lu^VF+qliKOkOA>4o5p$h;6lL43b+(k|U9q6`no z_nz;4-tT+f-?WoB%P|h-Q;J!k(##-(b|WP3aUz5=CuiAUXrR||kloqq;MjpdnhPHs z7<7b3VISlMhUs7^vUAW8;+Wn*IMO*2ibNR1j53D<%$l9)XPk`FJA#Ita2-HyBH>!N z->cbSU9(dT7O@m-W9_Vi?O~nlHkM|$`>)%)OrIyxkDMO&4yjphRCJ{_tICYcwPtty zWOH4!`L9uadaKJl0SE~(HUvvQ2!vq2VrRawr5V-?@necbx0c^n+|h$jc~`4V(S3by zW|lx)AK9}^(e%mNzxU96zn%H=Nvgl^wO`&k575y|7cPMK!9DX7h}C!Zt$+v|wLJ~? zUwr*7*f&b=Jp=acKQ28B&<8J{z6jz8U+5AD$Bpfm!SGsY4Gh!Y-FOZR?^a)01?Uxr z{5*)!tB0;o^yr;^11}K2RzCWXNQmL4jY)K+(@n2q@YadKg@(7#LgcSgr#pG>IWn}0 zuSAF6{^ZqV_IB!>5C7bS;Ing=f0gz!j!v#=S!gH?RadM;-*LL$cld8P{h!;t|AKeR z3JfytG${rz?K1;&Y(zP+|hEw&e>y}->lK);cWy@Tl& zcY6b%2ZWs1VDFeiTY9{n!wxBgPY1hx&1`+ZE+|H_C$U@!yt9{w0 z8nUuDD^;|nZq$8;hEAOc4Ee0>tcfZ2Y0d4j&k%G4%za(s?}L+bs-nrWe*;>yvyFDu zJlZr=sUj=nn9Dv^ZGD6NZXCv$Jq^SCS6BH z!l#V-nSUZ*Z|?`myOI0I|3koLHEN2`sMH__%RWsNYeKC}GGA>AwOXY`JXla_b+uv; zZS(+pfb~J5d>!&GEC^W0cOJR>a5j5_KV*%W`zrkyd0M4o7~?7UlIL-Z!#GyL35-iP zUNUvD*e1M1l*c#lcq?x0VKr|t@f5}_4Cg?amw+@6!CHWCtX1G6XAAiZ#*;H(7CV^I zwPrDy3+ICq3*uO=AsQL=gc=j`)2&iU@94B>Rn)VZlFTio<|`$hW9zB-_`Dcg~(?9)r*N}v%qs2xd-m&q)>K2cwi2Up$)+M#>^T1Lv?>OeWZ3K3gSw!Yd^c zkgLQ}K9r3};LBDvTlfa~&T4W}YZOlwSUwn8%1@j5Xu#cN!cibOOGY>`xfo5yNlm(Z z2#qhu`PiJmTd@^&O%s#ZxvpFrk{;!x#73SwHJ<3s4=3sx)GOPG6}a-TNOv4!aQs}6 zpJ1(AaNuu(_+2J-f|%;!7$=h)6hh+~=ocgvd>(_ECpA^l6K%z+drRRHZSW^#)v~Bb z#za*NhRs}^m=3qn^H?Rd=&EzDm>*vf_-NDYiTPAB6Av$?43@MmnGrl^zL`x9{f}{F zlFSdhOwE|eF{0cUC5*{n;H2CZL%9~|E3(Do$H>%W$O5}qyliUCA%Q_yf6RI5sypZl z=D9FObN%R%Bgp+|Rj8e7 kDvkY8wYuN@y&3BKpbVM6G@iro=h*t7o7)hYg#TIp0?^**{Qv*} literal 0 HcmV?d00001 diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/test/uci_electro_small_cli_test.parquet b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/test/uci_electro_small_cli_test.parquet new file mode 100644 index 0000000000000000000000000000000000000000..07743cd963034d18ea41e932ccae74e5a4b134e6 GIT binary patch literal 31370 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 GsQ(MUg=d5S literal 0 HcmV?d00001 diff --git a/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/train/uci_electro_small_cli_train.parquet b/cli/jobs/pipelines/automl/cli-automl-forecasting-demand-with-pipeline-components/data/train/uci_electro_small_cli_train.parquet new file mode 100644 index 0000000000000000000000000000000000000000..364385b6e6408361ddf8a2a85f22fb6a8511d624 GIT binary patch literal 1663125 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

1zl@0|U2p}&9}c_<3=^8f0P`R9 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%0Dfy6(LvL9jqvm^z>om!SeGYU; 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

^3+ket&KF_=LwmMjj0>TzMtxrsRJ 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 qRBd4>bKN5d3{-;Is8(%eg`i|+(1PJIL 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

^T9repUS*Ls0n>Hwo03wATM!1zx|91iL)iaZ;3 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