Compare commits

...
Author SHA1 Message Date
ivanmkc@google.com 20902244de Ran linter 2023-03-16 23:49:17 -04:00
ivanmkc@google.com c3526504d8 Added redis info 2023-03-15 14:54:42 -04:00
Andrew FerlitschandGitHub 9a409b9011 Merge pull request #1610 from GoogleCloudPlatform/sklearn_2
fix: issue 1251
2023-03-15 17:33:11 +00:00
Andrew FerlitschandGitHub c9cca725c6 Merge pull request #1609 from GoogleCloudPlatform/sklearn_1
fix: issue 1251
2023-03-15 17:32:54 +00:00
Andrew FerlitschandGitHub 3ddc77293b Merge pull request #1612 from GoogleCloudPlatform/rate_limit
fix: lower rate limit
2023-03-15 17:32:21 +00:00
Andrew FerlitschandGitHub 7fa90ee179 Merge pull request #1607 from GoogleCloudPlatform/contributing
fix: one notebook rule
2023-03-15 16:11:02 +00:00
Andrew Ferlitsch b88a775d33 fix: lower rate limit 2023-03-15 15:52:39 +00:00
Andrew FerlitschandGitHub d58718ce27 Merge pull request #1611 from btrinh69/fs-integration-notebook
modify protobuf docs and add instructions
2023-03-15 15:48:01 +00:00
btrinh69 f380b42d49 format the notebook 2023-03-14 22:24:24 +00:00
btrinh69 98be4d8cb4 fix linter 2023-03-14 22:18:51 +00:00
Andrew Ferlitsch 765d6ee296 fix: issue 1251 2023-03-14 22:10:48 +00:00
btrinh69 d08959b1a0 modify protobuf docs and add instructions 2023-03-14 22:09:33 +00:00
Andrew Ferlitsch aec5fbfd6f fix: issue 1251 2023-03-14 22:06:54 +00:00
Andrew Ferlitsch fe42cb6ebd fix: one notebook rule 2023-03-14 21:46:43 +00:00
Andrew FerlitschandGitHub 7c90baf6e3 Merge pull request #1606 from GoogleCloudPlatform/contributing
fix: simplified linter step
2023-03-14 21:34:36 +00:00
Andrew Ferlitsch f9be4f470d fix: use public image 2023-03-14 21:29:54 +00:00
Andrew Ferlitsch 309889bf6b fix: simplified linter step 2023-03-14 20:55:44 +00:00
gericdongandGitHub 8eabca5939 Merge pull request #1605 from GoogleCloudPlatform/andrewferlitsch-patch-5
obsolete
2023-03-14 20:35:55 +00:00
Andrew FerlitschandGitHub 830a762d2d obsolete 2023-03-14 13:31:32 -07:00
Ivan CheungandGitHub be95016723 Merge pull request #1604 from GoogleCloudPlatform/resource_reaper_official
fix: add more cleanup
2023-03-14 20:20:44 +00:00
Andrew Ferlitsch 0a7a2f6eeb fix: add more cleanup 2023-03-14 20:06:07 +00:00
gericdongandGitHub c0196a16b8 Merge pull request #1602 from GoogleCloudPlatform/issue_1599
fix: issue 1599
2023-03-14 16:44:17 +00:00
Andrew Ferlitsch 8e53879df1 fix: issue 1599 2023-03-14 01:47:48 +00:00
Andrew FerlitschandGitHub 8ecc2c25c6 Merge pull request #1591 from GoogleCloudPlatform/multicontender_vs_champion
feat: notebook for multicontender vs champion deployment
2023-03-14 01:31:18 +00:00
Andrew FerlitschandGitHub d98d427271 Merge pull request #1600 from iversonic/patch-1
Fix typo in title
2023-03-13 22:11:53 +00:00
Mark IversonandGitHub b35c2a89cb Fix typo in title 2023-03-13 14:15:02 -07:00
gericdongandGitHub bc93be1651 Merge pull request #1598 from gericdong/b267510213
chore: updated the XGBoost Dask notebook subject and text to be more specific
2023-03-13 18:01:07 +00:00
gericdong baa9c06cf7 Updated the objective 2023-03-13 13:55:35 -04:00
gericdongandGitHub 3f3ef75aba Merge pull request #1593 from GoogleCloudPlatform/bad_links_blessed
fix: bad links
2023-03-13 17:49:18 +00:00
Andrew FerlitschandGitHub 1a2a0f1d50 Update multicontender_vs_champion_deployment_method.ipynb 2023-03-13 09:07:53 -07:00
Andrew FerlitschandGitHub 93a099f65b Update challenger_vs_blessed_deployment_method.ipynb 2023-03-13 09:06:40 -07:00
gericdong b6804cdf78 chore: updated the notebook text to be more specific 2023-03-13 10:54:22 -04:00
Andrew FerlitschandGitHub b641e0857e Merge pull request #1371 from btrinh69/prediction-featurestore-integration
add an E2E notebook for Prediction and Featurestore integration
2023-03-11 01:48:11 +00:00
Andrew FerlitschandGitHub e12faf03ed Merge pull request #1597 from btrinh69/fs-integration-notebook
Add an introduction section and more details to the doc
2023-03-11 01:46:32 +00:00
btrinh69 d24f0d0f21 fix linter 2023-03-10 23:58:27 +00:00
btrinh69 c50d38e82f Add an introduction section and more details to the doc 2023-03-10 23:44:36 +00:00
gericdongandGitHub 52f458fd7d Merge pull request #1596 from gericdong/b269273823-2
fix: Incorporated Tech Writer's feedback on the PyTorch container notebook
2023-03-10 19:16:28 +00:00
gericdong eeaf34aa3b fix: address tech writer feedback on the PyTorch container notebook 2 2023-03-10 14:13:54 -05:00
gericdong 705f64dc32 fix: address tech writer feedback on the PyTorch container notebook 2023-03-10 14:04:25 -05:00
Eric SchmidtandGitHub 3830e14fd6 Merge pull request #1595 from GoogleCloudPlatform/cohost_linkback
fix: linkback
2023-03-10 18:09:11 +00:00
Eric SchmidtandGitHub bd55db1efc Merge pull request #1594 from GoogleCloudPlatform/linkback_mm
fix: linkback
2023-03-10 17:21:42 +00:00
Andrew Ferlitsch 07c0f3710f fix: linkback 2023-03-10 17:16:00 +00:00
Andrew Ferlitsch f9de0b6315 fix: linkback 2023-03-10 16:55:09 +00:00
Andrew Ferlitsch 5052d1f44d fix: bad links 2023-03-10 16:48:54 +00:00
Andrew Ferlitsch 35fbd744e2 fix: bad links 2023-03-10 16:43:30 +00:00
Andrew Ferlitsch 6d394e639c fix: bad links 2023-03-10 16:41:11 +00:00
Andrew Ferlitsch 540410ba89 fix: kfp install 2023-03-10 16:16:19 +00:00
Andrew FerlitschandGitHub 26e6548988 Merge pull request #1592 from gericdong/b269273823
feat: add a notebook sample for PyTorch image models with prebuilt containers
2023-03-09 21:34:49 +00:00
Andrew Ferlitsch 16de6f1b99 fix: review comments 2023-03-09 21:29:47 +00:00
gericdong 8cb2e868ce Updated with review commentss 2 2023-03-09 15:59:44 -05:00
gericdong 3153e24e57 Updated with review commentss 2023-03-09 15:55:08 -05:00
Andrew FerlitschandGitHub f40a81dda7 Merge pull request #1574 from inardini/inardini--experiments-autologging
feat: add notebook for experiments autologging
2023-03-09 20:45:17 +00:00
Andrew Ferlitsch 1590d1cc6f fix: install gcpc 2023-03-09 20:44:43 +00:00
gericdong 6b065f1c5a feat: add notebook for PyTorch image models with prebuilt containers 2023-03-09 15:23:41 -05:00
Andrew Ferlitsch b88fddd6bb fix: install kfp 2023-03-09 20:21:14 +00:00
Andrew Ferlitsch 22454b5318 fix: install kfp 2023-03-09 19:54:13 +00:00
Andrew FerlitschandGitHub e26190b5e3 Update get_started_with_vertex_experiments_autologging.ipynb 2023-03-09 11:49:37 -08:00
Andrew Ferlitsch e6ecd23556 feat: notebook for multicontender vs champion deployment 2023-03-09 19:17:15 +00:00
Andrew FerlitschandGitHub a342923353 Update get_started_with_vertex_experiments_autologging.ipynb 2023-03-09 10:59:34 -08:00
Andrew FerlitschandGitHub 0adcf3d60c Merge pull request #1584 from GoogleCloudPlatform/reznitskii-patch-19
Fixed title and grammar mistakes
2023-03-08 16:36:17 +00:00
Andrew FerlitschandGitHub 49547be529 Update get_started_with_vertex_experiments_autologging.ipynb 2023-03-07 17:37:33 -08:00
Andrew FerlitschandGitHub 9dbd6303b0 Update get_started_with_vertex_experiments_autologging.ipynb 2023-03-07 16:55:59 -08:00
Andrew FerlitschandGitHub ac049f3de1 Update get_started_with_vertex_experiments_autologging.ipynb 2023-03-07 16:45:16 -08:00
Andrew FerlitschandGitHub 3bca163dea Update get_started_with_vertex_experiments_autologging.ipynb 2023-03-07 16:32:06 -08:00
Andrew FerlitschandGitHub 8904b43308 Merge pull request #1580 from GoogleCloudPlatform/reznitskii-patch-15
Fixed title
2023-03-08 00:26:54 +00:00
Andrew FerlitschandGitHub 828926e9ab Update UJ15 Vertex SDK AutoML Object Tracking.ipynb 2023-03-07 16:26:15 -08:00
Ivan CheungandGitHub 851dfb72c1 Merge pull request #1590 from GoogleCloudPlatform/imkc--matching-engine-text-to-image-fix
Fixed broken markdown in matching engine notebooks
2023-03-08 00:06:42 +00:00
Andrew FerlitschandGitHub dea652ceca Merge pull request #1589 from GoogleCloudPlatform/reznitskii-patch-23
Fixed title
2023-03-08 00:06:08 +00:00
Andrew FerlitschandGitHub 56310240b3 Merge pull request #1587 from GoogleCloudPlatform/reznitskii-patch-22
Fixed title and grammar
2023-03-08 00:05:31 +00:00
Andrew FerlitschandGitHub d828534f28 Merge pull request #1586 from GoogleCloudPlatform/reznitskii-patch-21
Fixed title and grammar
2023-03-07 21:35:10 +00:00
Andrew FerlitschandGitHub 5b6340a15e Merge pull request #1585 from GoogleCloudPlatform/reznitskii-patch-20
Fixed title
2023-03-07 21:34:39 +00:00
Andrew FerlitschandGitHub 2d3a490aca Merge pull request #1583 from GoogleCloudPlatform/reznitskii-patch-18
Fixed title and grammar mistakes
2023-03-07 21:34:08 +00:00
Andrew FerlitschandGitHub 764ea292e5 Merge pull request #1582 from GoogleCloudPlatform/reznitskii-patch-17
Fixed title and typos
2023-03-07 21:33:28 +00:00
Andrew FerlitschandGitHub 867410462e Merge pull request #1581 from GoogleCloudPlatform/reznitskii-patch-16
Update UJ10 Vertex SDK Custom Scikit-Learn with pre-built training co…
2023-03-07 21:33:00 +00:00
Andrew FerlitschandGitHub 1874743d19 Merge pull request #1579 from GoogleCloudPlatform/reznitskii-patch-14
Added link
2023-03-07 21:32:17 +00:00
Andrew FerlitschandGitHub b19fcc9f66 Merge pull request #1578 from GoogleCloudPlatform/reznitskii-patch-13
Added link
2023-03-07 21:31:38 +00:00
Andrew FerlitschandGitHub 12db1f9e05 Merge pull request #1588 from GoogleCloudPlatform/autoindex_march_update
update: March update of index
2023-03-07 21:30:58 +00:00
ivanmkc@google.com 853b5c0a97 Fixed broken markdown 2023-03-07 15:40:35 -05:00
reznitskiiandGitHub 00aa9a2672 Update UJ5 Vertex SDK AutoML Image Object Detection.ipynb 2023-03-07 15:09:55 -05:00
Andrew Ferlitsch 7eb4eea074 update: march update of index 2023-03-07 20:06:00 +00:00
reznitskiiandGitHub 4b8b1e503b Update UJ4 Vertex SDK AutoML Tabular Binary Classification.ipynb 2023-03-07 14:34:47 -05:00
reznitskiiandGitHub db0f7fb6d7 Update UJ3 Vertex SDK Custom Image Classification with custom training container.ipynb 2023-03-07 14:30:15 -05:00
reznitskiiandGitHub cd04f66ac0 Update UJ2,12 Vertex SDK Custom Image Classification with pre-built training container.ipynb 2023-03-07 14:24:54 -05:00
reznitskiiandGitHub 419e01d1d3 Update UJ15 Vertex SDK AutoML Object Tracking.ipynb 2023-03-07 14:23:06 -05:00
reznitskiiandGitHub e7a51b394b Update UJ14 Vertex SDK AutoML Video Classification.ipynb 2023-03-07 14:22:16 -05:00
reznitskiiandGitHub fdfec862be Update UJ11 Vertex SDK Hyperparameter Tuning.ipynb 2023-03-07 14:21:24 -05:00
reznitskiiandGitHub 6da196a80b Update UJ10 Vertex SDK Custom Scikit-Learn with pre-built training container.ipynb 2023-03-07 14:19:24 -05:00
reznitskiiandGitHub 280f62a1d3 Update UJ1 Vertex SDK AutoML Image Classification.ipynb 2023-03-07 14:18:13 -05:00
reznitskiiandGitHub 20e524dda5 Update get_started_bq_datasets.ipynb 2023-03-07 14:16:48 -05:00
reznitskiiandGitHub b0c7c70b81 Update prophet_on_vertex_pipelines.ipynb 2023-03-07 14:14:03 -05:00
Andrew FerlitschandGitHub dcfc30edab Merge pull request #1576 from GoogleCloudPlatform/imkc--matching-engine-clip
Added matching engine CLIP notebook
2023-03-07 18:41:46 +00:00
Andrew FerlitschandGitHub 03fea0608d Merge pull request #1575 from GoogleCloudPlatform/imkc--matching-engine-stackoverflow
Added stackoverflow embeddings notebook
2023-03-07 18:03:52 +00:00
Andrew FerlitschandGitHub 6c15941242 Merge pull request #1577 from kthytang/fs-integration
fix: copy CPR model server to users project before using
2023-03-07 17:58:47 +00:00
kthytang 1bd5c364f5 fix: copy CPR model server to users project before using 2023-03-07 09:49:36 -08:00
Andrew FerlitschandGitHub 1c6e4a36c1 Update get_started_with_vertex_experiments_autologging.ipynb 2023-03-07 09:32:20 -08:00
ivanmkc@google.com 080d1819ed Addressed TW comments 2023-03-07 12:07:46 -05:00
ivanmkc@google.com 5679e46a12 Addressed TW comments 2023-03-07 12:01:41 -05:00
ivanmkc@google.com d54b3845fe Fixed notebooks/official/ml_metadata/sdk-metric-parameter-tracking-for-locally-trained-models.ipynb 2023-03-07 10:45:42 -05:00
ivanmkc@google.com 6a2d06f8f4 Fixed sigfig 2023-03-07 10:23:12 -05:00
ivanmkc@google.com 38a37ae8b9 Added plots 2023-03-07 10:14:40 -05:00
ivanmkc@google.com be20a635e4 Fixed missing dependency 2023-03-07 08:42:35 -05:00
ivanmkc@google.com db06465158 Added matching engine CLIP notebook 2023-03-07 08:40:49 -05:00
ivanmkc@google.com b42b6c6fb8 Added missing cells 2023-03-06 23:34:27 -05:00
ivanmkc@google.com 73fbc762fe Added tqdm to requirements.txt 2023-03-06 20:00:53 -05:00
ivanmkc@google.com 994a86d07a Fixed bugs 2023-03-06 16:53:46 -05:00
ivanmkc@google.com 71c1eca210 Fixed predictions 2023-03-06 16:16:39 -05:00
inardini 20cdcefea3 linter passed 2023-03-06 20:47:57 +00:00
inardini 26db26d100 add andy reviews 2023-03-06 20:47:26 +00:00
Andrew FerlitschandGitHub 01575ae76d Merge pull request #1570 from GoogleCloudPlatform/blessed_vs_challenger
feat: challenger vs blessed deployment method
2023-03-06 20:04:40 +00:00
ivanmkc@google.com 1c431bdb85 Updated links 2023-03-06 14:41:50 -05:00
ivanmkc@google.com 096a5d069e Linted 2023-03-06 14:38:29 -05:00
Andrew Ferlitsch d795b6e1f5 fix:missing install 2023-03-06 19:11:08 +00:00
Andrew FerlitschandGitHub 34eaf50f2c Merge pull request #1573 from kthytang/fs-integration
fix: update the cpr image used in the feature store prediction integr…
2023-03-06 17:57:14 +00:00
Andrew Ferlitsch 08ffe85ddf fix:missing install 2023-03-06 17:19:30 +00:00
ivanmkc@google.com 3ade1ab265 Added stackoverflow embeddings notebook 2023-03-06 10:45:06 -05:00
inardini 6e71605669 linter passed 2023-03-06 12:55:26 +00:00
inardini f8af22386c comment colab 2023-03-06 12:54:57 +00:00
inardini 9d7a744924 update codeowners 2023-03-06 08:56:07 +00:00
inardini 4f8a527f5c linter passed 2023-03-06 08:50:24 +00:00
inardini 4a987f5dcb fix linter 2023-03-06 08:49:59 +00:00
inardini a2a3de5767 add new autologging notebook tutorial 2023-03-06 08:45:18 +00:00
kthytang 3ca5d6cad6 fix: update the cpr image used in the feature store prediction integration notebook 2023-03-05 20:09:05 -08:00
Andrew Ferlitsch 9117fbbb71 fix:missing install 2023-03-04 01:57:32 +00:00
Andrew Ferlitsch 607c2605fa fix:missing install 2023-03-03 23:10:37 +00:00
Andrew Ferlitsch 3509bbc383 fix:missing install 2023-03-03 22:31:34 +00:00
Andrew FerlitschandGitHub 8593308244 Merge pull request #1569 from ninataneja/final-doc-change
Update dashboard instructions
2023-03-03 22:29:28 +00:00
Nina Taneja 806801b4ea Fix print error 2023-03-03 21:15:33 +00:00
Andrew Ferlitsch a1b1ff9a6b feat: challenger vs blessed deployment method 2023-03-03 21:05:35 +00:00
Nina Taneja 3acd72ec81 Fix lint error 2023-03-03 20:49:42 +00:00
Nina Taneja 12347f3ce2 Add error handling for delete job 2023-03-03 20:45:29 +00:00
Nina Taneja f9c4e32088 Add sleep for async job 2023-03-03 20:11:00 +00:00
Nina Taneja 78da2206b0 Update dashboard instructions 2023-03-03 18:50:21 +00:00
gericdongandGitHub 46fa993732 Merge pull request #1559 from GoogleCloudPlatform/ml_ops_registry
feat: add notebook for model versioning
2023-03-03 18:43:05 +00:00
Andrew FerlitschandGitHub df0c0d209b Merge pull request #1568 from kthytang/fs-integration
feat: notebook for prediction feature store integration
2023-03-03 18:32:05 +00:00
kthytang 2e8d6239df chore: run python3.9 -m tensorflow_docs.tools.nbfmt --remove_outputs "$notebook" 2023-03-03 10:02:46 -08:00
Andrew Ferlitsch 1841201fee fix: dep issue 2023-03-03 17:20:44 +00:00
kthytang f10857f299 chore: address comments 2023-03-03 07:17:50 -08:00
btrinh69 1e4b3aefdb address comments 2023-03-03 00:55:11 +00:00
kthytang e3bcff62fc chore: fix lint 2023-03-02 14:18:47 -08:00
kthytang ce3a439d06 feat: notebook for prediction feature store integration 2023-03-02 14:04:38 -08:00
Andrew FerlitschandGitHub b47d4b46f3 Merge pull request #1567 from GoogleCloudPlatform/reznitskii-patch-12
Fixed typo
2023-03-02 21:40:56 +00:00
Andrew FerlitschandGitHub 1cc87860c4 Merge pull request #1566 from GoogleCloudPlatform/reznitskii-patch-11
Fixed typo and link
2023-03-02 21:40:06 +00:00
reznitskiiandGitHub 5d6aa4479d Update automl_video_classification_model_evaluation.ipynb 2023-03-02 15:11:07 -05:00
reznitskiiandGitHub 5a25b06f2d Update UJ14 Vertex SDK AutoML Video Classification.ipynb 2023-03-02 15:09:45 -05:00
Andrew Ferlitsch bb055ed061 fix: cleanup 2023-03-02 18:26:45 +00:00
Andrew FerlitschandGitHub 974610a555 Merge pull request #1562 from GoogleCloudPlatform/reznitskii-patch-8
Updated link
2023-03-02 08:25:51 +00:00
Andrew FerlitschandGitHub d78574e640 Merge pull request #1565 from ninataneja/dask-sdk
Add SDK support for Dask dashboard to Training
2023-03-02 08:25:22 +00:00
Nina Taneja ff367ae9f5 Fixed formatting problem 2023-03-02 01:34:46 +00:00
Nina Taneja 40b5e74645 Addressed formatting and wording changes 2023-03-02 01:26:52 +00:00
Nina Taneja dee509e8d7 Add SDK support for Dask dashboard to Training 2023-03-01 23:39:06 +00:00
Andrew Ferlitsch fd5921fa32 fix: invalid alias 2023-03-01 22:55:39 +00:00
reznitskiiandGitHub c74a44a4a8 Update sdk_automl_tabular_classification_online_explain.ipynb 2023-03-01 17:22:30 -05:00
Andrew FerlitschandGitHub 367c985642 Merge pull request #1560 from GoogleCloudPlatform/autoindex_tensorboard
fix: tensorboard branding
2023-03-01 22:03:24 +00:00
Andrew Ferlitsch f7a970e15b fix: TIMESTAMP 2023-03-01 21:53:51 +00:00
Andrew Ferlitsch 9a914a5af4 fix: tensorboard branding 2023-03-01 21:46:57 +00:00
Andrew Ferlitsch e5315be85a feat: add notebook for model versioning 2023-03-01 20:54:17 +00:00
Andrew FerlitschandGitHub 6daf663a69 Merge pull request #1557 from GoogleCloudPlatform/custom_eval
feat: notebook for custom evaluations
2023-03-01 20:15:56 +00:00
Andrew Ferlitsch 45a65f1db8 fix: install issue 2023-03-01 20:05:54 +00:00
Andrew Ferlitsch 240c291728 feat: add eval on versioned model 2023-03-01 19:21:21 +00:00
gericdongandGitHub 4aec14c576 Merge pull request #1558 from GoogleCloudPlatform/andrewferlitsch-patch-4
tmp file added by mistake
2023-03-01 18:34:45 +00:00
Andrew FerlitschandGitHub f7d4d3a9c3 tmp file added by mistake 2023-03-01 10:08:20 -08:00
Andrew Ferlitsch 3c64a8aa58 fix: review nits 2023-03-01 18:04:34 +00:00
Andrew Ferlitsch 5f692ea299 fix: missing installs 2023-03-01 16:06:54 +00:00
Andrew FerlitschandGitHub ab1e97ac18 Merge pull request #1553 from GoogleCloudPlatform/autoindex_max_3
fix: 5 branding bugs
2023-03-01 16:04:23 +00:00
Andrew FerlitschandGitHub 78630ae2c0 Merge pull request #1552 from GoogleCloudPlatform/reznitskii-patch-3
Fixed typo
2023-03-01 16:03:51 +00:00
Andrew Ferlitsch 0f48628782 feat: notebook for custom evaluations 2023-03-01 00:52:20 +00:00
Andrew Ferlitsch 93e9fbac92 fix: 5 branding bugs 2023-02-28 20:42:03 +00:00
Andrew FerlitschandGitHub 231b2ef02b Merge pull request #1556 from GoogleCloudPlatform/reznitskii-patch-6
Fixed typo
2023-02-28 20:40:04 +00:00
Andrew FerlitschandGitHub 7132c12831 Merge pull request #1555 from GoogleCloudPlatform/reznitskii-patch-5
Fixed typos
2023-02-28 20:31:30 +00:00
reznitskiiandGitHub 2b547e8279 Update forecasting-retail-demand.ipynb 2023-02-28 15:24:25 -05:00
reznitskiiandGitHub 8b84524244 Update ai-explanations-tabnet-algorithm.ipynb 2023-02-28 15:21:53 -05:00
Andrew Ferlitsch 60fe1bd2c6 fix: 5 branding bugs 2023-02-28 20:16:57 +00:00
reznitskiiandGitHub 0edea80ffa Update custom_tabular_regression_model_evaluation.ipynb 2023-02-28 15:02:47 -05:00
Yvonne LiandGitHub 493e50a999 Merge pull request #1550 from GoogleCloudPlatform/autoindex_max_2
fix: extra period in link
2023-02-28 19:50:08 +00:00
Andrew Ferlitsch 8440e7f164 fix: extra period in link 2023-02-28 19:44:33 +00:00
gericdongandGitHub 906aa91fe7 Merge pull request #1549 from GoogleCloudPlatform/mv_pytorch
fix: reorg
2023-02-28 18:41:15 +00:00
gericdongandGitHub 34e282172f Merge pull request #1548 from GoogleCloudPlatform/rm_pytorch_folder
fix: reorg
2023-02-28 18:29:13 +00:00
Andrew Ferlitsch bddf642b58 fix: reorg 2023-02-28 18:24:55 +00:00
Andrew Ferlitsch 25b89c497f fix: reorg 2023-02-28 18:19:55 +00:00
Andrew FerlitschandGitHub 23a51dbcaa Merge pull request #1526 from GoogleCloudPlatform/doc_tag_1
update tag/linkback #1 AutoML Video
2023-02-28 18:15:56 +00:00
Andrew FerlitschandGitHub 26761198d7 Merge pull request #1547 from GoogleCloudPlatform/autoindex_max_1
fix: web index tune
2023-02-28 17:39:34 +00:00
Andrew Ferlitsch 5b4e88e791 fix: web index tune 2023-02-28 17:29:45 +00:00
Andrew Ferlitsch 83cc796687 fix: workaround for running > 24hrs 2023-02-28 17:05:34 +00:00
Andrew FerlitschandGitHub 3e29cc62c7 Merge pull request #1536 from GoogleCloudPlatform/doc_tag_11
update tag/linkback #11 AutoML Video
2023-02-28 17:02:09 +00:00
Andrew FerlitschandGitHub 2b1bb77f4b Merge pull request #1535 from GoogleCloudPlatform/doc_tag_10
update tag/linkback #10 AutoMLVideo
2023-02-28 16:55:55 +00:00
Andrew Ferlitsch 7144b87f01 fix: workaround for running > 24hrs 2023-02-28 16:50:51 +00:00
Andrew Ferlitsch ebf4d6d8be fix: workaround for running > 24hrs 2023-02-28 16:47:14 +00:00
Andrew FerlitschandGitHub 2ccd913e2e Merge pull request #1528 from GoogleCloudPlatform/doc_tag_3
update tag/linkback #3 AutoML Video
2023-02-28 16:45:02 +00:00
Andrew Ferlitsch d777dd8625 fix: workaround for running > 24hrs 2023-02-28 16:32:16 +00:00
Andrew FerlitschandGitHub d912d3d4d8 Merge pull request #1545 from GoogleCloudPlatform/reznitskii-patch-1
Fixed typo
2023-02-28 02:29:29 +00:00
reznitskiiandGitHub bafe623590 Update automl_tabular_regression_model_evaluation.ipynb 2023-02-27 17:34:34 -05:00
gericdongandGitHub 152077a823 Merge pull request #1543 from GoogleCloudPlatform/guidelines
feat: add authoring guidelines
2023-02-27 20:43:43 +00:00
Andrew Ferlitsch 81c94f9711 feat: add authoring guidelines 2023-02-27 19:53:10 +00:00
Andrew FerlitschandGitHub 897e8e3e47 Merge pull request #1541 from GoogleCloudPlatform/template_linkback
fix: add tag/linkback
2023-02-27 18:06:24 +00:00
Andrew Ferlitsch ddc125da69 fix: smaller dataset 2023-02-27 16:16:13 +00:00
Eric SchmidtandGitHub abb66ade41 Merge pull request #1542 from gericdong/b270683209
fix: bad links in notebook
2023-02-24 17:06:07 +00:00
gericdong 2915824641 Lint 2023-02-24 09:03:19 -05:00
gericdong 44447637bd fixed bad links 2023-02-24 08:59:24 -05:00
Andrew FerlitschandGitHub 6a8345446d Merge pull request #1504 from reznitskii/b267661933-2
Replaced Vertex AI Training linkbacks with Custom training
2023-02-24 02:13:42 +00:00
Andrew FerlitschandGitHub 60cb93a9a9 Delete pytorch-text-sentiment-classification-custom-train-deploy.ipynb 2023-02-22 14:43:12 -08:00
Andrew Ferlitsch 652f34b814 update tag/linkback 2023-02-21 18:37:09 +00:00
Andrew Ferlitsch c84f8738f8 update tag/linkback 2023-02-21 18:16:13 +00:00
Andrew Ferlitsch 7858f8644e update tag/linkback 2023-02-21 16:55:10 +00:00
Andrew Ferlitsch ae3c1877e4 update tag/linkback 2023-02-21 16:41:17 +00:00
Andrew FerlitschandGitHub 2798ab1e02 set timeout 2023-02-21 08:33:40 -08:00
Max Reznitskii 4e82877269 Reverting changes to failing notebooks 2023-02-09 16:42:44 +00:00
Max Reznitskii c4f08589a9 Reverting changes to notebooks that fail tests 2023-02-03 19:21:48 +00:00
Max Reznitskii bcb0b19dc4 Replaced Vertex AI Training linkbacks with Custom training 2023-02-02 23:04:08 +00:00
btrinh69 f0112cfc9a fix variables naming 2023-01-14 07:14:56 +00:00
btrinh69 33e7d18502 add passthrough case 2023-01-14 00:15:12 +00:00
btrinh69 506a6e66d7 format file 2023-01-13 00:18:59 +00:00
btrinh69 5bd6cfe6a7 remove redundant code 2023-01-13 00:16:15 +00:00
btrinh69 ca27881ca7 Merge branch 'prediction-featurestore-integration' of https://github.com/btrinh69/vertex-ai-samples into prediction-featurestore-integration 2023-01-13 00:13:44 +00:00
btrinh69 5fa0ed6185 remove redundant code 2023-01-13 00:12:38 +00:00
btrinh69 14f58e30c5 remove redundant code 2023-01-13 00:11:14 +00:00
btrinh69andGitHub 6af94b51aa Merge branch 'main' into prediction-featurestore-integration 2023-01-13 00:07:35 +00:00
btrinh69 2f818117db add prediction_featurestore_integration to the CODEOWNER file and format the notebook 2023-01-13 00:06:23 +00:00
btrinh69 04fe89c556 Ingest Feature Store data from an exported CSV instead of querying data
from BigQuery and address comments in the previous commit

