Sentiment Analysis: Validation Rules
Tutorial Notebook 2: Observability Part Validation Rules
In the previous notebooks you uploaded the models and artifacts, then deployed the models to production through provisioning workspaces and pipelines. Now you’re ready to put your feet up! But to keep your models operational, your work’s not done once the model is in production. You must continue to monitor the behavior and performance of the model to insure that the model provides value to the business.
In this notebook, you will learn about adding validation rules to pipelines.
Preliminaries
In the blocks below we will preload some required libraries.
# run this
import wallaroo
from wallaroo.object import EntityNotFoundError
from wallaroo.framework import Framework
from IPython.display import display
# used to display DataFrame information without truncating
from IPython.display import display
import pandas as pd
pd.set_option('display.max_colwidth', None)
import json
import datetime
import time
# used for unique connection names
import string
import random
Login to Wallaroo
Retrieve the previous workspace, model versions, and pipelines used in the previous notebook.
## blank space to log in
wl = wallaroo.Client()
# retrieve the previous workspace, model, and pipeline version
workspace_name = "tutorial-workspace-sentiment-analysis"
workspace = wl.get_workspace(workspace_name)
# set your current workspace to the workspace that you just created
wl.set_current_workspace(workspace)
embeddar_model_name = 'embedder'
embeddar_model_version = wl.get_model(embeddar_model_name)
sentiment_model_name = 'sentiment'
sentiment_model_version = wl.get_model(sentiment_model_name)
pipeline_name = 'imdb-reviewer'
pipeline = wl.get_pipeline(pipeline_name)
# display the current workspace, models, and pipelines
display(wl.get_current_workspace())
display(embeddar_model_version)
display(sentiment_model_version)
display(pipeline)
{'name': 'tutorial-workspace-sentiment-analysis', 'id': 11, 'archived': False, 'created_by': 'fca5c4df-37ac-4a78-9602-dd09ca72bc60', 'created_at': '2024-11-01T17:41:05.46033+00:00', 'models': [{'name': 'embedder', 'versions': 1, 'owner_id': '""', 'last_update_time': datetime.datetime(2024, 11, 1, 17, 41, 16, 654457, tzinfo=tzutc()), 'created_at': datetime.datetime(2024, 11, 1, 17, 41, 16, 654457, tzinfo=tzutc())}, {'name': 'sentiment', 'versions': 1, 'owner_id': '""', 'last_update_time': datetime.datetime(2024, 11, 1, 17, 41, 17, 663987, tzinfo=tzutc()), 'created_at': datetime.datetime(2024, 11, 1, 17, 41, 17, 663987, tzinfo=tzutc())}], 'pipelines': [{'name': 'imdb-reviewer', 'create_time': datetime.datetime(2024, 11, 1, 17, 41, 20, 204008, tzinfo=tzutc()), 'definition': '[]'}]}
Name | embedder |
Version | 71aaa7f9-f754-4b71-b2e0-e030ae4d5be2 |
File Name | embedder.onnx |
SHA | d083fd87fa84451904f71ab8b9adfa88580beb92ca77c046800f79780a20b7e4 |
Status | ready |
Image Path | None |
Architecture | x86 |
Acceleration | none |
Updated At | 2024-01-Nov 17:41:16 |
Workspace id | 11 |
Workspace name | tutorial-workspace-sentiment-analysis |
Name | sentiment |
Version | ae12f23d-0597-47c0-a381-7c1e07432d91 |
File Name | sentiment_model.onnx |
SHA | 3473ea8700fbf1a1a8bfb112554a0dde8aab36758030dcde94a9357a83fd5650 |
Status | ready |
Image Path | None |
Architecture | x86 |
Acceleration | none |
Updated At | 2024-01-Nov 17:41:17 |
Workspace id | 11 |
Workspace name | tutorial-workspace-sentiment-analysis |
name | imdb-reviewer |
---|---|
created | 2024-11-01 17:41:20.204008+00:00 |
last_updated | 2024-11-01 17:48:22.397764+00:00 |
deployed | False |
workspace_id | 11 |
workspace_name | tutorial-workspace-sentiment-analysis |
arch | x86 |
accel | none |
tags | |
versions | f6287d00-b934-4ad8-9e92-cd20d544e6a5, d8d77a9d-5baa-4979-9e59-d746ce94dde2, 6a333530-d25a-4f42-9c74-97b5a96a150a |
steps | embedder |
published | False |
Deploy the Pipeline
Add the model version as a pipeline step to our pipeline, and deploy the pipeline. You may want to check the pipeline steps to verify that the right model version is set for the pipeline step.
# run this to set the deployment configuration
deploy_config = wallaroo.DeploymentConfigBuilder().replica_count(1).cpus(1).memory("1Gi").build()
## blank space to get your pipeline and deploy it
pipeline.clear()
pipeline.add_model_step(embeddar_model_version)
pipeline.add_model_step(sentiment_model_version)
pipeline.deploy(deployment_config=deploy_config)
name | imdb-reviewer |
---|---|
created | 2024-11-01 17:41:20.204008+00:00 |
last_updated | 2024-11-01 18:01:45.381585+00:00 |
deployed | True |
workspace_id | 11 |
workspace_name | tutorial-workspace-sentiment-analysis |
arch | x86 |
accel | none |
tags | |
versions | a0d82d3f-14a3-4897-90b1-e4ca3e56d23c, 4024dae6-8e62-4720-8feb-c35c7224e1a7, f6287d00-b934-4ad8-9e92-cd20d544e6a5, d8d77a9d-5baa-4979-9e59-d746ce94dde2, 6a333530-d25a-4f42-9c74-97b5a96a150a |
steps | embedder |
published | False |
## blank space perform a sample inference
multiple_result = pipeline.infer_from_file('../data/test_data.df.json')
display(multiple_result)
display(len(multiple_result))
time | in.tensor | out.dense_1 | anomaly.count | |
---|---|---|---|---|
0 | 2024-11-01 18:01:49.625 | [1607.0, 2635.0, 5749.0, 199.0, 49.0, 351.0, 16.0, 2919.0, 159.0, 5092.0, 2457.0, 8.0, 11.0, 1252.0, 507.0, 42.0, 287.0, 316.0, 15.0, 65.0, 136.0, 2.0, 133.0, 16.0, 4311.0, 131.0, 286.0, 153.0, 5.0, 2826.0, 175.0, 54.0, 548.0, 48.0, 1.0, 17.0, 9.0, 183.0, 1.0, 111.0, 15.0, 1.0, 17.0, 284.0, 982.0, 18.0, 28.0, 211.0, 1.0, 1382.0, 8.0, 146.0, 1.0, 19.0, 12.0, 9.0, 13.0, 21.0, 1898.0, 122.0, 14.0, 70.0, 14.0, 9.0, 97.0, 25.0, 74.0, 1.0, 189.0, 12.0, 9.0, 6.0, 31.0, 3.0, 244.0, 2497.0, 3659.0, 2.0, 665.0, 2497.0, 63.0, 180.0, 1.0, 17.0, 6.0, 287.0, 3.0, 646.0, 44.0, 15.0, 161.0, 50.0, 71.0, 438.0, 351.0, 31.0, 5749.0, 2.0, 0.0, 0.0] | [0.37142318] | 0 |
1 | 2024-11-01 18:01:49.625 | [10.0, 25.0, 107.0, 11.0, 17.0, 2.0, 10.0, 119.0, 21.0, 456.0, 15.0, 11.0, 17.0, 6388.0, 10.0, 59.0, 21.0, 101.0, 41.0, 167.0, 5.0, 1447.0, 85.0, 10.0, 78.0, 21.0, 37.0, 11.0, 701.0, 2.0, 91.0, 2080.0, 4786.0, 10.0, 78.0, 21.0, 37.0, 5.0, 847.0, 782.0, 6388.0, 85.0, 10.0, 78.0, 21.0, 388.0, 65.0, 1098.0, 135.0, 59.0, 10.0, 137.0, 5.0, 2317.0, 51.0, 10.0, 244.0, 137.0, 5.0, 2316.0, 39.0, 1.0, 2346.0, 4519.0, 2316.0, 2.0, 1.0, 2346.0, 4519.0, 23.0, 1.0, 6222.0, 10.0, 8289.0, 681.0, 1.0, 7508.0, 5235.0, 78.0, 21.0, 388.0, 1.0, 782.0, 1098.0, 40.0, 37.0, 69.0, 1614.0, 10.0, 77.0, 21.0, 1411.0, 1.0, 2317.0, 1185.0, 54.0, 548.0, 48.0, 10.0, 235.0] | [0.9655761] | 0 |
2 | 2024-11-01 18:01:49.625 | [8.0, 3637.0, 4293.0, 1.0, 4523.0, 2.0, 2869.0, 4402.0, 2312.0, 8937.0, 4895.0, 3.0, 1872.0, 2204.0, 4.0, 695.0, 8461.0, 40.0, 5.0, 76.0, 192.0, 275.0, 5.0, 3164.0, 2.0, 8.0, 1813.0, 6501.0, 24.0, 4095.0, 2.0, 61.0, 5182.0, 6.0, 484.0, 2.0, 257.0, 1276.0, 16.0, 1639.0, 369.0, 7.0, 7.0, 6.0, 32.0, 2497.0, 1147.0, 2.0, 573.0, 355.0, 17.0, 41.0, 32.0, 9111.0, 3729.0, 12.0, 492.0, 3.0, 376.0, 4.0, 501.0, 39.0, 2477.0, 40.0, 5.0, 76.0, 192.0, 275.0, 5.0, 815.0, 4119.0, 2.0, 109.0, 1238.0, 3422.0, 685.0, 5.0, 24.0, 8670.0, 1997.0, 8.0, 16.0, 894.0, 11.0, 106.0, 59.0, 27.0, 1.0, 2606.0, 6725.0, 3528.0, 4.0, 1.0, 2132.0, 1391.0, 2.0, 445.0, 20.0, 11.0, 62.0] | [0.07601619] | 0 |
3 | 2024-11-01 18:01:49.625 | [11.0, 19.0, 6.0, 364.0, 16.0, 3452.0, 7794.0, 2.0, 196.0, 105.0, 560.0, 3.0, 173.0, 5.0, 27.0, 4624.0, 8.0, 1.0, 93.0, 4.0, 65.0, 285.0, 83.0, 196.0, 105.0, 23.0, 52.0, 462.0, 2033.0, 228.0, 9.0, 251.0, 5.0, 64.0, 616.0, 802.0, 1445.0, 330.0, 1080.0, 19.0, 45.0, 2571.0, 2.0, 22.0, 23.0, 914.0, 5.0, 103.0, 3.0, 2273.0, 19.0, 148.0, 4451.0, 124.0, 303.0, 5.0, 25.0, 3.0, 125.0, 4453.0, 1274.0, 10.0, 207.0, 2784.0, 2571.0, 18.0, 15.0, 1.0, 695.0, 43.0, 47.0, 11.0, 215.0, 3.0, 436.0, 131.0, 285.0, 709.0, 187.0, 23.0, 21.0, 1.0, 2154.0, 4.0, 1.0, 201.0, 19.0, 1184.0, 40.0, 1.0, 7076.0, 5002.0, 109.0, 686.0, 2745.0, 300.0, 7.0, 7.0, 14.0, 15.0] | [0.24645236] | 0 |
4 | 2024-11-01 18:01:49.625 | [10.0, 61.0, 927.0, 20.0, 63.0, 52.0, 49.0, 105.0, 2.0, 20.0, 2148.0, 1906.0, 58.0, 5517.0, 6.0, 5.0, 336.0, 81.0, 34.0, 178.0, 5.0, 64.0, 84.0, 105.0, 5.0, 1138.0, 65.0, 55.0, 2.0, 275.0, 6528.0, 7.0, 7.0, 10.0, 79.0, 178.0, 5.0, 567.0, 81.0, 3109.0, 65.0, 55.0, 20.0, 1240.0, 2.0, 178.0, 5.0, 1.0, 189.0, 12.0, 1.0, 164.0, 1323.0, 4.0, 131.0, 1240.0, 105.0, 188.0, 76.0, 242.0, 16.0, 9.0, 15.0, 52.0, 193.0, 72.0, 77.0, 166.0, 43.0, 34.0, 22.0, 23.0, 2.0, 77.0, 2299.0, 16.0, 43.0, 2187.0, 2.0, 7.0, 7.0, 11.0, 19.0, 692.0, 732.0, 80.0, 1.0, 1240.0, 2375.0, 7.0, 7.0, 1.0, 164.0, 2.0, 561.0, 6.0, 305.0, 42.0, 207.0, 3.0] | [0.08632833] | 0 |
5 | 2024-11-01 18:01:49.625 | [51.0, 22.0, 165.0, 30.0, 1.0, 1106.0, 2.0, 329.0, 535.0, 41.0, 9.0, 32.0, 1093.0, 272.0, 549.0, 4.0, 17.0, 263.0, 5.0, 327.0, 71.0, 48.0, 22.0, 76.0, 130.0, 92.0, 171.0, 276.0, 10.0, 329.0, 1.0, 2718.0, 15.0, 1.0, 82.0, 17.0, 443.0, 302.0, 14.0, 47.0, 68.0, 104.0, 99.0, 4.0, 11.0, 422.0, 622.0, 41.0, 1.0, 169.0, 55.0, 16.0, 196.0, 1889.0, 1840.0, 12.0, 66.0, 1316.0, 788.0, 8.0, 1139.0, 187.0, 883.0, 535.0, 41.0, 12.0, 17.0, 130.0, 10.0, 121.0, 10.0, 216.0, 11.0, 28.0, 2.0, 21.0, 12.0, 28.0, 2.0, 12.0, 17.0, 6.0, 57.0, 326.0, 48.0, 28.0, 59.0, 836.0, 3.0, 17.0, 16.0, 12.0, 422.0, 59.0, 27.0, 41.0, 10.0, 77.0, 27.0, 1199.0] | [0.6396135] | 0 |
6 | 2024-11-01 18:01:49.625 | [2108.0, 143.0, 803.0, 18.0, 57.0, 15.0, 1.0, 1351.0, 195.0, 40.0, 93.0, 96.0, 952.0, 5.0, 27.0, 2599.0, 626.0, 22.0, 67.0, 1338.0, 1.0, 201.0, 1.0, 1029.0, 558.0, 85.0, 9.0, 13.0, 151.0, 99.0, 2.0, 245.0, 284.0, 18.0, 195.0, 74.0, 221.0, 277.0, 35.0, 1.0, 751.0, 884.0, 5.0, 27.0, 3.0, 114.0, 326.0, 1247.0, 21.0, 57.0, 50.0, 7546.0, 935.0, 1.0, 83.0, 17.0, 66.0, 1.0, 1368.0, 4.0, 1375.0, 7074.0, 3.0, 129.0, 34.0, 97.0, 57.0, 94.0, 6312.0, 8.0, 5715.0, 303.0, 6977.0, 12.0, 11.0, 28.0, 5928.0, 1501.0, 35.0, 47.0, 13.0, 54.0, 8.0, 230.0, 12.0, 572.0, 9.0, 40.0, 465.0, 707.0, 7.0, 7.0, 3388.0, 10.0, 61.0, 216.0, 11.0, 277.0, 51.0, 10.0] | [0.024733633] | 0 |
7 | 2024-11-01 18:01:49.625 | [2535.0, 9933.0, 16.0, 4753.0, 197.0, 136.0, 2.0, 2338.0, 2104.0, 3438.0, 3.0, 173.0, 4.0, 5041.0, 5.0, 867.0, 140.0, 2.0, 77.0, 239.0, 468.0, 122.0, 88.0, 794.0, 18.0, 1.0, 412.0, 2656.0, 2794.0, 280.0, 2.0, 913.0, 34.0, 9896.0, 24.0, 645.0, 8.0, 217.0, 172.0, 133.0, 79.0, 406.0, 32.0, 1253.0, 1075.0, 236.0, 3.0, 5.0, 27.0, 249.0, 18.0, 1.0, 50.0, 4913.0, 1154.0, 90.0, 104.0, 150.0, 300.0, 6.0, 3.0, 3782.0, 1487.0, 928.0, 10.0, 1462.0, 22.0, 103.0, 12.0, 302.0, 297.0, 238.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] | [0.50299007] | 0 |
8 | 2024-11-01 18:01:49.625 | [51.0, 360.0, 6.0, 266.0, 5.0, 4415.0, 48.0, 32.0, 1086.0, 411.0, 6.0, 37.0, 33.0, 1851.0, 35.0, 3596.0, 1553.0, 9.0, 251.0, 1485.0, 712.0, 8.0, 1.0, 1638.0, 4.0, 1.0, 1258.0, 7.0, 7.0, 205.0, 98.0, 1258.0, 2372.0, 184.0, 266.0, 5.0, 9832.0, 8.0, 24.0, 30.0, 172.0, 1825.0, 249.0, 33.0, 3252.0, 43.0, 8.0, 5987.0, 2.0, 1259.0, 1857.0, 472.0, 42.0, 21.0, 37.0, 33.0, 23.0, 5236.0, 34.0, 112.0, 25.0, 3.0, 7.0, 7.0, 935.0, 44.0, 22.0, 23.0, 3.0, 1258.0, 22.0, 121.0, 29.0, 41.0, 2.0, 476.0, 2.0, 2414.0, 2.0, 4.0, 261.0, 332.0, 1341.0, 53.0, 5.0, 1302.0, 16.0, 2026.0, 684.0, 2.0, 3.0, 4721.0, 4.0, 95.0, 131.0, 180.0, 37.0, 29.0, 137.0, 292.0] | [0.93422383] | 0 |
9 | 2024-11-01 18:01:49.625 | [4955.0, 1007.0, 8902.0, 6.0, 8172.0, 43.0, 4.0, 270.0, 16.0, 11.0, 5301.0, 679.0, 248.0, 1785.0, 2.0, 7233.0, 62.0, 12.0, 2472.0, 36.0, 3.0, 563.0, 580.0, 4.0, 918.0, 8175.0, 183.0, 5.0, 25.0, 9291.0, 55.0, 2.0, 6851.0, 15.0, 1.0, 83.0, 190.0, 14.0, 829.0, 913.0, 2.0, 273.0, 114.0, 778.0, 80.0, 65.0, 552.0, 4491.0, 408.0, 2.0, 206.0, 1705.0, 7.0, 7.0, 3413.0, 7568.0, 7052.0, 5226.0, 492.0, 14.0, 32.0, 1001.0, 129.0, 20.0, 3.0, 1976.0, 289.0, 12.0, 268.0, 75.0, 2.0, 211.0, 24.0, 319.0, 554.0, 8.0, 1.0, 1768.0, 26.0, 2941.0, 36.0, 1168.0, 2.0, 1238.0, 728.0, 43.0, 5.0, 513.0, 1.0, 319.0, 4.0, 1.0, 1252.0, 34.0, 554.0, 24.0, 3099.0, 4.0, 1785.0, 23.0] | [0.71775126] | 0 |
10 | 2024-11-01 18:01:49.625 | [246.0, 17.0, 123.0, 107.0, 246.0, 113.0, 96.0, 10.0, 562.0, 836.0, 3.0, 17.0, 430.0, 92.0, 11.0, 161.0, 5.0, 64.0, 54.0, 113.0, 30.0, 29.0, 827.0, 1398.0, 153.0, 141.0, 165.0, 15.0, 157.0, 289.0, 10.0, 388.0, 34.0, 13.0, 375.0, 192.0, 5.0, 162.0, 273.0, 275.0, 80.0, 11.0, 17.0, 7.0, 7.0, 143.0, 803.0, 15.0, 2127.0, 3337.0, 212.0, 27.0, 1208.0, 10.0, 562.0, 836.0, 86.0, 24.0, 212.0, 27.0, 5.0, 4357.0, 653.0, 1.0, 289.0, 7.0, 7.0, 1.0, 1914.0, 8.0, 1.0, 17.0, 379.0, 33.0, 125.0, 1226.0, 5.0, 7.0, 7.0, 14.0, 15.0, 1.0, 969.0, 129.0, 48.0, 3.0, 482.0, 26.0, 125.0, 27.0, 273.0, 20.0, 3.0, 482.0, 2.0, 787.0, 47.0, 10.0, 67.0, 64.0] | [0.0020476878] | 0 |
11 | 2024-11-01 18:01:49.625 | [10.0, 13.0, 914.0, 5.0, 103.0, 11.0, 19.0, 15.0, 58.0, 179.0, 702.0, 11.0, 19.0, 6.0, 48.0, 6.0, 352.0, 16.0, 932.0, 637.0, 302.0, 4.0, 43.0, 1.0, 115.0, 93.0, 43.0, 4.0, 251.0, 208.0, 39.0, 1182.0, 72.0, 59.0, 244.0, 3822.0, 41.0, 86.0, 9.0, 6.0, 291.0, 5927.0, 2154.0, 11.0, 19.0, 268.0, 140.0, 1.0, 8534.0, 4.0, 2.0, 8234.0, 9.0, 1242.0, 20.0, 828.0, 8.0, 1.0, 1768.0, 4.0, 396.0, 35.0, 2566.0, 268.0, 5.0, 84.0, 5.0, 94.0, 1.0, 7097.0, 4.0, 828.0, 43.0, 5.0, 27.0, 1912.0, 40.0, 85.0, 33.0, 23.0, 396.0, 65.0, 289.0, 8.0, 3.0, 922.0, 2566.0, 105.0, 447.0, 466.0, 1.0, 19.0, 2.0, 124.0, 21.0, 123.0, 57.0, 940.0, 277.0, 44.0] | [0.35586113] | 0 |
12 | 2024-11-01 18:01:49.625 | [70.0, 9.0, 6.0, 41.0, 297.0, 1777.0, 150.0, 8.0, 1.0, 704.0, 2.0, 72.0, 25.0, 414.0, 4255.0, 1.0, 4299.0, 3737.0, 197.0, 18.0, 1035.0, 72.0, 128.0, 358.0, 1865.0, 12.0, 1255.0, 3599.0, 325.0, 346.0, 23.0, 128.0, 2770.0, 254.0, 82.0, 1090.0, 2.0, 394.0, 309.0, 8201.0, 994.0, 522.0, 1139.0, 2737.0, 2607.0, 325.0, 346.0, 23.0, 128.0, 394.0, 1.0, 343.0, 127.0, 4.0, 1.0, 1226.0, 8029.0, 8.0, 2704.0, 325.0, 4695.0, 4490.0, 12.0, 165.0, 37.0, 504.0, 36.0, 1493.0, 488.0, 9678.0, 16.0, 1.0, 2.0, 1048.0, 6614.0, 81.0, 128.0, 5234.0, 5.0, 845.0, 54.0, 3720.0, 39.0, 7942.0, 2989.0, 3992.0, 128.0, 269.0, 2.0, 1421.0, 992.0, 356.0, 10.0, 137.0, 20.0, 8.0, 343.0, 11.0, 845.0, 13.0] | [0.24872246] | 0 |
13 | 2024-11-01 18:01:49.625 | [129.0, 16.0, 1.0, 1936.0, 1221.0, 6.0, 3.0, 62.0, 4.0, 4801.0, 5508.0, 2.0, 1057.0, 8.0, 1.0, 3.0, 389.0, 510.0, 1021.0, 3656.0, 3085.0, 4214.0, 53.0, 16.0, 170.0, 4.0, 24.0, 1221.0, 2952.0, 31.0, 12.0, 4.0, 3.0, 1763.0, 7203.0, 2661.0, 1.0, 104.0, 423.0, 27.0, 50.0, 272.0, 18.0, 33.0, 1493.0, 28.0, 152.0, 196.0, 68.0, 554.0, 31.0, 1.0, 169.0, 252.0, 835.0, 142.0, 5.0, 110.0, 31.0, 3.0, 1165.0, 1654.0, 1021.0, 2.0, 808.0, 32.0, 2386.0, 5.0, 1402.0, 177.0, 65.0, 1139.0, 5458.0, 7.0, 7.0, 1474.0, 4533.0, 1743.0, 5.0, 1.0, 500.0, 186.0, 17.0, 509.0, 12.0, 516.0, 87.0, 24.0, 1212.0, 2676.0, 11.0, 55.0, 21.0, 61.0, 8.0, 1006.0, 4.0, 1.0, 265.0, 18.0] | [0.27329928] | 0 |
14 | 2024-11-01 18:01:49.625 | [10.0, 112.0, 329.0, 1.0, 271.0, 147.0, 10.0, 89.0, 63.0, 178.0, 5.0, 10.0, 66.0, 54.0, 2304.0, 48.0, 11.0, 17.0, 13.0, 41.0, 51.0, 10.0, 2526.0, 80.0, 1.0, 1712.0, 10.0, 128.0, 89.0, 63.0, 121.0, 48.0, 210.0, 9.0, 13.0, 420.0, 5.0, 76.0, 635.0, 18.0, 10.0, 78.0, 121.0, 12.0, 3.0, 49.0, 104.0, 631.0, 13.0, 1050.0, 36.0, 58.0, 110.0, 104.0, 3657.0, 631.0, 10.0, 67.0, 112.0, 76.0, 142.0, 7.0, 7.0, 1.0, 766.0, 13.0, 35.0, 725.0, 42.0, 1319.0, 6633.0, 39.0, 139.0, 3.0, 52.0, 6550.0, 2.0, 6270.0, 549.0, 111.0, 10.0, 8674.0, 1.0, 742.0, 674.0, 232.0, 80.0, 1.0, 17.0, 2.0, 10.0, 13.0, 2289.0, 7.0, 7.0, 1.0, 113.0, 215.0, 524.0, 1.0] | [0.009601623] | 0 |
15 | 2024-11-01 18:01:49.625 | [28.0, 4.0, 1.0, 99.0, 10.0, 40.0, 158.0, 178.0, 5.0, 64.0, 10.0, 185.0, 9.0, 8.0, 1.0, 4968.0, 4434.0, 18.0, 1537.0, 1.0, 113.0, 13.0, 52.0, 75.0, 30.0, 1.0, 127.0, 4.0, 1.0, 17.0, 10.0, 128.0, 241.0, 767.0, 10.0, 293.0, 1.0, 223.0, 17.0, 10.0, 3543.0, 135.0, 10.0, 293.0, 1.0, 17.0, 7.0, 7.0, 79.0, 130.0, 8.0, 1.0, 1.0, 561.0, 4.0, 11.0, 17.0, 42.0, 811.0, 36.0, 3.0, 271.0, 4.0, 194.0, 9.0, 13.0, 52.0, 75.0, 2.0, 13.0, 683.0, 12.0, 24.0, 17.0, 382.0, 43.0, 37.0, 11.0, 372.0, 55.0, 26.0, 490.0, 3.0, 214.0, 8.0, 6020.0, 81.0, 15.0, 1.0, 174.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] | [0.49502048] | 0 |
16 | 2024-11-01 18:01:49.625 | [70.0, 10.0, 66.0, 1.0, 577.0, 5.0, 646.0, 11.0, 19.0, 1.0, 82.0, 248.0, 10.0, 158.0, 121.0, 48.0, 5.0, 532.0, 14.0, 10.0, 112.0, 216.0, 1.0, 1469.0, 2.0, 138.0, 18.0, 48.0, 10.0, 119.0, 1971.0, 328.0, 31.0, 146.0, 1.0, 83.0, 155.0, 232.0, 6.0, 12.0, 11.0, 19.0, 6.0, 1.0, 246.0, 10.0, 25.0, 123.0, 66.0, 1.0, 6284.0, 5.0, 64.0, 7.0, 7.0, 10.0, 654.0, 10.0, 97.0, 199.0, 9.0, 11.0, 19.0, 3.0, 2244.0, 672.0, 1.0, 83.0, 155.0, 232.0, 68.0, 75.0, 18.0, 14.0, 512.0, 14.0, 9.0, 1.0, 1070.0, 133.0, 10.0, 470.0, 5.0, 40.0, 2541.0, 3.0, 7243.0, 9.0, 13.0, 63.0, 859.0, 221.0, 1.0, 153.0, 158.0, 25.0, 98.0, 455.0, 47.0, 13.0] | [0.08304423] | 0 |
17 | 2024-11-01 18:01:49.625 | [11.0, 6.0, 3.0, 17.0, 12.0, 141.0, 25.0, 74.0, 3.0, 2385.0, 198.0, 14.0, 9.0, 494.0, 5.0, 76.0, 96.0, 73.0, 1615.0, 8.0, 96.0, 389.0, 3.0, 831.0, 1.0, 223.0, 62.0, 6.0, 1341.0, 109.0, 16.0, 1491.0, 1840.0, 106.0, 2866.0, 2.0, 4025.0, 1322.0, 1615.0, 12.0, 137.0, 1279.0, 47.0, 6.0, 3.0, 5023.0, 111.0, 118.0, 427.0, 889.0, 3.0, 247.0, 56.0, 45.0, 5021.0, 18.0, 211.0, 1018.0, 6388.0, 2.0, 92.0, 38.0, 5021.0, 2565.0, 2.0, 56.0, 268.0, 5.0, 64.0, 44.0, 33.0, 23.0, 144.0, 33.0, 468.0, 43.0, 21.0, 5.0, 27.0, 18.0, 38.0, 656.0, 525.0, 262.0, 12.0, 56.0, 13.0, 21.0, 2.0, 38.0, 217.0, 1432.0, 149.0, 178.0, 38.0, 14.0, 56.0, 13.0, 21.0, 5.0] | [0.053483546] | 0 |
18 | 2024-11-01 18:01:49.625 | [462.0, 6.0, 3.0, 52.0, 361.0, 349.0, 362.0, 90.0, 31.0, 3.0, 758.0, 4.0, 4222.0, 60.0, 1025.0, 5.0, 213.0, 122.0, 14.0, 3.0, 240.0, 4.0, 2391.0, 1620.0, 17.0, 469.0, 1.0, 335.0, 299.0, 1637.0, 113.0, 2.0, 4960.0, 62.0, 163.0, 11.0, 3.0, 52.0, 1499.0, 186.0, 1175.0, 30.0, 115.0, 31.0, 54.0, 814.0, 6.0, 462.0, 1.0, 246.0, 186.0, 17.0, 204.0, 123.0, 107.0, 9.0, 40.0, 215.0, 230.0, 315.0, 2.0, 45.0, 161.0, 8.0, 9.0, 5.0, 8136.0, 3.0, 330.0, 103.0, 39.0, 437.0, 15.0, 3.0, 751.0, 22.0, 121.0, 3.0, 164.0, 45.0, 5021.0, 41.0, 65.0, 203.0, 186.0, 19.0, 51.0, 3.0, 47.0, 6.0, 46.0, 1147.0, 1003.0, 2.0, 500.0, 1.0, 1324.0, 35.0, 343.0, 33.0] | [0.027423024] | 0 |
19 | 2024-11-01 18:01:49.625 | [3.0, 3515.0, 4.0, 182.0, 1166.0, 2480.0, 1195.0, 5.0, 137.0, 7780.0, 16.0, 3.0, 2492.0, 3.0, 1460.0, 178.0, 5.0, 3558.0, 95.0, 5.0, 3614.0, 1.0, 7537.0, 213.0, 1.0, 288.0, 3082.0, 33.0, 79.0, 25.0, 5.0, 16.0, 32.0, 1392.0, 2.0, 3.0, 964.0, 549.0, 152.0, 287.0, 146.0, 15.0, 61.0, 339.0, 1004.0, 739.0, 7078.0, 3.0, 1035.0, 500.0, 17.0, 6.0, 20.0, 505.0, 14.0, 3.0, 2.0, 1.0, 82.0, 238.0, 4871.0, 5.0, 1.0, 1378.0, 8.0, 28.0, 4.0, 61.0, 339.0, 695.0, 1504.0, 552.0, 56.0, 66.0, 196.0, 25.0, 52.0, 389.0, 552.0, 96.0, 75.0, 282.0, 331.0, 8.0, 1.0, 17.0, 6.0, 75.0, 7.0, 7.0, 58.0, 1239.0, 1092.0, 7.0, 7.0, 285.0, 2256.0, 201.0, 1469.0, 7.0] | [0.012647837] | 0 |
20 | 2024-11-01 18:01:49.625 | [6.0, 267.0, 8.0, 8693.0, 118.0, 104.0, 296.0, 1166.0, 1534.0, 3019.0, 8352.0, 2860.0, 3848.0, 5.0, 2072.0, 716.0, 16.0, 1.0, 4097.0, 4.0, 716.0, 461.0, 47.0, 33.0, 848.0, 4339.0, 8.0, 3.0, 1452.0, 410.0, 1993.0, 41.0, 1.0, 1393.0, 4930.0, 4.0, 3.0, 4007.0, 1663.0, 9.0, 502.0, 43.0, 12.0, 3.0, 975.0, 442.0, 1362.0, 770.0, 453.0, 47.0, 34.0, 45.0, 2585.0, 1.0, 36.0, 24.0, 333.0, 708.0, 301.0, 3.0, 3720.0, 5.0, 1.0, 286.0, 536.0, 514.0, 2767.0, 1.0, 538.0, 4.0, 2085.0, 732.0, 15.0, 3.0, 229.0, 770.0, 485.0, 5077.0, 34.0, 40.0, 35.0, 568.0, 5.0, 27.0, 593.0, 1195.0, 5.0, 765.0, 53.0, 3741.0, 1.0, 179.0, 4.0, 1.0, 442.0, 7.0, 7.0, 523.0, 31.0, 2896.0] | [0.023909122] | 0 |
21 | 2024-11-01 18:01:49.625 | [6.0, 28.0, 4.0, 1.0, 99.0, 118.0, 22.0, 166.0, 1.0, 9554.0, 1510.0, 8.0, 1392.0, 435.0, 130.0, 6.0, 28.0, 49.0, 459.0, 5.0, 120.0, 86.0, 318.0, 924.0, 905.0, 2.0, 153.0, 5.0, 1.0, 1179.0, 130.0, 6.0, 28.0, 4.0, 1.0, 88.0, 386.0, 153.0, 113.0, 8.0, 3.0, 17.0, 41.0, 3.0, 144.0, 62.0, 8.0, 1.0, 8306.0, 4.0, 1.0, 19.0, 6.0, 8827.0, 16.0, 1491.0, 1270.0, 696.0, 136.0, 2.0, 687.0, 47.0, 6.0, 11.0, 106.0, 34.0, 8.0, 632.0, 6.0, 1.0, 489.0, 4.0, 1.0, 1323.0, 4.0, 1.0, 19.0, 3037.0, 26.0, 149.0, 25.0, 3.0, 1150.0, 602.0, 464.0, 24.0, 1909.0, 2252.0, 87.0, 5.0, 78.0, 35.0, 11.0, 550.0, 149.0, 121.0, 48.0, 6.0, 113.0, 2.0] | [0.86372817] | 0 |
22 | 2024-11-01 18:01:49.625 | [11.0, 6.0, 217.0, 1656.0, 2130.0, 3630.0, 1241.0, 12.0, 642.0, 3525.0, 4.0, 3.0, 1545.0, 964.0, 269.0, 37.0, 3.0, 1661.0, 197.0, 3.0, 2801.0, 2.0, 3.0, 75.0, 248.0, 30.0, 1.0, 1049.0, 2.0, 12.0, 478.0, 960.0, 163.0, 635.0, 3.0, 478.0, 37.0, 2.0, 135.0, 1.0, 1460.0, 9823.0, 51.0, 1.0, 2967.0, 91.0, 1482.0, 16.0, 3.0, 4919.0, 4707.0, 72.0, 76.0, 191.0, 488.0, 1970.0, 4.0, 1.0, 1555.0, 5162.0, 2019.0, 18.0, 161.0, 50.0, 10.0, 479.0, 1.0, 1179.0, 194.0, 3.0, 50.0, 5265.0, 3680.0, 191.0, 1638.0, 235.0, 1462.0, 3.0, 1514.0, 2074.0, 209.0, 2.0, 1387.0, 4.0, 1287.0, 29.0, 12.0, 1207.0, 548.0, 6.0, 2812.0, 71.0, 230.0, 8.0, 3.0, 2074.0, 17.0, 10.0, 479.0, 1.0] | [0.15708977] | 0 |
23 | 2024-11-01 18:01:49.625 | [10.0, 13.0, 914.0, 5.0, 329.0, 11.0, 4513.0, 116.0, 62.0, 197.0, 3.0, 1121.0, 3315.0, 288.0, 151.0, 2.0, 3.0, 1686.0, 288.0, 151.0, 9250.0, 12.0, 45.0, 990.0, 8463.0, 395.0, 29.0, 117.0, 9.0, 91.0, 240.0, 4.0, 37.0, 1.0, 17.0, 1102.0, 8.0, 60.0, 3.0, 1813.0, 490.0, 5.0, 27.0, 875.0, 18.0, 145.0, 442.0, 1527.0, 4257.0, 384.0, 9.0, 85.0, 33.0, 356.0, 9.0, 70.0, 10.0, 25.0, 49.0, 1633.0, 1.0, 1527.0, 23.0, 442.0, 8.0, 1.0, 1121.0, 1630.0, 2.0, 24.0, 1502.0, 271.0, 135.0, 3234.0, 118.0, 345.0, 5.0, 175.0, 31.0, 556.0, 2.0, 44.0, 1.0, 1527.0, 884.0, 3.0, 1813.0, 1.0, 67.0, 5459.0, 70.0, 358.0, 9.0, 8.0, 1.0, 169.0, 278.0, 1.0, 1121.0, 66.0] | [0.34649062] | 0 |
24 | 2024-11-01 18:01:49.625 | [1.0, 1584.0, 6.0, 3.0, 52.0, 75.0, 245.0, 17.0, 36.0, 1.0, 3468.0, 1181.0, 1.0, 92.0, 656.0, 319.0, 765.0, 4.0, 667.0, 6353.0, 2.0, 6295.0, 2130.0, 14.0, 1839.0, 56.0, 45.0, 2.0, 829.0, 3.0, 2014.0, 14.0, 3.0, 1716.0, 610.0, 561.0, 237.0, 32.0, 3553.0, 2407.0, 34.0, 6.0, 52.0, 2.0, 424.0, 9725.0, 16.0, 38.0, 65.0, 1584.0, 138.0, 14.0, 9.0, 6.0, 6.0, 4151.0, 36.0, 1.0, 377.0, 2.0, 56.0, 691.0, 9.0, 18.0, 268.0, 364.0, 16.0, 9.0, 551.0, 104.0, 180.0, 5.0, 103.0, 15.0, 44.0, 22.0, 23.0, 2603.0, 80.0, 146.0, 11.0, 1011.0, 4498.0, 12.0, 6.0, 112.0, 54.0, 548.0, 48.0, 2.0, 3.0, 3190.0, 56.0, 3135.0, 399.0, 8.0, 11.0, 2143.0, 507.0, 56.0] | [0.35645902] | 0 |
25 | 2024-11-01 18:01:49.625 | [100.0, 1.0, 828.0, 3.0, 19.0, 12.0, 1.0, 110.0, 4.0, 2114.0, 1.0, 828.0, 5.0, 138.0, 3825.0, 8744.0, 12.0, 9.0, 90.0, 1.0, 855.0, 411.0, 1189.0, 364.0, 213.0, 1844.0, 2.0, 24.0, 3359.0, 1143.0, 4.0, 440.0, 2212.0, 39.0, 1592.0, 2539.0, 1.0, 828.0, 1.0, 113.0, 6.0, 35.0, 75.0, 12.0, 11.0, 820.0, 450.0, 458.0, 3.0, 209.0, 15.0, 1.0, 2165.0, 4453.0, 2.0, 3.0, 1515.0, 15.0, 1.0, 1844.0, 5170.0, 334.0, 8.0, 343.0, 6.0, 1.0, 17.0, 287.0, 3.0, 165.0, 54.0, 891.0, 1204.0, 37.0, 75.0, 113.0, 16.0, 639.0, 2531.0, 2457.0, 3808.0, 249.0, 5.0, 27.0, 249.0, 5.0, 27.0, 1.0, 62.0, 6.0, 3326.0, 122.0, 36.0, 1.0, 1109.0, 1062.0, 60.0, 464.0, 6.0, 4.0] | [0.07979885] | 0 |
26 | 2024-11-01 18:01:49.625 | [143.0, 803.0, 491.0, 29.0, 34.0, 194.0, 11.0, 19.0, 97.0, 27.0, 139.0, 84.0, 143.0, 1590.0, 22.0, 59.0, 27.0, 683.0, 7.0, 7.0, 1.0, 1270.0, 1.0, 17.0, 470.0, 5.0, 267.0, 6.0, 337.0, 2258.0, 31.0, 46.0, 52.0, 603.0, 111.0, 35.0, 603.0, 12.0, 1.0, 17.0, 6.0, 21.0, 363.0, 1.0, 127.0, 10.0, 1800.0, 543.0, 44.0, 1.0, 111.0, 283.0, 41.0, 1.0, 202.0, 18.0, 41.0, 1.0, 290.0, 106.0, 253.0, 31.0, 4085.0, 8183.0, 18.0, 10.0, 255.0, 12.0, 1.0, 106.0, 13.0, 5560.0, 342.0, 26.0, 6.0, 3.0, 1620.0, 452.0, 39.0, 46.0, 3247.0, 2367.0, 593.0, 18.0, 196.0, 89.0, 137.0, 292.0, 85.0, 1.0, 550.0, 26.0, 494.0, 5.0, 3616.0, 6829.0, 87.0, 8.0, 1821.0, 1182.0] | [0.06785953] | 0 |
27 | 2024-11-01 18:01:49.625 | [10.0, 1605.0, 11.0, 533.0, 9.0, 59.0, 27.0, 181.0, 49.0, 40.0, 31.0, 1.0, 1106.0, 4.0, 1.0, 17.0, 418.0, 1910.0, 2.0, 6917.0, 644.0, 43.0, 181.0, 49.0, 452.0, 3184.0, 1.0, 129.0, 34.0, 554.0, 24.0, 319.0, 20.0, 3.0, 5470.0, 16.0, 3.0, 643.0, 1054.0, 18.0, 11.0, 17.0, 185.0, 14.0, 9.0, 432.0, 20.0, 625.0, 4935.0, 6.0, 1188.0, 281.0, 258.0, 51.0, 26.0, 295.0, 3.0, 214.0, 37.0, 11.0, 96.0, 75.0, 1.0, 17.0, 13.0, 3.0, 415.0, 4.0, 592.0, 9.0, 63.0, 1050.0, 24.0, 673.0, 1910.0, 2.0, 6917.0, 13.0, 70.0, 1041.0, 989.0, 10.0, 516.0, 9.0, 3.0, 339.0, 141.0, 25.0, 516.0, 9.0, 3.0, 238.0, 10.0, 516.0, 9.0, 32.0, 1724.0, 320.0, 40.0, 85.0] | [0.0031776428] | 0 |
28 | 2024-11-01 18:01:49.625 | [44.0, 9.0, 1169.0, 15.0, 1.0, 799.0, 43.0, 4.0, 3171.0, 712.0, 2.0, 3.0, 51.0, 28.0, 106.0, 199.0, 157.0, 1.0, 4398.0, 9.0, 59.0, 27.0, 773.0, 5.0, 1318.0, 11.0, 361.0, 349.0, 15.0, 3.0, 917.0, 923.0, 1305.0, 1807.0, 1.0, 111.0, 41.0, 1.0, 1024.0, 5.0, 2327.0, 3.0, 601.0, 4.0, 9.0, 1816.0, 4389.0, 14.0, 1246.0, 2874.0, 627.0, 192.0, 16.0, 1.0, 628.0, 306.0, 4914.0, 8.0, 4861.0, 4.0, 3.0, 4963.0, 5581.0, 20.0, 1057.0, 2938.0, 1.0, 17.0, 6.0, 7426.0, 355.0, 725.0, 2.0, 57.0, 4147.0, 4.0, 218.0, 315.0, 299.0, 347.0, 5168.0, 2400.0, 1790.0, 45.0, 3.0, 1401.0, 214.0, 14.0, 1.0, 442.0, 1366.0, 34.0, 1.0, 2082.0, 2.0, 147.0, 490.0, 5.0, 9587.0, 29.0] | [0.43954018] | 0 |
29 | 2024-11-01 18:01:49.625 | [89.0, 3233.0, 51.0, 264.0, 30.0, 1.0, 1106.0, 4.0, 1.0, 285.0, 4608.0, 61.0, 736.0, 30.0, 88.0, 454.0, 232.0, 8.0, 959.0, 8.0, 11.0, 1212.0, 353.0, 1.0, 718.0, 1104.0, 130.0, 6.0, 52.0, 309.0, 7.0, 7.0, 5.0, 401.0, 18.0, 3.0, 168.0, 4.0, 1.0, 108.0, 3574.0, 12.0, 141.0, 27.0, 1535.0, 689.0, 5.0, 7.0, 7.0, 1.0, 442.0, 2333.0, 4.0, 1.0, 2291.0, 75.0, 491.0, 1.0, 315.0, 1054.0, 1.0, 912.0, 5172.0, 2.0, 5417.0, 4.0, 1.0, 566.0, 2173.0, 1.0, 768.0, 5.0, 1271.0, 3.0, 4008.0, 2.0, 566.0, 1.0, 1560.0, 1.0, 7834.0, 4.0, 1321.0, 53.0, 661.0, 1.0, 5170.0, 133.0, 8.0, 60.0, 732.0, 8950.0, 20.0, 1.0, 887.0, 1.0, 117.0, 1588.0, 1118.0, 3015.0] | [0.033311725] | 0 |
30 | 2024-11-01 18:01:49.625 | [11.0, 17.0, 13.0, 40.0, 3383.0, 86.0, 97.0, 1815.0, 37.0, 11.0, 17.0, 2.0, 15.0, 1.0, 659.0, 34.0, 421.0, 9.0, 85.0, 4.0, 1.0, 638.0, 33.0, 141.0, 63.0, 190.0, 3.0, 193.0, 251.0, 165.0, 8.0, 1.0, 2908.0, 2.0, 940.0, 530.0, 44.0, 2113.0, 23.0, 21.0, 75.0, 7282.0, 1.0, 390.0, 4.0, 1.0, 4319.0, 2113.0, 11.0, 13.0, 40.0, 370.0, 9.0, 112.0, 66.0, 91.0, 385.0, 44.0, 9.0, 1535.0, 3484.0, 5.0, 5400.0, 4604.0, 9.0, 735.0, 5.0, 987.0, 46.0, 50.0, 370.0, 113.0, 391.0, 226.0, 484.0, 57.0, 15.0, 3.0, 17.0, 16.0, 39.0, 824.0, 3311.0, 11.0, 17.0, 13.0, 75.0, 36.0, 1.0, 451.0, 18.0, 81.0, 235.0, 25.0, 107.0, 1.0, 223.0, 152.0, 31.0, 1.0] | [0.00014650822] | 0 |
31 | 2024-11-01 18:01:49.625 | [1027.0, 5556.0, 6.0, 3.0, 1250.0, 17.0, 8.0, 58.0, 649.0, 46.0, 180.0, 78.0, 8087.0, 69.0, 41.0, 9.0, 961.0, 1330.0, 1641.0, 2357.0, 86.0, 193.0, 9.0, 559.0, 15.0, 38.0, 5.0, 76.0, 35.0, 49.0, 30.0, 1101.0, 2357.0, 7214.0, 41.0, 2484.0, 150.0, 215.0, 2357.0, 420.0, 5.0, 27.0, 3057.0, 2.0, 46.0, 180.0, 78.0, 69.0, 41.0, 9.0, 10.0, 444.0, 1.0, 441.0, 148.0, 9.0, 3692.0, 69.0, 51.0, 11.0, 17.0, 13.0, 90.0, 10.0, 283.0, 57.0, 1443.0, 10.0, 158.0, 63.0, 582.0, 1.0, 4284.0, 10.0, 13.0, 1443.0, 8.0, 2.0, 10.0, 25.0, 5.0, 591.0, 515.0, 2357.0, 59.0, 40.0, 518.0, 8.0, 270.0, 3.0, 224.0, 39.0, 1396.0, 762.0, 29.0, 117.0, 21.0, 63.0, 1101.0, 40.0] | [0.73986185] | 0 |
32 | 2024-11-01 18:01:49.625 | [70.0, 86.0, 2.0, 118.0, 78.0, 10.0, 377.0, 5.0, 1631.0, 11.0, 2148.0, 1831.0, 836.0, 1.0, 6717.0, 4.0, 3.0, 952.0, 360.0, 1007.0, 1396.0, 8.0, 3.0, 6772.0, 2757.0, 4.0, 1.0, 88.0, 3107.0, 1847.0, 1420.0, 766.0, 2.0, 350.0, 5.0, 1.0, 359.0, 80.0, 533.0, 91.0, 643.0, 31.0, 4864.0, 9.0, 53.0, 5.0, 27.0, 41.0, 139.0, 11.0, 19.0, 6.0, 29.0, 5002.0, 2.0, 424.0, 54.0, 2324.0, 7.0, 7.0, 9.0, 514.0, 16.0, 2332.0, 182.0, 346.0, 7805.0, 4.0, 1573.0, 2.0, 1725.0, 8.0, 1.0, 240.0, 4.0, 4775.0, 628.0, 8373.0, 313.0, 67.0, 460.0, 30.0, 100.0, 12.0, 9.0, 29.0, 268.0, 4416.0, 71.0, 3.0, 16.0, 54.0, 1.0, 133.0, 1231.0, 1.0, 83.0, 8242.0, 16.0, 4578.0] | [0.15147203] | 0 |
33 | 2024-11-01 18:01:49.625 | [15.0, 98.0, 4226.0, 334.0, 11.0, 6.0, 1.0, 5.0, 853.0, 54.0, 2090.0, 5.0, 1.0, 4268.0, 46.0, 1240.0, 9434.0, 1.0, 4092.0, 2.0, 1.0, 1460.0, 11.0, 13.0, 3.0, 2439.0, 139.0, 1278.0, 15.0, 1.0, 5547.0, 1206.0, 1.0, 2090.0, 4.0, 9699.0, 1571.0, 1.0, 179.0, 422.0, 30.0, 1.0, 127.0, 90.0, 54.0, 278.0, 2.0, 108.0, 81.0, 231.0, 12.0, 581.0, 336.0, 273.0, 1.0, 4418.0, 8.0, 1.0, 36.0, 1.0, 4025.0, 9434.0, 4.0, 1.0, 4099.0, 1337.0, 5.0, 328.0, 46.0, 144.0, 75.0, 4226.0, 1908.0, 4259.0, 109.0, 1.0, 246.0, 1013.0, 5.0, 328.0, 75.0, 1013.0, 228.0, 1089.0, 6989.0, 1908.0, 2043.0, 86.0, 67.0, 22.0, 25.0, 28.0, 4.0, 1.0, 830.0, 228.0, 3.0, 7267.0, 2.0, 777.0] | [0.00024122] | 0 |
34 | 2024-11-01 18:01:49.625 | [1062.0, 6037.0, 6.0, 3.0, 6486.0, 1499.0, 19.0, 1181.0, 6664.0, 2074.0, 14.0, 3.0, 182.0, 7523.0, 5402.0, 16.0, 3.0, 2305.0, 4.0, 3.0, 436.0, 3592.0, 1011.0, 2074.0, 45.0, 1030.0, 9355.0, 3.0, 1301.0, 1873.0, 1603.0, 36.0, 38.0, 3719.0, 2.0, 3115.0, 16.0, 1.0, 211.0, 3.0, 3914.0, 361.0, 2738.0, 965.0, 38.0, 1432.0, 1021.0, 1484.0, 14.0, 3.0, 945.0, 5807.0, 129.0, 490.0, 38.0, 5.0, 845.0, 8.0, 16.0, 87.0, 18.0, 56.0, 490.0, 38.0, 203.0, 831.0, 35.0, 56.0, 1099.0, 8.0, 2.0, 912.0, 535.0, 514.0, 1445.0, 2.0, 85.0, 11.0, 6.0, 3.0, 500.0, 1239.0, 186.0, 507.0, 222.0, 3.0, 989.0, 21.0, 5.0, 27.0, 255.0, 8.0, 632.0, 279.0, 135.0, 14.0, 1.0, 598.0, 96.0, 1769.0] | [0.026909858] | 0 |
35 | 2024-11-01 18:01:49.625 | [5.0, 680.0, 1742.0, 1980.0, 3.0, 1063.0, 1216.0, 353.0, 6.0, 685.0, 50.0, 5.0, 91.0, 763.0, 1302.0, 5974.0, 91.0, 1251.0, 5.0, 9910.0, 20.0, 1.0, 5797.0, 15.0, 7302.0, 1879.0, 2.0, 1.0, 1265.0, 4.0, 153.0, 34.0, 59.0, 300.0, 320.0, 8.0, 697.0, 14.0, 2016.0, 1950.0, 3242.0, 1243.0, 2.0, 7.0, 7.0, 1.0, 17.0, 407.0, 6.0, 75.0, 192.0, 5.0, 27.0, 49.0, 8033.0, 15.0, 3183.0, 2.0, 6.0, 115.0, 2396.0, 16.0, 1700.0, 36.0, 5180.0, 2.0, 1.0, 3944.0, 11.0, 6.0, 1.0, 549.0, 4.0, 17.0, 115.0, 3943.0, 5.0, 1280.0, 36.0, 1.0, 3183.0, 102.0, 139.0, 5645.0, 547.0, 1780.0, 859.0, 3745.0, 2.0, 365.0, 4.0, 2145.0, 75.0, 113.0, 134.0, 3384.0, 160.0, 535.0, 37.0, 1340.0] | [0.9066123] | 0 |
36 | 2024-11-01 18:01:49.625 | [11.0, 13.0, 28.0, 4.0, 1.0, 246.0, 99.0, 204.0, 123.0, 107.0, 8.0, 58.0, 110.0, 33.0, 298.0, 11.0, 13.0, 1.0, 1598.0, 1519.0, 5.0, 1061.0, 5.0, 29.0, 143.0, 167.0, 5.0, 132.0, 6.0, 12.0, 72.0, 63.0, 158.0, 8247.0, 30.0, 29.0, 10.0, 423.0, 262.0, 12.0, 9.0, 13.0, 162.0, 90.0, 1.0, 164.0, 141.0, 2253.0, 157.0, 5938.0, 85.0, 26.0, 188.0, 94.0, 3.0, 17.0, 1.0, 226.0, 283.0, 49.0, 9.0, 90.0, 54.0, 278.0, 2.0, 13.0, 52.0, 5918.0, 2135.0, 99.0, 23.0, 73.0, 125.0, 71.0, 11.0, 13.0, 2.0, 10.0, 13.0, 2364.0, 683.0, 5.0, 64.0, 1.0, 1017.0, 281.0, 8.0, 11.0, 75.0, 1338.0, 4.0, 3.0, 17.0, 44.0, 10.0, 97.0, 468.0, 142.0, 1.0, 954.0] | [0.0008559227] | 0 |
37 | 2024-11-01 18:01:49.625 | [86.0, 6.0, 9.0, 611.0, 5.0, 94.0, 138.0, 3.0, 75.0, 17.0, 16.0, 138.0, 153.0, 68.0, 33.0, 914.0, 80.0, 9.0, 1.0, 111.0, 45.0, 161.0, 5.0, 78.0, 16.0, 32.0, 323.0, 4.0, 86.0, 180.0, 59.0, 468.0, 43.0, 44.0, 3.0, 3008.0, 2177.0, 15.0, 2214.0, 33.0, 89.0, 57.0, 350.0, 5.0, 199.0, 32.0, 1382.0, 4.0, 12.0, 40.0, 51.0, 22.0, 194.0, 22.0, 68.0, 146.0, 3.0, 927.0, 36.0, 801.0, 20.0, 2414.0, 1.0, 83.0, 674.0, 232.0, 1.0, 17.0, 1126.0, 122.0, 1.0, 1314.0, 2.0, 80.0, 500.0, 19.0, 450.0, 41.0, 297.0, 3.0, 1219.0, 9751.0, 6191.0, 238.0, 1.0, 1984.0, 442.0, 4452.0, 3666.0, 34.0, 490.0, 5.0, 1106.0, 9.0, 53.0, 16.0, 1.0, 88.0, 4960.0, 408.0] | [0.004606515] | 0 |
38 | 2024-11-01 18:01:49.625 | [1.0, 408.0, 8.0, 1.0, 422.0, 4.0, 11.0, 730.0, 23.0, 1.0, 83.0, 408.0, 8.0, 11.0, 595.0, 753.0, 610.0, 3.0, 1668.0, 4716.0, 2107.0, 4.0, 1.0, 8.0, 58.0, 649.0, 524.0, 610.0, 58.0, 511.0, 180.0, 36.0, 1.0, 478.0, 4.0, 225.0, 2.0, 11.0, 250.0, 114.0, 1587.0, 215.0, 1.0, 61.0, 1248.0, 12.0, 163.0, 1.0, 645.0, 2020.0, 2539.0, 1038.0, 596.0, 4835.0, 5.0, 58.0, 1481.0, 596.0, 1154.0, 448.0, 1.0, 19.0, 60.0, 13.0, 1073.0, 217.0, 1093.0, 31.0, 1466.0, 1330.0, 1790.0, 34.0, 3004.0, 14.0, 1323.0, 561.0, 164.0, 2.0, 969.0, 129.0, 14.0, 1.0, 9657.0, 881.0, 596.0, 6.0, 592.0, 54.0, 821.0, 18.0, 9.0, 6.0, 79.0, 721.0, 821.0, 12.0, 9.0, 6.0, 1135.0, 2.0] | [0.045125782] | 0 |
39 | 2024-11-01 18:01:49.625 | [70.0, 86.0, 5.0, 377.0, 10.0, 216.0, 1.0, 1118.0, 289.0, 15.0, 1.0, 83.0, 55.0, 46.0, 150.0, 594.0, 2.0, 5509.0, 3.0, 2358.0, 2020.0, 10.0, 423.0, 176.0, 374.0, 135.0, 10.0, 66.0, 3.0, 75.0, 544.0, 41.0, 9.0, 147.0, 10.0, 78.0, 7.0, 7.0, 100.0, 9751.0, 15.0, 1.0, 2898.0, 15.0, 11.0, 19.0, 10.0, 216.0, 1.0, 681.0, 11.0, 19.0, 6513.0, 88.0, 5.0, 463.0, 3057.0, 536.0, 54.0, 591.0, 33.0, 158.0, 987.0, 192.0, 5.0, 5.0, 3169.0, 2.0, 10.0, 479.0, 46.0, 536.0, 3412.0, 45.0, 1146.0, 948.0, 1188.0, 7.0, 7.0, 82.0, 71.0, 12.0, 11.0, 19.0, 6.0, 337.0, 725.0, 1.0, 153.0, 23.0, 1418.0, 1433.0, 500.0, 378.0, 2.0, 57.0, 1.0, 49.0, 659.0, 23.0] | [0.06713286] | 0 |
40 | 2024-11-01 18:01:49.625 | [22.0, 235.0, 1779.0, 12.0, 1.0, 111.0, 4.0, 11.0, 17.0, 13.0, 395.0, 8.0, 1.0, 1768.0, 4.0, 1419.0, 9.0, 775.0, 14.0, 3.0, 3978.0, 8129.0, 17.0, 18.0, 8.0, 1.0, 652.0, 4.0, 1.0, 19.0, 1.0, 111.0, 1439.0, 6243.0, 51.0, 1.0, 8129.0, 502.0, 5.0, 27.0, 32.0, 1199.0, 129.0, 16.0, 24.0, 1199.0, 247.0, 2.0, 24.0, 1199.0, 9731.0, 2.0, 45.0, 5.0, 545.0, 1.0, 3411.0, 34.0, 178.0, 5.0, 468.0, 1.0, 9731.0, 177.0, 30.0, 98.0, 2315.0, 5.0, 1701.0, 3.0, 4481.0, 39.0, 139.0, 92.0, 1.0, 111.0, 1439.0, 171.0, 2.0, 72.0, 853.0, 41.0, 1.0, 3411.0, 491.0, 1.0, 1016.0, 147.0, 6.0, 1.0, 461.0, 4.0, 1.0, 969.0, 129.0, 34.0, 1288.0, 26.0, 6.0, 3.0] | [0.3861069] | 0 |
41 | 2024-11-01 18:01:49.625 | [22.0, 76.0, 32.0, 531.0, 2.0, 3.0, 317.0, 4.0, 10.0, 25.0, 5.0, 604.0, 1.0, 179.0, 202.0, 29.0, 1.0, 93.0, 28.0, 2436.0, 2.0, 3.0, 252.0, 1194.0, 8.0, 1.0, 11.0, 55.0, 26.0, 295.0, 3.0, 229.0, 34.0, 336.0, 81.0, 8.0, 1.0, 2415.0, 7525.0, 2082.0, 5.0, 3194.0, 1.0, 1106.0, 4.0, 1.0, 17.0, 26.0, 65.0, 498.0, 5.0, 604.0, 65.0, 704.0, 11.0, 25.0, 5.0, 27.0, 643.0, 10.0, 2135.0, 1151.0, 81.0, 77.0, 37.0, 9.0, 148.0, 18.0, 9.0, 6.0, 3.0, 114.0, 117.0, 1.0, 347.0, 15.0, 58.0, 1296.0, 2.0, 1.0, 28.0, 2436.0, 23.0, 63.0, 139.0, 331.0, 2.0, 10.0, 89.0, 380.0, 12.0, 8.0, 3.0, 49.0, 93.0, 100.0, 877.0, 3.0, 4668.0, 26.0] | [0.27362567] | 0 |
42 | 2024-11-01 18:01:49.625 | [15.0, 1.0, 83.0, 4209.0, 232.0, 39.0, 35.0, 6.0, 3.0, 144.0, 1739.0, 5.0, 103.0, 1.0, 102.0, 2.0, 65.0, 902.0, 23.0, 218.0, 2.0, 1.0, 1376.0, 2.0, 1981.0, 23.0, 304.0, 5.0, 165.0, 30.0, 92.0, 6404.0, 2144.0, 38.0, 489.0, 3876.0, 3505.0, 6.0, 769.0, 8908.0, 2.0, 1.0, 17.0, 514.0, 5.0, 8243.0, 2.0, 92.0, 458.0, 5981.0, 1319.0, 8.0, 91.0, 7845.0, 7.0, 7.0, 1641.0, 87.0, 135.0, 2.0, 51.0, 26.0, 644.0, 769.0, 1.0, 1390.0, 2.0, 56.0, 882.0, 1.0, 308.0, 123.0, 76.0, 3.0, 726.0, 1519.0, 60.0, 59.0, 27.0, 3.0, 224.0, 6022.0, 26.0, 4894.0, 21.0, 2904.0, 41.0, 230.0, 18.0, 195.0, 21.0, 205.0, 85.0, 72.0, 64.0, 692.0, 8.0, 1.0, 477.0, 399.0] | [0.3874004] | 0 |
43 | 2024-11-01 18:01:49.625 | [10.0, 178.0, 1.0, 3806.0, 232.0, 4.0, 58.0, 110.0, 142.0, 12.0, 13.0, 1050.0, 20.0, 11.0, 1234.0, 1338.0, 15.0, 3.0, 17.0, 1.0, 113.0, 13.0, 2993.0, 10.0, 340.0, 5.0, 27.0, 3.0, 334.0, 4.0, 4057.0, 8720.0, 2.0, 3241.0, 10.0, 77.0, 112.0, 165.0, 30.0, 95.0, 1.0, 169.0, 171.0, 8646.0, 5999.0, 2.0, 2126.0, 68.0, 21.0, 3.0, 863.0, 313.0, 691.0, 33.0, 112.0, 97.0, 508.0, 2670.0, 61.0, 2126.0, 3359.0, 32.0, 1187.0, 24.0, 1187.0, 13.0, 3.0, 1688.0, 14.0, 870.0, 10.0, 101.0, 26.0, 13.0, 342.0, 1472.0, 41.0, 1.0, 1621.0, 4.0, 1.0, 19.0, 39.0, 66.0, 112.0, 162.0, 2853.0, 5.0, 256.0, 36.0, 10.0, 437.0, 11.0, 730.0, 1523.0, 256.0, 34.0, 6.0, 41.0, 48.0] | [0.19207326] | 0 |
44 | 2024-11-01 18:01:49.625 | [1247.0, 538.0, 6.0, 32.0, 424.0, 2521.0, 1175.0, 19.0, 1103.0, 6095.0, 2550.0, 1.0, 4970.0, 16.0, 1.0, 2982.0, 1715.0, 1186.0, 2.0, 2894.0, 3.0, 452.0, 8.0, 3.0, 4092.0, 2377.0, 7.0, 7.0, 1.0, 349.0, 15.0, 11.0, 19.0, 212.0, 25.0, 74.0, 52.0, 361.0, 46.0, 4.0, 1.0, 153.0, 253.0, 2579.0, 528.0, 2.0, 1.0, 367.0, 340.0, 1052.0, 3.0, 428.0, 3219.0, 5.0, 1.0, 307.0, 4.0, 1.0, 201.0, 311.0, 4.0, 1.0, 578.0, 348.0, 60.0, 44.0, 1815.0, 45.0, 293.0, 12.0, 307.0, 77.0, 142.0, 69.0, 53.0, 12.0, 9.0, 6.0, 335.0, 7.0, 7.0, 11.0, 19.0, 13.0, 40.0, 35.0, 75.0, 47.0, 6.0, 161.0, 8.0, 1.0, 19.0, 57.0, 287.0, 146.0, 1.0, 52.0, 189.0, 10.0] | [0.14031923] | 0 |
45 | 2024-11-01 18:01:49.625 | [10.0, 66.0, 309.0, 1911.0, 15.0, 11.0, 19.0, 51.0, 10.0, 216.0, 1.0, 9609.0, 2.0, 869.0, 5.0, 103.0, 9.0, 20.0, 245.0, 31.0, 2150.0, 2009.0, 204.0, 421.0, 844.0, 1170.0, 8.0, 108.0, 99.0, 18.0, 143.0, 1590.0, 12.0, 257.0, 1.0, 82.0, 102.0, 680.0, 87.0, 1375.0, 3724.0, 149.0, 468.0, 87.0, 80.0, 57.0, 3.0, 3796.0, 4.0, 1375.0, 7.0, 7.0, 10.0, 255.0, 11.0, 17.0, 5.0, 27.0, 3.0, 597.0, 1384.0, 1.0, 225.0, 478.0, 1402.0, 800.0, 5.0, 1.0, 997.0, 8.0, 1.0, 201.0, 18.0, 9.0, 96.0, 1193.0, 5.0, 719.0, 1.0, 19.0, 53.0, 1.0, 1.0, 1270.0, 4.0, 1.0, 201.0, 1.0, 1023.0, 4.0, 1.0, 102.0, 8.0, 1.0, 201.0, 68.0, 665.0, 1009.0, 36.0, 11.0] | [0.0150666535] | 0 |
46 | 2024-11-01 18:01:49.625 | [1.0, 164.0, 11.0, 19.0, 16.0, 2560.0, 1134.0, 31.0, 5686.0, 3.0, 6167.0, 466.0, 1.0, 19.0, 172.0, 682.0, 321.0, 8.0, 11.0, 17.0, 6.0, 339.0, 208.0, 1205.0, 71.0, 9.0, 735.0, 5.0, 27.0, 22.0, 97.0, 711.0, 602.0, 43.0, 297.0, 454.0, 631.0, 4.0, 11.0, 193.0, 238.0, 454.0, 531.0, 19.0, 206.0, 28.0, 678.0, 4.0, 412.0, 28.0, 1457.0, 28.0, 1489.0, 39.0, 224.0, 4.0, 2419.0, 7.0, 7.0, 11.0, 13.0, 28.0, 4.0, 1.0, 88.0, 2170.0, 6994.0, 4.0, 19.0, 10.0, 25.0, 123.0, 107.0, 82.0, 1983.0, 25.0, 443.0, 9.0, 1944.0, 60.0, 6.0, 32.0, 7611.0, 6.0, 3928.0, 2775.0, 1154.0, 2426.0, 5.0, 27.0, 1207.0, 360.0, 35.0, 12.0, 1.0, 7045.0, 8758.0, 97.0, 65.0, 5746.0] | [0.12673128] | 0 |
47 | 2024-11-01 18:01:49.625 | [3800.0, 683.0, 1.0, 1060.0, 13.0, 547.0, 1.0, 102.0, 1295.0, 2.0, 466.0, 1.0, 19.0, 14.0, 3.0, 223.0, 40.0, 384.0, 69.0, 231.0, 1095.0, 2.0, 47.0, 13.0, 54.0, 144.0, 111.0, 12.0, 97.0, 398.0, 22.0, 7294.0, 184.0, 1.0, 19.0, 2.0, 398.0, 22.0, 925.0, 1.0, 5423.0, 407.0, 112.0, 2564.0, 98.0, 2318.0, 2.0, 158.0, 303.0, 52.0, 70.0, 148.0, 140.0, 7.0, 7.0, 47.0, 13.0, 21.0, 192.0, 1134.0, 39.0, 974.0, 5.0, 98.0, 106.0, 2.0, 106.0, 13.0, 28.0, 10.0, 7215.0, 15.0, 469.0, 45.0, 54.0, 323.0, 86.0, 5.0, 294.0, 1.0, 2.0, 6.0, 73.0, 5934.0, 14.0, 3.0, 1451.0, 106.0, 343.0, 28.0, 4.0, 58.0, 1636.0, 153.0, 8.0, 1.0, 5042.0, 384.0, 69.0, 177.0] | [0.0075387955] | 0 |
48 | 2024-11-01 18:01:49.625 | [51.0, 58.0, 1444.0, 288.0, 151.0, 1579.0, 2355.0, 30.0, 1.0, 748.0, 312.0, 11.0, 17.0, 12.0, 13.0, 29.0, 1.0, 10.0, 884.0, 12.0, 11.0, 19.0, 6.0, 3.0, 4225.0, 9.0, 13.0, 355.0, 1.0, 626.0, 528.0, 68.0, 355.0, 1.0, 528.0, 68.0, 355.0, 57.0, 1.0, 160.0, 528.0, 16.0, 104.0, 1401.0, 5668.0, 68.0, 355.0, 2.0, 725.0, 2.0, 119.0, 10.0, 757.0, 725.0, 2684.0, 297.0, 1.0, 8299.0, 18.0, 1708.0, 1243.0, 24.0, 7305.0, 4.0, 3.0, 550.0, 238.0, 1.0, 8299.0, 18.0, 1708.0, 1243.0, 2640.0, 1.0, 3879.0, 134.0, 1114.0, 3.0, 610.0, 339.0, 1.0, 7305.0, 4.0, 3.0, 550.0, 7036.0, 5.0, 602.0, 2.0, 518.0, 18.0, 1213.0, 5.0, 24.0, 366.0, 6417.0, 180.0, 43.0, 85.0, 33.0] | [0.944641] | 0 |
49 | 2024-11-01 18:01:49.625 | [11.0, 13.0, 90.0, 8.0, 12.0, 2756.0, 557.0, 570.0, 14.0, 1.0, 2078.0, 2.0, 321.0, 8.0, 58.0, 8103.0, 4.0, 159.0, 779.0, 540.0, 162.0, 11.0, 45.0, 410.0, 28.0, 4.0, 58.0, 511.0, 500.0, 917.0, 923.0, 99.0, 446.0, 249.0, 9.0, 63.0, 4391.0, 5.0, 309.0, 606.0, 18.0, 222.0, 35.0, 73.0, 5.0, 94.0, 250.0, 4.0, 460.0, 2.0, 354.0, 12.0, 9.0, 458.0, 50.0, 6861.0, 100.0, 172.0, 825.0, 7.0, 7.0, 138.0, 14.0, 7.0, 7.0, 350.0, 5.0, 166.0, 1.0, 4376.0, 197.0, 11.0, 2.0, 70.0, 607.0, 47.0, 6.0, 161.0, 4379.0, 75.0, 14.0, 11.0, 70.0, 546.0, 1663.0, 4.0, 7.0, 7.0, 6190.0, 67.0, 27.0, 1821.0, 5.0, 126.0, 3350.0, 7.0, 7.0, 984.0, 31.0, 6058.0] | [0.007553011] | 0 |
50
Model Validation Rules
A simple way to try to keep your model’s behavior up to snuff is to make sure that it receives inputs that it expects, and that its output is something that downstream systems can handle. This can entail specifying rules that document what you expect, and either enforcing these rules (by refusing to make a prediction), or at least logging an alert that the expectations described by your validation rules have been violated. As the developer of the model, the data scientist (along with relevant subject matter experts) will often be the person in the best position to specify appropriate validation rules.
In our house price prediction example, suppose you know that house prices in your market are typically in the range $750,000 to $1.5M dollars. Then you might want to set validation rules on your model pipeline to specify that you expect the model’s predictions to also be in that range. Then, if the model predicts a value outside that range, the pipeline will log that one of the validation checks has failed; this allows you to investigate that instance further.
Wallaroo provides validations to detect anomalous data from inference inputs and outputs. Validations are added to a Wallaroo pipeline with the wallaroo.pipeline.add_validations
method.
Adding validations takes the format:
pipeline.add_validations(
validation_name_01 = polars.col(in|out.{column_name}) EXPRESSION,
validation_name_02 = polars.col(in|out.{column_name}) EXPRESSION
...{additional rules}
)
validation_name
: The user provided name of the validation. The names must match Python variable naming requirements.- IMPORTANT NOTE: Using the name
count
as a validation name returns a warning. Any validation rules namedcount
are dropped upon request and an warning returned.
- IMPORTANT NOTE: Using the name
polars.col(in|out.{column_name})
: Specifies the input or output for a specific field aka “column” in an inference result. Wallaroo inference requests are in the formatin.{field_name}
for inputs, andout.{field_name}
for outputs.- More than one field can be selected, as long as they follow the rules of the polars 0.18 Expressions library.
EXPRESSION
: The expression to validate. When the expression returns True, that indicates an anomaly detected.
The polars
library version 0.18.5 is used to create the validation rule. This is installed by default with the Wallaroo SDK. This provides a powerful range of comparisons to organizations tracking anomalous data from their ML models.
When validations are added to a pipeline, inference request outputs return the following fields:
Field | Type | Description |
---|---|---|
anomaly.count | Integer | The total of all validations that returned True. |
anomaly.{validation name} | Bool | The output of the validation {validation_name} . |
When validation returns True
, an anomaly is detected.
For example, adding the validation fraud
to the following pipeline returns anomaly.count
of 1
when the validation fraud
returns True
. The validation fraud
returns True
when the output field dense_1 at index 0 is greater than 0.9.
sample_pipeline = wallaroo.client.build_pipeline("sample-pipeline")
sample_pipeline.add_model_step(model)
# add the validation
sample_pipeline.add_validations(
fraud=pl.col("out.dense_1").list.get(0) > 0.9,
)
# deploy the pipeline
sample_pipeline.deploy()
# sample inference
display(sample_pipeline.infer_from_file("dev_high_fraud.json", data_format='pandas-records'))
time | in.tensor | out.dense_1 | anomaly.count | anomaly.fraud | |
---|---|---|---|---|---|
0 | 2024-02-02 16:05:42.152 | [1.0678324729, 18.1555563975, -1.6589551058, 5…] | [0.981199] | 1 | True |
Detecting Anomalies from Inference Request Results
When an inference request is submitted to a Wallaroo pipeline with validations, the following fields are output:
Field | Type | Description |
---|---|---|
anomaly.count | Integer | The total of all validations that returned True. |
anomaly.{validation name} | Bool | The output of each pipeline validation {validation_name} . |
For example, adding the validation fraud
to the following pipeline returns anomaly.count
of 1
when the validation fraud
returns True
.
sample_pipeline = wallaroo.client.build_pipeline("sample-pipeline")
sample_pipeline.add_model_step(model)
# add the validation
sample_pipeline.add_validations(
fraud=pl.col("out.dense_1").list.get(0) > 0.9,
)
# deploy the pipeline
sample_pipeline.deploy()
# sample inference
display(sample_pipeline.infer_from_file("dev_high_fraud.json", data_format='pandas-records'))
time | in.tensor | out.dense_1 | anomaly.count | anomaly.fraud | |
---|---|---|---|---|---|
0 | 2024-02-02 16:05:42.152 | [1.0678324729, 18.1555563975, -1.6589551058, 5…] | [0.981199] | 1 | True |
Model Validation Rules Exercise
Add some simple validation rules to the model pipeline that you created in a previous exercise.
- Add an upper bound or a lower bound to the model predictions.
- Try to create predictions that fall both in and out of the specified range.
- Look through the logs to find anomalies.
HINT 1: since the purpose of this exercise is try out validation rules, it might be a good idea to take a small data set and make predictions on that data set first, then set the validation rules based on those predictions, so that you can see the check failures trigger.
Here’s an example:
import polars as pl
sample_pipeline = sample_pipeline.add_validations(
too_low=pl.col("out.cryptolocker").list.get(0) < 0.4
)
## blank space to set a validation rule on the pipeline and check if it triggers as expected
# 50%
hi_bnd = 50.0
import polars as pl
pipeline = pipeline.add_validations(
too_low=pl.col("out.dense_1").list.get(0) < 0.2
)
pipeline.deploy()
multiple_result = pipeline.infer_from_file('../data/test_data.df.json')
# show only the results with an anomaly
# show only the results that triggered an anomaly
multiple_result.loc[multiple_result['anomaly.count'] > 0, ['time', 'out.dense_1']]
time | out.dense_1 | |
---|---|---|
2 | 2024-11-01 18:02:05.717 | [0.07601619] |
4 | 2024-11-01 18:02:05.717 | [0.08632833] |
6 | 2024-11-01 18:02:05.717 | [0.024733633] |
10 | 2024-11-01 18:02:05.717 | [0.0020476878] |
14 | 2024-11-01 18:02:05.717 | [0.009601623] |
16 | 2024-11-01 18:02:05.717 | [0.08304423] |
17 | 2024-11-01 18:02:05.717 | [0.053483546] |
18 | 2024-11-01 18:02:05.717 | [0.027423024] |
19 | 2024-11-01 18:02:05.717 | [0.012647837] |
20 | 2024-11-01 18:02:05.717 | [0.023909122] |
22 | 2024-11-01 18:02:05.717 | [0.15708977] |
25 | 2024-11-01 18:02:05.717 | [0.07979885] |
26 | 2024-11-01 18:02:05.717 | [0.06785953] |
27 | 2024-11-01 18:02:05.717 | [0.0031776428] |
29 | 2024-11-01 18:02:05.717 | [0.033311725] |
30 | 2024-11-01 18:02:05.717 | [0.00014650822] |
32 | 2024-11-01 18:02:05.717 | [0.15147203] |
33 | 2024-11-01 18:02:05.717 | [0.00024122] |
34 | 2024-11-01 18:02:05.717 | [0.026909858] |
36 | 2024-11-01 18:02:05.717 | [0.0008559227] |
37 | 2024-11-01 18:02:05.717 | [0.004606515] |
38 | 2024-11-01 18:02:05.717 | [0.045125782] |
39 | 2024-11-01 18:02:05.717 | [0.06713286] |
43 | 2024-11-01 18:02:05.717 | [0.19207326] |
44 | 2024-11-01 18:02:05.717 | [0.14031923] |
45 | 2024-11-01 18:02:05.717 | [0.0150666535] |
46 | 2024-11-01 18:02:05.717 | [0.12673128] |
47 | 2024-11-01 18:02:05.717 | [0.0075387955] |
49 | 2024-11-01 18:02:05.717 | [0.007553011] |
Clean Up
At this point, if you are not continuing on to the next notebook, undeploy your pipeline to give the resources back to the environment.
## blank space to undeploy the pipeline
pipeline.undeploy()
name | imdb-reviewer |
---|---|
created | 2024-11-01 17:41:20.204008+00:00 |
last_updated | 2024-11-01 18:02:03.109794+00:00 |
deployed | False |
workspace_id | 11 |
workspace_name | tutorial-workspace-sentiment-analysis |
arch | x86 |
accel | none |
tags | |
versions | dc0fd017-f43f-4f00-821d-6e1a11ee88e2, a0d82d3f-14a3-4897-90b1-e4ca3e56d23c, 4024dae6-8e62-4720-8feb-c35c7224e1a7, f6287d00-b934-4ad8-9e92-cd20d544e6a5, d8d77a9d-5baa-4979-9e59-d746ce94dde2, 6a333530-d25a-4f42-9c74-97b5a96a150a |
steps | embedder |
published | False |
Congratulations!
In this tutorial you have
- Set a validation rule on your house price prediction pipeline.
- Detected model predictions that failed the validation rule.
In the next notebook, you will learn how to monitor the distribution of model outputs for drift away from expected behavior.