From f8671f73f63f49872bfafac56a841e19612988c6 Mon Sep 17 00:00:00 2001 From: Denis Abrantes Date: Wed, 21 Feb 2024 17:15:07 -0600 Subject: [PATCH] added LLM RAG fixed deploy --- README.md | 2 +- .../container/deploy/common.py | 1 + .../container/deploy/deploy.py | 12 +- .../_on_prem_deployment-pipeline.json | 2 +- .../pipelines/_on_prem_training-pipeline.json | 4 + .../pipelines/deployment-pipeline.json | 2 +- .../pipelines/training-pipeline.json | 4 + bring-your-own-model/readme.md | 2 +- deploy/README.md | 2 +- deploy/deploy_aws.md | 27 +- deploy/deploy_gcp.md | 30 +- deploy/deploy_k8s.md | 16 +- deploy/images/example_llm_chatui.png | Bin 0 -> 73048 bytes deploy/images/example_llm_gcp_firewall.png | Bin 0 -> 68398 bytes deploy/images/example_llm_model.png | Bin 0 -> 140877 bytes examples/brain-mri/container/deploy/common.py | 1 + examples/brain-mri/container/deploy/deploy.py | 12 +- .../_on_prem_deployment-pipeline.json | 2 +- .../pipelines/_on_prem_training-pipeline.json | 4 + .../pipelines/deployment-pipeline.json | 2 +- .../pipelines/training-pipeline.json | 4 + examples/brain-mri/readme.md | 2 +- examples/dog-cat/container/deploy/common.py | 1 + examples/dog-cat/container/deploy/deploy.py | 12 +- .../_on_prem_deployment-pipeline.json | 2 +- .../pipelines/_on_prem_training-pipeline.json | 4 + .../pipelines/deployment-pipeline.json | 2 +- .../dog-cat/pipelines/training-pipeline.json | 4 + examples/dog-cat/readme.md | 2 +- .../llm-rag/pipelines/model_download.json | 50 + examples/llm-rag/pipelines/process_xml.json | 31 + examples/llm-rag/pipelines/titan_ml.json | 67 + examples/llm-rag/pipelines/ui-client.json | 50 + examples/llm-rag/pipelines/vector_db.json | 32 + examples/llm-rag/readme.md | 288 ++ .../sample-data/HPE_2023_Press_Releases.csv | 3859 +++++++++++++++ .../HPE_press_releases/2022/.content.xml | 24 + .../HPE_press_releases/2022/01/.content.xml | 20 + .../.content.xml | 397 ++ .../.content.xml | 367 ++ .../.content.xml | 404 ++ .../.content.xml | 312 ++ .../.content.xml | 374 ++ .../.content.xml | 397 ++ .../.content.xml | 397 ++ .../.content.xml | 367 ++ .../HPE_press_releases/2022/02/.content.xml | 15 + .../.content.xml | 405 ++ .../.content.xml | 323 ++ .../HPE_press_releases/2022/03/.content.xml | 22 + .../.content.xml | 398 ++ .../.content.xml | 398 ++ .../.content.xml | 368 ++ .../.content.xml | 481 ++ .../.content.xml | 355 ++ .../.content.xml | 367 ++ .../.content.xml | 397 ++ .../.content.xml | 397 ++ .../.content.xml | 397 ++ .../.content.xml | 368 ++ .../HPE_press_releases/2022/04/.content.xml | 20 + .../.content.xml | 398 ++ .../.content.xml | 368 ++ .../.content.xml | 398 ++ .../.content.xml | 409 ++ .../.content.xml | 368 ++ .../.content.xml | 427 ++ .../.content.xml | 368 ++ .../.content.xml | 398 ++ .../HPE_press_releases/2022/05/.content.xml | 20 + .../.content.xml | 368 ++ .../.content.xml | 367 ++ .../.content.xml | 399 ++ .../.content.xml | 324 ++ .../.content.xml | 417 ++ .../.content.xml | 337 ++ .../.content.xml | 409 ++ .../.content.xml | 398 ++ .../HPE_press_releases/2022/06/.content.xml | 25 + .../2022/06/channel-news-2022/.content.xml | 398 ++ .../.content.xml | 398 ++ .../.content.xml | 438 ++ .../.content.xml | 387 ++ .../.content.xml | 368 ++ .../.content.xml | 508 ++ .../.content.xml | 331 ++ .../.content.xml | 366 ++ .../.content.xml | 399 ++ .../.content.xml | 368 ++ .../.content.xml | 398 ++ .../.content.xml | 399 ++ .../.content.xml | 398 ++ .../HPE_press_releases/2022/07/.content.xml | 15 + .../.content.xml | 368 ++ .../.content.xml | 398 ++ .../.content.xml | 428 ++ .../HPE_press_releases/2022/08/.content.xml | 16 + .../.content.xml | 602 +++ .../.content.xml | 324 ++ .../.content.xml | 398 ++ .../.content.xml | 399 ++ .../HPE_press_releases/2022/09/.content.xml | 16 + .../.content.xml | 374 ++ .../.content.xml | 404 ++ .../.content.xml | 374 ++ .../.content.xml | 404 ++ .../HPE_press_releases/2022/10/.content.xml | 17 + .../.content.xml | 374 ++ .../.content.xml | 360 ++ .../.content.xml | 373 ++ .../.content.xml | 412 ++ .../.content.xml | 382 ++ .../HPE_press_releases/2022/11/.content.xml | 18 + .../.content.xml | 385 ++ .../.content.xml | 366 ++ .../.content.xml | 619 +++ .../.content.xml | 339 ++ .../.content.xml | 404 ++ .../.content.xml | 374 ++ .../HPE_press_releases/2022/12/.content.xml | 15 + .../.content.xml | 405 ++ .../.content.xml | 385 ++ .../.content.xml | 419 ++ .../HPE_press_releases/2023/.content.xml | 27 + .../HPE_press_releases/2023/01/.content.xml | 20 + .../.content.xml | 402 ++ .../.content.xml | 402 ++ .../.content.xml | 355 ++ .../.content.xml | 384 ++ .../.content.xml | 402 ++ .../HPE_press_releases/2023/02/.content.xml | 20 + .../.content.xml | 402 ++ .../.content.xml | 372 ++ .../.content.xml | 414 ++ .../.content.xml | 338 ++ .../.content.xml | 402 ++ .../HPE_press_releases/2023/03/.content.xml | 19 + .../.content.xml | 402 ++ .../.content.xml | 495 ++ .../.content.xml | 412 ++ .../.content.xml | 412 ++ .../HPE_press_releases/2023/04/.content.xml | 18 + .../.content.xml | 402 ++ .../.content.xml | 443 ++ .../.content.xml | 429 ++ .../HPE_press_releases/2023/05/.content.xml | 22 + .../.content.xml | 407 ++ .../.content.xml | 404 ++ .../.content.xml | 340 ++ .../.content.xml | 404 ++ .../.content.xml | 415 ++ .../.content.xml | 404 ++ .../.content.xml | 404 ++ .../HPE_press_releases/2023/06/.content.xml | 16 + .../.content.xml | 290 ++ .../HPE_press_releases/2023/07/.content.xml | 15 + .../HPE_press_releases/2023/08/.content.xml | 15 + .../HPE_press_releases/2023/09/.content.xml | 15 + .../HPE_press_releases/2023/10/.content.xml | 15 + .../HPE_press_releases/2023/11/.content.xml | 15 + .../HPE_press_releases/2023/12/.content.xml | 15 + .../llm-rag/sample-data/HPE_qa_dataset.csv | 4140 +++++++++++++++++ examples/llm-rag/sample-data/src/py/app.py | 82 + .../sample-data/src/py/process_xmls.py | 152 + examples/llm-rag/sample-data/src/py/seed.py | 69 + .../container/deploy/common.py | 1 + .../container/deploy/deploy.py | 21 +- .../_on_prem_deployment-pipeline.json | 2 +- .../pipelines/_on_prem_training-pipeline.json | 4 + .../pipelines/deployment-pipeline.json | 2 +- .../pipelines/training-pipeline.json | 4 + examples/object-detection/readme.md | 2 +- .../container/deploy/common.py | 1 + .../container/deploy/deploy.py | 12 +- .../_on_prem_deployment-pipeline.json | 2 +- .../pipelines/_on_prem_prep-pipeline.json | 2 +- .../pipelines/_on_prem_training-pipeline.json | 4 + .../pipelines/deployment-pipeline.json | 2 +- .../pipelines/prep-pipeline.json | 2 +- .../pipelines/training-pipeline.json | 4 + examples/sentiment-analysis/readme.md | 2 +- 181 files changed, 48429 insertions(+), 75 deletions(-) create mode 100644 deploy/images/example_llm_chatui.png create mode 100644 deploy/images/example_llm_gcp_firewall.png create mode 100644 deploy/images/example_llm_model.png create mode 100644 examples/llm-rag/pipelines/model_download.json create mode 100644 examples/llm-rag/pipelines/process_xml.json create mode 100644 examples/llm-rag/pipelines/titan_ml.json create mode 100644 examples/llm-rag/pipelines/ui-client.json create mode 100644 examples/llm-rag/pipelines/vector_db.json create mode 100644 examples/llm-rag/readme.md create mode 100644 examples/llm-rag/sample-data/HPE_2023_Press_Releases.csv create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/hewlett-packard-enterprise-signs-agreement-with-uae-cyber-security-council-to-accelerate-youth-education/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/hewlett-packard-enterprise-unveils-supercomputing-research-that-raises-the-bar-for-achieving-quantum-advantage/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/hpe-greenlake-selected-to-expand-core-cloud-offering-and-enhance-desktop-as-a-service-for-cdw-serviceworks/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/hpe-statement-on-uk-high-court-decision-in-autonomy-proceedings/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/j-j-keller-chooses-hpe-greenlake-to-optimize-operations-and-accelerate-innovation-for-safety-and-compliance/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/leading-japanese-telecommunications-provider-optage-trialling-local-5g-services-powered-by-hpe-5g-core-stack/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/steel-authority-of-indias-central-marketing-organization-selects-hpe-greenlake-to-modernize-critical-sap-environment-and-data-management/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/01/werder-bremen-partners-with-hewlett-packard-enterprise-to-advance-fan-experience-and-data-intelligence/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/02/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/02/hewlett-packard-enterprise-extends-leadership-in-enterprise-connectivity-with-private-5g-offering/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/02/hewlett-packard-enterprise-to-present-live-audio-webcast-of-first-quarter-2022-earnings-conference-call/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/auckland-transport-adopts-hpe-greenlake-for-advanced-analytics-to-promote-public-safety/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/cheops-technology-selects-hpe-greenlake-to-expand-and-enhance-cloud-services-portfolio-for-its-customers/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/hewlett-packard-enterprise-expands-hpe-greenlake-cloud-services-portfolio-for-hybrid-cloud-and-data-with-availability-of-microsoft-azure-stack-hci-integrated-system/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/hewlett-packard-enterprise-reports-fiscal-2022-first-quarter-results/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/hpe-greenlake-edge-to-cloud-platform-delivers-greater-choice-and-simplicity-with-unified-experience-new-cloud-services-and-expanded-partner-ecosystem/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/hpe-greenlake-selected-by-bmw-group-to-unify-data-management-across-global-locations-and-the-cloud/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/hpe-greenlake-selected-by-worldline-to-modernize-mission-critical-payments/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/jcb-chooses-hpe-greenlake-to-enhance-customer-experience-and-modernize-its-next-generation-myjcb-platform/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/kddi-advances-o-ran-compliant-5g-standalone-virtualized-base-stations-in-japan-with-hpe-telco-infrastructure/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/03/napa-valleys-trinchero-family-estates-supports-online-business-growth-with-hpe-greenlake/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/city-university-of-hong-kong-advances-scientific-research-with-up-to-10x-faster-high-performance-computing-cluster-from-hewlett-packard-enterprise/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/hewlett-packard-enterprise-accelerates-ai-journey-from-poc-to-production-with-new-solution-for-ai-development-and-training-at-scale/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/hewlett-packard-enterprise-accelerates-ran-deployments-with-automation-and-simplified-management-for-both-open-and-traditional-networks/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/hewlett-packard-enterprise-drives-innovation-at-the-extreme-edge-on-the-international-space-station-with-24-completed-experiments/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/hewlett-packard-enterprise-ushers-in-next-era-in-ai-innovation-with-swarm-learning-solution-built-for-the-edge-and-distributed-sites/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/hpe-opens-global-center-of-excellence-in-artificial-intelligence-and-data-in-spain-to-help-customers-harness-the-power-of-their-data/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/korea-customs-service-selects-hpe-ezmeral-to-advance-smuggler-crackdown-and-inform-policy-decisions/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/04/leading-telematics-company-ituran-selects-hpe-cloud-native-storage-to-improve-real-time-data-access-for-clients/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/hewlett-packard-enterprise-and-sipearl-partner-to-develop-hpc-solutions-with-european-processors-and-accelerate-europes-adoption-of-exascale-supercomputers/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/hewlett-packard-enterprise-opens-new-head-office-in-canada-to-realize-a-new-workplace-experience-for-team-members/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/hewlett-packard-enterprise-strengthens-europes-supercomputer-supply-chain-with-new-factory-in-czech-republic/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/hewlett-packard-enterprise-to-present-live-audio-webcast-of-fiscal-2022-second-quarter-earnings-conference-call/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/hewlett-packard-enterprise-ushers-in-new-era-with-worlds-first-and-fastest-exascale-supercomputer-frontier-for-the-us-department-of-energys-oak-ridge-national-laboratory/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/hpe-statement-on-uk-high-court-decision-in-autonomy-proceedings-may-2022/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/leibniz-supercomputing-centre-accelerates-ai-innovation-in-bavaria-with-next-generation-ai-system-from-cerebras-systems-and-hewlett-packard-enterprise/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/05/lupin-goes-live-with-sap-s4-hana-on-hpe-greenlake-to-drive-digital-transformation/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/channel-news-2022/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/eclit-chooses-hpe-greenlake-to-launch-a-new-cloud-offering-and-expand-its-managed-services-portfolio/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/hewlett-packard-enterprise-adds-even-more-genius-to-evil-geniuses-industry-leading-data-and-analytics-program/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/hewlett-packard-enterprise-expands-compute-portfolio-with-new-servers-based-on-cloud-native-silicon/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/hewlett-packard-enterprise-releases-2021-living-progress-report-accelerates-net-zero-climate-target-by-10-years/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/hewlett-packard-enterprise-reports-fiscal-2022-second-quarter-results/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/hewlett-packard-enterprise-to-present-live-webcast-of-investor-relations-summit-at-discover/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/hpe-greenlake-adds-open-source-leader-red-hat-to-expanding-ecosystem/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/hpe-greenlake-advances-hybrid-cloud-experience-with-modern-private-cloud-and-new-cloud-services/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/iliane-selects-hpe-greenlake-for-expansion-of-high-performing-cloud-offerings/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/swedish-cloud-service-provider-datarewind-boosts-hybrid-office-productivity-with-hpe-cloud-native-storage-and-enhanced-compute-capacities/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/taeknizon-selects-hpe-greenlake-to-expand-their-fully-managed-cloud-offering-in-the-uae/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/06/turk-nippon-insurance-embarks-on-technology-modernization-with-hpe-greenlake-to-boost-performance/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/07/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/07/catharina-hospital-selects-hpe-ezmeral-to-power-data-first-modernization-and-improve-accuracy-and-speed-of-diagnosis/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/07/french-cloud-service-provider-antemeta-selects-hpe-greenlake-to-introduce-new-automated-disaster-recovery-service/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/07/mcmaster-university-cracks-genome-sequencing-to-fight-covid-19-and-other-infectious-diseases-with-hewlett-packard-enterprise/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/08/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/08/hewlett-packard-enterprise-reports-fiscal-2022-third-quarter-results/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/08/hewlett-packard-enterprise-to-present-live-audio-webcast-of-third-quarter-earnings-conference-call/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/08/polish-manufacturer-stelmet-selects-hpe-cloud-native-storage-to-underpin-its-dynamic-growth/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/08/steel-authority-of-india-expands-adoption-of-hpe-greenlake-to-increase-productivity-enhance-agility-and-reduce-energy-consumption/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/09/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/09/du-selects-hewlett-packard-enterprise-for-digital-transformation-journey-to-5g/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/09/french-healthcare-software-provider-maincare-selects-hpe-greenlake-to-accelerate-deployment-of-secure-health-cloud-services/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/09/hewlett-packard-enterprise-names-regina-e-dugan-technology-leader-and-former-darpa-director-to-board-of-directors/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/09/kaust-selects-hpe-to-build-the-middle-easts-most-powerful-supercomputer/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/10/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/10/hewlett-packard-enterprise-demonstrates-strong-momentum-of-edge-to-cloud-strategy-and-presents-fy23-outlook-at-hpe-securities-analyst-meeting-2022/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/10/hewlett-packard-enterprise-to-webcast-hpe-securities-analyst-meeting-2022/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/10/hpe-accelerates-ag-digital-transformation-and-business-outcomes-with-cloud-ready-and-data-driven-solution/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/10/meteorological-service-singapore-advances-weather-forecasting-with-new-supercomputer-from-hewlett-packard-enterprise/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/10/mohamed-bin-zayed-university-of-artificial-intelligence-advances-the-uaes-national-strategy-for-ai-with-new-supercomputer-built-by-hewlett-packard-enterprise/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/11/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/11/hewlett-packard-enterprise-extends-supercomputing-to-the-enterprise-with-new-hpe-cray-portfolio/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/11/hewlett-packard-enterprise-introduces-next-generation-compute-engineered-for-a-hybrid-world/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/11/hewlett-packard-enterprise-reports-fiscal-2022-results-with-record-q4-performance/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/11/hewlett-packard-enterprise-to-present-live-audio-webcast-of-fiscal-2022-fourth-quarter-earnings-conference-call/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/11/hpe-and-vmware-advance-partnership-to-drive-digital-transformation-with-integrated-hybrid-cloud-experience/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/11/hpe-asset-upcycling-services-chosen-by-yahoo-japan-for-sustainable-reuse-of-it-assets/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/12/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/12/hewlett-packard-enterprise-partners-with-the-2023-ryder-cup-to-deliver-an-intelligent-and-immersive-experience-to-fans-onsite-and-around-the-world/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/12/hpe-greenlake-adds-application-analytics-and-developer-services-to-modernize-workloads-across-the-hybrid-cloud/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2022/12/lack-of-data-capabilities-impedes-organizations-success-global-survey-finds/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/01/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/01/brazils-largest-medical-cooperative-from-santa-catarina-selects-hpe-greenlake-to-drive-innovation-transform-patient-outcomes-and-extend-reach-of-healthcare-services/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/01/city-electrical-factors-selects-hpe-greenlake-to-modernize-its-customer-and-data-experience/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/01/hewlett-packard-enterprise-acquires-pachyderm-to-expand-ai-at-scale-capabilities-with-reproducible-ai/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/01/hewlett-packard-enterprise-names-frank-damelio-former-cfo-of-pfizer-inc-to-board-of-directors/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/01/toppan-forms-chooses-hpe-greenlake-to-respond-quickly-to-demand-as-their-customers-transition-to-a-digital-first-world/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/02/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/02/hewlett-packard-enterprise-and-alfanar-announce-intent-to-invest-in-high-tech-production-in-saudi-arabia/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/02/hewlett-packard-enterprise-and-nokia-to-collaborate-on-cloud-ran-solution-for-csps-and-enterprises/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/02/hewlett-packard-enterprise-doubles-down-on-private-5g-extends-leadership-in-wireless-connectivity-with-acquisition-of-athonet/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/02/hewlett-packard-enterprise-to-present-live-audio-webcast-of-fiscal-2023-first-quarter-earnings-conference-call/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/02/ol-groupe-selects-hpe-greenlake-to-support-its-energy-efficiency-plan-and-improve-the-visitor-and-fan-experience/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/03/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/03/hewlett-packard-enterprise-fortifies-network-security-with-acquisition-of-security-service-edge-provider-axis-security/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/03/hewlett-packard-enterprise-reports-fiscal-2023-first-quarter-results/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/03/hewlett-packard-enterprise-to-acquire-opsramp-advancing-hybrid-cloud-leadership-and-expanding-hpe-greenlake-into-it-operations-management/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/03/irelands-largest-managed-cloud-services-provider-eir-evo-selects-hpe-greenlake-to-modernize-its-private-cloud/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/04/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/04/hewlett-packard-enterprise-deploys-easy-access-and-affordable-healthcare-services-across-pilgrimage-sites-in-india/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/04/hpe-aruba-networking-simplifies-it-operations-with-aiops-driven-cloud-management-and-new-network-as-a-service-capabilities-available-on-hpe-greenlake/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/04/hpe-transforms-data-lifecycle-management-with-expanded-hpe-alletra-portfolio-with-new-file-block-and-data-protection-services/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/as-digitalization-demands-increase-it-leaders-miss-vital-connection-between-the-enterprise-network-and-employee-experiences/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/crown-commercial-service-signs-new-memorandum-of-understanding-with-hewlett-packard-enterprise-to-accelerate-the-adoption-of-sustainable-it-in-the-public-sector/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/hewlett-packard-enterprise-to-present-live-audio-webcast-of-fiscal-2023-second-quarter-earnings-conference-call/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/hpe-and-tokyo-tech-collaborate-to-build-the-next-generation-tsubame40-supercomputer-for-artificial-intelligence-scientific-research-and-innovation/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/hpe-ezmeral-software-accelerates-and-simplifies-analytics-and-aiml-initiatives-with-significant-advances-to-the-hybrid-multi-cloud-data-and-analytics-platform/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/hpe-opens-global-center-of-excellence-for-hpe-ezmeral-software-in-greece/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/05/swedish-service-provider-dsolution-chooses-hpe-greenlake-to-accelerate-cloud-services-delivery-and-meet-increasing-customer-demands/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/06/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/06/hewlett-packard-enterprise-helps-organizations-reduce-it-carbon-footprint-with-new-sustainability-dashboard-and-comprehensive-portfolio-of-services/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/07/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/08/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/09/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/10/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/11/.content.xml create mode 100755 examples/llm-rag/sample-data/HPE_press_releases/2023/12/.content.xml create mode 100644 examples/llm-rag/sample-data/HPE_qa_dataset.csv create mode 100644 examples/llm-rag/sample-data/src/py/app.py create mode 100644 examples/llm-rag/sample-data/src/py/process_xmls.py create mode 100644 examples/llm-rag/sample-data/src/py/seed.py diff --git a/README.md b/README.md index 22d3662..44ce88a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PDK - Pachyderm | Determined | KServe ## Deployment and Setup Guide -**Date/Revision:** January 02, 2024 +**Date/Revision:** February 23, 2024 ![alt text][big_picture] diff --git a/bring-your-own-model/PDK_implementation/container/deploy/common.py b/bring-your-own-model/PDK_implementation/container/deploy/common.py index 624df67..51fd2de 100644 --- a/bring-your-own-model/PDK_implementation/container/deploy/common.py +++ b/bring-your-own-model/PDK_implementation/container/deploy/common.py @@ -243,6 +243,7 @@ def create_inference_service( tolerations=tol, pytorch=( V1beta1TorchServeSpec( + args=["--model-store=/mnt/models"], protocol_version=version, storage_uri=f"s3://{bucket_name}/{model_name}", resources=( diff --git a/bring-your-own-model/PDK_implementation/container/deploy/deploy.py b/bring-your-own-model/PDK_implementation/container/deploy/deploy.py index 2b263f5..3f62b14 100644 --- a/bring-your-own-model/PDK_implementation/container/deploy/deploy.py +++ b/bring-your-own-model/PDK_implementation/container/deploy/deploy.py @@ -68,7 +68,12 @@ def create_mar_file(model_name, model_version): # ===================================================================================== -def create_properties_file(model_name, model_version): +def create_properties_file(model_name, model_version, cloud_model_host): + print(f"--> Cloud Model Host: {cloud_model_host}") + model_store = "/mnt/models/model-store" + if cloud_model_host == "aws": + print("--> Changing Model Store to match AWS") + model_store = "/mnt/models" config_properties = """inference_address=http://0.0.0.0:8085 management_address=http://0.0.0.0:8083 metrics_address=http://0.0.0.0:8082 @@ -81,8 +86,9 @@ def create_properties_file(model_name, model_version): NUM_WORKERS=1 number_of_netty_threads=4 job_queue_size=10 -model_store=/mnt/models/model-store +model_store=%s model_snapshot={"name":"startup.cfg","modelCount":1,"models":{"%s":{"%s":{"defaultVersion":true,"marName":"%s.mar","minWorkers":1,"maxWorkers":5,"batchSize":1,"maxBatchDelay":5000,"responseTimeout":120}}}}""" % ( + model_store, model_name, model_version, model_name, @@ -124,7 +130,7 @@ def main(): create_mar_file(model.name, model.version) # Create config.properties for .mar file, return files to upload to GCS bucket - model_files = create_properties_file(model.name, model.version) + model_files = create_properties_file(model.name, model.version, args.cloud_model_host) # Upload model artifacts to Cloud bucket in the format for TorchServe upload_model( diff --git a/bring-your-own-model/PDK_implementation/pipelines/_on_prem_deployment-pipeline.json b/bring-your-own-model/PDK_implementation/pipelines/_on_prem_deployment-pipeline.json index a802761..daa589c 100644 --- a/bring-your-own-model/PDK_implementation/pipelines/_on_prem_deployment-pipeline.json +++ b/bring-your-own-model/PDK_implementation/pipelines/_on_prem_deployment-pipeline.json @@ -18,7 +18,7 @@ "stdin": [ "python deploy.py --deployment-name customer-churn --service-account-name pach-deploy --resource-requests cpu=2,memory=4Gi --resource-limits cpu=10,memory=8Gi" ], - "image": "pachyderm/pdk:byom-deploy-v0.0.4", + "image": "pachyderm/pdk:byom-deploy-v0.0.6", "secrets": [ { "name": "pipeline-secret", diff --git a/bring-your-own-model/PDK_implementation/pipelines/_on_prem_training-pipeline.json b/bring-your-own-model/PDK_implementation/pipelines/_on_prem_training-pipeline.json index 74fe993..7b73e80 100644 --- a/bring-your-own-model/PDK_implementation/pipelines/_on_prem_training-pipeline.json +++ b/bring-your-own-model/PDK_implementation/pipelines/_on_prem_training-pipeline.json @@ -19,7 +19,11 @@ "stdin": [ "python train.py --git-url https://git@github.com:/determined-ai/pdk.git --git-ref main --sub-dir bring-your-own-model/PDK_implementation/experiment --config const.yaml --repo customer-churn-data --model customer-churn --project pdk-customer-churn" ], +<<<<<<< Updated upstream "image": "pachyderm/pdk:train-v0.0.5", +======= + "image": "pachyderm/pdk:train-v0.0.6", +>>>>>>> Stashed changes "secrets": [ { "name": "pipeline-secret", diff --git a/bring-your-own-model/PDK_implementation/pipelines/deployment-pipeline.json b/bring-your-own-model/PDK_implementation/pipelines/deployment-pipeline.json index c1c28b2..75ff0ae 100644 --- a/bring-your-own-model/PDK_implementation/pipelines/deployment-pipeline.json +++ b/bring-your-own-model/PDK_implementation/pipelines/deployment-pipeline.json @@ -18,7 +18,7 @@ "stdin": [ "python deploy.py --deployment-name customer-churn --cloud-model-host gcp --cloud-model-bucket pdk-repo-models --resource-requests cpu=2,memory=4Gi --resource-limits cpu=10,memory=8Gi" ], - "image": "pachyderm/pdk:byom-deploy-v0.0.4", + "image": "pachyderm/pdk:byom-deploy-v0.0.6", "secrets": [ { "name": "pipeline-secret", diff --git a/bring-your-own-model/PDK_implementation/pipelines/training-pipeline.json b/bring-your-own-model/PDK_implementation/pipelines/training-pipeline.json index 2fc6874..e20f294 100644 --- a/bring-your-own-model/PDK_implementation/pipelines/training-pipeline.json +++ b/bring-your-own-model/PDK_implementation/pipelines/training-pipeline.json @@ -19,7 +19,11 @@ "stdin": [ "python train.py --git-url https://git@github.com:/determined-ai/pdk.git --git-ref main --sub-dir bring-your-own-model/PDK_implementation/experiment --config const.yaml --repo customer-churn-data --model customer-churn --project pdk-customer-churn" ], +<<<<<<< Updated upstream "image": "pachyderm/pdk:train-v0.0.5", +======= + "image": "pachyderm/pdk:train-v0.0.6", +>>>>>>> Stashed changes "secrets": [ { "name": "pipeline-secret", diff --git a/bring-your-own-model/readme.md b/bring-your-own-model/readme.md index 66a3f2a..faa68fc 100644 --- a/bring-your-own-model/readme.md +++ b/bring-your-own-model/readme.md @@ -4,7 +4,7 @@ # PDK - Pachyderm | Determined | KServe ## Bringing Your Model to PDK -**Date/Revision:** January 02, 2024 +**Date/Revision:** February 23, 2024 In this section, we will train and deploy a simple customer churn model on PDK. diff --git a/deploy/README.md b/deploy/README.md index b5179b3..9a8168d 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -4,7 +4,7 @@ # PDK - Pachyderm | Determined | KServe ## Deployment and Setup Guide -**Date/Revision:** January 02, 2024 +**Date/Revision:** February 23, 2024 This page contains step-by-step guides for installing the infrastructure and all necessary components for the PDK environment, covering different Kubernetes plaforms. diff --git a/deploy/deploy_aws.md b/deploy/deploy_aws.md index 7ab50ed..b82b688 100644 --- a/deploy/deploy_aws.md +++ b/deploy/deploy_aws.md @@ -5,6 +5,7 @@ # PDK - Pachyderm | Determined | KServe ## Deployment Guide for AWS +Date/Revision: February 23, 2024 This guide will walk you through the steps of deploying the PDK components to AWS. @@ -23,8 +24,8 @@ The following software versions will be used for this installation: - Python: 3.8 and 3.9 - Kubernetes (K8s): latest supported *(currently 1.27)* - Postgres: 13 -- MLDE (Determined.AI): latest *(currently 0.26.7)* -- MLDM (Pachyderm): latest *(currently 2.8.2)* +- MLDE (Determined.AI): latest *(currently 0.28.1)* +- MLDM (Pachyderm): latest *(currently 2.8.4)* - KServe: 0.12.0-rc0 (Quickstart Environment) PS: some of the commands used here are sensitive to the version of the product(s) listed above. @@ -702,7 +703,7 @@ kubectl apply -f - < CREATE DATABASE pachyderm; @@ -1116,7 +1123,7 @@ proxy: determined: enabled: true - detVersion: "0.26.7" + detVersion: "0.28.1" imageRegistry: determinedai enterpriseEdition: false imagePullSecretName: @@ -1175,7 +1182,7 @@ determined: volumes: - name: shared-fs persistentVolumeClaim: - claimName: efs-pvc + claimName: pdk-pvc - pool_name: gpu-pool max_aux_containers_per_agent: 1 kubernetes_namespace: gpu-pool @@ -1193,7 +1200,7 @@ determined: volumes: - name: shared-fs persistentVolumeClaim: - claimName: efs-pvc + claimName: pdk-pvc tolerations: - key: "nvidia.com/gpu" operator: "Equal" diff --git a/deploy/deploy_gcp.md b/deploy/deploy_gcp.md index c69a8cf..e07d296 100644 --- a/deploy/deploy_gcp.md +++ b/deploy/deploy_gcp.md @@ -4,7 +4,7 @@ # PDK - Pachyderm | Determined | KServe ## Deployment Guide for Google Cloud -Date/Revision: January 02, 2024 +Date/Revision: February 23, 2024 This guide will walk you through the steps of deploying the PDK components to Google Cloud. @@ -12,7 +12,7 @@ This guide will walk you through the steps of deploying the PDK components to Go The installation will be performed on the following hardware: - 3x e2-standard-16 CPU-based nodes (16 vCPUs, 64GB RAM, 1000GB SSD) -- 2x n1-standard-8 GPU-based nodes (4 NVIDIA-T4, 8 vCPUs, 30GB RAM, 1000GB SSD) +- 2x n1-standard-8 GPU-based nodes (4 NVIDIA-T4, 16 vCPUs, 64GB RAM, 1000GB SSD) The 3 CPU-based nodes will be used to run the services for all 3 products, and the MLDM pipelines. The GPU-based nodes will be used to run MLDE experiments. @@ -21,8 +21,8 @@ The following software versions will be used for this installation: - Python: 3.8 and 3.9 - Kubernetes (K8s): latest supported *(currently 1.27)* - Postgres: 13 -- MLDE (Determined.AI): latest *(currently 0.26.7)* -- MLDM (Pachyderm): latest *(currently 2.8.2)* +- MLDE (Determined.AI): latest *(currently 0.28.1)* +- MLDM (Pachyderm): latest *(currently 2.8.4)* - KServe: 0.12.0-rc0 (Quickstart Environment) PS: some of the commands used here are sensitive to the version of the product(s) listed above. @@ -160,7 +160,7 @@ export GCP_ZONE="us-central1-c" export K8S_VERSION="1.27.3-gke.100" export KSERVE_MODELS_NAMESPACE="models" export CLUSTER_MACHINE_TYPE="e2-standard-16" -export GPU_MACHINE_TYPE="n1-standard-8" +export GPU_MACHINE_TYPE="n1-standard-16" export SQL_CPU="2" export SQL_MEM="7680MB" @@ -320,7 +320,8 @@ gcloud container clusters create ${CLUSTER_NAME} \ --enable-dataplane-v2 \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --workload-metadata="GKE_METADATA" \ - --node-locations ${GCP_ZONE} + --node-locations ${GCP_ZONE} \ + --tags pdk ``` This process will take several minutes. The output message will show the cluster configuration. You can also check the status of the provisioning in the Google Cloud Console. @@ -357,7 +358,8 @@ gcloud container node-pools create "gpu-pool" \ --max-surge-upgrade 1 \ --max-unavailable-upgrade 0 \ --scopes=storage-full,cloud-platform \ - --node-locations ${GCP_ZONE} + --node-locations ${GCP_ZONE} \ + --tags pdk ``` This can take several minutes to complete. If it takes more than 1 hour, it will timeout the client. If that happens, track the progress of the provisioning process through the Google Cloud web console. @@ -715,7 +717,7 @@ spec: kind: PersistentVolumeClaim apiVersion: v1 metadata: - name: nfs + name: pdk-pvc spec: accessModes: - ReadWriteMany @@ -747,7 +749,7 @@ spec: kind: PersistentVolumeClaim apiVersion: v1 metadata: - name: nfs + name: pdk-pvc spec: accessModes: - ReadWriteMany @@ -856,7 +858,7 @@ proxy: determined: enabled: true - detVersion: "0.26.7" + detVersion: "0.28.1" imageRegistry: determinedai enterpriseEdition: false imagePullSecretName: @@ -894,7 +896,7 @@ determined: volumes: - name: pdk-pvc-nfs persistentVolumeClaim: - claimName: nfs + claimName: pdk-pvc gpuPodSpec: apiVersion: v1 kind: Pod @@ -907,7 +909,7 @@ determined: volumes: - name: pdk-pvc-nfs persistentVolumeClaim: - claimName: nfs + claimName: pdk-pvc metadata: labels: nodegroup-role: gpu-worker @@ -930,7 +932,7 @@ determined: volumes: - name: pdk-pvc-nfs persistentVolumeClaim: - claimName: nfs + claimName: pdk-pvc - pool_name: gpu-pool max_aux_containers_per_agent: 1 kubernetes_namespace: gpu-pool @@ -947,7 +949,7 @@ determined: volumes: - name: pdk-pvc-nfs persistentVolumeClaim: - claimName: nfs + claimName: pdk-pvc tolerations: - key: "nvidia.com/gpu" operator: "Equal" diff --git a/deploy/deploy_k8s.md b/deploy/deploy_k8s.md index 0fbb0f0..965e6fa 100644 --- a/deploy/deploy_k8s.md +++ b/deploy/deploy_k8s.md @@ -5,7 +5,7 @@ # PDK - Pachyderm | Determined | KServe ## Deployment Guide for Kubernetes -Date/Revision: January 02, 2024 +Date/Revision: February 23, 2024 This guide will walk you through the steps of deploying the PDK components to a vanilla Kubernetes environment. @@ -23,8 +23,8 @@ The following software versions will be used for this installation: - Python: 3.8 and 3.9 - Kubernetes (K8s): latest supported *(currently 1.27)* - Postgres: 13 -- MLDE (Determined.AI): latest *(currently 0.26.7)* -- MLDM (Pachyderm): latest *(currently 2.8.2)* +- MLDE (Determined.AI): latest *(currently 0.28.1)* +- MLDM (Pachyderm): latest *(currently 2.8.4)* - KServe: 0.12.0-rc0 (Quickstart Environment) PS: some of the commands used here are sensitive to the version of the product(s) listed above. @@ -610,7 +610,7 @@ spec: kind: PersistentVolumeClaim apiVersion: v1 metadata: - name: mlde-pvc + name: pdk-pvc spec: accessModes: - ReadWriteMany @@ -639,7 +639,7 @@ spec: kind: PersistentVolumeClaim apiVersion: v1 metadata: - name: mlde-pvc + name: pdk-pvc namespace: gpu-pool spec: accessModes: @@ -722,7 +722,7 @@ proxy: determined: enabled: true - detVersion: "0.26.7" + detVersion: "0.28.1" imageRegistry: determinedai enterpriseEdition: false imagePullSecretName: @@ -779,7 +779,7 @@ determined: volumes: - name: shared-fs persistentVolumeClaim: - claimName: mlde-pvc + claimName: pdk-pvc - pool_name: gpu-pool max_aux_containers_per_agent: 1 kubernetes_namespace: gpu-pool @@ -796,7 +796,7 @@ determined: volumes: - name: shared-fs persistentVolumeClaim: - claimName: mlde-pvc + claimName: pdk-pvc tolerations: - key: "nvidia.com/gpu" operator: "Equal" diff --git a/deploy/images/example_llm_chatui.png b/deploy/images/example_llm_chatui.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4b2fb84817a667fc5bdd317be7681aa6e7bd99 GIT binary patch literal 73048 zcmeFZWmJ^!+BQxpL#GTmw1C7A64KHkBBGMgDILNLDN3g_N-2n_bl1?`C7nYfAVW92 zH}3sB`}aKi$N$rRz3ct3Kg?RQW-jKw?(@9PI*#Ker z(aNvdF90a{t~l=s`HjSD?WZWhjh6!Tp2xh2Hh--9G&i#SwDKw zFykfxgBz*8H&*UlmJX_pI&?EU7E2b4UL!Abvkex;kZk6n&xdc((!+A1qGSq-qNAh3 zYM|)YvA8NvIaQ=fU3?yzYgl+FguG?ujeB}Wd@ts}l{_3j{1GLkv@xNEcg`Ks1Sv3c zOXx5aWe*YN%uEQeD!+x1wm`h!LuL%duU5?s47G3ljI-1qnrJXhqleFFhYp8FFxXCr z-@ffrbaf?VXkWLe*+NYX z?H=$RgoYkujfMrhLkC{ezzYox;}gbzeR9kC6Xt)t$5g!j^0bL+9}P_!OMaCa>qHRSZ(B9BNE`7f@H+uw%Yp%SHW(-PHDemJaNn?<{e}l!sfd0SV zCNX1q^heiLYyR&q{<1t6i`;q(bi)q->sA=hioo=Pg4yAhk~| z&g*}9QLUJo8}N5#_;VM2fU$(IkLK*$CC>8PWs}Z*D)J0-$KOBvJccr!sfiqYe1jF~ z9!W=+W1{u@?Bx-EO+Z+Bz9ry-kMs#6*na*LRr!0Pe3AuG#+IiRDG*JjF%2~3KO56t zbz8A=yTQzB9Ds?YO0rb>tZKZ2->D!#8`3j^H#zN-F-B-90dr2>Loa3RgOM2zHT8VY z3VUr%w!by-0P_0B$#zO1q(SARC29IcD&qQg|8^;Z-&Eba}ep zY24ESZgSDQ>&-N?w_SgyE&lSxDEd@|p`r-@Gwf6?{ny^boJfAg8IpjCCY1n-cZy1eEn*KwIfJxBtq`yCN=reaWGS%3Z{ zX}2-Fa6^XEKW|0v2jX|$2hHX=Ls}Y$&vqGarFuPko4vr*kkdu9`W&Tw+I=3MtI13) z{{pUZ3++4>kj;&^ze>t`*KTz;zow$dp`Ny!zQ|VRlNwE~fY%_Z;kF^3UjJ1Q=uC#= z?p6h)Ui49_pg{PCeVOs2M!crHSV{ctH&!(#GuZ(p25@#RA;;gS(eUra=|iX8hQ9n3 z4-j(=aj%mKu09RaYo+fx)Zdt{QWd4uC;Loax~oIgyxCC2h4Dc=+I-w5Hlqf~hX$3t z?+OA>P6-IfzN+JJPM>Bw_WEZx2kvoE%%%%6d$|<7Zc5mLQpxL<>m8JnH7`4eQ@QCI zRiU;9Hv*DXp{&f)js1xeOv!n3tT*I4zsD?}l%_%oH?~5-e#WpiilX=+ZpvG_Lw$3; zj@mvQ!MwjODi*(jD$ckOD)`op>o)5CmUHRaq;KZ%9O7E^)ou#3HBlh6YaZ*#eZJ!` z5j5w$MV9qZ(9?}lbJvURWvF`1(mZ_O^s-hjkbO-n)I51}f`hD?@F?K;YX46zuuz0UYBOelE?LnzOb= zh{-75+Fi#aaTgEDnpv$TDXrNDUcQ|KvIV#yB)&K1J)=I7fmpY`qJqj*L!KIQ*nFy1 zGlVDwd}s(8Dg0F!(DZJ*j{5R^Va7NUPC=yCS7Fw=wTq{?PfvQ+msetXXH?a=tcn76 zwf@u!c3vyo6buiFi;cVo-!ga}YV6sZ+#gi7VjzOQA@&K;2fgtoSBZfjl{_9j?&ApX z<`Duj`C%wQ?gY`ztkwaK*rDn)O~n=dpY8s*M#L#7qS|sKd_cw zTq=LY{?a_7BU$bApmh|tqW-{Se?a0yQ!HSHLZ7c@a{I^Bd>2W<=ZW!TgZ=Mo81U&Q5{y7GEB^%Ro1zRIr&IuFYYwp{E7Uz# zM)lzbOVz?!sye!Ve_0*{paqbiF_XSJ?8&Rz{nh!}AwQwG^zZNQW%wH=J24@pf=0|K zzKWHuA8cc_Rk~e6e{W@1L7+fxO)y=Y1@M|Z@mv|Fg=<*;%2)pTzCs#*7QM>hal_A--Eb7fAcjXgCHt55tbE zG*&+DZ>z-G5Rfs%is4`TK_%Ib2#hE9i7k8vqCI~h5NC%tpZ8-5Dc_9}W2d&yNc{bF zUG;!_n<=->OZwaP0l4S@K32H$6n>r=)lHuAvsVRdKP8lRC-!eQ3DowFet^LRN@L9b z{x*OW)!cxy?Wam#Jh~}6THOY=+B=|8{Pa{1#ojsdG0~Xjc$GmxLNalY{1QK z<^`^(H4;;R0?}8+=6Z^rjVS`PXi?>DGnb=tPcdH_Hp?DBZZC=Gx8wG01