This commit does:
- Shorten the Feature Store creation process by using an exported CSV to
  populate FS instead of querying from BigQuery
- Add the Feature fetch config proto to the description
- Grant the service account `Storage Admin` and `Vertex Ai Feature Store
  Data Viewer` role instead of `Vertex AI Service Agent`
- Address nit comments in the previous commit
2023-01-12 23:47:27 +00:00
btrinh69 7715f79807 format prediction_featurestore_integration.ipynb. 2022-12-19 23:21:59 +00:00
btrinh69 6caffbe5c3 add an E2E notebook for Prediction and Featurestore integration 2022-12-19 22:52:30 +00:00
82 changed files with 13066 additions and 745 deletions
+12
View File
@@ -7,6 +7,12 @@ from resource_cleanup_manager import (
ResourceCleanupManager,
MatchingEngineIndexEndpointResourceCleanupManager,
MatchingEngineIndexResourceCleanupManager,
FeatureStoreCleanupManager,
PipelineJobCleanupManager,
TrainingJobCleanupManager,
HyperparameterTuningCleanupManager,
BatchPredictionJobCleanupManager,
ExperimentCleanupManager
)
rate_limit = RateLimit(max_count=25, per=60, greedy=False)
@@ -48,6 +54,12 @@ managers: List[ResourceCleanupManager] = [
ModelResourceCleanupManager(), # ModelResourceCleanupManager must follow EndpointResourceCleanupManager due to deployed models blocking model deletion.
MatchingEngineIndexEndpointResourceCleanupManager(),
MatchingEngineIndexResourceCleanupManager(),
FeatureStoreCleanupManager(),
PipelineJobCleanupManager(),
TrainingJobCleanupManager(),
HyperparameterTuningCleanupManager(),
BatchPredictionJobCleanupManager(),
# ExperimentCleanupManager(), # Experiment missing _resource_noun
]
run_cleanup_managers(managers=managers, is_dry_run=is_dry_run)
@@ -97,8 +97,6 @@ class EndpointResourceCleanupManager(VertexAIResourceCleanupManager):
vertex_ai_resource = aiplatform.Endpoint
def delete(self, resource):
# TODO: Remove this once https://github.com/googleapis/python-aiplatform/issues/1441 is fixed
resource._sync_gca_resource()
for deployed_model_id in [
models.id for models in resource._gca_resource.deployed_models
]:
@@ -119,4 +117,42 @@ class MatchingEngineIndexEndpointResourceCleanupManager(VertexAIResourceCleanupM
def delete(self, resource):
resource.undeploy_all()
resource.delete(force=True)
resource.delete(force=True)
class FeatureStoreCleanupManager(VertexAIResourceCleanupManager):
vertex_ai_resource = aiplatform.Featurestore
class PipelineJobCleanupManager(VertexAIResourceCleanupManager):
vertex_ai_resource = aiplatform.PipelineJob
class TrainingJobCleanupManager(VertexAIResourceCleanupManager):
vertex_ai_resource = aiplatform.training_jobs._CustomTrainingJob
job_types = [
aiplatform.AutoMLImageTrainingJob,
aiplatform.AutoMLTextTrainingJob,
aiplatform.AutoMLTabularTrainingJob,
aiplatform.AutoMLVideoTrainingJob,
aiplatform.AutoMLForecastingTrainingJob,
aiplatform.CustomJob,
aiplatform.CustomTrainingJob,
aiplatform.CustomContainerTrainingJob,
aiplatform.CustomPythonPackageTrainingJob
]
def list(self) -> Any:
return [
job
for job_type in self.job_types
for job in job_type.list()
]
class HyperparameterTuningCleanupManager(VertexAIResourceCleanupManager):
vertex_ai_resource = aiplatform.HyperparameterTuningJob
class BatchPredictionJobCleanupManager(VertexAIResourceCleanupManager):
vertex_ai_resource = aiplatform.BatchPredictionJob
class ExperimentCleanupManager(VertexAIResourceCleanupManager):
vertex_ai_resource = aiplatform.Experiment
@@ -156,7 +156,7 @@ def _create_tag(filepath: str) -> str:
return tag
rate_limit = RateLimit(max_count=50, per=60, greedy=True)
rate_limit = RateLimit(max_count=25, per=60, greedy=True)
def process_and_execute_notebook(
+1
View File
@@ -11,3 +11,4 @@ google-cloud-storage
google-cloud-build
ratemate
GitPython
tqdm
+3 -5
View File
@@ -44,12 +44,10 @@ Finally, run this code block to check for errors. Each step will attempt to
automatically fix any issues. If the fixes can't be performed automatically,
then you will need to manually address them before submitting your PR.
Note: For official, only submit one notebook per PR.
```shell
nbqa black "$notebook"
nbqa pyupgrade "$notebook"
nbqa isort "$notebook"
nbqa flake8 "$notebook" --extend-ignore=W391,E501,F821,E402,F404,W503,E203,E722,W293,W291
python3 -m tensorflow_docs.tools.nbfmt --remove_outputs "$notebook"
docker run -v ${PWD}:/setup/app gcr.io/cloud-devrel-public-resources/notebook_linter:latest your_notebook
```
## Code Reviews
+1
View File
@@ -9,3 +9,4 @@
/Train_tabular_models_with_many_frameworks_and_import_to_Vertex_AI_using_Pipelines @Ark-kun
/pipeline_components @Ark-kun
/pipeline_components/image_ml_model_training @lakeyk
/prediction_featurestore_integration @googleapis/vertex-prediction-team
@@ -33,6 +33,7 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "JAPoU8Sm5E6e"
@@ -41,18 +42,18 @@
"<table align=\"left\">\n",
"\n",
" <td>\n",
" <a href=\"https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/vertex_endpoints/torchserve/dreambooth_stable_diffusion.ipynb\">\n",
" <a href=\"https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/vertex_endpoints/torchserve/dreambooth_stablediffusion.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/colab-logo-32px.png\" alt=\"Colab logo\"> Run in Colab\n",
" </a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/vertex_endpoints/torchserve/dreambooth_stable_diffusion.ipynb\">\n",
" <a href=\"https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/vertex_endpoints/torchserve/dreambooth_stablediffusion.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/github-logo-32px.png\" alt=\"GitHub logo\">\n",
" View on GitHub\n",
" </a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://console.cloud.google.com/vertex-ai/workbench/deploy-notebook?download_url=https://raw.githubusercontent.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/vertex_endpoints/torchserve/dreambooth_stable_diffusion.ipynb\">\n",
" <a href=\"https://console.cloud.google.com/vertex-ai/workbench/deploy-notebook?download_url=https://raw.githubusercontent.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/vertex_endpoints/torchserve/dreambooth_stablediffusion.ipynb\">\n",
" <img src=\"https://lh3.googleusercontent.com/UiNooY4LUgW_oTvpsNhPpQzsstV5W8F7rYgxgGBD85cWJoLmrOzhVs_ksK_vgx40SHs7jCqkTkCk=e14-rj-sc0xffffff-h130-w32\" alt=\"Vertex AI logo\">\n",
" Open in Vertex AI Workbench\n",
" </a>\n",
+8 -4
View File
@@ -1144,16 +1144,16 @@ def add_index(path: str,
if args.desc:
desc = replace_cl(desc.replace('`', ''))
print('<br/>')
print(f' {desc}.\n')
print(f' {desc}\n')
if args.linkback and linkbacks:
num = len(tags)
for _ in range(num):
if linkbacks[_].startswith("vertex-ai"):
print(f' Learn more about <a href="https://cloud.google.com/{linkbacks[_]}." target="_blank">{replace_cl(tags[_])}</a>.\n')
print(f' Learn more about <a href="https://cloud.google.com/{linkbacks[_]}" target="_blank">{replace_cl(tags[_])}</a>.\n')
else:
print(f' Learn more about <a href="{linkbacks[_]}." target="_blank">{replace_cl(tags[_])}</a>.\n')
print(f' Learn more about <a href="{linkbacks[_]}" target="_blank">{replace_cl(tags[_])}</a>.\n')
if args.steps:
print("<devsite-expandable>\n")
@@ -1240,6 +1240,8 @@ def replace_cl(text : str ) -> str:
'Vertex AI Prediction': '{{vertex_prediction_name}}',
'Vertex TensorBoard': '{{vertex_tensorboard_name}}',
'Vertex AI TensorBoard': '{{vertex_tensorboard_name}}',
'TensorBoard': '{{vertex_tensorboard_name}}',
'Tensorboard': '{{vertex_tensorboard_name}}',
'Vertex ML Metadata': '{{vertex_metadata_name}}',
'Vertex Pipelines': '{{vertex_pipelines_name}}',
'Vertex AI Pipelines': '{{vertex_pipelines_name}}',
@@ -1265,6 +1267,8 @@ def replace_cl(text : str ) -> str:
'Vertex AI': '{{vertex_ai_name}}',
'Cloud Storage': '{{storage_name}}',
'GCS': '{{storage_name}}',
'GCP': '{{gcp_name}}',
'TensorFlow Enterprise': '{{tf4gcp_name}}',
'TensorFlow': '{{tensorflow_name}}',
}
@@ -1320,7 +1324,7 @@ if args.web:
print(' <th width="80px">Open in</th>')
print(' </tr>')
print(' </thead>')
print(' <tbody>')
print(' <tbody class="list">')
if args.notebook_dir:
if not os.path.isdir(args.notebook_dir):
@@ -23,7 +23,62 @@
- Incorrect examples: "Let's update the field", "We'll update the field", "The user should update the field"
- **Googlers**: Please follow our [branding guidelines](http://goto/cloud-branding).
### Code
## Authoring guidelines
### Focus
Notebooks for official are expected to be narrow focused, which highlight a subset of features of a Vertex AI product/service.
The product/feature is to be highlighted in the Overview section. For example:
```
This tutorial demonstrates using Vertex AI Training to train an XGBoost model using a XGBoost pre-built training container.
```
In the above example, the Vertex AI product/service is `Vertex AI Training` and the feature is `XGBoost pre-built training container`.
### Scope
Notebooks for official are expected to be narrow in scope, without extra extraneous steps. For example, if the notebook is about training, we discourage ending the notebook with deploying the model and doing an online/batch prediction. On the later, we recommend a separate notebook about prediction that uses a pretrained model.
#### Training
Notebooks for training should be constructed as follows:
1. If the training script(s) are small, embed them in the notebook and use %writefile to store them locally.
2. If the training script(s) are large, store them in our public bucket: gs://cloud-samples-data/vertex-ai/dataset-management/script, and use !wgets to retrieve and store the script locally.
3. Train the model using the Vertex AI SDK methods for custom training.
4. Preferrable have the service upload the trained model to the Vertex AI Model Registry.
4. Have the script do an evaluation.
5. Retrieve the evaluation metrics and attach them as an artifact to the corresponding entry in the Model Registry.
6. Optionally, download the model artifacts and test locally -- i.e., make a local prediction request.
#### Evaluation
Notebooks for evaluation should be constructed as follows:
1. Use a pretrained model from a public repository.
2. Upload the pretrained model to the Vertex AI Model Registry.
3. Perform a model evaluation.
4. Review the model evaluation.
4. Attach the model evaluation to the corresponding entry in the Model Registry.
#### Prediction
Notebooks for prediction should be constructed as follows:
1. Use a pretrained model from a public repository.
2. If relevant, attach a serving function to the model artifacts.
3. Upload the pretrained model to the Vertex AI Model Registry.
4. For online:<br/>
A. Deploy the model.<br/>
B. Perform an online prediction.</br>
C. Review the result.
5. For batch:<br/>
A. Perform a batch prediction.</br/>
B. Review the result.
## Code
- Put all your installs and imports in a setup section.
- Save the notebook with the Table of Contents open.
@@ -31,7 +86,7 @@
- Follow the [Google Python Style guide](https://github.com/google/styleguide/blob/gh-pages/pyguide.md) and write readable code.
- Keep cells small (max ~20 lines).
## TensorFlow code style
### TensorFlow code style
Use the highest level API that gets the job done (unless the goal is to demonstrate the low level API). For example, when using Tensorflow:
-70
View File
@@ -1,70 +0,0 @@
tag,notebook,doc
"AutoML, Text data",official/automl/automl-text-classification.ipynb,vertex-ai/docs/text-data/classification/train-model
"AutoML, Text data",official/automl/sdk_automl_text_entity_extraction_online.ipynb,
"AutoML, Text data",official/automl/sdk_automl_text_sentiment_analysis_online.ipynb,
"AutoML, Tabular data",official/automl/sdk_automl_tabular_forecasting_batch.ipynb,vertex-ai/docs/tabular-data/forecasting/tutorials-samples
"AutoML, Tabular Data",official/automl/automl_tabular_on_vertex_pipelines.ipynb,vertex-ai/docs/tabular-data/tabular-workflows/e2e-automl
"AutoML, Tabular Data",official/automl/sdk_automl_tabular_regression_batch_bq.ipynb,
"AutoML, Tabular Data",official/automl/sdk_automl_tabular_regression_batch_bq.ipynb,
"AutoML, Forecasting",official/automl/automl_forecasting_bqml_arima_plus_comparison.ipynb,vertex-ai/docs/tabular-data/forecasting-arima/overview
"AutoML, Forecasting",official/automl/sdk_automl_tabular_forecasting_batch.ipynb,
"AutoML, Image data",official/automl/sdk_automl_text_sentiment_analysis_online.ipynb,
"AutoML, Video data",official/automl/sdk_automl_text_sentiment_analysis_online.ipynb,
"AutoML, Video data",official/automl/sdk_automl_video_classification_batch.ipynb,
"AutoML, Video data",official/automl/sdk_automl_video_object_tracking_batch.ipynb,
"AutoML, Video data",official/sdk/SDK_AutoML_Video_Classification.ipynb,
"BigQuery, Vertex AI Workbench",official/workbench/exploratory_data_analysis/explore_data_in_bigquery_with_workbench.ipynb,
"BigQuery ML, Vertex AI Model Registry, Batch prediction",official/model_registry/bqml_vertexai_model_registry.ipynb,
"BigQuery ML, Vertex AI Model Registry, Online prediction",official/bigquery_ml/bqml-online-prediction.ipynb,
"BigQuery ML",official/structured_data/rapid_prototyping_bqml_automl.ipynb,
Custom Training,official/custom/sdk-custom-image-classification-batch.ipynb,
Custom Training,official/custom/sdk-custom-image-classification-online.ipynb,
Custom Training,official/custom/SDK_Custom_Container_Prediction.ipynb,
"Custom Training, BiqQuery dataset",official/custom/custom-tabular-bq-managed-dataset.ipynb,
"Custom Training, TensorBoard",official/custom/custom-tabular-bq-managed-dataset.ipynb,
"Custom Training, TensorBoard",official/tensorboard/tensorboard_custom_training_with_custom_container.ipynb,
"Custom Training, TensorBoard",official/tensorboard/tensorboard_custom_training_with_prebuilt_container.ipynb
"Custom Training, Managed dataset",official/sdk/SDK_Custom_Training_Python_Package_Managed_Text_Dataset_Tensorflow_Serving_Container.ipynb,
"Custom Training, Distributed",official/training/multi_node_ddp_gloo_vertex_training_with_custom_container.ipynb,
"Custom Training, Distributed",official/training/multi_node_ddp_nccl_vertex_training_with_custom_container.ipynb
Vertex AI Experiments,official/experiments/comparing_pipeline_runs.ipynb,
Vertex AI Experiments,official/experiments/build_model_experimentation_lineage_with_prebuild_code.ipynb,
Vertex AI Experiments,official/experiments/comparing_local_trained_models.ipynb,
"Vertex Explainable AI, Tabular data",official/explainable_ai/sdk_automl_tabular_binary_classification_batch_explain.ipynb,vertex-ai/docs/explainable-ai/overview
"Vertex Explainable AI, Tabular data",official/explainable_ai/sdk_automl_tabular_classification_online_explain.ipynb,vertex-ai/docs/explainable-ai/overview
"Vertex Explainable AI, Image data",official/explainable_ai/sdk_custom_image_classification_batch_explain.ipynb,vertex-ai/docs/explainable-ai/overview
"Vertex Explainable AI, Tabular data",official/explainable_ai/sdk_custom_tabular_regression_batch_explain.ipynb,vertex-ai/docs/explainable-ai/overview
"Vertex Explainable AI, Tabular data",official/explainable_ai/sdk_custom_tabular_regression_online_explain.ipynb,vertex-ai/docs/explainable-ai/overview
Vertex ML Metadata,official/ml_metadata/sdk-metric-parameter-tracking-for-custom-jobs.ipynb,
"Vertex Explainable AI, Image data",official/explainable_ai/sdk_custom_image_classification_online_explain.ipynb,vertex-ai/docs/explainable-ai/overview
Vertex AI Feature Store,official/feature_store/sdk-feature-store.ipynb,
Vertex AI Feature Store,official/feature_store/sdk-feature-store-pandas.ipynb,
Vertex AI Matching Engine,official/matching_engine/sdk_matching_engine_for_indexing.ipynb,
Vertex ML Metadata,official/ml_metadata/sdk-metric-parameter-tracking-for-custom-jobs.ipynb,
Vertex ML Metadata,official/ml_metadata/sdk-metric-parameter-tracking-for-locally-trained-models.ipynb,
"Vertex ML Metadata, Vertex AI Pipelines",official/ml_metadata/sdk-metric-parameter-tracking-for-locally-trained-models.ipynb,
"Vertex AI Model Evaluation, AutoML",official/model_evaluation/automl_tabular_classification_model_evaluation.ipynb,
"Vertex AI Model Evaluation, AutoML",official/model_evaluation/automl_tabular_regression_model_evaluation.ipynb,
"Vertex AI Model Evaluation, AutoML",official/model_evaluation/automl_text_classification_model_evaluation.ipynb,
"Vertex AI Model Evaluation, AutoML",official/model_evaluation/automl_video_classification_model_evaluation.ipynb,
"Vertex AI Model Evaluation, Custom Training",official/model_evaluation/custom_tabular_regression_model_evaluation.ipynb,
Model Monitoring,official/model_monitoring/model_monitoring.ipynb,
Vertex AI Pipelines,official/pipelines/pipelines_intro_kfp.ipynb,
Vertex AI Pipelines,official/pipelines/control_flow_kfp.ipynb,
Vertex AI Pipelines,official/pipelines/metrics_viz_run_compare_kfp.ipynb,
Vertex AI Pipelines,official/pipelines/lightweight_functions_component_io_kfp.ipynb,
"Vertex AI Pipelines Image data",official/pipelines/google_cloud_pipeline_components_automl_images.ipynb,
"Vertex AI Pipelines, Tabular data",official/pipelines/automl_tabular_classification_beans.ipynb,
"Vertex AI Pipelines, Tabular data",official/pipelines/google_cloud_pipeline_components_automl_tabular.ipynb,
"Vertex AI Pipelines, Tabular data",official/pipelines/google_cloud_pipeline_components_dataproc_tabular.ipynb,
"Vertex AI Pipelines, Text data",official/pipelines/google_cloud_pipeline_components_automl_text.ipynb,
"Vertex AI Pipelines, Text data",official/pipelines/google_cloud_pipeline_components_bqml_text.ipynb,
Vertex AI Pipelines,official/pipelines/custom_model_training_and_batch_prediction.ipynb,
Vertex AI Pipelines,official/pipelines/google_cloud_pipeline_components_model_train_upload_deploy.ipynb,
Vertex AI Pipelines,official/pipelines/google_cloud_pipeline_components_model_upload_predict_evaluate.ipynb,
"Vertex AI Training, Reduction Server, PyTorch",official/reduction_server/pytorch_distributed_training_reduction_server.ipynb,
"Tabular Workflows, Vertex AI TabNet",official/tabnet/tabnet_vertex_tutorial.ipynb,
"Tabular Workflows, Vertex AI TabNet, Vertex Explainablee AI",official/tabnet/ai-explanations-tabnet-algorithm.ipynb,
"Tabular Workflows, Vertex AI TabNet, Vertex AI Pipelines",official/tabular_workflows/tabnet_on_vertex_pipelines.ipynb,
"Tabular Workflows, Vertex AI Wide and Deep",official/tabular_workflows/wide_and_deep_on_vertex_pipelines.ipynb,
Vertex AI Vizier,official/vizier/gapic-vizier-multi-objective-optimization.ipynb,vertex-ai/docs/vizier/using-vizier
1 tag notebook doc
2 AutoML, Text data official/automl/automl-text-classification.ipynb vertex-ai/docs/text-data/classification/train-model
3 AutoML, Text data official/automl/sdk_automl_text_entity_extraction_online.ipynb
4 AutoML, Text data official/automl/sdk_automl_text_sentiment_analysis_online.ipynb
5 AutoML, Tabular data official/automl/sdk_automl_tabular_forecasting_batch.ipynb vertex-ai/docs/tabular-data/forecasting/tutorials-samples
6 AutoML, Tabular Data official/automl/automl_tabular_on_vertex_pipelines.ipynb vertex-ai/docs/tabular-data/tabular-workflows/e2e-automl
7 AutoML, Tabular Data official/automl/sdk_automl_tabular_regression_batch_bq.ipynb
8 AutoML, Tabular Data official/automl/sdk_automl_tabular_regression_batch_bq.ipynb
9 AutoML, Forecasting official/automl/automl_forecasting_bqml_arima_plus_comparison.ipynb vertex-ai/docs/tabular-data/forecasting-arima/overview
10 AutoML, Forecasting official/automl/sdk_automl_tabular_forecasting_batch.ipynb
11 AutoML, Image data official/automl/sdk_automl_text_sentiment_analysis_online.ipynb
12 AutoML, Video data official/automl/sdk_automl_text_sentiment_analysis_online.ipynb
13 AutoML, Video data official/automl/sdk_automl_video_classification_batch.ipynb
14 AutoML, Video data official/automl/sdk_automl_video_object_tracking_batch.ipynb
15 AutoML, Video data official/sdk/SDK_AutoML_Video_Classification.ipynb
16 BigQuery, Vertex AI Workbench official/workbench/exploratory_data_analysis/explore_data_in_bigquery_with_workbench.ipynb
17 BigQuery ML, Vertex AI Model Registry, Batch prediction official/model_registry/bqml_vertexai_model_registry.ipynb
18 BigQuery ML, Vertex AI Model Registry, Online prediction official/bigquery_ml/bqml-online-prediction.ipynb
19 BigQuery ML official/structured_data/rapid_prototyping_bqml_automl.ipynb
20 Custom Training official/custom/sdk-custom-image-classification-batch.ipynb
21 Custom Training official/custom/sdk-custom-image-classification-online.ipynb
22 Custom Training official/custom/SDK_Custom_Container_Prediction.ipynb
23 Custom Training, BiqQuery dataset official/custom/custom-tabular-bq-managed-dataset.ipynb
24 Custom Training, TensorBoard official/custom/custom-tabular-bq-managed-dataset.ipynb
25 Custom Training, TensorBoard official/tensorboard/tensorboard_custom_training_with_custom_container.ipynb
26 Custom Training, TensorBoard official/tensorboard/tensorboard_custom_training_with_prebuilt_container.ipynb
27 Custom Training, Managed dataset official/sdk/SDK_Custom_Training_Python_Package_Managed_Text_Dataset_Tensorflow_Serving_Container.ipynb
28 Custom Training, Distributed official/training/multi_node_ddp_gloo_vertex_training_with_custom_container.ipynb
29 Custom Training, Distributed official/training/multi_node_ddp_nccl_vertex_training_with_custom_container.ipynb
30 Vertex AI Experiments official/experiments/comparing_pipeline_runs.ipynb
31 Vertex AI Experiments official/experiments/build_model_experimentation_lineage_with_prebuild_code.ipynb
32 Vertex AI Experiments official/experiments/comparing_local_trained_models.ipynb
33 Vertex Explainable AI, Tabular data official/explainable_ai/sdk_automl_tabular_binary_classification_batch_explain.ipynb vertex-ai/docs/explainable-ai/overview
34 Vertex Explainable AI, Tabular data official/explainable_ai/sdk_automl_tabular_classification_online_explain.ipynb vertex-ai/docs/explainable-ai/overview
35 Vertex Explainable AI, Image data official/explainable_ai/sdk_custom_image_classification_batch_explain.ipynb vertex-ai/docs/explainable-ai/overview
36 Vertex Explainable AI, Tabular data official/explainable_ai/sdk_custom_tabular_regression_batch_explain.ipynb vertex-ai/docs/explainable-ai/overview
37 Vertex Explainable AI, Tabular data official/explainable_ai/sdk_custom_tabular_regression_online_explain.ipynb vertex-ai/docs/explainable-ai/overview
38 Vertex ML Metadata official/ml_metadata/sdk-metric-parameter-tracking-for-custom-jobs.ipynb
39 Vertex Explainable AI, Image data official/explainable_ai/sdk_custom_image_classification_online_explain.ipynb vertex-ai/docs/explainable-ai/overview
40 Vertex AI Feature Store official/feature_store/sdk-feature-store.ipynb
41 Vertex AI Feature Store official/feature_store/sdk-feature-store-pandas.ipynb
42 Vertex AI Matching Engine official/matching_engine/sdk_matching_engine_for_indexing.ipynb
43 Vertex ML Metadata official/ml_metadata/sdk-metric-parameter-tracking-for-custom-jobs.ipynb
44 Vertex ML Metadata official/ml_metadata/sdk-metric-parameter-tracking-for-locally-trained-models.ipynb
45 Vertex ML Metadata, Vertex AI Pipelines official/ml_metadata/sdk-metric-parameter-tracking-for-locally-trained-models.ipynb
46 Vertex AI Model Evaluation, AutoML official/model_evaluation/automl_tabular_classification_model_evaluation.ipynb
47 Vertex AI Model Evaluation, AutoML official/model_evaluation/automl_tabular_regression_model_evaluation.ipynb
48 Vertex AI Model Evaluation, AutoML official/model_evaluation/automl_text_classification_model_evaluation.ipynb
49 Vertex AI Model Evaluation, AutoML official/model_evaluation/automl_video_classification_model_evaluation.ipynb
50 Vertex AI Model Evaluation, Custom Training official/model_evaluation/custom_tabular_regression_model_evaluation.ipynb
51 Model Monitoring official/model_monitoring/model_monitoring.ipynb
52 Vertex AI Pipelines official/pipelines/pipelines_intro_kfp.ipynb
53 Vertex AI Pipelines official/pipelines/control_flow_kfp.ipynb
54 Vertex AI Pipelines official/pipelines/metrics_viz_run_compare_kfp.ipynb
55 Vertex AI Pipelines official/pipelines/lightweight_functions_component_io_kfp.ipynb
56 Vertex AI Pipelines Image data official/pipelines/google_cloud_pipeline_components_automl_images.ipynb
57 Vertex AI Pipelines, Tabular data official/pipelines/automl_tabular_classification_beans.ipynb
58 Vertex AI Pipelines, Tabular data official/pipelines/google_cloud_pipeline_components_automl_tabular.ipynb
59 Vertex AI Pipelines, Tabular data official/pipelines/google_cloud_pipeline_components_dataproc_tabular.ipynb
60 Vertex AI Pipelines, Text data official/pipelines/google_cloud_pipeline_components_automl_text.ipynb
61 Vertex AI Pipelines, Text data official/pipelines/google_cloud_pipeline_components_bqml_text.ipynb
62 Vertex AI Pipelines official/pipelines/custom_model_training_and_batch_prediction.ipynb
63 Vertex AI Pipelines official/pipelines/google_cloud_pipeline_components_model_train_upload_deploy.ipynb
64 Vertex AI Pipelines official/pipelines/google_cloud_pipeline_components_model_upload_predict_evaluate.ipynb
65 Vertex AI Training, Reduction Server, PyTorch official/reduction_server/pytorch_distributed_training_reduction_server.ipynb
66 Tabular Workflows, Vertex AI TabNet official/tabnet/tabnet_vertex_tutorial.ipynb
67 Tabular Workflows, Vertex AI TabNet, Vertex Explainablee AI official/tabnet/ai-explanations-tabnet-algorithm.ipynb
68 Tabular Workflows, Vertex AI TabNet, Vertex AI Pipelines official/tabular_workflows/tabnet_on_vertex_pipelines.ipynb
69 Tabular Workflows, Vertex AI Wide and Deep official/tabular_workflows/wide_and_deep_on_vertex_pipelines.ipynb
70 Vertex AI Vizier official/vizier/gapic-vizier-multi-objective-optimization.ipynb vertex-ai/docs/vizier/using-vizier
+1
View File
@@ -40,3 +40,4 @@
/model_evaluation/custom_tabular_classification_model_evaluation.ipynb @soheilazangeneh
/sdk/SDK_FBProphet_Forecasting_Online.ipynb @brianchunkang
/pipelines/Train_tabular_models_with_many_frameworks_and_import_to_Vertex_AI_using_Pipelines @Ark-kun
/experiments/get_started_with_vertex_experiments_autologging.ipynb @inardini
-438
View File
@@ -4,441 +4,3 @@ The official notebooks are a collection of curated and non-curated notebooks aut
The official notebooks are organized by Google Cloud Vertex AI services.
## Manifest of Curated Notebooks
### AutoML Text data
[Create, train, and deploy an AutoML text classification model](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/automl/automl-text-classification.ipynb)
Learn how to use `AutoML` to train a text classification model.
The steps performed include:
* Create a `Vertex AI Dataset`.
* Train an `AutoML` text classification `Model` resource.
* Obtain the evaluation metrics for the `Model` resource.
* Create an `Endpoint` resource.
* Deploy the `Model` resource to the `Endpoint` resource.
* Make an online prediction
* Make a batch prediction
### AutoML Tabular data
[AutoML tabular forecasting model for batch prediction](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/automl/sdk_automl_tabular_forecasting_batch.ipynb)
Learn how to create an `AutoML` tabular forecasting model from a Python script, and then do a batch prediction using the Vertex AI SDK.
The steps performed include:
- Create a `Vertex AI Dataset` resource.
- Train an `AutoML` tabular forecasting `Model` resource.
- Obtain the evaluation metrics for the `Model` resource.
- Make a batch prediction.
### BigQuery ML Vertex AI Model Registry Batch prediction
[Deploy BiqQuery ML Model on Vertex AI Model Registry and make predictions](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model-registry/bqml-vertexai-model-registry.ipynb)
Learn how to use `Vertex AI Model Registry` with `BigQuery ML` and make batch predictions:
The steps performed include:
- Train a model with `BigQuery ML`
- Upload the model to `Vertex AI Model Registry`
- Create a `Vertex AI Endpoint` resource
- Deploy the `Model` resource to the `Endpoint` resource
- Make `prediction` requests to the model endpoint
- Run `batch prediction` job on the `Model` resource
### BigQuery ML Vertex AI Model Registry Online prediction
[Online prediction with BigQuery ML](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/bigquery_ml/bqml-online-prediction.ipynb)
Learn how to train and deploy a churn prediction model for real-time inference, with the data in BigQuery and model trained using BigQuery ML, registered to Vertex AI Model Registry, and deployed to an endpoint on Vertex AI for online predictions.
The steps performed include:
- Using Python & SQL to query the public data in BigQuery
- Preparing the data for modeling
- Training a classification model using BigQuery ML and registering it to Vertex AI Model Registry
- Inspecting the model on Vertex AI Model Registry
- Deploying the model to an endpoint on Vertex AI
- Making sample online predictions to the model endpoint
### Custom Training
[Custom training and batch prediction](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/custom/sdk-custom-image-classification-batch.ipynb)
Learn to use `Vertex AI Training` to create a custom trained model and use `Vertex AI Batch Prediction` to do a batch prediction on the trained model.
The steps performed include:
- Create a `Vertex AI` custom job for training a TensorFlow model.
- Upload the trained model artifacts as a `Model` resource.
- Make a batch prediction.
[Custom training and online prediction](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/custom/sdk-custom-image-classification-online.ipynb)
Learn to use `Vertex AI Training` to create a custom-trained model from a Python script in a Docker container, and learn to use `Vertex AI Prediction` to do a prediction on the deployed model by sending data.
The steps performed include:
- Create a `Vertex AI` custom job for training a TensorFlow model.
- Upload the trained model artifacts to a `Model` resource.
- Create a serving `Endpoint` resource.
- Deploy the `Model` resource to a serving `Endpoint` resource.
- Make a prediction.
- Undeploy the `Model` resource.
### Tabular Data
[Compare Vertex AI Forecasting and BigQuery ML ARIMA_PLUS](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/automl/automl_forecasting_bqml_arima_plus_comparison.ipynb)
Learn how to create an BQML ARIMA_PLUS model using a training [Vertex AI Pipeline](https://cloud.
The steps performed are:
- Train the BQML ARIMA_PLUS model.
- View BQML model evaluation.
- Make a batch prediction with the BQML model.
- Create a Vertex AI `Dataset` resource.
- Train the Vertex AI Forecasting model.
- View the Model evaluation.
- Make a batch prediction with the Model.
### AutoML Tabular Data
[AutoML Tabular Pipeline](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/automl/automl_tabular_on_vertex_pipelines.ipynb)
Learn how to create two regression models using [Vertex Pipelines](https://cloud.
The steps performed are:
- Create a training pipeline that reduces the search space from the default to save time.
- Create a training pipeline that reuses the architecture search results from the previous pipeline to save time.
### Vertex AI Experiments
[Compare pipeline runs with Vertex AI Experiments](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/experiments/comparing_pipeline_runs.ipynb)
Learn how to use `Vertex AI Experiments` to log a pipeline job and compare different pipeline jobs.
[Build Vertex AI Experiment lineage for custom training](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/experiments/build_model_experimentation_lineage_with_prebuild_code.ipynb)
Learn how to integrate preprocessing code in a Vertex AI experiments.
[Track parameters and metrics for locally trained models](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/experiments/comparing_local_trained_models.ipynb)
Learn how to use Vertex AI Experiments to compare and evaluate model experiments.
The steps performed include:
- log the model parameters
- log the loss and metrics on every epoch to TensorBoard
- log the evaluation metrics
### Vertex AI Feature Store
[Online and Batch predictions using Vertex AI Feature Store](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/feature_store/sdk-feature-store.ipynb)
Learn how to use `Vertex AI Feature Store` to import feature data, and to access the feature data for both online serving and offline tasks, such as training.
The steps performed include:
- Create featurestore, entity type, and feature resources.
- Import feature data into `Vertex AI Feature Store` resource.
- Serve online prediction requests using the imported features.
- Access imported features in offline jobs, such as training jobs.
### Matching Engine
[Create Vertex AI Matching Engine index](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/matching_engine/sdk_matching_engine_for_indexing.ipynb)
Learn how to create Approximate Nearest Neighbor (ANN) Index, query against indexes, and validate the performance of the index.
The steps performed include:
* Create ANN Index and Brute Force Index
* Create an IndexEndpoint with VPC Network
* Deploy ANN Index and Brute Force Index
* Perform online query
* Compute recall
### Model Monitoring
[Vertex AI Model Monitoring with Explainable AI Feature Attributions](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_monitoring/model_monitoring.ipynb)
Learn to use the `Vertex AI Model Monitoring` service to detect drift and anomalies in prediction requests from a deployed `Vertex AI Model` resource.
The steps performed include:
- Upload a pre-trained model as a `Vertex AI Model` resource.
- Create an `Vertex AI Endpoint` resource.
- Deploy the `Model` resource to the `Endpoint` resource.
- Configure the `Endpoint` resource for model monitoring.
- Initialize the baseline distribution for model monitoring.
- Generate synthetic prediction requests.
- Understand how to interpret the statistics, visualizations, other data reported by the model monitoring feature.
### Vertex AI Pipelines
[Lightweight Python function-based components, and component I/O](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/lightweight_functions_component_io_kfp.ipynb)
Learn to use the KFP SDK to build lightweight Python function-based components, and then you learn to use `Vertex AI Pipelines` to execute the pipeline.
The steps performed include:
- Build Python function-based KFP components.
- Construct a KFP pipeline.
- Pass *Artifacts* and *parameters* between components, both by path reference and by value.
- Use the `kfp.dsl.importer` method.
- Compile the KFP pipeline.
- Execute the KFP pipeline using `Vertex AI Pipelines`
### Vertex AI Pipelines Image data
[AutoML image classification pipelines using google-cloud-pipeline-components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/google_cloud_pipeline_components_automl_images.ipynb)
Learn how to use `Vertex AI Pipelines` and `Google Cloud Pipeline Components` to build an `AutoML` image classification model.
The steps performed include:
- Create a KFP pipeline:
- Create a `Dataset` resource.
- Train an AutoML image classification `Model` resource.
- Create an `Endpoint` resource.
- Deploys the `Model` resource to the `Endpoint` resource.
- Compile the KFP pipeline.
- Execute the KFP pipeline using `Vertex AI Pipelines`
### Vertex AI Pipelines Tabular data
[AutoML Tabular pipelines using google-cloud-pipeline-components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/automl_tabular_classification_beans.ipynb)
Learn to use `Vertex AI Pipelines` and `Google Cloud Pipeline Components` to build an `AutoML` tabular classification model.
The steps performed include:
- Create a KFP pipeline:
- Create a `Dataset` resource.
- Train an AutoML tabular classification `Model` resource.
- Create an `Endpoint` resource.
- Deploys the `Model` resource to the `Endpoint` resource.
- Compile the KFP pipeline.
- Execute the KFP pipeline using `Vertex AI Pipelines`
[AutoML tabular regression pipelines using google-cloud-pipeline-components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/google_cloud_pipeline_components_automl_tabular.ipynb)
Learn to use `Vertex AI Pipelines` and `Google Cloud Pipeline Components` to build an `AutoML` tabular regression model.
The steps performed include:
- Create a KFP pipeline:
- Create a `Dataset` resource.
- Train an AutoML tabular regression `Model` resource.
- Create an `Endpoint` resource.
- Deploys the `Model` resource to the `Endpoint` resource.
- Compile the KFP pipeline.
- Execute the KFP pipeline using `Vertex AI Pipelines`
### Vertex AI Pipelines Text data
[AutoML text classification pipelines using google-cloud-pipeline-components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/google_cloud_pipeline_components_automl_text.ipynb)
Learn to use `Vertex AI Pipelines` and `Google Cloud Pipeline Components` to build an `AutoML` text classification model.
The steps performed include:
- Create a KFP pipeline:
- Create a `Dataset` resource.
- Train an AutoML text classification `Model` resource.
- Create an `Endpoint` resource.
- Deploys the `Model` resource to the `Endpoint` resource.
- Compile the KFP pipeline.
- Execute the KFP pipeline using `Vertex AI Pipelines`
### Vertex AI Pipelines
[Custom training with pre-built Google Cloud Pipeline Components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/custom_model_training_and_batch_prediction.ipynb)
Learn to use `Vertex AI Pipelines` and `Google Cloud Pipeline Components` to build a custom model.
The steps performed include:
- Create a KFP pipeline:
- Train a custom model.
- Upload the trained model as a `Model` resource.
- Create an `Endpoint` resource.
- Deploy the `Model` resource to the `Endpoint` resource.
- Make a batch prediction request.
[Pipeline control structures using the KFP SDK](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/control_flow_kfp.ipynb)
Learn how to use the KFP SDK to build pipelines that use loops and conditionals, including nested examples.
The steps performed include:
- Create a KFP pipeline:
- Use control flow components
- Compile the KFP pipeline.
- Execute the KFP pipeline using `Vertex AI Pipelines`
[Metrics visualization and run comparison using the KFP SDK](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/metrics_viz_run_compare_kfp.ipynb)
Learn how to use the KFP SDK to build pipelines that generate evaluation metrics.
The steps performed include:
- Create KFP components:
- Generate ROC curve and confusion matrix visualizations for classification results
- Write metrics
- Create KFP pipelines.
- Execute KFP pipelines
- Compare metrics across pipeline runs
[Pipelines introduction for KFP](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/pipelines_intro_kfp.ipynb)
Learn how to use the KFP SDK to build pipelines that generate evaluation metrics.
The steps performed include:
- Define and compile a `Vertex AI` pipeline.
- Specify which service account to use for a pipeline run.
### Vertex AI Vizier
[Optimizing multiple objectives with Vertex AI Vizier](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/vizier/gapic-vizier-multi-objective-optimization.ipynb)
Learn how to use `Vertex AI Vizier` to optimize a multi-objective study.
### Vertex Explainable AI Tabular data
[AutoML training tabular binary classification model for batch explanation](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/sdk_automl_tabular_binary_classification_batch_explain.ipynb)
Learn to use `AutoML` to create a tabular binary classification model from a Python script, and then learn to use `Vertex AI Batch Prediction` to make predictions with explanations.
The steps performed include:
- Create a `Vertex Dataset` resource.
- Train an `AutoML` tabular binary classification model.
- View the model evaluation metrics for the trained model.
- Make a batch prediction request with explainability.
* Prediction Service: Does an on-demand prediction for the entire set of instances (i.e., one or more data items) and returns the results in real-time.
* Batch Prediction Service: Does a queued (batch) prediction for the entire set of instances in the background and stores the results in a Cloud Storage bucket when ready.
[AutoML training tabular classification model for online explanation](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/sdk_automl_tabular_classification_online_explain.ipynb)
Learn how to use `AutoML` to create a tabular binary classification model from a Python script, and then learn to use `Vertex AI Online Prediction` to make online predictions with explanations.
The steps performed include:
- Create a `Vertex Dataset` resource.
- Train an `AutoML` tabular binary classification model.
- View the model evaluation metrics for the trained model.
- Create a serving `Endpoint` resource.
- Deploy the `Model` resource to a serving `Endpoint` resource.
- Make an online prediction request with explainability.
- Undeploy the `Model` resource.
### Vertex Explainable AI Image data
[Custom training image classification model for batch prediction with explainabilty](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/sdk_custom_image_classification_batch_explain.ipynb)
Learn to use `Vertex AI Training and Explainable AI` to create a custom image classification model with explanations, and then you learn to use `Vertex AI Batch Prediction` to make a batch prediction request with explanations.
The steps performed include:
- Create a `Vertex AI` custom job for training a TensorFlow model.
- View the model evaluation for the trained model.
- Set explanation parameters for when the model is deployed.
- Upload the trained model artifacts and explanation parameters as a `Model` resource.
- Make a batch prediction with explanations.
[Custom training image classification model for online prediction with explainabilty](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/sdk_custom_image_classification_online_explain.ipynb)
Learn how to use `Vertex AI Training and Explainable AI` to create a custom image classification model with explanations, and then you learn to use `Vertex AI Prediction` to make an online prediction request with explanations.
The steps performed include:
- Create a `Vertex AI` custom job for training a TensorFlow model.
- View the model evaluation for the trained model.
- Set explanation parameters for when the model is deployed.
- Upload the trained model artifacts and explanations as a `Model` resource.
- Create a serving `Endpoint` resource.
- Deploy the `Model` resource to a serving `Endpoint` resource.
- Make a prediction with explanation.
- Undeploy the `Model` resource.
### Vertex Explainable AI Tabular data
[Custom training tabular regression model for batch prediction with explainabilty](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/sdk_custom_tabular_regression_batch_explain.ipynb)
Learn how to use `Vertex AI Training and Explainable AI` to create a custom image classification model with explanations, and then you learn to use `Vertex AI Batch Prediction` to make a batch prediction request with explanations.
The steps performed include:
- Create a `Vertex AI` custom job for training a TensorFlow model.
- View the model evaluation for the trained model.
- Set explanation parameters for when the model is deployed.
- Upload the trained model artifacts and explanations as a `Model` resource.
- Make a batch prediction with explanations.
### Vertex ML Metadata
[Track parameters and metrics for custom training jobs](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/ml_metadata/sdk-metric-parameter-tracking-for-custom-jobs.ipynb)
Learn how to use Vertex AI SDK for Python to:
The steps performed include:
- Track training parameters and prediction metrics for a custom training job.
- Extract and perform analysis for all parameters and metrics within an Experiment.
+3 -3
View File
@@ -40,7 +40,7 @@ The steps performed include:
[Compare Vertex AI Forecasting and BigQuery ML ARIMA_PLUS](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/automl/automl_forecasting_bqml_arima_plus_comparison.ipynb)
```
Learn how to create an BigQuery ML ARIMA_PLUS model using a training [Vertex AI Pipeline](https://cloud.
Learn how to create an BigQuery ML ARIMA_PLUS model using a training Vertex AI Pipeline from Google Cloud Pipeline Components , and then do a batch prediction using the corresponding prediction pipeline.
The steps performed are:
@@ -60,7 +60,7 @@ The steps performed are:
[AutoML Tabular Workflow pipelines](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/automl/automl_tabular_on_vertex_pipelines.ipynb)
```
Learn how to create two regression models using [Vertex AI Pipelines](https://cloud.
Learn how to create two regression models using Vertex AI Pipelines downloaded from Google Cloud Pipeline Components .
The steps performed are:
@@ -88,7 +88,7 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI for AutoML](https://cloud.google.com/vertex-ai/docs/start/automl-users).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML training](https://cloud.google.com/vertex-ai/docs/training-overview).
[AutoML training hierarchical forecasting for batch prediction](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/automl/sdk_automl_forecasting_hierarchical_batch.ipynb)
@@ -64,7 +64,7 @@
"\n",
"This tutorial demonstrates how to use AutoML in production. This tutorial covers get started with AutoML training.\n",
"\n",
"Learn more about [Vertex AI for AutoML](https://cloud.google.com/vertex-ai/docs/start/automl-users)."
"Learn more about [AutoML training](https://cloud.google.com/vertex-ai/docs/training-overview)."
]
},
{
@@ -872,6 +872,18 @@
"The execution of the training pipeline will take upto > 30 minutes."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "3eaba926cdfa"
},
"outputs": [],
"source": [
"if os.getenv(\"IS_TESTING\"):\n",
" sys.exit(0)"
]
},
{
"cell_type": "code",
"execution_count": null,
+4 -4
View File
@@ -14,7 +14,7 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions).
@@ -37,7 +37,7 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions).
@@ -90,7 +90,7 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Batch Prediction](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/get-batch-predictions).
@@ -111,7 +111,7 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions).
@@ -60,7 +60,7 @@
"\n",
"This tutorial walks you through building a custom container to serve a scikit-learn model on Vertex AI. You use the FastAPI Python web server framework to create a prediction and health endpoint. You also incorporate a pre-processor from training pipeline into your online serving application.\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions)."
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions)."
]
},
{
@@ -64,7 +64,7 @@
"\n",
"Learn more about serving an FBProphet model from this [article on testdriven.io: Deploying and Hosting a Machine Learning Model with FastAPI and Heroku](https://testdriven.io/blog/fastapi-machine-learning/).\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions).\n"
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions).\n"
]
},
{
@@ -147,8 +147,7 @@
"# Install the packages\n",
"! pip3 install --upgrade google-cloud-aiplatform \\\n",
" google-cloud-storage \\\n",
" google-cloud-bigquery \\\n",
" pyarrow"
" 'google-cloud-bigquery[pandas]'"
]
},
{
@@ -632,12 +631,12 @@
" df_train_x, df_train_y = df_train, df_train.pop(LABEL_COLUMN)\n",
" df_validation_x, df_validation_y = df_validation, df_validation.pop(LABEL_COLUMN)\n",
"\n",
" y_train = np.asarray(df_train_y).astype(\"float32\")\n",
" y_validation = np.asarray(df_validation_y).astype(\"float32\")\n",
" y_train = tf.convert_to_tensor(np.asarray(df_train_y).astype(\"float32\"))\n",
" y_validation = tf.convert_to_tensor(np.asarray(df_validation_y).astype(\"float32\"))\n",
"\n",
" # Convert to numpy representation\n",
" x_train = np.asarray(df_train_x) \n",
" x_test = np.asarray(df_validation_x)\n",
" x_train = tf.convert_to_tensor(np.asarray(df_train_x).astype(\"float32\"))\n",
" x_test = tf.convert_to_tensor(np.asarray(df_validation_x).astype(\"float32\"))\n",
"\n",
" # Convert to one-hot representation\n",
" num_species = len(df_train_y.unique())\n",
@@ -735,7 +734,7 @@
" display_name=JOB_NAME,\n",
" script_path=\"task.py\",\n",
" container_uri=\"us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest\",\n",
" requirements=[\"google-cloud-bigquery>=2.20.0\", \"db-dtypes\"],\n",
" requirements=[\"google-cloud-bigquery[pandas]\", \"protobuf<3.20.0\"],\n",
" model_serving_container_image_uri=\"us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest\",\n",
")\n",
"\n",
@@ -62,21 +62,9 @@
"## Overview\n",
"\n",
"\n",
"This tutorial demonstrates how to use Vertex AI for E2E MLOps on Google Cloud in production. This tutorial covers: get started with Endpoints and shared VM for co-hosting models."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dataset:flowers,icn"
},
"source": [
"### Pre-trained Models\n",
"This tutorial demonstrates how to use Vertex AI for E2E MLOps on Google Cloud in production. This tutorial covers: get started with Endpoints and shared VM for co-hosting models.\n",
"\n",
"The pre-trained models used for this tutorial are from the [TensorFlow Hub](https://tfhub.dev/) repository:\n",
"\n",
"- [image classification](https://tfhub.dev/google/imagenet/inception_v3/classification/5): trained with ImageNet.\n",
"- [text sentence encoder](https://tfhub.dev/google/universal-sentence-encoder/4): Google's universal sentence encoder"
"Learn more about [Shared resources across deployments](https://cloud.google.com/vertex-ai/docs/predictions/model-co-hosting)."
]
},
{
@@ -110,6 +98,20 @@
"- Make a prediction request with second deployed model (model B)."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dataset:flowers,icn"
},
"source": [
"### Model\n",
"\n",
"The pre-trained models used for this tutorial are from the [TensorFlow Hub](https://tfhub.dev/) repository:\n",
"\n",
"- [image classification](https://tfhub.dev/google/imagenet/inception_v3/classification/5): trained with ImageNet.\n",
"- [text sentence encoder](https://tfhub.dev/google/universal-sentence-encoder/4): Google's universal sentence encoder"
]
},
{
"cell_type": "markdown",
"metadata": {
@@ -64,7 +64,7 @@
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train and deploy a custom image classification model for batch prediction.\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Batch Prediction](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/get-batch-predictions)."
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Batch Prediction](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/get-batch-predictions)."
]
},
{
@@ -64,7 +64,7 @@
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train and deploy a custom image classification model for online prediction.\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions)."
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training) and [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions)."
]
},
{
@@ -63,7 +63,7 @@
"\n",
"This tutorial demonstrates how to use Vertex AI in production. This tutorial covers data management: get started with BigQuery datasets.\n",
"\n",
"Learn more about [BigQuery Datasets](https://cloud.google.com/bigquery/docs/datasets-intro)."
"Learn more about [BigQuery Datasets](https://cloud.google.com/bigquery/docs/datasets-intro) and [Vertex AI for BigQuery users](https://cloud.google.com/vertex-ai/docs/beginner/bqml)."
]
},
{
+1 -1
View File
@@ -86,5 +86,5 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex ML Metadata](https://cloud.google.com/vertex-ai/docs/ml-metadata).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
@@ -73,7 +73,7 @@
"\n",
"This tutorial demonstrates how to use Vertex AI in production. This tutorial covers get started with Vertex AI Experiments.\n",
"\n",
"Learn more about [Vertex AI Experiments](https://cloud.google.com/vertex-ai/docs/experiments/intro-vertex-ai-experiments), [Vertex ML Metadata](https://cloud.google.com/vertex-ai/docs/ml-metadata) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Vertex AI Experiments](https://cloud.google.com/vertex-ai/docs/experiments/intro-vertex-ai-experiments), [Vertex ML Metadata](https://cloud.google.com/vertex-ai/docs/ml-metadata) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
+22 -2
View File
@@ -13,7 +13,7 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Tabular](https://cloud.google.com/vertex-ai/docs/tabular-data/overview).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex Explainable AI](https://cloud.google.com/vertex-ai/docs/explainable-ai/overview).
@@ -35,7 +35,7 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Tabular](https://cloud.google.com/vertex-ai/docs/tabular-data/overview).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex Explainable AI](https://cloud.google.com/vertex-ai/docs/explainable-ai/overview).
@@ -149,3 +149,23 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions).
[Explaining image classification with Vertex Explainable AI](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/xai_image_classification_feature_attributions.ipynb)
```
Learn how to configure feature-based explanations on a pre-trained image classification model and make online and batch predictions with explanations.
The steps performed include:
- Download pretrained model from TensorFlow Hub
- Upload model for deployment
- Deploy model for online prediction
- Make online prediction with explanations
- Make batch predictions with explanations
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex Explainable AI](https://cloud.google.com/vertex-ai/docs/explainable-ai/overview).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Prediction](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions).
@@ -64,7 +64,7 @@
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK to create tabular classification models and do online prediction with explanation using a Google Cloud [AutoML](https://cloud.google.com/vertex-ai/docs/start/automl-users) model.\n",
"\n",
"Learn more about [AutoML Tabular](https://cloud.google.com/vertex-ai/docs/tabular-data/overview) and [Vertex Explainable AI](https://cloud.google.com/vertex-ai/docs/explainable-ai/overview)."
"Learn more about [Classification for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview) and [Vertex Explainable AI](https://cloud.google.com/vertex-ai/docs/explainable-ai/overview)."
]
},
{
@@ -29,7 +29,7 @@
"id": "title"
},
"source": [
"# Vertex SDK: Custom training image classification model for online prediction with explainabilty\n",
"# Vertex SDK: Custom training image classification model for online prediction with explainability\n",
"\n",
"<table align=\"left\">\n",
" <td>\n",
@@ -863,8 +863,8 @@
" )\n",
" params = []\n",
" for _ in range(13):\n",
" x_train[_], max = scale(x_train[_])\n",
" x_test[_], _ = scale(x_test[_])\n",
" x_train[_], max = scale(x_train[_:_+1:])\n",
" x_test[_], _ = scale(x_test[_:_+1:])\n",
" params.append(max)\n",
"\n",
" # store the normalization (max) value for each feature\n",
+24 -28
View File
@@ -1,17 +1,32 @@
[Introduction to builtin Swivel embedding algorithm](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/matching_engine/intro-swivel.ipynb)
[Using Vertex AI Matching Engine for StackOverflow Questions](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/matching_engine/sdk_matching_engine_create_stack_overflow_embeddings.ipynb)
```
Learn how to train custom embeddings using Vertex AI Pipelines and deploy the model for serving.
Learn how to encode custom text embeddings, create an Approximate Nearest Neighbor index, and query against indexes.
The steps performed include:
1. **Setup**: Importing the required libraries and setting your global variables.
2. **Configure parameters**: Setting the appropriate parameter values for the pipeline job.
3. **Train on Vertex AI Pipelines**: Create a Swivel job to Vertex Pipelines using pipeline template.
4. **Deploy on Vertex AI Prediction**: Importing and deploying the trained model to a callable endpoint.
5. **Predict**: Calling the deployed endpoint using online prediction.
6. **Cleaning up**: Deleting resources created by this tutorial.
* Create ANN index
* Create an index endpoint with VPC Network
* Deploy ANN index
* Perform online query
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Matching Engine](https://cloud.google.com/vertex-ai/docs/matching-engine/overview).
[Using Vertex AI Matching Engine for Text-to-Image Embeddings](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/matching_engine/sdk_matching_engine_create_text_to_image_embeddings.ipynb)
```
Learn how to encode custom text embeddings, create an Approximate Nearest Neighbor index, and query against indexes.
The steps performed include:
* Create ANN index
* Create an index endpoint with VPC Network
* Deploy ANN index
* Perform online query
```
@@ -21,7 +36,7 @@ The steps performed include:
[Create Vertex AI Matching Engine index](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/matching_engine/sdk_matching_engine_for_indexing.ipynb)
```
Learn how to create Approximate Nearest Neighbor (ANN) Index, query against indexes, and validate the performance of the index.
Learn how to create Approximate Nearest Neighbor Index, query against indexes, and validate the performance of the index.
The steps performed include:
@@ -35,22 +50,3 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Matching Engine](https://cloud.google.com/vertex-ai/docs/matching-engine/overview).
[Introduction to builtin Two-Towers embedding algorithm](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/matching_engine/two-tower-model-introduction.ipynb)
```
Learn how to run the Two-Tower model.
The steps performed include:
1. **Setup**: Importing the required libraries and setting your global variables.
2. **Configure parameters**: Setting the appropriate parameter values for the training job.
3. **Train on Vertex AI Training**: Submitting a training job.
4. **Deploy on Vertex AI Prediction**: Importing and deploying the trained model to a callable endpoint.
5. **Predict**: Calling the deployed endpoint using online or batch prediction.
6. **Hyperparameter tuning**: Running a hyperparameter tuning job.
7. **Cleaning up**: Deleting resources created by this tutorial.
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Matching Engine](https://cloud.google.com/vertex-ai/docs/matching-engine/overview).
File diff suppressed because one or more lines are too long
+18 -18
View File
@@ -15,7 +15,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Image](https://cloud.google.com/vertex-ai/docs/tutorials/image-recognition-automl/training).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for image data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_images).
[Custom Scikit-Learn model with pre-built training container](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ10 Vertex SDK Custom Scikit-Learn with pre-built training container.ipynb)
@@ -35,7 +35,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Hyperparameter Tuning](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ11 Vertex SDK Hyperparameter Tuning.ipynb)
@@ -51,10 +51,10 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[AutoML Video Classificaton](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ14 Vertex SDK AutoML Video Classification.ipynb)
[AutoML Video Classification](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ14 Vertex SDK AutoML Video Classification.ipynb)
```
Learn to use `AutoML` to train a video model and use `Vertex AI Batch Prediction` to do batch predictions.
@@ -68,7 +68,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Video](https://cloud.google.com/vertex-ai/docs/tutorials/video-classification-automl/training).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for video data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_videos).
[AutoML Video Object Tracking](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ15 Vertex SDK AutoML Object Tracking.ipynb)
@@ -85,7 +85,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Video](https://cloud.google.com/video-intelligence/automl/object-tracking/docs/index-object-tracking).
&nbsp;&nbsp;&nbsp;Learn more about [Object tracking for video data](https://cloud.google.com/vertex-ai/docs/training-overview#object_tracking_for_videos).
[Custom Image Classification w/pre-built training container](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ2,12 Vertex SDK Custom Image Classification with pre-built training container.ipynb)
@@ -109,7 +109,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Custom Image Classification w/custom training container](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ3 Vertex SDK Custom Image Classification with custom training container.ipynb)
@@ -133,7 +133,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[AutoML Tabular Binary Classification](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ4 Vertex SDK AutoML Tabular Binary Classification.ipynb)
@@ -154,7 +154,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Tabular](https://cloud.google.com/vertex-ai/docs/start/automl-users#tables).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview).
[AutoML Image Object Detection](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ5 Vertex SDK AutoML Image Object Detection.ipynb)
@@ -173,35 +173,35 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Image](https://cloud.google.com/vertex-ai/docs/tutorials/image-recognition-automl/training).
&nbsp;&nbsp;&nbsp;Learn more about [Object detection for image data](https://cloud.google.com/vertex-ai/docs/training-overview#object_detection_for_images).
[AutoML Text Classification](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ6 Vertex SDK AutoML Text Classification.ipynb)
```
The objective of this notebook is to build a AutoML Video Classification Model.
The objective of this notebook is to build a AutoML Text Classification Model.
The steps performed include the following:
* Set your task name, and GCS prefix
* Copy AutoML video demo train data for creating managed dataset
* Copy AutoML text demo train data for creating managed dataset
* Create a dataset on Vertex AI.
* Configure a training job
* Launch a training job and create a model on Vertex AI
* Copy AutoML Video Demo Prediction Data for creating batch prediction job
* Copy AutoML Text Demo Prediction Data for creating batch prediction job
* Perform batch prediction job on the model
```
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Text](https://cloud.google.com/vertex-ai/docs/text-data/classification/prepare-data).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for text data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_text).
[AutoML Text Entity Extraction](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ7 Vertex SDK AutoML Text Entity Extraction.ipynb)
```
The objective of this notebook is to build a AutoML Text Entity Extraction Model.
The objective of this notebook is to build a AutoML Text Entity Extraction model.
The steps performed include the following:
@@ -217,7 +217,7 @@ The steps performed include the following:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Text](https://cloud.google.com/vertex-ai/docs/text-data/entity-extraction/prepare-data).
&nbsp;&nbsp;&nbsp;Learn more about [Entity extraction for text data](https://cloud.google.com/vertex-ai/docs/training-overview#entity_extraction_for_text).
[AutoML Text Sentiment Analysis](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ8 Vertex SDK AutoML Text Sentiment Analysis.ipynb)
@@ -238,7 +238,7 @@ The steps performed include the following:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Text](https://cloud.google.com/vertex-ai/docs/text-data/sentiment-analysis/prepare-data).
&nbsp;&nbsp;&nbsp;Learn more about [Sentiment analysis for text data](https://cloud.google.com/vertex-ai/docs/training-overview#sentiment_analysis_for_text).
[Custom XGBoost model with pre-built training container](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/migration/UJ9 Vertex SDK Custom XGBoost with pre-built training container.ipynb)
@@ -258,5 +258,5 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: AutoML Image Classification\n",
"# Vertex AI Migration: AutoML Image Classification\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: Custom Scikit-Learn model with pre-built training container\n",
"# Vertex AI Migration: Custom Scikit-Learn model with pre-built training container\n",
"\n",
"<table align=\"left\">\n",
" <td>\n",
@@ -64,7 +64,7 @@
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train and deploy a custom tabular classification scikit-learn model for batch prediction.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: Hyperparameter Tuning\n",
"# Vertex AI Migration: Hyperparameter Tuning\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -63,9 +63,9 @@
"## Overview\n",
"\n",
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to hyperparamer tune a custom tabular classification TemsorFlow model.\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to tune hyperparameters in a custom tabular classification TensorFlow model.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: AutoML Video Classificaton\n",
"# Vertex AI Migration: AutoML Video Classification\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -62,9 +62,9 @@
"source": [
"## Overview\n",
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train a AutoML video classification model and do a batch prediction.\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train an AutoML video classification model and do batch prediction.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [AutoML Video](https://cloud.google.com/vertex-ai/docs/tutorials/video-classification-automl/training)."
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Classification for video data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_videos)."
]
},
{
@@ -568,7 +568,7 @@
},
"outputs": [],
"source": [
"IMPORT_FILE = \"gs://automl-video-demo-data/hmdb_split1_5classes_train_inf.csv\""
"IMPORT_FILE = \"gs://automl-video-demo-data/hmdb_split1_train_40_mp4_gs.csv\""
]
},
{
@@ -604,6 +604,19 @@
"! gsutil cat $FILE | head"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "f483d8d80f64"
},
"outputs": [],
"source": [
"import datetime\n",
"\n",
"start = datetime.datetime.now()"
]
},
{
"cell_type": "markdown",
"metadata": {
@@ -757,7 +770,19 @@
"\n",
"The `run` method when completed returns the `Model` resource.\n",
"\n",
"The execution of the training pipeline will take upto 20 minutes."
"The execution of the training pipeline may take over 24 hrs."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "8f135100f5d9"
},
"outputs": [],
"source": [
"if os.getenv(\"IS_TESTING\"):\n",
" sys.exit(0)"
]
},
{
@@ -806,6 +831,18 @@
" INFO:google.cloud.aiplatform.training_jobs:Model available at projects/759209241365/locations/us-central1/models/1899701006099283968"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "48ca7f0980e0"
},
"outputs": [],
"source": [
"end = datetime.datetime.now()\n",
"end - start"
]
},
{
"cell_type": "markdown",
"metadata": {
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: AutoML Video Object Tracking\n",
"# Vertex AI Migration: AutoML Video Object Tracking\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -62,7 +62,7 @@
"source": [
"## Overview\n",
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train a AutoML video object tracking model and do a batch prediction.\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train an AutoML video object tracking model and do batch prediction.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Object tracking for video data](https://cloud.google.com/vertex-ai/docs/training-overview#object_tracking_for_videos)."
]
@@ -633,6 +633,9 @@
" gcs_source=[IMPORT_FILE],\n",
" import_schema_uri=aip.schema.dataset.ioformat.video.object_tracking,\n",
")\n",
"if os.getenv('IS_TESTING'):\n",
" import time\n",
" time.sleep(30)\n",
"\n",
"print(dataset.resource_name)"
]
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: Custom Image Classification w/pre-built training container\n",
"# Vertex AI Migration: Custom image classification with a pre-built training container\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -64,7 +64,7 @@
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train using a pre-built container and deploy a custom image classification model for online and batch prediction.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: Custom Image Classification w/custom training container\n",
"# Vertex AI migration: Custom image classification with a custom training container\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -61,9 +61,9 @@
"source": [
"## Overview\n",
"\n",
"This notebook demonstrates training a custom image classification model using Tensorflow and Vertex AI SDK by creating a custom training container. Additionally, the notebooks also deploys the trained model to Vertex AI and predictions are generated from it.\n",
"This notebook demonstrates how to train a custom image classification model by creating a custom training container with TensorFlow and the Vertex AI SDK. The notebook also demonstrates how to deploys the trained model to Vertex AI and generate predictions from it.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: AutoML Tabular Binary Classification\n",
"# Vertex AI migration: AutoML tabular binary classification\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -62,7 +62,7 @@
"## Overview\n",
"\n",
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK to create tabular binary classification models and do online prediction using a Google Cloud [AutoML](https://cloud.google.com/vertex-ai/docs/start/automl-users) model.\n",
"This tutorial demonstrates how to use the Vertex AI SDK to create tabular binary classification models and do online prediction using an AutoML model.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai). Learn more about [Classification for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview)."
]
@@ -29,7 +29,7 @@
"id": "title:migration,new"
},
"source": [
"# Vertex AI: Vertex AI Migration: AutoML Image Object Detection\n",
"# Vertex AI migration: AutoML image object detection\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -64,7 +64,7 @@
"\n",
"This tutorial demonstrates how to use the Vertex AI SDK for Python to train and deploy a custom tabular classification XGBoost model for batch prediction.\n",
"\n",
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Migrate to Vertex AI](https://cloud.google.com/vertex-ai/docs/start/migrating-to-vertex-ai) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
+1 -1
View File
@@ -12,7 +12,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex ML Metadata](https://cloud.google.com/vertex-ai/docs/ml-metadata).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Track parameters and metrics for locally trained models](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/ml_metadata/sdk-metric-parameter-tracking-for-locally-trained-models.ipynb)
@@ -63,7 +63,7 @@
"\n",
"This notebook demonstrates how to track metrics and parameters for Vertex AI custom training jobs, and how to perform detailed analysis using this data.\n",
"\n",
"Learn more about [Vertex ML Metadata](https://cloud.google.com/vertex-ai/docs/ml-metadata) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Vertex ML Metadata](https://cloud.google.com/vertex-ai/docs/ml-metadata) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -140,7 +140,7 @@
"outputs": [],
"source": [
"! pip install --upgrade -q google-cloud-aiplatform \\\n",
" tensorflow==2.8 -q"
" tensorflow -q"
]
},
{
@@ -719,7 +719,7 @@
"outputs": [],
"source": [
"@component(\n",
" packages_to_install=[\"sklearn\", \"pandas\", \"joblib\"],\n",
" packages_to_install=[\"scikit-learn\", \"pandas\", \"joblib\"],\n",
" base_image=\"python:3.9\",\n",
" output_component_file=\"beans_model_component.yaml\",\n",
")\n",
+25 -7
View File
@@ -17,7 +17,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Tabular](https://cloud.google.com/vertex-ai/docs/start/automl-users#tables).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview).
[Evaluating batch prediction results from AutoML Tabular regression model](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_evaluation/automl_tabular_regression_model_evaluation.ipynb)
@@ -32,14 +32,14 @@ The steps performed include:
- Run the `AutoMLTabularTrainingJob` which returns a model
- Import a pre-trained `AutoML model resource` into the pipeline
- Run a `batch prediction` job in the pipeline
- Evaulate the AutoML model using the `regression evaluation component`
- Evaluate the AutoML model using the `regression evaluation component`
- Import the Regression Metrics to the AutoML model resource
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Tabular](https://cloud.google.com/vertex-ai/docs/start/automl-users#tables).
&nbsp;&nbsp;&nbsp;Learn more about [Regression for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview).
[AutoML text classification pipelines using google-cloud-pipeline-components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_evaluation/automl_text_classification_model_evaluation.ipynb)
@@ -74,14 +74,14 @@ The steps performed include:
- Train a Automl Video Classification model on the `Vertex AI Dataset` resource.
- Import the trained `AutoML Vertex AI Model resource` into the pipeline.
- Run a batch prediction job inside the pipeline.
- Evaulate the AutoML model using the classification evaluation component.
- Evaluate the AutoML model using the classification evaluation component.
- Import the classification metrics to the AutoML Vertex AI Model resource.
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction).
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Video](https://cloud.google.com/vertex-ai/docs/video-data/classification/prepare-data).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for video data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_videos).
[Evaluating BatchPrediction results from a Custom Tabular classification model](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_evaluation/custom_tabular_classification_model_evaluation.ipynb)
@@ -125,12 +125,30 @@ The steps performed include:
- Upload the model as a Vertex AI Model resource.
- Import a pre-trained `Vertex AI model resource` into the pipeline.
- Run a `batch prediction` job in the pipeline.
- Evaulate the model using the `regression evaluation component`.
- Evaluate the model using the `regression evaluation component`.
- Import the Regression Metrics to the Vertex AI model resource.
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Get started with importing a custom model evaluation to the Vertex AI Model Registry](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_evaluation/get_started_with_custom_model_evaluation_import.ipynb)
```
Learn how to construct and upload a custom model evaluation, and upload the custom model evaluation to a Model resource entry in Vertex AI Model Registry.
The steps performed include:
- Import a pretrained (blessed) model to the Vertex AI Model Registry.
- Construct a custom model evaluation.
- Import the model evaluation metrics to the corresponding model in the Vertex AI Model Registry.
- List the model evaluation for the corresponding model in the Vertex AI Model Registry.
- Construct a second custom model evaluation.
- Import the second model evaluation metrics to the corresponding model in the Vertex AI Model Registry.
- List the second model evaluation for the corresponding model in the Vertex AI Model Registry.
```
@@ -92,7 +92,7 @@
"- Run the `AutoMLTabularTrainingJob` which returns a model\n",
"- Import a pre-trained `AutoML model resource` into the pipeline\n",
"- Run a `batch prediction` job in the pipeline\n",
"- Evaulate the AutoML model using the `regression evaluation component`\n",
"- Evaluate the AutoML model using the `regression evaluation component`\n",
"- Import the Regression Metrics to the AutoML model resource"
]
},
@@ -63,7 +63,7 @@
"\n",
"This notebook demonstrates how to use the Vertex AI classification model evaluation component to evaluate an AutoML video classification model. Model evaluation helps you determine your model performance based on the evaluation metrics and improve the model if necessary. \n",
"\n",
"Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction) and [AutoML Video](https://cloud.google.com/vertex-ai/docs/video-data/classification/prepare-data)."
"Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction) and [Classification for video data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_videos)."
]
},
{
@@ -92,7 +92,7 @@
"- Train a Automl Video Classification model on the `Vertex AI Dataset` resource.\n",
"- Import the trained `AutoML Vertex AI Model resource` into the pipeline.\n",
"- Run a batch prediction job inside the pipeline.\n",
"- Evaulate the AutoML model using the classification evaluation component.\n",
"- Evaluate the AutoML model using the classification evaluation component.\n",
"- Import the classification metrics to the AutoML Vertex AI Model resource."
]
},
@@ -792,7 +792,19 @@
"\n",
"The `run` method when completed returns the `Model` resource.\n",
"\n",
"The execution of the training pipeline can take over 3 hours to complete."
"The execution of the training pipeline can take over 24 hours to complete."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "3eaba926cdfa"
},
"outputs": [],
"source": [
"if os.getenv(\"IS_TESTING\"):\n",
" sys.exit(0)"
]
},
{
@@ -63,7 +63,7 @@
"\n",
"This notebook demonstrates how to use the Vertex AI regression model evaluation component to evaluate a custom regression model. Model evaluation helps you determine your model performance based on the evaluation metrics and improve the model if necessary. \n",
"\n",
"Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Vertex AI Model Evaluation](https://cloud.google.com/vertex-ai/docs/evaluation/introduction) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -93,7 +93,7 @@
"- Upload the model as a Vertex AI Model resource.\n",
"- Import a pre-trained `Vertex AI model resource` into the pipeline.\n",
"- Run a `batch prediction` job in the pipeline.\n",
"- Evaulate the model using the `regression evaluation component`.\n",
"- Evaluate the model using the `regression evaluation component`.\n",
"- Import the Regression Metrics to the Vertex AI model resource."
]
},
@@ -0,0 +1,867 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ur8xi4C7S06n"
},
"outputs": [],
"source": [
"# Copyright 2023 Google LLC\n",
"#\n",
"# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"# you may not use this file except in compliance with the License.\n",
"# You may obtain a copy of the License at\n",
"#\n",
"# https://www.apache.org/licenses/LICENSE-2.0\n",
"#\n",
"# Unless required by applicable law or agreed to in writing, software\n",
"# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"# See the License for the specific language governing permissions and\n",
"# limitations under the License."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JAPoU8Sm5E6e"
},
"source": [
"# Get started with importing a custom model evaluation to the Vertex AI Model Registry\n",
"\n",
"<table align=\"left\">\n",
"\n",
" <td>\n",
" <a href=\"https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_evaluation/get_started_with_custom_model_evaluation_import.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/colab-logo-32px.png\" alt=\"Colab logo\"> Run in Colab\n",
" </a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_evaluation/get_started_with_custom_model_evaluation_import.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/github-logo-32px.png\" alt=\"GitHub logo\">\n",
" View on GitHub\n",
" </a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://console.cloud.google.com/vertex-ai/workbench/deploy-notebook?download_url=https://raw.githubusercontent.com/GoogleCloudPlatform/vertex-ai-samples/main/notebooks/official/model_evaluation/get_started_with_custom_model_evaluation_import.ipynb\">\n",
" <img src=\"https://lh3.googleusercontent.com/UiNooY4LUgW_oTvpsNhPpQzsstV5W8F7rYgxgGBD85cWJoLmrOzhVs_ksK_vgx40SHs7jCqkTkCk=e14-rj-sc0xffffff-h130-w32\" alt=\"Vertex AI logo\">\n",
" Open in Vertex AI Workbench\n",
" </a>\n",
" </td> \n",
"</table>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "24743cf4a1e1"
},
"source": [
"**_NOTE_**: This notebook has been tested in the following environment:\n",
"\n",
"* Python version = 3.9"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tvgnzT1CKxrO"
},
"source": [
"## Overview\n",
"\n",
"This tutorial shows how to use Vertex AI Model Evaluation to import a custom model evaluation to an existing Vertex AI Model Registry entry.\n",
"\n",
"Learn more about [Model evaluation in Vertex AI](https://cloud.google.com/vertex-ai/docs/evaluation/introduction)."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d975e698c9a4"
},
"source": [
"### Objective\n",
"\n",
"In this tutorial, you learn how to construct and upload a custom model evaluation, and upload the custom model evaluation to a Model resource entry in Vertex AI Model Registry.\n",
"\n",
"This tutorial uses the following Google Cloud ML services and resources:\n",
"\n",
"- Vertex AI Model Evaluation\n",
"- Vertex AI Model Registry\n",
"\n",
"The steps performed include:\n",
"\n",
"- Import a pretrained (blessed) model to the Vertex AI Model Registry.\n",
"- Construct a custom model evaluation.\n",
"- Import the model evaluation metrics to the corresponding model in the Vertex AI Model Registry.\n",
"- List the model evaluation for the corresponding model in the Vertex AI Model Registry.\n",
"- Construct a second custom model evaluation.\n",
"- Import the second model evaluation metrics to the corresponding model in the Vertex AI Model Registry.\n",
"- List the second model evaluation for the corresponding model in the Vertex AI Model Registry.\n",
"\n",
"Learn more about [Model Evaluation in Vertex AI](https://cloud.google.com/vertex-ai/docs/evaluation/introduction)."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "08d289fa873f"
},
"source": [
"### Model\n",
"\n",
"This tutorial uses a pre-trained image classification model from TensorFlow Hub, which is trained on ImageNet dataset.\n",
"\n",
"Learn more about [ResNet V2 pretained model](https://tfhub.dev/google/imagenet/resnet_v2_101/classification/5). "
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aed92deeb4a0"
},
"source": [
"### Costs \n",
"\n",
"This tutorial uses billable components of Google Cloud:\n",
"\n",
"* Vertex AI\n",
"* Cloud Storage\n",
"\n",
"Learn about [Vertex AI pricing](https://cloud.google.com/vertex-ai/pricing),\n",
"and [Cloud Storage pricing](https://cloud.google.com/storage/pricing), \n",
"and use the [Pricing Calculator](https://cloud.google.com/products/calculator/)\n",
"to generate a cost estimate based on your projected usage."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "i7EUnXsZhAGF"
},
"source": [
"## Installation\n",
"\n",
"Install the following packages required to execute this notebook. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "2b4ef9b72d43"
},
"outputs": [],
"source": [
"# Install the packages\n",
"USER=''\n",
"! pip3 install {USER} --upgrade google-cloud-aiplatform \\\n",
" tensorflow==2.5 \\\n",
" tensorflow-hub"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "58707a750154"
},
"source": [
"### Colab only: Uncomment the following cell to restart the kernel."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "f200f10a1da3"
},
"outputs": [],
"source": [
"# Automatically restart kernel after installs so that your environment can access the new packages\n",
"# import IPython\n",
"\n",
"# app = IPython.Application.instance()\n",
"# app.kernel.do_shutdown(True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BF1j6f9HApxa"
},
"source": [
"## Before you begin\n",
"\n",
"### Set up your Google Cloud project\n",
"\n",
"**The following steps are required, regardless of your notebook environment.**\n",
"\n",
"1. [Select or create a Google Cloud project](https://console.cloud.google.com/cloud-resource-manager). When you first create an account, you get a $300 free credit towards your compute/storage costs.\n",
"\n",
"2. [Make sure that billing is enabled for your project](https://cloud.google.com/billing/docs/how-to/modify-project).\n",
"\n",
"3. [Enable the Vertex AI API]\n",
"\n",
"4. If you are running this notebook locally, you need to install the [Cloud SDK](https://cloud.google.com/sdk)."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WReHDGG5g0XY"
},
"source": [
"#### Set your project ID\n",
"\n",
"**If you don't know your project ID**, try the following:\n",
"* Run `gcloud config list`.\n",
"* Run `gcloud projects list`.\n",
"* See the support page: [Locate the project ID](https://support.google.com/googleapi/answer/7014113)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "oM1iC_MfAts1"
},
"outputs": [],
"source": [
"PROJECT_ID = \"[your-project-id]\" # @param {type:\"string\"}\n",
"\n",
"# Set the project id\n",
"! gcloud config set project {PROJECT_ID}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "region"
},
"source": [
"#### Region\n",
"\n",
"You can also change the `REGION` variable used by Vertex AI. Learn more about [Vertex AI regions](https://cloud.google.com/vertex-ai/docs/general/locations)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "region"
},
"outputs": [],
"source": [
"REGION = \"us-central1\" # @param {type: \"string\"}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "sBCra4QMA2wR"
},
"source": [
"### Authenticate your Google Cloud account\n",
"\n",
"Depending on your Jupyter environment, you may have to manually authenticate. Follow the relevant instructions below."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "74ccc9e52986"
},
"source": [
"**1. Vertex AI Workbench**\n",
"* Do nothing as you are already authenticated."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "de775a3773ba"
},
"source": [
"**2. Local JupyterLab instance, uncomment and run:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "254614fa0c46"
},
"outputs": [],
"source": [
"# ! gcloud auth login"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ef21552ccea8"
},
"source": [
"**3. Colab, uncomment and run:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "603adbbf0532"
},
"outputs": [],
"source": [
"# from google.colab import auth\n",
"# auth.authenticate_user()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "f6b2ccc891ed"
},
"source": [
"**4. Service account or other**\n",
"* See how to grant Cloud Storage permissions to your service account at https://cloud.google.com/storage/docs/gsutil/commands/iam#ch-examples."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "zgPO1eR3CYjk"
},
"source": [
"### Create a Cloud Storage bucket\n",
"\n",
"Create a storage bucket to store intermediate artifacts such as datasets.\n",
"\n",
"- *{Note to notebook author: For any user-provided strings that need to be unique (like bucket names or model ID's), append \"-unique\" to the end so proper testing can occur}*"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "MzGDU7TWdts_"
},
"outputs": [],
"source": [
"BUCKET_URI = f\"gs://your-bucket-name-unique-{PROJECT_ID}\" # @param {type:\"string\"}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-EcIXiGsCePi"
},
"source": [
"**Only if your bucket doesn't already exist**: Run the following cell to create your Cloud Storage bucket."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "NIq7R4HZCfIc"
},
"outputs": [],
"source": [
"! gsutil mb -l $REGION -p $PROJECT_ID $BUCKET_URI"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "960505627ddf"
},
"source": [
"### Import libraries"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "PyQmSRbKA8r-"
},
"outputs": [],
"source": [
"import tensorflow as tf\n",
"import tensorflow_hub as hub\n",
"from google.cloud import aiplatform\n",
"from google.cloud.aiplatform import gapic"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "init_aip:mbsdk,all"
},
"source": [
"### Initialize Vertex AI SDK for Python\n",
"\n",
"Initialize the Vertex AI SDK for Python for your project."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "init_aip:mbsdk,all"
},
"outputs": [],
"source": [
"aiplatform.init(project=PROJECT_ID, location=REGION, staging_bucket=BUCKET_URI)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "accelerators:training,cpu,prediction,cpu,mbsdk"
},
"source": [
"#### Set hardware accelerators\n",
"\n",
"You can set hardware accelerators for prediction.\n",
"\n",
"Set the variables `DEPLOY_GPU/DEPLOY_NGPU` to use a container image supporting a GPU and the number of GPUs allocated to the virtual machine (VM) instance. For example, to use a GPU container image with 4 Nvidia Telsa K80 GPUs allocated to each VM, you would specify:\n",
"\n",
" (aip.gapic.AcceleratorType.NVIDIA_TESLA_K80, 4)\n",
"\n",
"\n",
"Otherwise specify `(None, None)` to use a container image to run on a CPU.\n",
"\n",
"Learn more about [hardware accelerator support for your region](https://cloud.google.com/vertex-ai/docs/general/locations#accelerators), and [GPU pricing](https://cloud.google.com/compute/gpus-pricing)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "accelerators:training,cpu,prediction,cpu,mbsdk"
},
"outputs": [],
"source": [
"DEPLOY_GPU, DEPLOY_NGPU = (None, None)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "container:training,prediction"
},
"source": [
"#### Set pre-built containers\n",
"\n",
"Set the pre-built Docker container image for prediction.\n",
"\n",
"For the latest list, see [Pre-built containers for prediction](https://cloud.google.com/ai-platform-unified/docs/predictions/pre-built-containers)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "container:training,prediction"
},
"outputs": [],
"source": [
"TF = \"2.5\".replace(\".\", \"-\")\n",
"\n",
"if DEPLOY_GPU:\n",
" DEPLOY_VERSION = \"tf2-gpu.{}\".format(TF)\n",
"else:\n",
" DEPLOY_VERSION = \"tf2-cpu.{}\".format(TF)\n",
"\n",
"DEPLOY_IMAGE = \"{}-docker.pkg.dev/vertex-ai/prediction/{}:latest\".format(\n",
" REGION.split(\"-\")[0], DEPLOY_VERSION\n",
")\n",
"\n",
"print(\"Deployment:\", DEPLOY_IMAGE, DEPLOY_GPU, DEPLOY_NGPU)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d8128b8ff025"
},
"source": [
"## Get pretrained model from TensorFlow Hub\n",
"\n",
"For demonstration purposes, this tutorial uses a pretrained model from TensorFlow Hub (TFHub), which is then uploaded to a `Vertex AI Model` resource. Once you have a `Vertex AI Model` resource, the model can be deployed to a `Vertex AI Endpoint` resource.\n",
"\n",
"### Download the pretrained model\n",
"\n",
"First, you download the pretrained model from TensorFlow Hub. The model gets downloaded as a TF.Keras layer. To finalize the model, in this example, you create a `Sequential()` model with the downloaded TFHub model as a layer, and specify the input shape to the model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "c55fa4c826f7"
},
"outputs": [],
"source": [
"tfhub_model = tf.keras.Sequential(\n",
" [hub.KerasLayer(\"https://tfhub.dev/google/imagenet/resnet_v2_101/classification/5\")]\n",
")\n",
"\n",
"tfhub_model.build([None, 32, 32, 3])\n",
"\n",
"tfhub_model.summary()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "64618c713db9"
},
"outputs": [],
"source": [
"MODEL_DIR = BUCKET_URI + \"/model\"\n",
"tfhub_model.save(MODEL_DIR)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "e8ce91147c93"
},
"source": [
"### Upload the TensorFlow Hub model to a `Vertex AI Model` resource\n",
"\n",
"Finally, you upload the model artifacts from the TFHub model into a `Vertex AI Model` resource using the method `upload()`, with the following parameters:\n",
"\n",
"- `display_name`: A human readable name for the `Model` resource.\n",
"- `artifact_uri`: The Cloud Storage location of the model package.\n",
"- `serving_container_image_uri`: The serving container image.\n",
"\n",
"Uploading a model into a Vertex AI Model resource returns a long running operation, since it may take a few moments. \n",
"\n",
"*Note:* When you upload the model artifacts to a `Vertex AI Model` resource, you specify the corresponding deployment container image."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ad61e1429512"
},
"outputs": [],
"source": [
"model = aiplatform.Model.upload(\n",
" display_name=\"resnet\",\n",
" artifact_uri=MODEL_DIR,\n",
" serving_container_image_uri=DEPLOY_IMAGE,\n",
" is_default_version=True,\n",
" version_aliases=[\"v1\"],\n",
")\n",
"\n",
"print(model)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "c11e98ef5391"
},
"source": [
"## Introduction to custom model evaluations\n",
"\n",
"When training a custom model, one generally performs some form of an evaluation of the trained model. Your custom model evaluation can then be imported to the corresponding model in the Vertex AI Model Registry using the `import_model_evaluation()` method. Once imported, the custom model evaluation can be subsequently retreived with the `list_model_evaluations()` method. \n",
"\n",
"The Vertex AI Model Registry supports importing multiple model evaluations for a model where each evaluation is distinquished by a unique `display_name`.\n",
"\n",
"\n",
"### Create a model evaluation\n",
"\n",
"First, you create a model evaluation in a format that corresponds to one of the predefined schemas for model evaluations. In this example, you use the schema for a classification metric, and specify the following subset of evaluation metrics as a dictionary:\n",
"\n",
"- `logLoss`: The log loss.\n",
"- `auPrc`: The accuracy.\n",
"\n",
"You then construct the `ModelEvaluation` object with the following parameters:\n",
"\n",
"- `display_name`: The human readable name for the evaluation metric.\n",
"- `metrics_schema_uri`: The schema for the specific type of evaluation metrics.\n",
"- `metrics`: The dictionary with the evaluation metrics.\n",
"\n",
"Learn more about [Schemas for evaluation metrics](https://cloud.google.com/vertex-ai/docs/evaluation/introduction#features)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "e9af222db292"
},
"outputs": [],
"source": [
"metrics = {\"logLoss\": 1.4, \"auPrc\": 0.85}\n",
"print(metrics)\n",
"\n",
"model_eval = gapic.ModelEvaluation(\n",
" display_name=\"eval\",\n",
" metrics_schema_uri=\"gs://google-cloud-aiplatform/schema/modelevaluation/classification_metrics_1.0.0.yaml\",\n",
" metrics=metrics,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "68870bd8194d"
},
"source": [
"### Upload the evaluation metrics to the Model Registry\n",
"\n",
"Next, upload the model's evaluation from the custom training job to the corresponding entry in the Vertex AI Model Registry.\n",
"\n",
"Currently, there is not yet support for this method in the SDK. Instead, you use the lower level GAPIC API interface."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "3044788848af"
},
"outputs": [],
"source": [
"API_ENDPOINT = f\"{REGION}-aiplatform.googleapis.com\"\n",
"client = gapic.ModelServiceClient(client_options={\"api_endpoint\": API_ENDPOINT})\n",
"\n",
"client.import_model_evaluation(parent=model.resource_name, model_evaluation=model_eval)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "337319a19efe"
},
"source": [
"### List the custom model evaluation\n",
"\n",
"Now that your custom metric has been uploaded to the corresponding model in the Vertex AI Model Registry, you can retriv"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "1b3374e988cf"
},
"outputs": [],
"source": [
"evaluation = model.list_model_evaluations()[0]\n",
"print(evaluation.gca_resource)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "68870bd8194d"
},
"source": [
"### Upload a second evaluation metrics to the Model Registry\n",
"\n",
"Next, upload a second model evaluation to the corresponding entry in the Vertex AI Model Registry. In this example, we refer to first evaluation metric as `eval` (from training) and the second as `prod` (from production data)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "9b864c0ba07f"
},
"outputs": [],
"source": [
"metrics = {\"logLoss\": 1.2, \"auPrc\": 0.87}\n",
"print(metrics)\n",
"\n",
"model_prod = gapic.ModelEvaluation(\n",
" display_name=\"prod\",\n",
" metrics_schema_uri=\"gs://google-cloud-aiplatform/schema/modelevaluation/classification_metrics_1.0.0.yaml\",\n",
" metrics=metrics,\n",
")\n",
"\n",
"client.import_model_evaluation(parent=model.resource_name, model_evaluation=model_prod)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "337319a19efe"
},
"source": [
"### List a specific custom model evaluation\n",
"\n",
"Now that your custom second metric has been uploaded to the corresponding model in the Vertex AI Model Registry, you can retrieve this specific evaluation by filtering using the `display_name`:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "1b3374e988cf"
},
"outputs": [],
"source": [
"evaluations = model.list_model_evaluations()\n",
"for evaluation in evaluations:\n",
" if evaluation.display_name == \"prod\":\n",
" print(evaluation.gca_resource)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "b3a3993dc813"
},
"source": [
"### Upload version 2 of the TFHub model to the `Vertex AI Model Registry`\n",
"\n",
"Next, you upload the second version of the TFHub model as a `Model` resource in the `Vertex AI Model Registry`, with the additional following parameters:\n",
"\n",
"- `parent_model`: The existing `Model` resource for which to add this model as the next model version.\n",
"- `is_default_version`: Whether this will be the default version for the `Model` resource. In this example, you change from the default from the first version to the second version of the model.\n",
"- `version_ailiases`: User defined list of alternative alias names for the model version, such as `production`.\n",
"- `version_description`: User description of the model version.\n",
"\n",
"When a subsequent model version is created in the `Vertex AI Model Registry`, the property `version_id` will automatically be incremented. In this example, it will be set to 2 (2nd version)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "852be5e5f964"
},
"outputs": [],
"source": [
"model_v2 = aiplatform.Model.upload(\n",
" display_name=\"resnet\",\n",
" artifact_uri=MODEL_DIR,\n",
" serving_container_image_uri=DEPLOY_IMAGE,\n",
" parent_model=model.resource_name,\n",
" is_default_version=True,\n",
" version_aliases=[\"v2\"],\n",
" version_description=\"This is the second version of the model\",\n",
")\n",
"\n",
"print(model_v2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "68870bd8194d"
},
"source": [
"### Upload an evaluation metrics for version 2 of the model to the Model Registry\n",
"\n",
"Next, upload a model evaluation to the corresponding model version in the Vertex AI Model Registry. Note, you referenced `model_v2.resource_name` to refer to version 2 of this model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "9b864c0ba07f"
},
"outputs": [],
"source": [
"metrics = {\"logLoss\": 1.0, \"auPrc\": 0.91}\n",
"print(metrics)\n",
"\n",
"model_eval = gapic.ModelEvaluation(\n",
" display_name=\"eval\",\n",
" metrics_schema_uri=\"gs://google-cloud-aiplatform/schema/modelevaluation/classification_metrics_1.0.0.yaml\",\n",
" metrics=metrics,\n",
")\n",
"\n",
"client.import_model_evaluation(\n",
" parent=model_v2.resource_name, model_evaluation=model_eval\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d4e72b21b06b"
},
"source": [
"### List the evaluations for both versions of the model\n",
"\n",
"Finally, list the number of evaluations for both versions of the model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "369a23d392a4"
},
"outputs": [],
"source": [
"evaluations = model.list_model_evaluations()\n",
"print(\"Model v1 no. of evaluations\", len(evaluations))\n",
"evaluations = model_v2.list_model_evaluations()\n",
"print(\"Model v2 no. of evaluations\", len(evaluations))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TpV-iwP9qw9c"
},
"source": [
"## Cleaning up\n",
"\n",
"To clean up all Google Cloud resources used in this project, you can [delete the Google Cloud\n",
"project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#shutting_down_projects) you used for the tutorial.\n",
"\n",
"Otherwise, you can delete the individual resources you created in this tutorial:\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "sx_vKniMq9ZX"
},
"outputs": [],
"source": [
"import os\n",
"\n",
"# Delete model resource\n",
"model.delete()\n",
"\n",
"# Delete Cloud Storage objects that were created\n",
"delete_bucket = False\n",
"if delete_bucket or os.getenv(\"IS_TESTING\"):\n",
" ! gsutil -m rm -r $BUCKET_URI"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "get_started_with_custom_model_evaluation_import.ipynb",
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
+19 -1
View File
@@ -26,7 +26,6 @@ The steps performed include:
- Deploy the `Model` resource to the `Endpoint` resource.
- Configure the `Endpoint` resource for model monitoring.
- Generate synthetic prediction requests for skew.
- Wait for email alert notification.
- Generate synthetic prediction requests for drift.
- Wait for email alert notification.
@@ -52,6 +51,25 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Model Monitoring](https://cloud.google.com/vertex-ai/docs/model-monitoring).
[Vertex AI Model Monitoring for online prediction in AutoML image models](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_monitoring/get_started_with_model_monitoring_automl_image_online.ipynb)
```
Learn how to use `Vertex AI Model Monitoring` with `Vertex AI Online Prediction` with an AutoML image classification model to detect an out of distribution image.
The steps performed include:
1. Train an AutoML image classification model.
2. Create an endpoint.
3. Deploy the model to the endpoint, and configure for model monitoring.
4. Submit a online prediction containing both in and out of distribution images.
5. Use Model Monitoring to calculate anomaly score on each image.
6. Identify the images in the online prediction request that are out of distribution.
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Model Monitoring](https://cloud.google.com/vertex-ai/docs/model-monitoring).
[Vertex AI Model Monitoring for custom tabular models](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_monitoring/get_started_with_model_monitoring_custom.ipynb)
```
@@ -19,3 +19,21 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [BigQuery ML](https://cloud.google.com/vertex-ai/docs/beginner/bqml).
[Get started with Vertex AI Model Registry](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_registry/get_started_with_model_registry.ipynb)
```
Learn how to use `Vertex AI Model Registry` to create and register multiple versions of a model.
The steps performed include:
- Create and register a first version of a model to `Vertex AI Model Registry`.
- Create and register a second version of a model to `Vertex AI Model Registry`.
- Updating the model version which is the default (blessed).
- Deleting a model version.
- Retraining the next model version.
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction).
File diff suppressed because it is too large Load Diff
+30 -27
View File
@@ -20,6 +20,31 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [AutoML components](https://cloud.google.com/vertex-ai/docs/pipelines/vertex-automl-component).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview).
[Challenger vs Blessed methodology for model deployment into production](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/pipelines/challenger_vs_blessed_deployment_method.ipynb)
```
Learn how to construct a Vertex AI pipeline, which trains a new challenger version of a model, evaluates the model and compares the evaluation to the existing blessed model in production, to determine whether the challenger model becomes the blessed model for replacement in production.
The steps performed include:
- Import a pretrained (blessed) model to the `Vertex AI Model Registry`.
- Import synthetic model evaluation metrics to the corresponding (blessed) model.
- Create a `Vertex AI Endpoint` resource
- Deploy the blessed model to the `Endpoint` resource.
- Create a Vertex AI Pipeline
- Get the blessed model.
- Import another instance (challenger) of the pretrained model.
- Register the pretrained (challenger) model as a new version of the existing blessed model.
- Create a synthetic model evaluation.
- Import the synthetic model evaluation metrics to the corresponding challenger model.
- Compare the evaluations and set the blessed or challenger as the default.
- Deploy the new blessed model.
```
[Pipeline control structures using the KFP SDK](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/control_flow_kfp.ipynb)
@@ -56,7 +81,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Pipelines](https://cloud.google.com/vertex-ai/docs/pipelines/introduction).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training components](https://cloud.google.com/vertex-ai/docs/training/create-training-pipeline).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training components](https://cloud.google.com/vertex-ai/docs/training/create-training-pipeline).
[Training and batch prediction with BigQuery source and destinantion for a custom tabular classification model](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/custom_tabular_train_batch_pred_bq_pipeline.ipynb)
@@ -128,6 +153,8 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [AutoML components](https://cloud.google.com/vertex-ai/docs/pipelines/vertex-automl-component).
&nbsp;&nbsp;&nbsp;Learn more about [Regression for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/classification-regression/overview).
[AutoML text classification pipelines using google-cloud-pipeline-components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/google_cloud_pipeline_components_automl_text.ipynb)
@@ -211,7 +238,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Pipelines](https://cloud.google.com/vertex-ai/docs/pipelines/introduction).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training components](https://cloud.google.com/vertex-ai/docs/pipelines/customjob-component).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training components](https://cloud.google.com/vertex-ai/docs/pipelines/customjob-component).
[Model upload, predict, and evaluate using google-cloud-pipeline-components](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pipelines/google_cloud_pipeline_components_model_upload_predict_evaluate.ipynb)
@@ -304,29 +331,5 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [AutoML components](https://cloud.google.com/vertex-ai/docs/pipelines/vertex-automl-component).
[Train custom tabular ML models with many frameworks and import to Vertex AI using Vertex Pipelines](https://github.com/GoogleCloudPlatform/vertex-ai-samples/tree/main/notebooks/official/pipelines/Train_tabular_models_with_many_frameworks_and_import_to_Vertex_AI_using_Pipelines)
&nbsp;&nbsp;&nbsp;Learn more about [BigQuery ML components](https://cloud.google.com/vertex-ai/docs/pipelines/bigqueryml-component).
Learn how to build a pipeline that does the following:
* Ingest data
* Transform data
* Clean up data
* Split data into train/test subsets
* Configure model
* Train model using multiple ML frameworks
* Import model into Vertex Model Registry
* [Optional] Deploy model to Vertex Endpoints for serving
Included pipelines:
* Train ML model
* * Tabular classification
* * * TensorFlow
* * * PyTorch
* * * XGBoost
* * * Scikit-learn
* * Tabular regression
* * * TensorFlow
* * * PyTorch
* * * XGBoost
* * * Scikit-learn
File diff suppressed because it is too large Load Diff
@@ -65,7 +65,7 @@
"\n",
"This tutorial demonstrates how to use Vertex AI Pipelines with pre-built Google Cloud Pipeline Components for custom training.\n",
"\n",
"Learn more about [Vertex AI Pipelines](https://cloud.google.com/vertex-ai/docs/pipelines/introduction) and [Vertex AI Training components](https://cloud.google.com/vertex-ai/docs/training/create-training-pipeline)."
"Learn more about [Vertex AI Pipelines](https://cloud.google.com/vertex-ai/docs/pipelines/introduction) and [Custom training components](https://cloud.google.com/vertex-ai/docs/training/create-training-pipeline)."
]
},
{
@@ -63,7 +63,7 @@
"\n",
"This notebook shows how to use the components defined in [`google_cloud_pipeline_components`](https://github.com/kubeflow/pipelines/tree/master/components/google-cloud) to build a [Vertex AI Pipelines](https://cloud.google.com/vertex-ai/docs/pipelines) workflow that trains a [custom model](https://cloud.google.com/vertex-ai/docs/training/containers-overview), uploads the model as a `Model` resource, creates an `Endpoint` resource, and deploys the `Model` resource to the `Endpoint` resource.\n",
"\n",
"Learn more about [Vertex AI Pipelines](https://cloud.google.com/vertex-ai/docs/pipelines/introduction) and [Vertex AI Training components](https://cloud.google.com/vertex-ai/docs/pipelines/customjob-component)."
"Learn more about [Vertex AI Pipelines](https://cloud.google.com/vertex-ai/docs/pipelines/introduction) and [Custom training components](https://cloud.google.com/vertex-ai/docs/pipelines/customjob-component)."
]
},
{
@@ -713,7 +713,7 @@
"outputs": [],
"source": [
"@component(\n",
" packages_to_install=[\"sklearn\"],\n",
" packages_to_install=[\"scikit-learn\"],\n",
" base_image=\"python:3.9\",\n",
" output_component_file=\"wine_classification_component.yaml\",\n",
")\n",
@@ -758,7 +758,7 @@
},
"outputs": [],
"source": [
"@component(packages_to_install=[\"sklearn\"], base_image=\"python:3.9\")\n",
"@component(packages_to_install=[\"scikit-learn\"], base_image=\"python:3.9\")\n",
"def iris_sgdclassifier(\n",
" test_samples_fraction: float,\n",
" metricsc: Output[ClassificationMetrics],\n",
@@ -805,7 +805,7 @@
"outputs": [],
"source": [
"@component(\n",
" packages_to_install=[\"sklearn\"],\n",
" packages_to_install=[\"scikit-learn\"],\n",
" base_image=\"python:3.9\",\n",
")\n",
"def iris_logregression(\n",
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,892 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ur8xi4C7S06n"
},
"outputs": [],
"source": [
"# Copyright 2023 Google LLC\n",
"#\n",
"# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"# you may not use this file except in compliance with the License.\n",
"# You may obtain a copy of the License at\n",
"#\n",
"# https://www.apache.org/licenses/LICENSE-2.0\n",
"#\n",
"# Unless required by applicable law or agreed to in writing, software\n",
"# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"# See the License for the specific language governing permissions and\n",
"# limitations under the License."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JAPoU8Sm5E6e"
},
"source": [
"# Serving PyTorch image models with prebuilt containers on Vertex AI\n",
"\n",
"\n",
"<table align=\"left\">\n",
"\n",
" <td>\n",
" <a href=\"https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/prediction/pytorch_image_classification_with_prebuilt_serving_containers.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/colab-logo-32px.png\" alt=\"Colab logo\"> Run in Colab\n",
" </a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/prediction/pytorch_image_classification_with_prebuilt_serving_containers.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/github-logo-32px.png\" alt=\"GitHub logo\">\n",
" View on GitHub\n",
" </a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://console.cloud.google.com/vertex-ai/workbench/deploy-notebook?download_url=https://raw.githubusercontent.com/GoogleCloudPlatform/vertex-ai-samples/main/notebooks/official/prediction/pytorch_image_classification_with_prebuilt_serving_containers.ipynb\">\n",
" <img src=\"https://lh3.googleusercontent.com/UiNooY4LUgW_oTvpsNhPpQzsstV5W8F7rYgxgGBD85cWJoLmrOzhVs_ksK_vgx40SHs7jCqkTkCk=e14-rj-sc0xffffff-h130-w32\" alt=\"Vertex AI logo\">\n",
" Open in Vertex AI Workbench\n",
" </a>\n",
" </td>\n",
"</table>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "tvgnzT1CKxrO"
},
"source": [
"## Overview\n",
"\n",
"This tutorial demonstrates how to upload and deploy a PyTorch image model using a prebuilt serving container and how to make online and batch predictions.\n",
"\n",
"Vertex AI provides prebuilt containers for serving predictions and explanations from trained model artifacts. Using a pre-built container is generally simpler than creating your own custom container for prediction.\n",
"\n",
"Learn more about [Pre-built containers for prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers)."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "d975e698c9a4"
},
"source": [
"### Objective\n",
"\n",
"In this tutorial, you learn how to package and deploy a PyTorch image classification model using a prebuilt Vertex AI container with TorchServe for serving online and batch predictions.\n",
"\n",
"This tutorial uses the following Google Cloud ML services and resources:\n",
"\n",
"- `Vertex AI Model Registry`\n",
"- `Vertex AI Model` resources\n",
"- `Vertex AI Endpoint` resources\n",
"\n",
"The steps performed include:\n",
"\n",
"- Download a pretrained image model from PyTorch\n",
"- Create a custom model handler\n",
"- Package model artifacts in a model archive file\n",
"- Upload model for deployment\n",
"- Deploy model for prediction\n",
"- Make online predictions\n",
"- Make batch predictions"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "08d289fa873f"
},
"source": [
"### Model\n",
"\n",
"This tutorial uses a pretrained image model [resnet18](https://pytorch.org/vision/master/models/generated/torchvision.models.resnet18.html) from the PyTorch TorchVision."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aed92deeb4a0"
},
"source": [
"### Costs\n",
"\n",
"This tutorial uses billable components of Google Cloud:\n",
"\n",
"* Vertex AI\n",
"* Cloud Storage\n",
"\n",
"Learn about [Vertex AI pricing](https://cloud.google.com/vertex-ai/pricing),\n",
"and [Cloud Storage pricing](https://cloud.google.com/storage/pricing),\n",
"and use the [Pricing Calculator](https://cloud.google.com/products/calculator/)\n",
"to generate a cost estimate based on your projected usage."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "i7EUnXsZhAGF"
},
"source": [
"## Installation\n",
"\n",
"Install the following packages required to execute this notebook."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "2b4ef9b72d43"
},
"outputs": [],
"source": [
"! pip3 install --upgrade --quiet google-cloud-aiplatform \\\n",
" tensorflow \\\n",
" torch \\\n",
" torchvision \\\n",
" torch-model-archiver"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "58707a750154"
},
"source": [
"### Colab only: Uncomment the following cell to restart the kernel."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "f200f10a1da3"
},
"outputs": [],
"source": [
"# Automatically restart kernel after installs so that your environment can access the new packages\n",
"# import IPython\n",
"\n",
"# app = IPython.Application.instance()\n",
"# app.kernel.do_shutdown(True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BF1j6f9HApxa"
},
"source": [
"## Before you begin\n",
"\n",
"### Set up your Google Cloud project\n",
"\n",
"**The following steps are required, regardless of your notebook environment.**\n",
"\n",
"1. [Select or create a Google Cloud project](https://console.cloud.google.com/cloud-resource-manager). When you first create an account, you get a $300 free credit towards your compute/storage costs.\n",
"\n",
"2. [Make sure that billing is enabled for your project](https://cloud.google.com/billing/docs/how-to/modify-project).\n",
"\n",
"3. [Enable the Vertex AI API](https://console.cloud.google.com/flows/enableapi?apiid=aiplatform.googleapis.com).\n",
"\n",
"4. If you are running this notebook locally, you need to install the [Cloud SDK](https://cloud.google.com/sdk)."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WReHDGG5g0XY"
},
"source": [
"#### Set your project ID\n",
"\n",
"**If you don't know your project ID**, see the support page: [Locate the project ID](https://support.google.com/googleapi/answer/7014113)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "oM1iC_MfAts1"
},
"outputs": [],
"source": [
"PROJECT_ID = \"[your-project-id]\" # @param {type:\"string\"}\n",
"\n",
"# Set the project id\n",
"! gcloud config set project {PROJECT_ID}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "region"
},
"source": [
"#### Region\n",
"\n",
"You can also change the `REGION` variable used by Vertex AI. Learn more about [Vertex AI regions](https://cloud.google.com/vertex-ai/docs/general/locations)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tTy1gX11kCJY"
},
"outputs": [],
"source": [
"REGION = \"us-central1\" # @param {type: \"string\"}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "sBCra4QMA2wR"
},
"source": [
"### Authenticate your Google Cloud account\n",
"\n",
"Depending on your Jupyter environment, you may have to manually authenticate. Follow the relevant instructions below."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "74ccc9e52986"
},
"source": [
"**1. Vertex AI Workbench**\n",
"* Do nothing as you are already authenticated."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "de775a3773ba"
},
"source": [
"**2. Local JupyterLab instance, uncomment and run:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "254614fa0c46"
},
"outputs": [],
"source": [
"# ! gcloud auth login"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ef21552ccea8"
},
"source": [
"**3. Colab, uncomment and run:**"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "603adbbf0532"
},
"outputs": [],
"source": [
"# from google.colab import auth\n",
"# auth.authenticate_user()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "zgPO1eR3CYjk"
},
"source": [
"### Create a Cloud Storage bucket\n",
"\n",
"Create a storage bucket to store intermediate artifacts such as datasets."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "MzGDU7TWdts_"
},
"outputs": [],
"source": [
"BUCKET_URI = \"gs://your-bucket-name-unique\" # @param {type:\"string\"}"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-EcIXiGsCePi"
},
"source": [
"**Only if your bucket doesn't already exist**: Run the following cell to create your Cloud Storage bucket."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "NIq7R4HZCfIc"
},
"outputs": [],
"source": [
"! gsutil mb -l $REGION -p $PROJECT_ID $BUCKET_URI"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "960505627ddf"
},
"source": [
"### Import libraries"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "PyQmSRbKA8r-"
},
"outputs": [],
"source": [
"import base64\n",
"import json\n",
"import os\n",
"import pathlib\n",
"import urllib.request\n",
"\n",
"import tensorflow as tf\n",
"import torch\n",
"from google.cloud import aiplatform\n",
"from PIL import Image\n",
"from torchvision import models"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "init_aip:mbsdk,all"
},
"source": [
"### Initialize Vertex AI SDK for Python\n",
"\n",
"Initialize the Vertex AI SDK for Python for your project."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "BnBAXs5XkCJZ"
},
"outputs": [],
"source": [
"aiplatform.init(project=PROJECT_ID, location=REGION, staging_bucket=BUCKET_URI)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "_McUaTTABIqu"
},
"source": [
"## Download a pre-trained image model\n",
"\n",
"Download the pretrained image model [resnet18](https://pytorch.org/vision/master/models/generated/torchvision.models.resnet18.html) from the PyTorch TorchVision."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "9Ss_3SGpqOWy"
},
"outputs": [],
"source": [
"# Create a local directory for model artifacts\n",
"model_path = \"model\"\n",
"\n",
"!rm -r $model_path\n",
"!mkdir $model_path\n",
"\n",
"model_name = \"resnet-18-custom-handler\"\n",
"model_file = f\"{model_path}/{model_name}.pt\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "z62_eZEcEBKt"
},
"outputs": [],
"source": [
"# Use scripted mode to save the PyTorch model locally\n",
"model = models.resnet18(pretrained=True)\n",
"script_module = torch.jit.script(model)\n",
"script_module.save(model_file)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FZpKK4FgDHeu"
},
"source": [
"## Create a custom model handler\n",
"\n",
"A custom model handler is a Python script that you package with the model when you use the model archiver. The script typically defines how to pre-process input data, invoke the model and post-process the output.\n",
"\n",
"TorchServe has [default handlers](https://pytorch.org/serve/default_handlers.html) for `image_classifier`, `image_segmenter`, `object_detector` and `text_classifier`. In this tutorial, you create a custom handler extending the default [`image_classifier`](https://github.com/pytorch/serve/blob/master/ts/torch_handler/image_classifier.py) handler.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "0jW_oUKNs0vQ"
},
"outputs": [],
"source": [
"hander_file = f\"{model_path}/custom_handler.py\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "toIO7mTus453"
},
"outputs": [],
"source": [
"%%writefile {hander_file}\n",
"\n",
"import torch\n",
"import torch.nn.functional as F\n",
"from ts.torch_handler.image_classifier import ImageClassifier\n",
"from ts.utils.util import map_class_to_label\n",
"\n",
"\n",
"class CustomImageClassifier(ImageClassifier):\n",
"\n",
" # Only return the top 3 predictions\n",
" topk = 3\n",
"\n",
" def postprocess(self, data):\n",
" ps = F.softmax(data, dim=1)\n",
" probs, classes = torch.topk(ps, self.topk, dim=1)\n",
" probs = probs.tolist()\n",
" classes = classes.tolist()\n",
" return map_class_to_label(probs, self.mapping, classes)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "sD9ttWmqhPME"
},
"source": [
"## Download an index_to_name.json file\n",
"\n",
"PyTorch `image_classifier`, `text_classifier` and `object_detector` can all automatically map from numeric classes (0,1,2...) to friendly strings. To do this, simply include `index_to_name.json` that contains a mapping of class number to friendly name in your model archive file."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "m19wquufqOaL"
},
"outputs": [],
"source": [
"index_to_name_file = f\"{model_path}/index_to_name.json\"\n",
"\n",
"urllib.request.urlretrieve(\n",
" \"https://github.com/pytorch/serve/raw/master/examples/image_classifier/index_to_name.json\",\n",
" index_to_name_file,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "MJe1luzPjPCJ"
},
"source": [
"## Package the model artifacts in a model archive file\n",
"\n",
"You package all the model artifacts in a model archive file using the [`Torch model archiver`](https://github.com/pytorch/serve/tree/master/model-archiver).\n",
"\n",
"Note that the prebuilt PyTorch serving containers require the model archive file named as `model.mar` so you need to set the model-name as `model` in the `torch-model-archiver` command."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "mtP3s0MLqOL8"
},
"outputs": [],
"source": [
"# Add torch-model-archiver to the PATH\n",
"os.environ[\"PATH\"] = f'{os.environ.get(\"PATH\")}:~/.local/bin'"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "pN1BqokBtHAS"
},
"outputs": [],
"source": [
"!torch-model-archiver -f \\\n",
" --model-name model \\\n",
" --version 1.0 \\\n",
" --serialized-file $model_file \\\n",
" --handler $hander_file \\\n",
" --extra-files $index_to_name_file \\\n",
" --export-path $model_path"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8qXVlPVTlRgP"
},
"source": [
"## Copy the model artifacts to Cloud Storage\n",
"\n",
"Next, use `gsutil` to copy the model artifacts to your Cloud Storage bucket."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hsJ6YVaitHVW"
},
"outputs": [],
"source": [
"MODEL_URI = f\"{BUCKET_URI}/{model_name}\"\n",
"\n",
"!gsutil rm -r $MODEL_URI\n",
"!gsutil cp -r $model_path $MODEL_URI\n",
"!gsutil ls -al $MODEL_URI"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "B9Ep0eANl7te"
},
"source": [
"## Upload model for deployment\n",
"\n",
"Next, you upload the [model](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.models) to `Vertex AI Model Registry`, which will create a `Vertex AI Model` resource for your model. This tutorial uses the PyTorch v1.11 container, but for your own use case, you can choose from the list of [PyTorch prebuilt containers](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers#pytorch)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "igJgzA6btPL7"
},
"outputs": [],
"source": [
"DEPLOY_IMAGE_URI = \"us-docker.pkg.dev/vertex-ai/prediction/pytorch-cpu.1-11:latest\"\n",
"\n",
"deployed_model = aiplatform.Model.upload(\n",
" display_name=model_name,\n",
" serving_container_image_uri=DEPLOY_IMAGE_URI,\n",
" artifact_uri=MODEL_URI,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Tys97v6XpLmF"
},
"source": [
"## Deploy model for prediction\n",
"\n",
"Next, deploy your model for online prediction. You set the variable `DEPLOY_COMPUTE` to configure the machine type for the [compute resources](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute) you will use for prediction."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ka_zUL6-tPxW"
},
"outputs": [],
"source": [
"DEPLOY_COMPUTE = \"n1-standard-4\"\n",
"\n",
"endpoint = deployed_model.deploy(\n",
" deployed_model_display_name=model_name,\n",
" machine_type=DEPLOY_COMPUTE,\n",
" accelerator_type=None,\n",
" accelerator_count=0,\n",
")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "Dp2oUReOpx7X"
},
"source": [
"## Make online predictions\n",
"\n",
"### Download an image dataset\n",
"In this example, you use the TensorFlow flowers dataset for the input for both online and batch predictions."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "nwKmNS-UqOP3"
},
"outputs": [],
"source": [
"data_dir = tf.keras.utils.get_file(\n",
" \"flower_photos\",\n",
" origin=\"https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz\",\n",
" untar=True,\n",
")\n",
"\n",
"data_dir = pathlib.Path(data_dir)\n",
"images_files = list(data_dir.glob(\"daisy/*\"))"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "0xRXkbxZqDkc"
},
"source": [
"### Get online predictions\n",
"\n",
"You send a `predict` request with encoded input image data to the `endpoint` and get prediction."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "lzooJLwUtXiU"
},
"outputs": [],
"source": [
"with open(images_files[0], \"rb\") as f:\n",
" data = {\"data\": base64.b64encode(f.read()).decode(\"utf-8\")}\n",
"\n",
"response = endpoint.predict(instances=[data])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "w3qgFiMyuUb3"
},
"outputs": [],
"source": [
"prediction = response.predictions[0]\n",
"prediction = dict(sorted(prediction.items(), key=lambda item: item[1], reverse=True))\n",
"\n",
"print(prediction)\n",
"image = Image.open(images_files[0])\n",
"image"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "6o93-TkuqXS-"
},
"source": [
"## Make batch predictions\n",
"\n",
"### Create the batch input file\n",
"\n",
"You create a batch input file in JSONL format and store the input file in your Cloud Storage bucket.\n",
"\n",
"Learn more about [Input data requirements](https://cloud.google.com/vertex-ai/docs/predictions/get-predictions#input_data_requirements)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ChsjFzwW0rBj"
},
"outputs": [],
"source": [
"TEST_IMAGE_SIZE = 2\n",
"test_image_list = []\n",
"for i in range(TEST_IMAGE_SIZE):\n",
" test_image_list.append(str(images_files[i]))\n",
"\n",
"gcs_input_uri = f\"{BUCKET_URI}/test_images.json\"\n",
"\n",
"with tf.io.gfile.GFile(gcs_input_uri, \"w\") as f:\n",
" for test_image in test_image_list:\n",
" with open(test_image, \"rb\") as image_f:\n",
" data = {\"data\": base64.b64encode(image_f.read()).decode(\"utf-8\")}\n",
" f.write(json.dumps(data) + \"\\n\")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "_Ap-UO4tsJiO"
},
"source": [
"### Submit a batch prediction job"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "HhH6KyIk0t3n"
},
"outputs": [],
"source": [
"JOB_DISPLAY_NAME = f\"{model_name}_batch_predict_job_unique\"\n",
"\n",
"batch_predict_job = deployed_model.batch_predict(\n",
" job_display_name=JOB_DISPLAY_NAME,\n",
" gcs_source=gcs_input_uri,\n",
" gcs_destination_prefix=BUCKET_URI,\n",
" instances_format=\"jsonl\",\n",
" model_parameters=None,\n",
" machine_type=DEPLOY_COMPUTE,\n",
")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "2gVBOadysOSY"
},
"source": [
"### Get batch predictions\n",
"\n",
"After the batch job completes, the results are written to the Cloud Storage output bucket you specified in the batch request. You call the method `iter_outputs()` to get a list of each Cloud Storage file generated with the results."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "wXcrGXrf0yVb"
},
"outputs": [],
"source": [
"bp_iter_outputs = batch_predict_job.iter_outputs()\n",
"\n",
"prediction_files = list()\n",
"for blob in bp_iter_outputs:\n",
" if blob.name.split(\"/\")[-1].startswith(\"prediction.results\"):\n",
" prediction_files.append(blob.name)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "4f7nXK1Y0vmd"
},
"outputs": [],
"source": [
"prediction_file = prediction_files[0]\n",
"\n",
"results = []\n",
"gfile_name = f\"{BUCKET_URI}/{prediction_file}\"\n",
"with tf.io.gfile.GFile(name=gfile_name, mode=\"r\") as gfile:\n",
" for line in gfile.readlines():\n",
" results.append(json.loads(line))\n",
"\n",
"# Take one result as an example and print out the prediction.\n",
"prediction = results[0][\"prediction\"]\n",
"prediction = dict(sorted(prediction.items(), key=lambda item: item[1], reverse=True))\n",
"print(prediction)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "TpV-iwP9qw9c"
},
"source": [
"## Cleaning up\n",
"\n",
"To clean up all Google Cloud resources used in this project, you can [delete the Google Cloud\n",
"project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#shutting_down_projects) you used for the tutorial.\n",
"\n",
"Otherwise, you can delete the individual resources you created in this tutorial."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "sx_vKniMq9ZX"
},
"outputs": [],
"source": [
"endpoint.undeploy_all()\n",
"endpoint.delete()\n",
"\n",
"deployed_model.delete()\n",
"batch_predict_job.delete()\n",
"\n",
"delete_bucket = False\n",
"if delete_bucket:\n",
" ! gsutil -m rm -r $BUCKET_URI"
]
}
],
"metadata": {
"colab": {
"name": "pytorch_image_classification_with_prebuilt_serving_containers.ipynb",
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
-20
View File
@@ -1,20 +0,0 @@
[Training, tuning and deploying a PyTorch text sentiment classification model on Vertex AI](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pytorch/pytorch-text-sentiment-classification-custom-train-deploy.ipynb)
```
Learn to build, train, tune and deploy a PyTorch model on [Vertex AI](https://cloud.
The steps performed include:
- Create training package for the text classification model.
- Train the model with custom training on Vertex AI.
- Check the created model artifacts.
- Create a custom container for predictions.
- Deploy the trained model to a Vertex AI Endpoint using the custom container for predictions.
- Send online prediction requests to the deployed model and validate.
- Clean up the resources created in this notebook.
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
+2 -2
View File
@@ -16,7 +16,7 @@ The steps performed include the following:
```
&nbsp;&nbsp;&nbsp;Learn more about [AutoML Video](https://cloud.google.com/vertex-ai/docs/tutorials/video-classification-automl/training).
&nbsp;&nbsp;&nbsp;Learn more about [Classification for video data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_videos).
[Custom training using Python package, managed text dataset, and TF Serving container](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/sdk/SDK_Custom_Training_Python_Package_Managed_Text_Dataset_Tensorflow_Serving_Container.ipynb)
@@ -38,5 +38,5 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
@@ -64,7 +64,7 @@
"\n",
"Note: you may incur charges for training, prediction, storage or usage of other GCP products in connection with testing this SDK.\n",
"\n",
"Learn more about [AutoML Video](https://cloud.google.com/vertex-ai/docs/tutorials/video-classification-automl/training)."
"Learn more about [Classification for video data](https://cloud.google.com/vertex-ai/docs/training-overview#classification_for_videos)."
]
},
{
@@ -773,7 +773,19 @@
"\n",
"The `run` method when completed returns the `Model` resource.\n",
"\n",
"The execution of the training pipeline can take over 2 hours to complete."
"The execution of the training pipeline can take over 24 hours to complete."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "8f135100f5d9"
},
"outputs": [],
"source": [
"if os.getenv(\"IS_TESTING\"):\n",
" sys.exit(0)"
]
},
{
@@ -64,7 +64,7 @@
"\n",
"Note: You may incur charges for training, prediction, storage or usage of other GCP products in connection with testing this SDK.\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
+2 -2
View File
@@ -1,11 +1,11 @@
[Vertex AI Explainations with TabNet models](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tabnet/ai-explanations-tabnet-algorithm.ipynb)
[Vertex AI Explanations with TabNet models](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tabnet/ai-explanations-tabnet-algorithm.ipynb)
```
Learn how to provide a sample plotting tool to visualize the output of TabNet, which is helpful in explaining the algorithm.
The steps performed are:
* Setup the the project.
* Setup the project.
* Download the prediction data of pretrain model onf Syn2 data.
* Visualize and understand the feature importance based on the masks output.
* Clean up the resource created by this tutorial.
@@ -29,7 +29,7 @@
"id": "JAPoU8Sm5E6e"
},
"source": [
"# Vertex AI Explainations with TabNet models\n",
"# Vertex AI Explanations with TabNet models\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -86,7 +86,7 @@
"- TabNet builtin algorithm\n",
"\n",
"The steps performed are:\n",
"* Setup the the project.\n",
"* Setup the project.\n",
"* Download the prediction data of pretrain model onf Syn2 data.\n",
"* Visualize and understand the feature importance based on the masks output.\n",
"* Clean up the resource created by this tutorial."
@@ -1,4 +1,20 @@
[Train a Prophet Model using Vertex AI Tabular Workflows](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tabular_workflows/prophet_on_vertex_pipelines.ipynb)
```
Learn how to create several Prophet models using a training Vertex AI Pipeline from Google Cloud Pipeline Components , and then do a batch prediction using the corresponding prediction pipeline.
The steps performed are:
1. Train the Prophet models.
1. View the evaluation metrics.
1. Make a batch prediction with the Prophet models.
```
&nbsp;&nbsp;&nbsp;Learn more about [Google Cloud Pipeline Components](https://cloud.google.com/vertex-ai/docs/pipelines/components-introduction).
[TabNet Pipeline](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tabular_workflows/tabnet_on_vertex_pipelines.ipynb)
```
@@ -78,7 +78,7 @@
"\n",
"Although Prophet is a multivariate model, Vertex AI does not yet have support for external regressors, so it can only be used as a univariate model.\n",
"\n",
"Learn more about [Google Cloud Pipeline Components](https://cloud.google.com/vertex-ai/docs/pipelines/components-introduction)."
"Learn more about [Google Cloud Pipeline Components](https://cloud.google.com/vertex-ai/docs/pipelines/components-introduction) and [Prophet for tabular data](https://cloud.google.com/vertex-ai/docs/tabular-data/forecasting-prophet)."
]
},
{
+34 -2
View File
@@ -15,7 +15,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI TensorBoard](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-overview).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Vertex AI TensorBoard custom training with prebuilt container](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tensorboard/tensorboard_custom_training_with_prebuilt_container.ipynb)
@@ -34,7 +34,23 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI TensorBoard](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-overview).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Vertex AI TensorBoard Hyperparameter Tuning with the HParams Dashboard](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tensorboard/tensorboard_hyperparameter_tuning_with_hparams.ipynb)
```
This tutorial shows you how to log hyperparameter experiment results in TensorFlow and visualize the results in TensorBoard's Hparams dashboard.
The steps performed include:
* Adapt TensorFlow runs to log hyperparameters and metrics.
* Start runs and log them all under one parent directory.
* Visualize the results in TensorBoard's HParams dashboard.
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI TensorBoard](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-overview).
[Profile model training performance using Vertex AI TensorBoard Profiler](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tensorboard/tensorboard_profiler_custom_training.ipynb)
@@ -54,6 +70,22 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI TensorBoard Profiler](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-profiler).
[Profile model training performance using Vertex AI TensorBoard Profiler in custom training with prebuilt container](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tensorboard/tensorboard_profiler_custom_training_with_prebuilt_container.ipynb)
```
Learn how to enable the TensorBoard Profiler in Vertex AI for custom training jobs with a prebuilt container.
The steps performed include:
- Prepare your custom training code and load your training code as a Python package to a prebuilt container
- Create and run a custom training job that enables the TensorBoard Profiler
- View the TensorBoard Profiler dashboard to debug your model training performance
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI TensorBoard Profiler](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-profiler).
[Vertex AI TensorBoard integration with Vertex AI Pipelines](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/tensorboard/tensorboard_vertex_ai_pipelines_integration.ipynb)
```
@@ -91,7 +91,7 @@
"With Vertex AI TensorBoard, you can track, visualize, and compare\n",
"ML experiments and share them with your team.\n",
"\n",
"Learn more about [Vertex AI TensorBoard](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-overview) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Vertex AI TensorBoard](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-overview) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -91,7 +91,7 @@
"With Vertex AI TensorBoard, you can track, visualize, and compare\n",
"ML experiments and share them with your team.\n",
"\n",
"Learn more about [Vertex AI TensorBoard](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-overview) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Vertex AI TensorBoard](https://cloud.google.com/vertex-ai/docs/experiments/tensorboard-overview) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
+23 -3
View File
@@ -2,7 +2,7 @@
[Get started with Vertex AI Distributed Training](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/training/get_started_with_vertex_distributed_training.ipynb)
```
Learn how to use `Vertex AI Distributed Training` for when training with `Vertex AI`.
Learn how to use `Vertex AI Distributed Training` when training with `Vertex AI`.
The steps performed include:
@@ -66,7 +66,27 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Training, tuning and deploying a PyTorch text sentiment classification model on Vertex AI](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/training/pytorch-text-sentiment-classification-custom-train-deploy.ipynb)
```
Learn to build, train, tune and deploy a PyTorch model on Vertex AI.
The steps performed include:
- Create training package for the text classification model.
- Train the model with custom training on Vertex AI.
- Check the created model artifacts.
- Create a custom container for predictions.
- Deploy the trained model to a Vertex AI Endpoint using the custom container for predictions.
- Send online prediction requests to the deployed model and validate.
- Clean up the resources created in this notebook.
```
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Create a distributed custom training job](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/training/xgboost_data_parallel_training_on_cpu_using_dask.ipynb)
@@ -83,5 +103,5 @@ The steps performed include:
```
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
@@ -72,7 +72,7 @@
"\n",
"This tutorial demonstrates how to create a multi-node, distributed image classification using PyTorch on Vertex AI SDK with GPU. This can help your training job scale to handle large amounts of data.\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -33,18 +33,18 @@
"\n",
"<table align=\"left\">\n",
" <td>\n",
" <a href=\"https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pytorch/pytorch-text-sentiment-classification-custom-train-deploy.ipynb\">\n",
" <a href=\"https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/training/pytorch-text-sentiment-classification-custom-train-deploy.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/colab-logo-32px.png\" alt=\"Colab logo\"> Run in Colab\n",
" </a>\n",
" </td>\n",
" <td>\n",
" <a href=\"https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/pytorch/pytorch-text-sentiment-classification-custom-train-deploy.ipynb\">\n",
" <a href=\"https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/training/pytorch-text-sentiment-classification-custom-train-deploy.ipynb\">\n",
" <img src=\"https://cloud.google.com/ml-engine/images/github-logo-32px.png\" alt=\"GitHub logo\">\n",
" View on GitHub\n",
" </a>\n",
" </td>\n",
" <td>\n",
"<a href=\"https://console.cloud.google.com/vertex-ai/workbench/deploy-notebook?download_url=https://raw.githubusercontent.com/GoogleCloudPlatform/vertex-ai-samples/main/notebooks/official/pytorch/pytorch-text-sentiment-classification-custom-train-deploy.ipynb\" target='_blank'>\n",
"<a href=\"https://console.cloud.google.com/vertex-ai/workbench/deploy-notebook?download_url=https://raw.githubusercontent.com/GoogleCloudPlatform/vertex-ai-samples/main/notebooks/official/training/pytorch-text-sentiment-classification-custom-train-deploy.ipynb\" target='_blank'>\n",
" <img src=\"https://lh3.googleusercontent.com/UiNooY4LUgW_oTvpsNhPpQzsstV5W8F7rYgxgGBD85cWJoLmrOzhVs_ksK_vgx40SHs7jCqkTkCk=e14-rj-sc0xffffff-h130-w32\" alt=\"Vertex AI logo\">\n",
" Open in Vertex AI Workbench\n",
" </a>\n",
@@ -65,7 +65,7 @@
"\n",
"You can find more details about the model at [Hugging Face Hub](https://huggingface.co/bert-base-cased). For more notebooks with the state of the art PyTorch/Tensorflow/JAX, you can explore [Hugging FaceNotebooks](https://huggingface.co/transformers/notebooks.html).\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
@@ -1301,12 +1301,26 @@
"- `machine_type`: Mahcine type on which the job needs to run.\n",
"- `accelerator_type`: Hardware accelerator type for running the job. One of _ACCELERATOR_TYPE_UNSPECIFIED_,\n",
" _NVIDIA_TESLA_K80_, _NVIDIA_TESLA_P100_, _NVIDIA_TESLA_V100_, _NVIDIA_TESLA_P4_,\n",
" _NVIDIA_TESLA_T4_.\n",
" _NVIDIA_TESLA_T4_, _NVIDIA_TELSA_A100_\n",
"- `accelerator_count`: The number of accelerators to attach to a worker replica.\n",
"- `replica_count`: The number of worker replicas.\n",
"- `args`: Command line arguments to be passed to the Python script.\n",
"\n",
"Learn more about Vertex AI's [Custom Python-Package Trainining](https://cloud.google.com/python/docs/reference/aiplatform/latest/google.cloud.aiplatform.CustomPythonPackageTrainingJob)."
"Learn more about Vertex AI's [Custom Python-Package Trainining](https://cloud.google.com/python/docs/reference/aiplatform/latest/google.cloud.aiplatform.CustomPythonPackageTrainingJob).\n",
"\n",
"*Note*: This training job may take over 24 hours."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "b3709beb73e2"
},
"outputs": [],
"source": [
"if os.getenv(\"IS_TESTING\"):\n",
" sys.exit(0)"
]
},
{
@@ -29,7 +29,7 @@
"id": "eoXf8TfQoVth"
},
"source": [
"# Create a distributed custom training job\n",
"# Distributed XGBoost training with Dask\n",
"\n",
"<table align=\"left\">\n",
"\n",
@@ -61,12 +61,13 @@
"source": [
"## Overview\n",
"\n",
"This tutorial shows you how to create a distributed custom training job on Vertex AI that can handle large amounts of training data.\n",
"This tutorial shows you how to create a distributed custom training job using XGBoost with Dask on Vertex AI that can handle large amounts of training data.\n",
"\n",
"Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"id": "AksIKBzZ-nre"
@@ -74,7 +75,7 @@
"source": [
"### Objective\n",
"\n",
"In this tutorial, you learn how to create a distributed training job using Vertex AI SDK for Python. You build a custom docker container with simple Dask configuration to run a custom training job.\n",
"In this tutorial, you learn how to create a distributed training job using XGBoost with Dask. You build a custom docker container with simple Dask configuration to run a custom training job. When your training job is running, you can access the Dask dashboard to monitor the real-time status of your cluster, resources, and computations.\n",
"\n",
"This tutorial uses the following Google Cloud ML services:\n",
"\n",
@@ -830,13 +831,22 @@
" ! gcloud builds submit --timeout=1800s --region={REGION} --tag $TRAIN_IMAGE"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "41ZgDYPNfEvt"
},
"source": [
"## Run training job with SDK (Option 1) or with gcloud (Option 2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "PtUycdZhCJvQ"
},
"source": [
"### Initialize Vertex AI SDK"
"### 1.1 Initialize Vertex AI SDK"
]
},
{
@@ -860,7 +870,16 @@
"id": "_GB2j39BCXiy"
},
"source": [
"### Run a Vertex AI SDK CustomContainerTrainingJob"
"### 1.2 Run a Vertex AI SDK CustomContainerTrainingJob"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7udaU3jxfKs8"
},
"source": [
"You can specify the fields enable_web_access and enable_dashboard_access. The enable_web_access enables the interactive shell for the job and enable_dashboard_access allows the dask dashboard to be accessed."
]
},
{
@@ -887,9 +906,34 @@
" base_output_dir=gcs_output_uri_prefix,\n",
" replica_count=replica_count,\n",
" machine_type=machine_type,\n",
" enable_dashboard_access=True,\n",
" enable_web_access=True,\n",
" sync=False,\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ROqdvgBKFGKL"
},
"source": [
"Wait for a few minutes for the Custom Job to start"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "rBYbvim_FJz0"
},
"outputs": [],
"source": [
"import time\n",
"\n",
"time.sleep(60 * 3)"
]
},
{
"cell_type": "code",
"execution_count": null,
@@ -902,13 +946,66 @@
"print(f\"GCS Output URI Prefix: {gcs_output_uri_prefix}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-0EJdcjPyjDK"
},
"source": [
"You can access the link to the Custom Job in the Cloud Console UI here:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ZMZPrcqsyj0e"
},
"outputs": [],
"source": [
"print(\n",
" f\"Custom Training Job URI: {custom_container_training_job._custom_job_console_uri()}\"\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7McPKJGxymLU"
},
"source": [
"Once the job is in the state \"RUNNING\", you can access the web access and dashboard access URIs here:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "tiHdwJs1yoE0"
},
"outputs": [],
"source": [
"print(f\"Web Access and Dashboard URIs: {custom_container_training_job.web_access_uris}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9RDh5CzNywIA"
},
"source": [
"The interactive shell has the key with the format \"workerpool0-0\", while the dashboard uri has the key with the format \"workerpool0-0:\" + port number (workerpool0-0:8888 in this example). On the page for your Custom Job in the Cloud Console UI, you can also \"Launch web terminal\" for \"workerpool0-0\" for web access, or click \"Launch web terminal\" for \"workerpool0-0:\" + port number for dashboard access.\n",
"\n",
"Note that you can only access an interactive shell and dashboard while the job is running. If you don't see Launch web terminal in the UI or the URIs in the output of the Web Access and Dashboard URIs command, this might be because Vertex AI hasn't started running your job yet, or because the job has already finished or failed. If the job's Status is Queued or Pending, wait a minute; then try refreshing the page, or trying the command again."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "tVktIbToRpmR"
},
"source": [
"### Access the Dask dashboard"
"### 2. Run a CustomContainerTraining Job with gcloud"
]
},
{
@@ -917,7 +1014,7 @@
"id": "uVvxLj8GRsM6"
},
"source": [
"You can also create a training job with gcloud command. With gcloud command, you can specify the field enableWebAccess and enableDashboardAccess. enableWebAccess enables the interactive shell for the job and enableDashboardAccess allows the dask dashboard to be accessed."
"You can also create a training job with the gcloud command. With the gcloud command, you can specify the field enableWebAccess and enableDashboardAccess. The enableWebAccess enables the interactive shell for the job and enableDashboardAccess allows the dask dashboard to be accessed."
]
},
{
@@ -975,10 +1072,16 @@
{
"cell_type": "markdown",
"metadata": {
"id": "onb40Ge0SVKh"
"id": "HAYihHT9ff9q"
},
"source": [
"Once the job is created. You can use the output `gcloud ai custom-jobs describe` command to print the field webAccessUris. The interactive shell has the key with the format \"workerpool0-0\", while the dashboard uri has the key with the format \"workerpool0-0:\" + port number. Note: You have to access the links while the job is running."
"#### Access the dashboard and interactive shell for a gcloud custom job\n",
"\n",
"Once the job is created, you can access the web access URI and dashboard access URI by using the `gcloud ai custom-jobs describe` command to print the field webAccessUris. The interactive shell has the key with the format \"workerpool0-0\", while the dashboard uri has the key with the format \"workerpool0-0:\" + port number (workerpool0-0:8888 in this example).\n",
"\n",
"You also can find the links in the Cloud Console UI. In the Cloud Console UI, in the Vertex AI section, go to Training and then Custom Jobs. Click on the name of your custom training job. On the page for your job, click \"Launch web terminal\" for \"workerpool0-0\" for web access, or click \"Launch web terminal\" for \"workerpool0-0:\" + port number for dashboard access.\n",
"\n",
"Note that you can only access an interactive shell and dashboard while the job is running. If you don't see Launch web terminal in the UI or the URIs in the output of the gcloud command, this might be because Vertex AI hasn't started running your job yet, or because the job has already finished or failed. If the job's Status is Queued or Pending, wait a minute; then try refreshing the page, or trying the gcloud command again."
]
},
{
@@ -1098,6 +1201,9 @@
},
"outputs": [],
"source": [
"import logging\n",
"import traceback\n",
"\n",
"# Set this to true only if you'd like to delete your bucket\n",
"delete_bucket = False\n",
"\n",
@@ -1106,7 +1212,11 @@
"if delete_bucket or os.getenv(\"IS_TESTING\"):\n",
" ! gsutil rm -r $BUCKET_URI\n",
"\n",
"custom_container_training_job.delete()"
"try:\n",
" custom_container_training_job.delete()\n",
"except Exception as e:\n",
" logging.error(traceback.format_exc())\n",
" print(e)"
]
}
],
+2 -2
View File
@@ -55,7 +55,7 @@ The steps performed include:
* Model with BigQuery and the ARIMA model
* Evaluate the model
* Evaluate the model results using BigQuery ML (on training data)
* Evalute the model results - MAE, MAPE, MSE, RMSE (on test data)
* Evaluate the model results - MAE, MAPE, MSE, RMSE (on test data)
* Use the executor feature
```
@@ -107,7 +107,7 @@ The steps performed include:
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Workbench](https://cloud.google.com/vertex-ai/docs/workbench/introduction).
&nbsp;&nbsp;&nbsp;Learn more about [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
&nbsp;&nbsp;&nbsp;Learn more about [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training).
[Churn prediction for game developers using Google Analytics 4 and BigQuery ML](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/workbench/gaming_churn_prediction/churn_prediction_for_game_developers.ipynb)
@@ -89,7 +89,7 @@
"* Model with BigQuery and the ARIMA model\n",
"* Evaluate the model\n",
"* Evaluate the model results using BigQuery ML (on training data)\n",
"* Evalute the model results - MAE, MAPE, MSE, RMSE (on test data)\n",
"* Evaluate the model results - MAE, MAPE, MSE, RMSE (on test data)\n",
"* Use the executor feature"
]
},
@@ -63,7 +63,7 @@
"\n",
"This tutorial shows you how to build, deploy, and analyze predictions from a simple [random forest](https://en.wikipedia.org/wiki/Random_forest) model using tools like scikit-learn, Vertex AI, and the [What-IF Tool (WIT)](https://cloud.google.com/ai-platform/prediction/docs/using-what-if-tool) on a synthetic fraud transaction dataset to solve a financial fraud detection problem.\n",
"\n",
"Learn more about [Vertex AI Workbench](https://cloud.google.com/vertex-ai/docs/workbench/introduction) and [Vertex AI Training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
"Learn more about [Vertex AI Workbench](https://cloud.google.com/vertex-ai/docs/workbench/introduction) and [Custom training](https://cloud.google.com/vertex-ai/docs/training/custom-training)."
]
},
{