From 2457adadcf07a28be793ba3025e45ab11beb4cd6 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 12:58:25 -0700 Subject: [PATCH 01/77] Edits for training paths, fixing weird casing --- site/training/program/learning-paths.qmd | 26 ++++++++++++------------ 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 5de373bb44..4d76d333c0 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -51,7 +51,7 @@ As a developer who is new to ValidMind, learn how to generate model documentatio :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Initialize the ValidMind Library +#### Module 1
Set up the ValidMind Library - Install the ValidMind Library - Initialize your development environment @@ -61,7 +61,7 @@ As a developer who is new to ValidMind, learn how to generate model documentatio ::: ::: {.w-50-ns} -#### Module 2
Start Documenting & Testing +#### Module 2
Start the model development process - Initialize your datasets - Run tabular data tests @@ -77,7 +77,7 @@ As a developer who is new to ValidMind, learn how to generate model documentatio :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Implement Custom Tests +#### Module 3
Integrate custom tests - Create a confusion matrix plot - Add parameters to custom tests @@ -88,7 +88,7 @@ As a developer who is new to ValidMind, learn how to generate model documentatio ::: ::: {.w-50-ns} -#### Module 4
Finalize Testing & Documentation +#### Module 4
Finalize testing & documentation - Include custom test results in your documentation - Viewing and updating the configuration for the entire model documentation template @@ -218,7 +218,7 @@ As an administrator who is new to ValidMind, learn how to onboard your organizat ::: ::: {.w-50-ns} -#### Module 2
User Management +#### Module 2
User management - Managing roles, permissions, and groups - Mapping users to groups and roles @@ -236,7 +236,7 @@ As an administrator who is new to ValidMind, learn how to onboard your organizat ::: ::: {.w-50-ns} -#### Module 4
Templates & Model Inventory +#### Module 4
Templates & inventory fields - Customize templates - Configure model inventory fields @@ -278,7 +278,7 @@ As a monitoring user who is new to ValidMind, learn how to generate ongoing moni :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Ongoing Monitoring of Models +#### Module 1
Getting started with ongoing monitoring - How monitoring integrates with model documentation - Enable monitoring for a model @@ -286,7 +286,7 @@ As a monitoring user who is new to ValidMind, learn how to generate ongoing moni ::: ::: {.w-50-ns} -#### Module 2
Monitoring Setup +#### Module 2
Set up monitoring - Load the reference and monitoring datasets - Load the production model @@ -299,7 +299,7 @@ As a monitoring user who is new to ValidMind, learn how to generate ongoing moni :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Scheduling & Execution +#### Module 3
Scheduling & execution - Run the ongoing monitoring tests - Conduct target and feature drift testing @@ -354,7 +354,7 @@ As a new user of ValidMind, learn how to navigate the platform's key features an :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Getting Started with the Model Inventory +#### Module 1
Getting started with the model inventory - Understand how the model inventory serves as your central hub for registered models - Learn to register new models with appropriate templates @@ -363,7 +363,7 @@ As a new user of ValidMind, learn how to navigate the platform's key features an ::: ::: {.w-50-ns} -#### Module 2
Model Documentation and Testing +#### Module 2
Model documentation & testing - Navigate the documentation templates and structure - Explore the library of 250+ out-of-the-box tests @@ -376,7 +376,7 @@ As a new user of ValidMind, learn how to navigate the platform's key features an :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Validation and Collaboration +#### Module 3
Validation & collaboration - Create and manage validation reports - Learn to assess compliance and link evidence @@ -385,7 +385,7 @@ As a new user of ValidMind, learn how to navigate the platform's key features an ::: ::: {.w-50-ns} -#### Module 4
Monitoring and Governance +#### Module 4
Monitoring & governance - Set up ongoing monitoring for production models - Track model performance and identify data drift From cf4f781871e79a2bc7be256c3357bc721cc33661 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 13:39:19 -0700 Subject: [PATCH 02/77] Edits to Developer Fundamentals path --- site/training/program/learning-paths.qmd | 53 +++++++++++------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 4d76d333c0..705237ca71 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -51,25 +51,23 @@ As a developer who is new to ValidMind, learn how to generate model documentatio :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Set up the ValidMind Library +#### Module 1
Using {{< var vm.product >}} for model development -- Install the ValidMind Library -- Initialize your development environment -- Register a model -- Get your code snippet -- Work with documentation templates +- Install the {{< var validmind.developer >}} in your environment +- Register a model in the {{< var validmind.platform >}} +- Connect to your model in the {{< var validmind.platform >}} +- Preview your model's documentation template +- Explore available ValidMind tests ::: ::: {.w-50-ns} -#### Module 2
Start the model development process +#### Module 2
Learning to run tests -- Initialize your datasets -- Run tabular data tests -- Utilize test output -- Document results based on datasets -- Test your model - -- Run the model evaluation tests +- Identify relevant tests to run from {{< var vm.product >}}'s test vault +- Initialize datasets & models for use with the {{< var validmind.developer >}} +- Run and log out-of-the-box tests for new and existing models +- Utilize the output from tests you've run +- Insert test results into your model's documentation ::: :::: @@ -77,22 +75,19 @@ As a developer who is new to ValidMind, learn how to generate model documentatio :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Integrate custom tests +#### Module 3
Implementing custom tests -- Create a confusion matrix plot -- Add parameters to custom tests -- Pass parameters to custom tests -- Log the confusion matrix results -- Using external test providers -- Initializing a local test provider +- Implement, run, and log custom inline and reusable tests +- Refresh your template to include inserted test-driven blocks +- Configure your template to include custom tests ::: ::: {.w-50-ns} -#### Module 4
Finalize testing & documentation +#### Module 4
Finalizing model documentation -- Include custom test results in your documentation -- Viewing and updating the configuration for the entire model documentation template -- Update the config +- Refine your model documentation +- Submit your model documentation for approval +- Track changes and other updates to your model ::: :::: @@ -137,7 +132,7 @@ As a validator who is new to ValidMind, learn how to review model documentation, :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Reviewing & Analyzing Models +#### Module 1
Using {{< var vm.product >}} for model validation - Access validation reports - Preview templates for validation reports @@ -145,8 +140,7 @@ As a validator who is new to ValidMind, learn how to review model documentation, ::: ::: {.w-50-ns} -#### Module 2
Reviewing & Analyzing Models - +#### Module 2
Reviewing & analyzing models - Reviewing model documentation - Analyzing test results - Add findings @@ -166,7 +160,10 @@ As a validator who is new to ValidMind, learn how to review model documentation, ::: ::: {.w-50-ns} +#### Module 4
Issue resolution & submission +- Tracking issue resolution +- Submitting validation reports for approval ::: :::: From e9036e60e198b8be2df3118b46d93a674364a302 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 13:57:17 -0700 Subject: [PATCH 03/77] Edits to Validator Fundamentals path --- site/training/program/learning-paths.qmd | 34 +++++++++++++----------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 705237ca71..c90e76742b 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -134,18 +134,18 @@ As a validator who is new to ValidMind, learn how to review model documentation, ::: {.w-50-ns} #### Module 1
Using {{< var vm.product >}} for model validation -- Access validation reports -- Preview templates for validation reports -- How to work with validation reports +- Install the {{< var validmind.developer >}} in your environment +- Connect to the champion model in the {{< var validmind.platform >}} +- Preview the model's validation report template +- Explore the validation report draft in the {{< var validmind.platform >}} ::: ::: {.w-50-ns} -#### Module 2
Reviewing & analyzing models -- Reviewing model documentation -- Analyzing test results -- Add findings -- Link evidence -- Assessing compliance +#### Module 2
Developing potential challenger models + +- Set up two challenger models as a basis for your testing +- Initialize datasets & models for use with the {{< var validmind.developer >}} +- Leverage {{< var vm.product >}}'s flexible prompting to guide text generation & insights from testing ::: :::: @@ -153,17 +153,21 @@ As a validator who is new to ValidMind, learn how to review model documentation, :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Issue Resolution & Submission +#### Module 3
Learning to run validation tests -- Tracking issue resolution -- Submitting validation reports for approval +- Identify relevant tests to run from {{< var vm.product >}}'s test vault +- Run and log out-of-the-box and custom tests +- Adjust a {{< var vm.product >}} test for your use case +- Re-run tests completed by the model development team ::: ::: {.w-50-ns} -#### Module 4
Issue resolution & submission +#### Module 4
Finalizing validation reports -- Tracking issue resolution -- Submitting validation reports for approval +- Insert test results as evidence into your validation report +- Work with model findings +- Assess the compliance of the champion model +- Submit your validation report for approval ::: :::: From 39731b1ea69b25d48ab86ffdd89c10a07b62738c Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 13:59:26 -0700 Subject: [PATCH 04/77] Applying the variable where it was forgotten --- site/training/program/learning-paths.qmd | 16 ++++++++-------- site/training/program/program-overview.qmd | 6 +++--- site/training/program/sample-training-plan.qmd | 6 +++--- site/training/program/training-faq.qmd | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index c90e76742b..433e6daf72 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -16,7 +16,7 @@ Develop role-based expertise for your entire organization. ### Developer Fundamentals -As a developer who is new to ValidMind, learn how to generate model documentation, add your own tests, edit the content, and then submit your documentation for approval. +As a developer who is new to {{< var vm.product >}}, learn how to generate model documentation, add your own tests, edit the content, and then submit your documentation for approval. ::: {.attn .hidden} :::: {.flex .flex-wrap .justify-around} @@ -57,7 +57,7 @@ As a developer who is new to ValidMind, learn how to generate model documentatio - Register a model in the {{< var validmind.platform >}} - Connect to your model in the {{< var validmind.platform >}} - Preview your model's documentation template -- Explore available ValidMind tests +- Explore available {{< var vm.product >}} tests ::: ::: {.w-50-ns} @@ -95,7 +95,7 @@ As a developer who is new to ValidMind, learn how to generate model documentatio ### Validator Fundamentals -As a validator who is new to ValidMind, learn how to review model documentation, prepare your validation report, track issues, and submit your report for approval. +As a validator who is new to {{< var vm.product >}}, learn how to review model documentation, prepare your validation report, track issues, and submit your report for approval. ::: {.attn .hidden} @@ -175,7 +175,7 @@ As a validator who is new to ValidMind, learn how to review model documentation, ### Administrator Fundamentals -As an administrator who is new to ValidMind, learn how to onboard your organization, manage users and roles, and manage permissions for specific roles. +As an administrator who is new to {{< var vm.product >}}, learn how to onboard your organization, manage users and roles, and manage permissions for specific roles. ::: {.attn .hidden} @@ -248,7 +248,7 @@ As an administrator who is new to ValidMind, learn how to onboard your organizat ### Monitoring Fundamentals
[coming soon]{.smallercaps .pink} -As a monitoring user who is new to ValidMind, learn how to generate ongoing monitoring documentation, schedule monitoring runs, and review the results. +As a monitoring user who is new to {{< var vm.product >}}, learn how to generate ongoing monitoring documentation, schedule monitoring runs, and review the results. ::: {.attn .hidden} :::: {.flex .flex-wrap .justify-around} @@ -316,11 +316,11 @@ As a monitoring user who is new to ValidMind, learn how to generate ongoing moni ## Standalone courses -Useful skills for anyone who wants to use ValidMind. +Useful skills for anyone who wants to use {{< var vm.product >}}. ### {{< var vm.product >}} Guided Tour
[coming soon]{.smallercaps .pink} -As a new user of ValidMind, learn how to navigate the platform's key features and understand how they work together to support AI governance and compliance with regulations like the EU AI Act. +As a new user of {{< var vm.product >}}, learn how to navigate the platform's key features and understand how they work together to support AI governance and compliance with regulations like the EU AI Act. ::: {.attn .hidden} @@ -399,7 +399,7 @@ As a new user of ValidMind, learn how to navigate the platform's key features an ### {{< var vm.product >}} Content Features
[coming soon]{.smallercaps .pink} -As a content author who is new to ValidMind, learn how to use the content features to enhance my documentation, and to enable or disable text generation with GenAI. +As a content author who is new to {{< var vm.product >}}, learn how to use the content features to enhance my documentation, and to enable or disable text generation with GenAI. ::: {.attn .hidden} diff --git a/site/training/program/program-overview.qmd b/site/training/program/program-overview.qmd index 762f85adf6..1ba3adccd4 100644 --- a/site/training/program/program-overview.qmd +++ b/site/training/program/program-overview.qmd @@ -20,7 +20,7 @@ listing: - sample-training-plan.qmd --- -Empower your team with ValidMind's comprehensive training program, designed to accelerate adoption and maximize value. +Empower your team with {{< var vm.product >}}'s comprehensive training program, designed to accelerate adoption and maximize value. ::: {.attn} ## {{< fa check >}} Training that delivers @@ -35,7 +35,7 @@ Our training program is built on three pillars: ## Invest in your success -ValidMind's training program ensures your organization can: +{{< var vm.product >}}'s training program ensures your organization can: - Accelerate time-to-value with structured learning paths - Build internal expertise across key roles @@ -134,6 +134,6 @@ Our training develops competency across your entire model risk management team: ::: {.feature} ## Get started -Ready to begin your ValidMind training journey? Contact your customer success representative to create a customized training plan for your organization. +Ready to begin your {{< var vm.product >}} training journey? Contact your customer success representative to create a customized training plan for your organization. ::: diff --git a/site/training/program/sample-training-plan.qmd b/site/training/program/sample-training-plan.qmd index 03162919a7..5701dcefaa 100644 --- a/site/training/program/sample-training-plan.qmd +++ b/site/training/program/sample-training-plan.qmd @@ -4,7 +4,7 @@ sidebar: validmind-training description: "Sample 3-week training plan for enterprise deployment with enhanced support options." --- -This enterprise training plan demonstrates how ValidMind can be deployed across a large organization using both standard and enhanced training options. The plan includes comprehensive role-based training, custom workshops, and ongoing support to ensure successful adoption. +This enterprise training plan demonstrates how {{< var vm.product >}} can be deployed across a large organization using both standard and enhanced training options. The plan includes comprehensive role-based training, custom workshops, and ongoing support to ensure successful adoption. ## Timeline overview @@ -64,7 +64,7 @@ This enterprise training plan demonstrates how ValidMind can be deployed across | Module | Format | Duration | Delivery | |--------|---------|----------|-----------| -| ValidMind 101 | Live + Labs | 2 hours | Regional tracks | +| {{< var vm.product >}} 101 | Live + Labs | 2 hours | Regional tracks | | Developer foundations | Interactive | 4 hours | Role-specific | | Validator essentials | Interactive | 4 hours | Role-specific | | Admin core skills | Interactive | 4 hours | Role-specific | @@ -125,6 +125,6 @@ This enterprise training plan demonstrates how ValidMind can be deployed across 3. Complete pre-training assessments 4. Begin foundation phase rollout -Contact your ValidMind representative to customize this plan for your organization's specific needs and timeline requirements. +Contact your {{< var vm.product >}} representative to customize this plan for your organization's specific needs and timeline requirements. ::: \ No newline at end of file diff --git a/site/training/program/training-faq.qmd b/site/training/program/training-faq.qmd index 481897b9c4..e0ba5ebfe6 100644 --- a/site/training/program/training-faq.qmd +++ b/site/training/program/training-faq.qmd @@ -3,7 +3,7 @@ title: "Where do I find … ?" sidebar: validmind-training --- -Here's what we have been asked about ValidMind during training sessions. +Here's what we have been asked about {{< var vm.product >}} during training sessions. ## Answers by topic From 778151db0d5fb91be83ed56d6db2615c2eccf275 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 14:04:44 -0700 Subject: [PATCH 05/77] More edits to paths --- site/training/program/learning-paths.qmd | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 433e6daf72..c30dfcdc18 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -212,7 +212,7 @@ As an administrator who is new to {{< var vm.product >}}, learn how to onboard y :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Onboarding +#### Module 1
{{< var validmind.platform >}} onboarding - Setting up an organization - Inviting users via email @@ -230,9 +230,9 @@ As an administrator who is new to {{< var vm.product >}}, learn how to onboard y :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Workflows +#### Module 3
Lifecycle statuses & workflows -- Configuring workflows +- Configuring statuses & workflows - Assigning users to workflows ::: @@ -279,7 +279,7 @@ As a monitoring user who is new to {{< var vm.product >}}, learn how to generate :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Getting started with ongoing monitoring +#### Module 1
Using {{< var vm.product >}} for ongoing monitoring - How monitoring integrates with model documentation - Enable monitoring for a model @@ -287,7 +287,7 @@ As a monitoring user who is new to {{< var vm.product >}}, learn how to generate ::: ::: {.w-50-ns} -#### Module 2
Set up monitoring +#### Module 2
Setting up monitoring - Load the reference and monitoring datasets - Load the production model @@ -355,7 +355,7 @@ As a new user of {{< var vm.product >}}, learn how to navigate the platform's ke :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Getting started with the model inventory +#### Module 1
The {{< var vm.product >}} model inventory - Understand how the model inventory serves as your central hub for registered models - Learn to register new models with appropriate templates From 1fc8f669ea57cdbc496484f51e99590834ea4c7d Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:55:56 -0700 Subject: [PATCH 06/77] More edits to paths x2 --- site/training/program/learning-paths.qmd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index c30dfcdc18..40534ee1e4 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -16,7 +16,7 @@ Develop role-based expertise for your entire organization. ### Developer Fundamentals -As a developer who is new to {{< var vm.product >}}, learn how to generate model documentation, add your own tests, edit the content, and then submit your documentation for approval. +Learn how to use {{< var vm.product >}} as a **developer** to generate model documentation, automate testing, and track your model's progress through the model lifecycle. ::: {.attn .hidden} :::: {.flex .flex-wrap .justify-around} @@ -95,7 +95,7 @@ As a developer who is new to {{< var vm.product >}}, learn how to generate model ### Validator Fundamentals -As a validator who is new to {{< var vm.product >}}, learn how to review model documentation, prepare your validation report, track issues, and submit your report for approval. +Learn how to use {{< var vm.product >}} as a **validator** to generate validation reports, automate testing, and collaborate with your model development team. ::: {.attn .hidden} @@ -137,7 +137,7 @@ As a validator who is new to {{< var vm.product >}}, learn how to review model d - Install the {{< var validmind.developer >}} in your environment - Connect to the champion model in the {{< var validmind.platform >}} - Preview the model's validation report template -- Explore the validation report draft in the {{< var validmind.platform >}} +- Review model documentation in the {{< var validmind.platform >}} ::: ::: {.w-50-ns} @@ -175,7 +175,7 @@ As a validator who is new to {{< var vm.product >}}, learn how to review model d ### Administrator Fundamentals -As an administrator who is new to {{< var vm.product >}}, learn how to onboard your organization, manage users and roles, and manage permissions for specific roles. +Learn how to use {{< var vm.product >}} as an **administrator** to onboard your organization, manage users, roles, and permissions, and customize the {{< var vm.platform >}} for your institution's requirements. ::: {.attn .hidden} @@ -248,7 +248,7 @@ As an administrator who is new to {{< var vm.product >}}, learn how to onboard y ### Monitoring Fundamentals
[coming soon]{.smallercaps .pink} -As a monitoring user who is new to {{< var vm.product >}}, learn how to generate ongoing monitoring documentation, schedule monitoring runs, and review the results. +Learn how to use {{< var vm.product >}} to manage the **ongoing monitoring** of your models with ongoing monitoring plans, scheduled monitoring runs, and tracked metrics over time. ::: {.attn .hidden} :::: {.flex .flex-wrap .justify-around} From 572b32579aa783ea4c396ffce4a56f45cb020ab7 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 16:34:36 -0700 Subject: [PATCH 07/77] Modifying Makefile to make copy of new notebooks --- site/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/site/Makefile b/site/Makefile index 11ed08e6b0..2842901fe4 100644 --- a/site/Makefile +++ b/site/Makefile @@ -47,6 +47,9 @@ notebooks: @rm -f notebooks.zip @rm -rf $(DEST_DIR_NB)/ && mkdir -p $(DEST_DIR_NB) @cp -r $(SRC_DIR)/notebooks/. $(DEST_DIR_NB)/ + @echo "Duplicating all files from notebooks/tutorials/model_development/ for execution" + @mkdir -p notebooks/EXECUTED/model_development/ + @cp -r notebooks/tutorials/model_development/* notebooks/EXECUTED/model_development/ @echo "Duplicating notebooks/tutorials/intro_for_model_developers.ipynb for execution" @cp notebooks/tutorials/intro_for_model_developers.ipynb notebooks/tutorials/intro_for_model_developers_EXECUTED.ipynb @echo "Copying LICENSE into notebooks ..." From a43a96352cdfa0a8b9d17a22bdfc5ca0bd9513ef Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 16:36:58 -0700 Subject: [PATCH 08/77] Pulled in latest from validmind-library --- site/notebooks.zip | Bin 10258062 -> 10891943 bytes .../101-set_up_validmind.ipynb | 408 ++++++++ .../102-start_development_process.ipynb | 950 +++++++++++++++++ .../103-integrate_custom_tests.ipynb | 986 ++++++++++++++++++ .../104-finalize_testing_documentation.ipynb | 966 +++++++++++++++++ .../model_development/add-content-block.gif | Bin 0 -> 114727 bytes .../high-pearson-correlation-block.png | Bin 0 -> 280332 bytes .../model_development/my_tests_directory.png | Bin 0 -> 44368 bytes .../selecting-confusion-matrix-test.png | Bin 0 -> 128730 bytes ...electing-high-pearson-correlation-test.png | Bin 0 -> 128050 bytes .../101-set_up_validmind.ipynb | 6 - .../102-start_development_process.ipynb | 9 - site/python-docs.zip | Bin 2728097 -> 2728097 bytes 13 files changed, 3310 insertions(+), 15 deletions(-) create mode 100644 site/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb create mode 100644 site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb create mode 100644 site/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb create mode 100644 site/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.ipynb create mode 100644 site/notebooks/EXECUTED/model_development/add-content-block.gif create mode 100644 site/notebooks/EXECUTED/model_development/high-pearson-correlation-block.png create mode 100644 site/notebooks/EXECUTED/model_development/my_tests_directory.png create mode 100644 site/notebooks/EXECUTED/model_development/selecting-confusion-matrix-test.png create mode 100644 site/notebooks/EXECUTED/model_development/selecting-high-pearson-correlation-test.png diff --git a/site/notebooks.zip b/site/notebooks.zip index 3daf454cabfe04d69f6a673edae8c3d7c66beae1..972005fa8d8a0061560ae2373c70381968dedded 100644 GIT binary patch delta 8017 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 diff --git a/site/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb b/site/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb new file mode 100644 index 0000000000..9a5936350c --- /dev/null +++ b/site/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb @@ -0,0 +1,408 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "97710f2a", + "metadata": {}, + "source": [ + "# ValidMind for model development — 101 Set up the ValidMind Library\n", + "\n", + "Learn how to use ValidMind for your end-to-end model documentation process based on common model development scenarios with our series of four introductory notebooks. This first notebook walks you through the initial setup of the ValidMind Library.\n", + "\n", + "These notebooks use a binary classification model as an example, but the same principles shown here apply to other model types." + ] + }, + { + "cell_type": "markdown", + "id": "d3bb0ff8", + "metadata": {}, + "source": [ + "::: {.content-hidden when-format=\"html\"}\n", + "## Contents \n", + "- [Introduction](#toc1_) \n", + "- [About ValidMind](#toc2_) \n", + " - [Before you begin](#toc2_1_) \n", + " - [New to ValidMind?](#toc2_2_) \n", + " - [Key concepts](#toc2_3_) \n", + "- [Initializing the ValidMind Library](#toc3_) \n", + " - [Install the ValidMind Library](#toc3_1_) \n", + " - [Initialize the ValidMind Library](#toc3_2_) \n", + " - [Get your code snippet](#toc3_2_1_) \n", + "- [Getting to know ValidMind](#toc4_) \n", + " - [Preview the documentation template](#toc4_1_) \n", + " - [Explore available tests](#toc4_2_) \n", + "- [Upgrade ValidMind](#toc5_) \n", + "- [In summary](#toc6_) \n", + "- [Next steps](#toc7_) \n", + " - [Start the model development process](#toc7_1_) \n", + "\n", + ":::\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "d78e3887", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Introduction\n", + "\n", + "Model development aims to produce a fit-for-purpose *champion model* by conducting thorough testing and analysis, supporting the capabilities of the model with evidence in the form of documentation and test results. Model documentation should be clear and comprehensive, ideally following a structure or template covering all aspects of compliance with model risk regulation.\n", + "\n", + "A *binary classification model* is a type of predictive model used in churn analysis to identify customers who are likely to leave a service or subscription by analyzing various behavioral, transactional, and demographic factors.\n", + "\n", + "- This model helps businesses take proactive measures to retain at-risk customers by offering personalized incentives, improving customer service, or adjusting pricing strategies.\n", + "- Effective validation of a churn prediction model ensures that businesses can accurately identify potential churners, optimize retention efforts, and enhance overall customer satisfaction while minimizing revenue loss." + ] + }, + { + "cell_type": "markdown", + "id": "f40a5e0a", + "metadata": {}, + "source": [ + "\n", + "\n", + "## About ValidMind\n", + "\n", + "ValidMind is a suite of tools for managing model risk, including risk associated with AI and statistical models. \n", + "\n", + "You use the ValidMind Library to automate documentation and validation tests, and then use the ValidMind Platform to collaborate on model documentation. Together, these products simplify model risk management, facilitate compliance with regulations and institutional standards, and enhance collaboration between yourself and model validators." + ] + }, + { + "cell_type": "markdown", + "id": "12af6ba2", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Before you begin\n", + "\n", + "This notebook assumes you have basic familiarity with Python, including an understanding of how functions work. If you are new to Python, you can still run the notebook but we recommend further familiarizing yourself with the language. \n", + "\n", + "If you encounter errors due to missing modules in your Python environment, install the modules with `pip install`, and then re-run the notebook. For more help, refer to [Installing Python Modules](https://docs.python.org/3/installing/index.html)." + ] + }, + { + "cell_type": "markdown", + "id": "5f9cc87c", + "metadata": {}, + "source": [ + "\n", + "\n", + "### New to ValidMind?\n", + "\n", + "If you haven't already seen our documentation on the [ValidMind Library](https://docs.validmind.ai/developer/validmind-library.html), we recommend you begin by exploring the available resources in this section. There, you can learn more about documenting models, find code samples, or read our developer reference.\n", + "\n", + "
For access to all features available in this notebook, create a free ValidMind account.\n", + "

\n", + "Signing up is FREE — Register with ValidMind
" + ] + }, + { + "cell_type": "markdown", + "id": "31c5cde0", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Key concepts\n", + "\n", + "**Model documentation**: A structured and detailed record pertaining to a model, encompassing key components such as its underlying assumptions, methodologies, data sources, inputs, performance metrics, evaluations, limitations, and intended uses. It serves to ensure transparency, adherence to regulatory requirements, and a clear understanding of potential risks associated with the model’s application.\n", + "\n", + "**Documentation template**: Functions as a test suite and lays out the structure of model documentation, segmented into various sections and sub-sections. Documentation templates define the structure of your model documentation, specifying the tests that should be run, and how the results should be displayed.\n", + "\n", + "**Tests**: A function contained in the ValidMind Library, designed to run a specific quantitative test on the dataset or model. Tests are the building blocks of ValidMind, used to evaluate and document models and datasets, and can be run individually or as part of a suite defined by your model documentation template.\n", + "\n", + "**Metrics**: A subset of tests that do not have thresholds. In the context of this notebook, metrics and tests can be thought of as interchangeable concepts.\n", + "\n", + "**Custom metrics**: Custom metrics are functions that you define to evaluate your model or dataset. These functions can be registered with the ValidMind Library to be used in the ValidMind Platform.\n", + "\n", + "**Inputs**: Objects to be evaluated and documented in the ValidMind Library. They can be any of the following:\n", + "\n", + " - **model**: A single model that has been initialized in ValidMind with [`vm.init_model()`](https://docs.validmind.ai/validmind/validmind.html#init_model).\n", + " - **dataset**: Single dataset that has been initialized in ValidMind with [`vm.init_dataset()`](https://docs.validmind.ai/validmind/validmind.html#init_dataset).\n", + " - **models**: A list of ValidMind models - usually this is used when you want to compare multiple models in your custom metric.\n", + " - **datasets**: A list of ValidMind datasets - usually this is used when you want to compare multiple datasets in your custom metric. (Learn more: [Run tests with multiple datasets](https://docs.validmind.ai/notebooks/how_to/run_tests_that_require_multiple_datasets.html))\n", + "\n", + "**Parameters**: Additional arguments that can be passed when running a ValidMind test, used to pass additional information to a metric, customize its behavior, or provide additional context.\n", + "\n", + "**Outputs**: Custom metrics can return elements like tables or plots. Tables may be a list of dictionaries (each representing a row) or a pandas DataFrame. Plots may be matplotlib or plotly figures.\n", + "\n", + "**Test suites**: Collections of tests designed to run together to automate and generate model documentation end-to-end for specific use-cases.\n", + "\n", + "Example: the [`classifier_full_suite`](https://docs.validmind.ai/validmind/validmind/test_suites/classifier.html#ClassifierFullSuite) test suite runs tests from the [`tabular_dataset`](https://docs.validmind.ai/validmind/validmind/test_suites/tabular_datasets.html) and [`classifier`](https://docs.validmind.ai/validmind/validmind/test_suites/classifier.html) test suites to fully document the data and model sections for binary classification model use-cases." + ] + }, + { + "cell_type": "markdown", + "id": "1c06378f", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Initializing the ValidMind Library\n", + "\n", + "The ValidMind Library provides a rich collection of documentation tools and test suites, from documenting descriptions of datasets to validation and testing of models using a variety of open-source testing frameworks." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Install the ValidMind Library\n", + "\n", + "
Recommended Python versions\n", + "

\n", + "Python 3.8 <= x <= 3.11
\n", + "\n", + "To install the library:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8883bbc3", + "metadata": {}, + "outputs": [], + "source": [ + "%pip install -q validmind" + ] + }, + { + "cell_type": "markdown", + "id": "780b6b39", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Initialize the ValidMind Library\n", + "\n", + "ValidMind generates a unique _code snippet_ for each registered model to connect with your developer environment. You initialize the ValidMind Library with this code snippet, which ensures that your documentation and tests are uploaded to the correct model when you run the notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Get your code snippet\n", + "\n", + "1. In a browser, [log in to ValidMind](https://docs.validmind.ai/guide/configuration/log-in-to-validmind.html).\n", + "\n", + "2. In the left sidebar, navigate to **Inventory** and click **+ Register Model**.\n", + "\n", + "3. Enter the model details and click **Continue**. ([Need more help?](https://docs.validmind.ai/guide/model-inventory/register-models-in-inventory.html))\n", + "\n", + " For example, to register a model for use with this notebook, select:" + ] + }, + { + "cell_type": "markdown", + "id": "d00f6f07", + "metadata": {}, + "source": [ + " - Documentation template: `Binary classification`\n", + " - Use case: `Marketing/Sales - Attrition/Churn Management`" + ] + }, + { + "cell_type": "markdown", + "id": "install-credentials-50e67128-2eb5-470a-aeaf-1c692fd3f847", + "metadata": {}, + "source": [ + " You can fill in other options according to your preference.\n", + " \n", + "4. Go to **Getting Started** and click **Copy snippet to clipboard**.\n", + "\n", + "Next, [load your model identifier credentials from an `.env` file](https://docs.validmind.ai/developer/model-documentation/store-credentials-in-env-file.html) or replace the placeholder with your own code snippet:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5f22e91d", + "metadata": {}, + "outputs": [], + "source": [ + "# Load your model identifier credentials from an `.env` file\n", + "\n", + "%load_ext dotenv\n", + "%dotenv .env\n", + "\n", + "# Or replace with your code snippet\n", + "\n", + "import validmind as vm\n", + "\n", + "vm.init(\n", + " # api_host=\"...\",\n", + " # api_key=\"...\",\n", + " # api_secret=\"...\",\n", + " # model=\"...\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "c3186121", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Getting to know ValidMind" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Preview the documentation template\n", + "\n", + "Let's verify that you have connected the ValidMind Library to the ValidMind Platform and that the appropriate *template* is selected for your model. A template predefines sections for your model documentation and provides a general outline to follow, making the documentation process much easier.\n", + "\n", + "You will upload documentation and test results unique to your model based on this template later on. For now, **take a look at the default structure that the template provides with [the `vm.preview_template()` function](https://docs.validmind.ai/validmind/validmind.html#preview_template)** from the ValidMind library and note the empty sections:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32ab4cac", + "metadata": {}, + "outputs": [], + "source": [ + "vm.preview_template()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Explore available tests\n", + "\n", + "Next, let's explore the list of all available tests in the ValidMind Library with [the `vm.tests.list_tests()` function](https://docs.validmind.ai/validmind/validmind/tests.html#list_tests) — we'll learn how to run tests shortly. \n", + "\n", + "You can see that the documentation template for this model has references to some of the **test `ID`s used to run tests listed below:**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "acf76128", + "metadata": {}, + "outputs": [], + "source": [ + "vm.tests.list_tests()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Upgrade ValidMind\n", + "\n", + "
After installing ValidMind, you’ll want to periodically make sure you are on the latest version to access any new features and other enhancements.
\n", + "\n", + "Retrieve the information for the currently installed version of ValidMind:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95bede03", + "metadata": {}, + "outputs": [], + "source": [ + "%pip show validmind" + ] + }, + { + "cell_type": "markdown", + "id": "540efef8", + "metadata": {}, + "source": [ + "If the version returned is lower than the version indicated in our [production open-source code](https://github.com/validmind/validmind-library/blob/prod/validmind/__version__.py), restart your notebook and run:\n", + "\n", + "```bash\n", + "%pip install --upgrade validmind\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "6a7bf101", + "metadata": {}, + "source": [ + "You may need to restart your kernel after running the upgrade package for changes to be applied." + ] + }, + { + "cell_type": "markdown", + "id": "207875f2", + "metadata": {}, + "source": [ + "\n", + "\n", + "## In summary\n", + "\n", + "In this first notebook, you learned how to:\n", + "\n", + "- [ ] Register a model within the ValidMind Platform\n", + "- [ ] Install and initialize the ValidMind Library\n", + "- [ ] Preview the documentation template for your model\n", + "- [ ] Explore the available tests offered by the ValidMind Library" + ] + }, + { + "cell_type": "markdown", + "id": "29781eb4", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Next steps" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Start the model development process\n", + "\n", + "Now that the ValidMind Library is connected to your model in the ValidMind Library with the correct template applied, we can go ahead and start the model development process: **[102 Start the model development process](102-start_development_process.ipynb)**" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ValidMind Library", + "language": "python", + "name": "validmind" + }, + "language_info": { + "name": "python", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb b/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb new file mode 100644 index 0000000000..4cdfa0247e --- /dev/null +++ b/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb @@ -0,0 +1,950 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ValidMind for model development — 102 Start the model development process\n", + "\n", + "Learn how to use ValidMind for your end-to-end model documentation process with our series of four introductory notebooks. In this second notebook, you'll run tests and investigate results, then add the results or evidence to your documentation.\n", + "\n", + "You'll become familiar with the individual tests available in ValidMind, as well as how to run them and change parameters as necessary. Using ValidMind's repository of individual tests as building blocks helps you ensure that a model is being built appropriately. \n", + "\n", + "**For a full list of out-of-the-box tests,** refer to our [Test descriptions](https://docs.validmind.ai/developer/model-testing/test-descriptions.html) or try the interactive [Test sandbox](https://docs.validmind.ai/developer/model-testing/test-sandbox.html)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "::: {.content-hidden when-format=\"html\"}\n", + "## Contents \n", + "- [Prerequisites](#toc1_) \n", + "- [Setting up](#toc2_) \n", + " - [Initialize the ValidMind Library](#toc2_1_) \n", + " - [Import sample dataset](#toc2_2_) \n", + " - [Identify qualitative tests](#toc2_3_) \n", + " - [Initialize the ValidMind datasets](#toc2_4_) \n", + "- [Running tests](#toc3_) \n", + " - [Run tabular data tests](#toc3_1_) \n", + " - [Utilize test output](#toc3_2_) \n", + "- [Documenting results](#toc4_) \n", + " - [Run and log multiple tests](#toc4_1_) \n", + " - [Run and log an individual test](#toc4_2_) \n", + " - [Add individual test results to model documentation](#toc4_2_1_) \n", + "- [Model testing](#toc5_) \n", + " - [Train simple logistic regression model](#toc5_1_) \n", + " - [Initialize model evaluation objects](#toc5_2_) \n", + " - [Assign predictions](#toc5_3_) \n", + " - [Run the model evaluation tests](#toc5_4_) \n", + "- [In summary](#toc6_) \n", + "- [Next steps](#toc7_) \n", + " - [Integrate custom tests](#toc7_1_) \n", + "\n", + ":::\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Prerequisites\n", + "\n", + "In order to log test results or evidence to your model documentation with this notebook, you'll need to first have:\n", + "\n", + "- [ ] Registered a model within the ValidMind Platform with a predefined documentation template\n", + "- [ ] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", + "\n", + "
Need help with the above steps?\n", + "

\n", + "Refer to the first notebook in this series: 101 Set up ValidMind
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Initialize the ValidMind Library\n", + "\n", + "First, let's connect up the ValidMind Library to our model we previously registered in the ValidMind Platform:\n", + "\n", + "1. In a browser, [log in to ValidMind](https://docs.validmind.ai/guide/configuration/log-in-to-validmind.html).\n", + "\n", + "2. In the left sidebar, navigate to **Inventory** and select the model you registered for this \"ValidMind for model development\" series of notebooks.\n", + "\n", + "3. Go to **Getting Started** and click **Copy snippet to clipboard**.\n", + "\n", + "Next, [load your model identifier credentials from an `.env` file](https://docs.validmind.ai/developer/model-documentation/store-credentials-in-env-file.html) or replace the placeholder with your own code snippet:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Make sure the ValidMind Library is installed\n", + "\n", + "%pip install -q validmind\n", + "\n", + "# Load your model identifier credentials from an `.env` file\n", + "\n", + "%load_ext dotenv\n", + "%dotenv .env\n", + "\n", + "# Or replace with your code snippet\n", + "\n", + "import validmind as vm\n", + "\n", + "vm.init(\n", + " # api_host=\"...\",\n", + " # api_key=\"...\",\n", + " # api_secret=\"...\",\n", + " # model=\"...\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Import sample dataset\n", + "\n", + "Then, let's import the public [Bank Customer Churn Prediction](https://www.kaggle.com/datasets/shantanudhakadd/bank-customer-churn-prediction) dataset from Kaggle. \n", + "\n", + "In our below example, note that: \n", + "\n", + "- The target column, `Exited` has a value of `1` when a customer has churned and `0` otherwise.\n", + "- The ValidMind Library provides a wrapper to automatically load the dataset as a Pandas DataFrame object." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from validmind.datasets.classification import customer_churn as demo_dataset\n", + "\n", + "print(\n", + " f\"Loaded demo dataset with: \\n\\n\\t• Target column: '{demo_dataset.target_column}' \\n\\t• Class labels: {demo_dataset.class_labels}\"\n", + ")\n", + "\n", + "raw_df = demo_dataset.load_data()\n", + "raw_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Identify qualitative tests\n", + "\n", + "Next, let's say we want to do some data quality assessments by running a few individual tests.\n", + "\n", + "Use the [`vm.tests.list_tests()` function](https://docs.validmind.ai/validmind/validmind/tests.html#list_tests) introduced by the first notebook in this series in combination with [`vm.tests.list_tags()`](https://docs.validmind.ai/validmind/validmind/tests.html#list_tags) and [`vm.tests.list_tasks()`](https://docs.validmind.ai/validmind/validmind/tests.html#list_tasks) to find which prebuilt tests are relevant for data quality assessment:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the list of available tags\n", + "sorted(vm.tests.list_tags())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the list of available task types\n", + "sorted(vm.tests.list_tasks())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can pass `tags` and `tasks` as parameters to the `vm.tests.list_tests()` function to filter the tests based on the tags and task types.\n", + "\n", + "For example, to find tests related to tabular data quality for classification models, you can call `list_tests()` like this:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vm.tests.list_tests(task=\"classification\", tags=[\"tabular_data\", \"data_quality\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Initialize the ValidMind datasets\n", + "\n", + "With the individual tests we want to run identified, the next step is to connect your data with a ValidMind `Dataset` object. **This step is always necessary every time you want to connect a dataset to documentation and produce test results through ValidMind,** but you only need to do it once per dataset.\n", + "\n", + "Initialize a ValidMind dataset object using the [`init_dataset` function](https://docs.validmind.ai/validmind/validmind.html#init_dataset) from the ValidMind (`vm`) module. For this example, we'll pass in the following arguments:\n", + "\n", + "- **`dataset`** — The raw dataset that you want to provide as input to tests.\n", + "- **`input_id`** — A unique identifier that allows tracking what inputs are used when running each individual test.\n", + "- **`target_column`** — A required argument if tests require access to true values. This is the name of the target column in the dataset.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# vm_raw_dataset is now a VMDataset object that you can pass to any ValidMind test\n", + "vm_raw_dataset = vm.init_dataset(\n", + " dataset=raw_df,\n", + " input_id=\"raw_dataset\",\n", + " target_column=\"Exited\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Running tests\n", + "\n", + "Now that we know how to initialize a ValidMind `dataset` object, we're ready to run some tests!\n", + "\n", + "You run individual tests by calling [the `run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test) provided by the `validmind.tests` module. For the examples below, we'll pass in the following arguments:\n", + "\n", + "- **`test_id`** — The ID of the test to run, as seen in the `ID` column when you run `list_tests`. \n", + "- **`params`** — A dictionary of parameters for the test. These will override any `default_params` set in the test definition. \n", + "\n", + "
Want to learn more about ValidMind tests?\n", + "

\n", + "Refer to our notebook that includes code samples and usage of key functions: Explore tests
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Run tabular data tests\n", + "\n", + "The inputs expected by a test can also be found in the test definition — let's take [`validmind.data_validation.DescriptiveStatistics`](https://docs.validmind.ai/tests/data_validation/DescriptiveStatistics.html) as an example.\n", + "\n", + "Note that the output of the [`describe_test()` function](https://docs.validmind.ai/validmind/validmind/tests.html#describe_test) below shows that this test expects a `dataset` as input:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vm.tests.describe_test(\"validmind.data_validation.DescriptiveStatistics\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's run a few tests to assess the quality of the dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.DescriptiveStatistics\",\n", + " inputs={\"dataset\": vm_raw_dataset},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "result2 = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.ClassImbalance\",\n", + " inputs={\"dataset\": vm_raw_dataset},\n", + " params={\"min_percent_threshold\": 30},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The output above shows that [the class imbalance test](https://docs.validmind.ai/tests/data_validation/ClassImbalance.html) did not pass according to the value we set for `min_percent_threshold`.\n", + "\n", + "To address this issue, we'll re-run the test on some processed data. In this case let's apply a very simple rebalancing technique to the dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "raw_copy_df = raw_df.sample(frac=1) # Create a copy of the raw dataset\n", + "\n", + "# Create a balanced dataset with the same number of exited and not exited customers\n", + "exited_df = raw_copy_df.loc[raw_copy_df[\"Exited\"] == 1]\n", + "not_exited_df = raw_copy_df.loc[raw_copy_df[\"Exited\"] == 0].sample(n=exited_df.shape[0])\n", + "\n", + "balanced_raw_df = pd.concat([exited_df, not_exited_df])\n", + "balanced_raw_df = balanced_raw_df.sample(frac=1, random_state=42)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With this new balanced dataset, you can re-run the individual test to see if it now passes the class imbalance test requirement.\n", + "\n", + "As this is technically a different dataset, **remember to first initialize a new ValidMind `Dataset` object** to pass in as input as required by `run_test()`:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Register new data and now 'balanced_raw_dataset' is the new dataset object of interest\n", + "vm_balanced_raw_dataset = vm.init_dataset(\n", + " dataset=balanced_raw_df,\n", + " input_id=\"balanced_raw_dataset\",\n", + " target_column=\"Exited\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Pass the initialized `balanced_raw_dataset` as input into the test run\n", + "result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.ClassImbalance\",\n", + " inputs={\"dataset\": vm_balanced_raw_dataset},\n", + " params={\"min_percent_threshold\": 30},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "### Utilize test output\n", + "\n", + "You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. Below we demonstrate how to retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling.\n", + "\n", + "First, we'll run [`validmind.data_validation.HighPearsonCorrelation`](https://docs.validmind.ai/tests/data_validation/HighPearsonCorrelation.html) with the `balanced_raw_dataset` we initialized previously as input as is for comparison with later runs:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "corr_result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.HighPearsonCorrelation\",\n", + " params={\"max_threshold\": 0.3},\n", + " inputs={\"dataset\": vm_balanced_raw_dataset},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`corr_result` is an object of type `TestResult`. We can inspect the result object to see what the test has produced:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "print(type(corr_result))\n", + "print(\"Result ID: \", corr_result.result_id)\n", + "print(\"Params: \", corr_result.params)\n", + "print(\"Passed: \", corr_result.passed)\n", + "print(\"Tables: \", corr_result.tables)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's remove the highly correlated features and create a new VM `dataset` object.\n", + "\n", + "We'll begin by checking out the table in the result and extracting a list of features that failed the test:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "# Extract table from `corr_result.tables`\n", + "features_df = corr_result.tables[0].data\n", + "features_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "# Extract list of features that failed the test\n", + "high_correlation_features = features_df[features_df[\"Pass/Fail\"] == \"Fail\"][\"Columns\"].tolist()\n", + "high_correlation_features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, extract the feature names from the list of strings (example: `(Age, Exited)` > `Age`):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "high_correlation_features = [feature.split(\",\")[0].strip(\"()\") for feature in high_correlation_features]\n", + "high_correlation_features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, it's time to re-initialize the dataset with the highly correlated features removed.\n", + "\n", + "**Note the use of a different `input_id`.** This allows tracking the inputs used when running each individual test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "# Remove the highly correlated features from the dataset\n", + "balanced_raw_no_age_df = balanced_raw_df.drop(columns=high_correlation_features)\n", + "\n", + "# Re-initialize the dataset object\n", + "vm_raw_dataset_preprocessed = vm.init_dataset(\n", + " dataset=balanced_raw_no_age_df,\n", + " input_id=\"raw_dataset_preprocessed\",\n", + " target_column=\"Exited\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Re-running the test with the reduced feature set should pass the test:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "corr_result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.HighPearsonCorrelation\",\n", + " params={\"max_threshold\": 0.3},\n", + " inputs={\"dataset\": vm_raw_dataset_preprocessed},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also plot the correlation matrix to visualize the new correlation between features:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "corr_result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.PearsonCorrelationMatrix\",\n", + " inputs={\"dataset\": vm_raw_dataset_preprocessed},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Documenting results\n", + "\n", + "We've now done some analysis on two different datasets, and we should be able to document why certain things were done to the raw data with testing to support it.\n", + "\n", + "Every test result returned by the `run_test()` function has a [`.log()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestResult.log) that can be used to send the test results to the ValidMind Platform:\n", + "\n", + "- When using `run_documentation_tests()`, documentation sections will be automatically populated with the results of all tests registered in the documentation template.\n", + "- When logging individual test results to the platform, you'll need to manually add those results to the desired section of the model documentation.\n", + "\n", + "To demonstrate how to add test results to your model documentation, we'll populate the entire **Data Preparation** section of the documentation using the clean `vm_raw_dataset_preprocessed` dataset as input, and then document an additional individual result for the highly correlated dataset `vm_balanced_raw_dataset`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "### Run and log multiple tests\n", + "\n", + "[`run_documentation_tests()`](https://docs.validmind.ai/validmind/validmind.html#run_documentation_tests) allows you to run multiple tests at once and automatically log the results to your documentation. Below, we'll run the tests using the previously initialized `vm_raw_dataset_preprocessed` as input — this will populate the entire **Data Preparation** section for every test that is part of the documentation template.\n", + "\n", + "For this example, we'll pass in the following arguments:\n", + "\n", + "- **`inputs`:** Any inputs to be passed to the tests.\n", + "- **`config`:** A dictionary `:` that allows configuring each test individually. Each test config requires the following:\n", + " - **`params`:** Individual test parameters.\n", + " - **`inputs`:** Individual test inputs. This overrides any inputs passed from the `run_documentation_tests()` function.\n", + "\n", + "When including explicit configuration for individual tests, you'll need to specify the `inputs` even if they mirror what is included in your global configuration.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Individual test config with inputs specified\n", + "test_config = {\n", + " \"validmind.data_validation.ClassImbalance\": {\n", + " \"params\": {\"min_percent_threshold\": 30},\n", + " \"inputs\": {\"dataset\": vm_raw_dataset_preprocessed},\n", + " },\n", + " \"validmind.data_validation.HighPearsonCorrelation\": {\n", + " \"params\": {\"max_threshold\": 0.3},\n", + " \"inputs\": {\"dataset\": vm_raw_dataset_preprocessed},\n", + " },\n", + "}\n", + "\n", + "# Global test config\n", + "tests_suite = vm.run_documentation_tests(\n", + " inputs={\n", + " \"dataset\": vm_raw_dataset_preprocessed,\n", + " },\n", + " config=test_config,\n", + " section=[\"data_preparation\"],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Run and log an individual test\n", + "\n", + "Next, we'll use the previously initialized `vm_balanced_raw_dataset` (that had a highly correlated `Age` column) as input to run an individual test, then log the result to the ValidMind Platform.\n", + "\n", + "When running individual tests, **you can use a custom `result_id` to tag the individual result with a unique identifier:** \n", + "\n", + "- This `result_id` can be appended to `test_id` with a `:` separator.\n", + "- The `balanced_raw_dataset` result identifier will correspond to the `balanced_raw_dataset` input, the dataset that still has the `Age` column." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.HighPearsonCorrelation:balanced_raw_dataset\",\n", + " params={\"max_threshold\": 0.3},\n", + " inputs={\"dataset\": vm_balanced_raw_dataset},\n", + ")\n", + "result.log()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Note the output returned indicating that a test-driven block doesn't currently exist in your model's documentation for this particular test ID. \n", + "

\n", + "That's expected, as when we run individual tests the results logged need to be manually added to your documentation within the ValidMind Platform.
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Add individual test results to model documentation\n", + "\n", + "With the test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation ([Need more help?](https://docs.validmind.ai/developer/model-documentation/work-with-test-results.html)):\n", + "\n", + "1. From the **Inventory** in the ValidMind Platform, go to the model you connected to earlier.\n", + "\n", + "2. In the left sidebar that appears for your model, click **Documentation**.\n", + "\n", + "3. Locate the Data Preparation section and click on **2.3 Correlations and Interactions** to expand that section.\n", + "\n", + "4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block.\n", + "\n", + " \"Screenshot\n", + "

\n", + "\n", + "5. Click **+** and then select **Test-Driven Block**:\n", + "\n", + " - In the search bar, type in `HighPearsonCorrelation`.\n", + " - Select `HighPearsonCorrelation:balanced_raw_dataset` as the test.\n", + "\n", + " A preview of the test gets shown:\n", + "\n", + " \"Screenshot\n", + "

\n", + "\n", + "6. Finally, click **Insert 1 Test Result to Document** to add the test result to the documentation.\n", + "\n", + " Confirm that the individual results for the high correlation test has been correctly inserted into section **2.3 Correlations and Interactions** of the documentation.\n", + "\n", + "7. Finalize the documentation by editing the test result's description block to explain the changes you made to the raw data and the reasons behind them as shown in the screenshot below:\n", + "\n", + " \"Screenshot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Model testing\n", + "\n", + "So far, we've focused on the data assessment and pre-processing that usually occurs prior to any models being built. Now, let's instead assume we have already built a model and we want to incorporate some model results into our documentation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Train simple logistic regression model\n", + "\n", + "Using ValidMind tests, we'll train a simple logistic regression model on our dataset and evaluate its performance by using the `LogisticRegression` class from the `sklearn.linear_model`.\n", + "\n", + "To start, let's grab the first few rows from the `balanced_raw_no_age_df` dataset with the highly correlated features removed we initialized earlier:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "balanced_raw_no_age_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before training the model, we need to encode the categorical features in the dataset:\n", + "\n", + "- Use the `OneHotEncoder` class from the `sklearn.preprocessing` module to encode the categorical features.\n", + "- The categorical features in the dataset are `Geography` and `Gender`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "balanced_raw_no_age_df = pd.get_dummies(\n", + " balanced_raw_no_age_df, columns=[\"Geography\", \"Gender\"], drop_first=True\n", + ")\n", + "balanced_raw_no_age_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using `GridSearchCV`, we'll find the best-performing hyperparameters or settings and save them:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Split the input and target variables\n", + "X = balanced_raw_no_age_df.drop(\"Exited\", axis=1)\n", + "y = balanced_raw_no_age_df[\"Exited\"]\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X,\n", + " y,\n", + " test_size=0.2,\n", + " random_state=42,\n", + ")\n", + "\n", + "# Logistic Regression grid params\n", + "log_reg_params = {\n", + " \"penalty\": [\"l1\", \"l2\"],\n", + " \"C\": [0.001, 0.01, 0.1, 1, 10, 100, 1000],\n", + " \"solver\": [\"liblinear\"],\n", + "}\n", + "\n", + "# Grid search for Logistic Regression\n", + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "grid_log_reg = GridSearchCV(LogisticRegression(), log_reg_params)\n", + "grid_log_reg.fit(X_train, y_train)\n", + "\n", + "# Logistic Regression best estimator\n", + "log_reg = grid_log_reg.best_estimator_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Initialize model evaluation objects\n", + "\n", + "The last step for evaluating the model's performance is to initialize the ValidMind `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset.\n", + "\n", + "Use the `init_dataset` and [`init_model`](https://docs.validmind.ai/validmind/validmind.html#init_model) functions to initialize these objects:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_df = X_train\n", + "train_df[\"Exited\"] = y_train\n", + "test_df = X_test\n", + "test_df[\"Exited\"] = y_test\n", + "\n", + "vm_train_ds = vm.init_dataset(\n", + " input_id=\"train_dataset_final\",\n", + " dataset=train_df,\n", + " target_column=\"Exited\",\n", + ")\n", + "\n", + "vm_test_ds = vm.init_dataset(\n", + " input_id=\"test_dataset_final\",\n", + " dataset=test_df,\n", + " target_column=\"Exited\",\n", + ")\n", + "\n", + "# Register the model\n", + "vm_model = vm.init_model(log_reg, input_id=\"log_reg_model_v1\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Assign predictions\n", + "\n", + "Once the model has been registered you can assign model predictions to the training and test datasets. The [`assign_predictions()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#VMDataset.assign_predictions) from the `Dataset` object can link existing predictions to any number of models.\n", + "\n", + "If no prediction values are passed, the method will compute predictions automatically:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vm_train_ds.assign_predictions(model=vm_model)\n", + "vm_test_ds.assign_predictions(model=vm_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Run the model evaluation tests\n", + "\n", + "In this next example, we'll focus on running the tests within the Model Development section of the model documentation. Only tests associated with this section will be executed, and the corresponding results will be updated in the model documentation.\n", + "\n", + "- Note the additional config that is passed to `run_documentation_tests()` — this allows you to override `inputs` or `params` in certain tests.\n", + "- In our case, we want to explicitly use the `vm_train_ds` for the [`validmind.model_validation.sklearn.ClassifierPerformance:in_sample` test](https://docs.validmind.ai/tests/model_validation/sklearn/ClassifierPerformance.html), since it's supposed to run on the training dataset and not the test dataset.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "test_config = {\n", + " \"validmind.model_validation.sklearn.ClassifierPerformance:in_sample\": {\n", + " \"inputs\": {\n", + " \"dataset\": vm_train_ds,\n", + " \"model\": vm_model,\n", + " },\n", + " }\n", + "}\n", + "results = vm.run_documentation_tests(\n", + " section=[\"model_development\"],\n", + " inputs={\n", + " \"dataset\": vm_test_ds, # Any test that requires a single dataset will use vm_test_ds\n", + " \"model\": vm_model,\n", + " \"datasets\": (\n", + " vm_train_ds,\n", + " vm_test_ds,\n", + " ), # Any test that requires multiple datasets will use vm_train_ds and vm_test_ds\n", + " },\n", + " config=test_config,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## In summary\n", + "\n", + "In this second notebook, you learned how to:\n", + "\n", + "- [ ] Import a sample dataset\n", + "- [ ] Identify which tests you might want to run with ValidMind\n", + "- [ ] Initialize ValidMind datasets\n", + "- [ ] Run individual tests\n", + "- [ ] Utilize the output from tests you've run\n", + "- [ ] Log test results from sets of or individual tests as evidence to the ValidMind Platform\n", + "- [ ] Add supplementary individual test results to your documentation\n", + "- [ ] Assign model predictions to your ValidMind datasets\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Next steps" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Integrate custom tests\n", + "\n", + "Now that you're familiar with the basics of using the ValidMind Library to run and log tests to provide evidence for your model documentation, let's learn how to incorporate your own custom tests into ValidMind: **[103 Integrate custom tests](103-integrate_custom_tests.ipynb)**" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ValidMind Library", + "language": "python", + "name": "validmind" + }, + "language_info": { + "name": "python", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/site/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb b/site/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb new file mode 100644 index 0000000000..bcde58c62c --- /dev/null +++ b/site/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb @@ -0,0 +1,986 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ValidMind for model development — 103 Integrate custom tests\n", + "\n", + "Learn how to use ValidMind for your end-to-end model documentation process with our series of four introductory notebooks. In this third notebook, supplement ValidMind tests with your own and include them as additional evidence in your documentation.\n", + "\n", + "This notebook assumes that you already have a repository of custom made tests considered critical to include in your documentation. A custom test is any function that takes a set of inputs and parameters as arguments and returns one or more outputs:\n", + "\n", + "- The function can be as simple or as complex as you need it to be — it can use external libraries, make API calls, or do anything else that you can do in Python.\n", + "- The only requirement is that the function signature and return values can be \"understood\" and handled by the ValidMind Library. As such, custom tests offer added flexibility by extending the default tests provided by ValidMind, enabling you to document any type of model or use case.\n", + "\n", + "**For a more in-depth introduction to custom tests,** refer to our [Implement custom tests](../../code_samples/custom_tests/implement_custom_tests.ipynb) notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "::: {.content-hidden when-format=\"html\"}\n", + "## Contents \n", + "- [Prerequisites](#toc1_) \n", + "- [Setting up](#toc2_) \n", + " - [Initialize the ValidMind Library](#toc2_1_) \n", + " - [Import sample dataset](#toc2_2_) \n", + " - [Remove highly correlated features](#toc2_2_1_) \n", + " - [Train the model](#toc2_3_) \n", + " - [Initialize the ValidMind objects](#toc2_3_1_) \n", + " - [Assign predictions](#toc2_3_2_) \n", + "- [Implementing a custom inline test](#toc3_) \n", + " - [Create a confusion matrix plot](#toc3_1_) \n", + " - [Add parameters to custom tests](#toc3_2_) \n", + " - [Pass parameters to custom tests](#toc3_3_) \n", + " - [Log the confusion matrix results](#toc3_4_) \n", + "- [Using external test providers](#toc4_) \n", + " - [Create custom tests folder](#toc4_1_) \n", + " - [Save an inline test](#toc4_2_) \n", + " - [Register a local test provider](#toc4_3_) \n", + " - [Initialize a local test provider](#toc4_3_1_) \n", + " - [Run test provider tests](#toc4_3_2_) \n", + "- [Add test results to documentation](#toc5_) \n", + "- [In summary](#toc6_) \n", + "- [Next steps](#toc7_) \n", + " - [Finalize testing and documentation](#toc7_1_) \n", + "\n", + ":::\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Prerequisites\n", + "\n", + "In order to log test results or evidence to your model documentation with this notebook, you'll need to first have:\n", + "\n", + "- [ ] Registered a model within the ValidMind Platform with a predefined documentation template\n", + "- [ ] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", + "- [ ] Learned how to import and initialize datasets for use with ValidMind\n", + "- [ ] Understood the basics of how to run and log tests with ValidMind\n", + "- [ ] Inserted a test-driven block for the results of your `HighPearsonCorrelation:balanced_raw_dataset` test into your model's documentation\n", + "\n", + "
Need help with the above steps?\n", + "

\n", + "Refer to the first two notebooks in this series:\n", + "\n", + "
    \n", + "
  1. 101 Set up ValidMind
  2. \n", + "
  3. 102 Start the model development process
  4. \n", + "
\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Setting up\n", + "\n", + "This section should be quite familiar to you — as we performed the same actions in the previous notebook, **[102 Start the model development process](102-start_development_process.ipynb)**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Initialize the ValidMind Library\n", + "\n", + "As usual, let's first connect up the ValidMind Library to our model we previously registered in the ValidMind Platform:\n", + "\n", + "1. In a browser, [log in to ValidMind](https://docs.validmind.ai/guide/configuration/log-in-to-validmind.html).\n", + "\n", + "2. In the left sidebar, navigate to **Inventory** and select the model you registered for this \"ValidMind for model development\" series of notebooks.\n", + "\n", + "3. Go to **Getting Started** and click **Copy snippet to clipboard**.\n", + "\n", + "Next, [load your model identifier credentials from an `.env` file](https://docs.validmind.ai/developer/model-documentation/store-credentials-in-env-file.html) or replace the placeholder with your own code snippet:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Make sure the ValidMind Library is installed\n", + "\n", + "%pip install -q validmind\n", + "\n", + "# Load your model identifier credentials from an `.env` file\n", + "\n", + "%load_ext dotenv\n", + "%dotenv .env\n", + "\n", + "# Or replace with your code snippet\n", + "\n", + "import validmind as vm\n", + "\n", + "vm.init(\n", + " # api_host=\"...\",\n", + " # api_key=\"...\",\n", + " # api_secret=\"...\",\n", + " # model=\"...\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Import sample dataset\n", + "\n", + "Next, we'll import the same public [Bank Customer Churn Prediction](https://www.kaggle.com/datasets/shantanudhakadd/bank-customer-churn-prediction) dataset from Kaggle we used in the last notebook so that we have something to work with:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from validmind.datasets.classification import customer_churn as demo_dataset\n", + "\n", + "print(\n", + " f\"Loaded demo dataset with: \\n\\n\\t• Target column: '{demo_dataset.target_column}' \\n\\t• Class labels: {demo_dataset.class_labels}\"\n", + ")\n", + "\n", + "raw_df = demo_dataset.load_data()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll apply a simple rebalancing technique to the dataset before continuing:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "raw_copy_df = raw_df.sample(frac=1) # Create a copy of the raw dataset\n", + "\n", + "# Create a balanced dataset with the same number of exited and not exited customers\n", + "exited_df = raw_copy_df.loc[raw_copy_df[\"Exited\"] == 1]\n", + "not_exited_df = raw_copy_df.loc[raw_copy_df[\"Exited\"] == 0].sample(n=exited_df.shape[0])\n", + "\n", + "balanced_raw_df = pd.concat([exited_df, not_exited_df])\n", + "balanced_raw_df = balanced_raw_df.sample(frac=1, random_state=42)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Remove highly correlated features\n", + "\n", + "Let's also quickly remove highly correlated features from the dataset using the output from a ValidMind test.\n", + "\n", + "As you learned previously, before we can run tests you'll need to initialize a ValidMind dataset object:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Register new data and now 'balanced_raw_dataset' is the new dataset object of interest\n", + "vm_balanced_raw_dataset = vm.init_dataset(\n", + " dataset=balanced_raw_df,\n", + " input_id=\"balanced_raw_dataset\",\n", + " target_column=\"Exited\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our balanced dataset initialized, we can then run our test and utilize the output to help us identify the features we want to remove:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run HighPearsonCorrelation test with our balanced dataset as input and return a result object\n", + "corr_result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.HighPearsonCorrelation\",\n", + " params={\"max_threshold\": 0.3},\n", + " inputs={\"dataset\": vm_balanced_raw_dataset},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# From result object, extract table from `corr_result.tables`\n", + "features_df = corr_result.tables[0].data\n", + "features_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract list of features that failed the test\n", + "high_correlation_features = features_df[features_df[\"Pass/Fail\"] == \"Fail\"][\"Columns\"].tolist()\n", + "high_correlation_features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract feature names from the list of strings\n", + "high_correlation_features = [feature.split(\",\")[0].strip(\"()\") for feature in high_correlation_features]\n", + "high_correlation_features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then re-initialize the dataset with a different `input_id` and the highly correlated features removed and re-run the test for confirmation:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Remove the highly correlated features from the dataset\n", + "balanced_raw_no_age_df = balanced_raw_df.drop(columns=high_correlation_features)\n", + "\n", + "# Re-initialize the dataset object\n", + "vm_raw_dataset_preprocessed = vm.init_dataset(\n", + " dataset=balanced_raw_no_age_df,\n", + " input_id=\"raw_dataset_preprocessed\",\n", + " target_column=\"Exited\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Re-run the test with the reduced feature set\n", + "corr_result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.HighPearsonCorrelation\",\n", + " params={\"max_threshold\": 0.3},\n", + " inputs={\"dataset\": vm_raw_dataset_preprocessed},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Train the model\n", + "\n", + "We'll then use ValidMind tests to train a simple logistic regression model on our prepared dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# First encode the categorical features in our dataset with the highly correlated features removed\n", + "balanced_raw_no_age_df = pd.get_dummies(\n", + " balanced_raw_no_age_df, columns=[\"Geography\", \"Gender\"], drop_first=True\n", + ")\n", + "balanced_raw_no_age_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Split the input and target variables\n", + "X = balanced_raw_no_age_df.drop(\"Exited\", axis=1)\n", + "y = balanced_raw_no_age_df[\"Exited\"]\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X,\n", + " y,\n", + " test_size=0.2,\n", + " random_state=42,\n", + ")\n", + "\n", + "# Logistic Regression grid params\n", + "log_reg_params = {\n", + " \"penalty\": [\"l1\", \"l2\"],\n", + " \"C\": [0.001, 0.01, 0.1, 1, 10, 100, 1000],\n", + " \"solver\": [\"liblinear\"],\n", + "}\n", + "\n", + "# Grid search for Logistic Regression\n", + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "grid_log_reg = GridSearchCV(LogisticRegression(), log_reg_params)\n", + "grid_log_reg.fit(X_train, y_train)\n", + "\n", + "# Logistic Regression best estimator\n", + "log_reg = grid_log_reg.best_estimator_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Initialize the ValidMind objects\n", + "\n", + "Let's initialize the ValidMind `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_df = X_train\n", + "train_df[\"Exited\"] = y_train\n", + "test_df = X_test\n", + "test_df[\"Exited\"] = y_test\n", + "\n", + "# Initialize the datasets into their own dataset objects\n", + "vm_train_ds = vm.init_dataset(\n", + " input_id=\"train_dataset_final\",\n", + " dataset=train_df,\n", + " target_column=\"Exited\",\n", + ")\n", + "\n", + "vm_test_ds = vm.init_dataset(\n", + " input_id=\"test_dataset_final\",\n", + " dataset=test_df,\n", + " target_column=\"Exited\",\n", + ")\n", + "\n", + "# Initialize a model object\n", + "vm_model = vm.init_model(log_reg, input_id=\"log_reg_model_v1\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Assign predictions\n", + "\n", + "Once the model is registered, we'll assign predictions to the training and test datasets:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vm_train_ds.assign_predictions(model=vm_model)\n", + "vm_test_ds.assign_predictions(model=vm_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Implementing a custom inline test\n", + "\n", + "With the set up out of the way, let's implement a custom *inline test* that calculates the confusion matrix for a binary classification model.\n", + "\n", + "- An inline test refers to a test written and executed within the same environment as the code being tested — in this case, right in this Jupyter Notebook — without requiring a separate test file or framework.\n", + "- You'll note that the custom test function is just a regular Python function that can include and require any Python library as you see fit." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Create a confusion matrix plot\n", + "\n", + "Let's first create a confusion matrix plot using the `confusion_matrix` function from the `sklearn.metrics` module:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "from sklearn import metrics\n", + "\n", + "# Get the predicted classes\n", + "y_pred = log_reg.predict(vm_test_ds.x)\n", + "\n", + "confusion_matrix = metrics.confusion_matrix(y_test, y_pred)\n", + "\n", + "cm_display = metrics.ConfusionMatrixDisplay(\n", + " confusion_matrix=confusion_matrix, display_labels=[False, True]\n", + ")\n", + "cm_display.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, create a [`@vm.test` wrapper](https://docs.validmind.ai/validmind/validmind.html#test) that will allow you to create a reusable test. **Note the following changes in the code below:**\n", + "\n", + "- The function `confusion_matrix` takes two arguments `dataset` and `model`. This is a `VMDataset` and `VMModel` object respectively.\n", + " - `VMDataset` objects allow you to access the dataset's true (target) values by accessing the `.y` attribute.\n", + " - `VMDataset` objects allow you to access the predictions for a given model by accessing the `.y_pred()` method.\n", + "- The function docstring provides a description of what the test does. This will be displayed along with the result in this notebook as well as in the ValidMind Platform.\n", + "- The function body calculates the confusion matrix using the `sklearn.metrics.confusion_matrix` function as we just did above.\n", + "- The function then returns the `ConfusionMatrixDisplay.figure_` object — this is important as the ValidMind Library expects the output of the custom test to be a plot or a table.\n", + "- The `@vm.test` decorator is doing the work of creating a wrapper around the function that will allow it to be run by the ValidMind Library. It also registers the test so it can be found by the ID `my_custom_tests.ConfusionMatrix`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "@vm.test(\"my_custom_tests.ConfusionMatrix\")\n", + "def confusion_matrix(dataset, model):\n", + " \"\"\"The confusion matrix is a table that is often used to describe the performance of a classification model on a set of data for which the true values are known.\n", + "\n", + " The confusion matrix is a 2x2 table that contains 4 values:\n", + "\n", + " - True Positive (TP): the number of correct positive predictions\n", + " - True Negative (TN): the number of correct negative predictions\n", + " - False Positive (FP): the number of incorrect positive predictions\n", + " - False Negative (FN): the number of incorrect negative predictions\n", + "\n", + " The confusion matrix can be used to assess the holistic performance of a classification model by showing the accuracy, precision, recall, and F1 score of the model on a single figure.\n", + " \"\"\"\n", + " y_true = dataset.y\n", + " y_pred = dataset.y_pred(model=model)\n", + "\n", + " confusion_matrix = metrics.confusion_matrix(y_true, y_pred)\n", + "\n", + " cm_display = metrics.ConfusionMatrixDisplay(\n", + " confusion_matrix=confusion_matrix, display_labels=[False, True]\n", + " )\n", + " cm_display.plot()\n", + "\n", + " plt.close() # close the plot to avoid displaying it\n", + "\n", + " return cm_display.figure_ # return the figure object itself" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can now run the newly created custom test on both the training and test datasets using the [`run_test()` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test):\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "# Training dataset\n", + "result = vm.tests.run_test(\n", + " \"my_custom_tests.ConfusionMatrix:training_dataset\",\n", + " inputs={\"model\": vm_model, \"dataset\": vm_train_ds},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Test dataset\n", + "result = vm.tests.run_test(\n", + " \"my_custom_tests.ConfusionMatrix:test_dataset\",\n", + " inputs={\"model\": vm_model, \"dataset\": vm_test_ds},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Add parameters to custom tests\n", + "\n", + "Custom tests can take parameters just like any other function. To demonstrate, let's modify the `confusion_matrix` function to take an additional parameter `normalize` that will allow you to normalize the confusion matrix:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "@vm.test(\"my_custom_tests.ConfusionMatrix\")\n", + "def confusion_matrix(dataset, model, normalize=False):\n", + " \"\"\"The confusion matrix is a table that is often used to describe the performance of a classification model on a set of data for which the true values are known.\n", + "\n", + " The confusion matrix is a 2x2 table that contains 4 values:\n", + "\n", + " - True Positive (TP): the number of correct positive predictions\n", + " - True Negative (TN): the number of correct negative predictions\n", + " - False Positive (FP): the number of incorrect positive predictions\n", + " - False Negative (FN): the number of incorrect negative predictions\n", + "\n", + " The confusion matrix can be used to assess the holistic performance of a classification model by showing the accuracy, precision, recall, and F1 score of the model on a single figure.\n", + " \"\"\"\n", + " y_true = dataset.y\n", + " y_pred = dataset.y_pred(model=model)\n", + "\n", + " if normalize:\n", + " confusion_matrix = metrics.confusion_matrix(y_true, y_pred, normalize=\"all\")\n", + " else:\n", + " confusion_matrix = metrics.confusion_matrix(y_true, y_pred)\n", + "\n", + " cm_display = metrics.ConfusionMatrixDisplay(\n", + " confusion_matrix=confusion_matrix, display_labels=[False, True]\n", + " )\n", + " cm_display.plot()\n", + "\n", + " plt.close() # close the plot to avoid displaying it\n", + "\n", + " return cm_display.figure_ # return the figure object itself" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Pass parameters to custom tests\n", + "\n", + "You can pass parameters to custom tests by providing a dictionary of parameters to the `run_test()` function.\n", + "\n", + "- The parameters will override any default parameters set in the custom test definition. Note that `dataset` and `model` are still passed as `inputs`.\n", + "- Since these are `VMDataset` or `VMModel` inputs, they have a special meaning.\n", + "- When declaring a `dataset`, `model`, `datasets` or `models` argument in a custom test function, the ValidMind Library will expect these get passed as `inputs` to `run_test()` or `run_documentation_tests()`.\n", + "\n", + "Re-running the confusion matrix with `normalize=True` looks like this:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Test dataset with normalize=True\n", + "result = vm.tests.run_test(\n", + " \"my_custom_tests.ConfusionMatrix:test_dataset_normalized\",\n", + " inputs={\"model\": vm_model, \"dataset\": vm_test_ds},\n", + " params={\"normalize\": True},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Log the confusion matrix results\n", + "\n", + "As we learned in **[102 Start the model development process](102-start_development_process.ipynb)** under **Documenting results** > **Run and log an individual tests**, you can log any result to the ValidMind Platform with the [`.log()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestResult.log) of the result object, allowing you to then add the result to the documentation.\n", + "\n", + "You can now do the same for the confusion matrix results:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "result.log()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Note the output returned indicating that a test-driven block doesn't currently exist in your model's documentation for this particular test ID. \n", + "

\n", + "That's expected, as when we run individual tests the results logged need to be manually added to your documentation within the ValidMind Platform.
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Using external test providers\n", + "\n", + "Creating inline custom tests with a function is a great way to customize your model documentation. However, sometimes you may want to reuse the same set of tests across multiple models and share them with others in your organization. In this case, you can create an external custom *test provider* that will allow you to load custom tests from a local folder or a Git repository.\n", + "\n", + "In this section you will learn how to declare a local filesystem test provider that allows loading tests from a local folder following these high level steps:\n", + "\n", + "1. Create a folder of custom tests from existing inline tests (tests that exist in your active Jupyter Notebook)\n", + "2. Save an inline test to a file\n", + "3. Define and register a [`LocalTestProvider`](https://docs.validmind.ai/validmind/validmind/tests.html#LocalTestProvider) that points to that folder\n", + "4. Run test provider tests\n", + "5. Add the test results to your documentation\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Create custom tests folder\n", + "\n", + "Let's start by creating a new folder that will contain reusable custom tests from your existing inline tests.\n", + "\n", + "The following code snippet will create a new `my_tests` directory in the current working directory if it doesn't exist:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "tests_folder = \"my_tests\"\n", + "\n", + "import os\n", + "\n", + "# create tests folder\n", + "os.makedirs(tests_folder, exist_ok=True)\n", + "\n", + "# remove existing tests\n", + "for f in os.listdir(tests_folder):\n", + " # remove files and pycache\n", + " if f.endswith(\".py\") or f == \"__pycache__\":\n", + " os.system(f\"rm -rf {tests_folder}/{f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After running the command above, confirm that the new `my_tests` directory was created successfully:\n", + "\n", + "\"Screenshot" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Save an inline test\n", + "\n", + "The `@vm.test` decorator we used in **Implementing a custom inline test** above to register one-off custom tests also includes a convenience method on the function object that allows you to simply call `.save()` to save the test to a Python file at a specified path.\n", + "\n", + "While `save()` will get you started by creating the file and saving the function code with the correct name, it won't automatically include any imports, or other functions or variables, outside of the functions that are needed for the test to run. To solve this, pass in an optional `imports` argument ensuring necessary imports are added to the file.\n", + "\n", + "The `confusion_matrix` test requires the following additional imports:\n", + "\n", + "```python\n", + "import matplotlib.pyplot as plt\n", + "from sklearn import metrics\n", + "```\n", + "\n", + "Let's pass these imports to the `save()` method to ensure they are included in the file with the following command:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "confusion_matrix.save(\n", + " # Save it to the custom tests folder we created\n", + " tests_folder,\n", + " imports=[\"import matplotlib.pyplot as plt\", \"from sklearn import metrics\"],\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- [ ] Confirm that the `save()` method saved the `confusion_matrix` function to a file named `ConfusionMatrix.py` in the `my_tests` folder.\n", + "- [ ] Note that the new file provides some context on the origin of the test, which is useful for traceability:\n", + "\n", + " ```\n", + " # Saved from __main__.confusion_matrix\n", + " # Original Test ID: my_custom_tests.ConfusionMatrix\n", + " # New Test ID: .ConfusionMatrix\n", + " ```\n", + "\n", + "- [ ] Additionally, the new test function has been stripped off its decorator, as it now resides in a file that will be loaded by the test provider:\n", + "\n", + " ```python\n", + " def ConfusionMatrix(dataset, model, normalize=False):\n", + " ```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Register a local test provider\n", + "\n", + "Now that your `my_tests` folder has a sample custom test, let's initialize a test provider that will tell the ValidMind Library where to find your custom tests:\n", + "\n", + "- ValidMind offers out-of-the-box test providers for local tests (tests in a folder) or a Github provider for tests in a Github repository.\n", + "- You can also create your own test provider by creating a class that has a [`load_test` method](https://docs.validmind.ai/validmind/validmind/tests.html#TestProvider.load_test) that takes a test ID and returns the test function matching that ID.\n", + "\n", + "
Want to learn more about test providers?\n", + "

\n", + "An extended introduction to test providers can be found in: Integrate external test providers
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Initialize a local test provider\n", + "\n", + "For most use cases, using a `LocalTestProvider` that allows you to load custom tests from a designated directory should be sufficient.\n", + "\n", + "**The most important attribute for a test provider is its `namespace`.** This is a string that will be used to prefix test IDs in model documentation. This allows you to have multiple test providers with tests that can even share the same ID, but are distinguished by their namespace.\n", + "\n", + "Let's go ahead and load the custom tests from our `my_tests` directory:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from validmind.tests import LocalTestProvider\n", + "\n", + "# initialize the test provider with the tests folder we created earlier\n", + "my_test_provider = LocalTestProvider(tests_folder)\n", + "\n", + "vm.tests.register_test_provider(\n", + " namespace=\"my_test_provider\",\n", + " test_provider=my_test_provider,\n", + ")\n", + "# `my_test_provider.load_test()` will be called for any test ID that starts with `my_test_provider`\n", + "# e.g. `my_test_provider.ConfusionMatrix` will look for a function named `ConfusionMatrix` in `my_tests/ConfusionMatrix.py` file" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Run test provider tests\n", + "\n", + "Now that we've set up the test provider, we can run any test that's located in the tests folder by using the `run_test()` method as with any other test:\n", + "\n", + "- For tests that reside in a test provider directory, the test ID will be the `namespace` specified when registering the provider, followed by the path to the test file relative to the tests folder.\n", + "- For example, the Confusion Matrix test we created earlier will have the test ID `my_test_provider.ConfusionMatrix`. You could organize the tests in subfolders, say `classification` and `regression`, and the test ID for the Confusion Matrix test would then be `my_test_provider.classification.ConfusionMatrix`.\n", + "\n", + "Let's go ahead and re-run the confusion matrix test by using the test ID `my_test_provider.ConfusionMatrix`. This should load the test from the test provider and run it as before.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "result = vm.tests.run_test(\n", + " \"my_test_provider.ConfusionMatrix\",\n", + " inputs={\"model\": vm_model, \"dataset\": vm_test_ds},\n", + " params={\"normalize\": True},\n", + ")\n", + "\n", + "result.log()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Again, note the output returned indicating that a test-driven block doesn't currently exist in your model's documentation for this particular test ID. \n", + "

\n", + "That's expected, as when we run individual tests the results logged need to be manually added to your documentation within the ValidMind Platform.
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Add test results to documentation\n", + "\n", + "With our custom tests run and results logged to the ValidMind Platform, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation ([Need more help?](https://docs.validmind.ai/developer/model-documentation/work-with-test-results.html)):\n", + "\n", + "1. From the **Inventory** in the ValidMind Platform, go to the model you connected to earlier.\n", + "\n", + "2. In the left sidebar that appears for your model, click **Documentation**.\n", + "\n", + "3. Locate the Data Preparation section and click on **3.2 Model Evaluation** to expand that section.\n", + "\n", + "4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block.\n", + "\n", + " \"Screenshot\n", + "

\n", + "\n", + "5. Click **+** and then select **Test-Driven Block**:\n", + "\n", + " - In the search bar, type in `ConfusionMatrix`.\n", + " - Select the custom `ConfusionMatrix` tests you logged above:\n", + "\n", + " \"Screenshot\n", + "

\n", + "\n", + "6. Finally, click **Insert 2 Test Results to Document** to add the test results to the documentation.\n", + "\n", + " Confirm that the two individual results for the confusion matrix tests have been correctly inserted into section **3.2 Model Evaluation** of the documentation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## In summary\n", + "\n", + "In this third notebook, you learned how to:\n", + "\n", + "- [ ] Implement a custom inline test\n", + "- [ ] Run and log your custom inline tests\n", + "- [ ] Use external custom test providers\n", + "- [ ] Run and log tests from your custom test providers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Next steps" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Finalize testing and documentation\n", + "\n", + "Now that you're proficient at using the ValidMind Library to run and log tests, let's put the last pieces in place to prepare our fully documented sample model for review: **[104 Finalize testing and documentation](104-finalize_testing_documentation.ipynb)**" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ValidMind Library", + "language": "python", + "name": "validmind" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/site/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.ipynb b/site/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.ipynb new file mode 100644 index 0000000000..fd17733fcd --- /dev/null +++ b/site/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.ipynb @@ -0,0 +1,966 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ValidMind for model development — 104 Finalize testing and documentation\n", + "\n", + "Learn how to use ValidMind for your end-to-end model documentation process with our introductory notebook series. In this last notebook, finalize the testing and documentation of your model and have a fully documented sample model ready for review.\n", + "\n", + "We'll first use [`run_documentation_tests()`](https://docs.validmind.ai/validmind/validmind.html#run_documentation_tests) previously covered in **[102 Start the model development process](102-start_development_process.ipynb)** to ensure that your custom test results generated in **[103 Integrate custom tests](103-integrate_custom_tests.ipynb)** are included in your documentation. Then, we'll view and update the configuration for the entire model documentation template to suit your needs.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "::: {.content-hidden when-format=\"html\"}\n", + "## Contents \n", + "- [Prerequisites](#toc1_) \n", + "- [Setting up](#toc2_) \n", + " - [Initialize the ValidMind Library](#toc2_1_) \n", + " - [Import sample dataset](#toc2_2_) \n", + " - [Remove highly correlated features](#toc2_2_1_) \n", + " - [Train the model](#toc2_3_) \n", + " - [Initialize the ValidMind objects](#toc2_3_1_) \n", + " - [Assign predictions](#toc2_3_2_) \n", + " - [Add custom tests](#toc2_4_) \n", + " - [Implement custom inline test](#toc2_4_1_) \n", + " - [Add a local test provider](#toc2_4_2_) \n", + "- [Reconnect to ValidMind](#toc3_) \n", + "- [Include custom test results](#toc4_) \n", + "- [Documentation template configuration](#toc5_) \n", + " - [Update the config](#toc5_1_) \n", + "- [In summary](#toc6_) \n", + "- [Next steps](#toc7_) \n", + " - [Work with your model documentation](#toc7_1_) \n", + " - [Learn more](#toc7_2_) \n", + " - [Use cases](#toc7_2_1_) \n", + " - [More how-to guides and code samples](#toc7_2_2_) \n", + " - [Discover more learning resources](#toc7_2_3_) \n", + "\n", + ":::\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Prerequisites\n", + "\n", + "In order to finalize the testing and documentation for your sample model, you'll need to first have:\n", + "\n", + "- [ ] Registered a model within the ValidMind Platform with a predefined documentation template\n", + "- [ ] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", + "- [ ] Learned how to import and initialize datasets for use with ValidMind\n", + "- [ ] Learned how to run and log default and custom tests with ValidMind, including from external test providers\n", + "- [ ] Inserted test-driven blocks for the results of the following tests into your model's documentation:\n", + " - [ ] `HighPearsonCorrelation:balanced_raw_dataset`\n", + " - [ ] `my_test_provider.ConfusionMatrix`\n", + " - [ ] `my_custom_tests.ConfusionMatrix:test_dataset_normalized`\n", + "\n", + "
Need help with the above steps?\n", + "

\n", + "Refer to the first three notebooks in this series:\n", + "\n", + "
    \n", + "
  1. 101 Set up ValidMind
  2. \n", + "
  3. 102 Start the model development process
  4. \n", + "
  5. 103 Integrate custom tests
  6. \n", + "
\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Setting up\n", + "\n", + "This section should be very familiar to you now — as we performed the same actions in the previous two notebooks in this series." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Initialize the ValidMind Library\n", + "\n", + "As usual, let's first connect up the ValidMind Library to our model we previously registered in the ValidMind Platform:\n", + "\n", + "1. In a browser, [log in to ValidMind](https://docs.validmind.ai/guide/configuration/log-in-to-validmind.html).\n", + "\n", + "2. In the left sidebar, navigate to **Inventory** and select the model you registered for this \"ValidMind for model development\" series of notebooks.\n", + "\n", + "3. Go to **Getting Started** and click **Copy snippet to clipboard**.\n", + "\n", + "Next, [load your model identifier credentials from an `.env` file](https://docs.validmind.ai/developer/model-documentation/store-credentials-in-env-file.html) or replace the placeholder with your own code snippet:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Make sure the ValidMind Library is installed\n", + "\n", + "%pip install -q validmind\n", + "\n", + "# Load your model identifier credentials from an `.env` file\n", + "\n", + "%load_ext dotenv\n", + "%dotenv .env\n", + "\n", + "# Or replace with your code snippet\n", + "\n", + "import validmind as vm\n", + "\n", + "vm.init(\n", + " # api_host=\"...\",\n", + " # api_key=\"...\",\n", + " # api_secret=\"...\",\n", + " # model=\"...\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Import sample dataset\n", + "\n", + "Next, we'll import the same public [Bank Customer Churn Prediction](https://www.kaggle.com/datasets/shantanudhakadd/bank-customer-churn-prediction) dataset from Kaggle we used in the last notebook so that we have something to work with:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from validmind.datasets.classification import customer_churn as demo_dataset\n", + "\n", + "print(\n", + " f\"Loaded demo dataset with: \\n\\n\\t• Target column: '{demo_dataset.target_column}' \\n\\t• Class labels: {demo_dataset.class_labels}\"\n", + ")\n", + "\n", + "raw_df = demo_dataset.load_data()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll apply a simple rebalancing technique to the dataset before continuing:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "raw_copy_df = raw_df.sample(frac=1) # Create a copy of the raw dataset\n", + "\n", + "# Create a balanced dataset with the same number of exited and not exited customers\n", + "exited_df = raw_copy_df.loc[raw_copy_df[\"Exited\"] == 1]\n", + "not_exited_df = raw_copy_df.loc[raw_copy_df[\"Exited\"] == 0].sample(n=exited_df.shape[0])\n", + "\n", + "balanced_raw_df = pd.concat([exited_df, not_exited_df])\n", + "balanced_raw_df = balanced_raw_df.sample(frac=1, random_state=42)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Remove highly correlated features\n", + "\n", + "Let's also quickly remove highly correlated features from the dataset using the output from a ValidMind test.\n", + "\n", + "As you learned previously, before we can run tests you'll need to initialize a ValidMind dataset object:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Register new data and now 'balanced_raw_dataset' is the new dataset object of interest\n", + "vm_balanced_raw_dataset = vm.init_dataset(\n", + " dataset=balanced_raw_df,\n", + " input_id=\"balanced_raw_dataset\",\n", + " target_column=\"Exited\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our balanced dataset initialized, we can then run our test and utilize the output to help us identify the features we want to remove:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run HighPearsonCorrelation test with our balanced dataset as input and return a result object\n", + "corr_result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.HighPearsonCorrelation\",\n", + " params={\"max_threshold\": 0.3},\n", + " inputs={\"dataset\": vm_balanced_raw_dataset},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# From result object, extract table from `corr_result.tables`\n", + "features_df = corr_result.tables[0].data\n", + "features_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract list of features that failed the test\n", + "high_correlation_features = features_df[features_df[\"Pass/Fail\"] == \"Fail\"][\"Columns\"].tolist()\n", + "high_correlation_features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract feature names from the list of strings\n", + "high_correlation_features = [feature.split(\",\")[0].strip(\"()\") for feature in high_correlation_features]\n", + "high_correlation_features" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then re-initialize the dataset with a different `input_id` and the highly correlated features removed and re-run the test for confirmation:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Remove the highly correlated features from the dataset\n", + "balanced_raw_no_age_df = balanced_raw_df.drop(columns=high_correlation_features)\n", + "\n", + "# Re-initialize the dataset object\n", + "vm_raw_dataset_preprocessed = vm.init_dataset(\n", + " dataset=balanced_raw_no_age_df,\n", + " input_id=\"raw_dataset_preprocessed\",\n", + " target_column=\"Exited\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Re-run the test with the reduced feature set\n", + "corr_result = vm.tests.run_test(\n", + " test_id=\"validmind.data_validation.HighPearsonCorrelation\",\n", + " params={\"max_threshold\": 0.3},\n", + " inputs={\"dataset\": vm_raw_dataset_preprocessed},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Train the model\n", + "\n", + "We'll then use ValidMind tests to train a simple logistic regression model on our prepared dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# First encode the categorical features in our dataset with the highly correlated features removed\n", + "balanced_raw_no_age_df = pd.get_dummies(\n", + " balanced_raw_no_age_df, columns=[\"Geography\", \"Gender\"], drop_first=True\n", + ")\n", + "balanced_raw_no_age_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Split the input and target variables\n", + "X = balanced_raw_no_age_df.drop(\"Exited\", axis=1)\n", + "y = balanced_raw_no_age_df[\"Exited\"]\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X,\n", + " y,\n", + " test_size=0.2,\n", + " random_state=42,\n", + ")\n", + "\n", + "# Logistic Regression grid params\n", + "log_reg_params = {\n", + " \"penalty\": [\"l1\", \"l2\"],\n", + " \"C\": [0.001, 0.01, 0.1, 1, 10, 100, 1000],\n", + " \"solver\": [\"liblinear\"],\n", + "}\n", + "\n", + "# Grid search for Logistic Regression\n", + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "grid_log_reg = GridSearchCV(LogisticRegression(), log_reg_params)\n", + "grid_log_reg.fit(X_train, y_train)\n", + "\n", + "# Logistic Regression best estimator\n", + "log_reg = grid_log_reg.best_estimator_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Initialize the ValidMind objects\n", + "\n", + "Let's initialize the ValidMind `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "train_df = X_train\n", + "train_df[\"Exited\"] = y_train\n", + "test_df = X_test\n", + "test_df[\"Exited\"] = y_test\n", + "\n", + "# Initialize the datasets into their own dataset objects\n", + "vm_train_ds = vm.init_dataset(\n", + " input_id=\"train_dataset_final\",\n", + " dataset=train_df,\n", + " target_column=\"Exited\",\n", + ")\n", + "\n", + "vm_test_ds = vm.init_dataset(\n", + " input_id=\"test_dataset_final\",\n", + " dataset=test_df,\n", + " target_column=\"Exited\",\n", + ")\n", + "\n", + "# Initialize a model object\n", + "vm_model = vm.init_model(log_reg, input_id=\"log_reg_model_v1\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Assign predictions\n", + "\n", + "Once the model is registered, we'll assign predictions to the training and test datasets:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vm_train_ds.assign_predictions(model=vm_model)\n", + "vm_test_ds.assign_predictions(model=vm_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Add custom tests\n", + "\n", + "We'll also add the same custom tests we implemented in the previous notebook so that this session has access to the same custom inline test and local test provider." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Implement custom inline test\n", + "\n", + "Let's set up a custom inline test that calculates the confusion matrix for a binary classification model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# First create a confusion matrix plot\n", + "import matplotlib.pyplot as plt\n", + "from sklearn import metrics\n", + "\n", + "# Get the predicted classes\n", + "y_pred = log_reg.predict(vm_test_ds.x)\n", + "\n", + "confusion_matrix = metrics.confusion_matrix(y_test, y_pred)\n", + "\n", + "cm_display = metrics.ConfusionMatrixDisplay(\n", + " confusion_matrix=confusion_matrix, display_labels=[False, True]\n", + ")\n", + "cm_display.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create the reusable ConfusionMatrix inline test with normalized matrix\n", + "@vm.test(\"my_custom_tests.ConfusionMatrix\")\n", + "def confusion_matrix(dataset, model, normalize=False):\n", + " \"\"\"The confusion matrix is a table that is often used to describe the performance of a classification model on a set of data for which the true values are known.\n", + "\n", + " The confusion matrix is a 2x2 table that contains 4 values:\n", + "\n", + " - True Positive (TP): the number of correct positive predictions\n", + " - True Negative (TN): the number of correct negative predictions\n", + " - False Positive (FP): the number of incorrect positive predictions\n", + " - False Negative (FN): the number of incorrect negative predictions\n", + "\n", + " The confusion matrix can be used to assess the holistic performance of a classification model by showing the accuracy, precision, recall, and F1 score of the model on a single figure.\n", + " \"\"\"\n", + " y_true = dataset.y\n", + " y_pred = dataset.y_pred(model=model)\n", + "\n", + " if normalize:\n", + " confusion_matrix = metrics.confusion_matrix(y_true, y_pred, normalize=\"all\")\n", + " else:\n", + " confusion_matrix = metrics.confusion_matrix(y_true, y_pred)\n", + "\n", + " cm_display = metrics.ConfusionMatrixDisplay(\n", + " confusion_matrix=confusion_matrix, display_labels=[False, True]\n", + " )\n", + " cm_display.plot()\n", + "\n", + " plt.close() # close the plot to avoid displaying it\n", + "\n", + " return cm_display.figure_ # return the figure object itself" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Test dataset with normalize=True\n", + "result = vm.tests.run_test(\n", + " \"my_custom_tests.ConfusionMatrix:test_dataset_normalized\",\n", + " inputs={\"model\": vm_model, \"dataset\": vm_test_ds},\n", + " params={\"normalize\": True},\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Add a local test provider\n", + "\n", + "Finally, let's save our custom inline test to our local test provider:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create custom tests folder\n", + "tests_folder = \"my_tests\"\n", + "\n", + "import os\n", + "\n", + "# create tests folder\n", + "os.makedirs(tests_folder, exist_ok=True)\n", + "\n", + "# remove existing tests\n", + "for f in os.listdir(tests_folder):\n", + " # remove files and pycache\n", + " if f.endswith(\".py\") or f == \"__pycache__\":\n", + " os.system(f\"rm -rf {tests_folder}/{f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Save custom inline test to custom tests folder\n", + "confusion_matrix.save(\n", + " tests_folder,\n", + " imports=[\"import matplotlib.pyplot as plt\", \"from sklearn import metrics\"],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Register local test provider\n", + "from validmind.tests import LocalTestProvider\n", + "\n", + "# initialize the test provider with the tests folder we created earlier\n", + "my_test_provider = LocalTestProvider(tests_folder)\n", + "\n", + "vm.tests.register_test_provider(\n", + " namespace=\"my_test_provider\",\n", + " test_provider=my_test_provider,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Reconnect to ValidMind\n", + "\n", + "After you insert test-driven blocks into your model documentation, changes should persist and become available every time you call [`vm.preview_template()`](https://docs.validmind.ai/validmind/validmind.html#preview_template).\n", + "\n", + "However, you'll need to reload the connection to the ValidMind Platform if you have added test-driven blocks when the connection was already established using [`reload()`](https://docs.validmind.ai/validmind/validmind.html#reload):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vm.reload()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, when you run `preview_template()` again, the three test-driven blocks you added to your documentation in the last two notebooks in should show up in the template in sections **2.3 Correlations and Interactions** and **3.2 Model Evaluation**:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "vm.preview_template()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Include custom test results\n", + "\n", + "Since your custom test IDs are now part of your documentation template, you can now run tests for an entire section and all additional custom tests should be loaded without any issues.\n", + "\n", + "Let's run all tests in the Model Evaluation section of the documentation. Note that we have been running the sample custom confusion matrix with `normalize=True` to demonstrate the ability to provide custom parameters.\n", + "\n", + "In the **Run the model evaluation tests** section of **[102 Start the model development process](102-start_development_process.ipynb)**, you learned how to assign inputs to individual tests with [`run_documentation_tests()`](https://docs.validmind.ai/validmind/validmind.html#run_documentation_tests). Assigning parameters is similar, you only need to provide assign a `params` dictionary to a given test ID, `my_test_provider.ConfusionMatrix` in this case.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "test_config = {\n", + " \"validmind.model_validation.sklearn.ClassifierPerformance:in_sample\": {\n", + " \"inputs\": {\n", + " \"dataset\": vm_train_ds,\n", + " \"model\": vm_model,\n", + " },\n", + " },\n", + " \"my_test_provider.ConfusionMatrix\": {\n", + " \"params\": {\"normalize\": True},\n", + " \"inputs\": {\"dataset\": vm_test_ds, \"model\": vm_model},\n", + " },\n", + "}\n", + "results = vm.run_documentation_tests(\n", + " section=[\"model_evaluation\"],\n", + " inputs={\n", + " \"dataset\": vm_test_ds, # Any test that requires a single dataset will use vm_test_ds\n", + " \"model\": vm_model,\n", + " \"datasets\": (\n", + " vm_train_ds,\n", + " vm_test_ds,\n", + " ), # Any test that requires multiple datasets will use vm_train_ds and vm_test_ds\n", + " },\n", + " config=test_config,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Documentation template configuration\n", + "\n", + "Let's call the utility function [`vm.get_test_suite().get_default_config()`](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestSuite.get_default_config) which will return the **default configuration for the entire documentation template as a dictionary:**\n", + "\n", + "- This configuration will contain all the test IDs and their default parameters.\n", + "- You can then modify this configuration as needed and pass it to `run_documentation_tests()` to run all tests in the documentation template if needed.\n", + "- You still have the option to continue running tests for one section at a time; `get_default_config()` simply provides a useful reference for providing default parameters to every test." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "model_test_suite = vm.get_test_suite()\n", + "config = model_test_suite.get_default_config()\n", + "print(\"Suite Config: \\n\", json.dumps(config, indent=2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "### Update the config\n", + "\n", + "The default config does not assign any inputs to a test, but you can assign inputs to individual tests as needed depending on the datasets and models you want to pass to individual tests.\n", + "\n", + "For this particular documentation template (binary classification), the ValidMind Library provides a sample configuration that can be used to populate the entire model documentation using the following inputs as placeholders:\n", + "\n", + "- A **`raw_dataset`** raw dataset\n", + "- A **`train_dataset`** training dataset\n", + "- A **`test_dataset`** test dataset\n", + "- A trained **`model`** instance\n", + "\n", + "As part of updating the `config` you will need to ensure the correct `input_id`s are used in the final config passed to `run_documentation_tests()`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "metadata": {} + }, + "outputs": [], + "source": [ + "from validmind.datasets.classification import customer_churn\n", + "from validmind.utils import preview_test_config\n", + "\n", + "test_config = customer_churn.get_demo_test_config()\n", + "preview_test_config(test_config)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using this sample configuration, let's finish populating model documentation by running all tests for the Model Development section of the documentation.\n", + "\n", + "Recall that the training and test datasets in our exercise have the following `input_id` values:\n", + "\n", + "- **`train_dataset_final`** for the training dataset\n", + "- **`test_dataset_final`** for the test dataset\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "config = {\n", + " \"validmind.model_validation.ModelMetadata\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\"},\n", + " },\n", + " \"validmind.data_validation.DatasetSplit\": {\n", + " \"inputs\": {\"datasets\": [\"train_dataset_final\", \"test_dataset_final\"]},\n", + " },\n", + " \"validmind.model_validation.sklearn.PopulationStabilityIndex\": {\n", + " \"inputs\": {\n", + " \"model\": \"log_reg_model_v1\",\n", + " \"datasets\": [\"train_dataset_final\", \"test_dataset_final\"],\n", + " },\n", + " \"params\": {\"num_bins\": 10, \"mode\": \"fixed\"},\n", + " },\n", + " \"validmind.model_validation.sklearn.ConfusionMatrix\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " },\n", + " \"my_test_provider.ConfusionMatrix\": {\n", + " \"inputs\": {\"dataset\": \"test_dataset_final\", \"model\": \"log_reg_model_v1\"},\n", + " },\n", + " \"my_custom_tests.ConfusionMatrix:test_dataset_normalized\": {\n", + " \"inputs\": {\"dataset\": \"test_dataset_final\", \"model\": \"log_reg_model_v1\"},\n", + " },\n", + " \"validmind.model_validation.sklearn.ClassifierPerformance:in_sample\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"train_dataset_final\"}\n", + " },\n", + " \"validmind.model_validation.sklearn.ClassifierPerformance:out_of_sample\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"}\n", + " },\n", + " \"validmind.model_validation.sklearn.PrecisionRecallCurve\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " },\n", + " \"validmind.model_validation.sklearn.ROCCurve\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " },\n", + " \"validmind.model_validation.sklearn.TrainingTestDegradation\": {\n", + " \"inputs\": {\n", + " \"model\": \"log_reg_model_v1\",\n", + " \"datasets\": [\"train_dataset_final\", \"test_dataset_final\"],\n", + " },\n", + " \"params\": {\n", + " \"metrics\": [\"accuracy\", \"precision\", \"recall\", \"f1\"],\n", + " \"max_threshold\": 0.1,\n", + " },\n", + " },\n", + " \"validmind.model_validation.sklearn.MinimumAccuracy\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " \"params\": {\"min_threshold\": 0.7},\n", + " },\n", + " \"validmind.model_validation.sklearn.MinimumF1Score\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " \"params\": {\"min_threshold\": 0.5},\n", + " },\n", + " \"validmind.model_validation.sklearn.MinimumROCAUCScore\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " \"params\": {\"min_threshold\": 0.5},\n", + " },\n", + " \"validmind.model_validation.sklearn.PermutationFeatureImportance\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " },\n", + " \"validmind.model_validation.sklearn.SHAPGlobalImportance\": {\n", + " \"inputs\": {\"model\": \"log_reg_model_v1\", \"dataset\": \"test_dataset_final\"},\n", + " \"params\": {\"kernel_explainer_samples\": 10},\n", + " },\n", + " \"validmind.model_validation.sklearn.WeakspotsDiagnosis\": {\n", + " \"inputs\": {\n", + " \"model\": \"log_reg_model_v1\",\n", + " \"datasets\": [\"train_dataset_final\", \"test_dataset_final\"],\n", + " },\n", + " \"params\": {\n", + " \"thresholds\": {\"accuracy\": 0.75, \"precision\": 0.5, \"recall\": 0.5, \"f1\": 0.7}\n", + " },\n", + " },\n", + " \"validmind.model_validation.sklearn.OverfitDiagnosis\": {\n", + " \"inputs\": {\n", + " \"model\": \"log_reg_model_v1\",\n", + " \"datasets\": [\"train_dataset_final\", \"test_dataset_final\"],\n", + " },\n", + " \"params\": {\"cut_off_percentage\": 4},\n", + " },\n", + " \"validmind.model_validation.sklearn.RobustnessDiagnosis\": {\n", + " \"inputs\": {\n", + " \"model\": \"log_reg_model_v1\",\n", + " \"datasets\": [\"train_dataset_final\", \"test_dataset_final\"],\n", + " },\n", + " \"params\": {\n", + " \"scaling_factor_std_dev_list\": [0.0, 0.1, 0.2, 0.3, 0.4, 0.5],\n", + " \"accuracy_decay_threshold\": 4,\n", + " },\n", + " },\n", + "}\n", + "\n", + "\n", + "full_suite = vm.run_documentation_tests(\n", + " section=\"model_development\",\n", + " config=config,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## In summary\n", + "\n", + "In this final notebook, you learned how to:\n", + "\n", + "- [ ] Refresh the connection from the ValidMind Library to the ValidMind Platform after you've inserted test-driven blocks to your documentation\n", + "- [ ] Include custom test results in your model documentation\n", + "- [ ] View and configure the configuration for your model documentation template\n", + "\n", + "With our ValidMind for model development series of notebooks, you learned how to document a model end-to-end with the ValidMind Library by running through some common scenarios in a typical model development setting:\n", + "\n", + "- Running out-of-the-box tests\n", + "- Documenting your model by adding evidence to model documentation\n", + "- Extending the capabilities of the ValidMind Library by implementing custom tests\n", + "- Ensuring that the documentation is complete by running all tests in the documentation template" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "## Next steps" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Work with your model documentation\n", + "\n", + "Now that you've logged all your test results and generated a draft for your model documentation, head to the ValidMind Platform to make qualitative edits, view guidelines, collaborate with validators, and submit your model documentation for approval when it's ready. **Learn more:** [Working with model documentation](https://docs.validmind.ai/guide/model-documentation/working-with-model-documentation.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Learn more\n", + "\n", + "Now that you're familiar with the basics, you can explore the following notebooks to get a deeper understanding on how the ValidMind Library allows you generate model documentation for any use case:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Use cases\n", + "\n", + "- [Application scorecard demo](../../code_samples/credit_risk/application_scorecard_demo.ipynb)\n", + "- [Linear regression documentation demo](../../code_samples/regression/quickstart_regression_full_suite.ipynb)\n", + "- [LLM model documentation demo](../../code_samples/nlp_and_llm/foundation_models_integration_demo.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### More how-to guides and code samples\n", + "\n", + "- [Explore available tests in detail](../../how_to/explore_tests.ipynb)\n", + "- [In-depth guide for implementing custom tests](../../code_samples/custom_tests/implement_custom_tests.ipynb)\n", + "- [In-depth guide to external test providers](../../code_samples/custom_tests/integrate_external_test_providers.ipynb)\n", + "- [Configuring dataset features](../../how_to/configure_dataset_features.ipynb)\n", + "- [Introduction to unit and composite metrics](../../how_to/run_unit_metrics.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### Discover more learning resources\n", + "\n", + "All notebook samples can be found in the following directories of the ValidMind Library GitHub repository:\n", + "\n", + "- [Code samples](https://github.com/validmind/validmind-library/tree/main/notebooks/code_samples)\n", + "- [How-to guides](https://github.com/validmind/validmind-library/tree/main/notebooks/how_to)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "ValidMind Library", + "language": "python", + "name": "validmind" + }, + "language_info": { + "name": "python", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/site/notebooks/EXECUTED/model_development/add-content-block.gif b/site/notebooks/EXECUTED/model_development/add-content-block.gif new file mode 100644 index 0000000000000000000000000000000000000000..daab9d44d8e85afe0de4c59d7dd03dc94bc1bd98 GIT binary patch literal 114727 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ⅅTmH<9 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

=X-2vDg3%vEk092*NPHfDbPj#aXx~vt} zVrW8}Xxmo#4oF0})Z_lRpeKrk4v}Qm-sXd>CSWL}Ubx#t!VKIIl*lNGEO)TcZ3@Nr zOr~RW9VW=%f^yxmGK5z1yWk|GmO`S0H7Tw06T$2@28Iunj+l3J&0NOGCh-Zy$K+o!4Zty{Ad*7J8gjN*gwmp?@K42z(3{mTN)3lc< zHSe42@)%Hk0W;Abd?qDTM;W#C#IHQg2;VCnUuy#slcG3E`E^^(oUc74))eVr%J zt7k=7WMO3c;0gfbYc)lOiEVg8kic60AT3hX2pk$kJ!4o1H)kmbh9M}z%SYqUf^r7j zcgqAzi&vQuTtL18pidMqQJPP~{DDA_Bfn5e-*4ExYzAU((55nIPVL=Qk7E>3MK$iD zTM)~SC*@z>GX+QeMM``mDBPeK<4Mp5i^+A;d@!Ag4uOp9W%dc^Cv*2$tD;Ih@}$Wv zx_zN**@i`syHLHyK}LebQkIq3_~S5_fGWgksKVR48??;6Q54RVAU$qKz8?qvG(T>m z%&y^S|3gQ|oFw6Pn@xm4=^kUu>HCEk>aQswaRI^C_ZhiHUyzQzATIg*=vzvWIIr%@ z>ha%!#C{wq%T^ezWZ$Hs+s^|5fWS~psFNj>h4m95;Q9J4zwNnm*O`;-W4`>yNwa;f zdU+K=i=W>@He64zo}(4 zeHx--E=;Ly`1aliP55(>_l7R2D3Q_D3eXd`P8nR_^YJ- zFK%>YkJ-}CHEi$3dxw=fSMOuhm|nZ~j8REpMs=6#G{+3_(*>$`HC`WSW}1Bat&-2s z_4I{Vpx(;3U7{Ym_*p^O@yx5b-Q(~7C}{~dAb)-kdMbbBy#C;K32yZNRcPb)5y=m^ zqj)Xlne5z0?il`vNi&KT)eoy52>*?b(|%KhtP_GeXLFVrHt)8IJBQBHM890s1rzVz zINz;Lz4Z9`?$>bB=;tfZ|EV+_Jm+9Tc#g*(>MAT+Y;*6ASYf-h{b1vb-!y z^+W5~_XCMh{SHC_$yXUEZKeQ(aBU;22fpH?C8vE?V-iOi~iG za@e>tQdw9FcMDX}599S^aHj*jVxqeS&UIvyg1w_&QjV_F3>5wblQZ-Y? z#7Y0m&B~P7|Lxptr3tZo!7ii`t@|eybjztm9c6_TvvS2TsPwdnZvnMvXqQ#sIU14@ zgCR~kNwG6Bi6T8lHko~>&<)r7j^3j;y`iM+auS#j`szsRR<}U$Xs85_i-p1GzHob5 z3RNi(pbas5z2tq4Y!52p=sZW+%D+=Dg(CcRQBNuxuQt+lIBukoL}ialCsag_2XsNA z!eY(|w;Q077zI1<$d)_|$&G7$)juLdazD0Sn|nm}*=PEszzcTVb!rPODMuH*mv_mN zX*av|ZL5IJA421QG;^!a6Cs|ZNLqaN3iiKsSmQ9b_i0G`xu$Xu-H6ZJXwntsKT2B8 NgU^|f6d-`ye*l=umqY*n literal 0 HcmV?d00001 diff --git a/site/notebooks/EXECUTED/model_development/high-pearson-correlation-block.png b/site/notebooks/EXECUTED/model_development/high-pearson-correlation-block.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe44392d146dd9f414762f12a226978d1e73462 GIT binary patch literal 280332 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⪼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 Wo2z<}_xzWbFz#f&kTPq7=fDVf+vP=)T3 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­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 Y*#o|>TOV8vo&aAm?-V3T#0&!d2Qx9A{r~^~ literal 0 HcmV?d00001 diff --git a/site/notebooks/tutorials/model_development/101-set_up_validmind.ipynb b/site/notebooks/tutorials/model_development/101-set_up_validmind.ipynb index c7d00ecd2b..9a5936350c 100644 --- a/site/notebooks/tutorials/model_development/101-set_up_validmind.ipynb +++ b/site/notebooks/tutorials/model_development/101-set_up_validmind.ipynb @@ -157,7 +157,6 @@ }, { "cell_type": "markdown", - "id": "00f99235", "metadata": {}, "source": [ "\n", @@ -195,7 +194,6 @@ }, { "cell_type": "markdown", - "id": "ec5bdcec", "metadata": {}, "source": [ "\n", @@ -268,7 +266,6 @@ }, { "cell_type": "markdown", - "id": "3b4c604d", "metadata": {}, "source": [ "\n", @@ -292,7 +289,6 @@ }, { "cell_type": "markdown", - "id": "6f5341af", "metadata": {}, "source": [ "\n", @@ -316,7 +312,6 @@ }, { "cell_type": "markdown", - "id": "4327631b", "metadata": {}, "source": [ "\n", @@ -387,7 +382,6 @@ }, { "cell_type": "markdown", - "id": "4eb45e03", "metadata": {}, "source": [ "\n", diff --git a/site/notebooks/tutorials/model_development/102-start_development_process.ipynb b/site/notebooks/tutorials/model_development/102-start_development_process.ipynb index b64c31426a..4cdfa0247e 100644 --- a/site/notebooks/tutorials/model_development/102-start_development_process.ipynb +++ b/site/notebooks/tutorials/model_development/102-start_development_process.ipynb @@ -70,15 +70,6 @@ "Refer to the first notebook in this series: 101 Set up ValidMind\n" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "## Setting up" - ] - }, { "cell_type": "markdown", "metadata": {}, diff --git a/site/python-docs.zip b/site/python-docs.zip index abbee90668d27fdd68583f08c73911ce7906268b..f79a0741a815019afcf5559e8611b91f118ebe1b 100644 GIT binary patch delta 10561 zcmZ`;XINCn8eXGp1D0)+ZLqY32_Rs(2^tGc!3HQ;uz|4#MMVSlj$p+GqlhI&MRPS` zKqq=FSV^uif+o>uipo{ejGBu{Oyc96b7s#uJ3}td!=IUV-mlEp=IlG?_P2Wn|9htQ zZ{NWvlgX5_!WA<&dfFA&j^3Jt|2KA7*`8ZD9U!bMZ7yzZSKRzcadZ3P<_^c2-8Ox| zA>f=^H}Moamt!zi)Vay|ol~`LKsZhBe05i0f$z7p~mr4~2EAP8ipsHhTBO-a!@AusLw?!e0n%$8H=ydW}5zy2ix0FYK zlkiA&m>h-ZoJF6_@78dx^)eiWzXpoUj$B zYN~u`6ffLfDNhgqoN%ecPZq#XlH~ELyd5!9 z8=~kT0(eQ&Lli@!c`ZH~qUhR|GB8sidG6j8KO>y+m6r}}%~X6#6r8tA(TAdh(M6&E zLOYf#{vf=SwTjnW0mN$%d#xVT)hX^o=x~5!L!uNz;q`lp z0j`29oF=E?h6JSoy>(wv66MJWdUf-S2G3ZTtONY^l-U>7f1%XFFs;&CJShZG0|Gi_ zd<^fKY4OS=SHNx9W1rFk?MzTc6F_5uGUaaoZnKpJ0pbnSx1UCh>^GH1Vl|x3zwD4TR$!gSK=|@fpbt^{@k z=!VbiE{D4|shwx!-BmuKBzzzgK0a)VfOiLlDB$#dw&mzWcU3Y`IC-k-H4!TMc=uEl z6=4t2^=Ya^Vus%?RbTOh5Pc=^NR?g==aqVUqKw_DOC)?vS5=9w&<7~xQ`K)#ys>-M zd3Xx|*6XKF|Prlm#iER$)JjroK@9LSij9NFRZG!I>xjO~Q6D6zEt}M-B8}iCH>BCDevioc*Ln3&5g^D>ql63Uo5Xw8 zRyE0asuC=2RgV^rHT@oFMlV{`-w>JKINV1_dku0vO;jj5%)NwA{%4r`ND+WN5Cxyi zw;e(OBiz-5A#%0*U=e_oGQda4I8_g>b}uG?*i-J3)_g8M3G_Ci>80I+@;5Kih?WF;Ebhdob@TV*Pb74b z$?olz$r52~o-Pu;k?A3}3y5owvx+Xv^oZ}or^C6G9#S4-@5fdrmv|5hQa*Iqk}SCJ zp~uJMY}t=43UMBW({}lKBJEEeo`k_}^OU?OILU|(+B_2p!{anh=^g|T9%y>H=RU&V zyUcT}=nvuUJ>a}t!wI;n#Z!(ZFZYay&e{yuAtts4&@!GSz^vzzm{je391}kznSG04q9Q5{#o&MEmhl|9*jha!jMw>4R+!_Z8c%I{kb;FRSusmK?u7$gw*U7Mf5X0j+dtp zcFfa7!%q}Ci|Ya2r%L3b)O8>tZE-s30tKD?P<5PcE&&AR=_HXnU_)rI86D2k?Tz76 zJ~_)c<7F3_>_j!p)!>w0U#0UGMW%gc4M%sXbWgkR;c~4>H%iOGTE|CoV&x|naRNJ+GaSaV@C}R zQuA*|8>IWkTO`0C?k)Am9BarXsG=ML>1b${l964X<|v$Y{^sNtC*h@gIQ7&BZI;crNfri2;K zkW70u+c-f4-~wtxwb{mPK1LEBvG;wX7!aF3#LeFw&2IL&L7d#r z;M-l&u|b~BO?Inc@7*djnql;#M$uooxW0n@Ls^Zw+AusaHB6ZKzD?dttN!NZt{IZ47~b^AAN(I|MjSUd%pvO z;nyyHZ6nu$7IgKijpav;z{%r^+DFM`-Pg%v;V?sPcfcNVfWkGQaq8cOt1~TXG;*?E z95EJd@e@Z;goE!lqR*X6eo`ruM!?~h{W_3ZH}<&;Kp11x=-P9?8>E;Qwma251{d?W zTVectjSpP%+)oR86#^Y>i7**O_X#nrM6X7goLQPS+BDD=U_@xNNk?q&d+A)C527n!xy5m$L2KzU<I|#c+PEhm^P*daZVt9WB6j9-t0Wee?~drd%dKn4 zq?+{n$lkxOON?-kT<;5ex0-aY?wC~^S4HZx=)`erC*qi&TdZQ;MtD}}NaQT>vq^He zT7}w~Y}d%%jZ|At(G*%;gdd>464d1RHmQ>E4EU*2LWIscY?Foqjsf8(?6<`8O?PdQ zGo+|bxo3Mwh-3BsQq*H&Bif|*f141illRNe(Bxyq59Pl4alLm(>Hm@d>eT^~wt_i&)XhEM zG8tf64)3484@*4_VVYbByR^CjmptXXO40PPKda`feA0h0(cQEn%#gBpL{k=qA}w~pOT9`6W0 z-tUv}3)?+t)&^|IV3_MLhe1c2-6Y~A&&-aqFCgyz^YLHvUc>m73Q|>$tOsroj^l;NplNsdEUv zbB&bR$e?<14~3(Hq?iz((vbfFdVfq%FoAxyJ}6C8i3=Zuzx{L}5@(+al3qX*jq&*T zpv7b~=ss$QCJu+ox(b;r3dRpN2g7}vfR~F4x%%cD4Qg70rpNFT#k=Fjq^99xouN$D z1IE{egh10~;O}~j3r>WeRL)HKZfLOd+~P78;kNrJu_C54SSlZ45^!IzK0;Gg1?Q8| z>h_1hQhDPTxW;Wj!%qZP63;*TAy}%e0^kaY{wX+>$eC{qp+b}I2xrk@TgX-dNEsAD zH&BG9#3P;fSjg`Cs`+(n@+EjQ!x{z`RZvZl^Ai7o-3xgv3voVLpC0P}_DOuC9={+T zdP;MS7S65>k@}Vx>j*zdoV6(bL5Soo{;~PXgODX8cW(W8?_evYt=x_< zdz>Ly9oj`?!(Qiyj#AWeAoL4DS^s&cI5VSmUxXeYkB>v`9nzO-UhBIlVV|IXcW~?{ zfLWa!)MfC)%0*P!+3_~{9GZ9Tr@;^LSlh82ep?-Cg>ktK&%e!TXdm%qLsQ!ElcC>^kP|736$HY#fIZS$D;BdHw zFd&;8UX$Xo#~F*Tv1$_6kBVIOxUz!q{1i-nmDs;OEXvg+{>K-De|&KxGSQ8&h_?G@ zJ_{S!o&PRj)rP;?c0WiLekGOPf07+e{kX$lUNL$xGWF%9E$+E;`y^z<3UI6cPsd`Kd|yEwgeExuLSmUu1rmE zV#JkG3E(vv)4LzAz?ei3L6a>^1jFf--x9$HdZi!<^rBa8B!PbXiYTyGGU!fYs*=G# zdd0mDNT*j8_5poqo`-!v0*&d{7Yw0S&h`cU=~Iy@Ad$vwOku6?NClZRW?3reL-YKQ z3cAoM*lh$Oy8l2wkWKT1^an%fm8$+=FukH3z+y@VfHWHOd;l0jugo0?vgnm31HmwU zMfCiXK_HpNG!9}tmYl}&oJs>3^r`4{HWCh|gIpRDnZf#SPli(;(La{KU_7niJA>Is z&<+84H1m!jU=qFJ$OKd9m7|#;hhFKN<&-5#KamCUX-w)+){0Mtva+&zK0yAkI>u4~6UU_#k>mM+N zm40{(E4|xTFqP){Xe@hbKn}}%JqJvrPi5z_ckx3m%acEjmG##+@FvZ(^i6g}KAyF7 z-FOzGpTO!nboKL6sPTC=9WxhbMTKT zporFR^IL30S@T%C_O@AxoC?O$Jcp-(S@cT6G!}DV8haNR`CtKk>Ty1pOs~wH4rbFU zUNhL}-8h4d)sUGiX8%l3Nb~e8V7+m(fc5;KS!`Z3&0_sCVm3&nnJ>Em2ZP2>QqG`8@wwD*)sooA#2vWBG%1+7J&g2F`P1o4TP`euz@*zF1zyCTs8%> z=Yf$l^UZl|OBptwEykDUvqk-l1#BxgzJPUe+(Nd&)-7aPT;w9Q#qC(cTB=>lrcUu< zhPh%1Yv{@)tfB3fvMWoLvc%8YU<#J8PW^cq8{c!5v&_$yvlsa03N|!aRw7jLHr9(-}3neWbOIkXe zXmQzc+=jsO>RezI#o!CMdP8Nsi(HsFQ|E#ltJ#^aZYxaq?KZgzA4@`>ZrNEXSx1{; zJB3kLKB?YifWsZU`MNF;_fe_haMfLxN>Y8oWmJ@a`u&c}!1gFYQFA*B0IgOYCjy!q z<)(^AbQ&M4373;loxBsUMD~`y;tbN`f-QO_S<_p-9{{oW@@N6TxVSuD-bY+UUChMG z=7p~!)zjt6qXpxZDtV#^uo)+-s^n^z+uSIRcgztwcOEQlZIgFvZ|TQ2d5QyUONQN& z+pqEt5T+(n(MtpfmS%=3hQ|nAyf;kIy**`6mO{$hoo&7bJnJh@E!m!>_!b;outL#~ zp~Nx8VgDk#Rx17g-l{sq%gzAE8m3umAocZ%FC(>7AURZB;-3cJ>7mlM+i*!UR2e|Y z;!TN41$phRqBPpwX6VJOHyYjJWU@~9+cQQV-0+!Fhr=~WFL9+q zM2!S#l?kyzZe}DXlbr##aIXVOH?liX83TZ(LS^dT09@uO^#CyKS0*q3LK()#3G915 zQ)Y;BkL%qnxUa8=npkcskHvY|eEwyZtf`XvJPzaMSAx93>C=OeR&6f{S{8!%2^Ifl zSfd%YGs%Un*;|44Y*E|S$a|{1MN2f$F#PbSITGI<5~{#62bfoqXFXLZ;Bd-x)k^}D z$?@LlDn?=V$;UHPNf3tb9#wy5azTBi_*k`0ju(`9xs%Mjsw*I0zw4?bXXrhW`l0H# zXd&2r8{Ce+6DyNltf-8)cvsFvIy@@_8Jt7SoEW6Xy~=|XSfj9eXZ)ux)thlWC_aGyA)~5ajY<^>P9VN{*%7rpfk(_YXQlR|L2-ndf zfMy^XKU!!$LIOv*s(~SDt?N(`K%LU#2Pw2v53hAC0YKatSIKLkmLCOq8OX^quC85$ z)Yn|NHj&WOM`GN!uOPZ#f{0gVA4RA1-UKlB9wK@ z_Y+Sgc9F^M?3Kxqa9qAN3cr%&2FHa>w6q7=yXfL9w}dW2Ib2xnCe<;`eq2pTsT)L) z`mWQI6v3r;-QI__(Nd|J*?4AS+57XVHeQ=m? zBQrDH4*-MD3it71J{)`Rh8N`NPvJeS?s779rF&$Y&}%l-K3$SZYw#SNU8sr0P4(_Z z$4Ww1P5{E;_uVB`I0&zi1Fi0XkmW`n4`yR6g!YFNaJOuL2eSi0?{Fg?13kI}d%r~< zuR4rkTfpSfB9DTuLZ-XbdW>M^Y>ElS`JZV{kVWr!5HSCbyB?Bk9R7LW*aMo&q@=|o z9#9wbo>|UZf+H@K4Tc8N!OOD{Kt(B@OsIN74Q7I)3B{h{M1t9~0{zLwV$XFDWyV`9 zxgOV+dNq^se|pXU;^$v_NFLs z)?Ol|37W6L#FRpf6rh8~Kz=CH)B??}{Te9%2MtZ)0Zk1s-1=0L?QBP=mS95D9SS|W zRT1+a;_VeqRI5{{3FPh)!N711i5_FtQ{lHIRaD? znx|IKQ?gtqRW1eCw`rk5mj>=MzO4IyM+EtAye=8?)Z;as)P5Z_3cNTuzz6qfvK+#_ zK2*7qf_$AH;MeYSVs+rnL|Lut0cKOK>%>!w(2nwU7a?|C$>qGj7@2Iv7F)W*@wutU z;(W~5s7}12w?faq6{DB-pH6|mF+E!vh%ru|1E}I$J)CSz7A@zjz zhb3@9jXUARG(hN(wtoFF*>TcK0}Mx6IR;yYxk(;==VfpE*yue~bVNA2EhcaKp%OdD zTiRY>?(`sUxD{0{@&3Pxk6P+|3ao!u>&FClaD^C;dmBI>ad*8X4Ty(7riZ^P zncL!h1Cl&I@6%KAu~D93yV#KL-%il$#y@oeIIb~j^3hY@8_>*) zI-KblOPl%p?Kt7Chc{mK)K`Q16d^5cjr22!`E_VoNnVWdvsY>QSiix}00SXo{j^XJ z*UJ5v#{yI^rWIUI{@mnO1KB!o(NB7F+8%m%{D=?@@xJ6I2S8w(A9E4zOz4K3hPe?| zqx7bBoGJ#=WHsgjpzBDZBvMRm^aQ3-5VRX& zd&HOGWe<&VTzfHCPEM~jSzw30e%B=3MI76!AbF=ulR#VVe{W*8SLjG;(*FmOAKb&A zJ%3@%jjl3Tc1`7vAy&N2?C&q8ODL>nv;Pf{VNIsLc(mD`fZU621GzcWAA{N1EBz(2 zw0(Cb|6S?79&W11Pmk^Yi>AbYhsbq4xNn=E7T2Hf7q6=#^?7pYq<c5JSa%71fc^@osSC|gClMIvQ>PS+E;wqIE(bOS zLZ7hTLgt%qo26t(s!zRRz7NE4x&TS_l-NMF=mK5`Vs&yr`wpZa^wx0@0M?=aw(Dsfyqa!_B1FymbruFE-g$JnBvlyq#9YTIqhJ2k((}j96t#{xNh{AVPpcp2hD#(H1 z58rUIMbjEb2JH*XhPnMW0wqVOpoNxm71ypdb;6d$AUXNslfWqeO_E#S=wMEUH{_Nf z;;z%Q!{eRM$NOE7U-;f3b2iaHhT=S{F&tatEq)?i%FNt&%OXhkpAY|9@DjzhRzg=f zwh_5tly8x~;@G0LeV$Wc`hq@30;gMwA*nm6Eo^JSG|)Qo!7j^V2%+I4i*#Z;qJ`Th zp|{WO0!>A6kOZRXvVZHK?ZAy3?hw=;++6)})8P&DJ>66Rs)*Uhs>0D6l$c)W5q{8D zQwGOVbhn_(F~S}7`LdyJ-lG&ZE1gae8g8)D789D%=g@8s*FNdgox=NV!?({Et+;zR z`{l%u7Bx9v5!5ACc%^P#b$PWfZPDi{mIp;*bTvpP=AMhp+88thl2rVAkaz+R+LHbW z1-LXaSUNczxpP)ZT~u%b>_gGmU`Z1WsC3CcPTn3D90Jf!HU_7QF4^Qm=(nG4U~%q+ zVCeY^apUqH)4VV+cO51$jE9(AMAVSA*KN;F+<)jpEIT zXUvaVPr>xC2QLPN3NRutg8%qC7kpH%ir`EGcK^xU#lETPBlhY&?SB7eNa-{a-Y`Ohdkc-^uh3$4e@iL(!Hc;RCxTaa$2;f3!Y6 zGVt}&bV&n!LEd+l?l~Gfw=PsVw?wTI`XsUUqJn#&Qo4l4<}dd`mqG1({^y;;ZIrfV zJ6=9EI2PCXgy}^QFdHpA3Xfx|7bQ928x{h2`Z6snR>V_oGl>}xmJWBm608a9CbH423zv>E(t0TDGoWnvG)%lRlMbJS9fHTlk&agQQf>R# zC3t;1HT(ne?@rc(0GQLo%4~*kS-DKAx>{d{&!PDjej0i|S|;mUfxoQ@^T+XdR`d9iNQ_x^`#I+yFU`H1BL;YEv`~6TNiy6=#4P!^n_eTTSRZ*!ZiN$PA<)d&* zLs=|lMH=eI^8Ap7y0IfPZGaKee`o;8VR=FaqT%dF^*}U~9nlQpF=c~LI*WNa2#sS$ z<_|{M?8u|RXoN5#W`5cbl)_?~hVU6nN#}Xaq@zrBRZIr2gu@vqkHth~@;Tg>Y4=CW zk7+2H$a?t3P+kd|VJM$v-ZczOVMnZ4Xc{~6P8P~#N4jR)ZHd-TWupQXlQx`>;)CJ5 zt?Uu}o;J4|89b8bX&T9UIC>P%{GU;12J6q995jI)`7MXf#;VbLr1CMm^)+MAY?jA= zESkiQyg8Q74;sf?KRS-L-eWwP&horBo?kU6muLPs7fohY<>c{u@k1WZQ!s(I_16US zD$BF{RenT1k&kr4L>{A?#QRe<3BATLTPO4TzHc&LDSlIUg>RX{V^mZ5id!<3_ow4D zd+cK6mQLeq@Q-PznDub$YrLZT^ZB^;w;PF?j>fY*N2jAX>`3Aa9&>31zZaPWXc4>W zVF8-Tj?ABl=CUK6vv~Dxp2cf5bT*GUI2#qQJiQC~Y}_p5Ge2YwUl+}D`238Ti_%!; z%X97Lm)JLAUq`6|M%@nC zvse{J*V^kutQ?c(;Hh$g6GZ&Qe z%=gN9IZxfh`+Rp3A6M>XG?tC@+s*trG>{IWTSEi-&CjX;4kw{J9zo@ zsNyf!`>OaL^gDT;;+=fxKkwwXeR4Hlrk_;v2SJ}*{K#AFM!a_OPn*KsD4q!&U*C;h hW=F#J@Q Date: Mon, 17 Mar 2025 16:55:21 -0700 Subject: [PATCH 09/77] Updated template for course registration --- .../course-registration.qmd | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/site/training/training-templates/course-registration.qmd b/site/training/training-templates/course-registration.qmd index 5e9adc58f5..3a03382d57 100644 --- a/site/training/training-templates/course-registration.qmd +++ b/site/training/training-templates/course-registration.qmd @@ -4,6 +4,40 @@ subtitle: For {{< var vm.product >}} date: last-modified # REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED search: false +listing: + - id: modules + type: grid + grid-columns: 2 + max-description-length: 500 + sort: false + table-hover: true + image-align: left + contents: + - path: course-slides.qmd + title: "Title one" + subtitle: "Module 1" + description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" + reading-time: "30" + author: "{{< var vm.product >}}" + - path: course-slides.qmd + title: "Title two" + subtitle: "Module 2" + description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" + reading-time: "30" + author: "{{< var vm.product >}}" + - path: course-slides.qmd + title: "Title 3" + subtitle: "Module 3" + description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" + reading-time: "30" + author: "{{< var vm.product >}}" + - path: course-slides.qmd + title: "Title 4" + subtitle: "Module 4" + description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" + reading-time: "30" + author: "{{< var vm.product >}}" + fields: [title, subtitle, description, reading-time] --- As a {{ role }} new to {{< var vm.product >}}, learn how to {{ course_overview }}. @@ -15,31 +49,23 @@ As a {{ role }} new to {{< var vm.product >}}, learn how to {{ course_overview } :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns .pr3} -### Learn how to - -- {{ learning_point_1 }} -- {{ learning_point_2 }} -- {{ learning_point_3 }} -- {{ learning_point_4 }} -- {{ learning_point_5 }} -- {{ learning_point_6 }} - -#### Duration +#### Total duration {{ duration }} minutes -[register](#register){.button-green .cta} ::: -::: {.w-50-ns .pa3} +::: {.w-50-ns .pa3 .tr} -::: {.preview source="course-slides.qmd"} -::: +[register now](#register){.button-green .cta} ::: :::: +:::{#modules} +::: + ::: From 53538b203c718863a361441c1021560d2def83c0 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:09:31 -0700 Subject: [PATCH 10/77] Updated the Developer Fundamentals registration --- .../administrator-fundamentals-register.qmd | 2 +- .../developer-fundamentals-register.qmd | 69 +++++++++++-------- .../validator-fundamentals-register.qmd | 2 +- 3 files changed, 43 insertions(+), 30 deletions(-) diff --git a/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd b/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd index 208467fcea..9053ec36e8 100644 --- a/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd +++ b/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd @@ -6,7 +6,7 @@ aliases: - training-for-administrators.html --- -As an administrator who is new to {{< var vm.product >}}, learn how to onboard your organization, manage users and roles, and manage permissions for specific roles. +Learn how to use {{< var vm.product >}} as an **administrator** to onboard your organization, manage users, roles, and permissions, and customize the {{< var vm.platform >}} for your institution's requirements. ::: {.attn} diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index f15d5be2c4..13a75c02c7 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -4,9 +4,43 @@ subtitle: For {{< var vm.product >}} date: last-modified aliases: - training-for-model-developers.html +listing: + - id: developer-modules + type: grid + grid-columns: 2 + max-description-length: 500 + sort: false + table-hover: true + image-align: left + contents: + - path: course-slides.qmd + title: "Using {{< var vm.product >}} for model development" + subtitle: "Module 1" + description: "{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Connect to your model in the {{< var validmind.platform >}}
{{< fa check >}} Preview your model's documentation template
{{< fa check >}} Explore available {{< var vm.product >}} tests" + reading-time: "30" + author: "{{< var vm.product >}}" + - path: course-slides.qmd + title: "Learning to run tests" + subtitle: "Module 2" + description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Utilize the output from tests you've run
{{< fa check >}} Insert test results into your model's documentation" + reading-time: "45" + author: "{{< var vm.product >}}" + - path: course-slides.qmd + title: "Implementing custom tests" + subtitle: "Module 3" + description: "{{< fa check >}} Implement, run, and log custom inline and reusable tests
{{< fa check >}} Refresh your template to include inserted test-driven blocks
{{< fa check >}} Configure your template to include custom tests" + reading-time: "45" + author: "{{< var vm.product >}}" + - path: course-slides.qmd + title: "Finalizing model documentation" + subtitle: "Module 4" + description: "{{< fa check >}} Refine your model documentation
{{< fa check >}} Submit your model documentation for approval
{{< fa check >}} Track changes and other updates to your model" + reading-time: "30" + author: "{{< var vm.product >}}" + fields: [title, subtitle, description, reading-time] --- -As a developer who is new to {{< var vm.product >}}, learn how to generate model documentation, add your own tests, edit the content, and then submit your documentation for approval. +Learn how to use {{< var vm.product >}} as a **developer** to generate model documentation, automate testing, and track your model's progress through the model lifecycle. ::: {.attn} @@ -15,45 +49,24 @@ As a developer who is new to {{< var vm.product >}}, learn how to generate model :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns .pr3} -### Learn how to +#### Total duration -#### Part 1 - -- Initialize the {{< var validmind.developer >}} -- Start the model development process -- Edit model documentation -- Collaborate with others - -#### Part 2 - -- Train a model -- Implement custom tests and integrate external test providers -- Finalize testing and documentation - -#### Part 3 - -- View documentation activity -- Submit for approval +150 minutes ::: -::: {.w-50-ns .pa3} +::: {.w-50-ns .pa3 .tr} -::: {.preview source="developer-fundamentals.qmd"} -::: - -#### Duration - -100 minutes - -[register](#register){.button-green .cta} +[register now](#register){.button-green .cta} ::: :::: +:::{#developer-modules} ::: +::: {{< include /training/_training-register.qmd >}} diff --git a/site/training/validator-fundamentals/validator-fundamentals-register.qmd b/site/training/validator-fundamentals/validator-fundamentals-register.qmd index 6ce257052a..d7b1ad01b7 100644 --- a/site/training/validator-fundamentals/validator-fundamentals-register.qmd +++ b/site/training/validator-fundamentals/validator-fundamentals-register.qmd @@ -6,7 +6,7 @@ aliases: - training-for-model-validators.html --- -As a validator who is new to {{< var vm.product >}}, learn how to review model documentation, prepare your validation report, track issues, and submit your report for approval. +Learn how to use {{< var vm.product >}} as a **validator** to generate validation reports, automate testing, and collaborate with your model development team. ::: {.attn} From fae57e3f1c4d978cbdd5dcdb028c9cc70e4a91ef Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 09:57:14 -0700 Subject: [PATCH 11/77] Adjusting the bullets for dev --- .../developer-fundamentals-register.qmd | 4 ++-- site/training/program/learning-paths.qmd | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index 13a75c02c7..1039980296 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -16,13 +16,13 @@ listing: - path: course-slides.qmd title: "Using {{< var vm.product >}} for model development" subtitle: "Module 1" - description: "{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Connect to your model in the {{< var validmind.platform >}}
{{< fa check >}} Preview your model's documentation template
{{< fa check >}} Explore available {{< var vm.product >}} tests" + description: "{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Connect to your model in the {{< var validmind.platform >}}
{{< fa check >}} Preview your model's documentation template" reading-time: "30" author: "{{< var vm.product >}}" - path: course-slides.qmd title: "Learning to run tests" subtitle: "Module 2" - description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Utilize the output from tests you've run
{{< fa check >}} Insert test results into your model's documentation" + description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Insert test results into your model's documentation" reading-time: "45" author: "{{< var vm.product >}}" - path: course-slides.qmd diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 40534ee1e4..f5ece6abd0 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -57,7 +57,6 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc - Register a model in the {{< var validmind.platform >}} - Connect to your model in the {{< var validmind.platform >}} - Preview your model's documentation template -- Explore available {{< var vm.product >}} tests ::: ::: {.w-50-ns} @@ -66,7 +65,6 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc - Identify relevant tests to run from {{< var vm.product >}}'s test vault - Initialize datasets & models for use with the {{< var validmind.developer >}} - Run and log out-of-the-box tests for new and existing models -- Utilize the output from tests you've run - Insert test results into your model's documentation ::: From 8f0b4c9456bd5e6e8a342b676c210a5c0c778ee1 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 11:57:07 -0700 Subject: [PATCH 12/77] Draft for developer module 1 --- .../developer-fundamentals-register.qmd | 4 +- .../using-validmind-for-model-development.qmd | 213 ++++++++++++++++++ site/training/program/learning-paths.qmd | 2 +- 3 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 site/training/developer-fundamentals/using-validmind-for-model-development.qmd diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index 1039980296..062363cd52 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -13,10 +13,10 @@ listing: table-hover: true image-align: left contents: - - path: course-slides.qmd + - path: using-validmind-for-model-development.qmd title: "Using {{< var vm.product >}} for model development" subtitle: "Module 1" - description: "{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Connect to your model in the {{< var validmind.platform >}}
{{< fa check >}} Preview your model's documentation template" + description: "{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Connect to your registered model
{{< fa check >}} Preview your model's documentation template" reading-time: "30" author: "{{< var vm.product >}}" - path: course-slides.qmd diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd new file mode 100644 index 0000000000..3047292769 --- /dev/null +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -0,0 +1,213 @@ +--- +title: "Using {{< var vm.product >}}
for model development" +subtitle: "Module 1 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" +lightbox: true +# REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED +search: false +format: + revealjs: + controls: true + controls-tutorial: true + help: true + controls-back-arrows: visible + transition: slide + theme: [default, ../assets/slides.scss] + slide-number: true + chalkboard: false + preview-links: auto + view-distance: 2 + logo: /validmind.png + footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" + # html: + # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml + # output-file: _course-slides.html + # search: false +title-slide-attributes: + data-background-color: "#083E44" + data-background-image: "../assets/home-hero.svg" +skip_preview: true +--- + +# Learning objectives + +_"As a **developer** who is new to {{< var vm.product >}}, I want to learn how to generate model documentation, automate testing, and track my model's progress through the model lifecycle."_ + +::: {.tc} +
+This first module is part of a 4-part series: +

+[Developer Fundamentals](/training/developer-fundamentals/developer-fundamentals-register.qmd){.button target="_blank"} +::: + + +## In module 1 + +1. Install the {{< var validmind.developer >}} +2. Register a model in the {{< var validmind.platform >}} +3. Connect to your registered model +4. Preview your model's documentation template + +First, let's make sure you can log in to {{< var vm.product >}}. + +{{< include /training/assets/_revealjs-navigation.qmd >}} + +## Can you log in? + + + +To try out this course, you need to have been [onboarded](course-registration.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa check >}} Role Name**]{.bubble} role. + +
Log in to check your access: + +::: {.tc} +[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai/){.button target="_blank"} + +
+Be sure to return to this page afterwards. + +::: + + +# iFrame embed right {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="https://app.prod.validmind.ai/" data-preload="yes"} + +:::: {.fr .f3 .mv5 .nr4 .pa5 .overlay} +This is a right-aligned modal `.overlay`
on top of the live {{< var vm.product >}} Platform. + +- It mimics the style of the docs site callouts. +- **Bold text shows up in a different colour.** +- You can use an additional callout style
with this class: `.embed` + +::: {.f4 .pl3 .pr3 .embed} +**This is the nested embed**,
which also has its own bold styling. +::: + +As you can see, you need to get creative
with some of your `
`s to determine
the max-width of the overlay box. + +:::: + +# iFrame embed bottom {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html" background-interactive="yes" data-preload="yes"} + +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} +**This is a bottom-aligned modal `.overlay` on top of a rendered site file.** + +::: {.f4} +You can fully interact with the page contents. +::: +:::: + +# iFrame embed footer {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="https://app.prod.validmind.ai/settings" background-interactive="true" data-preload="yes"} + + +::: footer +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +Sometimes you'll need to move the `overlay` to the footer in order to avoid overlap with UI elements. + +::: {.f4} +This will also stretch the overlay to 95%. +::: + +:::: +::: + +# Scrollable single user guide {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +This is a simple two-column user guide for one set of instructions. + +::: {.f5 .nt2 .pl2 .mb4} +(Scroll down for the full instructions.) +::: + +::: {.tc} + + +[Learn more ...](/index.qmd){.button target="_blank"} +::: + + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +### Single `h3` header + +Here you would embed some single-source instructions using Quarto's includes functionality, if they were available. + +#### This is what an `h4` looks like + + ![Here's what a `.screenshot` looks like](/guide/model-documentation/add-content-block.gif){.screenshot} + +Some filler text to demonstrate the scrollable feature: + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis sapien blandit, blandit velit nec, varius urna. Etiam id convallis eros. Ut quis pharetra nulla, at luctus ipsum. Quisque sagittis tempus neque, quis molestie nunc ultrices in. Nam eget sollicitudin turpis. Proin imperdiet vitae erat in porttitor. Morbi id libero eu lorem consequat semper nec sed tellus. Nullam sollicitudin justo eu libero lobortis iaculis. + +- Nullam et dui et ipsum placerat ullamcorper vitae sed enim. Aenean suscipit libero eu odio venenatis, eu consequat odio consequat. +- Proin fermentum ligula ex, non posuere odio sagittis sit amet. +- Sed eleifend, odio quis posuere semper, tellus tortor convallis lacus, in egestas orci felis vel neque. +- Phasellus a congue metus. Nulla dictum at massa et laoreet. Nulla mauris justo, suscipit eu augue nec, feugiat tristique est. + +::: +:::: + + +# Scrollable tabset user guides {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +You can also embed several sets of instructions into the same two-column layout. + +::: {.tc} + + +[Learn more ...](/index.qmd){.button target="_blank"} +::: + +::: + +::: {.column width="70%" .bl .pl4 .f3} +::: {.f5 .nt2} +::: + +For example, the following links to our [_collaborate-with-others-comments.qmd](/guide/model-documentation/_collaborate-with-others-comments.qmd){target="_blank"} single-source include file. + +All you need to do is make sure that the headers within `.panel-tabset` are set to `h3` (`###`). + +::: {.panel-tabset} + +{{< include /guide/model-documentation/_collaborate-with-others-comments.qmd >}} + +::: + +::: + +:::: + + +Try it **live** on the next page. {{< fa hand-point-right >}} + + +# Topic summary slide + +Summarize the benefits of {{< var vm.product >}} for the role or topic you just covered here, then link to the relevant user guides below. + +::: {.tc} + + +[Change this link and text](/guide/guides.qmd){.button target="_blank"} +::: +
+ +Or, find your next learning resource on [{{< var validmind.training >}}](/training/training.qmd). \ No newline at end of file diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index f5ece6abd0..5a13e1bee0 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -55,7 +55,7 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc - Install the {{< var validmind.developer >}} in your environment - Register a model in the {{< var validmind.platform >}} -- Connect to your model in the {{< var validmind.platform >}} +- Connect to your registered model - Preview your model's documentation template ::: From fc3f5d938d909bea9caca73730166a0a2a354b8a Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 12:38:18 -0700 Subject: [PATCH 13/77] Developer Fundamentals - Intro draft --- .../using-validmind-for-model-development.qmd | 75 +++++++++++++++++-- 1 file changed, 68 insertions(+), 7 deletions(-) diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 3047292769..58d3f52c29 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -1,5 +1,5 @@ --- -title: "Using {{< var vm.product >}}
for model development" +title: "Using {{< var vm.product >}}
for model development" subtitle: "Module 1 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true # REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED @@ -42,10 +42,14 @@ This first module is part of a 4-part series: ## In module 1 -1. Install the {{< var validmind.developer >}} -2. Register a model in the {{< var validmind.platform >}} -3. Connect to your registered model -4. Preview your model's documentation template +::: {.f2} +1. [{{< var vm.product >}} for model development](#validmind-for-model-development) +2. Install the {{< var validmind.developer >}} +3. Register a model in the {{< var validmind.platform >}} +4. Connect to your registered model +5. Preview your model's documentation template + +::: First, let's make sure you can log in to {{< var vm.product >}}. @@ -55,17 +59,74 @@ First, let's make sure you can log in to {{< var vm.product >}}. -To try out this course, you need to have been [onboarded](course-registration.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa check >}} Role Name**]{.bubble} role. +To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role.
Log in to check your access: +:::: {.columns} +::: {.column width="50%"} +::: {.tc} +[Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} +::: + +::: +::: {.column width="50%"} ::: {.tc} -[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai/){.button target="_blank"} +[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} +::: +::: +::::
+ +::: {.tc} Be sure to return to this page afterwards. +::: + + + +# ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Jupyter Notebook series + +::: {.f3} +When you run these notebooks, they will generate a draft of model documentation and upload it to {{< var vm.product >}}, complete with test supporting test results. + +::: +::: + +::: {.column width="70%" .bl .pl4 .f3} +### {{< var vm.product >}} for model development + +Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: + +1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} + +::: +:::: + +Let's start our journey with **101 Set up the {{< var validmind.developer >}}** on the next page. {{< fa hand-point-right >}} + +## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html" background-interactive="yes" data-preload="yes"} + + +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} +**101 Set up the {{< var validmind.developer >}}** +::: {.f4} +During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. + +For now, **scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. ::: +:::: # iFrame embed right {background-color="#083E44" background-image="/training/assets/home-hero.svg"} From ec9d1e6110a8c17a656d56435db95e942b1a6334 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 13:29:43 -0700 Subject: [PATCH 14/77] Developer Fundamentals - Register model draft --- .../developer-fundamentals-register.qmd | 2 +- .../using-validmind-for-model-development.qmd | 77 ++++++++++++++++++- site/training/program/learning-paths.qmd | 2 +- 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index 062363cd52..b323a42962 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -16,7 +16,7 @@ listing: - path: using-validmind-for-model-development.qmd title: "Using {{< var vm.product >}} for model development" subtitle: "Module 1" - description: "{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Connect to your registered model
{{< fa check >}} Preview your model's documentation template" + description: "{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Connect to your registered model
{{< fa check >}} Preview your model's documentation template" reading-time: "30" author: "{{< var vm.product >}}" - path: course-slides.qmd diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 58d3f52c29..ce81c9231c 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -44,8 +44,8 @@ This first module is part of a 4-part series: ::: {.f2} 1. [{{< var vm.product >}} for model development](#validmind-for-model-development) -2. Install the {{< var validmind.developer >}} -3. Register a model in the {{< var validmind.platform >}} +2. [Register a model in the {{< var validmind.platform >}}](#register-a-model) +3. Install the {{< var validmind.developer >}} 4. Connect to your registered model 5. Preview your model's documentation template @@ -57,8 +57,6 @@ First, let's make sure you can log in to {{< var vm.product >}}. ## Can you log in? - - To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role.
Log in to check your access: @@ -128,6 +126,77 @@ For now, **scroll through this notebook** to explore. When you are done, click [ ::: :::: + + +# Register a model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="https://app.prod.validmind.ai" background-interactive="true" data-preload="yes"} + +::: {.fr .f3 .nr5 .pa5 .overlay} +**Welcome to the {{< var validmind.platform >}}** + +From here, you can: + +- Register models in the model inventory. +- Review and edit model documentation
generated with the introductory notebook. +- Collaborate with model validators to get
your documentation approved. +- And much more! + +::: {.f4 .pl3 .pr3 .embed} +**To start the documentation process**, you register a +
new model in the model inventory or select one that +
has already been registered. +::: + +**Learn how to register a model** +
on the next page. {{< fa hand-point-right >}} +::: + + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" data-preload="yes"} + +:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} +**Welcome to the model inventory** + +To register a model: + +1. Click **+ Register Model**. +2. To register a model for use with this module, select: + +::: {.f4 .nt2} +- **Documentation template:** `Binary classification` +- **Use case:** `Marketing/Sales - Attrition/Churn Management` + + You can fill in other options according to your preference. +::: + +When you're ready to register your model, +
click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory/?register=open" background-interactive="true" data-preload="yes"} + +:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} +**Register a binary
classification model** + +::: {.f5 .nt2} +- **Documentation template:**
`Binary classification` +- **Use case:**
`Attrition/Churn Management` + + You can fill in other options
according to your preference. +::: + +::: {.f4} +When you're done,
click [{{< fa chevron-right >}}]() to continue. + +::: + +:::: + + + + # iFrame embed right {background-color="#083E44" background-image="/training/assets/home-hero.svg"} diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 5a13e1bee0..12a1a0d1a3 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -53,8 +53,8 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc ::: {.w-50-ns} #### Module 1
Using {{< var vm.product >}} for model development -- Install the {{< var validmind.developer >}} in your environment - Register a model in the {{< var validmind.platform >}} +- Install the {{< var validmind.developer >}} in your environment - Connect to your registered model - Preview your model's documentation template ::: From 2472bc204031e99e4e835a2653d8d6fe22a8e2b3 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 14:26:59 -0700 Subject: [PATCH 15/77] Developer Fundamentals - Module 1 draft --- .../developer-fundamentals-register.qmd | 2 +- .../using-validmind-for-model-development.qmd | 157 ++++++------------ 2 files changed, 54 insertions(+), 105 deletions(-) diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index b323a42962..dd8baebd9d 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -19,7 +19,7 @@ listing: description: "{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Connect to your registered model
{{< fa check >}} Preview your model's documentation template" reading-time: "30" author: "{{< var vm.product >}}" - - path: course-slides.qmd + - path: learning-to-run-tests.qmd title: "Learning to run tests" subtitle: "Module 2" description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Insert test results into your model's documentation" diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index ce81c9231c..63493378f8 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -34,20 +34,19 @@ _"As a **developer** who is new to {{< var vm.product >}}, I want to learn how t ::: {.tc}
-This first module is part of a 4-part series: +This first module is part of a four-part series:

[Developer Fundamentals](/training/developer-fundamentals/developer-fundamentals-register.qmd){.button target="_blank"} ::: -## In module 1 +## Module 1 — Contents ::: {.f2} 1. [{{< var vm.product >}} for model development](#validmind-for-model-development) 2. [Register a model in the {{< var validmind.platform >}}](#register-a-model) -3. Install the {{< var validmind.developer >}} -4. Connect to your registered model -5. Preview your model's documentation template +3. [Install the {{< var validmind.developer >}}](#install-the-validmind-library) +4. [Preview your model's documentation template](#preview-model-documentation) ::: @@ -195,149 +194,99 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. :::: - - + -# iFrame embed right {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# Install the ValidMind Library {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {background-iframe="https://app.prod.validmind.ai/" data-preload="yes"} +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -:::: {.fr .f3 .mv5 .nr4 .pa5 .overlay} -This is a right-aligned modal `.overlay`
on top of the live {{< var vm.product >}} Platform. +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +**Get your code snippet** -- It mimics the style of the docs site callouts. -- **Bold text shows up in a different colour.** -- You can use an additional callout style
with this class: `.embed` +::: {.f4} +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment. Once your model is registered: -::: {.f4 .pl3 .pr3 .embed} -**This is the nested embed**,
which also has its own bold styling. +1. Select the name of your model to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. ::: -As you can see, you need to get creative
with some of your `
`s to determine
the max-width of the overlay box. - :::: -# iFrame embed bottom {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} -## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html" background-interactive="yes" data-preload="yes"} - -:::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} -**This is a bottom-aligned modal `.overlay` on top of a rendered site file.** +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Install & initialize the {{< var validmind.developer >}}** ::: {.f4} -You can fully interact with the page contents. -::: -:::: +With your code snippet copied to your clipboard: -# iFrame embed footer {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/intro_for_model_developers.ipynb){target="_blank"} +2. Run the cells under **Initializing the {{< var validmind.developer >}}**. -## {background-iframe="https://app.prod.validmind.ai/settings" background-interactive="true" data-preload="yes"} - - -::: footer -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} -Sometimes you'll need to move the `overlay` to the footer in order to avoid overlap with UI elements. - -::: {.f4} -This will also stretch the overlay to 95%. +When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. ::: - :::: -::: - -# Scrollable single user guide {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -This is a simple two-column user guide for one set of instructions. -::: {.f5 .nt2 .pl2 .mb4} -(Scroll down for the full instructions.) -::: -::: {.tc} - + -[Learn more ...](/index.qmd){.button target="_blank"} -::: +# Preview model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - -
Try it **live** on the next page. {{< fa hand-point-right >}} -::: +## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} -::: {.column width="70%" .bl .pl4 .f3} -### Single `h3` header +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Preview the documentation template** -Here you would embed some single-source instructions using Quarto's includes functionality, if they were available. +::: {.f4} +You can preview your model's documentation template right from the {{< var validmind.developer >}}: -#### This is what an `h4` looks like +1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/intro_for_model_developers.ipynb){target="_blank"} +2. Run the cells under **Getting to know ValidMind**. - ![Here's what a `.screenshot` looks like](/guide/model-documentation/add-content-block.gif){.screenshot} +When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. +::: +:::: -Some filler text to demonstrate the scrollable feature: +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis sapien blandit, blandit velit nec, varius urna. Etiam id convallis eros. Ut quis pharetra nulla, at luctus ipsum. Quisque sagittis tempus neque, quis molestie nunc ultrices in. Nam eget sollicitudin turpis. Proin imperdiet vitae erat in porttitor. Morbi id libero eu lorem consequat semper nec sed tellus. Nullam sollicitudin justo eu libero lobortis iaculis. +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +**Verify the documentation template** -- Nullam et dui et ipsum placerat ullamcorper vitae sed enim. Aenean suscipit libero eu odio venenatis, eu consequat odio consequat. -- Proin fermentum ligula ex, non posuere odio sagittis sit amet. -- Sed eleifend, odio quis posuere semper, tellus tortor convallis lacus, in egestas orci felis vel neque. -- Phasellus a congue metus. Nulla dictum at massa et laoreet. Nulla mauris justo, suscipit eu augue nec, feugiat tristique est. +::: {.f4} +Once you've called `preview_template()`: +1. From the model inventory, select the name of your model to open up the model details page. +2. On the left sidebar that appears for your model, click **Documentation**. +3. Note how the structure of the model documentation reflects the previewed template. ::: -:::: +:::: -# Scrollable tabset user guides {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} -You can also embed several sets of instructions into the same two-column layout. - -::: {.tc} - - -[Learn more ...](/index.qmd){.button target="_blank"} -::: +Using {{< var vm.product >}} for model development ::: ::: {.column width="70%" .bl .pl4 .f3} -::: {.f5 .nt2} -::: +In this first module, you learned how to: -For example, the following links to our [_collaborate-with-others-comments.qmd](/guide/model-documentation/_collaborate-with-others-comments.qmd){target="_blank"} single-source include file. - -All you need to do is make sure that the headers within `.panel-tabset` are set to `h3` (`###`). - -::: {.panel-tabset} - -{{< include /guide/model-documentation/_collaborate-with-others-comments.qmd >}} +- [ ] Register a model in the {{< var validmind.platform >}} +- [ ] Install the {{< var validmind.developer >}} in your environment +- [ ] Connect to your registered model in the {{< var validmind.platform >}} +- [ ] Preview and verify your model's documentation template ::: - -::: - :::: - -Try it **live** on the next page. {{< fa hand-point-right >}} - - -# Topic summary slide - -Summarize the benefits of {{< var vm.product >}} for the role or topic you just covered here, then link to the relevant user guides below. - ::: {.tc} - - -[Change this link and text](/guide/guides.qmd){.button target="_blank"} -:::
- -Or, find your next learning resource on [{{< var validmind.training >}}](/training/training.qmd). \ No newline at end of file +Continue your learning journey with: +

+[Learning to run tests](learning-to-run-tests.qmd){.button} +::: \ No newline at end of file From 83048c472edf382e19c058cb6da10b58ebb627e5 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 14:31:20 -0700 Subject: [PATCH 16/77] Removed extra drop-down menu from training --- site/_quarto.yml | 24 +++++++++---------- .../using-validmind-for-model-development.qmd | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/site/_quarto.yml b/site/_quarto.yml index cd66981bfb..02a92d9124 100644 --- a/site/_quarto.yml +++ b/site/_quarto.yml @@ -101,18 +101,18 @@ website: file: https://validmind.com/ target: _blank # TRAINING MENU FOR ACADEMY SECTION - - text: "{{< fa graduation-cap >}} Training" - menu: - - text: "{{< fa house >}} ValidMind Academy" - file: training/training.qmd - - text: "---" - - text: "{{< fa building-columns >}} Fundamentals" - - text: "{{< fa gear >}} For Administrators" - file: training/administrator-fundamentals/administrator-fundamentals-register.qmd - - text: "{{< fa code >}} For Developers" - file: training/developer-fundamentals/developer-fundamentals-register.qmd - - text: "{{< fa user-check >}} For Validators" - file: training/validator-fundamentals/validator-fundamentals-register.qmd + # - text: "{{< fa graduation-cap >}} Training" + # menu: + # - text: "{{< fa house >}} ValidMind Academy" + # file: training/training.qmd + # - text: "---" + # - text: "{{< fa building-columns >}} Fundamentals" + # - text: "{{< fa gear >}} For Administrators" + # file: training/administrator-fundamentals/administrator-fundamentals-register.qmd + # - text: "{{< fa code >}} For Developers" + # file: training/developer-fundamentals/developer-fundamentals-register.qmd + # - text: "{{< fa user-check >}} For Validators" + # file: training/validator-fundamentals/validator-fundamentals-register.qmd - text: "Log In" menu: - text: "Public Internet" diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 63493378f8..71c56626fd 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -286,7 +286,7 @@ In this first module, you learned how to: ::: {.tc}
-Continue your learning journey with: +Continue your model development journey with:

[Learning to run tests](learning-to-run-tests.qmd){.button} ::: \ No newline at end of file From ce2dab088572effda62810f854fd828f54e0a0a2 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 15:45:31 -0700 Subject: [PATCH 17/77] Updated JH links --- site/training/assets/slides.scss | 6 ++++++ .../developer-fundamentals-register.qmd | 8 ++++---- .../using-validmind-for-model-development.qmd | 10 +++++----- .../training-templates/course-registration.qmd | 9 +++++---- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/site/training/assets/slides.scss b/site/training/assets/slides.scss index 0ba87a296c..2af460f6c5 100644 --- a/site/training/assets/slides.scss +++ b/site/training/assets/slides.scss @@ -164,3 +164,9 @@ section.has-dark-background a:hover { color: #b67a16ff; } +.reveal .slide input[type="checkbox"] { + accent-color: #de257e; /* Changes the checkmark color */ + border: 2px solid #de257e; + border-radius: 4px; /* Optional: makes it slightly rounded */ +} + diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index dd8baebd9d..eae5edb4e1 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -13,25 +13,25 @@ listing: table-hover: true image-align: left contents: - - path: using-validmind-for-model-development.qmd + - path: using-validmind-for-model-development.html title: "Using {{< var vm.product >}} for model development" subtitle: "Module 1" description: "{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Connect to your registered model
{{< fa check >}} Preview your model's documentation template" reading-time: "30" author: "{{< var vm.product >}}" - - path: learning-to-run-tests.qmd + - path: learning-to-run-tests.html title: "Learning to run tests" subtitle: "Module 2" description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Insert test results into your model's documentation" reading-time: "45" author: "{{< var vm.product >}}" - - path: course-slides.qmd + - path: implementing-custom-tests.html title: "Implementing custom tests" subtitle: "Module 3" description: "{{< fa check >}} Implement, run, and log custom inline and reusable tests
{{< fa check >}} Refresh your template to include inserted test-driven blocks
{{< fa check >}} Configure your template to include custom tests" reading-time: "45" author: "{{< var vm.product >}}" - - path: course-slides.qmd + - path: finalizing-model-documentation.html title: "Finalizing model documentation" subtitle: "Module 4" description: "{{< fa check >}} Refine your model documentation
{{< fa check >}} Submit your model documentation for approval
{{< fa check >}} Track changes and other updates to your model" diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 71c56626fd..93a129e58f 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -18,10 +18,10 @@ format: view-distance: 2 logo: /validmind.png footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" - # html: + html: # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml - # output-file: _course-slides.html - # search: false + output-file: _using-validmind-for-model-development.html + search: false title-slide-attributes: data-background-color: "#083E44" data-background-image: "../assets/home-hero.svg" @@ -221,7 +221,7 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. ::: {.f4} With your code snippet copied to your clipboard: -1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/intro_for_model_developers.ipynb){target="_blank"} +1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials//model_development/101-set_up_validmind.ipynb){target="_blank"} 2. Run the cells under **Initializing the {{< var validmind.developer >}}**. When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. @@ -241,7 +241,7 @@ When you reach **Getting to know {{< var vm.product >}}**, return to this page a ::: {.f4} You can preview your model's documentation template right from the {{< var validmind.developer >}}: -1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/intro_for_model_developers.ipynb){target="_blank"} +1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials//model_development/101-set_up_validmind.ipynb){target="_blank"} 2. Run the cells under **Getting to know ValidMind**. When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. diff --git a/site/training/training-templates/course-registration.qmd b/site/training/training-templates/course-registration.qmd index 3a03382d57..a453d36b1e 100644 --- a/site/training/training-templates/course-registration.qmd +++ b/site/training/training-templates/course-registration.qmd @@ -13,25 +13,26 @@ listing: table-hover: true image-align: left contents: - - path: course-slides.qmd + # IMPORTANT: USE THE .HTML PATH AND NOT THE .QMD PATH FOR THE REVEALJS OUTPUT + - path: course-slides.html title: "Title one" subtitle: "Module 1" description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" reading-time: "30" author: "{{< var vm.product >}}" - - path: course-slides.qmd + - path: course-slides.html title: "Title two" subtitle: "Module 2" description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" reading-time: "30" author: "{{< var vm.product >}}" - - path: course-slides.qmd + - path: course-slides.html title: "Title 3" subtitle: "Module 3" description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" reading-time: "30" author: "{{< var vm.product >}}" - - path: course-slides.qmd + - path: course-slides.html title: "Title 4" subtitle: "Module 4" description: "{{< fa check >}} Bullet 1
{{< fa check >}} Bullet 2
{{< fa check >}} Bullet 3
{{< fa check >}} Bullet 4
{{< fa check >}} Bullet 5" From c10c5c371147eb87bade8c3d32b918363a29bf45 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 15:53:31 -0700 Subject: [PATCH 18/77] Set up for Learning to run tests --- .../learning_to_run_tests.qmd | 292 ++++++++++++++++++ .../using-validmind-for-model-development.qmd | 6 +- 2 files changed, 295 insertions(+), 3 deletions(-) create mode 100644 site/training/developer-fundamentals/learning_to_run_tests.qmd diff --git a/site/training/developer-fundamentals/learning_to_run_tests.qmd b/site/training/developer-fundamentals/learning_to_run_tests.qmd new file mode 100644 index 0000000000..243e6a38f4 --- /dev/null +++ b/site/training/developer-fundamentals/learning_to_run_tests.qmd @@ -0,0 +1,292 @@ +--- +title: "Learning to
run tests" +subtitle: "Module 2 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" +lightbox: true +# REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED +search: false +format: + revealjs: + controls: true + controls-tutorial: true + help: true + controls-back-arrows: visible + transition: slide + theme: [default, ../assets/slides.scss] + slide-number: true + chalkboard: false + preview-links: auto + view-distance: 2 + logo: /validmind.png + footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" + html: + # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml + output-file: _using-validmind-for-model-development.html + search: false +title-slide-attributes: + data-background-color: "#083E44" + data-background-image: "../assets/home-hero.svg" +skip_preview: true +--- + +# Learning objectives + +_"As a **developer** who has registered a model with {{< var vm.product >}}, I want to identify relevant tests to run from {{< var vm.product >}}'s test repository, run and log tests for my model, and insert the test results into my model's documentation."_ + +::: {.tc} +
+This second module is part of a four-part series: +

+[Developer Fundamentals](/training/developer-fundamentals/developer-fundamentals-register.qmd){.button target="_blank"} +::: + + +## Module 1 — Contents + +::: {.f2} +1. [{{< var vm.product >}} for model development](#validmind-for-model-development) +2. [Register a model in the {{< var validmind.platform >}}](#register-a-model) +3. [Install the {{< var validmind.developer >}}](#install-the-validmind-library) +4. [Preview your model's documentation template](#preview-model-documentation) + +::: + +First, let's make sure you can log in to {{< var vm.product >}}. + +{{< include /training/assets/_revealjs-navigation.qmd >}} + +## Can you log in? + +To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role. + +
Log in to check your access: + +:::: {.columns} +::: {.column width="50%"} +::: {.tc} +[Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} +::: + +::: +::: {.column width="50%"} +::: {.tc} +[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} +::: + +::: +:::: +
+ +::: {.tc} +Be sure to return to this page afterwards. +::: + + + +# ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Jupyter Notebook series + +::: {.f3} +When you run these notebooks, they will generate a draft of model documentation and upload it to {{< var vm.product >}}, complete with test supporting test results. + +::: +::: + +::: {.column width="70%" .bl .pl4 .f3} +### {{< var vm.product >}} for model development + +Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: + +1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} + +::: +:::: + +Let's start our journey with **101 Set up the {{< var validmind.developer >}}** on the next page. {{< fa hand-point-right >}} + +## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html" background-interactive="yes" data-preload="yes"} + + +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} +**101 Set up the {{< var validmind.developer >}}** + +::: {.f4} +During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. + +For now, **scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. +::: +:::: + + + +# Register a model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="https://app.prod.validmind.ai" background-interactive="true" data-preload="yes"} + +::: {.fr .f3 .nr5 .pa5 .overlay} +**Welcome to the {{< var validmind.platform >}}** + +From here, you can: + +- Register models in the model inventory. +- Review and edit model documentation
generated with the introductory notebook. +- Collaborate with model validators to get
your documentation approved. +- And much more! + +::: {.f4 .pl3 .pr3 .embed} +**To start the documentation process**, you register a +
new model in the model inventory or select one that +
has already been registered. +::: + +**Learn how to register a model** +
on the next page. {{< fa hand-point-right >}} +::: + + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" data-preload="yes"} + +:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} +**Welcome to the model inventory** + +To register a model: + +1. Click **+ Register Model**. +2. To register a model for use with this module, select: + +::: {.f4 .nt2} +- **Documentation template:** `Binary classification` +- **Use case:** `Marketing/Sales - Attrition/Churn Management` + + You can fill in other options according to your preference. +::: + +When you're ready to register your model, +
click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory/?register=open" background-interactive="true" data-preload="yes"} + +:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} +**Register a binary
classification model** + +::: {.f5 .nt2} +- **Documentation template:**
`Binary classification` +- **Use case:**
`Attrition/Churn Management` + + You can fill in other options
according to your preference. +::: + +::: {.f4} +When you're done,
click [{{< fa chevron-right >}}]() to continue. + +::: + +:::: + + + + +# Install the ValidMind Library {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +**Get your code snippet** + +::: {.f4} +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment. Once your model is registered: + +1. Select the name of your model to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. +::: + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Install & initialize the {{< var validmind.developer >}}** + +::: {.f4} +With your code snippet copied to your clipboard: + +1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +2. Run the cells under **Initializing the {{< var validmind.developer >}}**. + +When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. +::: +:::: + + + + +# Preview model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Preview the documentation template** + +::: {.f4} +You can preview your model's documentation template right from the {{< var validmind.developer >}}: + +1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +2. Run the cells under **Getting to know ValidMind**. + +When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. +::: +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +**Verify the documentation template** + +::: {.f4} +Once you've called `preview_template()`: + +1. From the model inventory, select the name of your model to open up the model details page. +2. On the left sidebar that appears for your model, click **Documentation**. +3. Note how the structure of the model documentation reflects the previewed template. +::: + +:::: + +# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Using {{< var vm.product >}} for model development + +::: + +::: {.column width="70%" .bl .pl4 .f3} +In this first module, you learned how to: + +- [ ] Register a model in the {{< var validmind.platform >}} +- [ ] Install the {{< var validmind.developer >}} in your environment +- [ ] Connect to your registered model in the {{< var validmind.platform >}} +- [ ] Preview and verify your model's documentation template + +::: +:::: + +::: {.tc} +
+Continue your model development journey with: +

+[Learning to run tests](learning-to-run-tests.qmd){.button} +::: \ No newline at end of file diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 93a129e58f..dcfa22b019 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -30,7 +30,7 @@ skip_preview: true # Learning objectives -_"As a **developer** who is new to {{< var vm.product >}}, I want to learn how to generate model documentation, automate testing, and track my model's progress through the model lifecycle."_ +_"As a **developer** who is new to {{< var vm.product >}}, I want to learn how to register a model in the {{< var validmind.platform >}}, install the {{< var validmind.developer >}} in my local environment, and preview my model's documentation template."_ ::: {.tc}
@@ -221,7 +221,7 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. ::: {.f4} With your code snippet copied to your clipboard: -1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials//model_development/101-set_up_validmind.ipynb){target="_blank"} +1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} 2. Run the cells under **Initializing the {{< var validmind.developer >}}**. When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. @@ -241,7 +241,7 @@ When you reach **Getting to know {{< var vm.product >}}**, return to this page a ::: {.f4} You can preview your model's documentation template right from the {{< var validmind.developer >}}: -1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials//model_development/101-set_up_validmind.ipynb){target="_blank"} +1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} 2. Run the cells under **Getting to know ValidMind**. When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. From ca22cfe01a7339be1d6e942c92e2a9013a2a97bf Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 17:01:40 -0700 Subject: [PATCH 19/77] Learning to run tests - Explore tests draft --- .../102-start_development_process.ipynb | 7 + .../102-start_development_process.ipynb | 7 + ...un_tests.qmd => learning-to-run-tests.qmd} | 128 ++++++++++-------- .../using-validmind-for-model-development.qmd | 10 +- 4 files changed, 91 insertions(+), 61 deletions(-) rename site/training/developer-fundamentals/{learning_to_run_tests.qmd => learning-to-run-tests.qmd} (61%) diff --git a/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb b/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb index 4cdfa0247e..f68581e70c 100644 --- a/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb +++ b/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb @@ -70,6 +70,13 @@ "Refer to the first notebook in this series: 101 Set up ValidMind\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setting up" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/site/notebooks/tutorials/model_development/102-start_development_process.ipynb b/site/notebooks/tutorials/model_development/102-start_development_process.ipynb index 4cdfa0247e..f68581e70c 100644 --- a/site/notebooks/tutorials/model_development/102-start_development_process.ipynb +++ b/site/notebooks/tutorials/model_development/102-start_development_process.ipynb @@ -70,6 +70,13 @@ "Refer to the first notebook in this series: 101 Set up ValidMind\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setting up" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/site/training/developer-fundamentals/learning_to_run_tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd similarity index 61% rename from site/training/developer-fundamentals/learning_to_run_tests.qmd rename to site/training/developer-fundamentals/learning-to-run-tests.qmd index 243e6a38f4..9927f12d79 100644 --- a/site/training/developer-fundamentals/learning_to_run_tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -40,13 +40,13 @@ This second module is part of a four-part series: ::: -## Module 1 — Contents +## Module 2 — Contents ::: {.f2} 1. [{{< var vm.product >}} for model development](#validmind-for-model-development) -2. [Register a model in the {{< var validmind.platform >}}](#register-a-model) -3. [Install the {{< var validmind.developer >}}](#install-the-validmind-library) -4. [Preview your model's documentation template](#preview-model-documentation) +2. [Explore ValidMind tests](#explore-validmind-tests) +3. [Run ValidMind tests](#run-validmind-tests) +4. [Insert test results into your model documentation](#insert-test-results) ::: @@ -56,7 +56,13 @@ First, let's make sure you can log in to {{< var vm.product >}}. ## Can you log in? -To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role. +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first module of this course: + + +::: {.tc} + +[Using {{< var vm.product >}} for model development](using-validmind-for-model-development.html){.button target="_blank"} +:::
Log in to check your access: @@ -74,7 +80,6 @@ To try out this course, you need to have been [onboarded](developer-fundamentals ::: :::: -
::: {.tc} Be sure to return to this page afterwards. @@ -94,6 +99,12 @@ Jupyter Notebook series ::: {.f3} When you run these notebooks, they will generate a draft of model documentation and upload it to {{< var vm.product >}}, complete with test supporting test results. +::: {.f5 .nt2 .pl2 .mb4} +
+ +You will need have already completed **101 Set up the {{< var validmind.developer >}}** during the first module to proceed. +::: + ::: ::: @@ -107,16 +118,22 @@ Our series of four introductory notebooks for model developers include sample co 3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +::: {.f4 .pl3 .pr3 .embed} +In this second module, we'll run through **102 Start the model development process** together. +::: + ::: :::: -Let's start our journey with **101 Set up the {{< var validmind.developer >}}** on the next page. {{< fa hand-point-right >}} +
-## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html" background-interactive="yes" data-preload="yes"} +Let's continue our journey with **102 Start the model development process** on the next page. {{< fa hand-point-right >}} + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html" background-interactive="yes" data-preload="yes"} :::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} -**101 Set up the {{< var validmind.developer >}}** +**102 Start the model development process** ::: {.f4} During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. @@ -127,76 +144,69 @@ For now, **scroll through this notebook** to explore. When you are done, click [ -# Register a model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - -## {background-iframe="https://app.prod.validmind.ai" background-interactive="true" data-preload="yes"} +# Explore ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -::: {.fr .f3 .nr5 .pa5 .overlay} -**Welcome to the {{< var validmind.platform >}}** +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -From here, you can: +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +**Welcome back to the model inventory** -- Register models in the model inventory. -- Review and edit model documentation
generated with the introductory notebook. -- Collaborate with model validators to get
your documentation approved. -- And much more! +::: {.f4} +Let's retrieve the code snippet for the model we registered for this course: -::: {.f4 .pl3 .pr3 .embed} -**To start the documentation process**, you register a -
new model in the model inventory or select one that -
has already been registered. +1. Select the name of your model to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. ::: -**Learn how to register a model** -
on the next page. {{< fa hand-point-right >}} -::: +:::: +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-the-validmind-library" data-preload="yes"} -## {background-iframe="https://app.prod.validmind.ai/model-inventory" data-preload="yes"} +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Connect to your model** -:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} -**Welcome to the model inventory** +::: {.f4} +With your code snippet copied to your clipboard: -To register a model: +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cells in the Setting up section: **Initialize the {{< var validmind.developer >}}** & **Import sample dataset**. -1. Click **+ Register Model**. -2. To register a model for use with this module, select: +When you reach **Identify qualitative tests**, return to this page and click [{{< fa chevron-right >}}]() to continue. +::: +:::: -::: {.f4 .nt2} -- **Documentation template:** `Binary classification` -- **Use case:** `Marketing/Sales - Attrition/Churn Management` +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#identify-qualitative-tests" data-preload="yes"} - You can fill in other options according to your preference. -::: +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Identify qualitative tests** -When you're ready to register your model, -
click [{{< fa chevron-right >}}]() to continue. +::: {.f4} +Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run. +1. Run the following cell in the Setting up section: **Identify qualitative tests** +2. When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +::: :::: -## {background-iframe="https://app.prod.validmind.ai/model-inventory/?register=open" background-interactive="true" data-preload="yes"} -:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} -**Register a binary
classification model** +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-the-validmind-datasets" data-preload="yes"} -::: {.f5 .nt2} -- **Documentation template:**
`Binary classification` -- **Use case:**
`Attrition/Churn Management` - - You can fill in other options
according to your preference. -::: +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Initialize {{< var vm.product >}} datasets** ::: {.f4} -When you're done,
click [{{< fa chevron-right >}}]() to continue. +Next, we'll use the [`init_dataset()` function](https://docs.validmind.ai/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object. +1. Run the following cell in the Setting up section: **Initialize the {{< var vm.product >}} datasets** +2. When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. ::: - :::: -# Install the ValidMind Library {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# Run ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} @@ -231,7 +241,7 @@ When you reach **Getting to know {{< var vm.product >}}**, return to this page a -# Preview model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# Insert test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} @@ -269,17 +279,16 @@ Once you've called `preview_template()`: :::: {.columns} ::: {.column width="30%" .pr4 .f2} -Using {{< var vm.product >}} for model development +Learning to run tests ::: ::: {.column width="70%" .bl .pl4 .f3} -In this first module, you learned how to: +In this second module, you learned how to: -- [ ] Register a model in the {{< var validmind.platform >}} -- [ ] Install the {{< var validmind.developer >}} in your environment -- [ ] Connect to your registered model in the {{< var validmind.platform >}} -- [ ] Preview and verify your model's documentation template +- [ ] Identify relevant tests to run from {{< var vm.product >}}'s test repository +- [ ] Run out-of-the-box tests with the {{< var validmind.developer >}} +- [ ] Insert test results into your model's documentation ::: :::: @@ -288,5 +297,6 @@ In this first module, you learned how to:
Continue your model development journey with:

-[Learning to run tests](learning-to-run-tests.qmd){.button} + +[Learning to run tests](learning-to-run-tests.html){.button} ::: \ No newline at end of file diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index dcfa22b019..15d9ea50ab 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -74,7 +74,6 @@ To try out this course, you need to have been [onboarded](developer-fundamentals ::: :::: -
::: {.tc} Be sure to return to this page afterwards. @@ -107,9 +106,15 @@ Our series of four introductory notebooks for model developers include sample co 3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +::: {.f4 .pl3 .pr3 .embed} +In this first module, we'll run through **101 Set up the {{< var validmind.developer >}}** together. +::: + ::: :::: +
+ Let's start our journey with **101 Set up the {{< var validmind.developer >}}** on the next page. {{< fa hand-point-right >}} ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html" background-interactive="yes" data-preload="yes"} @@ -288,5 +293,6 @@ In this first module, you learned how to:
Continue your model development journey with:

-[Learning to run tests](learning-to-run-tests.qmd){.button} + +[Learning to run tests](learning-to-run-tests.html){.button} ::: \ No newline at end of file From 37126e14e7bd58e91a7782df7944b883f396d4cf Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 18 Mar 2025 17:59:49 -0700 Subject: [PATCH 20/77] Learning to run tests - Explore tests edits --- .../learning-to-run-tests.qmd | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 9927f12d79..293771773b 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -45,8 +45,9 @@ This second module is part of a four-part series: ::: {.f2} 1. [{{< var vm.product >}} for model development](#validmind-for-model-development) 2. [Explore ValidMind tests](#explore-validmind-tests) -3. [Run ValidMind tests](#run-validmind-tests) -4. [Insert test results into your model documentation](#insert-test-results) +3. [Run tests with the {{< var validmind.developer >}}](#run-validmind-tests) +4. [Log tests to the {{< var validmind.platform >}}](#log-validmind-tests) +5. [Test an existing model](#test-an-existing-model) ::: @@ -241,7 +242,7 @@ When you reach **Getting to know {{< var vm.product >}}**, return to this page a -# Insert test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# Log ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} @@ -273,6 +274,8 @@ Once you've called `preview_template()`: :::: +# Test an existing model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + # Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} @@ -287,8 +290,10 @@ Learning to run tests In this second module, you learned how to: - [ ] Identify relevant tests to run from {{< var vm.product >}}'s test repository +- [ ] Initialize {{< var vm.product >}} `Dataset` and `Model` objects - [ ] Run out-of-the-box tests with the {{< var validmind.developer >}} -- [ ] Insert test results into your model's documentation +- [ ] Log test results to the {{< var validmind.platform >}} +- [ ] Insert logged test results into your model's documentation ::: :::: @@ -298,5 +303,5 @@ In this second module, you learned how to: Continue your model development journey with:

-[Learning to run tests](learning-to-run-tests.html){.button} +[Implementing custom tests](implementing-custom-tests.html){.button} ::: \ No newline at end of file From c979d8ec1a04058d873e404d62d3a95c546ab833 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 10:49:04 -0700 Subject: [PATCH 21/77] Learning to run tests - Run ValidMind tests draft --- .../learning-to-run-tests.qmd | 187 ++++++++++++++---- .../using-validmind-for-model-development.qmd | 14 +- 2 files changed, 163 insertions(+), 38 deletions(-) diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 293771773b..847790314d 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -139,27 +139,50 @@ Let's continue our journey with **102 Start the model development process** on t ::: {.f4} During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. -For now, **scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. ::: + +For now, **scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. + :::: + # Explore ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +## {background-iframe="/developer/model-testing/test-descriptions.html" background-interactive="true" data-preload="yes"} + +::: footer +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +**{{< var vm.product >}} test repository** + +::: {.f4} +{{< var vm.product >}} provides a wealth out-of-the-box of tests to help you ensure that your model is being built appropriately. + +In this module, you'll become familiar with the individual tests available in {{< var vm.product >}}, as well as how to run them and change parameters as necessary. + +::: + +For now, **scroll through these test descriptions** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. + +:::: +::: + ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} :::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} **Welcome back to the model inventory** ::: {.f4} -Let's retrieve the code snippet for the model we registered for this course: + Let's retrieve the code snippet for the model we registered for this course: 1. Select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. ::: +First, let's connect back up to your model in the {{< var validmind.platform >}}. + :::: ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-the-validmind-library" data-preload="yes"} @@ -173,8 +196,10 @@ With your code snippet copied to your clipboard: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cells in the Setting up section: **Initialize the {{< var validmind.developer >}}** & **Import sample dataset**. -When you reach **Identify qualitative tests**, return to this page and click [{{< fa chevron-right >}}]() to continue. ::: + +When you reach **Identify qualitative tests**, return to this page and click [{{< fa chevron-right >}}]() to continue. + :::: ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#identify-qualitative-tests" data-preload="yes"} @@ -183,11 +208,13 @@ When you reach **Identify qualitative tests**, return to this page and click [{{ **Identify qualitative tests** ::: {.f4} -Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run. +Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run: -1. Run the following cell in the Setting up section: **Identify qualitative tests** -2. When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Setting up section: **Identify qualitative tests** ::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: @@ -197,11 +224,13 @@ Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_developm **Initialize {{< var vm.product >}} datasets** ::: {.f4} -Next, we'll use the [`init_dataset()` function](https://docs.validmind.ai/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object. +Then, we'll use the [`init_dataset()` function](https://docs.validmind.ai/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: -1. Run the following cell in the Setting up section: **Initialize the {{< var vm.product >}} datasets** -2. When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Setting up section: **Initialize the {{< var vm.product >}} datasets** ::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: @@ -209,71 +238,161 @@ Next, we'll use the [`init_dataset()` function](https://docs.validmind.ai/validm # Run ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-tabular-data-tests" data-preload="yes"} -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} -**Get your code snippet** +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Run tabular data tests** ::: {.f4} -{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment. Once your model is registered: +Now that we know how to initialize a ValidMind dataset object, we’re ready to run some tests: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Running tests section: **Run tabular data tests**. + +You run individual tests by calling the [`run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test) provided by the `validmind.tests` module. -1. Select the name of your model to open up the model details page. -2. On the left sidebar that appears for your model, click **Getting Started**. -3. Locate the code snippet and click **Copy snippet to clipboard**. ::: +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + :::: -## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#utilize-test-output" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -**Install & initialize the {{< var validmind.developer >}}** +**Utilize test output** ::: {.f4} -With your code snippet copied to your clipboard: +Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: -1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. Run the cells under **Initializing the {{< var validmind.developer >}}**. +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Running tests section: **Utilize test output**. + +You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. -When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. ::: -:::: +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: # Log ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-multiple-tests" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -**Preview the documentation template** +**Run & log multiple tests** ::: {.f4} -You can preview your model's documentation template right from the {{< var validmind.developer >}}: +Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Running tests section: **Utilize test output**. -1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. Run the cells under **Getting to know ValidMind**. +You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. -When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. ::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + :::: -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-an-individual-test" data-preload="yes"} -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} -**Verify the documentation template** +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Run & log an individual test** ::: {.f4} -Once you've called `preview_template()`: +Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Running tests section: **Utilize test output**. + +You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Work with test results + +::: {.f5 .nt2 .pl2 .mb4} +(Scroll down for the full instructions.) +::: + +::: {.tc} + + +[Learn more ...](https://docs.validmind.ai/developer/model-documentation/work-with-test-results.html){.button target="_blank"} +::: + + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +### Add individual test results to model documentation + +With the test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: + +1. From the **Inventory** in the ValidMind Platform, go to the model you connected to earlier. + +2. In the left sidebar that appears for your model, click **Documentation**. + +3. Locate the Data Preparation section and click on **2.3 Correlations and Interactions** to expand that section. + +4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block. + + ![Insert block button in model documentation](/notebooks/tutorials/model_development/add-content-block.gif){fig-alt="Screenshot showing insert block button in model documentation" .screenshot} + +5. Click **+** and then select **Test-Driven Block**: + + - In the search bar, type in `HighPearsonCorrelation`. + - Select `HighPearsonCorrelation:balanced_raw_dataset` as the test. + + A preview of the test gets shown: + + ![The HighPearsonCorrelation test selected](/notebooks/tutorials/model_development/selecting-high-pearson-correlation-test.png){fig-alt="Screenshot showing the HighPearsonCorrelation test selected" .screenshot} + +6. Finally, click **Insert 1 Test Result to Document** to add the test result to the documentation. + + Confirm that the individual results for the high correlation test has been correctly inserted into section **2.3 Correlations and Interactions** of the documentation. + +7. Finalize the documentation by editing the test result's description block to explain the changes you made to the raw data and the reasons behind them as shown in the screenshot below: + + ![The inserted High Pearson Correlation block](/notebooks/tutorials/model_development/high-pearson-correlation-block.png){fig-alt="Screenshot showing the inserted High Pearson Correlation block" .screenshot} + +::: +:::: + + +## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +**Insert a test result** + +::: {.f4} 1. From the model inventory, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Documentation**. -3. Note how the structure of the model documentation reflects the previewed template. +3. Click on **2.3 Correlations and Interactions** to expand that section. +4. Insert a test-driven block: `HighPearsonCorrelation:balanced_raw_dataset` + ::: +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + :::: + # Test an existing model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} # Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 15d9ea50ab..0901766377 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -125,9 +125,9 @@ Let's start our journey with **101 Set up the {{< var validmind.developer >}}** ::: {.f4} During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. +::: For now, **scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. -::: :::: @@ -209,13 +209,15 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. **Get your code snippet** ::: {.f4} -{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment. Once your model is registered: +Once your model is registered: 1. Select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. ::: +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment. + :::: ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} @@ -229,8 +231,10 @@ With your code snippet copied to your clipboard: 1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} 2. Run the cells under **Initializing the {{< var validmind.developer >}}**. -When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. ::: + +When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. + :::: @@ -249,8 +253,10 @@ You can preview your model's documentation template right from the {{< var valid 1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} 2. Run the cells under **Getting to know ValidMind**. -When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. ::: + +When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. + :::: ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} From 906947f83c2998fb9bae602effca01ff0d242b5f Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 11:32:25 -0700 Subject: [PATCH 22/77] Tweaking text size --- .../learning-to-run-tests.qmd | 56 ++++++++++--------- .../using-validmind-for-model-development.qmd | 38 +++++++------ 2 files changed, 51 insertions(+), 43 deletions(-) diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 847790314d..d3c212e81f 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -130,13 +130,12 @@ In this second module, we'll run through **102 Start the model development proce Let's continue our journey with **102 Start the model development process** on the next page. {{< fa hand-point-right >}} -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html" background-interactive="yes" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html" background-interactive="yes" data-preload="yes"} - -:::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} **102 Start the model development process** -::: {.f4} +::: {.f5} During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. ::: @@ -170,15 +169,16 @@ For now, **scroll through these test descriptions** to explore. When you are don ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} **Welcome back to the model inventory** -::: {.f4} +::: {.f5} Let's retrieve the code snippet for the model we registered for this course: 1. Select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. + ::: First, let's connect back up to your model in the {{< var validmind.platform >}}. @@ -187,10 +187,10 @@ First, let's connect back up to your model in the {{< var validmind.platform >}} ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-the-validmind-library" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Connect to your model** -::: {.f4} +::: {.f5} With your code snippet copied to your clipboard: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} @@ -202,16 +202,18 @@ When you reach **Identify qualitative tests**, return to this page and click [{{ :::: + ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#identify-qualitative-tests" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Identify qualitative tests** -::: {.f4} +::: {.f5} Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Setting up section: **Identify qualitative tests** + ::: When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. @@ -220,17 +222,19 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-the-validmind-datasets" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Initialize {{< var vm.product >}} datasets** -::: {.f4} -Then, we'll use the [`init_dataset()` function](https://docs.validmind.ai/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: +::: {.f5} +Then, we'll use the [`init_dataset()` function](https://docs.validmind.ai/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Setting up section: **Initialize the {{< var vm.product >}} datasets** + ::: When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + :::: @@ -240,10 +244,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-tabular-data-tests" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run tabular data tests** -::: {.f4} +::: {.f5} Now that we know how to initialize a ValidMind dataset object, we’re ready to run some tests: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} @@ -259,10 +263,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#utilize-test-output" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Utilize test output** -::: {.f4} +::: {.f5} Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} @@ -276,16 +280,17 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: + # Log ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-multiple-tests" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run & log multiple tests** -::: {.f4} +::: {.f5} Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} @@ -301,10 +306,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-an-individual-test" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run & log an individual test** -::: {.f4} +::: {.f5} Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} @@ -318,6 +323,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: + ## {.scrollable} @@ -339,7 +345,7 @@ Work with test results
Try it **live** on the next page. {{< fa hand-point-right >}} ::: -::: {.column width="70%" .bl .pl4 .f3} +::: {.column width="70%" .bl .pl4 .f4} ### Add individual test results to model documentation With the test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: @@ -377,10 +383,10 @@ With the test results logged, let's head to the model we connected to at the beg ## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -**Insert a test result** +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Insert a test-driven block** -::: {.f4} +::: {.f5} 1. From the model inventory, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Documentation**. 3. Click on **2.3 Correlations and Interactions** to expand that section. diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 0901766377..c81f0a7b02 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -120,14 +120,15 @@ Let's start our journey with **101 Set up the {{< var validmind.developer >}}** ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html" background-interactive="yes" data-preload="yes"} -:::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} **101 Set up the {{< var validmind.developer >}}** -::: {.f4} +::: {.f5} During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. ::: For now, **scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. + :::: @@ -136,7 +137,7 @@ For now, **scroll through this notebook** to explore. When you are done, click [ ## {background-iframe="https://app.prod.validmind.ai" background-interactive="true" data-preload="yes"} -::: {.fr .f3 .nr5 .pa5 .overlay} +::: {.fr .f4 .nr5 .pa5 .overlay} **Welcome to the {{< var validmind.platform >}}** From here, you can: @@ -146,20 +147,22 @@ From here, you can: - Collaborate with model validators to get
your documentation approved. - And much more! -::: {.f4 .pl3 .pr3 .embed} +::: {.f5 .pl3 .pr3 .embed} **To start the documentation process**, you register a
new model in the model inventory or select one that
has already been registered. + ::: **Learn how to register a model**
on the next page. {{< fa hand-point-right >}} + ::: ## {background-iframe="https://app.prod.validmind.ai/model-inventory" data-preload="yes"} -:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} +:::: {.fr .f4 .mv5 .nr5 .pa4 .overlay} **Welcome to the model inventory** To register a model: @@ -167,11 +170,12 @@ To register a model: 1. Click **+ Register Model**. 2. To register a model for use with this module, select: -::: {.f4 .nt2} +::: {.f5 .nt2} - **Documentation template:** `Binary classification` - **Use case:** `Marketing/Sales - Attrition/Churn Management` You can fill in other options according to your preference. + ::: When you're ready to register your model, @@ -181,7 +185,7 @@ When you're ready to register your model, ## {background-iframe="https://app.prod.validmind.ai/model-inventory/?register=open" background-interactive="true" data-preload="yes"} -:::: {.fr .f3 .mv5 .nr5 .pa4 .overlay} +:::: {.fr .f4 .mv5 .nr5 .pa4 .overlay} **Register a binary
classification model** ::: {.f5 .nt2} @@ -191,11 +195,8 @@ When you're ready to register your model, You can fill in other options
according to your preference. ::: -::: {.f4} When you're done,
click [{{< fa chevron-right >}}]() to continue. -::: - :::: @@ -205,10 +206,10 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} **Get your code snippet** -::: {.f4} +::: {.f5} Once your model is registered: 1. Select the name of your model to open up the model details page. @@ -222,10 +223,10 @@ Once your model is registered: ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Install & initialize the {{< var validmind.developer >}}** -::: {.f4} +::: {.f5} With your code snippet copied to your clipboard: 1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} @@ -244,10 +245,10 @@ When you reach **Getting to know {{< var vm.product >}}**, return to this page a ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Preview the documentation template** -::: {.f4} +::: {.f5} You can preview your model's documentation template right from the {{< var validmind.developer >}}: 1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} @@ -261,15 +262,16 @@ When you reach **Upgrade {{< var vm.product >}}**, return to this page and click ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f3 .tc .pl4 .overlay} +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} **Verify the documentation template** -::: {.f4} +::: {.f5} Once you've called `preview_template()`: 1. From the model inventory, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Documentation**. 3. Note how the structure of the model documentation reflects the previewed template. + ::: :::: From 021183eb49f46b7c2d83603bd1977bdfc6a4ed7f Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 12:11:44 -0700 Subject: [PATCH 23/77] Learning to run tests - Log Validind tests draft --- .../developer-fundamentals-register.qmd | 6 +- .../learning-to-run-tests.qmd | 94 ++++++++++--------- .../using-validmind-for-model-development.qmd | 15 +-- 3 files changed, 60 insertions(+), 55 deletions(-) diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index eae5edb4e1..50d7c34c55 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -23,13 +23,13 @@ listing: title: "Learning to run tests" subtitle: "Module 2" description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Insert test results into your model's documentation" - reading-time: "45" + reading-time: "60" author: "{{< var vm.product >}}" - path: implementing-custom-tests.html title: "Implementing custom tests" subtitle: "Module 3" description: "{{< fa check >}} Implement, run, and log custom inline and reusable tests
{{< fa check >}} Refresh your template to include inserted test-driven blocks
{{< fa check >}} Configure your template to include custom tests" - reading-time: "45" + reading-time: "60" author: "{{< var vm.product >}}" - path: finalizing-model-documentation.html title: "Finalizing model documentation" @@ -51,7 +51,7 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc ::: {.w-50-ns .pr3} #### Total duration -150 minutes +180 minutes ::: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index d3c212e81f..a509440f28 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -162,7 +162,7 @@ In this module, you'll become familiar with the individual tests available in {{ ::: -For now, **scroll through these test descriptions** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. +For now, **scroll through these test descriptions** to explore. When you're done, click [{{< fa chevron-right >}}]() to continue. :::: ::: @@ -173,15 +173,15 @@ For now, **scroll through these test descriptions** to explore. When you are don **Welcome back to the model inventory** ::: {.f5} - Let's retrieve the code snippet for the model we registered for this course: +First, let's connect back up to your model in the {{< var validmind.platform >}}: -1. Select the name of your model to open up the model details page. +1. Select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. ::: -First, let's connect back up to your model in the {{< var validmind.platform >}}. +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: @@ -198,7 +198,7 @@ With your code snippet copied to your clipboard: ::: -When you reach **Identify qualitative tests**, return to this page and click [{{< fa chevron-right >}}]() to continue. +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: @@ -212,7 +212,7 @@ When you reach **Identify qualitative tests**, return to this page and click [{{ Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cell in the Setting up section: **Identify qualitative tests** +2. Run all the cells under the Setting up section: **Identify qualitative tests** ::: @@ -248,12 +248,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Run tabular data tests** ::: {.f5} -Now that we know how to initialize a ValidMind dataset object, we’re ready to run some tests: +You run individual tests by calling the [`run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test) provided by the `validmind.tests` module: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cell in the Running tests section: **Run tabular data tests**. - -You run individual tests by calling the [`run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test) provided by the `validmind.tests` module. +2. Run all the cells under the Running tests section: **Run tabular data tests**. ::: @@ -267,12 +265,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Utilize test output** ::: {.f5} -Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: +You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cell in the Running tests section: **Utilize test output**. - -You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. +2. Run all the cells under the Running tests section: **Utilize test output**. ::: @@ -285,19 +281,42 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Log ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Document test results + +::: {.tc} + + +[Learn more ...](/validmind/validmind/vm_models.html#TestResult.log){.button target="_blank"} +::: + + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +Every test result returned by the `run_test()` function has a `.log()` method that can be used to send the test results to the {{< var validmind.platform >}}: + +- When using `run_documentation_tests()`, documentation sections will be automatically populated with the results of all tests registered in the documentation template. +- When logging individual test results to the platform, you'll need to manually add those results to the desired section of the model documentation. + +::: +:::: + ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-multiple-tests" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run & log multiple tests** ::: {.f5} -Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: +[`run_documentation_tests()`](/validmind/validmind.html#run_documentation_tests) allows you to run multiple tests at once and automatically log the results to your documentation: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cell in the Running tests section: **Utilize test output**. - -You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. - +2. Run the following cell in the Documenting results section: **Run and log multiple tests**. ::: When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. @@ -310,12 +329,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Run & log an individual test** ::: {.f5} -Let's retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling: +Next, we'll run an individual test and log the result to the {{< var validmind.platform >}}: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cell in the Running tests section: **Utilize test output**. - -You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. +2. Run the following cell in the Running tests section: **Run and log an individual test**. ::: @@ -331,14 +348,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.column width="30%" .pr4 .f2} Work with test results -::: {.f5 .nt2 .pl2 .mb4} -(Scroll down for the full instructions.) -::: - ::: {.tc} -[Learn more ...](https://docs.validmind.ai/developer/model-documentation/work-with-test-results.html){.button target="_blank"} +[Learn more ...](/notebooks/EXECUTED/model_development/102-start_development_process.ipynb#add-individual-test-results-to-model-documentation){.button target="_blank"} ::: @@ -350,7 +363,7 @@ Work with test results With the test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: -1. From the **Inventory** in the ValidMind Platform, go to the model you connected to earlier. +1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. 2. In the left sidebar that appears for your model, click **Documentation**. @@ -358,49 +371,38 @@ With the test results logged, let's head to the model we connected to at the beg 4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block. - ![Insert block button in model documentation](/notebooks/tutorials/model_development/add-content-block.gif){fig-alt="Screenshot showing insert block button in model documentation" .screenshot} - 5. Click **+** and then select **Test-Driven Block**: - In the search bar, type in `HighPearsonCorrelation`. - Select `HighPearsonCorrelation:balanced_raw_dataset` as the test. - A preview of the test gets shown: - - ![The HighPearsonCorrelation test selected](/notebooks/tutorials/model_development/selecting-high-pearson-correlation-test.png){fig-alt="Screenshot showing the HighPearsonCorrelation test selected" .screenshot} - 6. Finally, click **Insert 1 Test Result to Document** to add the test result to the documentation. Confirm that the individual results for the high correlation test has been correctly inserted into section **2.3 Correlations and Interactions** of the documentation. -7. Finalize the documentation by editing the test result's description block to explain the changes you made to the raw data and the reasons behind them as shown in the screenshot below: - - ![The inserted High Pearson Correlation block](/notebooks/tutorials/model_development/high-pearson-correlation-block.png){fig-alt="Screenshot showing the inserted High Pearson Correlation block" .screenshot} - ::: :::: ## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +:::: {.absolute bottom=15 .w-100 .f5 .tc .pl4 .overlay} **Insert a test-driven block** -::: {.f5} -1. From the model inventory, select the name of your model to open up the model details page. -2. On the left sidebar that appears for your model, click **Documentation**. -3. Click on **2.3 Correlations and Interactions** to expand that section. -4. Insert a test-driven block: `HighPearsonCorrelation:balanced_raw_dataset` +::: {.f6} +`HighPearsonCorrelation:balanced_raw_dataset` ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +When you're done, click [{{< fa chevron-right >}}]() to continue. :::: # Test an existing model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + # Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index c81f0a7b02..b3b0249e7d 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -210,14 +210,15 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. **Get your code snippet** ::: {.f5} -Once your model is registered: +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: 1. Select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. + ::: -{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment. +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: @@ -230,11 +231,11 @@ Once your model is registered: With your code snippet copied to your clipboard: 1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. Run the cells under **Initializing the {{< var validmind.developer >}}**. +2. Run all the sections and cells under **Initializing the {{< var validmind.developer >}}**. ::: -When you reach **Getting to know {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: @@ -252,11 +253,11 @@ When you reach **Getting to know {{< var vm.product >}}**, return to this page a You can preview your model's documentation template right from the {{< var validmind.developer >}}: 1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. Run the cells under **Getting to know ValidMind**. +2. Run all the sections and cells under **Getting to know ValidMind**. ::: -When you reach **Upgrade {{< var vm.product >}}**, return to this page and click [{{< fa chevron-right >}}]() to continue. +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: @@ -274,6 +275,8 @@ Once you've called `preview_template()`: ::: +When you're done, click [{{< fa chevron-right >}}]() to continue. + :::: # Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} From d8fa19438487261d597bceb1cc0cc9d22c9f3cce Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 12:35:49 -0700 Subject: [PATCH 24/77] Learning to run tests - draft --- .../learning-to-run-tests.qmd | 105 +++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index a509440f28..b3767e133e 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -340,7 +340,6 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: - ## {.scrollable} @@ -401,6 +400,110 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Test an existing model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Model testing with {{< var vm.product >}} + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +So far, we’ve focused on the data assessment and pre-processing that usually occurs prior to any models being built. Now, let’s instead assume we have already built a model and we want to incorporate some model results into our documentation: + + +::: {.panel-tabset} + +### 1. Train your model + +Using {{< var vm.product >}} tests, we’ll train a simple logistic regression model on our dataset and evaluate its performance by using the `LogisticRegression` class from the `sklearn.linear_model`. + +### 2. Initialize the model object + +The last step for evaluating the model’s performance is to initialize the {{< var vm.product >}} `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset. + +### 3. Assign predictions + +Once the model has been registered you can assign model predictions to the training and test datasets. The `assign_predictions()` method from the `Dataset` object can link existing predictions to any number of models. + +### 4. Run the model evaluation tests +In this next example, we’ll focus on running the tests within the Model Development section of the model documentation. Only tests associated with this section will be executed, and the corresponding results will be updated in the model documentation. + +::: + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#train-simple-logistic-regression-model" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Train your model** + +::: {.f5} +Using {{< var vm.product >}} tests, we'll train a simple logistic regression model on our dataset and evaluate its performance: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run all the cells under the Model testing section: **Train simple logistic regression model**. +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-model-evaluation-objects" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Initialize a model object** + +::: {.f5} +Use the `init_dataset` and [`init_model` functions](https://docs.validmind.ai/validmind/validmind.html#init_model) to initialize these objects: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the cell under the following Model testing section: **Initialize model evaluation objects**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#assign-predictions" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Assign predictions** + +::: {.f5} +Use the [`assign_predictions()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#VMDataset.assign_predictions) from the `Dataset` object to link existing predictions to any number of models: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the cell under the following Model testing section: **Assign predictions**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-the-model-evaluation-tests" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Run the model evaluation tests** + +::: {.f5} +Finally, we'll run only the tests within the Model Development section of the model documentation: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the cell under the following Model testing section: **Run the model evaluation tests**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + # Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} From d45583e86a807a2fa724b05d309c5a3ed91994c2 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 13:38:33 -0700 Subject: [PATCH 25/77] =?UTF-8?q?Implementing=20custom=20tests=20=E2=80=94?= =?UTF-8?q?=20P1=20draft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../implementing-custom-tests.qmd | 622 ++++++++++++++++++ .../learning-to-run-tests.qmd | 4 +- .../using-validmind-for-model-development.qmd | 2 +- 3 files changed, 625 insertions(+), 3 deletions(-) create mode 100644 site/training/developer-fundamentals/implementing-custom-tests.qmd diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd new file mode 100644 index 0000000000..27e65983db --- /dev/null +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -0,0 +1,622 @@ +--- +title: "Implementing
custom tests" +subtitle: "Developer Fundamentals — Module 3 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" +lightbox: true +# REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED +search: false +format: + revealjs: + controls: true + controls-tutorial: true + help: true + controls-back-arrows: visible + transition: slide + theme: [default, ../assets/slides.scss] + slide-number: true + chalkboard: false + preview-links: auto + view-distance: 2 + logo: /validmind.png + footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" + html: + # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml + output-file: _using-validmind-for-model-development.html + search: false +title-slide-attributes: + data-background-color: "#083E44" + data-background-image: "../assets/home-hero.svg" +skip_preview: true +--- + +# Learning objectives + +_"As a **developer** who understands how to run and log out-of-the-box tests with {{< var vm.product >}}, I want to update my documentation template to include manually inserted test results, implement, run, and log custom tests, and include those custom tests in my documentation template."_ + +::: {.tc} +
+This third module is part of a four-part series: +

+[Developer Fundamentals](/training/developer-fundamentals/developer-fundamentals-register.qmd){.button target="_blank"} +::: + + +## Module 3 — Contents + +:::: {.columns .f3} +::: {.column width="30%" .mt4 .pr4} +### INTRODUCTION + +- [{{< var vm.product >}} for model development](#validmind-for-model-development) +::: + +::: {.column width="35%" .mt4 .pr4} +### PART 1 + +- [Implement custom inline tests](#implement-custom-tests) +- [Use external test providers](#use-external-test-providers) + +::: + +::: {.column width="35%" .mt4} +### PART 2 + +- [Include custom test results](#include-custom-test-results) +- [Configure the model's documentation template](#configure-documentation-template) +::: +:::: + +First, let's make sure you can log in to {{< var vm.product >}}. + +{{< include /training/assets/_revealjs-navigation.qmd >}} + +## Can you log in? + +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first two modules of this course: + +:::: {.columns} +::: {.column width="60%"} +::: {.tc} +[Using {{< var vm.product >}} for model development](using-validmind-for-model-development.html){.button target="_blank"} +::: + +::: +::: {.column width="40%"} +::: {.tc} +[Learning to run tests](learning-to-run-tests.html){.button target="_blank"} +::: + +::: +:::: + + +
Log in to check your access: + +:::: {.columns} +::: {.column width="50%"} +::: {.tc} +[Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} +::: + +::: +::: {.column width="50%"} +::: {.tc} +[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} +::: + +::: +:::: + +::: {.tc} +Be sure to return to this page afterwards. +::: + + + +# ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Jupyter Notebook series + +::: {.f3} +When you run these notebooks, they will generate a draft of model documentation and upload it to {{< var vm.product >}}, complete with test supporting test results. + +::: {.f5 .nt2 .pl2 .mb4} +
+ +You will need have already completed **101** and **102** during the first and second modules to proceed. +::: + +::: +::: + +::: {.column width="70%" .bl .pl4 .f3} +### {{< var vm.product >}} for model development + +Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: + +1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} + +::: {.f4 .pl3 .pr3 .embed} +In this third module, we'll run through the remaining two notebooks **103** in PART 1 and **104** in PART 2 together. +::: + +::: +:::: + +
+ +Let's continue our journey with **PART 1** on the next page. {{< fa hand-point-right >}} + +# PART 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} + +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} +**103 Integrate custom tests** + +::: {.f5} +This is the third notebook in our introductory series, which will walk you through how to implement different types of custom tests with {{< var vm.product >}}. + +::: + +**Scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Welcome back to the model inventory** + +::: {.f5} +First, let's connect back up to your model in the {{< var validmind.platform >}}: + +1. Select the name of your model you registered for this course to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + + +# Implement custom tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#initialize-the-validmind-library" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Connect to your model** + +::: {.f5} +With your code snippet copied to your clipboard: + +1. Open **103 Integrate custom testss**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells under the **Setting up** section. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Custom inline tests + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +Let's implement a custom *inline test* that calculates the confusion matrix for a binary classification model. + +- An inline test refers to a test written and executed within the same environment as the code being tested — in the following example, right in our Jupyter Notebook — without requiring a separate test file or framework. +- You'll note that the custom test function is just a regular Python function that can include and require any Python library as you see fit. + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-a-confusion-matrix-plot" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Create a custom test** + +::: {.f5} +The [`@vm.test` wrapper](https://docs.validmind.ai/validmind/validmind.html#test) allow you to create a reusable test: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells in the following section under Implementing a custom inline test: **Create a confusion matrix plot** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#add-parameters-to-custom-tests" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Adjust your custom test** + +::: {.f5} +Custom tests can take parameters just like any other function: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells in the following sections under Implementing a custom inline test:
**Add parameters to custom tests** / **Pass parameters to custom tests** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#log-the-confusion-matrix-results" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Log your custom test** + +::: {.f5} +Use the [`.log()` method](/validmind/validmind/vm_models.html#TestResult.log) to send the results of your custom test to the {{< var validmind.platform >}}: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run the cell in the following section under Implementing a custom inline test: **Log the confusion matrix results** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + + + +# Use external test providers {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Reusable custom tests + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +### External test providers + +Creating inline custom tests with a function is a great way to customize your model documentation. + +- However, sometimes you may want to reuse the same set of tests across multiple models and share them with others in your organization. +- In this case, you can create an external custom test provider that will allow you to load custom tests from a local folder or a Git repository. + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-custom-tests-folder" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Create custom tests folder** + +::: {.f5} +Create a new folder that will contain reusable custom tests from your existing inline tests: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run the cell under the following Using external test providers section: **Create custom tests folder** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#save-an-inline-test" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Save inline test** + +::: {.f5} +The `@vm.test` decorator also includes a convenience method that allows you to save the test to a Python file at a specified path: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells under the Using external test providers section: **Save an inline test** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#register-a-local-test-provider" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Register local test provider** + +::: {.f5} +Next, let's initialize a test provider that will tell the {{< var validmind.developer >}} where to find your saved custom tests: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells under the Using external test providers section: **Register a local test provider** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + + +# PART 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} + + + +# Include custom test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Document test results + +::: {.tc} + + +[Learn more ...](/validmind/validmind/vm_models.html#TestResult.log){.button target="_blank"} +::: + + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +Every test result returned by the `run_test()` function has a `.log()` method that can be used to send the test results to the {{< var validmind.platform >}}: + +- When using `run_documentation_tests()`, documentation sections will be automatically populated with the results of all tests registered in the documentation template. +- When logging individual test results to the platform, you'll need to manually add those results to the desired section of the model documentation. + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-multiple-tests" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Run & log multiple tests** + +::: {.f5} +[`run_documentation_tests()`](/validmind/validmind.html#run_documentation_tests) allows you to run multiple tests at once and automatically log the results to your documentation: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Documenting results section: **Run and log multiple tests**. +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-an-individual-test" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Run & log an individual test** + +::: {.f5} +Next, we'll run an individual test and log the result to the {{< var validmind.platform >}}: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the following cell in the Running tests section: **Run and log an individual test**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Work with test results + +::: {.tc} + + +[Learn more ...](/notebooks/EXECUTED/model_development/102-start_development_process.ipynb#add-individual-test-results-to-model-documentation){.button target="_blank"} +::: + + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f4} +### Add individual test results to model documentation + +With the test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: + +1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. + +2. In the left sidebar that appears for your model, click **Documentation**. + +3. Locate the Data Preparation section and click on **2.3 Correlations and Interactions** to expand that section. + +4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block. + +5. Click **+** and then select **Test-Driven Block**: + + - In the search bar, type in `HighPearsonCorrelation`. + - Select `HighPearsonCorrelation:balanced_raw_dataset` as the test. + +6. Finally, click **Insert 1 Test Result to Document** to add the test result to the documentation. + + Confirm that the individual results for the high correlation test has been correctly inserted into section **2.3 Correlations and Interactions** of the documentation. + +::: +:::: + + +## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f5 .tc .pl4 .overlay} +**Insert a test-driven block** + +::: {.f6} +`HighPearsonCorrelation:balanced_raw_dataset` + +::: + +When you're done, click [{{< fa chevron-right >}}]() to continue. + +:::: + + +# Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Model testing with {{< var vm.product >}} + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +So far, we’ve focused on the data assessment and pre-processing that usually occurs prior to any models being built. Now, let’s instead assume we have already built a model and we want to incorporate some model results into our documentation: + + +::: {.panel-tabset} + +### 1. Train your model + +Using {{< var vm.product >}} tests, we’ll train a simple logistic regression model on our dataset and evaluate its performance by using the `LogisticRegression` class from the `sklearn.linear_model`. + +### 2. Initialize the model object + +The last step for evaluating the model’s performance is to initialize the {{< var vm.product >}} `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset. + +### 3. Assign predictions + +Once the model has been registered you can assign model predictions to the training and test datasets. The `assign_predictions()` method from the `Dataset` object can link existing predictions to any number of models. + +### 4. Run the model evaluation tests +In this next example, we’ll focus on running the tests within the Model Development section of the model documentation. Only tests associated with this section will be executed, and the corresponding results will be updated in the model documentation. + +::: + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#train-simple-logistic-regression-model" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Train your model** + +::: {.f5} +Using {{< var vm.product >}} tests, we'll train a simple logistic regression model on our dataset and evaluate its performance: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run all the cells under the Model testing section: **Train simple logistic regression model**. +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-model-evaluation-objects" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Initialize a model object** + +::: {.f5} +Use the `init_dataset` and [`init_model` functions](https://docs.validmind.ai/validmind/validmind.html#init_model) to initialize these objects: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the cell under the following Model testing section: **Initialize model evaluation objects**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#assign-predictions" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Assign predictions** + +::: {.f5} +Use the [`assign_predictions()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#VMDataset.assign_predictions) from the `Dataset` object to link existing predictions to any number of models: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the cell under the following Model testing section: **Assign predictions**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-the-model-evaluation-tests" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Run the model evaluation tests** + +::: {.f5} +Finally, we'll run only the tests within the Model Development section of the model documentation: + +1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +2. Run the cell under the following Model testing section: **Run the model evaluation tests**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + + +# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Learning to run tests + +::: + +::: {.column width="70%" .bl .pl4 .f3} +In this second module, you learned how to: + +- [ ] Identify relevant tests to run from {{< var vm.product >}}'s test repository +- [ ] Initialize {{< var vm.product >}} `Dataset` and `Model` objects +- [ ] Run out-of-the-box tests with the {{< var validmind.developer >}} +- [ ] Log test results to the {{< var validmind.platform >}} +- [ ] Insert logged test results into your model's documentation + +::: +:::: + +::: {.tc} +
+Continue your model development journey with: +

+ +[Implementing custom tests](implementing-custom-tests.html){.button} +::: \ No newline at end of file diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index b3767e133e..5bc1970368 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -1,6 +1,6 @@ --- title: "Learning to
run tests" -subtitle: "Module 2 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" +subtitle: "Developer Fundamentals — Module 2 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true # REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED search: false @@ -194,7 +194,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to With your code snippet copied to your clipboard: 1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cells in the Setting up section: **Initialize the {{< var validmind.developer >}}** & **Import sample dataset**. +2. Run the following cells in the Setting up section:
**Initialize the {{< var validmind.developer >}}** / **Import sample dataset**. ::: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index b3b0249e7d..ade658f6f1 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -1,6 +1,6 @@ --- title: "Using {{< var vm.product >}}
for model development" -subtitle: "Module 1 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" +subtitle: "Developer Fundamentals — Module 1 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true # REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED search: false From 55f6a9930bf42c9cc7254587d38ffaa67866ba14 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 13:55:23 -0700 Subject: [PATCH 26/77] =?UTF-8?q?Implementing=20custom=20tests=20=E2=80=94?= =?UTF-8?q?=20P2=20setup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../implementing-custom-tests.qmd | 225 ++++-------------- 1 file changed, 41 insertions(+), 184 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 27e65983db..38fa4bb3bc 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -188,10 +188,6 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: - - -# Implement custom tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#initialize-the-validmind-library" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} @@ -200,7 +196,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} With your code snippet copied to your clipboard: -1. Open **103 Integrate custom testss**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells under the **Setting up** section. ::: @@ -209,6 +205,8 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: +# Implement custom tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + ## {.scrollable} @@ -281,8 +279,6 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: - - # Use external test providers {background-color="#083E44" background-image="/training/assets/home-hero.svg"} @@ -362,62 +358,30 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # PART 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} - - -# Include custom test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Document test results - -::: {.tc} - - -[Learn more ...](/validmind/validmind/vm_models.html#TestResult.log){.button target="_blank"} -::: - - -
Try it **live** on the next page. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -Every test result returned by the `run_test()` function has a `.log()` method that can be used to send the test results to the {{< var validmind.platform >}}: - -- When using `run_documentation_tests()`, documentation sections will be automatically populated with the results of all tests registered in the documentation template. -- When logging individual test results to the platform, you'll need to manually add those results to the desired section of the model documentation. - -::: -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-multiple-tests" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Run & log multiple tests** +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} +**104 Finalize testing and documentation** ::: {.f5} -[`run_documentation_tests()`](/validmind/validmind.html#run_documentation_tests) allows you to run multiple tests at once and automatically log the results to your documentation: - -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cell in the Documenting results section: **Run and log multiple tests**. +This is the final notebook in our introductory series, which will walk you through wrapping custom test results into your documentation, as well as how to update the configuration for the entire model documentation template to suit your needs. ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +**Scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-an-individual-test" data-preload="yes"} +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Run & log an individual test** +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Welcome back to the model inventory** ::: {.f5} -Next, we'll run an individual test and log the result to the {{< var validmind.platform >}}: +As usual, let's connect back up to your model in the {{< var validmind.platform >}}: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the following cell in the Running tests section: **Run and log an individual test**. +1. Select the name of your model you registered for this course to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. ::: @@ -425,129 +389,35 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Work with test results - -::: {.tc} - - -[Learn more ...](/notebooks/EXECUTED/model_development/102-start_development_process.ipynb#add-individual-test-results-to-model-documentation){.button target="_blank"} -::: - - -
Try it **live** on the next page. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f4} -### Add individual test results to model documentation - -With the test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: - -1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. - -2. In the left sidebar that appears for your model, click **Documentation**. - -3. Locate the Data Preparation section and click on **2.3 Correlations and Interactions** to expand that section. - -4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block. - -5. Click **+** and then select **Test-Driven Block**: - - - In the search bar, type in `HighPearsonCorrelation`. - - Select `HighPearsonCorrelation:balanced_raw_dataset` as the test. - -6. Finally, click **Insert 1 Test Result to Document** to add the test result to the documentation. - - Confirm that the individual results for the high correlation test has been correctly inserted into section **2.3 Correlations and Interactions** of the documentation. - -::: -:::: - - -## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f5 .tc .pl4 .overlay} -**Insert a test-driven block** - -::: {.f6} -`HighPearsonCorrelation:balanced_raw_dataset` - -::: - -When you're done, click [{{< fa chevron-right >}}]() to continue. - -:::: - - -# Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Model testing with {{< var vm.product >}} - - -
Try it **live** on the next pages. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -So far, we’ve focused on the data assessment and pre-processing that usually occurs prior to any models being built. Now, let’s instead assume we have already built a model and we want to incorporate some model results into our documentation: - - -::: {.panel-tabset} - -### 1. Train your model - -Using {{< var vm.product >}} tests, we’ll train a simple logistic regression model on our dataset and evaluate its performance by using the `LogisticRegression` class from the `sklearn.linear_model`. - -### 2. Initialize the model object - -The last step for evaluating the model’s performance is to initialize the {{< var vm.product >}} `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset. - -### 3. Assign predictions - -Once the model has been registered you can assign model predictions to the training and test datasets. The `assign_predictions()` method from the `Dataset` object can link existing predictions to any number of models. - -### 4. Run the model evaluation tests -In this next example, we’ll focus on running the tests within the Model Development section of the model documentation. Only tests associated with this section will be executed, and the corresponding results will be updated in the model documentation. - -::: - -::: -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#train-simple-logistic-regression-model" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#initialize-the-validmind-library" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Train your model** +**Connect to your model** ::: {.f5} -Using {{< var vm.product >}} tests, we'll train a simple logistic regression model on our dataset and evaluate its performance: +With your code snippet copied to your clipboard: + +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run all the cells under the **Setting up** section. -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run all the cells under the Model testing section: **Train simple logistic regression model**. ::: When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-model-evaluation-objects" data-preload="yes"} +# Include custom test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#reconnect-to-validmind" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Initialize a model object** +**Reconnect to {{< var vm.product >}}** ::: {.f5} -Use the `init_dataset` and [`init_model` functions](https://docs.validmind.ai/validmind/validmind.html#init_model) to initialize these objects: +After you insert test-driven blocks into your model documentation, changes should persist and become available every time you call [`preview_template()`](https://docs.validmind.ai/validmind/validmind.html#preview_template): -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the cell under the following Model testing section: **Initialize model evaluation objects**. +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run all the cells under the **Reconnect to {{< var vm.product >}}** section. ::: @@ -555,16 +425,16 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#assign-predictions" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#include-custom-test-results" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Assign predictions** +**Log custom test results** ::: {.f5} -Use the [`assign_predictions()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#VMDataset.assign_predictions) from the `Dataset` object to link existing predictions to any number of models: +Since your custom test IDs are now part of your documentation template, you can now run tests for an entire section and all additional custom tests should be loaded without any issues: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the cell under the following Model testing section: **Assign predictions**. +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run the cell under the **Include custom test results** section. ::: @@ -572,22 +442,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-the-model-evaluation-tests" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Run the model evaluation tests** -::: {.f5} -Finally, we'll run only the tests within the Model Development section of the model documentation: - -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -2. Run the cell under the following Model testing section: **Run the model evaluation tests**. - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +# Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -:::: @@ -597,18 +455,17 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: {.columns} ::: {.column width="30%" .pr4 .f2} -Learning to run tests +Implementing custom tests ::: ::: {.column width="70%" .bl .pl4 .f3} -In this second module, you learned how to: +In this third module, you learned how to: -- [ ] Identify relevant tests to run from {{< var vm.product >}}'s test repository -- [ ] Initialize {{< var vm.product >}} `Dataset` and `Model` objects -- [ ] Run out-of-the-box tests with the {{< var validmind.developer >}} -- [ ] Log test results to the {{< var validmind.platform >}} -- [ ] Insert logged test results into your model's documentation +- [ ] Implement, run, and log custom inline tests +- [ ] Register external test providers for reusable custom tests +- [ ] Include custom test results in your documentation template +- [ ] Configure your model's documentation template ::: :::: @@ -618,5 +475,5 @@ In this second module, you learned how to: Continue your model development journey with:

-[Implementing custom tests](implementing-custom-tests.html){.button} +[Finalizing model documentation](finalizing-model-documentation.html){.button} ::: \ No newline at end of file From 73be054b34407d617c5d2bb53ad7035c136c20d2 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 15:54:28 -0700 Subject: [PATCH 27/77] =?UTF-8?q?Implementing=20custom=20tests=20=E2=80=94?= =?UTF-8?q?=20Draft=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../implementing-custom-tests.qmd | 123 +++++++++++++++++- .../learning-to-run-tests.qmd | 2 +- 2 files changed, 123 insertions(+), 2 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 38fa4bb3bc..5aa0259ec9 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -354,6 +354,69 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Custom test results + +::: {.f5 .nt2 .pl2 .mb4} +(Scroll down for the full instructions.) +::: + +::: {.tc} + + +[Learn more ...](/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb#add-test-results-to-documentation){.button target="_blank"} +::: + + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f4} +### Add test results to model documentation + +With the custom test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: + +1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. + +2. In the left sidebar that appears for your model, click **Documentation**. + +3. Locate the Data Preparation section and click on **3.2 Model Evaluation** to expand that section. + +4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block. + +5. Click **+** and then select **Test-Driven Block**: + + - In the search bar, type in `ConfusionMatrix`. + - Select the custom `ConfusionMatrix` tests you logged above: + + ![The ConfusionMatrix tests selected](/notebooks/EXECUTED/model_development/selecting-confusion-matrix-test.png){fig-alt="Screenshot showing the ConfusionMatrix tests selected" .screenshot} + +6. Finally, click **Insert 2 Test Results to Document** to add the test results to the documentation. + + Confirm that the two individual results for the confusion matrix tests have been correctly inserted into section **3.2 Model Evaluation** of the documentation. + +::: +:::: + + +## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f5 .tc .pl4 .overlay} +**Insert custom test-driven blocks** + +::: {.f6} +`my_custom_tests.ConfusionMatrix:test_dataset_normalized` / `my_test_provider.ConfusionMatrix` + +::: + +When you're done, click [{{< fa chevron-right >}}]() to continue. + +:::: + # PART 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} @@ -443,10 +506,68 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: - # Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Documentation template configuration + +::: {.tc} + + +[Learn more ...](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestSuite.get_default_config){.button target="_blank"} +::: + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +### `get_default_config()` + +The utility function `vm.get_test_suite().get_default_config()` will return the default configuration for the entire documentation template as a dictionary: + +- This configuration will contain all the test IDs and their default parameters. +- You can then modify this configuration as needed and pass it to `run_documentation_tests()` to run all tests in the documentation template if needed. +- You still have the option to continue running tests for one section at a time; `get_default_config()` simply provides a useful reference for providing default parameters to every test. + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#documentation-template-configuration" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Retrieve default configuration** + +::: {.f5} +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run the first cell under the **Documentation template configuration** section. + +::: +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#update-the-config" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Update template configuration** + +::: {.f5} +The default configuration does not assign any inputs to a test, but you can assign inputs to individual tests as needed depending on the datasets and models you want to pass to individual tests: + +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run the all the cells under the following Documentation template configuration section: **Update the config** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: # Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 5bc1970368..b7e20e0434 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -386,7 +386,7 @@ With the test results logged, let's head to the model we connected to at the beg ## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f5 .tc .pl4 .overlay} -**Insert a test-driven block** +**Insert a test-driven block** ::: {.f6} `HighPearsonCorrelation:balanced_raw_dataset` From d740a333d536c328d07e87a97a15a2c2dc4f16c5 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 16:00:18 -0700 Subject: [PATCH 28/77] Finalizing model documentation set up --- .../finalizing-model-documentation.qmd | 583 ++++++++++++++++++ .../implementing-custom-tests.qmd | 4 +- .../learning-to-run-tests.qmd | 2 - .../using-validmind-for-model-development.qmd | 2 - 4 files changed, 584 insertions(+), 7 deletions(-) create mode 100644 site/training/developer-fundamentals/finalizing-model-documentation.qmd diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd new file mode 100644 index 0000000000..1c71c82df5 --- /dev/null +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -0,0 +1,583 @@ +--- +title: "Finalizing
model documentation" +subtitle: "Developer Fundamentals — Module 4 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" +lightbox: true +format: + revealjs: + controls: true + controls-tutorial: true + help: true + controls-back-arrows: visible + transition: slide + theme: [default, ../assets/slides.scss] + slide-number: true + chalkboard: false + preview-links: auto + view-distance: 2 + logo: /validmind.png + footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" + html: + # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml + output-file: _using-validmind-for-model-development.html + search: false +title-slide-attributes: + data-background-color: "#083E44" + data-background-image: "../assets/home-hero.svg" +skip_preview: true +--- + +# Learning objectives + +_"As a **developer** who has run and logged tests with the {{< var validmind.developer >}} to the {{< var validmind.platform >}}, I want to refine my model's documentation, submit my model documentation for approval, and track changes and other updates to my model."_ + +::: {.tc} +
+This third module is part of a four-part series: +

+[Developer Fundamentals](/training/developer-fundamentals/developer-fundamentals-register.qmd){.button target="_blank"} +::: + + +## Module 4 — Contents + +::: {.f2} +1. Edit model documentation +3. Submit documentation for approval +4. Track model activity +5. Collaborate with others + +::: + +First, let's make sure you can log in to {{< var vm.product >}}. + +{{< include /training/assets/_revealjs-navigation.qmd >}} + +## Can you log in? + +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first two modules of this course: + +:::: {.columns} +::: {.column width="60%"} +::: {.tc} +[Using {{< var vm.product >}} for model development](using-validmind-for-model-development.html){.button target="_blank"} +::: + +::: +::: {.column width="40%"} +::: {.tc} +[Learning to run tests](learning-to-run-tests.html){.button target="_blank"} +::: + +::: +:::: + + +
Log in to check your access: + +:::: {.columns} +::: {.column width="50%"} +::: {.tc} +[Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} +::: + +::: +::: {.column width="50%"} +::: {.tc} +[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} +::: + +::: +:::: + +::: {.tc} +Be sure to return to this page afterwards. +::: + + + +# ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Jupyter Notebook series + +::: {.f3} +When you run these notebooks, they will generate a draft of model documentation and upload it to {{< var vm.product >}}, complete with test supporting test results. + +::: {.f5 .nt2 .pl2 .mb4} +
+ +You will need have already completed **101** and **102** during the first and second modules to proceed. +::: + +::: +::: + +::: {.column width="70%" .bl .pl4 .f3} +### {{< var vm.product >}} for model development + +Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: + +1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} + +::: {.f4 .pl3 .pr3 .embed} +In this third module, we'll run through the remaining two notebooks **103** in PART 1 and **104** in PART 2 together. +::: + +::: +:::: + +
+ +Let's continue our journey with **PART 1** on the next page. {{< fa hand-point-right >}} + +# PART 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} + +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} +**103 Integrate custom tests** + +::: {.f5} +This is the third notebook in our introductory series, which will walk you through how to implement different types of custom tests with {{< var vm.product >}}. + +::: + +**Scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Welcome back to the model inventory** + +::: {.f5} +First, let's connect back up to your model in the {{< var validmind.platform >}}: + +1. Select the name of your model you registered for this course to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#initialize-the-validmind-library" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Connect to your model** + +::: {.f5} +With your code snippet copied to your clipboard: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells under the **Setting up** section. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +# Implement custom tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Custom inline tests + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +Let's implement a custom *inline test* that calculates the confusion matrix for a binary classification model. + +- An inline test refers to a test written and executed within the same environment as the code being tested — in the following example, right in our Jupyter Notebook — without requiring a separate test file or framework. +- You'll note that the custom test function is just a regular Python function that can include and require any Python library as you see fit. + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-a-confusion-matrix-plot" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Create a custom test** + +::: {.f5} +The [`@vm.test` wrapper](https://docs.validmind.ai/validmind/validmind.html#test) allow you to create a reusable test: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells in the following section under Implementing a custom inline test: **Create a confusion matrix plot** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#add-parameters-to-custom-tests" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Adjust your custom test** + +::: {.f5} +Custom tests can take parameters just like any other function: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells in the following sections under Implementing a custom inline test:
**Add parameters to custom tests** / **Pass parameters to custom tests** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#log-the-confusion-matrix-results" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Log your custom test** + +::: {.f5} +Use the [`.log()` method](/validmind/validmind/vm_models.html#TestResult.log) to send the results of your custom test to the {{< var validmind.platform >}}: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run the cell in the following section under Implementing a custom inline test: **Log the confusion matrix results** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + +# Use external test providers {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Reusable custom tests + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +### External test providers + +Creating inline custom tests with a function is a great way to customize your model documentation. + +- However, sometimes you may want to reuse the same set of tests across multiple models and share them with others in your organization. +- In this case, you can create an external custom test provider that will allow you to load custom tests from a local folder or a Git repository. + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-custom-tests-folder" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Create custom tests folder** + +::: {.f5} +Create a new folder that will contain reusable custom tests from your existing inline tests: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run the cell under the following Using external test providers section: **Create custom tests folder** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#save-an-inline-test" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Save inline test** + +::: {.f5} +The `@vm.test` decorator also includes a convenience method that allows you to save the test to a Python file at a specified path: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells under the Using external test providers section: **Save an inline test** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#register-a-local-test-provider" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Register local test provider** + +::: {.f5} +Next, let's initialize a test provider that will tell the {{< var validmind.developer >}} where to find your saved custom tests: + +1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +2. Run all the cells under the Using external test providers section: **Register a local test provider** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Custom test results + +::: {.f5 .nt2 .pl2 .mb4} +(Scroll down for the full instructions.) +::: + +::: {.tc} + + +[Learn more ...](/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb#add-test-results-to-documentation){.button target="_blank"} +::: + + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f4} +### Add test results to model documentation + +With the custom test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: + +1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. + +2. In the left sidebar that appears for your model, click **Documentation**. + +3. Locate the Data Preparation section and click on **3.2 Model Evaluation** to expand that section. + +4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block. + +5. Click **+** and then select **Test-Driven Block**: + + - In the search bar, type in `ConfusionMatrix`. + - Select the custom `ConfusionMatrix` tests you logged above: + + ![The ConfusionMatrix tests selected](/notebooks/EXECUTED/model_development/selecting-confusion-matrix-test.png){fig-alt="Screenshot showing the ConfusionMatrix tests selected" .screenshot} + +6. Finally, click **Insert 2 Test Results to Document** to add the test results to the documentation. + + Confirm that the two individual results for the confusion matrix tests have been correctly inserted into section **3.2 Model Evaluation** of the documentation. + +::: +:::: + + +## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f5 .tc .pl4 .overlay} +**Insert custom test-driven blocks** + +::: {.f6} +`my_custom_tests.ConfusionMatrix:test_dataset_normalized` / `my_test_provider.ConfusionMatrix` + +::: + +When you're done, click [{{< fa chevron-right >}}]() to continue. + +:::: + + + +# PART 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} + +:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} +**104 Finalize testing and documentation** + +::: {.f5} +This is the final notebook in our introductory series, which will walk you through wrapping custom test results into your documentation, as well as how to update the configuration for the entire model documentation template to suit your needs. +::: + +**Scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Welcome back to the model inventory** + +::: {.f5} +As usual, let's connect back up to your model in the {{< var validmind.platform >}}: + +1. Select the name of your model you registered for this course to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#initialize-the-validmind-library" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Connect to your model** + +::: {.f5} +With your code snippet copied to your clipboard: + +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run all the cells under the **Setting up** section. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +# Include custom test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#reconnect-to-validmind" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Reconnect to {{< var vm.product >}}** + +::: {.f5} +After you insert test-driven blocks into your model documentation, changes should persist and become available every time you call [`preview_template()`](https://docs.validmind.ai/validmind/validmind.html#preview_template): + +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run all the cells under the **Reconnect to {{< var vm.product >}}** section. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#include-custom-test-results" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Log custom test results** + +::: {.f5} +Since your custom test IDs are now part of your documentation template, you can now run tests for an entire section and all additional custom tests should be loaded without any issues: + +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run the cell under the **Include custom test results** section. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + +# Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Documentation template configuration + +::: {.tc} + + +[Learn more ...](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestSuite.get_default_config){.button target="_blank"} +::: + + +
Try it **live** on the next pages. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +### `get_default_config()` + +The utility function `vm.get_test_suite().get_default_config()` will return the default configuration for the entire documentation template as a dictionary: + +- This configuration will contain all the test IDs and their default parameters. +- You can then modify this configuration as needed and pass it to `run_documentation_tests()` to run all tests in the documentation template if needed. +- You still have the option to continue running tests for one section at a time; `get_default_config()` simply provides a useful reference for providing default parameters to every test. + +::: +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#documentation-template-configuration" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Retrieve default configuration** + +::: {.f5} +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run the first cell under the **Documentation template configuration** section. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + +## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#update-the-config" data-preload="yes"} + +:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} +**Update template configuration** + +::: {.f5} +The default configuration does not assign any inputs to a test, but you can assign inputs to individual tests as needed depending on the datasets and models you want to pass to individual tests: + +1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +2. Run the all the cells under the following Documentation template configuration section: **Update the config** + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +:::: + + +# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Implementing custom tests + +::: + +::: {.column width="70%" .bl .pl4 .f3} +In this third module, you learned how to: + +- [ ] Implement, run, and log custom inline tests +- [ ] Register external test providers for reusable custom tests +- [ ] Include custom test results in your documentation template +- [ ] Configure your model's documentation template + +::: +:::: + +::: {.tc} +
+Continue your model development journey with: +

+ +[Finalizing model documentation](finalizing-model-documentation.html){.button} +::: \ No newline at end of file diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 5aa0259ec9..8b6d6b9362 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -2,8 +2,6 @@ title: "Implementing
custom tests" subtitle: "Developer Fundamentals — Module 3 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true -# REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED -search: false format: revealjs: controls: true @@ -30,7 +28,7 @@ skip_preview: true # Learning objectives -_"As a **developer** who understands how to run and log out-of-the-box tests with {{< var vm.product >}}, I want to update my documentation template to include manually inserted test results, implement, run, and log custom tests, and include those custom tests in my documentation template."_ +_"As a **developer** who understands how to run and log out-of-the-box tests with {{< var vm.product >}}, I want to update my documentation template to include manually inserted test results, implement, run, and log custom tests, and include those custom tests in my documentation template."_ ::: {.tc}
diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index b7e20e0434..20210da7b3 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -2,8 +2,6 @@ title: "Learning to
run tests" subtitle: "Developer Fundamentals — Module 2 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true -# REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED -search: false format: revealjs: controls: true diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index ade658f6f1..fc01da6367 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -2,8 +2,6 @@ title: "Using {{< var vm.product >}}
for model development" subtitle: "Developer Fundamentals — Module 1 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true -# REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED -search: false format: revealjs: controls: true From 01e4b1d2f6bdfe6672bf7ab1b6b08e373213ca12 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 17:27:46 -0700 Subject: [PATCH 29/77] =?UTF-8?q?Finalizing=20model=20documentation=20?= =?UTF-8?q?=E2=80=94=20Refine=20model=20documentation=20draft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_test-result-metadata.qmd | 5 + .../_view-test-result-metadata.qmd | 8 + .../content_blocks/_generate-with-ai.qmd | 38 ++ .../work-with-content-blocks.qmd | 31 +- .../work-with-test-results.qmd | 15 +- .../finalizing-model-documentation.qmd | 455 +++--------------- .../implementing-custom-tests.qmd | 4 +- 7 files changed, 133 insertions(+), 423 deletions(-) create mode 100644 site/guide/model-documentation/_test-result-metadata.qmd create mode 100644 site/guide/model-documentation/_view-test-result-metadata.qmd create mode 100644 site/guide/model-documentation/content_blocks/_generate-with-ai.qmd diff --git a/site/guide/model-documentation/_test-result-metadata.qmd b/site/guide/model-documentation/_test-result-metadata.qmd new file mode 100644 index 0000000000..10d8d0e95c --- /dev/null +++ b/site/guide/model-documentation/_test-result-metadata.qmd @@ -0,0 +1,5 @@ +After you have added a test result to your document, you can view the following information attached to the result: + +- History of values for the result +- What users wrote those results +- Relevant inputs associated with the result \ No newline at end of file diff --git a/site/guide/model-documentation/_view-test-result-metadata.qmd b/site/guide/model-documentation/_view-test-result-metadata.qmd new file mode 100644 index 0000000000..3ff67ebb73 --- /dev/null +++ b/site/guide/model-documentation/_view-test-result-metadata.qmd @@ -0,0 +1,8 @@ +1. Locate the test result whose metadata you want to view. + +1. Under the test result's name, click on the row indicating the currently [Active]{.green-bg} test result. + + - On the test result timeline, click on the **{{< fa chevron-down >}}** associated with a test run to expand for details. + - When you are done, you can either click **Cancel** or **{{< fa x >}}** to close the metadata menu. + + ![Detail expansion of test runs on the test result timeline](/guide/model-documentation/test-run-details.gif){width=85% fig-alt="A gif showcasing detail expansion of test runs on the test result timeline" .screenshot} \ No newline at end of file diff --git a/site/guide/model-documentation/content_blocks/_generate-with-ai.qmd b/site/guide/model-documentation/content_blocks/_generate-with-ai.qmd new file mode 100644 index 0000000000..b8079a3689 --- /dev/null +++ b/site/guide/model-documentation/content_blocks/_generate-with-ai.qmd @@ -0,0 +1,38 @@ + +:::: {.content-visible unless-format="revealjs"} +1. Click **{{< fa diamond >}} [beta]{.smallcaps} (Generate Text with AI)** in the toolbar while editing a content block. + +1. Enter an optional prompt to guide the output, then click **{{< fa check >}} Generate** to compose a draft for review. + +1. Review the draft composed by the {{< var vm.product >}} AI Content Builder for accuracy and relevance, then: + + - Click **{{< fa download >}} Accept Text** to insert the draft into your content block. + - Click **{{< fa rotate >}} Try Again** to regenerate a different draft. + - Click **Cancel** to discard the draft and return to your documentation section. + +1. After you insert the AI-generated draft, click on the text box to make the necessary edits and adjustments to your copy: + + - Ensure that content is in compliance with the quality guidelines outlined by your organization. + - Use the content editing toolbar^[[Content editing toolbar](#content-editing-toolbar)] just as you would with any other text block. + +![Generating content with AI within a simple text block](/guide/model-documentation/generate-with-ai.gif){width=90% fig-alt="An animation that showcases the Generate with AI feature within a simple text block" .screenshot} + +:::: + + +:::: {.content-hidden unless-format="revealjs"} +1. Click **{{< fa diamond >}} [beta]{.smallcaps} (Generate Text with AI)** in the toolbar while editing a content block. + +1. Enter an optional prompt to guide the output, then click **{{< fa check >}} Generate** to compose a draft for review. + +1. Review the draft composed by the {{< var vm.product >}} AI Content Builder for accuracy and relevance, then: + + - Click **{{< fa download >}} Accept Text** to insert the draft into your content block. + - Click **{{< fa rotate >}} Try Again** to regenerate a different draft. + - Click **Cancel** to discard the draft and return to your documentation section. + +1. After you insert the AI-generated draft, click on the text box to make the necessary edits and adjustments to your copy, ensure that content is in compliance with the quality guidelines outlined by your organization. + +![Generating content with AI within a simple text block](/guide/model-documentation/generate-with-ai.gif){width=90% fig-alt="An animation that showcases the Generate with AI feature within a simple text block" .screenshot} + +:::: \ No newline at end of file diff --git a/site/guide/model-documentation/work-with-content-blocks.qmd b/site/guide/model-documentation/work-with-content-blocks.qmd index 2bbcb38ce4..29c83a3e44 100644 --- a/site/guide/model-documentation/work-with-content-blocks.qmd +++ b/site/guide/model-documentation/work-with-content-blocks.qmd @@ -5,9 +5,9 @@ aliases: - /guide/work-with-content-blocks.html --- -Make edits to your model documentation, validation reports, or ongoing monitoring plans by adding or removing content blocks directly in the online editor. +Make edits to your model documentation, validation reports, or ongoing monitoring plans by adding or removing content blocks directly in the online editor. -## What are content blocks? +## What are content blocks? Content blocks provide you with sections that are part of a template, and are used in model documentation, validation reports, and ongoing monitoring plans. @@ -90,24 +90,9 @@ Generating content drafts for your model documentation works best after you've l While editing a simple text block, you can have {{< var vm.product >}} assist you with generating content drafts: -1. Click **{{< fa diamond >}} [beta]{.smallcaps} (Generate Text with AI)** in the toolbar while editing a content block. +{{< include content_blocks/_generate-with-ai.qmd >}} -2. Enter an optional prompt to guide the output, then click **{{< fa check >}} Generate** to compose a draft for review. - -3. Review the draft composed by the {{< var vm.product >}} AI Content Builder for accuracy and relevance, then: - - - Click **{{< fa download >}} Accept Text** to insert the draft into your content block. - - Click **{{< fa rotate >}} Try Again** to regenerate a different draft.g - - Click **Cancel** to discard the draft and return to your documentation section. - -4. After you insert the AI-generated draft, click on the text box to make the necessary edits and adjustments to your copy: - - - Ensure that content is in compliance with the quality guidelines outlined by your organization. - - Use the content editing toolbar[^9] just as you would with any other text block. - -![Generating content with AI within a simple text block](generate-with-ai.gif){width=90% fig-alt="An animation that showcases the Generate with AI feature within a simple text block" .screenshot} - -When generating content drafts with AI, accepted versions and edits are retained in your {{< fa wifi >}} Model Activity[^10] just like other updates to your documentation, reports, or plans. +When generating content drafts with AI, accepted versions and edits are retained in your {{< fa wifi >}} Model Activity[^9] just like other updates to your documentation, reports, or plans. ## Remove content blocks @@ -118,7 +103,7 @@ Test-driven or metric over time blocks can be re-added later on but **text block 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -2. Select a model or find your model by applying a filter or searching for it.[^11] +2. Select a model or find your model by applying a filter or searching for it.[^10] 3. In the left sidebar that appears for your model, click **{{< fa book-open >}} Documentation**, **{{< fa shield >}} Validation Report**, or **{{< fa desktop >}} Ongoing Monitoring**. @@ -165,8 +150,6 @@ Test-driven or metric over time blocks can be re-added later on but **text block [^8]: [Run tests and test suites](/developer/model-testing/testing-overview.qmd) -[^9]: [Content editing toolbar](#content-editing-toolbar) - -[^10]: [View model activity](/guide/model-inventory/view-model-activity.qmd) +[^9]: [View model activity](/guide/model-inventory/view-model-activity.qmd) -[^11]: [Working with the model inventory](/guide/model-inventory/working-with-model-inventory.qmd#search-filter-and-sort-models) +[^10]: [Working with the model inventory](/guide/model-inventory/working-with-model-inventory.qmd#search-filter-and-sort-models) diff --git a/site/guide/model-documentation/work-with-test-results.qmd b/site/guide/model-documentation/work-with-test-results.qmd index c68ab9ad47..640d929f21 100644 --- a/site/guide/model-documentation/work-with-test-results.qmd +++ b/site/guide/model-documentation/work-with-test-results.qmd @@ -43,11 +43,7 @@ Once generated via the {{< var validmind.developer >}}, view and add the test re ## View test result metadata -After you have added a test result to your document, you can view the following information attached to the result: - -- History of values for the result -- What users wrote those results -- Relevant inputs associated with the result +{{< include /guide/model-documentation/_test-result-metadata.qmd >}} 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. @@ -55,14 +51,7 @@ After you have added a test result to your document, you can view the following 3. In the left sidebar that appears for your model, click **{{< fa book-open >}} Documentation**, **{{< fa shield >}} Validation Report**, or **{{< fa desktop >}} Ongoing Monitoring**. -4. Locate the test result whose metadata you want to view. - -5. Under the test result's name, click on the row indicating the currently [Active]{.green-bg} test result. - - - On the test result timeline, click on the **{{< fa chevron-down >}}** associated with a test run to expand for details. - - When you are done, you can either click **Cancel** or **{{< fa x >}}** to close the metadata menu. - - ![Detail expansion of test runs on the test result timeline](test-run-details.gif){width=85% fig-alt="A gif showcasing detail expansion of test runs on the test result timeline" .screenshot} +{{< include /guide/model-documentation/_view-test-result-metadata.qmd >}} #### Filter historical test results diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 1c71c82df5..229ab303b2 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -41,10 +41,10 @@ This third module is part of a four-part series: ## Module 4 — Contents ::: {.f2} -1. Edit model documentation -3. Submit documentation for approval -4. Track model activity -5. Collaborate with others +1. [Refine model documentation](#refine-model-documentation) +3. [Submit documentation for approval](#submit-documentation-for-approval) +4. [Track model activity](#track-model-activity) +5. [Collaborate with others](#collaborate-with-others) ::: @@ -54,18 +54,27 @@ First, let's make sure you can log in to {{< var vm.product >}}. ## Can you log in? -To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first two modules of this course: +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first three modules of this course: + + :::: {.columns} -::: {.column width="60%"} +::: {.column width="30%"} ::: {.tc} -[Using {{< var vm.product >}} for model development](using-validmind-for-model-development.html){.button target="_blank"} +[Module 1](using-validmind-for-model-development.html){.button target="_blank"} ::: ::: -::: {.column width="40%"} +::: {.column width="30%"} +::: {.tc} +[Module 2](learning-to-run-tests.html){.button target="_blank"} +::: + +::: + +::: {.column width="30%"} ::: {.tc} -[Learning to run tests](learning-to-run-tests.html){.button target="_blank"} +[Module 3](implementing-custom-tests.html){.button target="_blank"} ::: ::: @@ -93,247 +102,64 @@ To continue, you need to have been [onboarded](developer-fundamentals-register.q Be sure to return to this page afterwards. ::: - - -# ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# Refine model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} -Jupyter Notebook series - -::: {.f3} -When you run these notebooks, they will generate a draft of model documentation and upload it to {{< var vm.product >}}, complete with test supporting test results. +Review test results ::: {.f5 .nt2 .pl2 .mb4} -
- -You will need have already completed **101** and **102** during the first and second modules to proceed. -::: - -::: -::: - -::: {.column width="70%" .bl .pl4 .f3} -### {{< var vm.product >}} for model development - -Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: - -1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} - -::: {.f4 .pl3 .pr3 .embed} -In this third module, we'll run through the remaining two notebooks **103** in PART 1 and **104** in PART 2 together. -::: - -::: -:::: - -
- -Let's continue our journey with **PART 1** on the next page. {{< fa hand-point-right >}} - -# PART 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} - -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} - -:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} -**103 Integrate custom tests** - -::: {.f5} -This is the third notebook in our introductory series, which will walk you through how to implement different types of custom tests with {{< var vm.product >}}. - -::: - -**Scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. - -:::: - -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} - -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} -**Welcome back to the model inventory** - -::: {.f5} -First, let's connect back up to your model in the {{< var validmind.platform >}}: - -1. Select the name of your model you registered for this course to open up the model details page. -2. On the left sidebar that appears for your model, click **Getting Started**. -3. Locate the code snippet and click **Copy snippet to clipboard**. - +(Scroll down for the full instructions.) ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#initialize-the-validmind-library" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Connect to your model** - -::: {.f5} -With your code snippet copied to your clipboard: - -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -2. Run all the cells under the **Setting up** section. +::: {.tc} + +[Learn more ...](/guide/model-documentation/work-with-test-results.qmd){.button target="_blank"} ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - -# Implement custom tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Custom inline tests - -
Try it **live** on the next pages. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -Let's implement a custom *inline test* that calculates the confusion matrix for a binary classification model. - -- An inline test refers to a test written and executed within the same environment as the code being tested — in the following example, right in our Jupyter Notebook — without requiring a separate test file or framework. -- You'll note that the custom test function is just a regular Python function that can include and require any Python library as you see fit. - -::: -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-a-confusion-matrix-plot" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Create a custom test** - -::: {.f5} -The [`@vm.test` wrapper](https://docs.validmind.ai/validmind/validmind.html#test) allow you to create a reusable test: - -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -2. Run all the cells in the following section under Implementing a custom inline test: **Create a confusion matrix plot** - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#add-parameters-to-custom-tests" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Adjust your custom test** - -::: {.f5} -Custom tests can take parameters just like any other function: - -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -2. Run all the cells in the following sections under Implementing a custom inline test:
**Add parameters to custom tests** / **Pass parameters to custom tests** - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#log-the-confusion-matrix-results" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Log your custom test** - -::: {.f5} -Use the [`.log()` method](/validmind/validmind/vm_models.html#TestResult.log) to send the results of your custom test to the {{< var validmind.platform >}}: - -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -2. Run the cell in the following section under Implementing a custom inline test: **Log the confusion matrix results** - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - - -# Use external test providers {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Reusable custom tests - - -
Try it **live** on the next pages. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -### External test providers - -Creating inline custom tests with a function is a great way to customize your model documentation. - -- However, sometimes you may want to reuse the same set of tests across multiple models and share them with others in your organization. -- In this case, you can create an external custom test provider that will allow you to load custom tests from a local folder or a Git repository. - +
Try it **live** on the next page. {{< fa hand-point-right >}} ::: -:::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-custom-tests-folder" data-preload="yes"} +::: {.column width="70%" .bl .pl4 .f4} -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Create custom tests folder** +{{< include /guide/model-documentation/_test-result-metadata.qmd >}} -::: {.f5} -Create a new folder that will contain reusable custom tests from your existing inline tests: +### View test result metadata -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -2. Run the cell under the following Using external test providers section: **Create custom tests folder** +From the {{< var validmind.platform >}}: -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -:::: +2. Select the name of your model you registered for this course to open up the model details page. -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#save-an-inline-test" data-preload="yes"} +3. In the left sidebar that appears for your model, click **{{< fa book-open >}} Documentation**. -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Save inline test** +{{< include /guide/model-documentation/_view-test-result-metadata.qmd >}} -::: {.f5} -The `@vm.test` decorator also includes a convenience method that allows you to save the test to a Python file at a specified path: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -2. Run all the cells under the Using external test providers section: **Save an inline test** ::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#register-a-local-test-provider" data-preload="yes"} +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Register local test provider** +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Review model documentation** ::: {.f5} -Next, let's initialize a test provider that will tell the {{< var validmind.developer >}} where to find your saved custom tests: - -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -2. Run all the cells under the Using external test providers section: **Register a local test provider** +1. Select the name of your model you registered for this course to open up the model details page. +2. On the left sidebar that appears for your model, click **Documentation**. +3. Click into any section of the documentation to review the test results logged via the {{< var validmind.developer >}}.
+ For example: **2.3 Correlations and Interactions** / **3.2 Model Evaluation** ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +When you're done taking a look around, click [{{< fa chevron-right >}}]() to continue. :::: @@ -342,7 +168,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: {.columns} ::: {.column width="30%" .pr4 .f2} -Custom test results +Make qualitative edits ::: {.f5 .nt2 .pl2 .mb4} (Scroll down for the full instructions.) @@ -351,7 +177,7 @@ Custom test results ::: {.tc} -[Learn more ...](/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb#add-test-results-to-documentation){.button target="_blank"} +[Learn more ...](/guide/model-documentation/work-with-content-blocks.qmd){.button target="_blank"} ::: @@ -359,217 +185,76 @@ Custom test results ::: ::: {.column width="70%" .bl .pl4 .f4} -### Add test results to model documentation -With the custom test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: +::: {.panel-tabset} -1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. +### Add content blocks -2. In the left sidebar that appears for your model, click **Documentation**. +In any section of your model documentation, hover your mouse over the space where you want your new block to go until a horizontal dashed line with a {{< fa square-plus >}} sign appears that indicates you can insert a new block: -3. Locate the Data Preparation section and click on **3.2 Model Evaluation** to expand that section. + ![Adding a content block in the UI](/guide/model-documentation/add-content-block.gif){width=90% fig-alt="A gif showing the process of adding a content block in the UI" .screenshot} -4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block. +After adding the block to your documentation, generate a content draft with AI using the [content editing toolbar](guide/model-documentation/work-with-content-blocks.qmd#content-editing-toolbar): -5. Click **+** and then select **Test-Driven Block**: +{{< include /guide/model-documentation/content_blocks/_generate-with-ai.qmd >}} - - In the search bar, type in `ConfusionMatrix`. - - Select the custom `ConfusionMatrix` tests you logged above: +### Edit test result descriptions +You can also use the content editing toolbar to revise the description of test results to explain the changes made to the raw data and the reasons behind them. - ![The ConfusionMatrix tests selected](/notebooks/EXECUTED/model_development/selecting-confusion-matrix-test.png){fig-alt="Screenshot showing the ConfusionMatrix tests selected" .screenshot} +For example: -6. Finally, click **Insert 2 Test Results to Document** to add the test results to the documentation. +1. Locate the Data Preparation section and click on **2.3 Correlations and Interactions** to expand that section. - Confirm that the two individual results for the confusion matrix tests have been correctly inserted into section **3.2 Model Evaluation** of the documentation. +2. Edit the description for our individually inserted `HighPearsonCorrelation:balanced_raw_dataset` test: -::: -:::: - - -## {background-iframe="https://app.prod.validmind.ai/model-inventory/" background-interactive="true" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f5 .tc .pl4 .overlay} -**Insert custom test-driven blocks** - -::: {.f6} -`my_custom_tests.ConfusionMatrix:test_dataset_normalized` / `my_test_provider.ConfusionMatrix` + ![Screenshot showing description added to the new content block](/notebooks/images/high-pearson-correlation-block.png){fig-alt="Screenshot showing description added to the new content block" .screenshot} ::: -When you're done, click [{{< fa chevron-right >}}]() to continue. - -:::: - - - -# PART 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} - -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} - -:::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} -**104 Finalize testing and documentation** - -::: {.f5} -This is the final notebook in our introductory series, which will walk you through wrapping custom test results into your documentation, as well as how to update the configuration for the entire model documentation template to suit your needs. ::: - -**Scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. - :::: ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} :::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} -**Welcome back to the model inventory** +**Add & edit content blocks** ::: {.f5} -As usual, let's connect back up to your model in the {{< var validmind.platform >}}: - 1. Select the name of your model you registered for this course to open up the model details page. -2. On the left sidebar that appears for your model, click **Getting Started**. -3. Locate the code snippet and click **Copy snippet to clipboard**. - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#initialize-the-validmind-library" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Connect to your model** - -::: {.f5} -With your code snippet copied to your clipboard: - -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} -2. Run all the cells under the **Setting up** section. +2. On the left sidebar that appears for your model, click **Documentation**. +3. Click into any section of the documentation to add or edit a content block. ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - -# Include custom test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#reconnect-to-validmind" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Reconnect to {{< var vm.product >}}** - -::: {.f5} -After you insert test-driven blocks into your model documentation, changes should persist and become available every time you call [`preview_template()`](https://docs.validmind.ai/validmind/validmind.html#preview_template): - -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} -2. Run all the cells under the **Reconnect to {{< var vm.product >}}** section. - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#include-custom-test-results" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Log custom test results** - -::: {.f5} -Since your custom test IDs are now part of your documentation template, you can now run tests for an entire section and all additional custom tests should be loaded without any issues: - -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} -2. Run the cell under the **Include custom test results** section. - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: - - -# Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Documentation template configuration - -::: {.tc} - - -[Learn more ...](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestSuite.get_default_config){.button target="_blank"} -::: - - -
Try it **live** on the next pages. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -### `get_default_config()` - -The utility function `vm.get_test_suite().get_default_config()` will return the default configuration for the entire documentation template as a dictionary: - -- This configuration will contain all the test IDs and their default parameters. -- You can then modify this configuration as needed and pass it to `run_documentation_tests()` to run all tests in the documentation template if needed. -- You still have the option to continue running tests for one section at a time; `get_default_config()` simply provides a useful reference for providing default parameters to every test. - -::: -:::: - -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#documentation-template-configuration" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Retrieve default configuration** - -::: {.f5} -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} -2. Run the first cell under the **Documentation template configuration** section. - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +When you're done, click [{{< fa chevron-right >}}]() to continue. :::: -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#update-the-config" data-preload="yes"} +# Submit documentation for approval {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} -**Update template configuration** +# Track model activity {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -::: {.f5} -The default configuration does not assign any inputs to a test, but you can assign inputs to individual tests as needed depending on the datasets and models you want to pass to individual tests: - -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} -2. Run the all the cells under the following Documentation template configuration section: **Update the config** - -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. - -:::: +# Collaborate with others {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} -Implementing custom tests +Finalizing model documentation ::: ::: {.column width="70%" .bl .pl4 .f3} -In this third module, you learned how to: +In this final module, you learned how to: -- [ ] Implement, run, and log custom inline tests -- [ ] Register external test providers for reusable custom tests -- [ ] Include custom test results in your documentation template -- [ ] Configure your model's documentation template +- [ ] View logged test result metadata +- [ ] Add or edit content blocks in your model documentation +- [ ] Submit your model documentation for approval +- [ ] Track updates on your model +- [ ] Collaborate with other stakeholders on your model ::: :::: diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 8b6d6b9362..f45b5ac110 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -71,6 +71,8 @@ First, let's make sure you can log in to {{< var vm.product >}}. To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first two modules of this course: + + :::: {.columns} ::: {.column width="60%"} ::: {.tc} @@ -231,7 +233,7 @@ Let's implement a custom *inline test* that calculates the confusion matrix for **Create a custom test** ::: {.f5} -The [`@vm.test` wrapper](https://docs.validmind.ai/validmind/validmind.html#test) allow you to create a reusable test: +The [`@vm.test` wrapper](/validmind/validmind.html#test) allow you to create a reusable test: 1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells in the following section under Implementing a custom inline test: **Create a confusion matrix plot** From d496be6587182a49b06babf3d85e34ba97db9163 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 17:44:13 -0700 Subject: [PATCH 30/77] Finalizing model documentaiton - Submit for approval --- .../finalizing-model-documentation.qmd | 77 +++++++++++++++++-- 1 file changed, 70 insertions(+), 7 deletions(-) diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 229ab303b2..33a9b45c33 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -232,6 +232,62 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Submit documentation for approval {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Transition model status + +::: {.f5 .nt2 .pl2 .mb4} +(Scroll down for the full instructions.) +::: + +::: {.tc} +[Learn more ...](/guide/model-documentation/submit-for-approval.qmd){.button target="_blank"} +::: + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f4} + +When you’re ready, verify the approval workflow, and then submit your model documentation for approval: + +::: {.panel-tabset} +### Verify workflow + +Workflow states and transitions are configured by an administrator in advance, but you should verify that the expected people are included in the approval process. + +{{< include /guide/model-workflows/_model-workflows-see.qmd >}} + +### Submit for approval + +To transition through the approval workflow, all required workflow steps must be completed. By default, a model must be in the
[In Documentation]{.bubble} state before you can submit it for validation. + +{{< include /guide/model-workflows/_model-workflows-transition.qmd >}} + +::: + +::: +:::: + + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Submit for approval** + +::: {.f5} +1. Select the name of your model you registered for this course to open up the model details page. +2. Locate the **[model status]{.smallcaps}** section. +3. Open up the status transition panel, enter your **[notes]{.smallcaps}** and any other additional inventory fields, then click **Submit**. + +::: + +When you're done, click [{{< fa chevron-right >}}]() to continue. + +:::: + # Track model activity {background-color="#083E44" background-image="/training/assets/home-hero.svg"} # Collaborate with others {background-color="#083E44" background-image="/training/assets/home-hero.svg"} @@ -245,9 +301,15 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. ::: {.column width="30%" .pr4 .f2} Finalizing model documentation + +::: {.f3} +
Want to learn more? Find your next learning resource on [{{< fa graduation-cap >}} {{< var validmind.training >}}](/training/training.qmd). + +::: + ::: -::: {.column width="70%" .bl .pl4 .f3} +::: {.column width="70%" .bl .pl4 .f4} In this final module, you learned how to: - [ ] View logged test result metadata @@ -255,14 +317,15 @@ In this final module, you learned how to: - [ ] Submit your model documentation for approval - [ ] Track updates on your model - [ ] Collaborate with other stakeholders on your model - ::: :::: -::: {.tc} +::: {.f2}
-Continue your model development journey with: -

- -[Finalizing model documentation](finalizing-model-documentation.html){.button} +There is more that {{< var vm.product >}} can do to help you create model documentation, from using your own template to code samples you can adapt for your own use case: +::: + +::: {.tc} +[All model documentation guides](/guide/guides.qmd#model-documentation){.button target="_blank"} + ::: \ No newline at end of file From 7659cfacef4a4d7013229c4cfb6592c917e12787 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 17:56:42 -0700 Subject: [PATCH 31/77] Finalizing model documentaiton - draft done --- .../developer-fundamentals.qmd | 462 ------------------ .../finalizing-model-documentation.qmd | 94 +++- 2 files changed, 90 insertions(+), 466 deletions(-) delete mode 100644 site/training/developer-fundamentals/developer-fundamentals.qmd diff --git a/site/training/developer-fundamentals/developer-fundamentals.qmd b/site/training/developer-fundamentals/developer-fundamentals.qmd deleted file mode 100644 index 04b86ad528..0000000000 --- a/site/training/developer-fundamentals/developer-fundamentals.qmd +++ /dev/null @@ -1,462 +0,0 @@ ---- -title: "Developer
Fundamentals" -subtitle: "docs.validmind.ai/training

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" -lightbox: true -format: - revealjs: - controls: true - controls-tutorial: true - help: true - controls-back-arrows: visible - transition: slide - theme: [default, ../assets/slides.scss] - slide-number: true - chalkboard: false - preview-links: auto - view-distance: 2 - logo: /validmind.png - footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" - html: - output-file: _developer-fundamentals.html - search: false -title-slide-attributes: - data-background-color: "#083E44" - data-background-image: "../assets/home-hero.svg" -skip_preview: true ---- - -# Learning objectives - -_"As a developer who is new to {{< var vm.product >}}, I want to learn how to generate model documentation, add my own tests, edit the content, and then submit my documentation for approval."_ - -## In this course - -:::: {.columns .f3} -::: {.column width="35%" .mt4 .pr4} -### PART 1 - -- [Initialize the {{< var validmind.developer >}}](#initialize-the) -- [Start the model development process](#start-the-model-development-process) -- [Edit model documentation](#edit-model-documentation) -- [Collaborate with others](#collaborate-with-others) -::: - -::: {.column width="35%" .mt4 .pr4} -### PART 2 - -- [Train a model](#train-a-model) -- [Implement custom tests and integrate external test providers](#implement-custom-tests-and-integrate-external-test-providers) -- [Finalize testing and documentation](#finalize-testing-and-documentation) - -::: - -::: {.column width="30%" .mt4} -### PART 3 - -- [View documentation activity](#view-documentation-activity) -- [Submit for approval](#submit-for-approval) -::: -:::: - -First, let's make sure you can log in to {{< var vm.product >}}. - -{{< include /training/assets/_revealjs-navigation.qmd >}} - -## Can you log in? - -To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role. - -
Log in to check your access: - -:::: {.columns} -::: {.column width="50%"} -::: {.tc} -[Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} -::: - -::: -::: {.column width="50%"} -::: {.tc} -[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} -::: - -::: -:::: -
- -::: {.tc} -Be sure to return to this page afterwards. -::: - -# You're in — let's show you around. - - - -## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html" background-interactive="yes" data-preload="yes"} - - -:::: {.absolute bottom=15 left=0 right=50 .w-100 .f3 .tc .pl4 .pr4 .overlay} -**This introductory notebook includes sample code and how-to information, all in one place.** - -::: {.f4} -When run on JupyterHub, this notebook will generate model documentation and upload it to {{< var vm.product >}}. After you finish this course, your own training notebook will look similar, complete with output. - -For now, **scroll through this notebook** to explore. When you are done, click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -## {background-iframe="https://app.prod.validmind.ai" background-interactive="true" data-preload="yes"} - -::: {.fr .f3 .nr5 .pa5 .overlay} -**This is the {{< var validmind.platform >}}.** - -From here, you can: - -- Register models in the model inventory. -- Review and edit model documentation
generated with the introductory notebook. -- Collaborate with model validators to get
your documentation approved. -- And much more! - -::: {.f4 .pl3 .pr3 .embed} -**To start the documentation process**, you register a
new model in the model inventory or select one that
has already been registered. -::: - -**Explore {{< var vm.product >}} live** on the next page. {{< fa hand-point-right >}} -::: - -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} - -:::: {.fr .f4 .mv5 .nr5 .pa4 .overlay} - -From the **{{< fa cubes >}} Inventory**: - -1. Open a model, such as: - -::: {.f5 .nt2} - **[Quickstart] Customer Churn Model** -::: - -2. Explore **{{< fa book-open >}} Documentation** for
model documentation. -3. Check **{{< fa rocket >}} Getting Started** for
the code snippet. - -::: {.pl3 .pr3 .embed} -**Did you find the _code snippet_?**
You will copy and paste a similar
snippet into your own notebook
later to upload documentation. -::: - -When you're done, click [{{< fa chevron-right >}}]() to
continue. -:::: - -# PART 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} - -# Initialize the {{< var vm.developer >}} {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - - -## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html#initializing-the-validmind-library" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -On JupyterHub: Run the cells in **1. Initializing the {{< var validmind.developer >}}**. - -::: {.f5 .nt2} -When you are done, return to this page and click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# Start the model development process {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - - -## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html#start-the-model-development-process-with-raw-data-run-out-of-the-box-tests-and-add-evidence-to-model-documentation" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -On JupyterHub: Run the cells in **2. Start the model development process with raw data, run out-of-the box tests, and add evidence to model documentation**. - -::: {.f4} -When you reach **Add individual test results to model documentation**, return to this page and click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# Edit model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Now that you have generated documentation, edit it on {{< var vm.product >}} to add text or test-driven content blocks. - -::: {.f5 .nt2 .pl2 .mb4} -(Scroll down for the full instructions.) -::: - -::: {.tc} -[Learn more ...](/guide/model-documentation/work-with-content-blocks.qmd){.button target="_blank"} -::: - -
Try it **live** on the next page. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -### Add a test-driven content block - -Content blocks provide sections that are part of your model documentation — you can always add more, as required, and fill them with text or test results. - -1. Select a model or [find your model by applying a filter or searching for it](/guide/model-inventory/working-with-model-inventory.qmd#search-filter-and-sort-models){target="_blank"}. - -2. In the left sidebar that appears for your model, click **{{< fa book-open >}} Documentation**. - -3. Navigate to the **2.3. Correlations and Interactions** section. - -4. Hover the cursor after the Pearson Correlation Matrix content block until a horizontal dashed line with a {{< fa square-plus >}} button appears that indicates you can insert a new block: - - ![Screenshot showing the insert button for test-driven blocks](/guide/model-documentation/add-content-block.gif){fig-alt="Screenshot showing the insert button for test-driven blocks" .screenshot} - -4. Click {{< fa square-plus >}} and then select **Test-Driven Block**: - - - In the search bar, type in `HighPearsonCorrelation`. - - Select **`HighPearsonCorrelation:balanced_raw_dataset`** as the test. - - A preview of the test gets shown: - - ![Screenshot showing the selected test result in the dialog](selecting-high-pearson-correlation-test.png){fig-alt="Screenshot showing the selected test result in the dialog" .screenshot} - -5. Click **Insert 1 Test Result to Document**. - -After you have completed these steps, the new content block becomes a part of your model documentation. You will now see two individual results for the high-correlation test in the **2.3. Correlations and Interactions** section of the documentation. - -To finalize the documentation, you can also edit the description of the test result to explain the changes made to the raw data and the reasons behind them. For example: - -![Screenshot showing description added to the new content block](/notebooks/images/high-pearson-correlation-block.png){fig-alt="Screenshot showing description added to the new content block" .screenshot} - -::: -:::: - -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -Locate the model documentation you generated and add a test-driven block to the **2.3 Correlations and Interactions** section. - -::: {.f5 .nt2} -When you are done, click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# Collaborate with others {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Have a question? Collaborate with other developers or with your validator right in the model documentation. - -::: {.tc} -[Learn more ...](/guide/model-documentation/collaborate-with-others.qmd){.button target="_blank"} -::: - -
Try it **live** on the next page. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -::: {.f5 .nt2} -::: - -{{< include /guide/model-documentation/_collaborate-with-others-activity.qmd >}} - -::: {.panel-tabset} - -{{< include /guide/model-documentation/_collaborate-with-others-comments.qmd >}} - -::: - -::: - -:::: - - - -## {background-iframe="https://app.prod.validmind.ai" background-interactive="yes" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .pr4 .overlay} -In the documentation, post a comment, reply to it, and then resolve the thread.
Review your comments in the **Recent Activity** feed on the front page. - -::: {.f5 .nt2} -When you are done, click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# PART 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} - -# Train a model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - - -## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html#model-testing" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -On JupyterHub: Run the cells under **Model Testing**. - -::: {.f5 .nt2} -When you are done, return to this page and click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# Implement custom tests and integrate external test providers {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - - -## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html#implementing-custom-tests" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -On JupyterHub: Run the cells in **3. Implementing custom tests**. - -::: {.f5 .nt2} -When you are done, return to this page and click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# Finalize testing and documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - - - -## {background-iframe="/notebooks/tutorials/intro_for_model_developers_EXECUTED.html#finalize-testing-and-documentation" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} - -On JupyterHub: Run the cells in **4. Finalize testing and documentation**. - -::: {.f5 .nt2} -When you are done, return to this page and click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# PART 3 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} - -# View documentation activity {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -Track changes and updates made to model documentation over time. - -::: {.f5 .nt2 .pl2 .mb4} -(Scroll down for the full instructions.) -::: - -::: {.tc} -[Learn more ...](/guide/model-inventory/view-model-activity.qmd){.button target="_blank"} -::: - -
Try it **live** on the next page. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} -### View documentation activity - -{{< include /guide/model-inventory/_view-model-activity-overview.qmd >}} - -{{< include /guide/model-inventory/_view-model-activity-steps.qmd >}} - -::: - -:::: - -## {background-iframe="https://app.prod.validmind.ai/" background-interactive="true" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -Review the **Recent Activity** feed on the front page: - -:::: {.columns} -::: {.column width="25%" .nt2} -- Comments -::: -::: {.column width="25%" .nt2} -- Status updates -::: -::: {.column width="25%" .nt2} -- Model updates -::: -::: {.column width="25%" .nt2} -- Test results -::: -:::: - -::: {.f5 .nt3} -When you are done, click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# Submit for approval {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - -## {.scrollable} - -:::: {.columns} -::: {.column width="30%" .pr4 .f2} -When you’re ready, verify the approval workflow, and then submit your model documentation for approval. - -::: {.f5 .nt2 .pl2 .mb4} -(Scroll down for the full instructions.) -::: - -::: {.tc} -[Learn more ...](/guide/model-documentation/submit-for-approval.qmd){.button target="_blank"} -::: - -
Try it **live** on the next page. {{< fa hand-point-right >}} -::: - -::: {.column width="70%" .bl .pl4 .f3} - -::: {.panel-tabset} -### Verify workflow - -Workflow states and transitions are configured by an administrator in advance, but you should verify that the expected people are included in the approval process. - -{{< include /guide/model-workflows/_model-workflows-see.qmd >}} - -### Submit for approval - -To transition through the approval workflow, all required workflow steps must be completed. By default, a model must be in the
[In Documentation]{.bubble} state before you can submit it for validation. - -{{< include /guide/model-workflows/_model-workflows-transition.qmd >}} - -::: - -::: -:::: - -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} - -:::: {.absolute bottom=15 .w-100 .f3 .tc .pl4 .overlay} -Verify the approval workflow and then submit your model documentation for approval. - -::: {.f5 .nt2} -When you are done, click [{{< fa chevron-right >}}]() to continue. -::: -:::: - -# About model documentation - -There is more that {{< var vm.product >}} can do to help you create model documentation, from using your own template to code samples you can adapt for your own use case. - -::: {.tc} -[All model documentation guides](/guide/guides.qmd#model-documentation){.button target="_blank"} -::: -
- -Or, find your next learning resource on [{{< var validmind.training >}}](/training/training.qmd). - - \ No newline at end of file diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 33a9b45c33..bce46e6ed9 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -43,8 +43,8 @@ This third module is part of a four-part series: ::: {.f2} 1. [Refine model documentation](#refine-model-documentation) 3. [Submit documentation for approval](#submit-documentation-for-approval) -4. [Track model activity](#track-model-activity) -5. [Collaborate with others](#collaborate-with-others) +4. [Collaborate with others](#collaborate-with-others) +5. [Track model activity](#track-model-activity) ::: @@ -288,9 +288,95 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. :::: +# Collaborate with others {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Comment threads + +::: {.tc} +[Learn more ...](/guide/model-documentation/collaborate-with-others.qmd){.button target="_blank"} +::: + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f3} +::: {.f5 .nt2} +::: + +{{< include /guide/model-documentation/_collaborate-with-others-activity.qmd >}} + +::: {.panel-tabset} + +{{< include /guide/model-documentation/_collaborate-with-others-comments.qmd >}} + +::: + +::: + +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Comment on model documentation** + +::: {.f5} +1. Select the name of your model you registered for this course to open up the model details page. +2. In the left sidebar that appears for your model, click **Documentation**. +3. **In the content block you added earlier:** Post a comment, reply to it, and then resolve the thread. + +::: + +When you're done, click [{{< fa chevron-right >}}]() to continue. + +:::: + + # Track model activity {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -# Collaborate with others {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +Track changes & updates + +::: {.tc} +[Learn more ...](/guide/model-inventory/view-model-activity.qmd){.button target="_blank"} +::: + +
Try it **live** on the next page. {{< fa hand-point-right >}} +::: + +::: {.column width="70%" .bl .pl4 .f4} +### View documentation activity + +{{< include /guide/model-inventory/_view-model-activity-overview.qmd >}} + +{{< include /guide/model-inventory/_view-model-activity-steps.qmd >}} + +::: + +:::: + +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} + +:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} +**Review model activity** + +::: {.f5} +1. Select the name of your model you registered for this course to open up the model details page. +2. In the left sidebar that appears for your model, click **Model Activity**. +3. Filter the following activity: **Comments** | **Status Updates** | **Model Updates** | **Test Results** + +::: + +When you're done, click [{{< fa chevron-right >}}]() to continue. + +:::: # In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} @@ -315,8 +401,8 @@ In this final module, you learned how to: - [ ] View logged test result metadata - [ ] Add or edit content blocks in your model documentation - [ ] Submit your model documentation for approval -- [ ] Track updates on your model - [ ] Collaborate with other stakeholders on your model +- [ ] Track updates on your model ::: :::: From bb86b5889ce2585c1ee22d274615cce3ae412d67 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 19 Mar 2025 18:00:03 -0700 Subject: [PATCH 32/77] Edited link to JH on landing --- site/training/training.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/training/training.qmd b/site/training/training.qmd index 4ed4c33538..9637a0cd04 100644 --- a/site/training/training.qmd +++ b/site/training/training.qmd @@ -47,9 +47,9 @@ listing: categories: ["[Demo] Customer Churn Model"] reading-time: "10" author: "{{< var vm.product >}}" - - path: https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/intro_for_model_developers.ipynb - title: "{{< var vm.product >}} introduction for model developers" - subtitle: "Open notebook in JupyterHub {{< fa chevron-right >}}" + - path: https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb + title: "{{< var vm.product >}} for model development (4-part series)" + subtitle: "Open series in JupyterHub {{< fa chevron-right >}}" description: "Learn how the end-to-end documentation process works based on common scenarios you encounter in model development settings." categories: ["[Demo] Customer Churn Model"] reading-time: "27" From 34c28df20d96db44968b7f3e4ef603bfaa080ca0 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:00:53 -0700 Subject: [PATCH 33/77] Finetuning learning paths --- site/training/program/learning-paths.qmd | 107 +++++++++++++---------- site/training/training.qmd | 2 +- 2 files changed, 62 insertions(+), 47 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 12a1a0d1a3..0b11ace62f 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -16,36 +16,19 @@ Develop role-based expertise for your entire organization. ### Developer Fundamentals -Learn how to use {{< var vm.product >}} as a **developer** to generate model documentation, automate testing, and track your model's progress through the model lifecycle. - -::: {.attn .hidden} :::: {.flex .flex-wrap .justify-around} -::: {.w-30-ns} -{{< fa check >}} **Course content** +::: {.w-80-ns} +Learn how to use {{< var vm.product >}} as a **developer** to generate model documentation, automate testing, and track your model's progress through the model lifecycle. -- Split 3 modules -> 4 modules -- Expand process overview content -- Expand template content to include editing templates and adding tests -- Rename "Module 2: Start Documenting & Testing" to "Module 2: Start Documenting" -- Add missing content for "Register a model" in Module 1 ::: -::: {.w-30-ns} -{{< fa check >}} **Videos ** +::: {.w-20-ns .tc} +[register now](/training/developer-fundamentals/developer-fundamentals-register.qmd){.button-green .cta target="_blank"} -- 10 videos -- Minor update to collaboration video (multi-person comment threads) -::: - -::: {.w-30-ns .pl4 .bl} -**Notes** - -- FUTURE: 1 intro notebook -> 4 notebooks that progressively build on each other ::: :::: -::: ::: {.attn} :::: {.flex .flex-wrap .justify-around} @@ -93,38 +76,19 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc ### Validator Fundamentals -Learn how to use {{< var vm.product >}} as a **validator** to generate validation reports, automate testing, and collaborate with your model development team. - -::: {.attn .hidden} - :::: {.flex .flex-wrap .justify-around} -::: {.w-30-ns} -{{< fa check >}} **Course content** - -- Split 2 modules -> 3 modules -- Add missing content: - - Preview templates for validation reports - - How to work with validation reports - - Expand process overview content -::: - -::: {.w-30-ns} -{{< fa minus >}} **Video** +::: {.w-80-ns} +Learn how to use {{< var vm.product >}} as a **validator** to generate validation reports, automate testing, and collaborate with your model development team. -- 5 videos -- Replace stale '101' intro -- Review for stale content ::: -::: {.w-30-ns} - ::: :::: -::: ::: {.attn} :::: {.flex .flex-wrap .justify-around} @@ -173,8 +137,20 @@ Learn how to use {{< var vm.product >}} as a **validator** to generate validatio ### Administrator Fundamentals +:::: {.flex .flex-wrap .justify-around} + +::: {.w-80-ns} Learn how to use {{< var vm.product >}} as an **administrator** to onboard your organization, manage users, roles, and permissions, and customize the {{< var vm.platform >}} for your institution's requirements. +::: + +::: {.w-20-ns .tc} +[register now](/training/administrator-fundamentals/administrator-fundamentals-register.qmd){.button-green .cta target="_blank"} + +::: + +:::: + ::: {.attn .hidden} :::: {.flex .flex-wrap .justify-around} @@ -246,8 +222,21 @@ Learn how to use {{< var vm.product >}} as an **administrator** to onboard your ### Monitoring Fundamentals
[coming soon]{.smallercaps .pink} +:::: {.flex .flex-wrap .justify-around} + +::: {.w-80-ns} Learn how to use {{< var vm.product >}} to manage the **ongoing monitoring** of your models with ongoing monitoring plans, scheduled monitoring runs, and tracked metrics over time. +::: + +::: {.w-20-ns .tc} +[coming soon]{.button .cta target="_blank"} + +::: + +:::: + + ::: {.attn .hidden} :::: {.flex .flex-wrap .justify-around} @@ -318,7 +307,20 @@ Useful skills for anyone who wants to use {{< var vm.product >}}. ### {{< var vm.product >}} Guided Tour
[coming soon]{.smallercaps .pink} -As a new user of {{< var vm.product >}}, learn how to navigate the platform's key features and understand how they work together to support AI governance and compliance with regulations like the EU AI Act. +:::: {.flex .flex-wrap .justify-around} + +::: {.w-80-ns} +Learn how to navigate the {{< var vm.product >}}'s key features and understand how they work together to support AI governance and compliance with regulations like the EU AI Act. + +::: + +::: {.w-20-ns .tc} +[coming soon]{.button .cta target="_blank"} + +::: + +:::: + ::: {.attn .hidden} @@ -397,7 +399,20 @@ As a new user of {{< var vm.product >}}, learn how to navigate the platform's ke ### {{< var vm.product >}} Content Features
[coming soon]{.smallercaps .pink} -As a content author who is new to {{< var vm.product >}}, learn how to use the content features to enhance my documentation, and to enable or disable text generation with GenAI. +:::: {.flex .flex-wrap .justify-around} + +::: {.w-80-ns} +Learn how to use {{< var vm.product >}}'s content features to enhance documentation, and to enable or disable text generation with GenAI. + +::: + +::: {.w-20-ns .tc} +[coming soon]{.button .cta target="_blank"} + +::: + +:::: + ::: {.attn .hidden} diff --git a/site/training/training.qmd b/site/training/training.qmd index 9637a0cd04..339b7d2aa8 100644 --- a/site/training/training.qmd +++ b/site/training/training.qmd @@ -52,7 +52,7 @@ listing: subtitle: "Open series in JupyterHub {{< fa chevron-right >}}" description: "Learn how the end-to-end documentation process works based on common scenarios you encounter in model development settings." categories: ["[Demo] Customer Churn Model"] - reading-time: "27" + reading-time: "30" author: "{{< var vm.product >}}" - path: https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/code_samples/credit_risk/application_scorecard_demo.ipynb title: "Document an application scorecard model" From 769f5396cd7ff97abf1232500e972f5b9e2446de Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:07:59 -0700 Subject: [PATCH 34/77] Editing Using VM for model dev --- .../using-validmind-for-model-development.qmd | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index fc01da6367..7d66f40dc0 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -81,7 +81,6 @@ Be sure to return to this page afterwards. # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} @@ -117,7 +116,6 @@ Let's start our journey with **101 Set up the {{< var validmind.developer >}}** ## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html" background-interactive="yes" data-preload="yes"} - :::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} **101 Set up the {{< var validmind.developer >}}** @@ -229,7 +227,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to With your code snippet copied to your clipboard: 1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. Run all the sections and cells under **Initializing the {{< var validmind.developer >}}**. +2. Run all the cells in the sections under **Initializing the {{< var validmind.developer >}}**. ::: @@ -251,7 +249,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to You can preview your model's documentation template right from the {{< var validmind.developer >}}: 1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. Run all the sections and cells under **Getting to know ValidMind**. +2. Run all the cells in the sections under **Getting to know ValidMind**. ::: From 06306b0d837fd1fdb38427c9f8aaa90077d2ba35 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:21:19 -0700 Subject: [PATCH 35/77] Editing Learning 2 run tests --- .../learning-to-run-tests.qmd | 50 +++++++------------ .../using-validmind-for-model-development.qmd | 2 +- .../training-templates/course-slides.qmd | 2 +- 3 files changed, 21 insertions(+), 33 deletions(-) diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 20210da7b3..d572f8c28a 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -55,7 +55,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. ## Can you log in? -To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first module of this course: +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first module of this course: ::: {.tc} @@ -88,7 +88,6 @@ Be sure to return to this page afterwards. # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} @@ -100,8 +99,7 @@ When you run these notebooks, they will generate a draft of model documentation ::: {.f5 .nt2 .pl2 .mb4}
- -You will need have already completed **101 Set up the {{< var validmind.developer >}}** during the first module to proceed. +You will need to have already completed **101 Set up the {{< var validmind.developer >}}** during the first module to proceed. ::: ::: @@ -124,8 +122,6 @@ In this second module, we'll run through **102 Start the model development proce ::: :::: -
- Let's continue our journey with **102 Start the model development process** on the next page. {{< fa hand-point-right >}} ## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html" background-interactive="yes" data-preload="yes"} @@ -209,7 +205,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Setting up section: **Identify qualitative tests** ::: @@ -224,9 +220,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Initialize {{< var vm.product >}} datasets** ::: {.f5} -Then, we'll use the [`init_dataset()` function](https://docs.validmind.ai/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: +Then, we'll use the [`init_dataset()` function](/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Setting up section: **Initialize the {{< var vm.product >}} datasets** ::: @@ -246,9 +242,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Run tabular data tests** ::: {.f5} -You run individual tests by calling the [`run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test) provided by the `validmind.tests` module: +You run individual tests by calling the [`run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test){target="_blank"} provided by the `validmind.tests` module: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Running tests section: **Run tabular data tests**. ::: @@ -265,7 +261,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Running tests section: **Utilize test output**. ::: @@ -279,7 +275,6 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Log ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} @@ -287,12 +282,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to Document test results ::: {.tc} - - [Learn more ...](/validmind/validmind/vm_models.html#TestResult.log){.button target="_blank"} + ::: -
Try it **live** on the next page. {{< fa hand-point-right >}} ::: @@ -311,9 +304,9 @@ Every test result returned by the `run_test()` function has a `.log()` method th **Run & log multiple tests** ::: {.f5} -[`run_documentation_tests()`](/validmind/validmind.html#run_documentation_tests) allows you to run multiple tests at once and automatically log the results to your documentation: +The [`run_documentation_tests()` function](/validmind/validmind.html#run_documentation_tests){target="_blank"} allows you to run multiple tests at once and automatically log the results to your documentation: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Documenting results section: **Run and log multiple tests**. ::: @@ -329,7 +322,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Next, we'll run an individual test and log the result to the {{< var validmind.platform >}}: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Running tests section: **Run and log an individual test**. ::: @@ -338,7 +331,6 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: - ## {.scrollable} :::: {.columns} @@ -346,12 +338,10 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to Work with test results ::: {.tc} - - [Learn more ...](/notebooks/EXECUTED/model_development/102-start_development_process.ipynb#add-individual-test-results-to-model-documentation){.button target="_blank"} + ::: -
Try it **live** on the next page. {{< fa hand-point-right >}} ::: @@ -398,14 +388,12 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Test an existing model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} Model testing with {{< var vm.product >}} -
Try it **live** on the next pages. {{< fa hand-point-right >}} ::: @@ -443,7 +431,7 @@ In this next example, we’ll focus on running the tests within the Model Develo ::: {.f5} Using {{< var vm.product >}} tests, we'll train a simple logistic regression model on our dataset and evaluate its performance: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Model testing section: **Train simple logistic regression model**. ::: @@ -457,9 +445,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Initialize a model object** ::: {.f5} -Use the `init_dataset` and [`init_model` functions](https://docs.validmind.ai/validmind/validmind.html#init_model) to initialize these objects: +Use the `init_dataset` and [`init_model` functions](/validmind/validmind.html#init_model){target="_blank"} to initialize these objects: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Initialize model evaluation objects**. ::: @@ -474,9 +462,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Assign predictions** ::: {.f5} -Use the [`assign_predictions()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#VMDataset.assign_predictions) from the `Dataset` object to link existing predictions to any number of models: +Use the [`assign_predictions()` method](/validmind/validmind/vm_models.html#VMDataset.assign_predictions){target="_blank"} from the `Dataset` object to link existing predictions to any number of models: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Assign predictions**. ::: @@ -493,7 +481,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Finally, we'll run only the tests within the Model Development section of the model documentation: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Run the model evaluation tests**. ::: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 7d66f40dc0..00db755fc0 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -54,7 +54,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. ## Can you log in? -To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role. +To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role.
Log in to check your access: diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index c4e7887bcc..9b47253e3e 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -48,7 +48,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. -To try out this course, you need to have been [onboarded](course-registration.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa check >}} Role Name**]{.bubble} role. +To try out this course, you need to have been [onboarded](course-registration.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa check >}} Role Name**]{.bubble} role.
Log in to check your access: From 70c3b040961654185829ee7ab023bfe2ab51896c Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:50:41 -0700 Subject: [PATCH 36/77] Editing Implementing custom tests --- .../implementing-custom-tests.qmd | 92 +++++++++---------- .../learning-to-run-tests.qmd | 2 +- .../using-validmind-for-model-development.qmd | 2 +- 3 files changed, 47 insertions(+), 49 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index f45b5ac110..4959b73ea2 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -28,7 +28,7 @@ skip_preview: true # Learning objectives -_"As a **developer** who understands how to run and log out-of-the-box tests with {{< var vm.product >}}, I want to update my documentation template to include manually inserted test results, implement, run, and log custom tests, and include those custom tests in my documentation template."_ +_"As a **developer** who has run and logged out-of-the-box tests with {{< var vm.product >}}, I want to update my documentation template to include manually inserted test results, implement, run, and log custom tests, and include those custom tests in my documentation template."_ ::: {.tc}
@@ -41,35 +41,41 @@ This third module is part of a four-part series: ## Module 3 — Contents :::: {.columns .f3} -::: {.column width="30%" .mt4 .pr4} -### INTRODUCTION - +::: {.column width="50%" .mt4 .pr4} +### [introduction]{.smallcaps} - [{{< var vm.product >}} for model development](#validmind-for-model-development) ::: -::: {.column width="35%" .mt4 .pr4} -### PART 1 +::: + +:::: {.columns .f3} + +::: {.column width="50%" .mt4 .pr4} +### [section 1]{.smallcaps} - [Implement custom inline tests](#implement-custom-tests) - [Use external test providers](#use-external-test-providers) ::: -::: {.column width="35%" .mt4} -### PART 2 +::: {.column width="50%" .mt4} +### [section 2]{.smallcaps} - [Include custom test results](#include-custom-test-results) - [Configure the model's documentation template](#configure-documentation-template) ::: + :::: + +
First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} ## Can you log in? -To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first two modules of this course: +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first two modules of this course: @@ -114,7 +120,6 @@ Be sure to return to this page afterwards. # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} @@ -127,7 +132,8 @@ When you run these notebooks, they will generate a draft of model documentation ::: {.f5 .nt2 .pl2 .mb4}
-You will need have already completed **101** and **102** during the first and second modules to proceed. +You will need to have already completed **101** and **102** during the first and second modules to proceed. + ::: ::: @@ -144,17 +150,15 @@ Our series of four introductory notebooks for model developers include sample co 4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} ::: {.f4 .pl3 .pr3 .embed} -In this third module, we'll run through the remaining two notebooks **103** in PART 1 and **104** in PART 2 together. +In this third module, we'll run through the remaining two notebooks **103** in [section 1]{.smallcaps} and **104** in [section 2]{.smallcaps} together. ::: ::: :::: -
- -Let's continue our journey with **PART 1** on the next page. {{< fa hand-point-right >}} +Let's continue our journey with **[section 1]{.smallcaps}** on the next page. {{< fa hand-point-right >}} -# PART 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# [section 1]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} ## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} @@ -207,15 +211,14 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Implement custom tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} Custom inline tests -
Try it **live** on the next pages. {{< fa hand-point-right >}} + ::: ::: {.column width="70%" .bl .pl4 .f3} @@ -233,9 +236,9 @@ Let's implement a custom *inline test* that calculates the confusion matrix for **Create a custom test** ::: {.f5} -The [`@vm.test` wrapper](/validmind/validmind.html#test) allow you to create a reusable test: +The [`@vm.test` wrapper](/validmind/validmind.html#test){target="_blank"} allows you to create a reusable test: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells in the following section under Implementing a custom inline test: **Create a confusion matrix plot** ::: @@ -252,7 +255,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Custom tests can take parameters just like any other function: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells in the following sections under Implementing a custom inline test:
**Add parameters to custom tests** / **Pass parameters to custom tests** ::: @@ -267,9 +270,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Log your custom test** ::: {.f5} -Use the [`.log()` method](/validmind/validmind/vm_models.html#TestResult.log) to send the results of your custom test to the {{< var validmind.platform >}}: +Use the [`.log()` method](/validmind/validmind/vm_models.html#TestResult.log){target="_blank"} to send the results of your custom test to the {{< var validmind.platform >}}: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run the cell in the following section under Implementing a custom inline test: **Log the confusion matrix results** ::: @@ -281,15 +284,14 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Use external test providers {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} Reusable custom tests -
Try it **live** on the next pages. {{< fa hand-point-right >}} + ::: ::: {.column width="70%" .bl .pl4 .f3} @@ -311,7 +313,7 @@ Creating inline custom tests with a function is a great way to customize your mo ::: {.f5} Create a new folder that will contain reusable custom tests from your existing inline tests: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run the cell under the following Using external test providers section: **Create custom tests folder** ::: @@ -328,7 +330,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} The `@vm.test` decorator also includes a convenience method that allows you to save the test to a Python file at a specified path: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells under the Using external test providers section: **Save an inline test** ::: @@ -345,7 +347,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Next, let's initialize a test provider that will tell the {{< var validmind.developer >}} where to find your saved custom tests: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells under the Using external test providers section: **Register a local test provider** ::: @@ -354,7 +356,6 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: - ## {.scrollable} :::: {.columns} @@ -366,13 +367,12 @@ Custom test results ::: ::: {.tc} - - [Learn more ...](/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb#add-test-results-to-documentation){.button target="_blank"} + ::: -
Try it **live** on the next page. {{< fa hand-point-right >}} + ::: ::: {.column width="70%" .bl .pl4 .f4} @@ -380,9 +380,9 @@ Custom test results With the custom test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: -1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. +1. From the **{{< fa cubes >}} Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. -2. In the left sidebar that appears for your model, click **Documentation**. +2. In the left sidebar that appears for your model, click **{{< fa book-open >}} Documentation**. 3. Locate the Data Preparation section and click on **3.2 Model Evaluation** to expand that section. @@ -419,7 +419,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. -# PART 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# [section 2]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} ## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} @@ -477,9 +477,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Reconnect to {{< var vm.product >}}** ::: {.f5} -After you insert test-driven blocks into your model documentation, changes should persist and become available every time you call [`preview_template()`](https://docs.validmind.ai/validmind/validmind.html#preview_template): +After you insert test-driven blocks, changes should persist and become available every time you call the [`preview_template()` function](/validmind/validmind.html#preview_template){target="_blank"}: -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} 2. Run all the cells under the **Reconnect to {{< var vm.product >}}** section. ::: @@ -494,9 +494,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Log custom test results** ::: {.f5} -Since your custom test IDs are now part of your documentation template, you can now run tests for an entire section and all additional custom tests should be loaded without any issues: +Now that your custom test IDs are part of your template, you can now run tests for an entire section and all additional custom tests will be loaded: -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} 2. Run the cell under the **Include custom test results** section. ::: @@ -508,7 +508,6 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} @@ -516,12 +515,11 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to Documentation template configuration ::: {.tc} - -[Learn more ...](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestSuite.get_default_config){.button target="_blank"} +[Learn more ...](/validmind/validmind/vm_models.html#TestSuite.get_default_config){.button target="_blank"} + ::: -
Try it **live** on the next pages. {{< fa hand-point-right >}} ::: @@ -543,7 +541,7 @@ The utility function `vm.get_test_suite().get_default_config()` will return the **Retrieve default configuration** ::: {.f5} -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} 2. Run the first cell under the **Documentation template configuration** section. ::: @@ -558,9 +556,9 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Update template configuration** ::: {.f5} -The default configuration does not assign any inputs to a test, but you can assign inputs to individual tests as needed depending on the datasets and models you want to pass to individual tests: +The default configuration does not assign any inputs to a test, but you can assign inputs to individual tests as needed: -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} 2. Run the all the cells under the following Documentation template configuration section: **Update the config** ::: @@ -596,5 +594,5 @@ In this third module, you learned how to: Continue your model development journey with:

-[Finalizing model documentation](finalizing-model-documentation.html){.button} +[Finalizing model documentation](finalizing-model-documentation.html){.button target="_blank"} ::: \ No newline at end of file diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index d572f8c28a..cd2612c225 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -519,5 +519,5 @@ In this second module, you learned how to: Continue your model development journey with:

-[Implementing custom tests](implementing-custom-tests.html){.button} +[Implementing custom tests](implementing-custom-tests.html){.button target="_blank"} ::: \ No newline at end of file diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 00db755fc0..7855119144 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -301,5 +301,5 @@ In this first module, you learned how to: Continue your model development journey with:

-[Learning to run tests](learning-to-run-tests.html){.button} +[Learning to run tests](learning-to-run-tests.html){.button target="_blank"} ::: \ No newline at end of file From 6502f50344b5f0d52c5f5433dce21f7dc0d7354d Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:57:35 -0700 Subject: [PATCH 37/77] Editing Finalizing model documentation --- .../_view-model-activity-steps.qmd | 2 +- .../finalizing-model-documentation.qmd | 22 ++++++++----------- .../implementing-custom-tests.qmd | 2 +- .../learning-to-run-tests.qmd | 2 +- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/site/guide/model-inventory/_view-model-activity-steps.qmd b/site/guide/model-inventory/_view-model-activity-steps.qmd index de086b47db..954de8cdf3 100644 --- a/site/guide/model-inventory/_view-model-activity-steps.qmd +++ b/site/guide/model-inventory/_view-model-activity-steps.qmd @@ -12,7 +12,7 @@ To view model activity: :::: {.content-hidden unless-format="revealjs"} 1. In the left sidebar, click **{{< fa cubes >}} Inventory**. -1. Select a model or [find your model by applying a filter or searching for it](/guide/model-inventory/working-with-model-inventory.qmd#search-filter-and-sort-models). +1. Select a model or [find your model by applying a filter or searching for it](/guide/model-inventory/working-with-model-inventory.qmd#search-filter-and-sort-models){target="_blank"}. 1. In the expanded sidebar that appears for your model, click **{{< fa wifi >}} Model Activity**. :::: diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index bce46e6ed9..51d990282b 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -18,7 +18,7 @@ format: footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" html: # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml - output-file: _using-validmind-for-model-development.html + output-file: _finalizing-model-documentation.html search: false title-slide-attributes: data-background-color: "#083E44" @@ -28,11 +28,11 @@ skip_preview: true # Learning objectives -_"As a **developer** who has run and logged tests with the {{< var validmind.developer >}} to the {{< var validmind.platform >}}, I want to refine my model's documentation, submit my model documentation for approval, and track changes and other updates to my model."_ +_"As a **developer** who has logged tests with the {{< var validmind.developer >}} to the {{< var validmind.platform >}}, I want to refine my model's documentation, submit my model documentation for approval, and track changes and other updates to my model."_ ::: {.tc}
-This third module is part of a four-part series: +This final module is part of a four-part series:

[Developer Fundamentals](/training/developer-fundamentals/developer-fundamentals-register.qmd){.button target="_blank"} ::: @@ -54,7 +54,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. ## Can you log in? -To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register) onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first three modules of this course: +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first three modules of this course: @@ -104,7 +104,6 @@ Be sure to return to this page afterwards. # Refine model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} - ## {.scrollable} :::: {.columns} @@ -116,13 +115,13 @@ Review test results ::: ::: {.tc} - [Learn more ...](/guide/model-documentation/work-with-test-results.qmd){.button target="_blank"} + ::: -
Try it **live** on the next page. {{< fa hand-point-right >}} + ::: ::: {.column width="70%" .bl .pl4 .f4} @@ -163,7 +162,6 @@ When you're done taking a look around, click [{{< fa chevron-right >}}]() to con :::: - ## {.scrollable} :::: {.columns} @@ -175,12 +173,10 @@ Make qualitative edits ::: ::: {.tc} - - [Learn more ...](/guide/model-documentation/work-with-content-blocks.qmd){.button target="_blank"} + ::: -
Try it **live** on the next page. {{< fa hand-point-right >}} ::: @@ -194,7 +190,7 @@ In any section of your model documentation, hover your mouse over the space wher ![Adding a content block in the UI](/guide/model-documentation/add-content-block.gif){width=90% fig-alt="A gif showing the process of adding a content block in the UI" .screenshot} -After adding the block to your documentation, generate a content draft with AI using the [content editing toolbar](guide/model-documentation/work-with-content-blocks.qmd#content-editing-toolbar): +After adding the block to your documentation, generate a content draft with AI using the [content editing toolbar](/guide/model-documentation/work-with-content-blocks.qmd#content-editing-toolbar){target="_blank"}: {{< include /guide/model-documentation/content_blocks/_generate-with-ai.qmd >}} @@ -389,7 +385,7 @@ Finalizing model documentation ::: {.f3} -
Want to learn more? Find your next learning resource on [{{< fa graduation-cap >}} {{< var validmind.training >}}](/training/training.qmd). +
Want to learn more? Find your next learning resource on [{{< fa graduation-cap >}} {{< var validmind.training >}}](/training/training.qmd){target="_blank"}. ::: diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 4959b73ea2..b98fc9b456 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -18,7 +18,7 @@ format: footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" html: # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml - output-file: _using-validmind-for-model-development.html + output-file: _implementing-custom-tests.html search: false title-slide-attributes: data-background-color: "#083E44" diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index cd2612c225..f352a801c7 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -18,7 +18,7 @@ format: footer: "{{< var validmind.training >}} | [Home {{< fa person-walking-dashed-line-arrow-right >}}](/training/training.qmd)" html: # Change this to the file name prepended by a _ to get around the global HTML output settings required by _metadata.yml - output-file: _using-validmind-for-model-development.html + output-file: _learning-to-run-tests.html search: false title-slide-attributes: data-background-color: "#083E44" From f118119660d69f26a9f76ecb70f738020f8228bd Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 11:08:55 -0700 Subject: [PATCH 38/77] Editing the API ref .html links to .qmd --- .../implementing-custom-tests.qmd | 9 ++++----- .../developer-fundamentals/learning-to-run-tests.qmd | 12 ++++++------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index b98fc9b456..f86675f71a 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -236,7 +236,7 @@ Let's implement a custom *inline test* that calculates the confusion matrix for **Create a custom test** ::: {.f5} -The [`@vm.test` wrapper](/validmind/validmind.html#test){target="_blank"} allows you to create a reusable test: +The [`@vm.test` wrapper](/validmind/validmind.qmd#test){target="_blank"} allows you to create a reusable test: 1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells in the following section under Implementing a custom inline test: **Create a confusion matrix plot** @@ -270,7 +270,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Log your custom test** ::: {.f5} -Use the [`.log()` method](/validmind/validmind/vm_models.html#TestResult.log){target="_blank"} to send the results of your custom test to the {{< var validmind.platform >}}: +Use the [`.log()` method](/validmind/validmind/vm_models.qmd#log){target="_blank"} to send the results of your custom test to the {{< var validmind.platform >}}: 1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} 2. Run the cell in the following section under Implementing a custom inline test: **Log the confusion matrix results** @@ -477,7 +477,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Reconnect to {{< var vm.product >}}** ::: {.f5} -After you insert test-driven blocks, changes should persist and become available every time you call the [`preview_template()` function](/validmind/validmind.html#preview_template){target="_blank"}: +After you insert test-driven blocks, changes should persist and become available every time you call the [`preview_template()` function](/validmind/validmind.qmd#preview_template){target="_blank"}: 1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} 2. Run all the cells under the **Reconnect to {{< var vm.product >}}** section. @@ -515,8 +515,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to Documentation template configuration ::: {.tc} - -[Learn more ...](/validmind/validmind/vm_models.html#TestSuite.get_default_config){.button target="_blank"} +[Learn more ...](/validmind/validmind/vm_models.qmd#get_default_config){.button target="_blank"} ::: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index f352a801c7..23def5d1de 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -220,7 +220,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Initialize {{< var vm.product >}} datasets** ::: {.f5} -Then, we'll use the [`init_dataset()` function](/validmind/validmind.html#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: +Then, we'll use the [`init_dataset()` function](/validmind/validmind.qmd#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: 1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Setting up section: **Initialize the {{< var vm.product >}} datasets** @@ -242,7 +242,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Run tabular data tests** ::: {.f5} -You run individual tests by calling the [`run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test){target="_blank"} provided by the `validmind.tests` module: +You run individual tests by calling the [`run_test` function](/validmind/validmind/tests.qmd#run_test){target="_blank"} provided by the `validmind.tests` module: 1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Running tests section: **Run tabular data tests**. @@ -282,7 +282,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to Document test results ::: {.tc} -[Learn more ...](/validmind/validmind/vm_models.html#TestResult.log){.button target="_blank"} +[Learn more ...](/validmind/validmind/vm_models.qmd#log){.button target="_blank"} ::: @@ -304,7 +304,7 @@ Every test result returned by the `run_test()` function has a `.log()` method th **Run & log multiple tests** ::: {.f5} -The [`run_documentation_tests()` function](/validmind/validmind.html#run_documentation_tests){target="_blank"} allows you to run multiple tests at once and automatically log the results to your documentation: +The [`run_documentation_tests()` function](/validmind/validmind.qmd#run_documentation_tests){target="_blank"} allows you to run multiple tests at once and automatically log the results to your documentation: 1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Documenting results section: **Run and log multiple tests**. @@ -445,7 +445,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Initialize a model object** ::: {.f5} -Use the `init_dataset` and [`init_model` functions](/validmind/validmind.html#init_model){target="_blank"} to initialize these objects: +Use the `init_dataset` and [`init_model` functions](/validmind/validmind.qmd#init_model){target="_blank"} to initialize these objects: 1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Initialize model evaluation objects**. @@ -462,7 +462,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to **Assign predictions** ::: {.f5} -Use the [`assign_predictions()` method](/validmind/validmind/vm_models.html#VMDataset.assign_predictions){target="_blank"} from the `Dataset` object to link existing predictions to any number of models: +Use the [`assign_predictions()` method](/validmind/validmind/vm_models.qmd#assign_predictions){target="_blank"} from the `Dataset` object to link existing predictions to any number of models: 1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Assign predictions**. From b17b55e01377d775afbe8a257ae2340e612d46f8 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 14:02:12 -0700 Subject: [PATCH 39/77] Prereq cleanup --- .../finalizing-model-documentation.qmd | 34 +++++--- .../implementing-custom-tests.qmd | 35 +++++--- .../learning-to-run-tests.qmd | 38 ++++++--- .../using-validmind-for-model-development.qmd | 80 ++++++++++++++++--- 4 files changed, 145 insertions(+), 42 deletions(-) diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 51d990282b..6275d37b51 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -52,7 +52,11 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Can you log in? +## Before you begin + +::: {.panel-tabset} + +### Prerequisite courses To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first three modules of this course: @@ -80,28 +84,38 @@ To continue, you need to have been [onboarded](developer-fundamentals-register.q ::: :::: +### Log in -
Log in to check your access: +1. Log in to check your access: + +:::: {.flex .flex-wrap .justify-around} + +::: {.w-50-ns .tc} -:::: {.columns} -::: {.column width="50%"} -::: {.tc} [Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} -::: ::: -::: {.column width="50%"} -::: {.tc} + +::: {.w-50-ns .tc} [Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} ::: -::: :::: -::: {.tc} + +::: {.tc .f3} Be sure to return to this page afterwards. ::: +2. After you successfully log in, refresh the page to connect this training module up to the {{< var validmind.platform >}}: + +::: {.tc} + + +::: + +::: + # Refine model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index f86675f71a..1f29f27301 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -73,10 +73,15 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Can you log in? +## Before you begin + +::: {.panel-tabset} + +### Prerequisite course To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first two modules of this course: + :::: {.columns} @@ -94,28 +99,38 @@ To continue, you need to have been [onboarded](developer-fundamentals-register.q ::: :::: +### Log in -
Log in to check your access: +1. Log in to check your access: + +:::: {.flex .flex-wrap .justify-around} + +::: {.w-50-ns .tc} -:::: {.columns} -::: {.column width="50%"} -::: {.tc} [Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} -::: ::: -::: {.column width="50%"} -::: {.tc} + +::: {.w-50-ns .tc} [Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} ::: -::: :::: -::: {.tc} + +::: {.tc .f3} Be sure to return to this page afterwards. ::: +2. After you successfully log in, refresh the page to connect this training module up to the {{< var validmind.platform >}}: + +::: {.tc} + + +::: + +::: + # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 23def5d1de..64079a0125 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -53,37 +53,53 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Can you log in? +## Before you begin -To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first module of this course: +::: {.panel-tabset} + +### Prerequisite course +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role and completed the first module of this course: ::: {.tc} [Using {{< var vm.product >}} for model development](using-validmind-for-model-development.html){.button target="_blank"} ::: -
Log in to check your access: +### Log in + +1. Log in to check your access: + +:::: {.flex .flex-wrap .justify-around} + +::: {.w-50-ns .tc} -:::: {.columns} -::: {.column width="50%"} -::: {.tc} [Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} -::: ::: -::: {.column width="50%"} -::: {.tc} + +::: {.w-50-ns .tc} [Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} ::: -::: :::: -::: {.tc} + +::: {.tc .f3} Be sure to return to this page afterwards. ::: +2. After you successfully log in, refresh the page to connect this training module up to the {{< var validmind.platform >}}: + +::: {.tc} + + +::: + + +::: + + # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 7855119144..f9d194bf2a 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -52,31 +52,48 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Can you log in? +## Before you begin -To try out this course, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role. +::: {.panel-tabset} -
Log in to check your access: +### Registration + +To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role. + + +### Log in + +1. Log in to check your access: + +:::: {.flex .flex-wrap .justify-around} + +::: {.w-50-ns .tc} -:::: {.columns} -::: {.column width="50%"} -::: {.tc} [Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} -::: ::: -::: {.column width="50%"} -::: {.tc} + +::: {.w-50-ns .tc} [Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} ::: -::: :::: -::: {.tc} + +::: {.tc .f3} Be sure to return to this page afterwards. ::: +2. After you successfully log in, refresh the page to connect this training module up to the {{< var validmind.platform >}}: + +::: {.tc} + + +::: + + +::: + # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} @@ -200,6 +217,47 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. # Install the ValidMind Library {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +## + +:::: {.columns} + +::: {.column width="80%"} + +::: {.absolute left="-150" width="100%"} + +::: + +::: + +::: {.column width="20%" .pt2} + +::: {.absolute right="-150" .w-30 .f3 .pl4 .pt2 .pb3 .bl} +**Get your code snippet** + +::: {.f5} +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: + +1. Select the name of your model to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. + +::: + +When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +::: + +::: + +:::: + ## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} :::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} From eea607e84b071aeed8c9200ec3488751ba388aba Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 14:30:42 -0700 Subject: [PATCH 40/77] Get your code snippet workaround --- .../finalizing-model-documentation.qmd | 21 +----- .../implementing-custom-tests.qmd | 72 ++++++++++++++++--- .../learning-to-run-tests.qmd | 39 ++++++++-- .../using-validmind-for-model-development.qmd | 43 +++++------ 4 files changed, 115 insertions(+), 60 deletions(-) diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 6275d37b51..691f5f050a 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -86,33 +86,16 @@ To continue, you need to have been [onboarded](developer-fundamentals-register.q ### Log in -1. Log in to check your access: +Log in to check your access: -:::: {.flex .flex-wrap .justify-around} - -::: {.w-50-ns .tc} - -[Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} - -::: - -::: {.w-50-ns .tc} +::: {.tc} [Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} ::: -:::: - - ::: {.tc .f3} Be sure to return to this page afterwards. ::: -2. After you successfully log in, refresh the page to connect this training module up to the {{< var validmind.platform >}}: - -::: {.tc} - - -::: ::: diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 1f29f27301..207c2b2b52 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -189,21 +189,50 @@ This is the third notebook in our introductory series, which will walk you throu :::: -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} +## Get your code snippet -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} -**Welcome back to the model inventory** +:::: {.columns} -::: {.f5} +::: {.column width="80%"} + +::: {.absolute left="-150" width="100%"} + + +

+ +
+::: + +::: + +::: {.column width="20%" .pt2} + +::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} First, let's connect back up to your model in the {{< var validmind.platform >}}: 1. Select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. +When you're done, click [{{< fa chevron-right >}}]() to continue. + +::: {.overlay .pa2 .pl3 .f5} +**Can't load the {{< var validmind.platform >}}?** + +Make sure you're logged in and have refreshed the module. ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +::: + +::: :::: @@ -449,21 +478,44 @@ This is the final notebook in our introductory series, which will walk you throu :::: -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} +## Get your code snippet + +:::: {.columns} -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} -**Welcome back to the model inventory** +::: {.column width="80%"} -::: {.f5} +::: {.absolute left="-150" width="100%"} + + +
+ +
+::: + +::: + +::: {.column width="20%" .pt2} + +::: {.absolute right="-150" .w-30 .f3 .pl4 .pt2 .pb3 .bl} As usual, let's connect back up to your model in the {{< var validmind.platform >}}: 1. Select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. +When you're done, click [{{< fa chevron-right >}}]() to continue. + + ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +::: :::: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 64079a0125..95642d556b 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -177,21 +177,50 @@ For now, **scroll through these test descriptions** to explore. When you're done :::: ::: -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} +## Get your code snippet -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} -**Welcome back to the model inventory** +:::: {.columns} -::: {.f5} +::: {.column width="80%"} + +::: {.absolute left="-150" width="100%"} + + +
+ +
+::: + +::: + +::: {.column width="20%" .pt2} + +::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} First, let's connect back up to your model in the {{< var validmind.platform >}}: 1. Select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. +When you're done, click [{{< fa chevron-right >}}]() to continue. + +::: {.overlay .pa2 .pl3 .f5} +**Can't load the {{< var validmind.platform >}}?** + +Make sure you're logged in and have refreshed the module. ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. + +::: + +::: :::: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index f9d194bf2a..a758fdd5d8 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -201,9 +201,12 @@ When you're ready to register your model, :::: {.fr .f4 .mv5 .nr5 .pa4 .overlay} **Register a binary
classification model** +Select the option
+for a new model: + ::: {.f5 .nt2} -- **Documentation template:**
`Binary classification` -- **Use case:**
`Attrition/Churn Management` +- **Documentation template** —
`Binary classification` +- **Use case** —
`Attrition/Churn Management` You can fill in other options
according to your preference. ::: @@ -217,62 +220,50 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. # Install the ValidMind Library {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## +## Get your code snippet :::: {.columns} ::: {.column width="80%"} ::: {.absolute left="-150" width="100%"} + + +
+
::: ::: ::: {.column width="20%" .pt2} -::: {.absolute right="-150" .w-30 .f3 .pl4 .pt2 .pb3 .bl} -**Get your code snippet** - -::: {.f5} +::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} {{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: 1. Select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. -::: - -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +When you're done, click [{{< fa chevron-right >}}]() to continue. -::: +::: {.overlay .pa2 .pl3 .f5} +**Can't load the {{< var validmind.platform >}}?** +Make sure you're logged in and have refreshed the page. ::: -:::: - -## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} - -:::: {.absolute bottom=0 left=50 right=50 .w-95 .f4 .tc .pl4 .overlay} -**Get your code snippet** - -::: {.f5} -{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: - -1. Select the name of your model to open up the model details page. -2. On the left sidebar that appears for your model, click **Getting Started**. -3. Locate the code snippet and click **Copy snippet to clipboard**. ::: -When you're done, return to this page and click [{{< fa chevron-right >}}]() to continue. +::: :::: From 38d721ca2ac3e446490535ac057a3a0270b9d337 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 14:51:22 -0700 Subject: [PATCH 41/77] Using VM for model development register model edit --- .../using-validmind-for-model-development.qmd | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index a758fdd5d8..417250124f 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -155,44 +155,45 @@ For now, **scroll through this notebook** to explore. When you are done, click [ From here, you can: -- Register models in the model inventory. -- Review and edit model documentation
generated with the introductory notebook. -- Collaborate with model validators to get
your documentation approved. -- And much more! +- Keep track of your models in the
customizable inventory ... +- Review and edit model documentation
generated via the {{< var validmind.developer >}} ... +- Collaborate with model validators
to get your model approved ... +- ... and much more! ::: {.f5 .pl3 .pr3 .embed} -**To start the documentation process**, you register a -
new model in the model inventory or select one that -
has already been registered. +**Can't load the {{< var validmind.platform >}}?** +Make sure you're logged in and have
refreshed the page. ::: -**Learn how to register a model** -
on the next page. {{< fa hand-point-right >}} +When you're done navigating around, +
click [{{< fa chevron-right >}}]() to continue. ::: -## {background-iframe="https://app.prod.validmind.ai/model-inventory" data-preload="yes"} +## {background-iframe="https://app.prod.validmind.ai/model-inventory" background-interactive="true" data-preload="yes"} :::: {.fr .f4 .mv5 .nr5 .pa4 .overlay} **Welcome to the model inventory** -To register a model: - -1. Click **+ Register Model**. -2. To register a model for use with this module, select: +Use the model inventory to track
+comprehensive details for all your
+models throughout the model lifecycle. -::: {.f5 .nt2} -- **Documentation template:** `Binary classification` -- **Use case:** `Marketing/Sales - Attrition/Churn Management` - - You can fill in other options according to your preference. +The model inventory is customizable
+and extensible, with a layout that
+can be configured to suit your needs. +::: {.f5 .pl3 .pr3 .embed} +To start the documentation process,
+a model must already be registered
+in the model inventory via the
+**+ Register Model** modal. ::: -When you're ready to register your model, -
click [{{< fa chevron-right >}}]() to continue. +**Let's register a model together** on
+the next page. {{< fa hand-point-right >}} :::: @@ -201,16 +202,20 @@ When you're ready to register your model, :::: {.fr .f4 .mv5 .nr5 .pa4 .overlay} **Register a binary
classification model** -Select the option
+1. Select the option
for a new model: -::: {.f5 .nt2} +::: {.f5 .nt2 .pl2} - **Documentation template** —
`Binary classification` - **Use case** —
`Attrition/Churn Management` You can fill in other options
according to your preference. ::: +2. Click **Register Model** to
+add the model to your
+inventory. + When you're done,
click [{{< fa chevron-right >}}]() to continue. :::: From 9c607956c080580e0fa78a71cfe6cf882463cc07 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 16:37:21 -0700 Subject: [PATCH 42/77] Updated the course template --- .../training-templates/course-slides.qmd | 171 ++++++++++++++++-- 1 file changed, 155 insertions(+), 16 deletions(-) diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index 9b47253e3e..56762adab6 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -1,6 +1,6 @@ --- -title: "{{ Topic }}
Template" -subtitle: "docs.validmind.ai/training

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" +title: "{{ Module }}
Template" +subtitle: "{{Course name}} — Module # of #

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true # REMOVE THE SEARCH FALSE TOGGLE WHEN THE COURSE IS READY TO BE PUBLISHED search: false @@ -30,37 +30,104 @@ skip_preview: true # Learning objectives -_"As a {{ role }} who is new to {{< var vm.product >}}, I want to learn how to {{ task A }}, {{ task B }}, {{ task C }}, and {{ task D}}."_ +_"As a {{ role }} who ... {{< var vm.product >}}, I want to learn how to {{ task A }}, {{ task B }}, {{ task C }}, and {{ task D}}."_ + +::: {.tc} +
+This {{#th}} module is part of a {{#}}-part series: +

+ +[Course Link](/training/training-templates/course-registration.qmd){.button target="_blank"} +::: ## In this course +:::: {.columns .f4} +::: {.column width="50%" .mt4 .pr4} +### [introduction]{.smallcaps} +- [Before you begin](#before-you-begin) + +::: + +:::: + +:::: {.columns .f4} + +::: {.column width="50%" .mt4 .pr4} +### [section 1]{.smallcaps} + 1. [iFrame embed right](#iframe-embed-right) 2. [iFrame embed bottom](#iframe-embed-bottom) 3. [iFrame embed footer](#iframe-embed-footer) 4. [Scrollable single user guide](#scrollable-single-user-guide) 5. [Scrollable tabset user guides](#scrollable-tabset-user-guide) +::: + +::: {.column width="50%" .mt4} +### [section 2]{.smallcaps} + +Example embedded `iframe` for interactive copy/paste workaround: + +- [Get your code snippet](#get-your-code-snippet) + +Topic summary & next steps: + +- [Next steps](#next-steps) +::: + +:::: + First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Can you log in? +## Before you begin - +::: {.panel-tabset} -To try out this course, you need to have been [onboarded](course-registration.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa check >}} Role Name**]{.bubble} role. +### Registration -
Log in to check your access: + -::: {.tc} -[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai/){.button target="_blank"} +To continue, you need to have been [onboarded](course-registration.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa check >}} Role Name**]{.bubble} role. -
+ +### Log in + +1. Log in to check your access: + +:::: {.flex .flex-wrap .justify-around} + +::: {.w-50-ns .tc} + +[Log in to JupyterHub](https://jupyterhub.validmind.ai/){.button target="_blank"} + +::: + +::: {.w-50-ns .tc} +[Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} +::: + +:::: + + +::: {.tc .f3} Be sure to return to this page afterwards. +::: + +2. After you successfully log in, refresh the page to connect this training module up to the {{< var validmind.platform >}}: + +::: {.tc} + ::: +::: + +# [section 1]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} + # iFrame embed right {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {background-iframe="https://app.prod.validmind.ai/" data-preload="yes"} @@ -191,16 +258,88 @@ All you need to do is make sure that the headers within `.panel-tabset` are set Try it **live** on the next page. {{< fa hand-point-right >}} +# [section 2]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} -# Topic summary slide +## Get your code snippet -Summarize the benefits of {{< var vm.product >}} for the role or topic you just covered here, then link to the relevant user guides below. +:::: {.columns} -::: {.tc} - +::: {.column width="80%"} + +::: {.absolute left="-150" width="100%"} + + +
+ +
+::: -[Change this link and text](/guide/guides.qmd){.button target="_blank"} ::: + +::: {.column width="20%" .pt2} + +::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: + +1. Select the name of your model to open up the model details page. +2. On the left sidebar that appears for your model, click **Getting Started**. +3. Locate the code snippet and click **Copy snippet to clipboard**. + +When you're done, click [{{< fa chevron-right >}}]() to continue. + +::: {.overlay .pa2 .pl3 .f5} +**Can't load the {{< var validmind.platform >}}?** + +Make sure you're logged in and have refreshed the page. +::: + + +::: + +::: + +:::: + + +# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} + +## {.scrollable} + +:::: {.columns} +::: {.column width="30%" .pr4 .f2} +{{Module name}} + +::: {.f3} +
Want to learn more? Find your next learning resource on [{{< fa graduation-cap >}} {{< var validmind.training >}}](/training/training.qmd){target="_blank"}. + +::: + +::: + +::: {.column width="70%" .bl .pl4 .f3} +In this {{#th}} module, you learned how to: + +- [ ] task +- [ ] task +- [ ] task +- [ ] task + +::: +:::: + +::: {.f2}
+There is more that {{< var vm.product >}} can do to help you {{perform task}}, including {{...}}: +::: + +::: {.tc} +[More docs](/index.qmd){.button target="_blank"} -Or, find your next learning resource on [{{< var validmind.training >}}](/training/training.qmd). \ No newline at end of file +::: \ No newline at end of file From 0ff8e42f3b620eecaca7481ec90cf214d911380d Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 20 Mar 2025 16:48:06 -0700 Subject: [PATCH 43/77] Tweaking Before you start --- .../finalizing-model-documentation.qmd | 5 +++++ .../implementing-custom-tests.qmd | 5 +++++ .../developer-fundamentals/learning-to-run-tests.qmd | 5 +++++ .../using-validmind-for-model-development.qmd | 10 +++++++++- site/training/training-templates/course-slides.qmd | 6 ++++++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 691f5f050a..3ede992fa0 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -84,6 +84,11 @@ To continue, you need to have been [onboarded](developer-fundamentals-register.q ::: :::: +:::: {.tc .mt5 .f2 .embed} +Already logged in and refreshed this module? Click [{{< fa chevron-right >}}]() to continue. + +::: + ### Log in Log in to check your access: diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 207c2b2b52..11e74e9cc3 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -99,6 +99,11 @@ To continue, you need to have been [onboarded](developer-fundamentals-register.q ::: :::: +:::: {.tc .mt5 .f2 .embed} +Already logged in and refreshed this module? Click [{{< fa chevron-right >}}]() to continue. + +::: + ### Log in 1. Log in to check your access: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 95642d556b..523a1cb931 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -66,6 +66,11 @@ To continue, you need to have been [onboarded](developer-fundamentals-register.q [Using {{< var vm.product >}} for model development](using-validmind-for-model-development.html){.button target="_blank"} ::: +:::: {.tc .mt5 .f2 .embed} +Already logged in and refreshed this module? Click [{{< fa chevron-right >}}]() to continue. + +::: + ### Log in 1. Log in to check your access: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 417250124f..4ed703609e 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -60,6 +60,13 @@ First, let's make sure you can log in to {{< var vm.product >}}. To continue, you need to have been [onboarded](developer-fundamentals-register.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa code >}} Developer**]{.bubble} role. +
+ +:::: {.tc .mt5 .f2 .embed} +Already logged in and refreshed this module? Click [{{< fa chevron-right >}}]() to continue. + +::: + ### Log in @@ -91,9 +98,10 @@ Be sure to return to this page afterwards. ::: - ::: +
+ # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index 56762adab6..89becfb499 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -92,6 +92,12 @@ First, let's make sure you can log in to {{< var vm.product >}}. To continue, you need to have been [onboarded](course-registration.qmd#register){target="_blank"} onto {{< var validmind.training >}} with the [**{{< fa check >}} Role Name**]{.bubble} role. +
+ +:::: {.tc .mt5 .f2 .embed} +Already logged in and refreshed this module? Click [{{< fa chevron-right >}}]() to continue. + +::: ### Log in From d07d13b473594c2f0792cbe2b4efd1da522ccdc2 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 24 Mar 2025 11:28:01 -0700 Subject: [PATCH 44/77] Tested & updated run times --- .../developer-fundamentals-register.qmd | 10 +++++----- .../finalizing-model-documentation.qmd | 19 +++++++++++++------ .../implementing-custom-tests.qmd | 6 +++--- .../learning-to-run-tests.qmd | 6 +++--- .../using-validmind-for-model-development.qmd | 2 +- .../training-templates/course-slides.qmd | 2 +- 6 files changed, 26 insertions(+), 19 deletions(-) diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index 50d7c34c55..fe9d5f50c2 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -17,25 +17,25 @@ listing: title: "Using {{< var vm.product >}} for model development" subtitle: "Module 1" description: "{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Connect to your registered model
{{< fa check >}} Preview your model's documentation template" - reading-time: "30" + reading-time: "15" author: "{{< var vm.product >}}" - path: learning-to-run-tests.html title: "Learning to run tests" subtitle: "Module 2" description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Insert test results into your model's documentation" - reading-time: "60" + reading-time: "45" author: "{{< var vm.product >}}" - path: implementing-custom-tests.html title: "Implementing custom tests" subtitle: "Module 3" description: "{{< fa check >}} Implement, run, and log custom inline and reusable tests
{{< fa check >}} Refresh your template to include inserted test-driven blocks
{{< fa check >}} Configure your template to include custom tests" - reading-time: "60" + reading-time: "45" author: "{{< var vm.product >}}" - path: finalizing-model-documentation.html title: "Finalizing model documentation" subtitle: "Module 4" description: "{{< fa check >}} Refine your model documentation
{{< fa check >}} Submit your model documentation for approval
{{< fa check >}} Track changes and other updates to your model" - reading-time: "30" + reading-time: "20" author: "{{< var vm.product >}}" fields: [title, subtitle, description, reading-time] --- @@ -51,7 +51,7 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc ::: {.w-50-ns .pr3} #### Total duration -180 minutes +120 minutes ::: diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 3ede992fa0..3196fb98fe 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -91,7 +91,7 @@ Already logged in and refreshed this module? Click [{{< fa chevron-right >}}]() ### Log in -Log in to check your access: +1. Log in to check your access: ::: {.tc} [Log in to {{< var vm.product >}}](https://app.prod.validmind.ai){.button target="_blank"} @@ -101,6 +101,13 @@ Log in to check your access: Be sure to return to this page afterwards. ::: +2. After you successfully log in, refresh the page to connect this training module up to the {{< var validmind.platform >}}: + +::: {.tc} + + +::: + ::: @@ -153,7 +160,7 @@ From the {{< var validmind.platform >}}: **Review model documentation** ::: {.f5} -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Documentation**. 3. Click into any section of the documentation to review the test results logged via the {{< var validmind.developer >}}.
For example: **2.3 Correlations and Interactions** / **3.2 Model Evaluation** @@ -218,7 +225,7 @@ For example: **Add & edit content blocks** ::: {.f5} -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Documentation**. 3. Click into any section of the documentation to add or edit a content block. @@ -276,7 +283,7 @@ To transition through the approval workflow, all required workflow steps must be **Submit for approval** ::: {.f5} -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. Locate the **[model status]{.smallcaps}** section. 3. Open up the status transition panel, enter your **[notes]{.smallcaps}** and any other additional inventory fields, then click **Submit**. @@ -323,7 +330,7 @@ Comment threads **Comment on model documentation** ::: {.f5} -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. In the left sidebar that appears for your model, click **Documentation**. 3. **In the content block you added earlier:** Post a comment, reply to it, and then resolve the thread. @@ -366,7 +373,7 @@ Track changes & updates **Review model activity** ::: {.f5} -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. In the left sidebar that appears for your model, click **Model Activity**. 3. Filter the following activity: **Comments** | **Status Updates** | **Model Updates** | **Test Results** diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 11e74e9cc3..df6f96a19c 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -222,7 +222,7 @@ This is the third notebook in our introductory series, which will walk you throu ::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} First, let's connect back up to your model in the {{< var validmind.platform >}}: -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. @@ -458,7 +458,7 @@ With the custom test results logged, let's head to the model we connected to at **Insert custom test-driven blocks** ::: {.f6} -`my_custom_tests.ConfusionMatrix:test_dataset_normalized` / `my_test_provider.ConfusionMatrix` +3.2 Model Evaluation — `my_custom_tests.ConfusionMatrix:test_dataset_normalized` / `my_test_provider.ConfusionMatrix` ::: @@ -511,7 +511,7 @@ This is the final notebook in our introductory series, which will walk you throu ::: {.absolute right="-150" .w-30 .f3 .pl4 .pt2 .pb3 .bl} As usual, let's connect back up to your model in the {{< var validmind.platform >}}: -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 523a1cb931..e551c56ef1 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -210,7 +210,7 @@ For now, **scroll through these test descriptions** to explore. When you're done ::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} First, let's connect back up to your model in the {{< var validmind.platform >}}: -1. Select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. @@ -400,7 +400,7 @@ Work with test results With the test results logged, let's head to the model we connected to at the beginning of this notebook and insert our test results into the documentation: -1. From the **Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. +1. From the **{{< fa cubes >}} Inventory** in the {{< var validmind.platform >}}, go to the model you connected to earlier. 2. In the left sidebar that appears for your model, click **Documentation**. @@ -427,7 +427,7 @@ With the test results logged, let's head to the model we connected to at the beg **Insert a test-driven block** ::: {.f6} -`HighPearsonCorrelation:balanced_raw_dataset` +2.3 Correlations and Interactions — `HighPearsonCorrelation:balanced_raw_dataset` ::: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 4ed703609e..0781fd7068 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -261,7 +261,7 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. ::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} {{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: -1. Select the name of your model to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index 89becfb499..5ae3a2deeb 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -294,7 +294,7 @@ Try it **live** on the next page. {{< fa hand-point-right >}} ::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} {{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: -1. Select the name of your model to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. From 80eafed726ac76acca15525902467836a3a44988 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 24 Mar 2025 11:34:38 -0700 Subject: [PATCH 45/77] Updated the est. for the listings --- site/training/training.qmd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/training/training.qmd b/site/training/training.qmd index 339b7d2aa8..9eb6d505cd 100644 --- a/site/training/training.qmd +++ b/site/training/training.qmd @@ -45,28 +45,28 @@ listing: subtitle: "Open notebook in JupyterHub {{< fa chevron-right >}}" description: "Gets you started with the basic process of documenting models with {{< var vm.product >}}, from the {{< var vm.developer >}} to the {{< var vm.platform >}}." categories: ["[Demo] Customer Churn Model"] - reading-time: "10" + reading-time: "20" author: "{{< var vm.product >}}" - path: https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb title: "{{< var vm.product >}} for model development (4-part series)" subtitle: "Open series in JupyterHub {{< fa chevron-right >}}" description: "Learn how the end-to-end documentation process works based on common scenarios you encounter in model development settings." categories: ["[Demo] Customer Churn Model"] - reading-time: "30" + reading-time: "60" author: "{{< var vm.product >}}" - path: https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/code_samples/credit_risk/application_scorecard_demo.ipynb title: "Document an application scorecard model" subtitle: "Open notebook in JupyterHub {{< fa chevron-right >}}" description: "Guides you through building and documenting an application scorecard model using the Lending Club sample dataset from Kaggle." categories: ["[Demo] Credit Risk Model"] - reading-time: "16" + reading-time: "30" author: "{{< var vm.product >}}" - path: https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/code_samples/nlp_and_llm/foundation_models_integration_demo.ipynb title: "Prompt validation for large language models (LLMs)" subtitle: "Open notebook in JupyterHub {{< fa chevron-right >}}" description: "Run and document prompt validation tests for a large language model (LLM) specialized in sentiment analysis for financial news." categories: ["[Demo] Foundation Model - Text Sentiment Analysis"] - reading-time: "8" + reading-time: "15" author: "{{< var vm.product >}}" --- From 4b82aef5f4d909edc74de6950d37220756d3c653 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 24 Mar 2025 11:51:42 -0700 Subject: [PATCH 46/77] Updated historical test result metadata --- .../_view-test-result-metadata.qmd | 10 +++++----- .../model-documentation/test-run-details.gif | Bin 906256 -> 0 bytes 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 site/guide/model-documentation/test-run-details.gif diff --git a/site/guide/model-documentation/_view-test-result-metadata.qmd b/site/guide/model-documentation/_view-test-result-metadata.qmd index 3ff67ebb73..2d3a0b006b 100644 --- a/site/guide/model-documentation/_view-test-result-metadata.qmd +++ b/site/guide/model-documentation/_view-test-result-metadata.qmd @@ -1,8 +1,8 @@ 1. Locate the test result whose metadata you want to view. -1. Under the test result's name, click on the row indicating the currently [Active]{.green-bg} test result. +1. Hover over the test result until the top-right hand corner menu appears and select **{{< fa clock >}} See Timeline**: - - On the test result timeline, click on the **{{< fa chevron-down >}}** associated with a test run to expand for details. - - When you are done, you can either click **Cancel** or **{{< fa x >}}** to close the metadata menu. - - ![Detail expansion of test runs on the test result timeline](/guide/model-documentation/test-run-details.gif){width=85% fig-alt="A gif showcasing detail expansion of test runs on the test result timeline" .screenshot} \ No newline at end of file + - The [Active]{.green-bg} (most recent) test result is highlighted. + - On the test result timeline, click on the **{{< fa chevron-down >}}** associated with a test run to expand for details, such as **Model Information** or **Dataset Information**. + + When you are done, you can either click **Cancel** or **{{< fa x >}}** to close the metadata menu. \ No newline at end of file diff --git a/site/guide/model-documentation/test-run-details.gif b/site/guide/model-documentation/test-run-details.gif deleted file mode 100644 index 738bf685764b91d721eb55cf3d6343c5f7d62a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 906256 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%0Dcpr! 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ܓ>2H6_EA*4guox`s3@4Q zZQK}1GvY6f5mv@v3^^ns7BwZ^Vohl`5O9<#btE^L;vXVK3J>ZGlMzSFlP7cGUbg6v zKo(|O>18sht&_w^uaZge2TG$9O5+M;n}kYfqDqnCC-Qfz@5-(5DoOI1jP(ky^NO$b zO0V~-uldTa|GKXM>#qXauLX-G1q-kPJ4*;lu=hHC`KlPApfJ^BSp-ut|EwV&4U<(5 z0vC%)34kCm(IqRq1F8`N6JrMmFnUj3rG=a0VQf-OlNkyM+AfB*n`YMwf~Fda3tG^i8qVy1ZG8iSw} zT%j-xrcLWr3Bwwm3Ns19usL}HG5%Fidy;nd1cejG8Z(PFjnNjrF+lM|LYJm6ttnoo z)Q&lqCX4iY?&d+s=U|dh3@B$IA@UaL=kSlZ;_Gl-WT#s>VPcesrowbs z309=Ul6ZtiVro%c*~E|J7?1R=T3Jc$`hHbe*HGCh@#n7T3`u5L{~2}zSe+NMp{q>?YVqn{+q+W)yNDSq-EZT#D%?b++P*#qg> ztzFoxy{MoqN$GrLl0w?R4cOwC+t^*&>ss5Ft=z2>fNi&NtW^^KG}Z7a9crXN+hl*BVLreswpdO*HY;z zL@eVq{^D3BesG;-ZOzt>v`DQ2mTgQ)(Je{+D`rIQl}MgtN>=KoM!Yi)VuU>W6L?&e~C&gWG=#!rsuQ|;-44(f}p>Z}~-RBY&Bi4?KezYUE#o9<<&9^E4`=c~Tu&i>_B+~;TR=+*AWQC#Vy z{>OMk5siN2;mj&r9@nw5#B(iv-^b(OH%Z*84Ug~(5AhCf-T$R5@exnp+-mU*|L_&h@f+{)8V~XrFY+B9 z@+3d<1bz(1P)a5L@h8vnFYod(Z}KzW@~3oL$G}Mpzw!%z;)_c2F#q%HimozW^F*^~PxMMp^EuD1ss#1_o~}jdWcZH6_)e~zl=Vd%#71oOnF2~(uk}@*No&3CJ1*B~ z&z0xbt!lpGOU&1+68G8a_J6J8b5CY~efN5g*n98xdGGdfUH62&_ZHOXsS@Os#N_Rr z_~)MKUq0uGkLO2@_+;*Vj$ilM4)0t3Wtz{GV|@6BK4wmg_gz3D#y?3uhRH~F2%{N{If6o zrLO#q^y%5YWtU(2QttUuocE&Q`CVpd#Bcpi9R8u-`ryClv7hdoUn<}K{I&1=h;J&R z-uZa0`f4xy${+ubfB(&&#lH^_z={D=25i``VFn2*OlWLj!h{187Nn@K;J|_t7go%; z@!>*;7Z+l*Sdt{LktsWJH2HDZOJgsG#e^x7=1iM8YwpA;)8|j1L4^(_TGZ%Kq)C-7 zO$rPlQ=-3q-Go}z>Q$^+wQl9w)$3QVVa1LmTh{DZv}u#xWUI61+qOL8!gU*$m(RI* za~k`_tD;809#^(x`IjKV!~YZ!D_gvA@nemOBOjj3STbe7kP~BOT)DC0%bhb%)XecS zXUCyWD}xpCv1-qxhuw87do<@?un%J_z1nx|+oD+>+bq0sWx=>@Th6T8G-=|`ag!t+ zx_0uyzmqSwm>V^B(72snH|<=zbkn@KS65#Ab^Dd8$)6_=Ec$WO;f=F5?s`0O>&#P3 zJ(cj=&pq(+E6}>--a8Pz)D&dyLGK=%kHEsP`)DxgHWWz1!2-*$BBw+oOhcIvQbwj? zSak8F6<=x*s2PWe(MFwsp-IP=cxob?9)m@4=vPAMi+HdQAmmW>Bbvt^vTkoD3z(w7X#fi)4Pt+6h@!=Vo4*C zQuWZVQ&Z|tB#0PVbvs!ja_K`3Yb^;mRCVpp)?8zab+8PDRp?h-TQU|Rzi#c-SY(x< z?O9!k^-v;Nksa1qSv#6cBjT3rR!4HZ73Eun95U80an&Wr#?!<_cQR~4;&xqbu?=k7 zSoOWPByUHXN>+E-^+?`vw~a3 DB;D^giHeyzHO*meQ2O=rpgJ49gm@e&0*C31` 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%0A1ZGtf1o+;hu2 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

_H7dY^o9FDa0>Al`VRVV?Fgq)Hp~H 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�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�T5Mag)xsfWuKvtn(3AMp0es>9t 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%0ARbRYxqW# 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 K-|kI700298Dd^k) From 0b79ce9f0d6ce63d702505f0342042af40581372 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 24 Mar 2025 14:20:47 -0700 Subject: [PATCH 47/77] ?? Why is the filter not working --- .github/workflows/validate-docs-site.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/validate-docs-site.yaml b/.github/workflows/validate-docs-site.yaml index 8b014ebebc..178093dcc3 100644 --- a/.github/workflows/validate-docs-site.yaml +++ b/.github/workflows/validate-docs-site.yaml @@ -53,8 +53,8 @@ jobs: uses: dorny/paths-filter@v2 id: filter with: - base: ${{ github.event.pull_request.base_ref }} - ref: ${{ github.head_ref }} + # base: ${{ github.event.pull_request.base_ref }} + # ref: ${{ github.head_ref }} filters: | notebooks: - 'site/notebooks/**' From 796f4b4122ce0b7cd71865cb85905c64ffe14e86 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 24 Mar 2025 15:33:40 -0700 Subject: [PATCH 48/77] Getting rid of more conditions to check --- .github/workflows/validate-docs-site.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/validate-docs-site.yaml b/.github/workflows/validate-docs-site.yaml index 178093dcc3..0bfceba865 100644 --- a/.github/workflows/validate-docs-site.yaml +++ b/.github/workflows/validate-docs-site.yaml @@ -61,7 +61,7 @@ jobs: # If yes then create the .env file for use in execution step - name: Create .env file - if: steps.filter.outputs.notebooks == 'true' + # if: steps.filter.outputs.notebooks == 'true' id: create_env run: | touch .env @@ -73,7 +73,7 @@ jobs: # Only execute the demo notebook if .env file is created - name: Execute demo Intro for Model Developers notebook - if: ${{ env.ENABLE_DEMO_NOTEBOOK == 'true' && steps.create_env.outcome == 'success' }} + # if: ${{ env.ENABLE_DEMO_NOTEBOOK == 'true' && steps.create_env.outcome == 'success' }} uses: ./.github/actions/demo-notebook id: execute-demo-notebook with: From a66913c178f8d4a5e929606d855db91756ebc743 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 24 Mar 2025 16:14:13 -0700 Subject: [PATCH 49/77] Changing env > vars for ENABLE_DEMO_NOTEBOOK --- .github/workflows/validate-docs-site.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/validate-docs-site.yaml b/.github/workflows/validate-docs-site.yaml index 0bfceba865..f3f73ffab1 100644 --- a/.github/workflows/validate-docs-site.yaml +++ b/.github/workflows/validate-docs-site.yaml @@ -53,15 +53,15 @@ jobs: uses: dorny/paths-filter@v2 id: filter with: - # base: ${{ github.event.pull_request.base_ref }} - # ref: ${{ github.head_ref }} + base: ${{ github.event.pull_request.base_ref }} + ref: ${{ github.head_ref }} filters: | notebooks: - 'site/notebooks/**' # If yes then create the .env file for use in execution step - name: Create .env file - # if: steps.filter.outputs.notebooks == 'true' + if: steps.filter.outputs.notebooks == 'true' id: create_env run: | touch .env @@ -73,7 +73,7 @@ jobs: # Only execute the demo notebook if .env file is created - name: Execute demo Intro for Model Developers notebook - # if: ${{ env.ENABLE_DEMO_NOTEBOOK == 'true' && steps.create_env.outcome == 'success' }} + if: ${{ vars.ENABLE_DEMO_NOTEBOOK == 'true' && steps.create_env.outcome == 'success' }} uses: ./.github/actions/demo-notebook id: execute-demo-notebook with: From 2cf7fddbcef8e73c328fb987064ca8f4a0fb3592 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 25 Mar 2025 11:09:02 -0700 Subject: [PATCH 50/77] Swapping the execution to new notebooks --- .github/actions/demo-notebook/action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/demo-notebook/action.yml b/.github/actions/demo-notebook/action.yml index 8e014230b8..dac0e5fd57 100644 --- a/.github/actions/demo-notebook/action.yml +++ b/.github/actions/demo-notebook/action.yml @@ -33,14 +33,14 @@ runs: exit 1 fi - - name: Execute ONLY the Intro for Model Developers notebook with heap development + - name: Execute ONLY the ValidMind for model development series with heap development shell: bash if: ${{ steps.find_env.outcome == 'success' }} run: | cd site source ../${{ inputs.env_file }} - quarto render --profile exe-demo notebooks/tutorials/intro_for_model_developers_EXECUTED.ipynb &> render_errors.log || { - echo "Execute for intro_for_model_developers_EXECUTED.ipynb failed"; + quarto render --profile exe-demo notebooks/EXECUTED/model_development &> render_errors.log || { + echo "Execute for ValidMind for model development series failed"; cat render_errors.log; exit 1; } From 8b276a65a438b6b9480bb73b85e7dbe90220fb1d Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 25 Mar 2025 13:17:18 -0700 Subject: [PATCH 51/77] Updating action to register VM kernel --- .github/actions/demo-notebook/action.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/actions/demo-notebook/action.yml b/.github/actions/demo-notebook/action.yml index dac0e5fd57..42aefe2aef 100644 --- a/.github/actions/demo-notebook/action.yml +++ b/.github/actions/demo-notebook/action.yml @@ -24,6 +24,11 @@ runs: pip install shap==0.44.1 pip install anywidget + - name: Register validmind kernel + shell: bash + run: | + python -m ipykernel install --user --name validmind --display-name "ValidMind Library" + - name: Ensure .env file is available shell: bash id: find_env From a11667c74d3156fa6b92bb95e8f142393af89d73 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 25 Mar 2025 13:19:59 -0700 Subject: [PATCH 52/77] Updating prod & staging action & workflows --- .github/actions/demo-notebook/action.yml | 2 +- .github/actions/prod-notebook/action.yml | 13 +++++++++---- .github/actions/staging-notebook/action.yml | 13 +++++++++---- .github/workflows/deploy-docs-prod.yaml | 2 +- .github/workflows/deploy-docs-staging.yaml | 2 +- .github/workflows/validate-docs-site.yaml | 2 +- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/.github/actions/demo-notebook/action.yml b/.github/actions/demo-notebook/action.yml index 42aefe2aef..898123341b 100644 --- a/.github/actions/demo-notebook/action.yml +++ b/.github/actions/demo-notebook/action.yml @@ -1,4 +1,4 @@ -name: Execute demo notebook +name: Execute demo notebooks description: Installs python3, validmind, checks dependencies then executes ONLY the Intro for Model Developers notebook with development heap tracking inputs: diff --git a/.github/actions/prod-notebook/action.yml b/.github/actions/prod-notebook/action.yml index ce8612da46..fd86151175 100644 --- a/.github/actions/prod-notebook/action.yml +++ b/.github/actions/prod-notebook/action.yml @@ -1,4 +1,4 @@ -name: Execute prod notebook +name: Execute prod notebooks description: Installs python3, validmind, checks dependencies then executes ONLY the Intro for Model Developers notebook with production heap tracking inputs: @@ -24,6 +24,11 @@ runs: pip install shap==0.44.1 pip install anywidget + - name: Register validmind kernel + shell: bash + run: | + python -m ipykernel install --user --name validmind --display-name "ValidMind Library" + - name: Ensure .env file is available shell: bash id: find_env @@ -33,14 +38,14 @@ runs: exit 1 fi - - name: Execute ONLY the Intro for Model Developers notebook with heap production + - name: Execute ONLY the ValidMind for model development series with heap production shell: bash if: ${{ steps.find_env.outcome == 'success' }} run: | cd site source ../${{ inputs.env_file }} - quarto render --profile exe-prod notebooks/tutorials/intro_for_model_developers_EXECUTED.ipynb &> render_errors.log || { - echo "Execute for intro_for_model_developers_EXECUTED.ipynb failed"; + quarto render --profile exe-prod notebooks/EXECUTED/model_development &> render_errors.log || { + echo "Execute for ValidMind for model development series failed"; cat render_errors.log; exit 1; } \ No newline at end of file diff --git a/.github/actions/staging-notebook/action.yml b/.github/actions/staging-notebook/action.yml index f53d395380..d5a2b8dff3 100644 --- a/.github/actions/staging-notebook/action.yml +++ b/.github/actions/staging-notebook/action.yml @@ -1,4 +1,4 @@ -name: Execute staging notebook +name: Execute staging notebooks description: Installs python3, validmind, checks dependencies then executes ONLY the Intro for Model Developers notebook with staging heap tracking inputs: @@ -24,6 +24,11 @@ runs: pip install shap==0.44.1 pip install anywidget + - name: Register validmind kernel + shell: bash + run: | + python -m ipykernel install --user --name validmind --display-name "ValidMind Library" + - name: Ensure .env file is available shell: bash id: find_env @@ -33,14 +38,14 @@ runs: exit 1 fi - - name: Execute ONLY the Intro for Model Developers notebook with heap staging + - name: Execute ONLY the ValidMind for model development series with heap staging shell: bash if: ${{ steps.find_env.outcome == 'success' }} run: | cd site source ../${{ inputs.env_file }} - quarto render --profile exe-staging notebooks/tutorials/intro_for_model_developers_EXECUTED.ipynb &> render_errors.log || { - echo "Execute for intro_for_model_developers_EXECUTED.ipynb failed"; + quarto render --profile exe-staging notebooks/EXECUTED/model_development &> render_errors.log || { + echo "Execute for iValidMind for model development series failed"; cat render_errors.log; exit 1; } \ No newline at end of file diff --git a/.github/workflows/deploy-docs-prod.yaml b/.github/workflows/deploy-docs-prod.yaml index b7b11ae178..df39fff357 100644 --- a/.github/workflows/deploy-docs-prod.yaml +++ b/.github/workflows/deploy-docs-prod.yaml @@ -59,7 +59,7 @@ jobs: cat .env # Only execute the prod notebook if .env file is created - - name: Execute prod Intro for Model Developers notebook + - name: Execute prod ValidMind for model development series if: ${{ steps.create_env.outcome == 'success' }} uses: ./.github/actions/prod-notebook id: execute-prod-notebook diff --git a/.github/workflows/deploy-docs-staging.yaml b/.github/workflows/deploy-docs-staging.yaml index c5ddf48fd3..c67d75cf04 100644 --- a/.github/workflows/deploy-docs-staging.yaml +++ b/.github/workflows/deploy-docs-staging.yaml @@ -49,7 +49,7 @@ jobs: cat .env # Only execute the staging notebook if .env file is created - - name: Execute staging Intro for Model Developers notebook + - name: Execute staging ValidMind for model development series if: ${{ steps.create_env.outcome == 'success' }} uses: ./.github/actions/staging-notebook id: execute-staging-notebook diff --git a/.github/workflows/validate-docs-site.yaml b/.github/workflows/validate-docs-site.yaml index f3f73ffab1..13e500f8c9 100644 --- a/.github/workflows/validate-docs-site.yaml +++ b/.github/workflows/validate-docs-site.yaml @@ -72,7 +72,7 @@ jobs: cat .env # Only execute the demo notebook if .env file is created - - name: Execute demo Intro for Model Developers notebook + - name: Execute demo ValidMind for model development series if: ${{ vars.ENABLE_DEMO_NOTEBOOK == 'true' && steps.create_env.outcome == 'success' }} uses: ./.github/actions/demo-notebook id: execute-demo-notebook From 4e9b299635e0b4f01542ab2115c4147a48638082 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 25 Mar 2025 14:08:33 -0700 Subject: [PATCH 53/77] Removing the old notebook execution from Make --- site/Makefile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/site/Makefile b/site/Makefile index da1316528b..a7d29ec780 100644 --- a/site/Makefile +++ b/site/Makefile @@ -7,7 +7,7 @@ DEST_DIR_PYTHON := validmind DEST_DIR_TESTS := tests GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD) PROFILE := exe-demo -FILE_PATH := notebooks/tutorials/intro_for_model_developers_EXECUTED.ipynb +FILE_PATH := notebooks/EXECUTED/model_development # Define .PHONY target for help section .PHONY: help clean clone notebooks python-docs docs-site deploy-demo-branch delete-demo-branch deploy-prod deploy-staging release-notes execute docker-site docker-site-lite docker-build docker-serve @@ -58,8 +58,6 @@ notebooks: @echo "Duplicating all files from notebooks/tutorials/model_development/ for execution" @mkdir -p notebooks/EXECUTED/model_development/ @cp -r notebooks/tutorials/model_development/* notebooks/EXECUTED/model_development/ - @echo "Duplicating notebooks/tutorials/intro_for_model_developers.ipynb for execution" - @cp notebooks/tutorials/intro_for_model_developers.ipynb notebooks/tutorials/intro_for_model_developers_EXECUTED.ipynb @echo "Copying LICENSE into notebooks ..." @cp -r $(SRC_DIR)/LICENSE $(DEST_DIR_NB)/ @rm -rf $(DEST_DIR_NB)/code_sharing @@ -148,8 +146,8 @@ yearly-releases: quarto preview # Execute a Jupyter Notebook -# Will default to `exe-demo` profile & the `notebooks/tutorials/intro_for_model_developers_EXECUTED.ipynb` if no input provided -# To override: make execute PROFILE=select-profile FILE_PATH=notebooks/notebook-path-here.ipynb +# Will default to `exe-demo` profile & the `notebooks/EXECUTED/model_development` if no input provided +# To override: make execute PROFILE=select-profile FILE_PATH=notebooks/example_directory/notebook-path-here.ipynb execute: quarto render --profile $(PROFILE) $(FILE_PATH) From a8f18475dacccb675f28d2f6cb11d232df856204 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Tue, 25 Mar 2025 14:36:55 -0700 Subject: [PATCH 54/77] Tweak --- site/developer/validmind-library.qmd | 2 -- 1 file changed, 2 deletions(-) diff --git a/site/developer/validmind-library.qmd b/site/developer/validmind-library.qmd index 8cc5b7e984..cc62afdd0f 100644 --- a/site/developer/validmind-library.qmd +++ b/site/developer/validmind-library.qmd @@ -19,8 +19,6 @@ listing: - path: https://www.youtube.com/watch?v=rIR8Mql7eGs title: "{{< fa brands youtube >}} {{< var vm.product >}} QuickStart" description: "Watch the walkthrough on YouTube: `https://www.youtube.com/watch?v=rIR8Mql7eGs`" - # - ../notebooks/tutorials/intro_for_model_developers.ipynb -# - developer-getting-started-video.qmd - id: model-development type: grid grid-columns: 2 From ec26ae186f31c9e1e3ff75c5a39ec7c1f1519b6a Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 27 Mar 2025 08:56:49 -0700 Subject: [PATCH 55/77] Update site/training/developer-fundamentals/implementing-custom-tests.qmd Co-authored-by: Nik Richers --- .../developer-fundamentals/implementing-custom-tests.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index df6f96a19c..71365619ba 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -578,7 +578,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -# Configure documentation template {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# Configure documentation templates {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} From e166b6a1476c33edf0ad5d6161b73c79e5c3028f Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Mon, 7 Apr 2025 14:10:49 -0700 Subject: [PATCH 56/77] Updated validator training paths --- site/training/program/learning-paths.qmd | 31 +++++++++++++----------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 8be93e9b76..1be55fb45b 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -97,17 +97,20 @@ Learn how to use {{< var vm.product >}} as a **validator** to generate validatio #### Module 1
Using {{< var vm.product >}} for model validation - Install the {{< var validmind.developer >}} in your environment -- Connect to the champion model in the {{< var validmind.platform >}} +- Connect to a champion model as a validator - Preview the model's validation report template -- Review model documentation in the {{< var validmind.platform >}} +- Review submitted model documentation + ::: ::: {.w-50-ns} -#### Module 2
Developing potential challenger models +#### Module 2
Running data quality tests + +- Identify relevant tests to run from {{< var vm.product >}}'s test vault +- Initialize datasets for use with the {{< var validmind.developer >}} +- Run and log out-of-the-box tests on your datasets +- Insert test results into your model’s validation report -- Set up two challenger models as a basis for your testing -- Initialize datasets & models for use with the {{< var validmind.developer >}} -- Leverage {{< var vm.product >}}'s flexible prompting to guide text generation & insights from testing ::: :::: @@ -115,21 +118,21 @@ Learn how to use {{< var vm.product >}} as a **validator** to generate validatio :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Learning to run validation tests +#### Module 3
Developing challenger models + +- Initialize models for use with the {{< var validmind.developer >}} +- Run and log out-of-the box and custom tests for your models +- Use the results of tests to log model findings -- Identify relevant tests to run from {{< var vm.product >}}'s test vault -- Run and log out-of-the-box and custom tests -- Adjust a {{< var vm.product >}} test for your use case -- Re-run tests completed by the model development team ::: ::: {.w-50-ns} #### Module 4
Finalizing validation reports -- Insert test results as evidence into your validation report -- Work with model findings -- Assess the compliance of the champion model +- Make qualitative edits to your validation report - Submit your validation report for approval +- Track finding resolution and other updates to your model + ::: :::: From bc5d1ccd9bb4f326da4b729c89009eb7b7858d43 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:52:12 -0700 Subject: [PATCH 57/77] Releases into drop-down --- site/_quarto.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/_quarto.yml b/site/_quarto.yml index 98d3720958..d319e67e9d 100644 --- a/site/_quarto.yml +++ b/site/_quarto.yml @@ -92,6 +92,8 @@ website: file: guide/guides.qmd - text: "{{< fa envelope-open-text >}} Support" file: support/support.qmd + - text: "{{< fa bullhorn >}} Releases" + file: releases/all-releases.qmd - text: "---" - text: "{{< fa cube >}} Python Library" - text: "{{< fa code >}} {{< var validmind.developer >}}" From 21b9ee4a6058740af0f2594f81415306fedd899b Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:55:42 -0700 Subject: [PATCH 58/77] Tweaking copying of notebooks to execute --- site/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/site/Makefile b/site/Makefile index 70aa5d70bc..9357064dd0 100644 --- a/site/Makefile +++ b/site/Makefile @@ -137,6 +137,7 @@ notebooks: @cp -r $(SRC_DIR)/notebooks/. $(DEST_DIR_NB)/ @echo "Duplicating all files from notebooks/tutorials/model_development/ for execution" @mkdir -p notebooks/EXECUTED/model_development/ + @rm -rf notebooks/EXECUTED/model_development/ @cp -r notebooks/tutorials/model_development/* notebooks/EXECUTED/model_development/ @echo "Copying LICENSE into notebooks ..." @cp -r $(SRC_DIR)/LICENSE $(DEST_DIR_NB)/ From fffe9e025ad7efec29025be3b981319e89140409 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:56:52 -0700 Subject: [PATCH 59/77] Oops, reversed the steps --- site/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/Makefile b/site/Makefile index 9357064dd0..c60e5a9e6a 100644 --- a/site/Makefile +++ b/site/Makefile @@ -136,8 +136,8 @@ notebooks: @rm -rf $(DEST_DIR_NB)/ && mkdir -p $(DEST_DIR_NB) @cp -r $(SRC_DIR)/notebooks/. $(DEST_DIR_NB)/ @echo "Duplicating all files from notebooks/tutorials/model_development/ for execution" - @mkdir -p notebooks/EXECUTED/model_development/ @rm -rf notebooks/EXECUTED/model_development/ + @mkdir -p notebooks/EXECUTED/model_development/ @cp -r notebooks/tutorials/model_development/* notebooks/EXECUTED/model_development/ @echo "Copying LICENSE into notebooks ..." @cp -r $(SRC_DIR)/LICENSE $(DEST_DIR_NB)/ From 41f75e8d722ea3ae61c8e0dfbb675de890d08d56 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 13:58:27 -0700 Subject: [PATCH 60/77] Hm --- site/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/Makefile b/site/Makefile index c60e5a9e6a..31ed939b9d 100644 --- a/site/Makefile +++ b/site/Makefile @@ -43,6 +43,7 @@ clean: @echo "\nDeleting copies of files sourced from other repos ..." rm -rf $(SRC_DIR) rm -rf $(SRC_ROOT) + rm -rf notebooks/EXECUTED/model_development/ # Prompt for a branch or release tag and clone the repository clone: @@ -136,7 +137,6 @@ notebooks: @rm -rf $(DEST_DIR_NB)/ && mkdir -p $(DEST_DIR_NB) @cp -r $(SRC_DIR)/notebooks/. $(DEST_DIR_NB)/ @echo "Duplicating all files from notebooks/tutorials/model_development/ for execution" - @rm -rf notebooks/EXECUTED/model_development/ @mkdir -p notebooks/EXECUTED/model_development/ @cp -r notebooks/tutorials/model_development/* notebooks/EXECUTED/model_development/ @echo "Copying LICENSE into notebooks ..." From c167315336fae89579d5d8b7baa52f0b6d136a96 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 14:04:11 -0700 Subject: [PATCH 61/77] Manually copying development notebooks for execution for now --- ...lidmind.ipynb => 1-set_up_validmind.ipynb} | 71 +++++---- ...pynb => 2-start_development_process.ipynb} | 144 +++++++++++------- ...s.ipynb => 3-integrate_custom_tests.ipynb} | 89 +++++------ ...=> 4-finalize_testing_documentation.ipynb} | 70 ++++----- .../model_development/my_tests_directory.png | Bin 44368 -> 0 bytes 5 files changed, 217 insertions(+), 157 deletions(-) rename site/notebooks/EXECUTED/model_development/{101-set_up_validmind.ipynb => 1-set_up_validmind.ipynb} (90%) rename site/notebooks/EXECUTED/model_development/{102-start_development_process.ipynb => 2-start_development_process.ipynb} (87%) rename site/notebooks/EXECUTED/model_development/{103-integrate_custom_tests.ipynb => 3-integrate_custom_tests.ipynb} (92%) rename site/notebooks/EXECUTED/model_development/{104-finalize_testing_documentation.ipynb => 4-finalize_testing_documentation.ipynb} (94%) delete mode 100644 site/notebooks/EXECUTED/model_development/my_tests_directory.png diff --git a/site/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb b/site/notebooks/EXECUTED/model_development/1-set_up_validmind.ipynb similarity index 90% rename from site/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb rename to site/notebooks/EXECUTED/model_development/1-set_up_validmind.ipynb index 9a5936350c..46a002a83d 100644 --- a/site/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb +++ b/site/notebooks/EXECUTED/model_development/1-set_up_validmind.ipynb @@ -2,10 +2,10 @@ "cells": [ { "cell_type": "markdown", - "id": "97710f2a", + "id": "b6fa2ac0", "metadata": {}, "source": [ - "# ValidMind for model development — 101 Set up the ValidMind Library\n", + "# ValidMind for model development 1 — Set up the ValidMind Library\n", "\n", "Learn how to use ValidMind for your end-to-end model documentation process based on common model development scenarios with our series of four introductory notebooks. This first notebook walks you through the initial setup of the ValidMind Library.\n", "\n", @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "d3bb0ff8", + "id": "fe2e0eca", "metadata": {}, "source": [ "::: {.content-hidden when-format=\"html\"}\n", @@ -30,6 +30,7 @@ " - [Get your code snippet](#toc3_2_1_) \n", "- [Getting to know ValidMind](#toc4_) \n", " - [Preview the documentation template](#toc4_1_) \n", + " - [View model documentation in the ValidMind Platform](#toc4_1_1_) \n", " - [Explore available tests](#toc4_2_) \n", "- [Upgrade ValidMind](#toc5_) \n", "- [In summary](#toc6_) \n", @@ -49,7 +50,7 @@ }, { "cell_type": "markdown", - "id": "d78e3887", + "id": "814da22c", "metadata": {}, "source": [ "
\n", @@ -66,7 +67,7 @@ }, { "cell_type": "markdown", - "id": "f40a5e0a", + "id": "4b966a95", "metadata": {}, "source": [ "\n", @@ -80,7 +81,7 @@ }, { "cell_type": "markdown", - "id": "12af6ba2", + "id": "87936431", "metadata": {}, "source": [ "\n", @@ -94,14 +95,14 @@ }, { "cell_type": "markdown", - "id": "5f9cc87c", + "id": "cb9f8dc1", "metadata": {}, "source": [ "\n", "\n", "### New to ValidMind?\n", "\n", - "If you haven't already seen our documentation on the [ValidMind Library](https://docs.validmind.ai/developer/validmind-library.html), we recommend you begin by exploring the available resources in this section. There, you can learn more about documenting models, find code samples, or read our developer reference.\n", + "If you haven't already seen our documentation on the [ValidMind Library](https://docs.validmind.ai/developer/validmind-library.html), we recommend you begin by exploring the available resources in this section. There, you can learn more about documenting models and running tests, as well as find code samples and our Python Library API reference.\n", "\n", "

For access to all features available in this notebook, create a free ValidMind account.\n", "

\n", @@ -110,7 +111,7 @@ }, { "cell_type": "markdown", - "id": "31c5cde0", + "id": "a0d16aca", "metadata": {}, "source": [ "\n", @@ -145,7 +146,7 @@ }, { "cell_type": "markdown", - "id": "1c06378f", + "id": "215d62a7", "metadata": {}, "source": [ "\n", @@ -173,7 +174,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8883bbc3", + "id": "827eb6bd", "metadata": {}, "outputs": [], "source": [ @@ -182,7 +183,7 @@ }, { "cell_type": "markdown", - "id": "780b6b39", + "id": "5e37f9fe", "metadata": {}, "source": [ "\n", @@ -211,7 +212,7 @@ }, { "cell_type": "markdown", - "id": "d00f6f07", + "id": "48eb92b3", "metadata": {}, "source": [ " - Documentation template: `Binary classification`\n", @@ -233,7 +234,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5f22e91d", + "id": "a58d951f", "metadata": {}, "outputs": [], "source": [ @@ -256,7 +257,7 @@ }, { "cell_type": "markdown", - "id": "c3186121", + "id": "99cf2df8", "metadata": {}, "source": [ "\n", @@ -280,13 +281,31 @@ { "cell_type": "code", "execution_count": null, - "id": "32ab4cac", + "id": "819a40bc", "metadata": {}, "outputs": [], "source": [ "vm.preview_template()" ] }, + { + "cell_type": "markdown", + "id": "cf63d701", + "metadata": {}, + "source": [ + "\n", + "\n", + "#### View model documentation in the ValidMind Platform\n", + "\n", + "Next, let's head to the ValidMind Platform to see the template in action:\n", + "\n", + "1. In a browser, [log in to ValidMind](https://docs.validmind.ai/guide/configuration/log-in-to-validmind.html).\n", + "\n", + "2. In the left sidebar, navigate to **Inventory** and select the model you registered for this \"ValidMind for model development\" series of notebooks.\n", + "\n", + "3. Click on the **Documentation** for your model and note how the structure of the documentation matches our preview above." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -303,7 +322,7 @@ { "cell_type": "code", "execution_count": null, - "id": "acf76128", + "id": "7ccc7776", "metadata": {}, "outputs": [], "source": [ @@ -326,7 +345,7 @@ { "cell_type": "code", "execution_count": null, - "id": "95bede03", + "id": "f5d3216d", "metadata": {}, "outputs": [], "source": [ @@ -347,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "6a7bf101", + "id": "9b8aa1cc", "metadata": {}, "source": [ "You may need to restart your kernel after running the upgrade package for changes to be applied." @@ -355,7 +374,7 @@ }, { "cell_type": "markdown", - "id": "207875f2", + "id": "65ece5fb", "metadata": {}, "source": [ "\n", @@ -364,15 +383,15 @@ "\n", "In this first notebook, you learned how to:\n", "\n", - "- [ ] Register a model within the ValidMind Platform\n", - "- [ ] Install and initialize the ValidMind Library\n", - "- [ ] Preview the documentation template for your model\n", - "- [ ] Explore the available tests offered by the ValidMind Library" + "- [x] Register a model within the ValidMind Platform\n", + "- [x] Install and initialize the ValidMind Library\n", + "- [x] Preview the documentation template for your model\n", + "- [x] Explore the available tests offered by the ValidMind Library" ] }, { "cell_type": "markdown", - "id": "29781eb4", + "id": "a262f940", "metadata": {}, "source": [ "\n", @@ -388,7 +407,7 @@ "\n", "### Start the model development process\n", "\n", - "Now that the ValidMind Library is connected to your model in the ValidMind Library with the correct template applied, we can go ahead and start the model development process: **[102 Start the model development process](102-start_development_process.ipynb)**" + "Now that the ValidMind Library is connected to your model in the ValidMind Library with the correct template applied, we can go ahead and start the model development process: **[2 — Start the model development process](2-start_development_process.ipynb)**" ] } ], diff --git a/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb b/site/notebooks/EXECUTED/model_development/2-start_development_process.ipynb similarity index 87% rename from site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb rename to site/notebooks/EXECUTED/model_development/2-start_development_process.ipynb index f68581e70c..e886dc7ff4 100644 --- a/site/notebooks/EXECUTED/model_development/102-start_development_process.ipynb +++ b/site/notebooks/EXECUTED/model_development/2-start_development_process.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ValidMind for model development — 102 Start the model development process\n", + "# ValidMind for model development 2 — Start the model development process\n", "\n", "Learn how to use ValidMind for your end-to-end model documentation process with our series of four introductory notebooks. In this second notebook, you'll run tests and investigate results, then add the results or evidence to your documentation.\n", "\n", @@ -28,7 +28,7 @@ "- [Running tests](#toc3_) \n", " - [Run tabular data tests](#toc3_1_) \n", " - [Utilize test output](#toc3_2_) \n", - "- [Documenting results](#toc4_) \n", + "- [Documenting test results](#toc4_) \n", " - [Run and log multiple tests](#toc4_1_) \n", " - [Run and log an individual test](#toc4_2_) \n", " - [Add individual test results to model documentation](#toc4_2_1_) \n", @@ -62,12 +62,12 @@ "\n", "In order to log test results or evidence to your model documentation with this notebook, you'll need to first have:\n", "\n", - "- [ ] Registered a model within the ValidMind Platform with a predefined documentation template\n", - "- [ ] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", + "- [x] Registered a model within the ValidMind Platform with a predefined documentation template\n", + "- [x] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", "\n", "
Need help with the above steps?\n", "

\n", - "Refer to the first notebook in this series: 101 Set up ValidMind
\n" + "Refer to the first notebook in this series: 1 — Set up the ValidMind Library
" ] }, { @@ -165,7 +165,10 @@ "\n", "Next, let's say we want to do some data quality assessments by running a few individual tests.\n", "\n", - "Use the [`vm.tests.list_tests()` function](https://docs.validmind.ai/validmind/validmind/tests.html#list_tests) introduced by the first notebook in this series in combination with [`vm.tests.list_tags()`](https://docs.validmind.ai/validmind/validmind/tests.html#list_tags) and [`vm.tests.list_tasks()`](https://docs.validmind.ai/validmind/validmind/tests.html#list_tasks) to find which prebuilt tests are relevant for data quality assessment:\n" + "Use the [`vm.tests.list_tests()` function](https://docs.validmind.ai/validmind/validmind/tests.html#list_tests) introduced by the first notebook in this series in combination with [`vm.tests.list_tags()`](https://docs.validmind.ai/validmind/validmind/tests.html#list_tags) and [`vm.tests.list_tasks()`](https://docs.validmind.ai/validmind/validmind/tests.html#list_tasks) to find which prebuilt tests are relevant for data quality assessment:\n", + "\n", + "- **`tasks`** represent the kind of modeling task associated with a test. Here we'll focus on `classification` tasks.\n", + "- **`tags`** are free-form descriptions providing more details about the test, for example, what category the test falls into. Here we'll focus on the `data_quality` tag.\n" ] }, { @@ -174,8 +177,8 @@ "metadata": {}, "outputs": [], "source": [ - "# Get the list of available tags\n", - "sorted(vm.tests.list_tags())" + "# Get the list of available task types\n", + "sorted(vm.tests.list_tasks())" ] }, { @@ -184,8 +187,8 @@ "metadata": {}, "outputs": [], "source": [ - "# Get the list of available task types\n", - "sorted(vm.tests.list_tasks())" + "# Get the list of available tags\n", + "sorted(vm.tests.list_tags())" ] }, { @@ -206,6 +209,15 @@ "vm.tests.list_tests(task=\"classification\", tags=[\"tabular_data\", \"data_quality\"])" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
Want to learn more about navigating ValidMind tests?\n", + "

\n", + "Refer to our notebook outlining the utilities available for viewing and understanding available ValidMind tests: Explore tests
" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -250,11 +262,7 @@ "You run individual tests by calling [the `run_test` function](https://docs.validmind.ai/validmind/validmind/tests.html#run_test) provided by the `validmind.tests` module. For the examples below, we'll pass in the following arguments:\n", "\n", "- **`test_id`** — The ID of the test to run, as seen in the `ID` column when you run `list_tests`. \n", - "- **`params`** — A dictionary of parameters for the test. These will override any `default_params` set in the test definition. \n", - "\n", - "
Want to learn more about ValidMind tests?\n", - "

\n", - "Refer to our notebook that includes code samples and usage of key functions: Explore tests
" + "- **`params`** — A dictionary of parameters for the test. These will override any `default_params` set in the test definition. " ] }, { @@ -384,7 +392,9 @@ "\n", "### Utilize test output\n", "\n", - "You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. Below we demonstrate how to retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling.\n", + "You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features. Removing highly correlated features helps make the model simpler, more stable, and easier to understand.\n", + "\n", + "Below we demonstrate how to retrieve the list of features with the highest correlation coefficients and use them to reduce the final list of features for modeling.\n", "\n", "First, we'll run [`validmind.data_validation.HighPearsonCorrelation`](https://docs.validmind.ai/tests/data_validation/HighPearsonCorrelation.html) with the `balanced_raw_dataset` we initialized previously as input as is for comparison with later runs:" ] @@ -408,6 +418,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "The output above shows that the test did not pass according to the value we set for `max_threshold`.\n", + "\n", "`corr_result` is an object of type `TestResult`. We can inspect the result object to see what the test has produced:" ] }, @@ -510,7 +522,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Re-running the test with the reduced feature set should pass the test:\n" + "Re-running the test with the reduced feature set should pass the test:" ] }, { @@ -553,9 +565,9 @@ "source": [ "\n", "\n", - "## Documenting results\n", + "## Documenting test results\n", "\n", - "We've now done some analysis on two different datasets, and we should be able to document why certain things were done to the raw data with testing to support it.\n", + "Now that we've done some analysis on two different datasets, we can use ValidMind to easily document why certain things were done to our raw data with testing to support it.\n", "\n", "Every test result returned by the `run_test()` function has a [`.log()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestResult.log) that can be used to send the test results to the ValidMind Platform:\n", "\n", @@ -622,7 +634,7 @@ "\n", "### Run and log an individual test\n", "\n", - "Next, we'll use the previously initialized `vm_balanced_raw_dataset` (that had a highly correlated `Age` column) as input to run an individual test, then log the result to the ValidMind Platform.\n", + "Next, we'll use the previously initialized `vm_balanced_raw_dataset` (that still has a highly correlated `Age` column) as input to run an individual test, then log the result to the ValidMind Platform.\n", "\n", "When running individual tests, **you can use a custom `result_id` to tag the individual result with a unique identifier:** \n", "\n", @@ -667,7 +679,7 @@ "\n", "2. In the left sidebar that appears for your model, click **Documentation**.\n", "\n", - "3. Locate the Data Preparation section and click on **2.3 Correlations and Interactions** to expand that section.\n", + "3. Locate the Data Preparation section and click on **2.3. Correlations and Interactions** to expand that section.\n", "\n", "4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block.\n", "\n", @@ -686,7 +698,7 @@ "\n", "6. Finally, click **Insert 1 Test Result to Document** to add the test result to the documentation.\n", "\n", - " Confirm that the individual results for the high correlation test has been correctly inserted into section **2.3 Correlations and Interactions** of the documentation.\n", + " Confirm that the individual results for the high correlation test has been correctly inserted into section **2.3. Correlations and Interactions** of the documentation.\n", "\n", "7. Finalize the documentation by editing the test result's description block to explain the changes you made to the raw data and the reasons behind them as shown in the screenshot below:\n", "\n", @@ -756,7 +768,10 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Using `GridSearchCV`, we'll find the best-performing hyperparameters or settings and save them:" + "We'll split our preprocessed dataset into training and testing, to help assess how well the model generalizes to unseen data:\n", + "\n", + "- We start by dividing our `balanced_raw_no_age_df` dataset into training and test subsets using `train_test_split`, with 80% of the data allocated to training (`train_df`) and 20% to testing (`test_df`).\n", + "- From each subset, we separate the features (all columns except \"Exited\") into `X_train` and `X_test`, and the target column (\"Exited\") into `y_train` and `y_test`." ] }, { @@ -765,18 +780,30 @@ "metadata": {}, "outputs": [], "source": [ - "from sklearn.linear_model import LogisticRegression\n", "from sklearn.model_selection import train_test_split\n", "\n", - "# Split the input and target variables\n", - "X = balanced_raw_no_age_df.drop(\"Exited\", axis=1)\n", - "y = balanced_raw_no_age_df[\"Exited\"]\n", - "X_train, X_test, y_train, y_test = train_test_split(\n", - " X,\n", - " y,\n", - " test_size=0.2,\n", - " random_state=42,\n", - ")\n", + "train_df, test_df = train_test_split(balanced_raw_no_age_df, test_size=0.20)\n", + "\n", + "X_train = train_df.drop(\"Exited\", axis=1)\n", + "y_train = train_df[\"Exited\"]\n", + "X_test = test_df.drop(\"Exited\", axis=1)\n", + "y_test = test_df[\"Exited\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then using `GridSearchCV`, we'll find the best-performing hyperparameters or settings and save them:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", "\n", "# Logistic Regression grid params\n", "log_reg_params = {\n", @@ -803,9 +830,7 @@ "\n", "### Initialize model evaluation objects\n", "\n", - "The last step for evaluating the model's performance is to initialize the ValidMind `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset.\n", - "\n", - "Use the `init_dataset` and [`init_model`](https://docs.validmind.ai/validmind/validmind.html#init_model) functions to initialize these objects:\n" + "The last step for evaluating the model's performance is to initialize the ValidMind `Dataset` and `Model` objects in preparation for assigning model predictions to each dataset." ] }, { @@ -814,11 +839,7 @@ "metadata": {}, "outputs": [], "source": [ - "train_df = X_train\n", - "train_df[\"Exited\"] = y_train\n", - "test_df = X_test\n", - "test_df[\"Exited\"] = y_test\n", - "\n", + "# Initialize the datasets into their own dataset objects\n", "vm_train_ds = vm.init_dataset(\n", " input_id=\"train_dataset_final\",\n", " dataset=train_df,\n", @@ -829,8 +850,24 @@ " input_id=\"test_dataset_final\",\n", " dataset=test_df,\n", " target_column=\"Exited\",\n", - ")\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You'll also need to initialize a ValidMind model object (`vm_model`) that can be passed to other functions for analysis and tests on the data for each of our three models.\n", "\n", + "You simply initialize this model object with [`vm.init_model()`](https://docs.validmind.ai/validmind/validmind.html#init_model):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "# Register the model\n", "vm_model = vm.init_model(log_reg, input_id=\"log_reg_model_v1\")" ] @@ -843,7 +880,10 @@ "\n", "### Assign predictions\n", "\n", - "Once the model has been registered you can assign model predictions to the training and test datasets. The [`assign_predictions()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#VMDataset.assign_predictions) from the `Dataset` object can link existing predictions to any number of models.\n", + "Once the model has been registered you can assign model predictions to the training and test datasets.\n", + "\n", + "- The [`assign_predictions()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#assign_predictions) from the `Dataset` object can link existing predictions to any number of models.\n", + "- This method links the model's class prediction values and probabilities to our `vm_train_ds` and `vm_test_ds` datasets.\n", "\n", "If no prediction values are passed, the method will compute predictions automatically:\n" ] @@ -910,14 +950,14 @@ "\n", "In this second notebook, you learned how to:\n", "\n", - "- [ ] Import a sample dataset\n", - "- [ ] Identify which tests you might want to run with ValidMind\n", - "- [ ] Initialize ValidMind datasets\n", - "- [ ] Run individual tests\n", - "- [ ] Utilize the output from tests you've run\n", - "- [ ] Log test results from sets of or individual tests as evidence to the ValidMind Platform\n", - "- [ ] Add supplementary individual test results to your documentation\n", - "- [ ] Assign model predictions to your ValidMind datasets\n" + "- [x] Import a sample dataset\n", + "- [x] Identify which tests you might want to run with ValidMind\n", + "- [x] Initialize ValidMind datasets\n", + "- [x] Run individual tests\n", + "- [x] Utilize the output from tests you've run\n", + "- [x] Log test results from sets of or individual tests as evidence to the ValidMind Platform\n", + "- [x] Add supplementary individual test results to your documentation\n", + "- [x] Assign model predictions to your ValidMind model objects\n" ] }, { @@ -937,7 +977,7 @@ "\n", "### Integrate custom tests\n", "\n", - "Now that you're familiar with the basics of using the ValidMind Library to run and log tests to provide evidence for your model documentation, let's learn how to incorporate your own custom tests into ValidMind: **[103 Integrate custom tests](103-integrate_custom_tests.ipynb)**" + "Now that you're familiar with the basics of using the ValidMind Library to run and log tests to provide evidence for your model documentation, let's learn how to incorporate your own custom tests into ValidMind: **[3 — Integrate custom tests](3-integrate_custom_tests.ipynb)**" ] } ], diff --git a/site/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb b/site/notebooks/EXECUTED/model_development/3-integrate_custom_tests.ipynb similarity index 92% rename from site/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb rename to site/notebooks/EXECUTED/model_development/3-integrate_custom_tests.ipynb index bcde58c62c..038f45c38a 100644 --- a/site/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb +++ b/site/notebooks/EXECUTED/model_development/3-integrate_custom_tests.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ValidMind for model development — 103 Integrate custom tests\n", + "# ValidMind for model development 3 — Integrate custom tests\n", "\n", "Learn how to use ValidMind for your end-to-end model documentation process with our series of four introductory notebooks. In this third notebook, supplement ValidMind tests with your own and include them as additional evidence in your documentation.\n", "\n", @@ -65,22 +65,20 @@ "\n", "## Prerequisites\n", "\n", - "In order to log test results or evidence to your model documentation with this notebook, you'll need to first have:\n", + "In order to integrate custom tests with your model documentation with this notebook, you'll need to first have:\n", "\n", - "- [ ] Registered a model within the ValidMind Platform with a predefined documentation template\n", - "- [ ] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", - "- [ ] Learned how to import and initialize datasets for use with ValidMind\n", - "- [ ] Understood the basics of how to run and log tests with ValidMind\n", - "- [ ] Inserted a test-driven block for the results of your `HighPearsonCorrelation:balanced_raw_dataset` test into your model's documentation\n", + "- [x] Registered a model within the ValidMind Platform with a predefined documentation template\n", + "- [x] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", + "- [x] Learned how to import and initialize datasets for use with ValidMind\n", + "- [x] Understood the basics of how to run and log tests with ValidMind\n", + "- [x] Inserted a test-driven block for the results of your `HighPearsonCorrelation:balanced_raw_dataset` test into your model's documentation\n", "\n", "
Need help with the above steps?\n", "

\n", "Refer to the first two notebooks in this series:\n", "\n", - "
    \n", - "
  1. 101 Set up ValidMind
  2. \n", - "
  3. 102 Start the model development process
  4. \n", - "
\n", + "- 1 — Set up the ValidMind Library\n", + "- 2 — Start the model development process\n", "\n", "
\n" ] @@ -93,7 +91,7 @@ "\n", "## Setting up\n", "\n", - "This section should be quite familiar to you — as we performed the same actions in the previous notebook, **[102 Start the model development process](102-start_development_process.ipynb)**." + "This section should be quite familiar to you — as we performed the same actions in the previous notebook, **[2 — Start the model development process](2-start_development_process.ipynb)**." ] }, { @@ -342,18 +340,24 @@ "metadata": {}, "outputs": [], "source": [ - "from sklearn.linear_model import LogisticRegression\n", + "# Split the processed dataset into train and test\n", "from sklearn.model_selection import train_test_split\n", "\n", - "# Split the input and target variables\n", - "X = balanced_raw_no_age_df.drop(\"Exited\", axis=1)\n", - "y = balanced_raw_no_age_df[\"Exited\"]\n", - "X_train, X_test, y_train, y_test = train_test_split(\n", - " X,\n", - " y,\n", - " test_size=0.2,\n", - " random_state=42,\n", - ")\n", + "train_df, test_df = train_test_split(balanced_raw_no_age_df, test_size=0.20)\n", + "\n", + "X_train = train_df.drop(\"Exited\", axis=1)\n", + "y_train = train_df[\"Exited\"]\n", + "X_test = test_df.drop(\"Exited\", axis=1)\n", + "y_test = test_df[\"Exited\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", "\n", "# Logistic Regression grid params\n", "log_reg_params = {\n", @@ -389,11 +393,6 @@ "metadata": {}, "outputs": [], "source": [ - "train_df = X_train\n", - "train_df[\"Exited\"] = y_train\n", - "test_df = X_test\n", - "test_df[\"Exited\"] = y_test\n", - "\n", "# Initialize the datasets into their own dataset objects\n", "vm_train_ds = vm.init_dataset(\n", " input_id=\"train_dataset_final\",\n", @@ -627,7 +626,7 @@ "- Since these are `VMDataset` or `VMModel` inputs, they have a special meaning.\n", "- When declaring a `dataset`, `model`, `datasets` or `models` argument in a custom test function, the ValidMind Library will expect these get passed as `inputs` to `run_test()` or `run_documentation_tests()`.\n", "\n", - "Re-running the confusion matrix with `normalize=True` looks like this:\n" + "Re-running the confusion matrix with `normalize=True` and our testing dataset looks like this:\n" ] }, { @@ -640,7 +639,7 @@ "result = vm.tests.run_test(\n", " \"my_custom_tests.ConfusionMatrix:test_dataset_normalized\",\n", " inputs={\"model\": vm_model, \"dataset\": vm_test_ds},\n", - " params={\"normalize\": True},\n", + " params={\"normalize\": True}\n", ")" ] }, @@ -652,7 +651,7 @@ "\n", "### Log the confusion matrix results\n", "\n", - "As we learned in **[102 Start the model development process](102-start_development_process.ipynb)** under **Documenting results** > **Run and log an individual tests**, you can log any result to the ValidMind Platform with the [`.log()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestResult.log) of the result object, allowing you to then add the result to the documentation.\n", + "As we learned in **[2 — Start the model development process](2-start_development_process.ipynb)** under **Documenting results** > **Run and log an individual tests**, you can log any result to the ValidMind Platform with the [`.log()` method](https://docs.validmind.ai/validmind/validmind/vm_models.html#TestResult.log) of the result object, allowing you to then add the result to the documentation.\n", "\n", "You can now do the same for the confusion matrix results:\n" ] @@ -735,9 +734,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "After running the command above, confirm that the new `my_tests` directory was created successfully:\n", + "After running the command above, confirm that a new `my_tests` directory was created successfully. For example:\n", "\n", - "\"Screenshot" + "```\n", + "~/notebooks/tutorials/model_development/my_tests/\n", + "```" ] }, { @@ -781,8 +782,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "- [ ] Confirm that the `save()` method saved the `confusion_matrix` function to a file named `ConfusionMatrix.py` in the `my_tests` folder.\n", - "- [ ] Note that the new file provides some context on the origin of the test, which is useful for traceability:\n", + "- [x] Confirm that the `save()` method saved the `confusion_matrix` function to a file named `ConfusionMatrix.py` in the `my_tests` folder.\n", + "- [x] Note that the new file provides some context on the origin of the test, which is useful for traceability:\n", "\n", " ```\n", " # Saved from __main__.confusion_matrix\n", @@ -790,7 +791,7 @@ " # New Test ID: .ConfusionMatrix\n", " ```\n", "\n", - "- [ ] Additionally, the new test function has been stripped off its decorator, as it now resides in a file that will be loaded by the test provider:\n", + "- [x] Additionally, the new test function has been stripped off its decorator, as it now resides in a file that will be loaded by the test provider:\n", "\n", " ```python\n", " def ConfusionMatrix(dataset, model, normalize=False):\n", @@ -808,7 +809,7 @@ "Now that your `my_tests` folder has a sample custom test, let's initialize a test provider that will tell the ValidMind Library where to find your custom tests:\n", "\n", "- ValidMind offers out-of-the-box test providers for local tests (tests in a folder) or a Github provider for tests in a Github repository.\n", - "- You can also create your own test provider by creating a class that has a [`load_test` method](https://docs.validmind.ai/validmind/validmind/tests.html#TestProvider.load_test) that takes a test ID and returns the test function matching that ID.\n", + "- You can also create your own test provider by creating a class that has a [`load_test` method](https://docs.validmind.ai/validmind/validmind/tests.html#load_test) that takes a test ID and returns the test function matching that ID.\n", "\n", "
Want to learn more about test providers?\n", "

\n", @@ -862,7 +863,7 @@ "- For tests that reside in a test provider directory, the test ID will be the `namespace` specified when registering the provider, followed by the path to the test file relative to the tests folder.\n", "- For example, the Confusion Matrix test we created earlier will have the test ID `my_test_provider.ConfusionMatrix`. You could organize the tests in subfolders, say `classification` and `regression`, and the test ID for the Confusion Matrix test would then be `my_test_provider.classification.ConfusionMatrix`.\n", "\n", - "Let's go ahead and re-run the confusion matrix test by using the test ID `my_test_provider.ConfusionMatrix`. This should load the test from the test provider and run it as before.\n" + "Let's go ahead and re-run the confusion matrix test with our testing dataset by using the test ID `my_test_provider.ConfusionMatrix`. This should load the test from the test provider and run it as before.\n" ] }, { @@ -905,7 +906,7 @@ "\n", "2. In the left sidebar that appears for your model, click **Documentation**.\n", "\n", - "3. Locate the Data Preparation section and click on **3.2 Model Evaluation** to expand that section.\n", + "3. Locate the Data Preparation section and click on **3.2. Model Evaluation** to expand that section.\n", "\n", "4. Hover under the Pearson Correlation Matrix content block until a horizontal dashed line with a **+** button appears, indicating that you can insert a new block.\n", "\n", @@ -922,7 +923,7 @@ "\n", "6. Finally, click **Insert 2 Test Results to Document** to add the test results to the documentation.\n", "\n", - " Confirm that the two individual results for the confusion matrix tests have been correctly inserted into section **3.2 Model Evaluation** of the documentation." + " Confirm that the two individual results for the confusion matrix tests have been correctly inserted into section **3.2. Model Evaluation** of the documentation." ] }, { @@ -935,10 +936,10 @@ "\n", "In this third notebook, you learned how to:\n", "\n", - "- [ ] Implement a custom inline test\n", - "- [ ] Run and log your custom inline tests\n", - "- [ ] Use external custom test providers\n", - "- [ ] Run and log tests from your custom test providers" + "- [x] Implement a custom inline test\n", + "- [x] Run and log your custom inline tests\n", + "- [x] Use external custom test providers\n", + "- [x] Run and log tests from your custom test providers" ] }, { @@ -958,7 +959,7 @@ "\n", "### Finalize testing and documentation\n", "\n", - "Now that you're proficient at using the ValidMind Library to run and log tests, let's put the last pieces in place to prepare our fully documented sample model for review: **[104 Finalize testing and documentation](104-finalize_testing_documentation.ipynb)**" + "Now that you're proficient at using the ValidMind Library to run and log tests, let's put the last pieces in place to prepare our fully documented sample model for review: **[4 — Finalize testing and documentation](4-finalize_testing_documentation.ipynb)**" ] } ], diff --git a/site/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.ipynb b/site/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.ipynb similarity index 94% rename from site/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.ipynb rename to site/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.ipynb index fd17733fcd..13a4f1e148 100644 --- a/site/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.ipynb +++ b/site/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.ipynb @@ -4,11 +4,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ValidMind for model development — 104 Finalize testing and documentation\n", + "# ValidMind for model development 4 — Finalize testing and documentation\n", "\n", "Learn how to use ValidMind for your end-to-end model documentation process with our introductory notebook series. In this last notebook, finalize the testing and documentation of your model and have a fully documented sample model ready for review.\n", "\n", - "We'll first use [`run_documentation_tests()`](https://docs.validmind.ai/validmind/validmind.html#run_documentation_tests) previously covered in **[102 Start the model development process](102-start_development_process.ipynb)** to ensure that your custom test results generated in **[103 Integrate custom tests](103-integrate_custom_tests.ipynb)** are included in your documentation. Then, we'll view and update the configuration for the entire model documentation template to suit your needs.\n" + "We'll first use [`run_documentation_tests()`](https://docs.validmind.ai/validmind/validmind.html#run_documentation_tests) previously covered in **[2 — Start the model development process](2-start_development_process.ipynb)** to ensure that your custom test results generated in **[3 — Integrate custom tests](3-integrate_custom_tests.ipynb)** are included in your documentation. Then, we'll view and update the configuration for the entire model documentation template to suit your needs.\n" ] }, { @@ -61,24 +61,22 @@ "\n", "In order to finalize the testing and documentation for your sample model, you'll need to first have:\n", "\n", - "- [ ] Registered a model within the ValidMind Platform with a predefined documentation template\n", - "- [ ] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", - "- [ ] Learned how to import and initialize datasets for use with ValidMind\n", - "- [ ] Learned how to run and log default and custom tests with ValidMind, including from external test providers\n", - "- [ ] Inserted test-driven blocks for the results of the following tests into your model's documentation:\n", - " - [ ] `HighPearsonCorrelation:balanced_raw_dataset`\n", - " - [ ] `my_test_provider.ConfusionMatrix`\n", - " - [ ] `my_custom_tests.ConfusionMatrix:test_dataset_normalized`\n", + "- [x] Registered a model within the ValidMind Platform with a predefined documentation template\n", + "- [x] Installed the ValidMind Library in your local environment, allowing you to access all its features\n", + "- [x] Learned how to import and initialize datasets for use with ValidMind\n", + "- [x] Learned how to run and log default and custom tests with ValidMind, including from external test providers\n", + "- [x] Inserted test-driven blocks for the results of the following tests into your model's documentation:\n", + " - [x] `HighPearsonCorrelation:balanced_raw_dataset`\n", + " - [x] `my_test_provider.ConfusionMatrix`\n", + " - [x] `my_custom_tests.ConfusionMatrix:test_dataset_normalized`\n", "\n", "
Need help with the above steps?\n", "

\n", "Refer to the first three notebooks in this series:\n", "\n", - "
    \n", - "
  1. 101 Set up ValidMind
  2. \n", - "
  3. 102 Start the model development process
  4. \n", - "
  5. 103 Integrate custom tests
  6. \n", - "
\n", + "- 1 — Set up the ValidMind Library\n", + "- 2 — Start the model development process\n", + "- 3 — Integrate custom tests\n", "\n", "
" ] @@ -148,7 +146,7 @@ "\n", "### Import sample dataset\n", "\n", - "Next, we'll import the same public [Bank Customer Churn Prediction](https://www.kaggle.com/datasets/shantanudhakadd/bank-customer-churn-prediction) dataset from Kaggle we used in the last notebook so that we have something to work with:" + "Next, we'll import the same public [Bank Customer Churn Prediction](https://www.kaggle.com/datasets/shantanudhakadd/bank-customer-churn-prediction) dataset from Kaggle we used in the last notebooks so that we have something to work with:" ] }, { @@ -340,18 +338,24 @@ "metadata": {}, "outputs": [], "source": [ - "from sklearn.linear_model import LogisticRegression\n", + "# Split the processed dataset into train and test\n", "from sklearn.model_selection import train_test_split\n", "\n", - "# Split the input and target variables\n", - "X = balanced_raw_no_age_df.drop(\"Exited\", axis=1)\n", - "y = balanced_raw_no_age_df[\"Exited\"]\n", - "X_train, X_test, y_train, y_test = train_test_split(\n", - " X,\n", - " y,\n", - " test_size=0.2,\n", - " random_state=42,\n", - ")\n", + "train_df, test_df = train_test_split(balanced_raw_no_age_df, test_size=0.20)\n", + "\n", + "X_train = train_df.drop(\"Exited\", axis=1)\n", + "y_train = train_df[\"Exited\"]\n", + "X_test = test_df.drop(\"Exited\", axis=1)\n", + "y_test = test_df[\"Exited\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", "\n", "# Logistic Regression grid params\n", "log_reg_params = {\n", @@ -387,11 +391,6 @@ "metadata": {}, "outputs": [], "source": [ - "train_df = X_train\n", - "train_df[\"Exited\"] = y_train\n", - "test_df = X_test\n", - "test_df[\"Exited\"] = y_test\n", - "\n", "# Initialize the datasets into their own dataset objects\n", "vm_train_ds = vm.init_dataset(\n", " input_id=\"train_dataset_final\",\n", @@ -638,7 +637,7 @@ "\n", "Let's run all tests in the Model Evaluation section of the documentation. Note that we have been running the sample custom confusion matrix with `normalize=True` to demonstrate the ability to provide custom parameters.\n", "\n", - "In the **Run the model evaluation tests** section of **[102 Start the model development process](102-start_development_process.ipynb)**, you learned how to assign inputs to individual tests with [`run_documentation_tests()`](https://docs.validmind.ai/validmind/validmind.html#run_documentation_tests). Assigning parameters is similar, you only need to provide assign a `params` dictionary to a given test ID, `my_test_provider.ConfusionMatrix` in this case.\n" + "In the **Run the model evaluation tests** section of **[2 — Start the model development process](2-start_development_process.ipynb)**, you learned how to assign inputs to individual tests with [`run_documentation_tests()`](https://docs.validmind.ai/validmind/validmind.html#run_documentation_tests). Assigning parameters is similar, you only need to provide assign a `params` dictionary to a given test ID, `my_test_provider.ConfusionMatrix` in this case.\n" ] }, { @@ -864,9 +863,9 @@ "\n", "In this final notebook, you learned how to:\n", "\n", - "- [ ] Refresh the connection from the ValidMind Library to the ValidMind Platform after you've inserted test-driven blocks to your documentation\n", - "- [ ] Include custom test results in your model documentation\n", - "- [ ] View and configure the configuration for your model documentation template\n", + "- [x] Refresh the connection from the ValidMind Library to the ValidMind Platform after you've inserted test-driven blocks to your documentation\n", + "- [x] Include custom test results in your model documentation\n", + "- [x] View and configure the configuration for your model documentation template\n", "\n", "With our ValidMind for model development series of notebooks, you learned how to document a model end-to-end with the ValidMind Library by running through some common scenarios in a typical model development setting:\n", "\n", @@ -929,6 +928,7 @@ "#### More how-to guides and code samples\n", "\n", "- [Explore available tests in detail](../../how_to/explore_tests.ipynb)\n", + "- [In-depth guide on running dataset based tests](../../how_to/run_tests/1_run_dataset_based_tests.ipynb)\n", "- [In-depth guide for implementing custom tests](../../code_samples/custom_tests/implement_custom_tests.ipynb)\n", "- [In-depth guide to external test providers](../../code_samples/custom_tests/integrate_external_test_providers.ipynb)\n", "- [Configuring dataset features](../../how_to/configure_dataset_features.ipynb)\n", diff --git a/site/notebooks/EXECUTED/model_development/my_tests_directory.png b/site/notebooks/EXECUTED/model_development/my_tests_directory.png deleted file mode 100644 index 47baffe80e5e0f1f05562126fc46c7150cc8ca3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44368 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 From ce655edaa68b409b799ea3d137134f9c8579fe76 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 14:49:21 -0700 Subject: [PATCH 62/77] Title style caps for title slides & paths --- .../2025/2025-apr-24/release-notes.qmd | 2 +- .../developer-fundamentals-register.qmd | 8 ++-- .../finalizing-model-documentation.qmd | 2 +- .../implementing-custom-tests.qmd | 2 +- .../learning-to-run-tests.qmd | 2 +- .../using-validmind-for-model-development.qmd | 2 +- site/training/program/learning-paths.qmd | 42 +++++++++---------- 7 files changed, 30 insertions(+), 30 deletions(-) diff --git a/site/releases/2025/2025-apr-24/release-notes.qmd b/site/releases/2025/2025-apr-24/release-notes.qmd index b08720adcc..d9b455b078 100644 --- a/site/releases/2025/2025-apr-24/release-notes.qmd +++ b/site/releases/2025/2025-apr-24/release-notes.qmd @@ -104,7 +104,7 @@ Labels: documentation, highlight :::: {.flex .flex-wrap .justify-around} -::: {.w-60-ns} +::: {.w-60-ns .pr2} We've completely redesigned our {{< var validmind.api >}} reference using the same tools we use to produce the rest of our product documentation, allowing us to more easily keep this information up to date and ensure its accuracy. ::: diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index fe9d5f50c2..689f2e4cf8 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -14,25 +14,25 @@ listing: image-align: left contents: - path: using-validmind-for-model-development.html - title: "Using {{< var vm.product >}} for model development" + title: "Using {{< var vm.product >}} for Model Development" subtitle: "Module 1" description: "{{< fa check >}} Register a model in the {{< var validmind.platform >}}
{{< fa check >}} Install the {{< var validmind.developer >}} in your environment
{{< fa check >}} Connect to your registered model
{{< fa check >}} Preview your model's documentation template" reading-time: "15" author: "{{< var vm.product >}}" - path: learning-to-run-tests.html - title: "Learning to run tests" + title: "Learning to Run Tests" subtitle: "Module 2" description: "{{< fa check >}} Identify relevant tests to run from {{< var vm.product >}}'s test vault
{{< fa check >}} Initialize datasets & models for use with the {{< var validmind.developer >}}
{{< fa check >}} Run and log out-of-the-box tests for new and existing models
{{< fa check >}} Insert test results into your model's documentation" reading-time: "45" author: "{{< var vm.product >}}" - path: implementing-custom-tests.html - title: "Implementing custom tests" + title: "Implementing Custom Tests" subtitle: "Module 3" description: "{{< fa check >}} Implement, run, and log custom inline and reusable tests
{{< fa check >}} Refresh your template to include inserted test-driven blocks
{{< fa check >}} Configure your template to include custom tests" reading-time: "45" author: "{{< var vm.product >}}" - path: finalizing-model-documentation.html - title: "Finalizing model documentation" + title: "Finalizing Model Documentation" subtitle: "Module 4" description: "{{< fa check >}} Refine your model documentation
{{< fa check >}} Submit your model documentation for approval
{{< fa check >}} Track changes and other updates to your model" reading-time: "20" diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 3196fb98fe..59588a3e76 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -1,5 +1,5 @@ --- -title: "Finalizing
model documentation" +title: "Finalizing
Model Documentation" subtitle: "Developer Fundamentals — Module 4 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true format: diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 71365619ba..ef6fccb578 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -1,5 +1,5 @@ --- -title: "Implementing
custom tests" +title: "Implementing
Custom Tests" subtitle: "Developer Fundamentals — Module 3 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true format: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index e551c56ef1..4ad5cd9f7b 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -1,5 +1,5 @@ --- -title: "Learning to
run tests" +title: "Learning to
Run Tests" subtitle: "Developer Fundamentals — Module 2 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true format: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 0781fd7068..4499931fb4 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -1,5 +1,5 @@ --- -title: "Using {{< var vm.product >}}
for model development" +title: "Using {{< var vm.product >}}
for Model Development" subtitle: "Developer Fundamentals — Module 1 of 4

_Click [{{< fa chevron-right >}}](#learning-objectives) to start_" lightbox: true format: diff --git a/site/training/program/learning-paths.qmd b/site/training/program/learning-paths.qmd index 1be55fb45b..4b9ec714cc 100644 --- a/site/training/program/learning-paths.qmd +++ b/site/training/program/learning-paths.qmd @@ -34,7 +34,7 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Using {{< var vm.product >}} for model development +#### Module 1
Using {{< var vm.product >}} for Model Development - Register a model in the {{< var validmind.platform >}} - Install the {{< var validmind.developer >}} in your environment @@ -43,7 +43,7 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc ::: ::: {.w-50-ns} -#### Module 2
Learning to run tests +#### Module 2
Learning to Run Tests - Identify relevant tests to run from {{< var vm.product >}}'s test vault - Initialize datasets & models for use with the {{< var validmind.developer >}} @@ -56,7 +56,7 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Implementing custom tests +#### Module 3
Implementing Custom Tests - Implement, run, and log custom inline and reusable tests - Refresh your template to include inserted test-driven blocks @@ -64,7 +64,7 @@ Learn how to use {{< var vm.product >}} as a **developer** to generate model doc ::: ::: {.w-50-ns} -#### Module 4
Finalizing model documentation +#### Module 4
Finalizing Model Documentation - Refine your model documentation - Submit your model documentation for approval @@ -94,7 +94,7 @@ Learn how to use {{< var vm.product >}} as a **validator** to generate validatio :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Using {{< var vm.product >}} for model validation +#### Module 1
Using {{< var vm.product >}} for Model Validation - Install the {{< var validmind.developer >}} in your environment - Connect to a champion model as a validator @@ -104,7 +104,7 @@ Learn how to use {{< var vm.product >}} as a **validator** to generate validatio ::: ::: {.w-50-ns} -#### Module 2
Running data quality tests +#### Module 2
Running Data Quality Tests - Identify relevant tests to run from {{< var vm.product >}}'s test vault - Initialize datasets for use with the {{< var validmind.developer >}} @@ -118,7 +118,7 @@ Learn how to use {{< var vm.product >}} as a **validator** to generate validatio :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Developing challenger models +#### Module 3
Developing Challenger Models - Initialize models for use with the {{< var validmind.developer >}} - Run and log out-of-the box and custom tests for your models @@ -127,7 +127,7 @@ Learn how to use {{< var vm.product >}} as a **validator** to generate validatio ::: ::: {.w-50-ns} -#### Module 4
Finalizing validation reports +#### Module 4
Finalizing Validation Reports - Make qualitative edits to your validation report - Submit your validation report for approval @@ -189,14 +189,14 @@ Learn how to use {{< var vm.product >}} as an **administrator** to onboard your :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
{{< var validmind.platform >}} onboarding +#### Module 1
{{< var validmind.platform >}} Onboarding - Setting up an organization - Inviting users via email ::: ::: {.w-50-ns} -#### Module 2
User management +#### Module 2
User Management - Managing roles, permissions, and groups - Mapping users to groups and roles @@ -207,14 +207,14 @@ Learn how to use {{< var vm.product >}} as an **administrator** to onboard your :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Lifecycle statuses & workflows +#### Module 3
Lifecycle Statuses & Workflows - Configuring statuses & workflows - Assigning users to workflows ::: ::: {.w-50-ns} -#### Module 4
Templates & inventory fields +#### Module 4
Templates & Inventory Fields - Customize templates - Configure model inventory fields @@ -269,7 +269,7 @@ Learn how to use {{< var vm.product >}} to manage the **ongoing monitoring** of :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Using {{< var vm.product >}} for ongoing monitoring +#### Module 1
Using {{< var vm.product >}} for Ongoing Monitoring - How monitoring integrates with model documentation - Enable monitoring for a model @@ -277,7 +277,7 @@ Learn how to use {{< var vm.product >}} to manage the **ongoing monitoring** of ::: ::: {.w-50-ns} -#### Module 2
Setting up monitoring +#### Module 2
Setting Up Monitoring - Load the reference and monitoring datasets - Load the production model @@ -290,7 +290,7 @@ Learn how to use {{< var vm.product >}} to manage the **ongoing monitoring** of :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Scheduling & execution +#### Module 3
Scheduling & Execution - Run the ongoing monitoring tests - Conduct target and feature drift testing @@ -358,7 +358,7 @@ Learn how to navigate the {{< var vm.product >}}'s key features and understand h :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
The {{< var vm.product >}} model inventory +#### Module 1
The {{< var vm.product >}} Model Inventory - Understand how the model inventory serves as your central hub for registered models - Learn to register new models with appropriate templates @@ -367,7 +367,7 @@ Learn how to navigate the {{< var vm.product >}}'s key features and understand h ::: ::: {.w-50-ns} -#### Module 2
Model documentation & testing +#### Module 2
Model Documentation & Testing - Navigate the documentation templates and structure - Explore the library of 250+ out-of-the-box tests @@ -380,7 +380,7 @@ Learn how to navigate the {{< var vm.product >}}'s key features and understand h :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 3
Validation & collaboration +#### Module 3
Validation & Collaboration - Create and manage validation reports - Learn to assess compliance and link evidence @@ -389,7 +389,7 @@ Learn how to navigate the {{< var vm.product >}}'s key features and understand h ::: ::: {.w-50-ns} -#### Module 4
Monitoring & governance +#### Module 4
Monitoring & Governance - Set up ongoing monitoring for production models - Track model performance and identify data drift @@ -447,14 +447,14 @@ Learn how to use {{< var vm.product >}}'s content features to enhance documentat :::: {.flex .flex-wrap .justify-around} ::: {.w-50-ns} -#### Module 1
Using text generation +#### Module 1
Using Text Generation - When to use GenAI to draft content - How to turn GenAI on and off ::: ::: {.w-50-ns} -#### Module 2
Enhancing content +#### Module 2
Enhancing Content - How to edit content - Write optional assessment prompts From dd2705b0564c67ecc22afa706f98597b6eed12d5 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 14:55:03 -0700 Subject: [PATCH 63/77] Next steps > In summary & checked boxes --- .../finalizing-model-documentation.qmd | 10 +++++----- .../implementing-custom-tests.qmd | 10 +++++----- .../developer-fundamentals/learning-to-run-tests.qmd | 12 ++++++------ .../using-validmind-for-model-development.qmd | 10 +++++----- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 59588a3e76..bd9edf8966 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -403,11 +403,11 @@ Finalizing model documentation ::: {.column width="70%" .bl .pl4 .f4} In this final module, you learned how to: -- [ ] View logged test result metadata -- [ ] Add or edit content blocks in your model documentation -- [ ] Submit your model documentation for approval -- [ ] Collaborate with other stakeholders on your model -- [ ] Track updates on your model +- [x] View logged test result metadata +- [x] Add or edit content blocks in your model documentation +- [x] Submit your model documentation for approval +- [x] Collaborate with other stakeholders on your model +- [x] Track updates on your model ::: :::: diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index ef6fccb578..0ebfe98595 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -639,7 +639,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} @@ -652,10 +652,10 @@ Implementing custom tests ::: {.column width="70%" .bl .pl4 .f3} In this third module, you learned how to: -- [ ] Implement, run, and log custom inline tests -- [ ] Register external test providers for reusable custom tests -- [ ] Include custom test results in your documentation template -- [ ] Configure your model's documentation template +- [x] Implement, run, and log custom inline tests +- [x] Register external test providers for reusable custom tests +- [x] Include custom test results in your documentation template +- [x] Configure your model's documentation template ::: :::: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 4ad5cd9f7b..ca3fe946ac 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -542,7 +542,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to -# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} @@ -555,11 +555,11 @@ Learning to run tests ::: {.column width="70%" .bl .pl4 .f3} In this second module, you learned how to: -- [ ] Identify relevant tests to run from {{< var vm.product >}}'s test repository -- [ ] Initialize {{< var vm.product >}} `Dataset` and `Model` objects -- [ ] Run out-of-the-box tests with the {{< var validmind.developer >}} -- [ ] Log test results to the {{< var validmind.platform >}} -- [ ] Insert logged test results into your model's documentation +- [x] Identify relevant tests to run from {{< var vm.product >}}'s test repository +- [x] Initialize {{< var vm.product >}} `Dataset` and `Model` objects +- [x] Run out-of-the-box tests with the {{< var validmind.developer >}} +- [x] Log test results to the {{< var validmind.platform >}} +- [x] Insert logged test results into your model's documentation ::: :::: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 4499931fb4..cf499d3f5a 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -337,7 +337,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. :::: -# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable} @@ -350,10 +350,10 @@ Using {{< var vm.product >}} for model development ::: {.column width="70%" .bl .pl4 .f3} In this first module, you learned how to: -- [ ] Register a model in the {{< var validmind.platform >}} -- [ ] Install the {{< var validmind.developer >}} in your environment -- [ ] Connect to your registered model in the {{< var validmind.platform >}} -- [ ] Preview and verify your model's documentation template +- [x] Register a model in the {{< var validmind.platform >}} +- [x] Install the {{< var validmind.developer >}} in your environment +- [x] Connect to your registered model in the {{< var validmind.platform >}} +- [x] Preview and verify your model's documentation template ::: :::: From f61dfa3e093de8d9c88efdc7054eae06269f7d44 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 16:03:17 -0700 Subject: [PATCH 64/77] Changing links to renumbered notebooks in slides --- .../implementing-custom-tests.qmd | 46 ++++++------- .../learning-to-run-tests.qmd | 66 +++++++++---------- .../using-validmind-for-model-development.qmd | 24 +++---- 3 files changed, 68 insertions(+), 68 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 0ebfe98595..2f344b536e 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -152,7 +152,7 @@ When you run these notebooks, they will generate a draft of model documentation ::: {.f5 .nt2 .pl2 .mb4}
-You will need to have already completed **101** and **102** during the first and second modules to proceed. +You will need to have already completed notebooks **1** and **2** during the first and second modules to proceed. ::: @@ -164,13 +164,13 @@ You will need to have already completed **101** and **102** during the first and Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: -1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1 — [Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/1-set_up_validmind.ipynb){target="_blank"}
+2 — [Start the model development process](/notebooks/tutorials/model_development/2-start_development_process.ipynb){target="_blank"}
+3 — [Integrate custom tests](/notebooks/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"}
+4 — [Finalize testing and documentation](/notebooks/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"}
::: {.f4 .pl3 .pr3 .embed} -In this third module, we'll run through the remaining two notebooks **103** in [section 1]{.smallcaps} and **104** in [section 2]{.smallcaps} together. +In this third module, we'll run through the remaining two notebooks **3** in [section 1]{.smallcaps} and **4** in [section 2]{.smallcaps} together. ::: ::: @@ -180,10 +180,10 @@ Let's continue our journey with **[section 1]{.smallcaps}** on the next page. {{ # [section 1]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} :::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} -**103 Integrate custom tests** +**3 — Integrate custom tests** ::: {.f5} This is the third notebook in our introductory series, which will walk you through how to implement different types of custom tests with {{< var vm.product >}}. @@ -241,7 +241,7 @@ Make sure you're logged in and have refreshed the module. :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#initialize-the-validmind-library" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#initialize-the-validmind-library" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Connect to your model** @@ -249,7 +249,7 @@ Make sure you're logged in and have refreshed the module. ::: {.f5} With your code snippet copied to your clipboard: -1. Open **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Open **3 — Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells under the **Setting up** section. ::: @@ -279,7 +279,7 @@ Let's implement a custom *inline test* that calculates the confusion matrix for ::: :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-a-confusion-matrix-plot" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#create-a-confusion-matrix-plot" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Create a custom test** @@ -287,7 +287,7 @@ Let's implement a custom *inline test* that calculates the confusion matrix for ::: {.f5} The [`@vm.test` wrapper](/validmind/validmind.qmd#test){target="_blank"} allows you to create a reusable test: -1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **3 — Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells in the following section under Implementing a custom inline test: **Create a confusion matrix plot** ::: @@ -296,7 +296,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#add-parameters-to-custom-tests" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#add-parameters-to-custom-tests" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Adjust your custom test** @@ -304,7 +304,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Custom tests can take parameters just like any other function: -1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **3 — Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells in the following sections under Implementing a custom inline test:
**Add parameters to custom tests** / **Pass parameters to custom tests** ::: @@ -313,7 +313,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#log-the-confusion-matrix-results" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#log-the-confusion-matrix-results" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Log your custom test** @@ -321,7 +321,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Use the [`.log()` method](/validmind/validmind/vm_models.qmd#log){target="_blank"} to send the results of your custom test to the {{< var validmind.platform >}}: -1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **3 — Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"} 2. Run the cell in the following section under Implementing a custom inline test: **Log the confusion matrix results** ::: @@ -354,7 +354,7 @@ Creating inline custom tests with a function is a great way to customize your mo ::: :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#create-custom-tests-folder" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#create-custom-tests-folder" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Create custom tests folder** @@ -362,7 +362,7 @@ Creating inline custom tests with a function is a great way to customize your mo ::: {.f5} Create a new folder that will contain reusable custom tests from your existing inline tests: -1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **3 — Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"} 2. Run the cell under the following Using external test providers section: **Create custom tests folder** ::: @@ -371,7 +371,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#save-an-inline-test" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#save-an-inline-test" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Save inline test** @@ -379,7 +379,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} The `@vm.test` decorator also includes a convenience method that allows you to save the test to a Python file at a specified path: -1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **3 — Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells under the Using external test providers section: **Save an inline test** ::: @@ -388,7 +388,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/103-integrate_custom_tests.html#register-a-local-test-provider" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#register-a-local-test-provider" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Register local test provider** @@ -396,7 +396,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Next, let's initialize a test provider that will tell the {{< var validmind.developer >}} where to find your saved custom tests: -1. Continue with **103 Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} +1. Continue with **3 — Integrate custom tests**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"} 2. Run all the cells under the Using external test providers section: **Register a local test provider** ::: @@ -416,7 +416,7 @@ Custom test results ::: ::: {.tc} -[Learn more ...](/notebooks/EXECUTED/model_development/103-integrate_custom_tests.ipynb#add-test-results-to-documentation){.button target="_blank"} +[Learn more ...](/notebooks/EXECUTED/model_development/3-integrate_custom_tests.ipynb#add-test-results-to-documentation){.button target="_blank"} ::: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index ca3fe946ac..ca276ff508 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -120,7 +120,7 @@ When you run these notebooks, they will generate a draft of model documentation ::: {.f5 .nt2 .pl2 .mb4}
-You will need to have already completed **101 Set up the {{< var validmind.developer >}}** during the first module to proceed. +You will need to have already completed **1 — Set up the {{< var validmind.developer >}}** during the first module to proceed. ::: ::: @@ -131,24 +131,24 @@ You will need to have already completed **101 Set up the {{< var validmind.devel Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: -1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1 — [Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/1-set_up_validmind.ipynb){target="_blank"}
+2 — [Start the model development process](/notebooks/tutorials/model_development/2-start_development_process.ipynb){target="_blank"}
+3 — [Integrate custom tests](/notebooks/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"}
+4 — [Finalize testing and documentation](/notebooks/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"}
::: {.f4 .pl3 .pr3 .embed} -In this second module, we'll run through **102 Start the model development process** together. +In this second module, we'll run through **2 — Start the model development process** together. ::: ::: :::: -Let's continue our journey with **102 Start the model development process** on the next page. {{< fa hand-point-right >}} +Let's continue our journey with **2 — Start the model development process** on the next page. {{< fa hand-point-right >}} -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html" background-interactive="yes" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html" background-interactive="yes" data-preload="yes"} :::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} -**102 Start the model development process** +**2 — Start the model development process** ::: {.f5} During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. @@ -229,7 +229,7 @@ Make sure you're logged in and have refreshed the module. :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-the-validmind-library" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#initialize-the-validmind-library" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Connect to your model** @@ -237,7 +237,7 @@ Make sure you're logged in and have refreshed the module. ::: {.f5} With your code snippet copied to your clipboard: -1. Open **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Open **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run the following cells in the Setting up section:
**Initialize the {{< var validmind.developer >}}** / **Import sample dataset**. ::: @@ -247,15 +247,15 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#identify-qualitative-tests" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#identify-qualitative-tests" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Identify qualitative tests** ::: {.f5} -Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/101-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run: +Next, we'll use the [`list_tests()` function](/notebooks/EXECUTED/model_development/1-set_up_validmind.ipynb#explore-available-tests){target="_blank"} to pinpoint tests we want to run: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Setting up section: **Identify qualitative tests** ::: @@ -264,7 +264,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-the-validmind-datasets" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#initialize-the-validmind-datasets" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Initialize {{< var vm.product >}} datasets** @@ -272,7 +272,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Then, we'll use the [`init_dataset()` function](/validmind/validmind.qmd#init_dataset){target="_blank"} to connect the sample data with a {{< var vm.product >}} `Dataset` object in preparation for running tests: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Setting up section: **Initialize the {{< var vm.product >}} datasets** ::: @@ -286,7 +286,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Run ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-tabular-data-tests" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#run-tabular-data-tests" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run tabular data tests** @@ -294,7 +294,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} You run individual tests by calling the [`run_test` function](/validmind/validmind/tests.qmd#run_test){target="_blank"} provided by the `validmind.tests` module: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Running tests section: **Run tabular data tests**. ::: @@ -303,7 +303,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#utilize-test-output" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#utilize-test-output" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Utilize test output** @@ -311,7 +311,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} You can utilize the output from a ValidMind test for further use, for example, if you want to remove highly correlated features: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Running tests section: **Utilize test output**. ::: @@ -348,7 +348,7 @@ Every test result returned by the `run_test()` function has a `.log()` method th ::: :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-multiple-tests" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#run-and-log-multiple-tests" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run & log multiple tests** @@ -356,7 +356,7 @@ Every test result returned by the `run_test()` function has a `.log()` method th ::: {.f5} The [`run_documentation_tests()` function](/validmind/validmind.qmd#run_documentation_tests){target="_blank"} allows you to run multiple tests at once and automatically log the results to your documentation: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Documenting results section: **Run and log multiple tests**. ::: @@ -364,7 +364,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-and-log-an-individual-test" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#run-and-log-an-individual-test" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run & log an individual test** @@ -372,7 +372,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Next, we'll run an individual test and log the result to the {{< var validmind.platform >}}: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run the following cell in the Running tests section: **Run and log an individual test**. ::: @@ -388,7 +388,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to Work with test results ::: {.tc} -[Learn more ...](/notebooks/EXECUTED/model_development/102-start_development_process.ipynb#add-individual-test-results-to-model-documentation){.button target="_blank"} +[Learn more ...](/notebooks/EXECUTED/model_development/2-start_development_process.ipynb#add-individual-test-results-to-model-documentation){.button target="_blank"} ::: @@ -473,7 +473,7 @@ In this next example, we’ll focus on running the tests within the Model Develo ::: :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#train-simple-logistic-regression-model" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#train-simple-logistic-regression-model" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Train your model** @@ -481,7 +481,7 @@ In this next example, we’ll focus on running the tests within the Model Develo ::: {.f5} Using {{< var vm.product >}} tests, we'll train a simple logistic regression model on our dataset and evaluate its performance: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run all the cells under the Model testing section: **Train simple logistic regression model**. ::: @@ -489,7 +489,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#initialize-model-evaluation-objects" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#initialize-model-evaluation-objects" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Initialize a model object** @@ -497,7 +497,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Use the `init_dataset` and [`init_model` functions](/validmind/validmind.qmd#init_model){target="_blank"} to initialize these objects: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Initialize model evaluation objects**. ::: @@ -506,7 +506,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#assign-predictions" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#assign-predictions" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Assign predictions** @@ -514,7 +514,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Use the [`assign_predictions()` method](/validmind/validmind/vm_models.qmd#assign_predictions){target="_blank"} from the `Dataset` object to link existing predictions to any number of models: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Assign predictions**. ::: @@ -523,7 +523,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/102-start_development_process.html#run-the-model-evaluation-tests" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#run-the-model-evaluation-tests" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Run the model evaluation tests** @@ -531,7 +531,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Finally, we'll run only the tests within the Model Development section of the model documentation: -1. Continue with **102 Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} +1. Continue with **2 — Start the model development process**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/2-start_development_process.ipynb){target="_blank"} 2. Run the cell under the following Model testing section: **Run the model evaluation tests**. ::: diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index cf499d3f5a..2e98e3b603 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -123,13 +123,13 @@ When you run these notebooks, they will generate a draft of model documentation Our series of four introductory notebooks for model developers include sample code and how-to information to get you started with {{< var vm.product >}}: -1. [101 Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} -2. [102 Start the model development process](/notebooks/tutorials/model_development/102-start_development_process.ipynb){target="_blank"} -3. [103 Integrate custom tests](/notebooks/tutorials/model_development/103-integrate_custom_tests.ipynb){target="_blank"} -4. [104 Finalize testing and documentation](/notebooks/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1 — [Set up the {{< var validmind.developer >}}](/notebooks/tutorials/model_development/1-set_up_validmind.ipynb){target="_blank"}
+2 — [Start the model development process](/notebooks/tutorials/model_development/2-start_development_process.ipynb){target="_blank"}
+3 — [Integrate custom tests](/notebooks/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"}
+4 — [Finalize testing and documentation](/notebooks/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"}
::: {.f4 .pl3 .pr3 .embed} -In this first module, we'll run through **101 Set up the {{< var validmind.developer >}}** together. +In this first module, we'll run through **1 — Set up the {{< var validmind.developer >}}** together. ::: ::: @@ -137,12 +137,12 @@ In this first module, we'll run through **101 Set up the {{< var validmind.devel
-Let's start our journey with **101 Set up the {{< var validmind.developer >}}** on the next page. {{< fa hand-point-right >}} +Let's start our journey with **1 — Set up the {{< var validmind.developer >}}** on the next page. {{< fa hand-point-right >}} -## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html" background-interactive="yes" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/1-set_up_validmind.html" background-interactive="yes" data-preload="yes"} :::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} -**101 Set up the {{< var validmind.developer >}}** +**1 — Set up the {{< var validmind.developer >}}** ::: {.f5} During this course, we'll run through these notebooks together, and at the end of your learning journey you'll have a fully documented sample model ready for review. @@ -280,7 +280,7 @@ Make sure you're logged in and have refreshed the page. :::: -## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/1-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Install & initialize the {{< var validmind.developer >}}** @@ -288,7 +288,7 @@ Make sure you're logged in and have refreshed the page. ::: {.f5} With your code snippet copied to your clipboard: -1. Open **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +1. Open **1 — Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/1-set_up_validmind.ipynb){target="_blank"} 2. Run all the cells in the sections under **Initializing the {{< var validmind.developer >}}**. ::: @@ -302,7 +302,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Preview model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {background-iframe="/notebooks/EXECUTED/model_development/101-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/1-set_up_validmind.html#preview-the-documentation-template" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Preview the documentation template** @@ -310,7 +310,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} You can preview your model's documentation template right from the {{< var validmind.developer >}}: -1. Continue with **101 Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/101-set_up_validmind.ipynb){target="_blank"} +1. Continue with **1 — Set up the {{< var validmind.developer >}}**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/1-set_up_validmind.ipynb){target="_blank"} 2. Run all the cells in the sections under **Getting to know ValidMind**. ::: From e17a488d530c984b695e57da68827aa085d63afe Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 16:09:01 -0700 Subject: [PATCH 65/77] Removing smallcaps from section titles --- .../implementing-custom-tests.qmd | 14 +++++++------- site/training/training-templates/course-slides.qmd | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 2f344b536e..5ed89f5f68 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -42,7 +42,7 @@ This third module is part of a four-part series: :::: {.columns .f3} ::: {.column width="50%" .mt4 .pr4} -### [introduction]{.smallcaps} +### Introduction - [{{< var vm.product >}} for model development](#validmind-for-model-development) ::: @@ -51,7 +51,7 @@ This third module is part of a four-part series: :::: {.columns .f3} ::: {.column width="50%" .mt4 .pr4} -### [section 1]{.smallcaps} +### Section 1 - [Implement custom inline tests](#implement-custom-tests) - [Use external test providers](#use-external-test-providers) @@ -59,7 +59,7 @@ This third module is part of a four-part series: ::: ::: {.column width="50%" .mt4} -### [section 2]{.smallcaps} +### Section 2 - [Include custom test results](#include-custom-test-results) - [Configure the model's documentation template](#configure-documentation-template) @@ -170,15 +170,15 @@ Our series of four introductory notebooks for model developers include sample co 4 — [Finalize testing and documentation](/notebooks/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"}
::: {.f4 .pl3 .pr3 .embed} -In this third module, we'll run through the remaining two notebooks **3** in [section 1]{.smallcaps} and **4** in [section 2]{.smallcaps} together. +In this third module, we'll run through the remaining two notebooks **3** in Section 1 and **4** in Section 2 together. ::: ::: :::: -Let's continue our journey with **[section 1]{.smallcaps}** on the next page. {{< fa hand-point-right >}} +Let's continue our journey with **Section 1** on the next page. {{< fa hand-point-right >}} -# [section 1]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} ## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} @@ -468,7 +468,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. -# [section 2]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} ## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index 5ae3a2deeb..44d21e6fe4 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -44,7 +44,7 @@ This {{#th}} module is part of a {{#}}-part series: :::: {.columns .f4} ::: {.column width="50%" .mt4 .pr4} -### [introduction]{.smallcaps} +### Introduction - [Before you begin](#before-you-begin) ::: @@ -54,7 +54,7 @@ This {{#th}} module is part of a {{#}}-part series: :::: {.columns .f4} ::: {.column width="50%" .mt4 .pr4} -### [section 1]{.smallcaps} +### Section 1 1. [iFrame embed right](#iframe-embed-right) 2. [iFrame embed bottom](#iframe-embed-bottom) @@ -65,7 +65,7 @@ This {{#th}} module is part of a {{#}}-part series: ::: ::: {.column width="50%" .mt4} -### [section 2]{.smallcaps} +### Section 2 Example embedded `iframe` for interactive copy/paste workaround: @@ -132,7 +132,7 @@ Be sure to return to this page afterwards. ::: -# [section 1]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} # iFrame embed right {background-color="#083E44" background-image="/training/assets/home-hero.svg"} @@ -264,7 +264,7 @@ All you need to do is make sure that the headers within `.panel-tabset` are set Try it **live** on the next page. {{< fa hand-point-right >}} -# [section 2]{.smallcaps} {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} ## Get your code snippet From 78c9a68b8f804dd2f85455767b900403ed48f12b Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 16:12:47 -0700 Subject: [PATCH 66/77] Image replace for sections --- .../developer-fundamentals/implementing-custom-tests.qmd | 4 ++-- site/training/training-templates/course-slides.qmd | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 5ed89f5f68..0eacc561b4 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -178,7 +178,7 @@ In this third module, we'll run through the remaining two notebooks **3** in Sec Let's continue our journey with **Section 1** on the next page. {{< fa hand-point-right >}} -# Section 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 1 {background-color="#083E44" background-image="/assets/img/about-us-esphere.svg"} ## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html" background-interactive="yes" data-preload="yes"} @@ -468,7 +468,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. -# Section 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 2 {background-color="#083E44" background-image="/assets/img/about-us-esphere.svg"} ## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index 44d21e6fe4..c3f26449b5 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -132,7 +132,7 @@ Be sure to return to this page afterwards. ::: -# Section 1 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 1 {background-color="#083E44" background-image="/assets/img/about-us-esphere.svg"} # iFrame embed right {background-color="#083E44" background-image="/training/assets/home-hero.svg"} @@ -264,7 +264,7 @@ All you need to do is make sure that the headers within `.panel-tabset` are set Try it **live** on the next page. {{< fa hand-point-right >}} -# Section 2 {background-color="#083E44" background-image="/assets/img/solutions-hero.png"} +# Section 2 {background-color="#083E44" background-image="/assets/img/about-us-esphere.svg"} ## Get your code snippet From 103c069a53b60a781779b560ee9f0fc1e0184db4 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 16:18:15 -0700 Subject: [PATCH 67/77] Fixed the one tabset --- .../learning-to-run-tests.qmd | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index ca276ff508..7d4707b910 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -441,17 +441,22 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. ## {.scrollable} :::: {.columns} -::: {.column width="30%" .pr4 .f2} +::: {.column width="50%" .pr4 .f2} Model testing with {{< var vm.product >}} -
Try it **live** on the next pages. {{< fa hand-point-right >}} ::: -::: {.column width="70%" .bl .pl4 .f3} -So far, we’ve focused on the data assessment and pre-processing that usually occurs prior to any models being built. Now, let’s instead assume we have already built a model and we want to incorporate some model results into our documentation: +::: {.column width="50%" .bl .pl4 .f2} +Try it **live** on the next pages. {{< fa hand-point-right >}} +::: +:::: -::: {.panel-tabset} +::: {.f3} +
+So far, we’ve focused on the data assessment and pre-processing that usually occurs prior to any models being built. Now, let’s instead assume we have already built a model and we want to incorporate some model results into our documentation: + +::: {.panel-tabset .f4} ### 1. Train your model @@ -471,7 +476,6 @@ In this next example, we’ll focus on running the tests within the Model Develo ::: ::: -:::: ## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#train-simple-logistic-regression-model" data-preload="yes"} From 67bb652d8c6f6d26c9cabbf1f9c64b2943d32718 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 16:31:30 -0700 Subject: [PATCH 68/77] Vertically align shorter slides --- .../finalizing-model-documentation.qmd | 16 +++++++-------- .../implementing-custom-tests.qmd | 17 ++++++++-------- .../learning-to-run-tests.qmd | 17 ++++++++-------- .../using-validmind-for-model-development.qmd | 11 +++++----- .../training-templates/course-slides.qmd | 20 +++++++++---------- 5 files changed, 42 insertions(+), 39 deletions(-) diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index bd9edf8966..369c2dacd4 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -26,7 +26,7 @@ title-slide-attributes: skip_preview: true --- -# Learning objectives +# Learning objectives {.center} _"As a **developer** who has logged tests with the {{< var validmind.developer >}} to the {{< var validmind.platform >}}, I want to refine my model's documentation, submit my model documentation for approval, and track changes and other updates to my model."_ @@ -38,7 +38,7 @@ This final module is part of a four-part series: ::: -## Module 4 — Contents +## Module 4 — Contents {.center} ::: {.f2} 1. [Refine model documentation](#refine-model-documentation) @@ -52,7 +52,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Before you begin +## Before you begin {.center} ::: {.panel-tabset} @@ -113,7 +113,7 @@ Be sure to return to this page afterwards. # Refine model documentation {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -237,7 +237,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Submit documentation for approval {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -295,7 +295,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Collaborate with others {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -343,7 +343,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Track model activity {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -386,7 +386,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 0eacc561b4..6ad71f6069 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -26,7 +26,7 @@ title-slide-attributes: skip_preview: true --- -# Learning objectives +# Learning objectives {.center} _"As a **developer** who has run and logged out-of-the-box tests with {{< var vm.product >}}, I want to update my documentation template to include manually inserted test results, implement, run, and log custom tests, and include those custom tests in my documentation template."_ @@ -38,7 +38,7 @@ This third module is part of a four-part series: ::: -## Module 3 — Contents +## Module 3 — Contents {.center} :::: {.columns .f3} ::: {.column width="50%" .mt4 .pr4} @@ -73,7 +73,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Before you begin +## Before you begin {.center} ::: {.panel-tabset} @@ -140,7 +140,7 @@ Be sure to return to this page afterwards. # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -168,6 +168,7 @@ Our series of four introductory notebooks for model developers include sample co 2 — [Start the model development process](/notebooks/tutorials/model_development/2-start_development_process.ipynb){target="_blank"}
3 — [Integrate custom tests](/notebooks/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"}
4 — [Finalize testing and documentation](/notebooks/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"}
+
::: {.f4 .pl3 .pr3 .embed} In this third module, we'll run through the remaining two notebooks **3** in Section 1 and **4** in Section 2 together. @@ -260,7 +261,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Implement custom tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -333,7 +334,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Use external test providers {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -580,7 +581,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Configure documentation templates {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -641,7 +642,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 7d4707b910..314d249c16 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -26,7 +26,7 @@ title-slide-attributes: skip_preview: true --- -# Learning objectives +# Learning objectives {.center} _"As a **developer** who has registered a model with {{< var vm.product >}}, I want to identify relevant tests to run from {{< var vm.product >}}'s test repository, run and log tests for my model, and insert the test results into my model's documentation."_ @@ -38,7 +38,7 @@ This second module is part of a four-part series: ::: -## Module 2 — Contents +## Module 2 — Contents {.center} ::: {.f2} 1. [{{< var vm.product >}} for model development](#validmind-for-model-development) @@ -53,7 +53,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Before you begin +## Before you begin {.center} ::: {.panel-tabset} @@ -109,7 +109,7 @@ Be sure to return to this page afterwards. # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -135,6 +135,7 @@ Our series of four introductory notebooks for model developers include sample co 2 — [Start the model development process](/notebooks/tutorials/model_development/2-start_development_process.ipynb){target="_blank"}
3 — [Integrate custom tests](/notebooks/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"}
4 — [Finalize testing and documentation](/notebooks/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"}
+
::: {.f4 .pl3 .pr3 .embed} In this second module, we'll run through **2 — Start the model development process** together. @@ -325,7 +326,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Log ValidMind tests {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -381,7 +382,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -438,7 +439,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Test an existing model {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="50%" .pr4 .f2} @@ -548,7 +549,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index 2e98e3b603..ff2fe11074 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -26,7 +26,7 @@ title-slide-attributes: skip_preview: true --- -# Learning objectives +# Learning objectives {.center} _"As a **developer** who is new to {{< var vm.product >}}, I want to learn how to register a model in the {{< var validmind.platform >}}, install the {{< var validmind.developer >}} in my local environment, and preview my model's documentation template."_ @@ -38,7 +38,7 @@ This first module is part of a four-part series: ::: -## Module 1 — Contents +## Module 1 — Contents {.center} ::: {.f2} 1. [{{< var vm.product >}} for model development](#validmind-for-model-development) @@ -52,7 +52,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Before you begin +## Before you begin {.center} ::: {.panel-tabset} @@ -106,7 +106,7 @@ Be sure to return to this page afterwards. # ValidMind for model development {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -127,6 +127,7 @@ Our series of four introductory notebooks for model developers include sample co 2 — [Start the model development process](/notebooks/tutorials/model_development/2-start_development_process.ipynb){target="_blank"}
3 — [Integrate custom tests](/notebooks/tutorials/model_development/3-integrate_custom_tests.ipynb){target="_blank"}
4 — [Finalize testing and documentation](/notebooks/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"}
+
::: {.f4 .pl3 .pr3 .embed} In this first module, we'll run through **1 — Set up the {{< var validmind.developer >}}** together. @@ -339,7 +340,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index c3f26449b5..1138ab1edb 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -28,7 +28,7 @@ title-slide-attributes: skip_preview: true --- -# Learning objectives +# Learning objectives {.center} _"As a {{ role }} who ... {{< var vm.product >}}, I want to learn how to {{ task A }}, {{ task B }}, {{ task C }}, and {{ task D}}."_ @@ -40,7 +40,7 @@ This {{#th}} module is part of a {{#}}-part series: [Course Link](/training/training-templates/course-registration.qmd){.button target="_blank"} ::: -## In this course +## In this course {.center} :::: {.columns .f4} ::: {.column width="50%" .mt4 .pr4} @@ -82,7 +82,7 @@ First, let's make sure you can log in to {{< var vm.product >}}. {{< include /training/assets/_revealjs-navigation.qmd >}} -## Before you begin +## Before you begin {.center} ::: {.panel-tabset} @@ -229,11 +229,11 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis sapien blandit # Scrollable tabset user guides {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} -You can also embed several sets of instructions into the same two-column layout. +You can also embed several sets of instructions into the same two-column layout, and vertically center content. ::: {.tc} @@ -316,7 +316,7 @@ Make sure you're logged in and have refreshed the page. # Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable} +## {.scrollable .center} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -332,10 +332,10 @@ Make sure you're logged in and have refreshed the page. ::: {.column width="70%" .bl .pl4 .f3} In this {{#th}} module, you learned how to: -- [ ] task -- [ ] task -- [ ] task -- [ ] task +- [x] task +- [x] task +- [x] task +- [x] task ::: :::: From 9f742196d1e09bc0817785814b42d103e75e3ebd Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Thu, 24 Apr 2025 16:58:16 -0700 Subject: [PATCH 69/77] Compatibility message --- site/training/_compatibility.qmd | 4 ++++ .../administrator-fundamentals-register.qmd | 5 +++++ .../developer-fundamentals-register.qmd | 5 +++++ site/training/training-templates/course-registration.qmd | 7 ++++++- .../validator-fundamentals-register.qmd | 5 +++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 site/training/_compatibility.qmd diff --git a/site/training/_compatibility.qmd b/site/training/_compatibility.qmd new file mode 100644 index 0000000000..495b26b626 --- /dev/null +++ b/site/training/_compatibility.qmd @@ -0,0 +1,4 @@ +[browser compatibility]{.smallcaps .pink} + +{{< var validmind.training >}} courses work best with Chromium based web-browsers, such as Google Chrome, Microsoft Edge, and Opera. + diff --git a/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd b/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd index 9053ec36e8..99f572a1d5 100644 --- a/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd +++ b/site/training/administrator-fundamentals/administrator-fundamentals-register.qmd @@ -8,6 +8,11 @@ aliases: Learn how to use {{< var vm.product >}} as an **administrator** to onboard your organization, manage users, roles, and permissions, and customize the {{< var vm.platform >}} for your institution's requirements. +::: {.column-margin} +{{< include /training/_compatibility.qmd >}} + +::: + ::: {.attn} ## In this course diff --git a/site/training/developer-fundamentals/developer-fundamentals-register.qmd b/site/training/developer-fundamentals/developer-fundamentals-register.qmd index 689f2e4cf8..a7913460b0 100644 --- a/site/training/developer-fundamentals/developer-fundamentals-register.qmd +++ b/site/training/developer-fundamentals/developer-fundamentals-register.qmd @@ -42,6 +42,11 @@ listing: Learn how to use {{< var vm.product >}} as a **developer** to generate model documentation, automate testing, and track your model's progress through the model lifecycle. +::: {.column-margin} +{{< include /training/_compatibility.qmd >}} + +::: + ::: {.attn} ## In this course diff --git a/site/training/training-templates/course-registration.qmd b/site/training/training-templates/course-registration.qmd index a453d36b1e..9212ca3907 100644 --- a/site/training/training-templates/course-registration.qmd +++ b/site/training/training-templates/course-registration.qmd @@ -41,7 +41,12 @@ listing: fields: [title, subtitle, description, reading-time] --- -As a {{ role }} new to {{< var vm.product >}}, learn how to {{ course_overview }}. +Learn how to use {{< var vm.product >}} as a {{ role }}, to {{ list_tasks }}. + +::: {.column-margin} +{{< include /training/_compatibility.qmd >}} + +::: ::: {.attn} diff --git a/site/training/validator-fundamentals/validator-fundamentals-register.qmd b/site/training/validator-fundamentals/validator-fundamentals-register.qmd index d7b1ad01b7..69e9119fbe 100644 --- a/site/training/validator-fundamentals/validator-fundamentals-register.qmd +++ b/site/training/validator-fundamentals/validator-fundamentals-register.qmd @@ -8,6 +8,11 @@ aliases: Learn how to use {{< var vm.product >}} as a **validator** to generate validation reports, automate testing, and collaborate with your model development team. +::: {.column-margin} +{{< include /training/_compatibility.qmd >}} + +::: + ::: {.attn} ## In this course From 32a17fbf85e09c2b1be08f984ebfcf1480865cdf Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Fri, 25 Apr 2025 15:38:49 -0700 Subject: [PATCH 70/77] New Get your code snippet iframe --- .../implementing-custom-tests.qmd | 53 +++++++++---------- .../learning-to-run-tests.qmd | 31 ++++++----- .../using-validmind-for-model-development.qmd | 27 +++++----- .../training-templates/course-slides.qmd | 30 +++++------ 4 files changed, 67 insertions(+), 74 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index 6ad71f6069..bbfaf23a54 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -201,46 +201,45 @@ This is the third notebook in our introductory series, which will walk you throu ::: {.column width="80%"} -::: {.absolute left="-150" width="100%"} -
- +
-::: ::: -::: {.column width="20%" .pt2} +::: {.column width="20%" .f4} -::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} -First, let's connect back up to your model in the {{< var validmind.platform >}}: +::: {.f5} +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: -1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. -When you're done, click [{{< fa chevron-right >}}]() to continue. +::: -::: {.overlay .pa2 .pl3 .f5} -**Can't load the {{< var validmind.platform >}}?** +When you're done, click [{{< fa chevron-right >}}]() to continue. -Make sure you're logged in and have refreshed the module. ::: +:::: -::: +:::: {.tc .f6 .embed} +**Can't load the {{< var validmind.platform >}}?** -::: +Make sure you're logged in and have refreshed the page. -:::: +::: ## {background-iframe="/notebooks/EXECUTED/model_development/3-integrate_custom_tests.html#initialize-the-validmind-library" data-preload="yes"} @@ -484,47 +483,45 @@ This is the final notebook in our introductory series, which will walk you throu :::: -## Get your code snippet +## Retrieve your code snippet :::: {.columns} ::: {.column width="80%"} -::: {.absolute left="-150" width="100%"} -
- +
-::: ::: -::: {.column width="20%" .pt2} +::: {.column width="20%"} -::: {.absolute right="-150" .w-30 .f3 .pl4 .pt2 .pb3 .bl} +::: {.f4} As usual, let's connect back up to your model in the {{< var validmind.platform >}}: -1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. -When you're done, click [{{< fa chevron-right >}}]() to continue. - - ::: ::: :::: +When you're done, click [{{< fa chevron-right >}}]() to continue. + ## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#initialize-the-validmind-library" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 314d249c16..1ee92289a8 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -189,46 +189,45 @@ For now, **scroll through these test descriptions** to explore. When you're done ::: {.column width="80%"} -::: {.absolute left="-150" width="100%"} -
- +
-::: ::: -::: {.column width="20%" .pt2} +::: {.column width="20%" .f4} -::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} -First, let's connect back up to your model in the {{< var validmind.platform >}}: +::: {.f5} +{{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: -1. From the **{{< fa cubes >}} Inventory**, select the name of your model you registered for this course to open up the model details page. +1. From the **{{< fa cubes >}} Inventory**, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. -When you're done, click [{{< fa chevron-right >}}]() to continue. +::: -::: {.overlay .pa2 .pl3 .f5} -**Can't load the {{< var validmind.platform >}}?** +When you're done, click [{{< fa chevron-right >}}]() to continue. -Make sure you're logged in and have refreshed the module. ::: +:::: -::: +:::: {.tc .f6 .embed} +**Can't load the {{< var validmind.platform >}}?** -::: +Make sure you're logged in and have refreshed the page. -:::: +::: ## {background-iframe="/notebooks/EXECUTED/model_development/2-start_development_process.html#initialize-the-validmind-library" data-preload="yes"} diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index ff2fe11074..dbd293c3ea 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -240,46 +240,45 @@ When you're done,
click [{{< fa chevron-right >}}]() to continue. ::: {.column width="80%"} -::: {.absolute left="-150" width="100%"} -
- +
-::: ::: -::: {.column width="20%" .pt2} +::: {.column width="20%" .f4} -::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} +::: {.f5} {{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: 1. From the **{{< fa cubes >}} Inventory**, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. -When you're done, click [{{< fa chevron-right >}}]() to continue. +::: -::: {.overlay .pa2 .pl3 .f5} -**Can't load the {{< var validmind.platform >}}?** +When you're done, click [{{< fa chevron-right >}}]() to continue. -Make sure you're logged in and have refreshed the page. ::: +:::: -::: +:::: {.tc .f6 .embed} +**Can't load the {{< var validmind.platform >}}?** -::: +Make sure you're logged in and have refreshed the page. -:::: +::: ## {background-iframe="/notebooks/EXECUTED/model_development/1-set_up_validmind.html#install-the-validmind-library" data-preload="yes"} diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index 1138ab1edb..72d8c7a878 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -272,49 +272,47 @@ Try it **live** on the next page. {{< fa hand-point-right >}} ::: {.column width="80%"} -::: {.absolute left="-150" width="100%"} -
- +
-::: ::: -::: {.column width="20%" .pt2} +::: {.column width="20%" .f4} -::: {.absolute right="-150" .w-30 .f4 .pl4 .pt2 .pb3 .bl} +::: {.f5} {{< var vm.product >}} generates a unique *code snippet* for each registered model to connect with your developer environment: 1. From the **{{< fa cubes >}} Inventory**, select the name of your model to open up the model details page. 2. On the left sidebar that appears for your model, click **Getting Started**. 3. Locate the code snippet and click **Copy snippet to clipboard**. -When you're done, click [{{< fa chevron-right >}}]() to continue. - -::: {.overlay .pa2 .pl3 .f5} -**Can't load the {{< var validmind.platform >}}?** - -Make sure you're logged in and have refreshed the page. ::: - -::: +When you're done, click [{{< fa chevron-right >}}]() to continue. ::: :::: +:::: {.tc .f6 .embed} +**Can't load the {{< var validmind.platform >}}?** + +Make sure you're logged in and have refreshed the page. + +::: -# Next steps {background-color="#083E44" background-image="/training/assets/home-hero.svg"} +# In summary {background-color="#083E44" background-image="/training/assets/home-hero.svg"} ## {.scrollable .center} From 86575745dc1bd140be84f53de27bc40973a39dd9 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Fri, 25 Apr 2025 16:05:44 -0700 Subject: [PATCH 71/77] Forgot 104 URLs + text --- .../implementing-custom-tests.qmd | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index bbfaf23a54..b2a9936b00 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -470,10 +470,10 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Section 2 {background-color="#083E44" background-image="/assets/img/about-us-esphere.svg"} -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.html" background-interactive="yes" data-preload="yes"} :::: {.absolute bottom=15 left=0 right=50 .w-100 .f4 .tc .pl4 .pr4 .overlay} -**104 Finalize testing and documentation** +**4 — Finalize testing and documentation** ::: {.f5} This is the final notebook in our introductory series, which will walk you through wrapping custom test results into your documentation, as well as how to update the configuration for the entire model documentation template to suit your needs. @@ -522,7 +522,7 @@ As usual, let's connect back up to your model in the {{< var validmind.platform When you're done, click [{{< fa chevron-right >}}]() to continue. -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#initialize-the-validmind-library" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.html#initialize-the-validmind-library" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Connect to your model** @@ -530,7 +530,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. ::: {.f5} With your code snippet copied to your clipboard: -1. Open **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Open **4 — Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"} 2. Run all the cells under the **Setting up** section. ::: @@ -541,7 +541,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to # Include custom test results {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#reconnect-to-validmind" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.html#reconnect-to-validmind" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Reconnect to {{< var vm.product >}}** @@ -549,7 +549,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} After you insert test-driven blocks, changes should persist and become available every time you call the [`preview_template()` function](/validmind/validmind.qmd#preview_template){target="_blank"}: -1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **4 — Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"} 2. Run all the cells under the **Reconnect to {{< var vm.product >}}** section. ::: @@ -558,7 +558,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#include-custom-test-results" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.html#include-custom-test-results" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Log custom test results** @@ -566,7 +566,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} Now that your custom test IDs are part of your template, you can now run tests for an entire section and all additional custom tests will be loaded: -1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **4 — Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"} 2. Run the cell under the **Include custom test results** section. ::: @@ -604,13 +604,13 @@ The utility function `vm.get_test_suite().get_default_config()` will return the ::: :::: -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#documentation-template-configuration" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.html#documentation-template-configuration" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Retrieve default configuration** ::: {.f5} -1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **4 — Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"} 2. Run the first cell under the **Documentation template configuration** section. ::: @@ -619,7 +619,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to :::: -## {background-iframe="/notebooks/EXECUTED/model_development/104-finalize_testing_documentation.html#update-the-config" data-preload="yes"} +## {background-iframe="/notebooks/EXECUTED/model_development/4-finalize_testing_documentation.html#update-the-config" data-preload="yes"} :::: {.absolute bottom=15 .w-100 .f4 .tc .pl4 .overlay} **Update template configuration** @@ -627,7 +627,7 @@ When you're done, return to this page and click [{{< fa chevron-right >}}]() to ::: {.f5} The default configuration does not assign any inputs to a test, but you can assign inputs to individual tests as needed: -1. Continue with **104 Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/104-finalize_testing_documentation.ipynb){target="_blank"} +1. Continue with **4 — Finalize testing and documentation**: [{{< fa square-arrow-up-right >}} JupyterHub](https://jupyterhub.validmind.ai/hub/user-redirect/lab/tree/tutorials/model_development/4-finalize_testing_documentation.ipynb){target="_blank"} 2. Run the all the cells under the following Documentation template configuration section: **Update the config** ::: From 9438d88309264fc90737fda98c8d383e1d936387 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Fri, 25 Apr 2025 16:13:03 -0700 Subject: [PATCH 72/77] =?UTF-8?q?Removing=20.center=20from=20tiles=20that?= =?UTF-8?q?=20need=20scroll=20=E2=80=94=20won't=20center=20AND=20scroll?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../developer-fundamentals/finalizing-model-documentation.qmd | 4 ++-- .../developer-fundamentals/implementing-custom-tests.qmd | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/site/training/developer-fundamentals/finalizing-model-documentation.qmd b/site/training/developer-fundamentals/finalizing-model-documentation.qmd index 369c2dacd4..39447d6cc7 100644 --- a/site/training/developer-fundamentals/finalizing-model-documentation.qmd +++ b/site/training/developer-fundamentals/finalizing-model-documentation.qmd @@ -237,7 +237,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Submit documentation for approval {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable .center} +## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} @@ -295,7 +295,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. # Collaborate with others {background-color="#083E44" background-image="/training/assets/home-hero.svg"} -## {.scrollable .center} +## {.scrollable} :::: {.columns} ::: {.column width="30%" .pr4 .f2} diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index b2a9936b00..debae5dca8 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -62,7 +62,7 @@ This third module is part of a four-part series: ### Section 2 - [Include custom test results](#include-custom-test-results) -- [Configure the model's documentation template](#configure-documentation-template) +- [Configure the model's documentation template](#configure-documentation-templates) ::: :::: From 64b1b812c5858a3f316fe3ff1d8af6391e4f1c29 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Fri, 25 Apr 2025 16:52:17 -0700 Subject: [PATCH 73/77] Moving legal into column on policy page --- site/about/fine-print/data-privacy-policy.qmd | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/site/about/fine-print/data-privacy-policy.qmd b/site/about/fine-print/data-privacy-policy.qmd index 3c19f6f687..f855e6dc74 100644 --- a/site/about/fine-print/data-privacy-policy.qmd +++ b/site/about/fine-print/data-privacy-policy.qmd @@ -5,7 +5,7 @@ date: last-modified listing: id: legal-ease type: grid - grid-columns: 2 + grid-columns: 1 contents: - path: https://validmind.com/about/legal/ title: "Legal Ease" @@ -20,6 +20,17 @@ This page outlines {{< var vm.product >}}'s data privacy policy, explaining how Our goal is to provide transparency about our data handling practices and to demonstrate our commitment to protecting your privacy and data security. +::: {.column-margin} +[commitment to transparency]{.smallcaps .pink} + +Understanding our policies shouldn’t feel like deciphering code, so we’ve made our legal texts as clear and accessible as possible: +

+ +::: {#legal-ease} +::: + +::: + ## What is {{< var vm.product >}}'s data privacy policy? The key points of our data privacy policy include: @@ -63,10 +74,3 @@ When you generate documentation or run tests, {{< var vm.product >}} imports the The {{< var validmind.developer >}} does not send any personally identifiable information (PII) through our {{< var validmind.api >}}. -## A commitment to transparency - -Understanding our policies shouldn’t feel like deciphering code, so we’ve made our legal texts as clear and accessible as possible: - -::: {#legal-ease} -::: - From 909b82df0af49fae2dda5605933ef10dfd14f4d8 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 30 Apr 2025 12:46:29 -0700 Subject: [PATCH 74/77] Update site/training/_compatibility.qmd Co-authored-by: Nik Richers --- site/training/_compatibility.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/training/_compatibility.qmd b/site/training/_compatibility.qmd index 495b26b626..2e3b1a07f9 100644 --- a/site/training/_compatibility.qmd +++ b/site/training/_compatibility.qmd @@ -1,4 +1,4 @@ [browser compatibility]{.smallcaps .pink} -{{< var validmind.training >}} courses work best with Chromium based web-browsers, such as Google Chrome, Microsoft Edge, and Opera. +{{< var validmind.training >}} courses work best with Chromium-based web browsers, such as Google Chrome, Microsoft Edge, and Opera. From 064ded8967d86716001870d32ac6f9dc721ff4e6 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 30 Apr 2025 12:46:39 -0700 Subject: [PATCH 75/77] Update site/training/training-templates/course-slides.qmd Co-authored-by: Nik Richers --- site/training/training-templates/course-slides.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/training/training-templates/course-slides.qmd b/site/training/training-templates/course-slides.qmd index 72d8c7a878..5e0862f273 100644 --- a/site/training/training-templates/course-slides.qmd +++ b/site/training/training-templates/course-slides.qmd @@ -308,7 +308,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. :::: {.tc .f6 .embed} **Can't load the {{< var validmind.platform >}}?** -Make sure you're logged in and have refreshed the page. +Make sure you're logged in and have refreshed the page in a Chromium-based web browser. ::: From 5c56cfa050caabfcb0d1046a400e6cd0a638b8cb Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 30 Apr 2025 12:48:13 -0700 Subject: [PATCH 76/77] Update site/training/developer-fundamentals/using-validmind-for-model-development.qmd Co-authored-by: Nik Richers --- .../using-validmind-for-model-development.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd index dbd293c3ea..f7fcdbf2d7 100644 --- a/site/training/developer-fundamentals/using-validmind-for-model-development.qmd +++ b/site/training/developer-fundamentals/using-validmind-for-model-development.qmd @@ -276,7 +276,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. :::: {.tc .f6 .embed} **Can't load the {{< var validmind.platform >}}?** -Make sure you're logged in and have refreshed the page. +Make sure you're logged in and have refreshed the page in a Chromium-based web browser. ::: From 716c4f2a2480428b541f7e2f2448ec809e015558 Mon Sep 17 00:00:00 2001 From: Beck <164545837+validbeck@users.noreply.github.com> Date: Wed, 30 Apr 2025 12:48:37 -0700 Subject: [PATCH 77/77] Updated other copy snippet slides --- .../developer-fundamentals/implementing-custom-tests.qmd | 2 +- site/training/developer-fundamentals/learning-to-run-tests.qmd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/site/training/developer-fundamentals/implementing-custom-tests.qmd b/site/training/developer-fundamentals/implementing-custom-tests.qmd index debae5dca8..e11fdda4be 100644 --- a/site/training/developer-fundamentals/implementing-custom-tests.qmd +++ b/site/training/developer-fundamentals/implementing-custom-tests.qmd @@ -237,7 +237,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. :::: {.tc .f6 .embed} **Can't load the {{< var validmind.platform >}}?** -Make sure you're logged in and have refreshed the page. +Make sure you're logged in and have refreshed the page in a Chromium-based web browser. ::: diff --git a/site/training/developer-fundamentals/learning-to-run-tests.qmd b/site/training/developer-fundamentals/learning-to-run-tests.qmd index 1ee92289a8..33e14d96f0 100644 --- a/site/training/developer-fundamentals/learning-to-run-tests.qmd +++ b/site/training/developer-fundamentals/learning-to-run-tests.qmd @@ -225,7 +225,7 @@ When you're done, click [{{< fa chevron-right >}}]() to continue. :::: {.tc .f6 .embed} **Can't load the {{< var validmind.platform >}}?** -Make sure you're logged in and have refreshed the page. +Make sure you're logged in and have refreshed the page in a Chromium-based web browser. :::

-rY@ACtQkWz$`H*m!?VRDI&~dnjH(!^`qVEj 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 z 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

clYDm#_*A@Ka!dQFfo-}sD=1PR+j?;F@ZG!x8 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঎&2B(_kZtX?tFvMS0W(op{4?52m{+ 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 V-yl~H|RIYd?>T@#z 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 G=l>7R^;$dt literal 0 HcmV?d00001 diff --git a/site/notebooks/EXECUTED/model_development/my_tests_directory.png b/site/notebooks/EXECUTED/model_development/my_tests_directory.png new file mode 100644 index 0000000000000000000000000000000000000000..47baffe80e5e0f1f05562126fc46c7150cc8ca3d GIT binary patch literal 44368 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 literal 0 HcmV?d00001 diff --git a/site/notebooks/EXECUTED/model_development/selecting-confusion-matrix-test.png b/site/notebooks/EXECUTED/model_development/selecting-confusion-matrix-test.png new file mode 100644 index 0000000000000000000000000000000000000000..de27323a762da620e2ddb03fcf9b19e6caabfaaa GIT binary patch literal 128730 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