aQGaX5u+1smeid!Zhxf6IUU*Hk2( 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 literal 0 HcmV?d00001 diff --git a/deploy/images/example_llm_gcp_firewall.png b/deploy/images/example_llm_gcp_firewall.png new file mode 100644 index 0000000000000000000000000000000000000000..6d4d7b04db52e38d1cfae49a7308b997d0ad139a GIT binary patch literal 68398 zcmc$`g{L{4YN@CoZ@M}^wsWw?!QqXyGB>Bx;^*zKurN38_Yk*nwJu&~J6 z=KhThEy%8h-i+@Vuak|9r|A*Xcz2s{vTik&+ml2hPfG+l@>C40-*!dUrQ7?bSdZSm zRX&)!dJD(k#*?R_F&B6(44wFDTqGosR}{-!y|i${CU74`P~)=TKkCCR9%Nr9MS4&M zKZoXVqdFKm>Tn+sqij%+@8-U^kJeD^FF$Y=XC7j3-bH+gj#e%zj*X3ts20K{j3>Hr z`|1tFQa3*(>syb#)n8&bg%fVm$nM1*xKl@xMC#DfD_W4}})$?_J*IBw+BgYdz~S4f9ZSpovT;>$|~ zGjnr9ZEM4})}PDEDUQp_OS}+xmNZ`TD{7qI9A-fsE_tV5WUpI4(0Z(^i^B(ghvDFc z+TlRKZ@A!x5&VD&$bkIsUm(I6c>n$0i~XM(OHVL3IEpx0s!Dg!xa)5Tlc`$=+al83 zXrWpdD3>NBt`Z^v#qpklg8+4fAOXpshM>XY4Zm>{lMEx`z{Dv*DG-QGDZL> zq=21+vg2xge@I(mR!lMKSPv4&qlo+eyyI(tl46UHULER{X zKZII%$EJf(GXNSV740YXv~T2Vy^yJrGJI+! z{+t7kfTX`*?d2rB#Q)ww8Ka1S)9-7R)W#crdy+Hpfofa&eZKep@__4FetB26R{VKl zs+>>RW+)EKTIGz8jG325KRt5KI`2WT@@DOkDd~xc=ftxgHC}Ef+s)*2#`;BM4M%Gs zOinRVerEy?KFoXldnpL)r5rNWpRQhQyegvBGg<3nJ@onBk8kz{QZCa0j&IKV)<;Ap z{AXL>o<d+USjj{41$FVXkFtIr%)gG=Z zKXOpRn{ z;*wdx&p0Od{JZ27bUknFSNte`ixZ{>VE92@NmYq=+?J(J2Oy|v}U z1Pn_xgA>)BcU3)G>)NWnWX)`tX%1cJQ@BiUTk2IC>81H+^=xw@5V%3XChmn%y?M69 z9FOPPUKMYqP@B{~9W|)-a6CC2bH1l&;T@E`-jgD>JE*VF8Le=^J6d8L@3UE{u~{)k zCPz}6BiyuovbTgk{G-rJp>nOD8s$7$v)f8%*3nF^z@MX?Q5bwL4*tanJSP#%hm{ipP%mV1R7YK>@HMIIfc@#oo&@8wMNis z7hATLn)(vfc+526pBxOESx?q@L1rH08;X0a7q^$@^AhH2Ckehbt@Vc2T=|7qRM}#1 z2%R~`C#LNX>yzcIa4J%_B_2MQ@SN(Li&hY15PO^u%c()sWL`urf2>GE!_b9Zv?)MkVH0rwbblr2B%Rr<`B~4nuwI?-Nm`ahbk(<1 zrkYL3*|v$ti!QECl?${J;KHA^kB_r(a-^}VgxIEB{5g|R@42p?aGg6Lvpb$g-y;&) z@A~}g@Y$LuM|)?Q)Yo4Y!J*X?U`Jh zZmoCnwL!ZgDLdDt)O)1t26LZ9BHbg=KkQRwJPUk2!lk6tg_q?^Nr!_yX1v#*B^RYS zeI0fpclwo=63?kYR=rxY+jZ4&b1~KV*O9E(?y`*yG_!yycHUvC&g6uN;^UZ3U3@xQ z-p=UVyaxmM`N;NoH)3Bl z=f-Q-NE?;%l>R%}_TM509zQU~kKFP5bp2=0cecWS;xS}$W9yh773-j*QJF(=Ynsiw z=fAX4M03g}Cg?+msf8_$Gk4=acYJzS?^j!Mwpnf2WKMCY_6_5-h`5R1?NCV(w!p~#*&h^j zTh!T5d#tSElw=(yGpFVHMRbzhgn*8!gtEqSxxaBD8s9k7Kvi{wA>#FNfn-&)?y){T zbMM4g8-0;UhVR8Ippd(VK4rrKffz+f9)t~fA+7_y5lRZ zCC(%Sm7$!ByhS_rxzu6wc3-9U!IQ>h0Z{qe@!RU2pOq58@Xfxy=PH}1nITo0D6GGz zN*^n)TmHqa2sYhJ2y7A=MuWCApN6nQgu<;co+zFm;u@u8I8>}s{WP8WqJbE1(Wu<% z9(ghxk9)O3RVxra_O}#f>LGhs>HX;9{IM7jKR>aXumC!{*?S#vX5yRV&7f_GVPV?+Ffy)e9#Z=Y7sn3vmG z)rUD{I?FrWS5B?Wb-$~r_&T?=2QS{9weuQ$UPjq?JFJly?{HZlQOu@SF&*+J}+C}Icj|1dnL+&{xa?A#e_%0WS#IXB!*jM<;a1+aFRwSxL(88;38wCv$ z;Ps8BQKQ4mCEP=--AT(Qh4R{mwjVb5Dv%pY7tHzfK5u8;F(uCUF0MP8e~YCfHh(P&AXC)&aEGddM%jOG=(p zdeib`Eowuih8v;tkSWeV<#sfaALHqTA1@P2YLdd086OHwygVo25e zOzPO)*?lapq3OEtwxJiPjz}FzTrov&78e`j__DPjbo+GXg*AHK7HrL#y3=oljmqO6Q1Rl5L?d1i`&Nsdtww`Yb@1ixA-$zz_rRq47APK0s^2&8MF zBS;Op+4u};K=91MT%O+hQ6^b}(pU^SavT+wY%h-DZ?1+E(zRq7z?8z2Z@%|4+Z^_m zXH6=FKbXO6aVF+lFuZ5A3{h^oJtG4TW(}lX)VNSMQeht3ENqW0Cz8!KA}4VrU)QXe z6!l;*#ff~BdY81;e|w%xKTH8nSqz=V-8;+808{B>4MT46ehd64nJXRB3@M~gmYwtp z@s0jE94RlvlS07`i?Ts9hDm8 z5zeL0wgc}6p7SeB5L!TDElItsx6=*xHdU164zZP9IYNm91h_0# z%>jmBGj|S>_Vz{Jfw#?`@9Nz+&TZ5Ue%&5O^m+(B|mZ&Nr8)BP9y%^r-P65CRQ8NjYo8Pm(|aJ+-0)A`Fq@pA`9Vcwou z_I*Fv<_Yj+M$vHYzZg$mu2GxO=kzkp+!AB>MInLt7`WY5Qcm(~=RK$)!L)&Bc=GX~ z1O{CkFB3v5Q6_O0Hod~w`CF4(y&P@m0#9BcxkgAN*Wcq#h3VAD&rD*Jwc7s4(Y{u> zls;H+>QTcPN%V>xCY+~K?lf^tqnnj!qWU0jL=+)l8XY;Y`TQs(p=PX72f!hBc#Dih z^I~NSwcf6p;?Asg@ETkR$CS=+7NJ-uhN^Gw?)9^;Whh`=WaIg zDYJ!qDz($%!Vgt%os$4n=U~??Cdvj=Yxha&;CO`cuD7|1v3vW7_lX`jO)0F!sA1Z5 zmd}#cH11bYKt6k5Ffw4?bYE13o?&8ntlYU!>M25iJ_w#A%jxS-E84-{>`pH1Ji^df zP9M)(7sRSuqgXMm7Ok!9JDV2|#b_f<*-_4S*e$0ahkD}E6VcW%x^Ox(K4YH1ZIt=r zd&9&*?f4-#$#!Ff$r&5~x022aC^$ZE98uNWY;Vcb+-~2e)$EOWHHtEsDnSTtmmX6I z-C~(DA{+*^Gmb1U08VdA*+Q%uSs1fJM7LOjdQ1LJ09-UGK=4p_U%8avR**40y?WAQ zsa^a8%?!(4D0^`5NxN_*Z;cdvq_6~meuP4VAYI#7>+h-Jadj{R`!Fafc;4sX{f=X& zC26o)(3B0-2>QlRMoKpkBu7<8^IYJhS#qQA)?}?HdfQwe#5A%`b}v%TEAZ)~nv)yL zjbUD0E;;}bLM>r08;V8HceXL*t@iX=_=`fBbdwC&6&Oa*py+Xp5*fJ7Y3_}~b*z@c zszMJF`|$;E0dFTx4(7oK&7;&w^C${2r&O0bt=*yLkEyNOBY)?0KSnAOp7mU#kD`!2 zZIYksd>Z}At}*PjrlV*&1EJ8=p(WERpcL%GjQ2Ea*mDO*j43repcoNKXNOG7+qX$R zhYClDqZTY%>~xd@Zxx8-5aw<+;P{p?b04c#jx5%XRPC_dDG{u>re5>0yv>I>35>IH zkfNfSx$<1x=nZhm=2VKjo#B)|o1gA{Sd}#b7-#sFuZTbGBHmu2%JPa~3vn+lu2uRK z&X?3My5RWhF9QBxRf3EcFN?2h z1Ix4!fjIa&P-bKHz-@K}5ro^3;FZUBUP67~@HFT%ot ztRnc$259Q_J`F5i`}(@bo}0jK6{=(B<1yIs|m(c?wxXTFNo>p0Z-nP{;Lrn1;L@S$`RIJfX^vM ziY$UiSfuZIAFf~7Tl^kzw@r^q*zxzZ2}$2$m&%`lR=ofZasZw?sR@=BNdY9~hR}vfKU0j(s}Urj^M5 z5K1K}0jNk@G@B5ekZHm~chcGg1fNLtp`_}xRl#xILy z;V}W)IF&-+Ns42Za;+FEx|yX;I$H5G3vkC~{sUks|L3ydo{fCv_G_w(J(iMGEg9qbw|QL-YH^>b8ABn(NtKVlVaM=3<yQi4d~zl z_oaF}=Z4x&lMn=)upbC@P*QPy)&G_?FIf439G%|S(fIqqsDsDF_M;caf2yM*MMeOe zTI(0MkbfVSYv3RymG4ylU}P*z4#%;{BKzk()088Xe=vCupWlB|9(i3O&S;vEw)b5< zUwj+OYY+Ve3Ayy!EuTZgzw~yc3>suVe#>9X#}=l1c4QLw&hI+Ir_Y4H=MzX6<}P}` z$B?a@8_QquB(DCTf$1Xce4{vinQGZ^07^mEu$g~;A$_>3B)F|)O3k;@FH(v`iWG#d z+{qT6D7|xoXphzC%zi`aNw#^5cMbi!4Vj4mysOs0q{4KR)_)2+pnr z<{#yMaqbb%4+J>AyB{;M-c>O@r^WK!x6;qz#+>UXZ1h`(zS{I*Rk=+k{+k&%HZTu6 z7j|yQ+OM?NzW6^hCw=Wom&^PGHM{O|q=QK|V^^RSx4-2#S z8hn#)Zb>-H3JpEE7?vnqi=MiaSt4yceQ?6`^JhXU5Sdzui_7Eba=#&v&d`E-|pCAB6byj(^Iz{aQ!8|4+MB5QY6Q zf7ykb>8eD>XPwKFvl@pnSEa7RzKr$$sD%jqt5?w-Plms{>YB3uRN)M4;YN&Tp!$Z; zt>Fh94KnfchXWdHD`D9{kV;re_t7h;-jqH$S$ap6b!8yk?N{DI>B7kJn?TpJUhdD_ z%*9qVFctGnFNilK{E4sL&x_&Ih&mplu}IA?G$=Iv@j;&r)UKBaR}J*kqnH^oK~-pA z3w-9E9`9T)ySd3IKAXWT=lW2>QI_WpH}lX2osjfySA@^Cyb`~Shh7D9dQzT;pU*9t zWW?%aGObu$T&h@k6h{+!~Dew)M8{I+@5 zvqM$3!@5;1`*@z+tNCZS&63*6lw08#Z32_DdA$z3o2rLHH8RM1EBE=3%$Hl+JenQ3tnl5xU>_~Is3D56Gh<0I?c1W=PLnw^ zTlr;?lqMeO>)468v#b2Uq-3IWZIGP2yFc)(6ow{YDb=53EHNu{{gP1c#sxrY6@9jPw{olQtaO`@%@>Kd6H3M+s_zERoq6w^{I2%flcBgI zQ*W)_cM8tqTPxOJ&RmbTEmFj6qKv!&#JioV!_fIwro37JK@3#vXG;Z*yFk{@N$1n+ zpo3M-7->wLKFnEit6o^K+3gx=PFjemjJ^Lc?N(yS2VZ+P-Rt<7?@aLu2X&oEr7~u7 z!gpFCeb*E$ih9s8HyFt~i1x?|yQJq*(78VQ_2e+r0jvAllgZo!4$16zE@FKx6}G}q z$Dl14r(J|>{D-8N(v{nqS-GQ+`mg%r*hQ?nu1;Ou{jj5_lXla?xtJKuKH!vE_*CFEKg#2IBi;9tb;M3o z&E*QIQ%c+Sui6oW7u^gPO+)+NH~$=7*2wchqX#<5$r+;X=NE|>p4C2Ib98M?P^J)#y5?gNK_miiHlB}dE3a)A4qWj-(~usZ(SXStkIBoWrikaC@mQGdnQxj9koc+2Z- zqddp=WS8;&%2a*57vJgDr)?nhCjg*OxxlTT&Yy4i?Z-2;n6&#cGC4Zex;s%Mz4^Xt zw?O&w&GoAW1wVB`^-H7`F#H%c`prJcNPpw^w`UA9x!}XKXPRE*0A3hd!ws-Ze2I1U zjovh=g`IY`BrxBjcht@%GnDXZC+~f^-x-KUnEjyG5@WB-y9O+Ye&Jzap_+`Pnv2sl z{B(h^+cgb4z^xcMox#OO+FYEU?9RvQcTG12P3-9b^+heNI*^!M3&(57J~El*jQ*PvJ9cVMYCy+V0ty)U>*2$#THYi<)7PSxZ1+``KVsm{0uT46w&-1>kf!G5k!hJ1a!0&J zZ1oCPzUX}XZdhOpKU{yJ-{?uH=>oYti`ELbGZRwjJms%1Smr&B7|hY;@f?2|I+2jE zRpB+a2;b_CVOP0Jg1lS+YQ<}Z(UQ(67MbjaUmx$bQ0aGo?J$3a%O{IP(kU$*L&2#I zYiR(5bm42C{NQ1e7(^)U8`v<1YwxcIwSRJ+s@v_A*;4f(^O2pLA^rUDYcBu85>-j7 zAM(NONZvd;0?Te7f!QN@Y55-@ZLcaT`W$UO`_fVec1F{>lSQU{w;$PBn{~^y!f>Rr zHbM>5l0@LDbpxLRKRx9~j)m zfBTmHJ%NQ#H`!81z^D89hVI{|>k#ZW`{s@KMJideUlGoeeOkTPI9M;mSYWU+x70}xB(i{x&wU6TJy}(T+bhu%GWx)PLAej zz85N)k~Q7CATfO(UC+xG?b*e7Nl)=}ZuC-a9o_xm+AL(Yt8TipI7FDyH2~4{vMVap zI5TflM>MwGbwP_$Gpf$z!r$VZ6}NE`CC{EnSkk!Ho$4O5RU<_L(yPmN!oQ#pzoC?O z8%mw0Ot-T)#Zg&NYzn5*9_z~!X&K#HwMXfTvFE_py#4VeJ1N^t2uUgciy@C$D+Jv-Uh-x8I>0-{(3+$@1vK; zIYY-mhJmMZqCdHq+9RI6=DT-$N6MlJ8hHKFgW~sP3t(SP8pzVHzg2`8hGU)rb8i>e z;;SC$I7CU1Cww?$&1*R`)ZxIF+ye4VhhsVJ#fOF9o$T=k(j~*tm$_ebf7mm+?Wy%K z&)YLAJQ-(ci^)43%C>U)n5~}Q!|l14eD@P;_2pOl*87KxByYY1salSlOI^OXbfgOB zd!u*bb*H(qMUr)vR^AIGmj`RsP1bul4~>^pq8ERtT7|tEVN|~J<$l_0imV7*eJ&J* z(OA_&y)_D6Xy~QxB;HwP8dRPeH!9(?2q$G@S6JF2U0O&CXQ*v;XD}&U| zL19cVN)&suHe?aOV%nW5S?D=r5;8(B{v@G#vl`2KXm~obPglPbUQ1XIuqq^6dJ%*9 z(7_m`RcW?tR+1l=DTJ$IOTKYi2k!*4%j`YrpozsrSYC zo2ZFhB3Gkn7Nz8mmuvV#YgT@O^8-9?+HCP?5~Vv8wuU|*OSh8SQC+Mz2dufL5_uwd z2xc3G$yh5;j)o4eicW?kiR~bcgz<#&?Pv{`D9;d<1W$RsyoDH*;79Wc_uo>K?zE+H zL@0%EqlEmOl`eWNY@ZBW(M@5M7=!D3#B8(<>?S23t>MZO%(O=Vz`b37QNgX@xus*`H#{l=p8} zo$(w)c4h{d)%95H(nBjd`PSH>4EwPUL|7(p-7XmwC5&&$3Z}2 zP|#dtOuu(5Ipu3GR8v+lE+o+e%1SW%hbpcjyAK^Mh<`^rE?d5;;V7jW4jZSohlw=G zgdEOEM+OvE7o5mhwMDLKDLM54&wq$&AAo_YSMP?)vIi$OP;IRJ{`SR3aDF#K4)&ev zev)^&h%rnWcR#K&G1iu2s{jwZxS2@hb+)_@De-^L!kxCP{{C0*=6PaSHv3ku@Y&@U;E)c#^%zwm&yRU~0Ba~i`347(s z71kYGntLF@^XMQ?CJ^3}=5Gag7dRBJ*hHZTk|>L(;q+m2g`UV6!I$DZY7ouvHcyCL zQ-3_4{jZJ*$9T)?c+1qdxB#ti-w|#gK+P*5k+m`BnY(1BOD2Z~iDOOgaH{mJdbxt* zc}<%x_ZDe@Fc+h!Or z4h*0KnhCGo{l8itRyIM9fP)${dfc!o*gw`{0??HdpO%RJcaS*(97JH99`vsiqlwG_ z@)RUI{`LPAT7tkq!n}LT|4K265L_-0?7Eqj7x~{o^xz;H{M(W&GgLJ-XSQ-3~18mCMU>}t7JudP&A*SW;-vAWE zy*R;`}d8c+3xqfyNcs0>&@C;@r!F5=IPZk79|ZGeyt5 zDZu83c0oeLbg)=945+Cm;AC2L@8k;8pb+&8#X!j4$P*~o>*c+G>}mmTCfjAE>6G!h zONMc+_q}xQ)hi4DIUCoYZ-vubDPhJ4~7ihm|4A`XwpSo6AnuNsTnP>fn)=6h(&B&;41RY$e6Dq-4=T& zU>|tW(aPnc3LlBb7_ZqPqvZ~hCwe@=NFq36qy;yC)L(cGl4PgQdqAH&>IVh1tH7i> z+yC-nvrLiScej%V!}ebO`Kju|i9`V-lv+47kfe8byIsIyRBWQu1c{e$!gE0qR@nzN z_2k1V4b@Mj6Ixf4aK+ByJr`LgyaE2t{palGQz7$$fUgu5D?7C{PA5k?vI znvg&N<B_OQ)P~+(}Xs zfm9m6jw9rdsr=#*(8mO$YrOVWv57n(5TJB7y9K95n{W3AS20RD@oy(iR~$|H=!4K> z4hMmhr0^DA@9%H+T=u{6u)&^*r7iszL^SgtX*XPx3P96uGYThAJAnToLPU@H-8cax zdn2t>iF{Mq^l(J;1yHyDm~xL-0Fd>AM*yvXM4Q9J8uQm)#ezj@@-DCFvLlugo7wD4 z6i79fNiTU1ChJUx)$iCs>71q8G$`pKV2rMR4u;prrvRkl0n2!x!V74y*&tzYdM$)a z3q||BmWo@)<%{Ankz-#xPxQF^pzfOtTTc!!sw#xf;>#UIe>g4r&{NT0vyIsfq1z)Q zDI|2g)%#Xvi8f>;U>JI7)?pE7^9_J?Mp|Wd)HH_yK87HZJwc-ahJn@-f>7YkZAw39 zhh#Vh{27*&VVSEE{aGlRUyRRItpTDpyvwP2Ltqj9D{7)~< z$O%4Tx@q*)OjUj`TTax4uz7_+Y7&La3euT;;zQ{OXSmy+jyHR3j;~ydkTQs>_Onpo zS+O%XPgFgl=&B-2!4E_3-wY`7-XGAgo^5%#nplK9} z9{2_DSt2jFW%j@ksr2*yUTlC91Qa-ciINCnu5084y8JC@x{6*90CF|wCzg$zVmC$R z?xa|y(8}QkC+*yv5kF@GW>5YbhX~JeGNc8a$JFzql_1hMuN?()5Kst;qv1zz3vX>9 zcCq2$PvndU)saxu>0}Zq5%hH979tK^TdyI)()|bQI$EKMM0Bsx1b$d2g74s(p|l&T)W?vRhczai)_*L4MgJ;J9*w8$N>* zi1&2X{#eNufa&pmY-R$wQKW^j#amU5A|Y97;7voIiWDx-?@a53&?_0U(!0)gWEOjz zyKt0|J;ie-B~gaIhu3nX`|fIWCR~Zfrn;)4{hN{kXoM!O1|N}4eQPOU^FO~O7c}se zO{?^HN{MbR`_Xn!!`R*irIm$Yf z7aGqh(U=nb`@DFK7-14Woh&gJJS_`6LjyE!M>B9DM-_cY4KmobS#xrda5M0-9;f^o zKd7pwQ6)h0yhBb>fGfwAhgQOkytY~!vb_3>=!9n;{$R%vKY~VJyRDzf&5=!r)%g4+ z-A@mJS^V}H|KwSGlr1Wz2G+uB9!@LpSpgy8Yq`@PgONp;sX*SA6E>yG`TXq0H7NWO zs}v0dS$ZWwB3UUBhG1w2pN2eX?+dzM%HLsot-~&)VS{6hUvIL>N>&gU?ji$RD1yUj zgwXB87TPs;T2RqjxP@_GCtRTnyVYPGaK-%fjhW(&mkuPf@~p{=I%+CHXTkYw3#bCdR9uI^wB-Te1yY2>WS;Cn7|h{*F_ zA{+Xw3Fy~Y2o-~dTI$RmNRZCr%Ebx)Qq~E{HbV>b$F~p1w1j&1oBV#)c!mi!yy|`a z8vaWnQY;?W6{vwka}%+?_)>VVE2Z-f?(SdMa0q4K126M+e5IQ$>NOd%%KGRNvB*Kh zYqZjdz3$?kXTh;kPz*Lj@(*G}2|z>^8&LU+CF1`fITTVEx7qpsdfOdXv#v5al9c;@ zKrSO-#`AyXo+ff0pxNMYjWz;cqW<%#HygHPus3B36;4xj-^=4NY(`sxqJ`22ptjRr z)d2|)Cd1WP3#2HwvI6^MMgqu*626Mm^_mjJW*Vk&1)g_5eG68GEWE{zIeA;P;R^@Y z2_yn(uHIjE=SuZ$~Q)yjp;>Ws15^V`>xrt4Ud(yegx z0Mu-v#}P-rV_$8#-J+ zfW%D01rXtnlYy8$*WGz7EPTMiBAa*ZKRJ@?^FXk%#BarpEF7zkgua4>bkW?;iyfVl-uJIpx3yw#OGg}@AY9GPNV|E`s;TqSA&sPl9Rk(1I)vg zmM6dRKE;3VSpBJW)VfayS;b1=mX5zmUw*oNguO>N_8w1=UJR%hdMHx!^W9JHXYrTX znQc5Me}R?<-7<$!4&XWu<^mL>FFYs%jVx3ujbs$RK`UgM$I7U)d;^R61DCG9x%#NITG(@Mo2!zP}c1= zw1yYJirCNhzI^6c0)c+d_7EW7zR5HEc4Ih}-=S}g_56|;q2BQ+6FdqiHpqSh>RsO( zgBuWBo)~UjMz4);!#@XI_r6PNzhV?0PuHYh`rG{Ay3o}L@QDzJ5hMT$SM>=Vv=>Z6 z4uFqwlFp`|%%GFJMVoDmN6wQOp;v7?H zTKJK0Trvhs<=_cW>12$nYqmSGbQad&iD~tharvW<6@Ujc3 zDZHqyv#4J&Vr5Aw#2YH1I!tCnHwDJEDG0~SylKvD{@%Y#Qn7>sFqk}fCsY1^pXgvh zupqXNnZ0QKEfX<$U}{lcqEqR#|0S_ASjH+VuVIS+zuIyY@YBxKxy4p2i3Tr4G(xk; z>1VPUZI+W|+&3)f=ewUr&)S0i-=``W+l39FC2x=$t4=kEi zxG2>+AZ!O1xX;$W#k#9iME}d+IVfPZWF$}gfz-c`O1=p?PMjj#n_5QtE8T3~&XZa~ z+;Yq6*SJ=MSwkAx9B-A7Rr*R zj{XPbv4TJJ{{{13cvY9b0KU0q6P)Vv4G4gVPTQu z+UQrC>^|lfjVyV2ganhkVXa`^pCsD>7t(MEn2*_jY&rcQBxg+^WJN1Buwr_dOy4N@ z*C9n@LB`|Mt7%N*A8AB09SY$#N19^$;H12Ev#|*g?|5Z;I6I{M>7&+gnwQFGU}(Co z{=8z>pP>}IS8hM7M?lWXY{7Kjg%p9076AKKE$1OOxjwu}w}RDP#&Z+fr?tZ8bPD7L zs_``Taj-<`GV|mJwzeU%|KZ4$A^{^0N!ZVDZz3^dEGGnGR=%8wW4?s5y2PlFZr!LG8rW5>XUF z7&nMXVIAzRhcUp&VeOzx?n@GMk_Q%qwW%1+8zsWn z(dhG0u*NWi4|D`>>x&1KUW|P$C`}wP1+b{W))osT> znj%98Mn5Hd`|d2EI7d4y5#WgD8V~2+POC@T^O{tZUiH0+!_neHIxv(^<9&f_!ES*@R?qI`DSH z(PGo^qB5I4R?@H$ztj;lM36u zNZDEY4#^Z*uaZ2I>ifX`5dbR6YXBhZuEXK^2*!@H01HJCG+SQgRViDVw1ALch9&q>kx*U8IX&u>j7dVr%`xUHW;@X{GBLT=Vl2v+6>avn zH75hP4vl71mO@x|9K8HA36f$aFW|||Oax`y2(Qshxw7%K!uoUAyAg{M!6e{n zjzrhM>v=<;g(YaPdbO}F)^SGTpZP{VC2n!W&3pqI{_M7{qJhxZ?*=n18DaFco!P70 z>y;6YrDbQK52kIpi*Ox@mSuGo;_^SR`Tpjf&qt->3_40#o@25Gyan-uuNxu51kCI= zkq`Q_luT>a*|9?}(4zy+!WbbS#E80}{YYIIF)k z<{Rl;kD|jvT-rgenH*(Hp{QmXc=7Calj3&HY&@kW%}+dhbhganfxeg=zH-tyY>+W6 zrm8P#e8*K>k1NJl!OIjYpCu_OvYKu1)>M2t38zaVnJ{BFMd)GBfiCbew33VqRrD*g z(!=qzKQHOln{~zcb})Y`l-lnLXZR```UX>bJD*Sq*$TBhF>WP}iU4nwDjhSZF_)>} zw%LIY0Hp}a*V-5((#TjmT;Bq^yvDkg%IDNwTT|!NL>@ z;WMwXMOv=A?2PEm%;q#(Q&xBY@HgBWr2(*CFnM6Wix}Tn^PX6H7SEP)!Giyo;@{f` zvJQ=F%KyxU04U`fAVMosJ;usB|GaRqt>!M-c>vA+i=#5(s0U>KSTX>>%j4>lt*|&U zO>Bu=(yIqVbqUkY0ONcCg!#e`_;)6&Vp<|8zKN{xU^D7KcPHdN@jI+>r3{nA?V$^) zEMF(SBWEr;0Mr|yE`}}F z-2Z2N#FbK06q@ckYSw-my>K%T5jMZxkXXvp=PW}eS zrgW7jKmpH~xcORpmXqD7<3AfVtL6etxb%xJ&^=(BV5ThgEp~4M3lK2^S}na*g|n_Z zfMY~K*Y(>O7R&kFg>GqON$!PUrR;_*;2O}`4Hvw{RwzF8B63R`kg~#b-rFz-Ry|-t z(qAfRgb@NCtM7igEegULZ(Es7(}B>r>~)I{JN`8=;g^y%^7^Kva1>D>5PA)PJbo36 zl>xg4y+I)O<7CA8eE-%7K-umrV(CWB&>}OxlN|TepPdJ3=G0q2c!xFJ7S_=c^*LPE zq{?oxx|6AlFK`ER-o8D!0RBQE@NT-nMFS`&!1svNcUwuISph7i88yIB{&#BJ9?__6 z(#KcWWYIo00{0L6k|J8_q<9#C4?llCBkUL26u)l zxCCI7TvOKId_>dVmK?Ug%Rf!QQ{Q&N!2-poW`KSQAlh$VfA>8kMZ#%(nUz>y4`fNj z-?dH9cjJe>#Y($A*IA_9HN6j3X}UQd03Th1&I46unpQ@e7gH7 z?(k7lh_uiORvKy}`j%1aSzCRq`Le-X`L@A_v3kXR+=S^WLOimR_dp4H$D2TC( zn;9(bn6r)%b4pEVD8RDZ^baMaRV)jKr=Nj7jS3eFu=SZigJv^jBusw+o@Pxq;fY!@ z)Q;tNaelg1=n6~%B_nf967|BIP*(2_+BvKrLQfess=*XO_gxzl8BK4fs7)`kQcX+F z3lI?Oj~O&Dd!EBek0LF1o{|^5R|Kdh=vM*KQ!#nucP?DYus1mB^R?iC`34$4J5){H z_<*5SPQg*p%sgKy#N}>z%3V@UiT9Dx9Y^mVi|69Uy6a&zg5UW4Y>?LOyvXr79lL3lZRsX%!Qlz z|7sQg{QImnc-vzD)Z-qQCIejD4Kk2cj}Czf(G4sMHmk}CTI^E>bRfZkP_>7CAcIx{ z)TQS$RiGQ5(R#FHT*P@&wi4t$EF}V${t?|^Vh~)04l+#3JKjK8(HOgNo(02MSHhJn zp=!Czsi%`bzj+{RXal|)B1?7x_+!vnWL*e@E68a%V;izcKLahZ3m_Tm^^xM8e8XsG z5K*S)y{YKB*mDIa4e_A&yc>9-JkG#=5GU=FH*dgU@vGI0<=A=ht~{NXPH_3aN{`8R z^4|@G5(W(nfYHN(K04`*MD+s#o7`CP9DkO>@(!U>c09Lk99AizGxKF{q%U>@at4N} zoJLrv?%2}d4dVw+h+>V3=KTav(F)D#VM5v?n?bgL znQ10v)|96#3JJ%7EtLvq>tA6Xs)2*-zBOsGJKxF4bt54Ld~tw8lOI|K>5EN^({OH2 zH(ID!@IkFRD%wi1Nv8;o6E^GajOY2r zf6?Fu`ctS)%&Oc!{rqB}FRWw&ntV!YjD+9dr`3ZX5C%d2J7n(=a8ocyT-fg%D4Tgf zXBq=KYPzsG6!zhL=(EG{p8qkP)6nPFHGrsjCxWk#=)xnH&6wmHPX^h@>GbEoIrA>S zT63@9nf(3-$h;R-8zfEB(}koT=^dYgXE_H{k>8JdxNGc(1&`8G60v&h zWF+%+HW+w>8r$100M#$A_hZ$~iDacJ;1HcoG&l@_AzjC z^j8AZg!T;T)vSXu?`l}?v@tEmt->H?=UV^kE+a+X_J{vZc+tFJ6EN8iq3uM)&|hUr)6ighRu`slC@hEkJW29 z*RDNW^suNen$N=pcK90rUD-<bX7+Hrq~(2)OXd^*EWsVE zAUBm(n3i&Hcpfxql+I`jHOM)`u})LVkh{}0v*o)ln~re2PksXLieMVV(uB&+-iV!u zNUr}XD&m?IJQw3qd(p-8@uq<3BR?~`P@z&bS-(Da;H3L0NT~?@In@gEkaqoK&I6DD zoSW1JC)lFF@#Z-I)Wfibq<)z+i;Io!jFkCs0sYUBvAel?nEq6)`hn03-?3*TGkIof zqckO`*)tAmv4ZRqrx_^*)oR}M_bif(ZM-~(Xc>c({B z+M0Z7xpqridFw%di)(Q=aifLKp^Um{?Y>nr1Y@mS4o`~r890GD*c14>#jgxnirQ4N z4lqmr{MXmO)NfdoZ-d;6*%^S(oH~`~Tz3&6VH(EPW(hKnI?wc^K^uOYe&j}+q}KhD zJe{*3Smn*UtmW1JFs9AyR1>t%cgJcffr@ln74N0zY0`oz*RXwFm3n?8$$WE5*c0IBNc7A(xtrZh(651y;qg$Qg2x+{g29vrOyLuQEmJ^#6bj z6g>6_!!V;OgIMk&{psirO%kyg?!(S>9c&G1oweSit(>&%iOjq${E_;W+;Id)&Im*;y>)b(lz%bWA+b|b|uPC;Ncwks?)2{^vJ%GM#=@BUa>p+NJKk^Vl9Kz?r#2bo-eoKp; zmekeKjL~|x>kSv>1ZkDGwBqJl=i9!oc1VZ1HgL!Ci|BK%jfqBCX|o_tR=gD;S}R?? zNgb!sd&+vg@$lwqpCdhlLC42Xm@K_y>NxXby68Lnx7-iuT2*tFwYs{zVVrAO4z(^O zq?dc7?x!`xT^Xn!}jV6nZsKBF7LU#0#&0lsY}1UPOe<8;L&9o)>gOumR<4cC=kez$yN@w zc{nCEa6bC@`HT&3Ko$cvdu|xjVpen=LA|nv79(AvdWxf3(81&}CmrKC^7{G~VY)N2 z6;>sv8e1JuC%wQfw$+Sry-&d`3PKi;v>WRtDe?kDfn2mK{*cJ~<65ng|CO3egKE~{ zGA8QJ>Q)CikksnP0}~0FE4 zwuigPypY9xjN-bX#*cearApDI;f9sBJ_ufB@wjqfWM6o2Rh{;8L-5zvwE zR{u)=TN@iGTuT|DJRc z$tQVEWYYipl>e7q8j?S0{ZoIBt^y-O9#rWdG(3Uzc>U6U&RRoErv=FoQx7tQBhWA? z0KU3cFg)ZyyJ3r+k#C$w{8uMvl97X82Q(rI(&s<7$$bP%L2vNa*U3;{S}dl#i)_BC zW(7|i1sFRK$dK))x&feeh3A!SKw`U6zteC6+R!&zIvoef+6U6@*20mr=hUiyQhUgR z9K>)0NAMz3?D_3{sdApQ<4~(5K^5NwJpdU>F~MDnuh!=`DrE)B8~py30@+Zc>dMDBJ6kJ!R&TR$ z;6M;!oF+T-uR=p)rrdC)jqE-8N)!~=F`D{dTVEh00y%{f{|e6ACI~LP15Jcr5qHoi z5LcIhW^D$DbM@!@_K>4wC`2Z-Nf9XrNY)Qe%{r(Rt%>|uS2Tz+?Z7?My+6bNYAh7X zgUWfQ^SO@^^ZTc%19zI$na;->z}1!v`pbr2$p;=E$#WkHzWIi|@;eguiKywv8V7!d zGIr0sUD6>R9@_5(gi(%yRDtL1!OT?Y2W5m*!`T;{&Vx4s`jbFd-u`F;qC8T7E-Rfp zf>wGM9^gHJP%8vkW|vBak^4-*!1hSn1V<7rpXO`2@U>-Rf-^aRB(eQ6KOq{<>c>@qZ8E*4>kd9v z0k*XL3{x6GyM5`cfU)@L#Gi*A>3dTta^u}|?}CW3yXB0#P+JJn-vW&N$SE6m-5mhT zk3tm_6gm)O7E6>vDv^#T1JL#-0Y)?a+{9h(Hh0ZfnD6kW^$z95h8e#?Lk}fhNXAm( z^$x^C{v|Y4$u14?d7WPHQr(*FH35X|*M_UhDXh=-i_n)J2T1PRl^NI^oOY3_uzbcl zSf$K}(OTs9Xokhpe#N6_4y?kK(2gqfM$4X`(x}KD<_>@ag?GTBB89LFEkJj+>QVuO zyot(aiqItIq2+P~71rwb>Md|<{tS`|ZOZ}`Zy>-m--|b&e%A=@$$j4-k%}OyVz(QB zqTJElV&?!n2?R~+_h4L^U1zX+mMiqVYTlCy$GAMq(-(exSx@n)`wpaz^_#e_9ndy< zZ7aqP#*_d)xd$Ts_`vH1kAMuy^|05xpLxRXZ|F)h1vL59ipO7FUbq#LZV-xlq&L^7u;9X1MNK4{ zVx~}&jC3l@wMLD1fuBH;YJE||gGP+K>&nF&tqQrEFzi%WKU_KpE$u4A8zl^_Wn&ru zq5VMbg$-%K$yTpv=tNkCXgO1lW{%6j7%&Tfeg8v@!hTT^49M<64Zkg$Ks!L5(D|#( z0U~xLlhBPBOxAEQ(-V{D>|AAZafE3u8`3U%3bx0Na|)eYT5>q?=ncK?!IN)aEw2bn z(8uzi&)@Txm*jMi8?m+vk2YOoX=m@kNgsNr$d*mL9T*)*G;IVYrJn@8cRsWA+9q>Z z8CGAd2}U=LB~%2izKAD!MW`D$fZ&^4!5+7**uGI8Gum_IQ8d{=|=MZ7di-FKG2gM*G z_yr$k)(l69VP0v?5^Q3MubKO2ynID6oYEewt12Woca(cXapSaB=T{9s@g3VWqZlCZ z#S~NceXCQ0f9KJAi?b!?Ym6!P>((opNP=8=Ow1$~H-z(G2y3?VoKW-nNm3||oVuJtYXv;&5>C1Em1xXoFTvisxtEq{)4}4v2fQ$-;g{@} zBkReZWK=RWqjF;=wqEcbTso!WP<$YtGP^+_pR3%!;c!LJ^L|Qs&(y~5n6_&kvi%;d z)>I6qe0v1_G(FdO z>`miGaoKdK6{p~YNd;x-8CL=x+k%Kjn^?-3T4AMR`u zduh@=4uSV{ym0$(&$1)KO+P-ry)`|~x+a&;sl`R~RM*TC>vMUV&YQz&(~iS;jd%_&2BixrweB$3+~E^P-PE(GkXE#Ro0P->-bh+g@NLHKGcX?hci+ zf)-YHvkOMdtTh$zX(7;%N;%|`57Jle!>6S?FPR z^QvhB`XSfo9u0I=>6F+>=A!3o@)eyE!Nj9mEI%IVp!0n3Y@n}_R-i~Je3t&|JxI*I z?NY8(I-rZ)YPNY&qkiu=@$4{D2e(PU^iaOw_fk)vT&b^#H=E~Os`tcO3U#>bw0oza zH}03!wBfynnfG|<_>=reuZr)fkG~4QDmX>3pq}8`6I|8DYs1_B=mqB_%hgeOrs;KJ zCup(wzvR*H8GgHX3OKdMxMWFQ2d^bOLy}$Ks9$8cAh}FlP;VdK;9iRCZ+;cL7s>e1 z=MSH@&{YKQZ^w0J4UWBzR{8Sei3mo#GvT0nirnsL+^|UP2n)LYCANe#lnoK2@p)hE>d-AsO1_$nnD>CMH#** zQ_TB&Hdmp9YXU5K6p)2vuwoT+LZzC!somwk4`4(aVTJjE0XV{PdTg@vJ+vkRmplS^y{WJgrV#noXa0&;o?5HG0za?i(-W^< zfx6fTAO{M3?yZ03*>}hxa8%U(h3Adb@wV*nX-N%ddVBt{W83lcW~dYIK&63kf@6e; zQc8NaO+cXoK;fS>=@_9kBaqZss&@a&H1$u-u7k;|nZ8Idf{PHdgZaGEAqCV{=#)o{ zh|jON<46nEl4WqrWG9dwSE0tRfR3y0oIWrc8-buX8r4Q6On@(BYy2(aQPyA$5{N<6 zLL9Uu<`CUPLYd6I4B=s~^HB2lEg;f^5Q^@BnN6djNrpK>jaddSGgnF{AMYLX`7vdG zP0K6uqC~W~9n{OnL{%DVpzH?yO=t?p_VRXD6@ikW5s-HkB-z%5dJA<1r@No!p%gFB z6Wy0@7&v!W_K&1A1$eo^UnO(*El8GsxXg>!x;C$adJPrJV1K7$ymMhNdo(Ok2M%mjntQA$kVkuJH|9kAyjFFE}j;|7E5n8opCZT(^H6 zB4_Rxg>zlMd5L_?3)j@MfO4?&bD&t=0ag3)DjFxW9%6Z*#zE4rf(lTCL2D+6it}5& z(~nY`;j0@oCq-B$`&Q39p=>7;DzTwUv*xH7ekLA0^6`dFzz&d-$IU|DAjB5prx zZtL=*ki~PbC+uaYNo{)PyxI1cPUuo`YdGyU@jy9j2s8=zLO%9z_D4v>cpA2RnTu7C zI^g(&ou{*89}2NBNpZ2hczg4nycvIVfd2C_83xF7p}t8aay;_hFv^bytrvn6{HwRD zeBipU{>0sggC}6|&cQpj0y6G6++N*@(485Uk#3tJiHC+y-~Q=wq1JoVkf{FDPX8SuQk3gbY$`8OnyFS z(;tkXxSmo02Pt}b`B!s!Q+lrm@kF-Xxv8|EJOUViHQ+1MEdN^?9M4k0RSFMk8)UGxhX87b3=nWXA3bc}}m_mQ0sUI)6As zKO;k7vVXq~Rxe|e82-Ir2{=&=nS|YMtkf#VFM540ArR|bslVIz)LP2TEDSWNsbD63 zz(#A}bpC{dqmqQjcc5>kxjL@Ko0>B&iXY}Oj+C!|$NU4_l4YnwPHWg*+Am>jtljw> zQo#0Dx*Y}!s0PlB%%;aqif!a2?AU4!BOWT!^87B548e~WlLETnJvT4l$!r`%dA&<$=cz78yw z6{K6qyVvZ1@FC8M;D=v6J~gki1S+{tYBk+Em|y-LXqnk3U(=`iKd_>V*9?gM7K`sYEZHfG3&RpA<( zPl&G#{X?}S8V(VnKWtSeU|H8mh zhF1VIv;cd+9pDS0B2ayC5ttqOhIFbDS5M(UI%`tw+f#J_?_a;5DuW0jehF+b*NZRZ zKw^aHAW+2*C`JjlLGtqo1l~*SwL8hAb-Qzh+1O3~YO{4QYhw+)ozDk}Y)`liC}}+f zC*-QJ=kb@)DLuBMPi+NCtrq_`QQ%|$9z^Z`#;t)c2oXHP7oYF!cK~e5uXTnEle5L;o``^`ncVYf`SQu&gE*-YGy@|(dRr2@7r(c|q6Es~Psn*a6z{4P?x zR2tTc-R9q&0saXpJ9c4nN0mRpn&_d4^KiTit!#4S{SOHrLYsCx!!G0B&5AS&m^*p- zBtz_fHg>dWOHm8A{s*xSL1k#U^d@Y>yupuF%&z+rA;W5YebN{V&Eje@&5@=ohkGYP z!(Ck1ixt7*+1c^7#(-fJ;4F<2r{TZrD|IGeX_qJq(nYuyIk?0qcS-K#Qh6xE$*ZbVCl z_Fh0d*MJA3?F$U5NdyFO2V{_r0yKFAj?rzCfQ{u%hc|F7f>v<@KyAL$FVyGP7 z<2~5}NZ+FdIqS#;z@1bBrhAjXNnpYH#zOR^HXy%K4|%`j!!p&6kZQ=%31}@z;3X5D zU>~YU!wNTK6PyQkxHOov@IND_?X)V0lUMw|p0m?(Yk*2ls$=hGY0x4CWS$41m`I%+sy%C`6&iI#Yq-EPwq}mG^^KdD{C%a+rTKU`$aGZBj(i3rJJY2-*Y=b5 zn9c${6toEaPB9xA0Kj=XmX8!1uw}-hksFX6I9@=Hk=YAM9&;!^rQulh1!TTTP|ZR2 z%dIs}q<~Ve-33sSKg8}@zPWS`rDVm!mglCIdUD5P)epdXx1t`T0YTgzhKIpFIDut7 zh(XAkA$Dme!yRZGulvO@HJPwf%)wHhVS4!anNh~hd3Xb*Uw{fYXXij{0Ar#Q6wFU$ z7NHjZtX~#ZsHZIXh z2q=e8r&j-`j@TCHEd1ZYvGwRnIEnfjE_P|9`^Sw(4FJv_hG@2Uz~Qx_-w^2I&gPnI z&r4Bos-{C<0N;);L|nF(tg7PD;Pmy#8vSjnF{aYODTK4d%$jt3uZ>6SBR#As&?sjd z5YoCi#wk10PC55ot}9J)n^yuJCa4nFo;|FKjgVw;dplTeAIzk_*j{6m+F2c_TqI$Y zsaw(uMuvym2152HJgr_iW^sLUo~pgE>A-7XmplFYgsyLN?@});-{Tx3-}mXXpD0o9 zYs;oXTo)ihc<@L)ts-mfp4$YgrHGGjM1^qMF)dVl-Gf&Bl&}PxW8>zzV~Jz40R3MQ zT~0(DPP9g~A^^F_oH^F^8ESYQGs$a`75DBkw-S9!V~t`-;))wTJqVKb-PQax=a(K* z3w`3Smr3&$Fqf=)OA0Xs88PY_KLVNh25E?#R{o z`>WSaDX=b+u6=wpmIUAb5dqMN-L1SeK)3+gPBN5|Jj6#Zwd$d+_zf%Wej>#S`2jOw zm!+Jj(SyGV62h)>%HIN^iqnotz;=CRhqf2a8T*lUf$YU!#0Dx;|5kCnlA`28oRbIU z9+ZPXYa8`Og%HKxTh}z~it>Y76w(Rx9m?qK=-zn0!+_!_UTsgjfvt*M&bCe_TW0i= zqt#;#s~dA*o0-g2aIe8_a1XzF8u$l+_GW%~4=aMv;k{Wa2TC9`m^p)0xBj@}1pkX` z(BX=>?MqnI%>TlXZ~9rX_x^T6R&h6U0BfL?71DaVIIyqFD^7$bg?H#sl-6YB{f2bk zY`#i|L4V7Pt%W@%>QdWa_iGJN=6%D5B_OSFFvfa_KTF^zsL%Wy%_P!g_p!1y2u-rqYEY|?7iZvG&F4Y2Zs3PFm;ZDQ}SW< zSj>M+xlAe>XG=};@V^KPq+6SjUTLdS=CAj$T7>OfU-V2e|0F*DbJWt!A&Z>#+54Z# zEI_V@9TURg*`GpnRW+4W0NBR3sV$gi{Pkx$`mR(Z+D!gZ*+vypyguie7R=+H{qXmA zVdkszWfgENY%951HiukvU^y!55q;F7evdPAwe>$$3yIpLND#tsZMtwhul&NoxKg2v z=DnvuhiqP4fk+x_kdx+zfxFI5#CgryM8aXwQB6W--RX8#vBg9 zUBFLb_r|$QM*#GW%XE4Nks08nD)oKk(-Iw%A!F@7?U}P-vhe5J)YCU-LZAZ?np|5l zkrZ?4iH2U-h5t$z`JE)PuKJ*D6T}%mgUC@rDpk&pesBCbH^b>LGT1r zd{);D`2ltC72t0tzcFQlS=7v$DHQXC@QQ7B765|zPW*Zj3U->r{y}!*3OKNnz=pyvC*c)5V8rK+tf_L_4W$^+y)tpsyJAVlz2YVS8xt|*H%Lk zz=y|PI{X|Ih);*vUoAIu4rYBT3;yLZrmymI{JnWX!=?kQn>xhIg~g#uYCH>crEcR9 zhJxRx7Ky% ze}x2uW^B$*My=0FdH*1axq6>gwWT^mHc>oWk^;`V{n3L|pZ-Ho?%eRN0BU#LMrd+w z+l&C)`;cjLP8}BswMY{jJfks6nTg=DyMM1fgIjwmCyxk{vfdAHg#-1(Ri;xQbdd-1 zTcHV5fxbbUwZwQp@4W$d)*mI2OwtlJ>m-2?xShDo%Vo#qoy5vl=3{ z15TpXXVL^7 zQ^@MjLvkng4W6w%DRtu54?FyyIQy`xP`0Y-_qL@3P9teI>Hje0t;%vyqZ*bV$veC2?z{hI$VIF+3LYOQYYoRLqk3*H3 zMj{+%50}C(uFo;+X?E7u?W8wc-y!6ggF8^&VmBo4-U+%)@T_k08EH!ULD!}}ryY@@ z1NUmYsId{4%xN6c+z`H1&XtpJ{YD-)a`dn+@D5sy(BxM5xNH;J?r1D!RiA7p>UR>? zTKthIEAyrqnno88jMv~K26+W7A6T4=sJcXz>zLoOy`RU&k>GqCAhb`(#gl5D-*B_f zPQ5jrq@UzaxaJ6eLTB45V-uVxY!@x#O-7ITD{pGZUpa;fxu$`BieS=W#ES2Hu>2r|$-i4z;af>a95`;uGsjr|`Eq5gW3*%j$8mIo zkqHf@a@sjGxhHRQ=l1EZ^N4=zlH^NE*Z&k9bH8dYP43M!pSI@wo=EOBPa?67IMIVO z$Ln^IK$Y{j%ulcUN3o3e_`5Y#7D@`Qj{Nl1JAp^Aa#T@NzyZFO2B7=c)kt*EJ~mYo zn7BUTwqNW%lX;OI=1zKARDf`{{o=-2opQ~_CYoHKRL$=Ouy{Ll06^|G&6nIiyFzea zz@gq;e0I3~()guwPa))v%1|UE%MiWPBs{w-32IxjlxArm&`DoVo~60;#fZB{MKz^R zs+L*Z;lIzBbj1wS?V>lI!{AD)C5xd&;Ww{7eA2A@WAn$WgPalO?_f&fb3eLNb!M8K zP@rp?J`;rZZ&^xUFpWD=ZQ(10iZtV^h9ei|qEy%afZmu9!KNG1__R8436{%*Lo|VY zS$&~3MJ`Xu!O$h`E?bU{Lpf!gBV+~Kkujwo7xXkHio~!0-_?v_AtJ37DlGaucUYei zHJ4zB!{uSH3B{Q!!i3A~ZV^sPU8{`f+R;qB zX~iFF1sheFmuRC9BVTsoDrEMNSUAS}ce%E=)ZqheGuC6Zqzx`Q@z|}W$VkZCy@)-F z6K+YT+uw_mi={8AMk|yj9t`Kse}_&^1|ix9ML zcYm-D{z1-y^hzd;;98I1W+;%%`t@2q>&V{7`~U?DR-HZGn1^|(;qKq&+%Oku=sv7} z6Z-ED*bssA{~q!G@%4zFX)f~WDSG{20){0{?bjCjPaR2O55NX1I-Y=`gOorQy`XQ2 zX(AeMwq5~T!|JZ}wGoJYK(K|!31|oJI9Aa-(_vnao_&eWo!-ij!w5J4V8i#YCxi+d zs;}Gx9WqMAU%ZRE+WF8PX#>Ar&%VbaAgiw;u6hKW%|Yv`k+tg2e!@b(n-7l@wi&|8 zto}N;ufBb_`6o1wNBcv59);Y9k|hWzL-~F?Ab4&R_Bo&FUTs8_p;owcZ@i4&A^pXv zO|YyJj#LKQ!$EMb0V%{y0Lt89@C3@4@XL64wGQQDjACD5AS6G=Rq1g zpx_`dr!@B`hQ?*g1i4PfMws1j8G(O*43a&2x!*@t&JXdTlmnLsI!>)U&}yqs4n8t$ zsoHDGE-bTV`k(TeWsVW(j|*wrK~IjoS4U5sGOp*o#{zRS#KItvP#8PMvt9IfA+p6y z2T|W-@W*1gu45u6L7j( z0Qh?ckksT2hc)>xAfry}@2x)o#<3L;)KzB5$hC8tl%SElS3yy*7W{wvog!Hh^jAPz z`GKIiZUj!}WMH@~p|Ax}OhoK`H7z}=< zo7p%2DO52-pzgW8@($+YqKv?v`-li}W}~s?LoIenTS^Dg6{rVY!5e_$j!vE$gHGWp zA~#UrgQ#fZ>$6*>f_h=E+-x%jeftxq8ZQ1ofACZFL}9>6RTP;{3PQ>M$fEUay6|dI$7|mqC|xMtcO3aBd#Mt*Ig$vH~t-s=wl}!}%{;0s&JV z0T3F}*Z%emj4a%|E}h<5b=Ya@%0UN>OSZdq`yUt?j)2yHSIBEnx@xY#sb=%p0Pq^U zdvH+gyEEe{^@w;tJMGQ7z@+h&XGD9b)I4t`k!L+{{zCX^u^^M1=%2jH| zTmZX7vg9DC36ED1KjX_+6OH%aPFDGT1M8r6R7O;Q%1_V$QDo(EXJ0{fIZwz_edpR} zB73;HlF+!I*d3&~SVcW0sLpzpCceA->TmppBLm<~e3#gQ0I!|M7la*@h!&%4W{pOt zZ~H{0TClDdNs%(10YJQyQJ1T9aMMe74QHNy@z~TI06n22Jd#f$r$iM*3L^B<#D|jh z;f^}ze>{|lT$04yhJ-OUVjk28-DC5!x9Tj#Ki+*(o+V_cyb;*+g=(B0ea-7_y74&s zp%sH_OX!aLKAj!h#9I|^ioijfP$LX#&yg`3xxT+pHW}- zLEY|fNv!b^rjY_QN-oUS+hS|O7+*Fy_RJ&zt_LET#N-Yoc5=RDe@olFVL4w;C8Ae? zzFF>!BTV`eU&^wC0-xEyWrhV%-riu5XvrO3V16`L^42&hkyV3c-EZqm5gYpF(?Xeh zx?grds803T;Jf~P;pN2hKKWV=wPq5v9kUPKkxR_XC7GTL`F4DLnvrTAdc; z1t&m@x4l|5#4Te*ac6~Nn#PIaQ7#%uWHWx}3Cz;&>V$Bx7mjNWiW=LA7>M=09=@$K zj6PqO0`uv7SYOYOWd>z2m;FLE&PlK@^4R4;30;NE>aFMA3OYy+ehE(>_@L}?B*y!< z6V6b|WltkwW0i!zN;+XP`eM}^+Cr=i!d(3WBJ+5>AG+<)o-h+C>th|IFG-R+YYxZI z1Nc;KQVRD%TZ+|Z&*C9&3hq`tF%{i%?yKiO!{`c*X(c_ol1n+T{2H4O@95OH#k10Gc~Y8RYy z6lN#SSUE2kevezx*-XU$D(aVOMVtaw9fed+!(G0t;qdD0k_q3(M4+I8%qat-T3Gc&Np*FkM0 z7xL?4;9uts&KlqzYG5A>ef$TH!<~j7{2xC;DncZ!GwzWh`%6;6@n$jYfa#2$BG=Xo zdma&G<~dodo^ZV|n1yC6}FjVBI);;neCLCMP=&QH@lH1Elvn z2B9@eQ096DKuVl3Y}sSyvedL3UWOh;(--0BOa?!M{_gKk%a1}d+7*bE)GbJmG)`wg zb&4i9@(hBs4aJ4DaS1tAoW!kVs1nnyFw3S)C{~1mXNRw#3_>8Sd_!uZ1vTEaOKN#G zA`?E!EI(ffNoI{8vgw;1HiNH@fkNJkJL5MfQSFox$(BNvklj!@R3EnSultV@CYk_QR(@c=qWX5R&d@IWQ{xeX~XCxZc5P+ZEG0uh9HRRbnDGP%d zRRBy)ffLgTWF4+>meU9a;FX`ZKyf?*aa(?=4aV@(<4g0iK9e0A^ah|C7zNrBrHiBL zKC&1BB2{0ktk~Ot#kZYc3{e2LcV`>VK@{2KS==TDVqwv28Zuy)??5X15k`l3j>)c& z!Y1i%nkdK)GD;lAppmHgSPTFyuf7tXPgfCJY2e#>qlhzD2H9nxvU%S9xwGYyf6&KO9)7y*ZQ1?X-5JmHCO?mLr@+nXMCF z1Io5JP@nL6nnIl`)`E?dnN=-D}4Ff5+0<{-( z%=@X@-n+3-`kHXk#yMIC;npc*88uZ1v#D)C=#S&+~Af3i6H0r`N zrEXm{Mjd^Vbu5!Igg>fzfqBE|HWGpmYjg+||jbF~@b`}VcpJj%*Nk?j*2v}kJ8 zgKq#VPtE}Bg6yB}kf4r26HwGSBvCN;^>P&lkHEDAHI5Y5qR!Ftf)3Af*e4}ixt z1C@Lm+N&RZt;c&Q-YRqxG^G-c6KRMxsPlE1TG|&E#)6&os6-+mguFq=MjX|spJ@ew(vMk{FW>a{p zPQV0M!7yG~xg6-hPCv$(hASaTAn3rksjk5y3uwkUwYN|fz5{Z5Lv5tRv;&D+^p@dr zt$y+fy5Xlhlo;LT>=@o#8BEbbpl%3q$b=N3DrM#CD?*HuT!25z%7qSY`Rc07p*8@V z@|J<7z1p5X1z=ZOJ}ceDBZS+A!F`9$#yrJiWnogSLXP1^OT6@;YQKQSM(CGctNj9c zViZxxVs4;8kBm$7<`v+XI}LgJH#3FFg2VM3YW#Eik3doCKJm!@*{P&Y1~-pdjBLlK zMh4D+_NZp>)>SlDWFz_ft46?}5xnR(K2-H^sPXxnCKV$o7qpfiSeKs?#FuDcmXFP* zMXKqF&!Q9MjjyokA!c`!N_HP{mNSwpIZSklayh+hMLOi;2<@^WrK;{sDwS=r&NcSJMU$N>|c*B`RGtRD_Qe!!GiUa^Fq6IDMA$OY4ry%Gphk#5->bUCaZv zLqS1O zSbgQQ#W@<6l=WK_ZNVuZ)Ct-FMehwR&p4Jh8OAB#TRi8VbBPMni2H*&(jTYXF&lwD zNEYJM=$6~Y|MHLqxxJ6<@HWt)Ls|#x9o`DV*@~6a?4R6@JZ$~Mxj3TcV_?hb3XbM8 z_+L?5C_1rixcpVt>mpaw=55(*6G8iGl)NTVwTB<_2#5!3Rz8@<2nDtrWvuv9tYb^u z#9QNZ@k>Hc2gl%4>jY!M`q;GUgNmV5xAj%F>$=-S zsX3>}Lr#*AUX*?Gg;%MSSaAu3^?yYs%esgX3i}p(b*$Q}okyMpQZU zs@E@b8-+V1&yRA2OG>=tndNk|>3aG`Eo^w!Z3=qwb{FS4fm+ef!99#xvVUgtVN8Ft zcsu7zJpdu!qA;NZ$K2;SGk1Xf9iF|kP50>~@youQs!K1;M8sBK|2#K22sJQJV4G3K@-AmN zT^39}u5tQ^H8`>=?)LA^5Wba^XvOZOvOyi^IMTM)MsLmR@Z!>oKu0!Q;eiEfhT(0) z;;tHVg31r^THYUv>Cse1SP$`KF>C!Jn1MJEGT!qdzg3X!pv%2oH)JLbc7hV zr{61zDih?@i`5GSRDE=J^Q9pSrRgJ z7Z2o*u2Zl+K8Hyp^J%S(*H}57RD5oEDNwpUCZ=lYmUc_YKjW!U{cFuQiK&kkg&ApL zWfE^O0{p47b4oQSXEeq;Ahq)DYvWi+Ck4KAn91@y$ckhvqd4$UMkmVR$r}l$0q%oa zPOPqrRvP&nCRe_ZXcUpOd;a)ETdB0=)lZY1vy^H?rgC`|9zw$7<6HXPp8tp*q0Z-J z&%zVSlr`kJw49#y(c@#y>$BK~ei11@c;@ycKI2YuoPv}1D#{mCB5xbRGIE6|d)0^V z{W4#T`&(d8$SunT2&Z`$Q>9+}K1ISQeC&c_<5pe6v;#eS(m(yA&~$86%^Q*gS@w5R zbP8!6l#eE6c4o>=vV2Yw^caF~1HWwK>AOj8m_eFSs=RJ^NMpDW#=}pd+L)l8#^Ajr z;|Q}}-Vub&4w6cU0&?NvI2xCXmP`Q}Qc0wD0 zFff_p{`=LGfYi3Nqnp?{T+JRbCY^OR5L751>-ak2PAY2dR#2g{_|3+Vlo?R$At_pH zFp;mY{s<;bk}F%B+zo?mbgG@M+m7>o%3w5-$-VO2+}axmB;Z4uo+l=7z-8XSdQ1`| zTDo;52wF7WGIC~tDPgnVN9%79`06&b)%f}AY%dc-c3%FD-jNllTk%P_VO29pVFyW7ZQQarC)j#=}6*HwX#T4vX%GO4OEPE1oH8wafuy4+s z6;;(spLUF% z-4Yf8(teg2=B>P=wYb8Ljyn{M+c4dJ*^)%v!u{4`{mED)BYTQvT}Tkqr=Aj37f~Lp z8FLU~1z;o|Dm_NCeP9kTeqNWmURI|`6E4C(y&d$5JZa3*%qjkVn>{T2AhEb*iv0f` zfvy1k|K96ColhEXMVe~pw2*RhEgbA$+rW9W3)%oOQi=GctBE1Wp*AFV1;dCJr~43q zb{!5KGc?}<5D%Ye9l+Wl6wc(;RkfL382zG$JX1w8kiDFY1dBhf1!YJsUyuVmgb%P3 zA$kj+Z?*P;{N)OwFCg&gM$hu!kU3--YW4V600V)24j2b~8a%WKVk4B1niZlWnxKW< zPeyI9ke26>Ka-WXk7@Zs?c~E^R&n2l>OFto<0JN{`2(2UclsD`S4bZRNp%u^=YU^8 zt{u+m$-)Mi6kwFCK(7W&PG}MqFBF}34}OCX=rK>~LA>QU-v!PI~~A8U=0rXwNR;+$ogdNxQ8O(I$l$O=gad%nGRS0e%5 zwTGCxY5phTA<)f}q4Qbym}E!Vu^T-5v+GV+e*~P!3W5Y)->-y7IR`|GeOW(YH~`)f z)Ia*CE&^hXhI%DKmerUh3Sav7*Hdx6jszO&2ZJ?qKC=DpzL1T}>k&MN!2pgnLyWMCkk1bsiVfyZkvOat0qds9{&hja?#8&|MeRA@Du z!LCFrOPP{JZxTzO;y7ENxkF)~FcU3Ky$^;+TnmQD4NgT)oX6%GBdU1iq$zqJsJS;< z5bK>%Gw3Z7MR<#ZniardAuf>LHVyy;G>Gl)!>>12jxlzQ!o!`aVNfpUAFx9Yz@c;^ zrBZ=TS5N6f)6ATdaLO67k!^PH9UceKX{kPBMj}1(mGIf>-3;aHH&?>nNYrlD@3Fi4 z&z@GRPsN#7;L;hsNn6|w^txakWmbaFJPUbpM1HpT!wr!%->;KPPH*S zR>kIVe1~MQU73NOB<@*kTm(bP%}W-I5r7%I`Nazgt#%~x{(NqU`l6AT?3aY&3lHD~ zSNEdvL+f)fDLEk<*Y0m!R6e5Y?Og~ebVB|%R zEi-1ep1FlOR^6qLperx2(G_9uzu$$fB%A~8#o&Xu$*hls{~N#TOl1S`9!lR&2FI`EdMD~;?hB&ZK@ z2JRxLm^~v33KMQPDj@YD$pUYx?C71c3lz30b_FCp8i>z#1HmPHLh^umEin`C0t?>O zDbe6U=uWo!AL&|N*ZW!nqNVuW6!GH5T5)240IM}5$XI zoQeQXZn(|(%x3()bniz&9|VQQW7LB#pdF>XwS3$GIFEE_YzdGKB{{#=!iMu!eGd|# z?L%Ng5OHotOX5lQFpDr8RS8?7Y?1N3UY)xc?B$%dVy1p=X{<4dJ`L8TL;Ro487ViW zlO3eODqVI-(2HWjs(!$|hhH#c=U83kW>#MOgOHha&>?VpMC_zKLSkVF)bgQ4+7^q# zHY*g`J^?-PIL@qoBz!B9OkW6uHUY zv1`*OWKAhi?(z~R-_0lsh~^=SDHzldll_xk(!LP!5lf;YorYTj-3V*bW;jDMBYout z(=hb}d}RRcGD{`r_n>rh$Uls{trDR@2)DwIzj#w$q%Qh4j3hDJy~pp=rpS$D>Dgkp z!gmWqT9tu0CDF^-G@)!`QeWh4hi7&APDfoQ9Rr0}+!z8AR}y(LZ3b6z6dH7%eBw{E zhzuD*tXCW^LEJ`z5GWl;KgRMoNz9qD1bYhHB7M?gcRYxJrhk>DU?W_G5&Xo!nrnUJ z{foAesE#Pf*!o~f$X{b1l>jbZVR`ZEedNFT$p4c^Q0?Ty){3FTycEk!gA4kphX(sj zYs7IVmejgfshj+SaWccYgg4GLNA@8V%?hMN53h7aZy>Y3R1C8(&}cpfpYApgEDObP zvmGW!e}4cP`kuf@?bmlK_f3m_0&r5aa~J1)0RiDv7$n~e!iS~j>)pli^vzU@*Brv{ zZg&B+Oy$NoM!L0B#(m6#?c;pN%`;%-`#yNztVP#*w~E(11RwaF_yTib=siN#wK4ZP zTvp`)q#JoSRRp&U7A!3r50UeMJczEqw?sr4Bit6+$$TD{n&blH$AlYOC zXy%#UAZK*(<=J7gM*`oOO+OJ;ItQ+5k(P_GzJtXuZgS!r%GitE1{GrNCRZ3z{R9h0 zI0>R?E`!u}2eb$KOqoqz;WT;A{leJ09Y&aBW&eOVDS1&`)f~obkz;p1dQC(L$fkm} z;j@1E8xXEG!ziIW$izKHQ#U?J*agRhIAsTTOCFc3Pg}bL*R;d@ilKV(YAm-*J_|Uv zS0IP-J249m%kii0rjFZky*VHLA#ZQPT1Tb_ZR;;)xWH}j(7k(l(k8@k3iik(ivtG^>d*?(QWXktvgh}-*A4Tt`>j46cPJT*hV*7AiS;wxoWEMi+63Z z9t$K!P{Ie7fGPhl3fZ9(I?JdaLK)ehRX*!E3?++UJFbmGcuT16b*yow;ZSYNmXD$~ z9+1e9^`V*8CZMYfzP)!Wd@V2EkmBigwD(5aUP9QvN2!!U@`HtDRbe{I(Hy+VBi z;S@SupeEm96z@g&pd5R-cUt>Sc{^eZnwrHDFpiUVI*|iyY8u^A@4YuoHhUEou>Uev z|G|&9leF)SfdiDWAp|0Lg&uU%rL}+>P#Kg$n9L_aL~Dg4nF1>FqM93YQv(>Xp6qj1 z+0HOeloM2Q7J~}Ip1B(c!XldZS5boatoN@fZxdGj(Zx+M;?R`P7EcrH{91Q{bL$l= zM_BIECE)cuLCV8XJNF9+sgD_X%E)`ccV51o>Kv3!juSP;aC&n9Rpr{97HE{&t6s5} z&?=tF!Ym&{H6|i^k&gMJp(#>(BA#OjzV?c;_(BoCe;r(?5x+T9m$ z+?~&ynv+)}^1KLTgM;hrFEC+eeR*nvshk+^bVnoH*n^m_@K`+uHb1?h+uZ}e+>nZo zUJ{R+@s9M>U!CsA&}_wWTUH8O~p z7TN$cnAGP|mnz6%@DyXoYq)VFwJL`IRSn!lGi(CEwhPk5w^j{^2SL?9d*1$#S=+$hyo%v zLLMndUVg{E8sf%#(Q*01`1joagOlHw`vWQo-C-siG)Xl@TQF(Cb}=3mk|M7b7VouM z#V=J6?$0!SS5IK^NJeb-^ZgGcZo%BKGMo;_wXYY<-%lkTNN*MBj9C?J3~NO=PP*|m z{i)@nwYu~_&Rf4)12;3>jQ#Jyp2+Qcl0AlFg#Nyox-TDccODkySF|4zOzO@I zFwjU=XML2d{d1gFj~H{+_^nric6JS)YTP)jew}1}ZBOX_o%Tw0oz9>HpQg7HV{X$1 zO;7$^P0S~hAHWWg?dUUQzec^j9NK+*XX;TP=F1*R%?lgum-l{Ye3IG=cRl9?(l``< zhp61U-m@y%e(Il!9ORSP=rnn*i+&BRJm!+s*9sC9|M+<*yDeyOyh*W0SXg|KkkR`x zg)`7BvARAhm3U!Q?dN(&o_be|+u4ho;#YeH{(9|wG^`W3IWRH**puF&PfF9Tf#EWI6RIovkwVmnF-7}os)>8wh* z_Sa3f5Au^zyeZC5ZU4D5Nh4vsMeem

%3f_674R116!al!u14Ee$j4b6=&0>yA60 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

4_ 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 literal 0 HcmV?d00001 diff --git a/deploy/images/example_llm_model.png b/deploy/images/example_llm_model.png new file mode 100644 index 0000000000000000000000000000000000000000..123306671a8fcd2c9fdd5e87a8e1975b34009136 GIT binary patch literal 140877 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%0AN-2$JzQ>AM|VW8~hVD*nJp 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 M&~nRd1IMuc0kAEy4FCWD literal 0 HcmV?d00001 diff --git a/examples/brain-mri/container/deploy/common.py b/examples/brain-mri/container/deploy/common.py index 361bdb2..db86d38 100644 --- a/examples/brain-mri/container/deploy/common.py +++ b/examples/brain-mri/container/deploy/common.py @@ -237,6 +237,7 @@ def create_inference_service( tolerations=tol, pytorch=( V1beta1TorchServeSpec( + args=["--model-store=/mnt/models"], protocol_version="v2", storage_uri=f"s3://{bucket_name}/{model_name}", resources=( diff --git a/examples/brain-mri/container/deploy/deploy.py b/examples/brain-mri/container/deploy/deploy.py index 4a5e292..6b13cad 100644 --- a/examples/brain-mri/container/deploy/deploy.py +++ b/examples/brain-mri/container/deploy/deploy.py @@ -61,7 +61,12 @@ def create_mar_file(model_name, model_version): # ===================================================================================== -def create_properties_file(model_name, model_version): +def create_properties_file(model_name, model_version, cloud_model_host): + print(f"--> Cloud Model Host: {cloud_model_host}") + model_store = "/mnt/models/model-store" + if cloud_model_host == "aws": + print("--> Changing Model Store to match AWS") + model_store = "/mnt/models" config_properties = """inference_address=http://0.0.0.0:8085 management_address=http://0.0.0.0:8083 metrics_address=http://0.0.0.0:8082 @@ -74,8 +79,9 @@ def create_properties_file(model_name, model_version): NUM_WORKERS=1 number_of_netty_threads=4 job_queue_size=10 -model_store=/mnt/models/model-store +model_store=%s model_snapshot={"name":"startup.cfg","modelCount":1,"models":{"%s":{"%s":{"defaultVersion":true,"marName":"%s.mar","minWorkers":1,"maxWorkers":5,"batchSize":1,"maxBatchDelay":5000,"responseTimeout":120}}}}""" % ( + model_store, model_name, model_version, model_name, @@ -114,7 +120,7 @@ def main(): create_mar_file(model.name, model.version) # Create config.properties for .mar file, return files to upload to GCS bucket - model_files = create_properties_file(model.name, model.version) + model_files = create_properties_file(model.name, model.version, args.cloud_model_host) # Upload model artifacts to Cloud bucket in the format for TorchServe upload_model( diff --git a/examples/brain-mri/pipelines/_on_prem_deployment-pipeline.json b/examples/brain-mri/pipelines/_on_prem_deployment-pipeline.json index 7ace049..e910c6b 100644 --- a/examples/brain-mri/pipelines/_on_prem_deployment-pipeline.json +++ b/examples/brain-mri/pipelines/_on_prem_deployment-pipeline.json @@ -18,7 +18,7 @@ "stdin": [ "python deploy.py --deployment-name brain-mri-deploy --service-account-name pach-deploy --resource-requests cpu=2,memory=4Gi --resource-limits cpu=4,memory=4Gi" ], - "image": "pachyderm/pdk:brain-deploy-v0.0.4", + "image": "pachyderm/pdk:brain-deploy-v0.0.6", "secrets": [ { "name": "pipeline-secret", diff --git a/examples/brain-mri/pipelines/_on_prem_training-pipeline.json b/examples/brain-mri/pipelines/_on_prem_training-pipeline.json index 731d212..41b03d3 100644 --- a/examples/brain-mri/pipelines/_on_prem_training-pipeline.json +++ b/examples/brain-mri/pipelines/_on_prem_training-pipeline.json @@ -19,7 +19,11 @@ "stdin": [ "python train.py --git-url https://git@github.com:/determined-ai/pdk.git --git-ref main --sub-dir examples/brain-mri/experiment --config const.yaml --repo brain-mri-data --model brain-mri --project pdk-brain-mri" ], +<<<<<<< Updated upstream "image": "pachyderm/pdk:train-v0.0.5", +======= + "image": "pachyderm/pdk:train-v0.0.6", +>>>>>>> Stashed changes "secrets": [ { "name": "pipeline-secret", diff --git a/examples/brain-mri/pipelines/deployment-pipeline.json b/examples/brain-mri/pipelines/deployment-pipeline.json index 3d53b46..3752a62 100644 --- a/examples/brain-mri/pipelines/deployment-pipeline.json +++ b/examples/brain-mri/pipelines/deployment-pipeline.json @@ -18,7 +18,7 @@ "stdin": [ "python deploy.py --deployment-name brain-mri-deploy --cloud-model-host gcp --cloud-model-bucket pdk-repo-models --resource-requests cpu=2,memory=8Gi --resource-limits cpu=10,memory=8Gi" ], - "image": "pachyderm/pdk:brain-deploy-v0.0.4", + "image": "pachyderm/pdk:brain-deploy-v0.0.6", "secrets": [ { "name": "pipeline-secret", diff --git a/examples/brain-mri/pipelines/training-pipeline.json b/examples/brain-mri/pipelines/training-pipeline.json index 6ad4612..213123e 100644 --- a/examples/brain-mri/pipelines/training-pipeline.json +++ b/examples/brain-mri/pipelines/training-pipeline.json @@ -19,7 +19,11 @@ "stdin": [ "python train.py --git-url https://git@github.com:/determined-ai/pdk.git --git-ref main --sub-dir examples/brain-mri/experiment --config const.yaml --repo brain-mri-data --model brain-mri --project pdk-brain-mri" ], +<<<<<<< Updated upstream "image": "pachyderm/pdk:train-v0.0.5", +======= + "image": "pachyderm/pdk:train-v0.0.6", +>>>>>>> Stashed changes "secrets": [ { "name": "pipeline-secret", diff --git a/examples/brain-mri/readme.md b/examples/brain-mri/readme.md index e538011..6551097 100644 --- a/examples/brain-mri/readme.md +++ b/examples/brain-mri/readme.md @@ -4,7 +4,7 @@ # PDK - Pachyderm | Determined | KServe ## Brain MRI Example -**Date/Revision:** January 02, 2024 +**Date/Revision:** February 23, 2024 This example is based on the **Brain MRI Segmentation** Kaggle dataset, which can be found here:
https://www.kaggle.com/datasets/mateuszbuda/lgg-mri-segmentation diff --git a/examples/dog-cat/container/deploy/common.py b/examples/dog-cat/container/deploy/common.py index ed26640..8a70b0a 100644 --- a/examples/dog-cat/container/deploy/common.py +++ b/examples/dog-cat/container/deploy/common.py @@ -238,6 +238,7 @@ def create_inference_service( tolerations=tol, pytorch=( V1beta1TorchServeSpec( + args=["--model-store=/mnt/models"], protocol_version=version, storage_uri=f"s3://{bucket_name}/{model_name}", resources=( diff --git a/examples/dog-cat/container/deploy/deploy.py b/examples/dog-cat/container/deploy/deploy.py index 8610d77..9ffb247 100644 --- a/examples/dog-cat/container/deploy/deploy.py +++ b/examples/dog-cat/container/deploy/deploy.py @@ -59,7 +59,12 @@ def create_mar_file(model_name, model_version): # ===================================================================================== -def create_properties_file(model_name, model_version): +def create_properties_file(model_name, model_version, cloud_model_host): + print(f"--> Cloud Model Host: {cloud_model_host}") + model_store = "/mnt/models/model-store" + if cloud_model_host == "aws": + print("--> Changing Model Store to match AWS") + model_store = "/mnt/models" config_properties = """inference_address=http://0.0.0.0:8085 management_address=http://0.0.0.0:8083 metrics_address=http://0.0.0.0:8082 @@ -72,8 +77,9 @@ def create_properties_file(model_name, model_version): NUM_WORKERS=1 number_of_netty_threads=4 job_queue_size=10 -model_store=/mnt/models/model-store +model_store=%s model_snapshot={"name":"startup.cfg","modelCount":1,"models":{"%s":{"%s":{"defaultVersion":true,"marName":"%s.mar","minWorkers":1,"maxWorkers":5,"batchSize":1,"maxBatchDelay":5000,"responseTimeout":120}}}}""" % ( + model_store, model_name, model_version, model_name, @@ -115,7 +121,7 @@ def main(): create_mar_file(model.name, model.version) # Create config.properties for .mar file, return files to upload to GCS bucket - model_files = create_properties_file(model.name, model.version) + model_files = create_properties_file(model.name, model.version, args.cloud_model_host) # Upload model artifacts to Cloud bucket in the format for TorchServe upload_model( diff --git a/examples/dog-cat/pipelines/_on_prem_deployment-pipeline.json b/examples/dog-cat/pipelines/_on_prem_deployment-pipeline.json index d9d4ff1..80ec75d 100644 --- a/examples/dog-cat/pipelines/_on_prem_deployment-pipeline.json +++ b/examples/dog-cat/pipelines/_on_prem_deployment-pipeline.json @@ -18,7 +18,7 @@ "stdin": [ "python deploy.py --deployment-name dogcat-deploy --service-account-name pach-deploy --resource-requests cpu=2,memory=4Gi --resource-limits cpu=4,memory=4Gi" ], - "image": "pachyderm/pdk:dog-cat-deploy-v0.0.4", + "image": "pachyderm/pdk:dog-cat-deploy-v0.0.6", "secrets": [ { "name": "pipeline-secret", diff --git a/examples/dog-cat/pipelines/_on_prem_training-pipeline.json b/examples/dog-cat/pipelines/_on_prem_training-pipeline.json index bc2e328..c9598ea 100644 --- a/examples/dog-cat/pipelines/_on_prem_training-pipeline.json +++ b/examples/dog-cat/pipelines/_on_prem_training-pipeline.json @@ -19,7 +19,11 @@ "stdin": [ "python train.py --git-url https://git@github.com:/determined-ai/pdk.git --git-ref main --sub-dir examples/dog-cat/experiment --config const.yaml --repo dogs-and-cats-data --model dogs-and-cats --project pdk-dogs-and-cats" ], +<<<<<<< Updated upstream "image": "pachyderm/pdk:train-v0.0.5", +======= + "image": "pachyderm/pdk:train-v0.0.6", +>>>>>>> Stashed changes "secrets": [ { "name": "pipeline-secret", diff --git a/examples/dog-cat/pipelines/deployment-pipeline.json b/examples/dog-cat/pipelines/deployment-pipeline.json index 6a972ee..5bafb8f 100644 --- a/examples/dog-cat/pipelines/deployment-pipeline.json +++ b/examples/dog-cat/pipelines/deployment-pipeline.json @@ -18,7 +18,7 @@ "stdin": [ "python deploy.py --deployment-name dog-cat --cloud-model-host gcp --cloud-model-bucket pdk-repo-models --resource-requests cpu=2,memory=8Gi --resource-limits cpu=10,memory=8Gi" ], - "image": "pachyderm/pdk:dog-cat-deploy-v0.0.4", + "image": "pachyderm/pdk:dog-cat-deploy-v0.0.6", "secrets": [ { "name": "pipeline-secret", diff --git a/examples/dog-cat/pipelines/training-pipeline.json b/examples/dog-cat/pipelines/training-pipeline.json index d8cc61a..5eb372a 100644 --- a/examples/dog-cat/pipelines/training-pipeline.json +++ b/examples/dog-cat/pipelines/training-pipeline.json @@ -19,7 +19,11 @@ "stdin": [ "python train.py --git-url https://git@github.com:/determined-ai/pdk.git --git-ref main --sub-dir examples/dog-cat/experiment --config const.yaml --repo dogs-and-cats-data --model dogs-and-cats --project pdk-dogs-and-cats" ], +<<<<<<< Updated upstream "image": "pachyderm/pdk:train-v0.0.5", +======= + "image": "pachyderm/pdk:train-v0.0.6", +>>>>>>> Stashed changes "secrets": [ { "name": "pipeline-secret", diff --git a/examples/dog-cat/readme.md b/examples/dog-cat/readme.md index 222d9bd..e5b82f9 100644 --- a/examples/dog-cat/readme.md +++ b/examples/dog-cat/readme.md @@ -4,7 +4,7 @@ # PDK - Pachyderm | Determined | KServe ## Dogs and Cats Example -**Date/Revision:** January 02, 2024 +**Date/Revision:** February 23, 2024 This example is based on the **Dogs vs Cats** Kaggle dataset, which can be found here:
https://www.kaggle.com/c/dogs-vs-cats/data?select=train.zip diff --git a/examples/llm-rag/pipelines/model_download.json b/examples/llm-rag/pipelines/model_download.json new file mode 100644 index 0000000..d5923c0 --- /dev/null +++ b/examples/llm-rag/pipelines/model_download.json @@ -0,0 +1,50 @@ +{ + "description": "Downloads model from Hugginface", + "input": { + "pfs": { + "branch": "master", + "glob": "/*", + "name": "model", + "repo": "model" + } + }, + "pipeline": { + "name": "model-download", + "project": { + "name": "pdk-llm-rag" + } + }, + "transform": { + "cmd": [ + "/bin/sh" + ], + "image": "us-central1-docker.pkg.dev/dai-dev-554/pdk-registry/pdk_hf_utils:1.11", + "secrets": [ + { + "env_var": "HF_TOKEN", + "key": "hf_token", + "name": "pipeline-secret" + } + ], + "stdin": [ + "python ds_download.py --output /run/determined/workdir/shared_fs/ --model /pfs/model/" + ] + }, + "resourceRequests": { + "memory": "24G" + }, + "resourceLimits": { + "gpu": { + "type": "nvidia.com/gpu", + "number": 1 + } + }, + "tolerations": [ + { + "effect": "NO_SCHEDULE", + "key": "nvidia.com/gpu", + "operator": "EXISTS" + } + ], + "podPatch": "[{\"op\": \"add\",\"path\": \"/volumes/-\",\"value\": {\"name\": \"task-pv-storage\",\"persistentVolumeClaim\": {\"claimName\": \"pdk-pvc\"}}}, {\"op\": \"add\",\"path\": \"/containers/0/volumeMounts/-\",\"value\": {\"mountPath\": \"/run/determined/workdir/shared_fs\",\"name\": \"task-pv-storage\"}}]" +} \ No newline at end of file diff --git a/examples/llm-rag/pipelines/process_xml.json b/examples/llm-rag/pipelines/process_xml.json new file mode 100644 index 0000000..1846df3 --- /dev/null +++ b/examples/llm-rag/pipelines/process_xml.json @@ -0,0 +1,31 @@ +{ + "pipeline": { "name": "process_xml"}, + "description": "Extract content in xml files to a csv file", + "input": { + "cross": [ + { + "pfs": { + "repo": "data", + "branch" : "master", + "glob": "/" + } + }, + { + "pfs": { + "repo": "code", + "branch" : "master", + "glob": "/" + } + } + ] + }, + "transform": { + "cmd": [ + "/bin/sh" + ], + "image": "mendeza/python38_process:0.2", + "stdin": [ + "python /pfs/code/src/py/process_xmls.py --xml-directory /pfs/data/HPE_press_releases/ --pdf-directory /pfs/data/ --custom-csv-input /pfs/data/HPE_2023_Press_Releases.csv --out-dir /pfs/out/hpe_press_releases.csv" + ] + } +} \ No newline at end of file diff --git a/examples/llm-rag/pipelines/titan_ml.json b/examples/llm-rag/pipelines/titan_ml.json new file mode 100644 index 0000000..1cee88e --- /dev/null +++ b/examples/llm-rag/pipelines/titan_ml.json @@ -0,0 +1,67 @@ +{ + "pipeline": { + "name": "titan-ml", + "project": { + "name": "pdk-llm-rag" + } + }, + "description": "Runs Titan ML Service to serve LLM", + "input": { + "pfs": { + "branch": "master", + "glob": "/", + "repo": "model-download", + "name": "model", + "empty_files" : true + } + }, + "transform": { + "cmd": [ + "/bin/sh" + ], + "image": "mendeza/takeoff-mistral:0.5", + "secrets": [ + { + "name": "titanml-secret", + "key": "TAKEOFF_MODEL_NAME", + "env_var": "TAKEOFF_MODEL_NAME" + }, + { + "name": "titanml-secret", + "key": "TAKEOFF_DEVICE", + "env_var": "TAKEOFF_DEVICE" + }, + { + "name": "titanml-secret", + "key": "API_PORT", + "env_var": "API_PORT" + } + ], + "stdin": [ + "chmod +x /code/run.sh && /code/run.sh --host '0.0.0.0' --port '80'" + ] + }, + "resourceRequests": { + "memory": "32G" + }, + "resourceLimits": { + "gpu": { + "type": "nvidia.com/gpu", + "number": 1 + } + }, + "tolerations": [ + { + "effect": "NO_SCHEDULE", + "key": "nvidia.com/gpu", + "operator": "EXISTS" + } + ], + "service": { + "type": "LoadBalancer", + "internalPort": 8080, + "externalPort": 8080 + }, + "parallelism_spec": { "constant" : 1 }, + "podPatch": "[{\"op\": \"add\",\"path\": \"/volumes/-\",\"value\": {\"name\": \"task-pv-storage\",\"persistentVolumeClaim\": {\"claimName\": \"pdk-pvc\"}}}, {\"op\": \"add\",\"path\": \"/containers/0/volumeMounts/-\",\"value\": {\"mountPath\": \"/run/determined/workdir/shared_fs\",\"name\": \"task-pv-storage\"}}]" +} \ No newline at end of file diff --git a/examples/llm-rag/pipelines/ui-client.json b/examples/llm-rag/pipelines/ui-client.json new file mode 100644 index 0000000..872f1e0 --- /dev/null +++ b/examples/llm-rag/pipelines/ui-client.json @@ -0,0 +1,50 @@ +{ + "pipeline": { + "name": "ui-client", + "project": { + "name": "pdk-llm-rag" + } + }, + "description": "Client UI for End-Users", + "input": { + "pfs": { + "branch": "master", + "glob": "/", + "repo": "code", + "name": "code" + } + }, + "transform": { + "cmd": [ + "/bin/sh" + ], + "image": "mendeza/mistral-llm-rag-ui:0.0.7", + "secrets": [ + { + "name": "clientui-secret", + "key": "API_HOST", + "env_var": "API_HOST" + }, + { + "name": "clientui-secret", + "key": "API_PORT", + "env_var": "API_PORT" + }, + { + "name": "clientui-secret", + "key": "DB_PATH", + "env_var": "DB_PATH" + } + ], + "stdin": [ + "python3 -m chainlit run /pfs/code/src/py/app.py --host 0.0.0.0 --port 8080" + ] + }, + "service": { + "type": "LoadBalancer", + "internalPort": 8080, + "externalPort": 8080 + }, + "parallelism_spec": { "constant" : 1 }, + "podPatch": "[{\"op\": \"add\",\"path\": \"/volumes/-\",\"value\": {\"name\": \"task-pv-storage\",\"persistentVolumeClaim\": {\"claimName\": \"pdk-pvc\"}}}, {\"op\": \"add\",\"path\": \"/containers/0/volumeMounts/-\",\"value\": {\"mountPath\": \"/run/determined/workdir/shared_fs\",\"name\": \"task-pv-storage\"}}]" +} diff --git a/examples/llm-rag/pipelines/vector_db.json b/examples/llm-rag/pipelines/vector_db.json new file mode 100644 index 0000000..12455b5 --- /dev/null +++ b/examples/llm-rag/pipelines/vector_db.json @@ -0,0 +1,32 @@ +{ + "pipeline": { "name": "vector_db"}, + "description": "Extract content in xml files to a csv file", + "input": { + "cross": [ + { + "pfs": { + "repo": "process_xml", + "branch" : "master", + "glob": "/" + } + }, + { + "pfs": { + "repo": "code", + "branch" : "master", + "glob": "/" + } + } + ] + }, + "transform": { + "cmd": [ + "/bin/sh" + ], + "image": "mendeza/python38_process:0.2", + "stdin": [ + "python /pfs/code/src/py/seed.py --path_to_db /run/determined/workdir/shared_fs/rag_db/ --csv_path /pfs/process_xml/hpe_press_releases.csv --emb_model_path /run/determined/workdir/shared_fs/model/minilm && echo \"$(openssl rand -base64 12)\" > /pfs/out/vector_db.txt" + ] + }, + "podPatch": "[{\"op\": \"add\",\"path\": \"/volumes/-\",\"value\": {\"name\": \"task-pv-storage\",\"persistentVolumeClaim\": {\"claimName\": \"pdk-pvc\"}}}, {\"op\": \"add\",\"path\": \"/containers/0/volumeMounts/-\",\"value\": {\"mountPath\": \"/run/determined/workdir/shared_fs\",\"name\": \"task-pv-storage\"}}]" +} \ No newline at end of file diff --git a/examples/llm-rag/readme.md b/examples/llm-rag/readme.md new file mode 100644 index 0000000..65bc0e8 --- /dev/null +++ b/examples/llm-rag/readme.md @@ -0,0 +1,288 @@ +![alt text][hpe_logo] + +[hpe_logo]: ../../deploy/images/hpe_logo.png "HPE Logo" + +# PDK - Pachyderm | Determined | KServe +## LLM RAG Example +**Date/Revision:** February 23, 2024 + +This example is based on a new **Retrieval Augumented Generation** demo built by the AI At Scale SE team.
+ +In this use case, a Vector Database (Chromadb) is used to store vectors from HPE Press Releases. A client application can then query the vectors based on the user's question and have a LLM (Mistral) generate a response. The dataset for this example is made of press releases from HPE, originally in XML format (later converted to CSV). The pre-trained model (Mistral) will run on a Service pipeline, using TitanML (which means KServe will not be used with this example). The client UI will run on a different Service pipeline. Keep in mind that this approach is done for demo purposes and should not be replicated in production environments. + +To setup this PDK flow, start by following the instructions in the [Deployment](../../deploy/README.md#setup) page, to make sure the necessary components are in place and working properly. Do keep in mind, however, that this example follows a different structure: for instance, instead of deploying the model to KServe, it will instead run on a MLDM service pipeline. + +Also, this example will include certain assets that must be accessible by both MLDM and MLDE, which means we will need to configure the MLDM pipelines to access the shared storage location used by MLDE. + +Finally, the full RAG demo does include a Finetune step, where MLDE is used to finetune the LLM. However, an A100 GPU is required to run the finetune, and since we do not have one available in our cluster, this step will be skipped. To see an example notebook of this demo with a finetuning pipeline, please go to this [link](https://github.com/interactivetech/pdk-llm-rag-app/blob/main/Finetune%20and%20Deploy%20RAG%20with%20PDK.ipyn). + +  + +The project name should be `pdk-llm-rag`, which will have 3 input repositories: `code`, `data`, and `model`: + +```bash +pachctl connect ${MLDM_URL} + +pachctl config set active-context ${MLDM_URL} + +pachctl list project + +pachctl create project pdk-llm-rag + +pachctl config update context --project pdk-llm-rag + +pachctl create repo data + +pachctl create repo code + +pachctl create repo model + +pachctl list repo +``` + +  + +Since there will be no finetuning step, there is no need to create a MLDE Project, as no experiments will be created. + +  + +To upload the initial files to MLDM, go to the `sample-data` folder and use these commands: + +```bash +find . -name '.DS_Store' -type f -delete + +pachctl put file data@master: -r -f ./HPE_press_releases/ + +pachctl put file data@master: -f ./HPE_2023_Press_Releases.csv + +pachctl put file code@master: -r -f ./src/ +``` + +  + +### Creating Pipelines + +#### Model Download Pipeline + +One of the pipelines will download the necessary models from HuggingFace. Before creating these pipelines, you will need a Huggingface token. + +Go to [https://huggingface.co/](https://huggingface.co/) and login (or create an account), then go to `Settings`, `Access Tokens` and create a new token. Make a copy of the new token value, which should start with `hf_`. + +The next step is to add the new token to the `pipeline-secret` secret, so it can be pulled by the pipeline at runtime. For this, we will need to retrieve the values currently in the secret, add the new token and update the secret. + +Use these commands to update the secret with the new token. Make sure to replace the token value in the first command: + +```bash +export HF_TOKEN=hf_YOUR_TOKEN_GOES_HERE + +export MLDE_HOST=$(kubectl get cm pdk-config -o=jsonpath='{.data.mlde_host}') && echo $MLDE_HOST + +export MLDE_PORT=$(kubectl get cm pdk-config -o=jsonpath='{.data.mlde_port}') && echo $MLDE_PORT + +export MLDE_ADMIN=$(kubectl get secret pipeline-secret -o jsonpath="{.data.det_user}" | base64 --decode) && echo $MLDE_ADMIN + +export MLDE_PASSWORD=$(kubectl get secret pipeline-secret -o jsonpath="{.data.det_password}" | base64 --decode) && echo $MLDE_PASSWORD + +export MLDM_HOST=$(kubectl get cm pdk-config -o=jsonpath='{.data.mldm_host}') && echo $MLDM_HOST + +export MLDM_PORT=$(kubectl get cm pdk-config -o=jsonpath='{.data.mldm_port}') && echo $MLDM_PORT + +export KSERVE_MODELS_NAMESPACE=$(kubectl get cm pdk-config -o=jsonpath='{.data.kserve_model_namespace}') && echo $KSERVE_MODELS_NAMESPACE + +kubectl apply -f - < mistral.json + +pachctl put file model@master:/mistral/models.json -f mistral.json +``` + +PS: In this case, we're downloading the `mistralai/Mistral-7B-Instruct-v0.1` model from HuggingFace. It will be saved in the `mistral` shared folder. + +The pipeline will take several minutes to execute (it will also save the model to the output repo for this pipeline). If the pipeline fails with insufficient memory errors, you may need close other tasks that might be using GPUs, like notebooks or experiments. Wait until the pipeline status changes to `Success` before continuing. It will be slow at the end, as the pipeline will upload the model files to the storage bucket. + +Once the step is completed, you should be able to find the model in the shared folder: + +![alt text][example_llm_model] + +[example_llm_model]: ../../deploy/images/example_llm_model.png "Saved Model" + + +  + +Next, download the model used to generate tokens for the Vector Database. This is a much smaller model, so the pipeline should execute faster than the previous one: + +```bash +echo "[{\"model_id\" : \"sentence-transformers/all-MiniLM-L6-v2\", \"model_name\" : \"minilm\"}]" > minilm.json + +pachctl put file model@master:/minilm/models.json -f minilm.json +``` + +  + +#### Process XML Pipeline + +This step will read the XML files from the `data` repository and export them to CSV format. + +```bash +pachctl create pipeline -f process_xml.json +``` + +  + +#### Vector DB Pipeline + + +This step will read the CSV data, split it and insert it into a Vector DB (chromadb), using the `MiniLM` model to generate the vectors. The database files will be saved to the shared storage location (under `shared_fs/rag_db`) + +```bash +pachctl create pipeline -f vector_db.json +``` + +PS: If you look at the pipeline settings, you may notice these commands at the end of the `stdin` configuration: + +```bash +echo \"$(openssl rand -base64 12)\" > /pfs/out/vector_db.txt +``` + +This is done because empty repositories don't trigger pipelines. Any pipelines that are pulling from this repo would never be executed, and because the next step will be connected to this one, since we do not want to serve the RAG application if the Vector DB was never created, we need to have some file in the output repo of this step; so these commands will generate a text file with a random string and save it to `/pfs/out`. + + +  + +#### Titan ML Pipeline + +The RAG application will search in the Vector Database for data that is similar to the question embeddings. Once if finds content, it will run the prompt and the Vector DB data through a LLM, so it can output a 'human-friendly' response. + +This pipeline step will run the LLM in a service pipeline, using Titan ML as the inferencing component. Do be aware that this will require a T4 GPU, which will be allocated for as long as the pipeline is running (service pipelines do not downscale automatically, they run until they are deleted). + +Titan ML requires some environment variables. A simple way to map them to the pipeline is by saving them as secrets. Use this command to create the secret with the necessary variables: + +```bash +kubectl apply -f - <