diff --git a/alloydb/notebooks/columnar_engine_accelerated_hnsw_vector_search_benchmark.ipynb b/alloydb/notebooks/columnar_engine_accelerated_hnsw_vector_search_benchmark.ipynb new file mode 100644 index 0000000000..d4701dcebe --- /dev/null +++ b/alloydb/notebooks/columnar_engine_accelerated_hnsw_vector_search_benchmark.ipynb @@ -0,0 +1,2703 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "Copyright 2024 Google LLC\n", + "\n", + "Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "you may not use this file except in compliance with the License.\n", + "You may obtain a copy of the License at\n", + "\n", + " https://www.apache.org/licenses/LICENSE-2.0\n", + "\n", + "Unless required by applicable law or agreed to in writing, software\n", + "distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "See the License for the specific language governing permissions and\n", + "limitations under the License." + ], + "metadata": { + "editable": false, + "id": "87m82ztIVg1L" + } + }, + { + "cell_type": "markdown", + "source": [ + "# 🚀 Columnar Engine Accelerated Hnsw Vector Search Benchmark\n", + "\n", + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/GoogleCloudPlatform/python-docs-samples/blob/main/alloydb/notebooks/columnar_engine_accelerated_hnsw_vector_search_benchmark.ipynb)\n", + "\n", + "---\n", + "This interactive notebook measures the performance impact of **AlloyDB's Columnar Engine** on **pgvector HNSW** indexes. Visit [Get Started with AlloyDB](https://cloud.google.com/alloydb/docs/quickstart).\n", + "\n", + "*(Note: The performance metrics demonstrated in this notebook were captured using an **AlloyDB C4A 16-vCPU** instance. Your results may vary based on machine type & size).*\n", + "\n", + "🚨 **IMPORTANT PREREQUISITES:**\n", + "\n", + "Ensure that **Public IP is enabled** on the instance *(Note: there is no need to authorize any networks!)* and the following database flags are set on your AlloyDB primary instance:\n", + "* `google_columnar_engine.enabled` = `on`\n", + "* `google_columnar_engine.enable_index_caching` = `on`\n", + "* `google_columnar_engine.memory_size_in_mb` = `1024` (or greater)\n", + "\n", + "📚 **Helpful Resources:**\n", + "\n", + "* [Get Started with AlloyDB](https://cloud.google.com/alloydb/docs/quickstart)\n", + "* [Accelerate vector search with the columnar engine](https://docs.cloud.google.com/alloydb/docs/ai/accelerate-with-ce)\n", + "* [pgvector](https://github.com/pgvector/pgvector)\n", + "---" + ], + "metadata": { + "id": "markdown-header" + } + }, + { + "cell_type": "code", + "source": [ + "# @title ⚙️ Benchmark Execution\n", + "# ==========================================\n", + "# 1. CONFIGURATION\n", + "# ==========================================\n", + "# @markdown ### **⚙️ 1. Cluster Configuration**\n", + "project_id = \"\" # @param {type:\"string\", placeholder:\"Project ID\"}\n", + "region = \"\" # @param {type:\"string\", placeholder: \"Region (e.g. us-central1)\"}\n", + "cluster_name = \"\" # @param {type:\"string\", placeholder: \"Cluster name\"}\n", + "instance_name = \"\" # @param {type:\"string\", placeholder: \"Instance Name\"}\n", + "\n", + "# @markdown ### **🔐 2. Database Credentials**\n", + "# @markdown *Note: Password will be requested securely when the benchmark is executed.*\n", + "db_user = \"\" # @param {type:\"string\", placeholder: \"DB User\"}\n", + "db_name = \"\" # @param {type:\"string\", placeholder: \"DB Name\"}\n", + "\n", + "# @markdown ### **⚙️ 3. Benchmark Settings**\n", + "# @markdown *Note: Increasing these values will provide more intensive testing, but will slow down the benchmark runtime.*\n", + "# @markdown * `test_queries`: The total number of test queries to run during the benchmark. Increasing this value provides a more stable average but slows down the overall runtime.\n", + "# @markdown * `search_limit`: The number of nearest neighbors to retrieve per query (i.e., the `LIMIT` on the vector similarity search, equivalent to top-k).\n", + "\n", + "test_queries = 1000 # @param [100, 1000, 10000] {type:\"raw\"}\n", + "search_limit = 10 # @param [10, 100] {type:\"raw\"}\n", + "vector_dim = 100 # Fixed for GloVe-100 dataset\n", + "\n", + "import getpass\n", + "# Prompt for password upfront so user doesn't wait for the pip installation\n", + "db_pass = getpass.getpass(\"🔑 Enter Database Password for AlloyDB: \")\n", + "\n", + "# ==========================================\n", + "# 2. SETUP & AUTHENTICATION\n", + "# ==========================================\n", + "import os\n", + "print(\"📦 Installing dependencies silently... (This takes ~15 seconds)\")\n", + "%pip install -q h5py matplotlib asyncpg google-cloud-alloydb-connector[asyncpg] tqdm rich pgvector\n", + "\n", + "print(\"🔐 Authenticating with Google Cloud...\")\n", + "from google.colab import auth\n", + "auth.authenticate_user()\n", + "\n", + "from IPython.display import clear_output\n", + "clear_output()\n", + "print(\"✅ Output cleared. Colab Setup successful!\")\n", + "\n", + "# ==========================================\n", + "# 3. LATE IMPORTS (Post-Installation)\n", + "# ==========================================\n", + "import asyncio\n", + "import urllib.request\n", + "import shutil\n", + "import h5py\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.ticker as ticker\n", + "from tqdm.notebook import tqdm\n", + "from rich.console import Console\n", + "from rich.panel import Panel\n", + "from rich.markdown import Markdown\n", + "from google.cloud.alloydb.connector import AsyncConnector\n", + "import pgvector.asyncpg\n", + "from pgvector.asyncpg import register_vector\n", + "from IPython.display import display, HTML\n", + "\n", + "console = Console()\n", + "\n", + "def print_step(step_label, text=\"\", is_success=False, is_error=False):\n", + " # Base styling (font size and spacing)\n", + " base_style = \"font-size: 17px; margin-top: 10px; margin-bottom: 4px;\"\n", + "\n", + " if is_success:\n", + " # Success: Fully bold, Universal Material Green\n", + " display(HTML(f'''\n", + "
\n", + " {step_label} {text}\n", + "
\n", + " '''))\n", + " elif is_error:\n", + " # Error: Fully bold, Universal Material Red\n", + " display(HTML(f'''\n", + "
\n", + " {step_label} {text}\n", + "
\n", + " '''))\n", + " else:\n", + " # Steps: Label is bold and colored; Text is normal weight and theme-adaptive\n", + " display(HTML(f'''\n", + "
\n", + " {step_label}\n", + " {text}\n", + "
\n", + " '''))\n", + "\n", + "# ==========================================\n", + "# 4. SQL DEFINITIONS (Optimized with Array Intersection)\n", + "# ==========================================\n", + "SQL_MEASURE_RECALL = \"\"\"\n", + "CREATE OR REPLACE FUNCTION measure_recall(ef INT, num_q INT) RETURNS FLOAT AS $func$\n", + "DECLARE\n", + " q_rec record; total_recall FLOAT := 0; retrieved_ids INT[]; intersect_count INT;\n", + "BEGIN\n", + " PERFORM set_config('hnsw.ef_search', ef::text, false);\n", + "\n", + " FOR q_rec IN SELECT embedding, ground_truth FROM glove_test LIMIT num_q LOOP\n", + " SELECT array_agg(sub.id) INTO retrieved_ids FROM (\n", + " SELECT id FROM glove ORDER BY embedding <=> q_rec.embedding LIMIT __SEARCH_LIMIT__\n", + " ) sub;\n", + "\n", + " -- Instant Intersection of retrieved array and ground_truth[1:search_limit]\n", + " SELECT count(*) INTO intersect_count\n", + " FROM unnest(retrieved_ids) as r\n", + " JOIN unnest(q_rec.ground_truth[1:__SEARCH_LIMIT__]) as g ON r = g;\n", + "\n", + " total_recall := total_recall + (intersect_count::FLOAT / __SEARCH_LIMIT__);\n", + " END LOOP;\n", + "\n", + " RETURN total_recall / num_q;\n", + "END;\n", + "$func$ LANGUAGE plpgsql;\n", + "\"\"\".replace(\"__SEARCH_LIMIT__\", str(search_limit))\n", + "\n", + "SQL_MEASURE_QPS = \"\"\"\n", + "CREATE OR REPLACE FUNCTION measure_qps(ef INT, num_q INT) RETURNS FLOAT AS $func$\n", + "DECLARE\n", + " start_time timestamp; end_time timestamp; q_vec halfvec;\n", + "BEGIN\n", + " PERFORM set_config('hnsw.ef_search', ef::text, false);\n", + "\n", + " start_time := clock_timestamp();\n", + " FOR q_vec IN SELECT embedding FROM glove_test LIMIT num_q LOOP\n", + " PERFORM id FROM glove ORDER BY embedding <=> q_vec LIMIT __SEARCH_LIMIT__;\n", + " END LOOP;\n", + " end_time := clock_timestamp();\n", + "\n", + " RETURN num_q / (extract(epoch from end_time) - extract(epoch from start_time));\n", + "END;\n", + "$func$ LANGUAGE plpgsql;\n", + "\"\"\".replace(\"__SEARCH_LIMIT__\", str(search_limit))\n", + "\n", + "# ==========================================\n", + "# 5. CORE FUNCTIONS\n", + "# ==========================================\n", + "async def verify_columnar_flags(conn):\n", + " print_step(\"Step 2/9:\", \"🔍 Verifying Columnar Engine Flags...\")\n", + " enabled = await conn.fetchval(\"SELECT current_setting('google_columnar_engine.enabled', true);\")\n", + " caching = await conn.fetchval(\"SELECT current_setting('google_columnar_engine.enable_index_caching', true);\")\n", + " mem_size = await conn.fetchval(\"SELECT current_setting('google_columnar_engine.memory_size_in_mb', true);\")\n", + "\n", + " warnings = []\n", + " if enabled != 'on': warnings.append(\"google_columnar_engine.enabled is NOT 'on'\")\n", + " if caching != 'on': warnings.append(\"google_columnar_engine.enable_index_caching is NOT 'on'\")\n", + " try:\n", + " if not mem_size or int(mem_size) < 1024:\n", + " warnings.append(f\"memory_size_in_mb is '{mem_size}' (Must be at least 1024)\")\n", + " except ValueError:\n", + " warnings.append(f\"Could not parse memory_size_in_mb: {mem_size}\")\n", + "\n", + " if warnings:\n", + " for w in warnings: print_step(\"❌\", w, is_error=True)\n", + " raise RuntimeError(\"Missing required Database Flags. Please update your cluster settings and restart.\")\n", + " else:\n", + " print_step(\"✅\", \"All strict Columnar Engine flags are properly configured!\", is_success=True)\n", + "\n", + "async def fast_bulk_insert_train(conn, data_array, batch_size=10000, desc=\"\"):\n", + " for i in tqdm(range(0, len(data_array), batch_size), desc=desc, leave=True, colour='#1f77b4'):\n", + " batch = data_array[i:i + batch_size]\n", + " records = [(i + j + 1, emb.tolist()) for j, emb in enumerate(batch)]\n", + " await conn.copy_records_to_table(\"glove\", columns=[\"id\", \"embedding\"], records=records)\n", + "\n", + "async def fast_bulk_insert_test(conn, data_array, neighbors_array, batch_size=10000, desc=\"\"):\n", + " for i in tqdm(range(0, len(data_array), batch_size), desc=desc, leave=True, colour='#1f77b4'):\n", + " batch_d = data_array[i:i + batch_size]\n", + " batch_n = neighbors_array[i:i + batch_size]\n", + " records = [(i + j + 1, emb.tolist(), [int(x+1) for x in nbr]) for j, (emb, nbr) in enumerate(zip(batch_d, batch_n))]\n", + " await conn.copy_records_to_table(\"glove_test\", columns=[\"id\", \"embedding\", \"ground_truth\"], records=records)\n", + "\n", + "async def prepare_dataset(conn):\n", + " print_step(\"Step 4/9:\", \"📥 Preparing GloVe Dataset...\")\n", + " if not os.path.exists(\"glove-100-angular.hdf5\"):\n", + " console.print(\" [dim]Downloading dataset (1.2GB) from ann-benchmarks.com...[/dim]\")\n", + " url = \"http://ann-benchmarks.com/glove-100-angular.hdf5\"\n", + " req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})\n", + " with urllib.request.urlopen(req) as response, open(\"glove-100-angular.hdf5\", \"wb\") as out_file:\n", + " shutil.copyfileobj(response, out_file)\n", + "\n", + " print_step(\"Step 5/9:\", \"📂 Loading dataset and inserting via COPY...\")\n", + " with h5py.File(\"glove-100-angular.hdf5\", \"r\") as f:\n", + " train_data = f['train'][:]\n", + " test_data = f['test'][:]\n", + " neighbors_data = f['neighbors'][:]\n", + "\n", + " await fast_bulk_insert_train(conn, train_data, desc=\"COPY Training Data\")\n", + " await fast_bulk_insert_test(conn, test_data, neighbors_data, desc=\"COPY Test Queries & Ground Truth\")\n", + "\n", + "async def monitor_index_progress(connector):\n", + " try:\n", + " poll_conn = await connector.connect(\n", + " f\"projects/{project_id}/locations/{region}/clusters/{cluster_name}/instances/{instance_name}\",\n", + " \"asyncpg\", user=db_user, password=db_pass, db=db_name, ip_type=\"PUBLIC\"\n", + " )\n", + " except Exception:\n", + " return\n", + "\n", + " try:\n", + " with tqdm(total=100, desc=\"Building HNSW Index\", colour='#00ff00') as pbar:\n", + " while True:\n", + " try:\n", + " progress = await poll_conn.fetchrow(\"\"\"\n", + " SELECT blocks_done, blocks_total, phase\n", + " FROM pg_stat_progress_create_index\n", + " WHERE relid = 'glove'::regclass\n", + " \"\"\")\n", + " if progress and progress['blocks_total'] > 0:\n", + " percent = (progress['blocks_done'] / progress['blocks_total']) * 100\n", + " pbar.n = round(percent, 1)\n", + " pbar.set_postfix_str(f\"Phase: {progress['phase']}\")\n", + " pbar.refresh()\n", + " except Exception:\n", + " pass\n", + " await asyncio.sleep(1)\n", + " except asyncio.CancelledError:\n", + " pass\n", + " finally:\n", + " try:\n", + " await poll_conn.close()\n", + " except Exception:\n", + " pass\n", + "\n", + "async def build_index(conn, connector):\n", + " print_step(\"Step 6/9:\", \"🧹 Updating database planner statistics...\")\n", + " await conn.execute(\"VACUUM (DISABLE_PAGE_SKIPPING, ANALYZE) glove;\")\n", + " await conn.execute(\"VACUUM (DISABLE_PAGE_SKIPPING, ANALYZE) glove_test;\")\n", + "\n", + " print_step(\"Step 7/9:\", \"🏗️ Building HNSW Index...\")\n", + " await conn.execute(\"DROP INDEX IF EXISTS my_hnsw_idx;\")\n", + " await conn.execute(\"SET max_parallel_maintenance_workers = 16;\")\n", + " await conn.execute(\"SET maintenance_work_mem = '3GB';\")\n", + "\n", + " monitor_task = asyncio.create_task(monitor_index_progress(connector))\n", + " try:\n", + " await conn.execute(\"CREATE INDEX my_hnsw_idx ON glove USING hnsw (embedding halfvec_cosine_ops) WITH (m = 24, ef_construction = 256);\")\n", + " finally:\n", + " monitor_task.cancel()\n", + "\n", + "async def run_evaluations(conn, ef_values, test_queries):\n", + " print_step(\"Step 8/9:\", \"⚙️ Deploying Benchmark PL/pgSQL Functions...\")\n", + " await conn.execute(SQL_MEASURE_RECALL)\n", + " await conn.execute(SQL_MEASURE_QPS)\n", + "\n", + " print_step(\"Step 9/9:\", \"⏱️ Running Benchmarks...\")\n", + " results_without_ce = []\n", + " results_with_ce = []\n", + "\n", + " # Run WITHOUT Columnar Engine\n", + " await conn.execute(\"SELECT google_columnar_engine_drop_index('my_hnsw_idx');\")\n", + " for ef in tqdm(ef_values, desc=\"Without Columnar Engine\", leave=True, colour='#1f77b4'):\n", + " recall = await conn.fetchval(f\"SELECT measure_recall({ef}, {test_queries});\")\n", + " qps = await conn.fetchval(f\"SELECT measure_qps({ef}, {test_queries});\")\n", + " console.log(\"ef: %d | qps: %d | recall: %.3f\" % (ef, qps, recall))\n", + " results_without_ce.append((ef, recall, qps))\n", + "\n", + " # Run WITH Columnar Engine\n", + " await conn.execute(\"SELECT google_columnar_engine_add_index('my_hnsw_idx');\")\n", + " for ef in tqdm(ef_values, desc=\"WITH Columnar Engine\", leave=True, colour='#ff7f0e'):\n", + " recall = await conn.fetchval(f\"SELECT measure_recall({ef}, {test_queries});\")\n", + " qps = await conn.fetchval(f\"SELECT measure_qps({ef}, {test_queries});\")\n", + " console.log(\"ef: %d | qps: %d | recall: %.3f\" % (ef, qps, recall))\n", + " results_with_ce.append((ef, recall, qps))\n", + "\n", + " return results_without_ce, results_with_ce\n", + "\n", + "def plot_results(results_without_ce, results_with_ce):\n", + " \"\"\"Renders the final performance plot outside the async block.\"\"\"\n", + " print_step(\"📊\", \"Generating Final Plot & Summary...\", is_success=True)\n", + " import numpy as np\n", + " import matplotlib.patheffects as patheffects\n", + "\n", + " ef_wo = [p[0] for p in results_without_ce]\n", + " recalls_wo = [p[1] for p in results_without_ce]\n", + " qps_wo = [p[2] for p in results_without_ce]\n", + "\n", + " ef_wi = [p[0] for p in results_with_ce]\n", + " recalls_wi = [p[1] for p in results_with_ce]\n", + " qps_wi = [p[2] for p in results_with_ce]\n", + "\n", + " plt.rc('font', size=14)\n", + " plt.rc('axes', titlesize=18)\n", + " plt.rc('axes', labelsize=16)\n", + " plt.rc('xtick', labelsize=14)\n", + " plt.rc('ytick', labelsize=14)\n", + " plt.rc('legend', fontsize=14)\n", + " plt.figure(figsize=(12, 7))\n", + "\n", + " # Google brand colors\n", + " color_wi = '#ff7f0e' # Orange\n", + " color_wo = '#1f77b4' # Blue\n", + " color_ar = '#2ca02c' # Green\n", + "\n", + " plt.plot(recalls_wi, qps_wi, marker='D', linewidth=3, markersize=10,\n", + " color=color_wi, label='With Columnar Engine')\n", + " plt.plot(recalls_wo, qps_wo, marker='o', linewidth=3, markersize=10,\n", + " color=color_wo, label='Without Columnar Engine')\n", + "\n", + " plt.xlabel('Recall (Accuracy)')\n", + " plt.ylabel('Queries Per Second (QPS)')\n", + " plt.title(f'HNSW Recall vs QPS\\n(GloVe 100, LIMIT {search_limit}, {test_queries} Test Queries)', pad=20, fontweight='bold')\n", + "\n", + " max_qps = max(max(qps_wi, default=0), max(qps_wo, default=0))\n", + " min_recall = min(min(recalls_wi, default=1), min(recalls_wo, default=1))\n", + "\n", + " plt.ylim(0, max_qps + 500)\n", + " plt.xlim(min_recall - 0.015, 1.015)\n", + "\n", + " plt.gca().yaxis.set_major_locator(ticker.MultipleLocator(1000))\n", + " plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(0.05))\n", + "\n", + " # Clean up spines (borders)\n", + " plt.gca().spines['top'].set_visible(False)\n", + " plt.gca().spines['right'].set_visible(False)\n", + " plt.gca().spines['left'].set_color('#cccccc')\n", + " plt.gca().spines['bottom'].set_color('#cccccc')\n", + "\n", + " pe = [patheffects.withStroke(linewidth=3, foreground='white', alpha=0.9)]\n", + "\n", + " # --- 1. Annotate QPS improvement at the same Recall (Vertical Gap) ---\n", + " for r_wi, q_wi, q_wo in zip(recalls_wi, qps_wi, qps_wo):\n", + " multiplier = q_wi / q_wo if q_wo > 0 else 0\n", + " if multiplier > 0:\n", + " plt.text(r_wi * 1.001, q_wi + (max_qps * 0.04), f'{multiplier:.1f}x QPS', color=color_wi,\n", + " fontsize=12, fontweight='bold', ha='center', va='bottom', path_effects=pe)\n", + "\n", + " # --- 2. Annotate Recall improvement at the same QPS (Horizontal Gap) ---\n", + " if len(qps_wo) > 0 and len(qps_wi) > 0:\n", + " idx_min_recall_wo = np.argmin(recalls_wo)\n", + " r_wo_min = recalls_wo[idx_min_recall_wo]\n", + " q_target = qps_wo[idx_min_recall_wo]\n", + "\n", + " # Check if q_target is within the range of orange line's QPS\n", + " if min(qps_wi) <= q_target <= max(qps_wi):\n", + " wi_sort = np.argsort(qps_wi)\n", + " r_wi_interp = np.interp(q_target, np.array(qps_wi)[wi_sort], np.array(recalls_wi)[wi_sort])\n", + "\n", + " if (r_wi_interp - r_wo_min) > 0.005:\n", + " plt.annotate('', xy=(r_wi_interp, q_target), xytext=(r_wo_min, q_target),\n", + " arrowprops=dict(arrowstyle=\"<->\", color=color_ar, lw=1.5, linestyle='--'))\n", + " plt.text((r_wo_min + r_wi_interp) / 2, q_target + (max_qps * 0.015), f'+{r_wi_interp - r_wo_min:.3f} Recall',\n", + " color=color_ar, fontsize=11, fontweight='bold', ha='center', va='bottom', path_effects=pe)\n", + "\n", + " plt.legend(loc='upper right', frameon=True, edgecolor='#cccccc')\n", + " plt.grid(True, which='both', color='#f0f0f0', linestyle='-', linewidth=1.5)\n", + " plt.tight_layout()\n", + " plt.show()\n", + "\n", + "# ==========================================\n", + "# 6. MAIN EXECUTION PIPELINE\n", + "# ==========================================\n", + "async def run_benchmark():\n", + " connector = None\n", + " conn = None\n", + " try:\n", + " print_step(\"✅\", \"GCP Authentication Successful!\", is_success=True)\n", + " print_step(\"🚀\", \"Starting AlloyDB Benchmark Pipeline...\")\n", + "\n", + " print_step(\"Step 1/9:\", \"🔌 Initializing AlloyDB AsyncConnector...\")\n", + " connector = AsyncConnector()\n", + " conn = await connector.connect(\n", + " f\"projects/{project_id}/locations/{region}/clusters/{cluster_name}/instances/{instance_name}\",\n", + " \"asyncpg\", user=db_user, password=db_pass, db=db_name, ip_type=\"PUBLIC\"\n", + " )\n", + "\n", + " await verify_columnar_flags(conn)\n", + "\n", + " print_step(\"Step 3/9:\", \"🛠️ Setting up extensions & tables...\")\n", + " await conn.execute(\"CREATE EXTENSION IF NOT EXISTS vector;\")\n", + " await conn.execute(\"CREATE EXTENSION IF NOT EXISTS google_columnar_engine;\")\n", + " await conn.execute(\"DROP TABLE IF EXISTS glove CASCADE;\")\n", + " await conn.execute(\"DROP TABLE IF EXISTS glove_test CASCADE;\")\n", + " await conn.execute(f\"CREATE TABLE glove (id BIGINT PRIMARY KEY, embedding halfvec({vector_dim}));\")\n", + " await conn.execute(f\"CREATE TABLE glove_test (id BIGINT PRIMARY KEY, embedding halfvec({vector_dim}), ground_truth INT[]);\")\n", + "\n", + " await register_vector(conn)\n", + "\n", + " await prepare_dataset(conn)\n", + " await build_index(conn, connector)\n", + "\n", + " ef_values = [40, 100, 200, 400, 800]\n", + " # Return results to pass into synchronous plotter\n", + " return await run_evaluations(conn, ef_values, test_queries)\n", + "\n", + " except Exception as e:\n", + " print_step(\"❌\", f\"ERROR: {str(e)}\", is_error=True)\n", + " return None, None\n", + " finally:\n", + " if conn: await conn.close()\n", + " if connector: await connector.close()\n", + "\n", + "# Evaluate the benchmark (Async Loop)\n", + "results_wo, results_wi = await run_benchmark()\n", + "\n", + "# Guarantee Plot renders perfectly (Sync Thread)\n", + "if results_wo and results_wi:\n", + " plot_results(results_wo, results_wi)\n" + ], + "metadata": { + "cellView": "form", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "0da395d70cb146c38f09018780eab6c4", + "125d5905901e46cb995a7cde28f24f42", + "1e8e7e96e3c04857be45d46064fafde5", + "03396b5636144b68841283a7b02289e7", + "3bda6a4239494e4392832b1ec3793637", + "0db9ca2e209b43dea5f69071414d67aa", + "746449cd82fb4b4d9e5d658b33758915", + "058c991528094847bf54dcb7fd4183fb", + "c21fa2438df14174bf2eb5a7436d1182", + "62fba63829574cf5a9abc09003937470", + "fc733ac2ce4643b8b2ea81aa090aeac2", + "4117803bb28041b6b4c2c8d8229a78ef", + "553f0f58efd94544bb73fba6c5fd7bfa", + "b0040837680d4b8990dda42b44d21430", + "1a55e8ca9e0b48a88ffe8c576a05659a", + "262e459f2fe949c988e2311c82195c50", + "c2efd138e11c4c778a436c292324393f", + "388e940371234850b5fd1d1ab4f1f47f", + "38f830ce40244dccbce8e7863b3ad91f", + "3e31ddb2fd2f4504ba0a9efb06bcf4b5", + "985fddc87d464d5bb786184285bee6e1", + "6e25cffbecf3496a9c5ffed28fb16b09", + "cdff0ae603804c9299dbda81cfb0f304", + "4727007752764d1b90ee6b670adf5723", + "80e3e3a9733947e8b462546ac897f782", + "fc4cb8c4a4e84bbda57c79f8eef561c5", + "ddf4375d5f9c4c3cab8146c634e81e52", + "39a19fe37f5b4ef6afab4756911658e1", + "f3a746c98ece4f1a92aa7efc6d2d99fc", + "deda5e2a89894f829c914f7822c58d5b", + "4c7ad6aa4454480ab71e2ae9a2eeeaf1", + "48533483f88e40be801292a9cb7e65bc", + "90ad1da8de274fadab8226cfc52124e7", + "6b0b87a61ea74a64aa5c5c9615cee703", + "92d60945ec4945179e6ab80fc541e6c6", + "0f5fbcb49d864168b5e5ff0721032e7a", + "632244d23e0341c39f0ccac5392f542b", + "152a131361ae43b4babd2f64c27fe5e6", + "2002fc1d96c1430595299af489a4e35e", + "ef0d69e44e2147b7a602d6eb0f58fee9", + "e3e2203870b440e9a1822d5333490883", + "ab6cd708260747ae982b11a320ca9fb5", + "3feef10b61cc4c7a95c904dce7b3d6b1", + "a1110b0a0d594c41a24fd687e46cd259", + "d171813e30a746aea799629227857f3d", + "2e9631d2d9004e0285c97683243c6cbd", + "7a26062c61cc42b1ad0ac83cf6216c05", + "d8f29012d1b9456eb416d67550d2dfc3", + "2de8edda8ea94c21aa9f865959c1cc29", + "a63f899cad1446c88ba0ab5f03c3c5de", + "f9f5108e4cf644de8bb32a41efe31382", + "237b8966c71f49988e51e0c94046e0e4", + "55e1dfae58fa432d823f0bef0549fbef", + "72021c4f289f42d6b093a10cb3c3414c", + "c823278b504a48a7a3093f0e91a47905" + ] + }, + "id": "KOs-ppVTCKTu", + "jupyter": { + "source_hidden": true + }, + "outputId": "b69164f4-b34a-4f99-80a9-a6cc55d8c75c", + "tags": [ + "hide-input" + ] + }, + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "✅ Output cleared. Colab Setup successful!\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " ✅ GCP Authentication Successful!\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " 🚀\n", + " Starting AlloyDB Benchmark Pipeline...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " Step 1/9:\n", + " 🔌 Initializing AlloyDB AsyncConnector...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " Step 2/9:\n", + " 🔍 Verifying Columnar Engine Flags...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " ✅ All strict Columnar Engine flags are properly configured!\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " Step 3/9:\n", + " 🛠️ Setting up extensions & tables...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " Step 4/9:\n", + " 📥 Preparing GloVe Dataset...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " Step 5/9:\n", + " 📂 Loading dataset and inserting via COPY...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "COPY Training Data: 0%| | 0/119 [00:00" + ], + "text/html": [ + "\n", + "
\n", + " Step 6/9:\n", + " 🧹 Updating database planner statistics...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " Step 7/9:\n", + " 🏗️ Building HNSW Index...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Building HNSW Index: 0%| | 0/100 [00:00" + ], + "text/html": [ + "\n", + "
\n", + " Step 8/9:\n", + " ⚙️ Deploying Benchmark PL/pgSQL Functions...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " Step 9/9:\n", + " ⏱️ Running Benchmarks...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Without Columnar Engine: 0%| | 0/5 [00:00[14:06:41] ef: 40 | qps: 873 | recall: 0.798 4108069014.py:257\n", + "\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:06:46]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m100\u001b[0m | qps: \u001b[1;36m427\u001b[0m | recall: \u001b[1;36m0.879\u001b[0m \u001b]8;id=399955;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=970102;file:///tmp/ipykernel_18168/4108069014.py#257\u001b\\\u001b[2m257\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:06:46] ef: 100 | qps: 427 | recall: 0.879                                                     4108069014.py:257\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:06:55]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m200\u001b[0m | qps: \u001b[1;36m237\u001b[0m | recall: \u001b[1;36m0.925\u001b[0m \u001b]8;id=284452;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=869595;file:///tmp/ipykernel_18168/4108069014.py#257\u001b\\\u001b[2m257\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:06:55] ef: 200 | qps: 237 | recall: 0.925                                                     4108069014.py:257\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:07:10]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m400\u001b[0m | qps: \u001b[1;36m131\u001b[0m | recall: \u001b[1;36m0.957\u001b[0m \u001b]8;id=411750;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=47384;file:///tmp/ipykernel_18168/4108069014.py#257\u001b\\\u001b[2m257\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:07:10] ef: 400 | qps: 131 | recall: 0.957                                                     4108069014.py:257\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:07:39]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m800\u001b[0m | qps: \u001b[1;36m70\u001b[0m | recall: \u001b[1;36m0.979\u001b[0m \u001b]8;id=510606;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=637801;file:///tmp/ipykernel_18168/4108069014.py#257\u001b\\\u001b[2m257\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:07:39] ef: 800 | qps: 70 | recall: 0.979                                                      4108069014.py:257\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "WITH Columnar Engine: 0%| | 0/5 [00:00[14:07:42] ef: 40 | qps: 6955 | recall: 0.798 4108069014.py:265\n", + "\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:07:43]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m100\u001b[0m | qps: \u001b[1;36m3428\u001b[0m | recall: \u001b[1;36m0.879\u001b[0m \u001b]8;id=331385;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=133287;file:///tmp/ipykernel_18168/4108069014.py#265\u001b\\\u001b[2m265\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:07:43] ef: 100 | qps: 3428 | recall: 0.879                                                    4108069014.py:265\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:07:44]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m200\u001b[0m | qps: \u001b[1;36m1898\u001b[0m | recall: \u001b[1;36m0.925\u001b[0m \u001b]8;id=927485;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=361016;file:///tmp/ipykernel_18168/4108069014.py#265\u001b\\\u001b[2m265\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:07:44] ef: 200 | qps: 1898 | recall: 0.925                                                    4108069014.py:265\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:07:46]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m400\u001b[0m | qps: \u001b[1;36m1017\u001b[0m | recall: \u001b[1;36m0.957\u001b[0m \u001b]8;id=98581;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=755385;file:///tmp/ipykernel_18168/4108069014.py#265\u001b\\\u001b[2m265\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:07:46] ef: 400 | qps: 1017 | recall: 0.957                                                    4108069014.py:265\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "\u001b[2;36m[14:07:50]\u001b[0m\u001b[2;36m \u001b[0mef: \u001b[1;36m800\u001b[0m | qps: \u001b[1;36m518\u001b[0m | recall: \u001b[1;36m0.979\u001b[0m \u001b]8;id=51911;file:///tmp/ipykernel_18168/4108069014.py\u001b\\\u001b[2m4108069014.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=535498;file:///tmp/ipykernel_18168/4108069014.py#265\u001b\\\u001b[2m265\u001b[0m\u001b]8;;\u001b\\\n" + ], + "text/html": [ + "
[14:07:50] ef: 800 | qps: 518 | recall: 0.979                                                     4108069014.py:265\n",
+              "
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "\n", + "
\n", + " 📊 Generating Final Plot & Summary...\n", + "
\n", + " " + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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RjDRREREREREREREGsFEExERERERERERaQQTTUREREREREREpBFMNBERERERERERkUYw0URERERERERERBrBRBMREREREREREWkEE01ERERERERERKQRTDQREREREREREZFGMNFEREREREREREQawUQTERERERERERFpBBNNRERERERERESkEUw0kVxyIhD/HkhJ/rJ+UlKAxE+aiUkdiXFfHntmUlKAhI95c2xEREREREREXwmdvA6gsBIEASkpKdDS0oJMJsubIBI+AucWAg88gbB7AARAxwAoVRNw7APU6qN6X8+vAhdXAA9OyJNWpiWA2gOB+sMAQ0vNx56SAjz0BG7uAh6eAhI/AJABxSoCVbsCjr0Bs5LibY5NBB57ictkMkDfDLBtCFTtBpSqIa5/dRu4sAR44g3ERcrL9E0By7JA6VpA26WAlrbmj4+IiIiIiIjoKyQTBEHI6yAKo+TkZAQEBMDR0RHa2nmUqNgzALjz7+fXOoZAUtzn1x1Wq5ZsunMA2DsIEJSMKLJ2AAafAgzMvyhUQRDw8eNHGBoaQpaSBNneAcD9oxlvYGABfL8NsHP+XLarN3D/SMbbyLSAtkuAOoPkr8MfAmtd/0tiZWDaO0Cb+Voq3ARBQExMDADAzMws75LnRCTCa5Mo/+L1SZR/8fr8cpw6V1jFvpUniABAWxcY6g1MeQk0n/G5zbX1WfeT+Ak4+j95kkmmBbRfDoy6BpRvLq9/GwScW6SRkPX09ORPzs7+nGTS1gXqDwf6HAA6rASKVpCXf4oCdvcFPkYo76xcE/mxuk4CrCvKy4QU4MxM+UgvALiy9nOSyaE10GM70O8g8N0fQK3+gLG1Ro6LiIiIiIiIqKDgUIzCKiUJwH+D2UxLAaVryp87tAZOT5c/T07Iup+QC5+TOd80BGoPkD93nw08Oi1/fv+Y/PWrQODgCEAQAHMboMdWeaIo4SOw83t5P1raQLfNgFVZya60tbXlMfn//bmw+Qyg4cjPryt3AFbUlPcVFwkE7gPqDZXG/U0DoPE4+fP6w4HFFYCURPk2wT7y8/D65uf2LecDVnafXzv2ApIWy5NrRERERERERASAI5oKL5PiQJl68udRz4CAHUBEMHBp9ec2lTtm3c/jM5+fl6r5+XlRB0DPWP484jEQ+RQoWRWwdQLe3AYeHAd8FsrrPafIkztvbgMV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03thag/49RlITij8/EREREREriJuFZo++OADDMNg9uzZfPDBBzRs2JDg4GCCg4O54YYbGDduHLNnzwZg3LhxBZqwiIiIW0rWgAd/hZvfyWJ10xfwcSvYubjQUxMRERERuVq4VWhauXIlrVq1omvXrlnGdOnShVatWrF8+XK3kxMRESlQXl7Q4hF4bBlUbeM8fmYvTL0dfnkazscXenoiIiIiIlc6twpNp0+fpmrVqjnGVa1alTNnzrhzChERkcunZHV48Be45V3wDXIeXzsZPmkFO3T5t4iIiIhIXrhVaAoPD2fr1q05xm3dupXw8HB3TiEiInJ5eXlB84FW76ZqNzmPn9kHX/WEnwdrdZOIiIiISC65VWhq3bo169at45tvvsky5uuvvyY2NpY2bVxcmiAiIuIpSlaHvj9D9/dcr26K/RI+vhH+XVj4uYmIiIiIXGHcKjQNGzYMwzDo27cv99xzD7/99ht///03f//9N7/++it33303Dz74IN7e3jz77LMFnbOIiEjB8vKCZg/D48tcr26K3w/T7oSfn4LzuiRcRERERCQrhmmapjsvnDhxIk888QSpqakYhpFpzDRNfHx8+Oijjxg4cGCBJHq1sdlsxMXFERkZibe3d1Gn4/FM0yQ+3rp0JTQ01OnfnIgUnatuftrtVo+m+a/AhbPO46EVoccHUKtT4ecmkgdX3dwUuYpofop4Ls3P/HNrRRPAwIEDiY2N5aGHHqJGjRr4+/vj7+9PjRo1GDBgALGxsSoyiYjIlcfLC5oNsO5MV72t83j8AZh2F8x+UqubREREREQu4faKJskfrWjKG1WVRTzXVT0/TdNa3TRveNarm24bBxGdCz83kRxc1XNT5Aqn+SniuTQ/88/tFU0iIiJXPcOApg/B48uhRjvn8fgD8PXd8NMTkHS6sLMTEREREfE4bhWa9u3bx9SpU/nnn3+yjNm6dStTp05l//79bicnIiLiEYpXgT4/WauX/EKcx+OmWXem2zav0FMTEREREfEkbhWaxo8fT//+/cnuqjvTNOnXrx8ff/yx28mJiIh4DMOAJv0urm5q7zyecBC+6QU/Pa7VTSIiIiJyzXKr0DRv3jzq1q3Lddddl2VM3bp1uf7665k7d67byYmIiHic4pWhz49w2wdZrG76Gj5uCduiCz83EREREZEi5valc7Vq1coxrlatWuzb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RHR0tAgPDxf9+vUTn332mVs7bxdjIYTYvXu3uPfee0WTJk2ESqUSkZGRom/fvuKdd94RFovF4/OuW7dODBo0SOh0OhEZGSnS0tJcRlcQNXS13TdXrFghRo0aJVq3bi10Op1Qq9WiRYsWYtKkSeKHH36oqdMkqpOq2z8PHjwoRo4cKZo0aSLUarVITEwUI0eOFJs3b/b5vLx2ElWutvsnr59ElbP3N29fmZmZjra+giar1Srefvtt0aVLF6HVakVCQoKYOHGiz1GDvHa6koQQosbm5RERERERERERUYPBYuBERERERERERBQQDJqIiIiIiIiIiCggGDQREREREREREVFAMGgiIiIiIiIiIqKAYNBEREREREREREQBwaCJiIiIiIiIiIgCgkETEREREREREREFBIMmIiIiIiIiIiIKCAZNREREREREREQUEAyaiIiIqEa0atUKkiS5fGm1WjRv3hyjRo3C6tWrg32IN8R+LhXddtttkCQJW7duvaH9jhkzBuHh4cjJyfHZ7p577nEcw88//3xDz0XVc/r0aWg0GkyYMCHYh0JERBRyGDQRERFRjRowYAAyMzORmZmJESNGQKVS4auvvsLdd9+NmTNnBvvwQsI333yDL7/8Eo899hiaN2/utd3Fixexdu1ax/f/+c9/auPwqILWrVvj4Ycfxueff47s7OxgHw4REVFIYdBERERENWr69OlYuHAhFi5ciJUrV+LXX3/FY489BgD45z//iT179gT5CIPvySefRFhYGJ599lmf7RYtWgSr1YpmzZoBAJYsWQKTyVQbh0gVvPDCC1Cr1XjyySeDfShEREQhhUETERER1SqVSoW5c+ciOjoaAPD1118H+YiCa9OmTfj5558xevRoJCQk+Gz78ccfAwDeeOMNpKamIjc3F6tWraqNw6QKkpOTMWLECBw4cADfffddsA+HiIgoZDBoIiIioloXFhaGdu3aAQAuX77ssc23336LsWPHokmTJtBoNGjUqBHGjBmDnTt3et1vSUkJ3nrrLQwcOBBxcXHQarVISUnB3Xffjf/+978ubc+ePYvXXnsNQ4cORcuWLaHVahEbG4uBAwfiww8/hM1mC9wJ+/Duu+8CAKZOneqzXXZ2Nk6cOIGEhASMGTMG06ZNA1D59LmqvCYAIITAihUrMHLkSCQnJ0Oj0SA5ORkDBw7Ea6+9BoPB4Gg7depUSJKEhQsXenzuhQsXQpIkt3NzXp6Xl4c//elPaNOmDbRaLW677TZHu2+++QaPP/44evbsicTEREeNr4kTJ1Y6Em7fvn3IzMxE69atERYWhvj4ePTo0QNPP/00zp49CwDIysqCJEnIyMjwup8LFy5ArVYjPDwc165dc1lnP69///vfPo+FiIioIWHQREREREFRUFAAAGjcuLHbuj//+c8YNmwYVq1ahZYtW2L06NFITU3FqlWrMGjQIGRlZbltc/78efTt2xdPPvkkDhw4gL59+2Ls2LFISUnB999/j1mzZrm0X7x4MZ599lmcOXMG7du3x9ixY9GzZ0/s2bMHjz76KO69914IIWrm5MuUlpZiw4YNUKvVGDx4sM+29kBp8uTJ0Gg0mDp1KhQKBTZt2oTz58973Kaqr4nZbMb48eMxbtw4rFu3Dq1bt8b48ePRvXt3nDlzBs8++6zXYPBG5Obmok+fPvjkk0/QtWtXjBo1yqVG1aOPPor58+dDoVBgwIABGDlyJGJiYrBs2TL0798fy5cv97jfuXPnol+/fvjkk0+g0WgwatQoDBw4EGazGfPmzcOWLVsAAPfffz+SkpKwadMmHD9+3OO+PvzwQ1gsFkyaNMltxNnQoUOhUCiwZs0amM3mAL0qREREdZwgIiIiqgEpKSkCgMjKynJbd+TIEaFUKgUAsWfPHpd18+fPFwBE27ZtxaFDh1zWZWdni6ioKKHRaMTx48cdy61Wq+jTp48AIIYPHy6uXLnisp3BYBBr1qxxWbZ7927x008/uR3bb7/9Jnr06CEAiGXLlrmtByA8/QqVlpYmAIgtW7a4rfPmm2++EQBE3759fbbLz88X4eHhAoA4ePCgY3lGRoYAIP7+97+7bXMjr8nMmTMFANGqVSuX5xFCCJvNJr755huRn5/vWJaZmen1ZyyEEFlZWQKAyMzM9LgcgEhPTxd6vd7j9itXrhR5eXkel6tUKpGQkCBKSkpc1q1atUoAEGFhYWLp0qVu2x4+fFgcOXLE8f3zzz8vAIg//vGPbm1NJpNITk4WAMS+ffs8HmP37t0FAPH99997XE9ERNTQcEQTERER1Rq9Xo+NGzdi7NixsFqteOGFF9CnTx/HepvNhpdeegkA8Nlnn6F79+4u2w8ePBh//etfYTKZ8OGHHzqWf/3119i7dy+aNGmC5cuXIykpyWW7sLAwjBgxwmVZ37590bVrV7djbNq0KV5//XUAwOeff16t863MgQMHAACdOnXy2e5///sfDAYDevfujR49ejiWP/jggwDkKWCiwuirqr4mV65ccUzj++KLL1yeBwAkSUJ6ejpiYmKqeJbeqdVqzJ8/31Gvq6LRo0cjLi7O4/J7770X165dc4xOsps9ezYA4OWXX8aECRPctu3cubPL6/373/8earUaixYtQnFxsUvb5cuX49KlS7j11lvRq1cvj8fYpUsXAMD+/ft9nCkREVHDoQr2ARAREVH9Nm3aNEc9ITulUoklS5Zg8uTJLssPHDiACxcuoE2bNujdu7fH/dlr+OzYscOxbP369QDkqVCRkZF+H5vRaMTGjRuxZ88eXLlyBUajEUIIFBYWAgCOHTvm975uhH0aWmVFwBcsWAAA+L//+z+X5aNGjUJCQgJOnz6NzZs3Iz093bGuqq/Jli1bYDKZ0Lt3b6+vfaDddNNNSE1N9dnmwoULWLNmDX755Rfo9XpYLBYAwOHDhwHIPyN7YHbp0iUcPHgQCoXCEcJVpmnTphg/fjz+97//YfHixXj00Ucd6+y1l+x3SfTE/rML5JRCIiKiuoxBExEREdWoAQMGoG3btgCAq1ev4vvvv0dhYSFmzJiBdu3aoV+/fo62p06dAgCcPHkSkiT53O/Vq1cdj+3FnTt27Oj3ce3atQsTJ07EuXPnvLax15GqKXq9HgC8jugBgEOHDmHfvn0ICwvD/fff77JOo9Fg8uTJ+Ne//oWPP/7YJWiq6mtyI69hdbVq1crn+r/97W94+eWXfdY/cv4Z2X+WTZo0qdLIqz/+8Y/43//+h3//+9+OoOnHH3/Etm3b0LhxY4wfP97rtvaf3fXr1/1+PiIiovqMQRMRERHVqOnTp7vcdUyv12PMmDHYsmULJkyYgCNHjiAiIgIAHHd6S05O9nknMABITEy84WMqKSnB6NGjcfnyZUybNg0zZsxA27ZtER0dDaVSiePHj6NDhw41Xgw8NjYWgO9Ay14EXKVSYeTIkW7r7XdCW7FiBfLz8x37DAWV3bkvPDzc67oVK1bgpZdeQmRkJN59910MHToUTZs2RXh4OCRJwqxZs/Dqq68G5Gd0yy23oF+/fti9ezeys7ORlpbmGM308MMPQ6PReN3WHhZ6muJHRETUEDFoIiIioloVExODpUuXomPHjjh79izefPNNvPDCCwCAFi1aAJCnIy1cuNDvfbZs2RIA8Msvv/jV/rvvvsPly5fRq1cvfPzxx27rT5w44fdzV0ejRo0AlIdFFRmNRnz66acAgKKiImzfvt3rvkpLS/Hpp5/iD3/4A4CqvyZVbQ/AEcDYpxpWZB8ldSOWLVsGQK619PDDD7ut9/Qzsp/DxYsXodfrqzyqacqUKXj33XfRo0cPfPrpp1CpVC5T6Tyx/+w83T2RiIioIWIxcCIiIqp1SUlJjnBp3rx5yM/PByAX6E5MTMSRI0ccNXj8cccddwCQi2ZXLOjsSV5eHoDyYKKiJUuW+P3c1WEvMH3kyBGP61esWIG8vDw0bdoUFosFQgiPX++99x6A8tFPQNVfk6FDh0Kj0WDfvn1+F7Zu1qwZAODo0aNu64QQWLdunV/78cT+M0pJSXFbd+XKFWzatMlteXJyMnr06AGbzeYxQPRlwoQJaNKkCb788ku8/PLLKC4uxpgxY9C0aVOf2/38888AUGt1rYiIiEIdgyYiIiIKit///vdo2bIl9Ho93njjDQDyXchmz54NIQTGjBmDbdu2uW1ntVqxefNm7Nq1y7HsnnvuwU033YQLFy447kbmrLS01CX0sN917Ntvv3ULeebPn4+lS5cG7Dx96d+/P7RaLQ4dOgSDweC23h4cTZkyBUql0ut+7rvvPmg0Ghw4cAAHDx4EUPXXpFGjRpgxYwYA4N5773UEKHZCCGzevNkxVQwAhg0bBgBYvHixy+toNpvxl7/8BXv27PHnZfDI/jOaP38+TCaTY7ler0dmZqbLcTiz33Xu+eefx/Lly93WHzlyxGMwplarMWPGDFgsFsybNw+A7yLg9mM5cuQIIiMjXWqNERERNWQMmoiIiCgotFotXnrpJQDA22+/7RjB8thjj+Hpp5/GiRMnMGjQIHTt2hWjR4/GpEmTMGTIECQmJiI9Pd0RqACAQqHAypUr0aFDB6xbtw4tW7ZERkYG7r//fqSlpSE5OdkRogDy3c5GjRqFwsJC3HTTTcjIyMCkSZPQqVMnPProo5g1a1atvAZhYWHIyMiA2WzG1q1bXdbZ7yQHAJmZmT73ExcX56jfZA+nqvqaAMDrr7+Oe+65B6dOnUKPHj3Qv39/TJ48GRkZGWjRogXS09Ndil4PGDAAo0aNQlFREfr06YPhw4dj1KhRSE1NxYcffognnnjihl+bP/3pT4iNjcXatWuRmpqK8ePHY9SoUUhJScGhQ4fc7sBnN2bMGLz88ssoLS3F+PHj0alTJ9x3330YNWoUunTpgi5duuCHH37wuO0jjzwCrVYLAOjevTsGDx7s8xg3b94Mm82GESNGQK1W3/C5EhER1ScMmoiIiChoHnjgAXTu3BmFhYWYO3euY/nrr7+O7du3Y/LkySgqKsL69euxZs0aXLhwAbfddhsWLFiAiRMnuuwrJSUFe/fuxWuvvYYuXbpg586dWLFiBc6ePYu0tDS89tprLu0///xzzJ07Fx06dMC2bduwceNGtGzZEhs2bMD06dNr5fyB8lEzFWtSZWVlQQiBPn36oHPnzpXu54EHHgAAfPrppygtLQVQ9ddEo9Hgyy+/xH//+18MGzYMx48fx+eff44ff/wRqampmDt3LpKTk122Wbp0KV544QU0adIEW7duxa5duzBo0CDs378fPXv2vMFXBWjdujUOHDiAyZMnQ6lUYvXq1Th06BAmTZqEAwcOOOp5eTJr1izs2LEDkyZNQmFhIVasWIFt27ZBrVbjmWeewdChQz1u16hRI8cx22td+WL/mfnTloiIqKGQRE3fToWIiIiIvBJCoHv37jhx4gRycnKqdTc9qp7jx4+jY8eOiImJwW+//ea4G6Inly5dQsuWLdG1a1e/a1oRERE1BBzRRERERBREkiThzTffhNFoxD/+8Y9gH06D9uKLL0IIgRkzZvgMmQBgzpw5MJvNePPNN2vp6IiIiOoGjmgiIiIiCgFjxozB+vXrceLECTRv3jzYh9NgfPXVV1i1ahUOHz6MH374AcnJyTh69ChiY2O9bnPq1Cl07NgRo0ePxrJly2rvYImIiOoAVbAPgIiIiIiAlStXBvsQGqT9+/fj448/RlRUFIYNG4Y333zTZ8gEAKmpqS53wiMiIqJyHNFEREREREREREQBwRpNREREREREREQUEAyaiIiIiIiIiIgoIBg0ERERERERERFRQDBoIiIiIiIiIiKigGDQREREREREREREAcGgiYiIiIiIiIiIAoJBExERERERERERBQSDJiIiIiIiIiIiCoj/D0kcDwZ4LoEKAAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "version_major": 2, + "version_minor": 0, + "state": { + "0da395d70cb146c38f09018780eab6c4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_125d5905901e46cb995a7cde28f24f42", + "IPY_MODEL_1e8e7e96e3c04857be45d46064fafde5", + "IPY_MODEL_03396b5636144b68841283a7b02289e7" + ], + "layout": "IPY_MODEL_3bda6a4239494e4392832b1ec3793637" + } + }, + "125d5905901e46cb995a7cde28f24f42": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0db9ca2e209b43dea5f69071414d67aa", + "placeholder": "​", + "style": "IPY_MODEL_746449cd82fb4b4d9e5d658b33758915", + "value": "COPY Training Data: 100%" + } + }, + "1e8e7e96e3c04857be45d46064fafde5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_058c991528094847bf54dcb7fd4183fb", + "max": 119, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c21fa2438df14174bf2eb5a7436d1182", + "value": 119 + } + }, + "03396b5636144b68841283a7b02289e7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_62fba63829574cf5a9abc09003937470", + "placeholder": "​", + "style": "IPY_MODEL_fc733ac2ce4643b8b2ea81aa090aeac2", + "value": " 119/119 [00:53<00:00,  2.40it/s]" + } + }, + "3bda6a4239494e4392832b1ec3793637": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0db9ca2e209b43dea5f69071414d67aa": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "746449cd82fb4b4d9e5d658b33758915": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "058c991528094847bf54dcb7fd4183fb": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c21fa2438df14174bf2eb5a7436d1182": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": "#1f77b4", + "description_width": "" + } + }, + "62fba63829574cf5a9abc09003937470": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fc733ac2ce4643b8b2ea81aa090aeac2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "4117803bb28041b6b4c2c8d8229a78ef": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_553f0f58efd94544bb73fba6c5fd7bfa", + "IPY_MODEL_b0040837680d4b8990dda42b44d21430", + "IPY_MODEL_1a55e8ca9e0b48a88ffe8c576a05659a" + ], + "layout": "IPY_MODEL_262e459f2fe949c988e2311c82195c50" + } + }, + "553f0f58efd94544bb73fba6c5fd7bfa": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c2efd138e11c4c778a436c292324393f", + "placeholder": "​", + "style": "IPY_MODEL_388e940371234850b5fd1d1ab4f1f47f", + "value": "COPY Test Queries & Ground Truth: 100%" + } + }, + "b0040837680d4b8990dda42b44d21430": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_38f830ce40244dccbce8e7863b3ad91f", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3e31ddb2fd2f4504ba0a9efb06bcf4b5", + "value": 1 + } + }, + "1a55e8ca9e0b48a88ffe8c576a05659a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_985fddc87d464d5bb786184285bee6e1", + "placeholder": "​", + "style": "IPY_MODEL_6e25cffbecf3496a9c5ffed28fb16b09", + "value": " 1/1 [00:01<00:00,  1.77s/it]" + } + }, + "262e459f2fe949c988e2311c82195c50": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c2efd138e11c4c778a436c292324393f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "388e940371234850b5fd1d1ab4f1f47f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "38f830ce40244dccbce8e7863b3ad91f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3e31ddb2fd2f4504ba0a9efb06bcf4b5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": "#1f77b4", + "description_width": "" + } + }, + "985fddc87d464d5bb786184285bee6e1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6e25cffbecf3496a9c5ffed28fb16b09": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "cdff0ae603804c9299dbda81cfb0f304": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4727007752764d1b90ee6b670adf5723", + "IPY_MODEL_80e3e3a9733947e8b462546ac897f782", + "IPY_MODEL_fc4cb8c4a4e84bbda57c79f8eef561c5" + ], + "layout": "IPY_MODEL_ddf4375d5f9c4c3cab8146c634e81e52" + } + }, + "4727007752764d1b90ee6b670adf5723": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_39a19fe37f5b4ef6afab4756911658e1", + "placeholder": "​", + "style": "IPY_MODEL_f3a746c98ece4f1a92aa7efc6d2d99fc", + "value": "Building HNSW Index: 100%" + } + }, + "80e3e3a9733947e8b462546ac897f782": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_deda5e2a89894f829c914f7822c58d5b", + "max": 100, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4c7ad6aa4454480ab71e2ae9a2eeeaf1", + "value": 100 + } + }, + "fc4cb8c4a4e84bbda57c79f8eef561c5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_48533483f88e40be801292a9cb7e65bc", + "placeholder": "​", + "style": "IPY_MODEL_90ad1da8de274fadab8226cfc52124e7", + "value": " 100.0/100 [02:23<00:00,  1.44s/it, Phase: building index: loading tuples]" + } + }, + "ddf4375d5f9c4c3cab8146c634e81e52": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "39a19fe37f5b4ef6afab4756911658e1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f3a746c98ece4f1a92aa7efc6d2d99fc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "deda5e2a89894f829c914f7822c58d5b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4c7ad6aa4454480ab71e2ae9a2eeeaf1": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": "#00ff00", + "description_width": "" + } + }, + "48533483f88e40be801292a9cb7e65bc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "90ad1da8de274fadab8226cfc52124e7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "6b0b87a61ea74a64aa5c5c9615cee703": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_92d60945ec4945179e6ab80fc541e6c6", + "IPY_MODEL_0f5fbcb49d864168b5e5ff0721032e7a", + "IPY_MODEL_632244d23e0341c39f0ccac5392f542b" + ], + "layout": "IPY_MODEL_152a131361ae43b4babd2f64c27fe5e6" + } + }, + "92d60945ec4945179e6ab80fc541e6c6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2002fc1d96c1430595299af489a4e35e", + "placeholder": "​", + "style": "IPY_MODEL_ef0d69e44e2147b7a602d6eb0f58fee9", + "value": "Without Columnar Engine: 100%" + } + }, + "0f5fbcb49d864168b5e5ff0721032e7a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e3e2203870b440e9a1822d5333490883", + "max": 5, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ab6cd708260747ae982b11a320ca9fb5", + "value": 5 + } + }, + "632244d23e0341c39f0ccac5392f542b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3feef10b61cc4c7a95c904dce7b3d6b1", + "placeholder": "​", + "style": "IPY_MODEL_a1110b0a0d594c41a24fd687e46cd259", + "value": " 5/5 [01:00<00:00, 16.74s/it]" + } + }, + "152a131361ae43b4babd2f64c27fe5e6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2002fc1d96c1430595299af489a4e35e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ef0d69e44e2147b7a602d6eb0f58fee9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e3e2203870b440e9a1822d5333490883": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ab6cd708260747ae982b11a320ca9fb5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": "#1f77b4", + "description_width": "" + } + }, + "3feef10b61cc4c7a95c904dce7b3d6b1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a1110b0a0d594c41a24fd687e46cd259": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d171813e30a746aea799629227857f3d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_2e9631d2d9004e0285c97683243c6cbd", + "IPY_MODEL_7a26062c61cc42b1ad0ac83cf6216c05", + "IPY_MODEL_d8f29012d1b9456eb416d67550d2dfc3" + ], + "layout": "IPY_MODEL_2de8edda8ea94c21aa9f865959c1cc29" + } + }, + "2e9631d2d9004e0285c97683243c6cbd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a63f899cad1446c88ba0ab5f03c3c5de", + "placeholder": "​", + "style": "IPY_MODEL_f9f5108e4cf644de8bb32a41efe31382", + "value": "WITH Columnar Engine: 100%" + } + }, + "7a26062c61cc42b1ad0ac83cf6216c05": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_237b8966c71f49988e51e0c94046e0e4", + "max": 5, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_55e1dfae58fa432d823f0bef0549fbef", + "value": 5 + } + }, + "d8f29012d1b9456eb416d67550d2dfc3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_72021c4f289f42d6b093a10cb3c3414c", + "placeholder": "​", + "style": "IPY_MODEL_c823278b504a48a7a3093f0e91a47905", + "value": " 5/5 [00:08<00:00,  2.34s/it]" + } + }, + "2de8edda8ea94c21aa9f865959c1cc29": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a63f899cad1446c88ba0ab5f03c3c5de": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f9f5108e4cf644de8bb32a41efe31382": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "237b8966c71f49988e51e0c94046e0e4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "55e1dfae58fa432d823f0bef0549fbef": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": "#ff7f0e", + "description_width": "" + } + }, + "72021c4f289f42d6b093a10cb3c3414c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c823278b504a48a7a3093f0e91a47905": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + } + }, + "nbformat_minor": 0, + "nbformat": 4 +} \ No newline at end of file diff --git a/alloydb/notebooks/e2e_test.py b/alloydb/notebooks/e2e_test.py index 34516188c4..36a122fd6f 100644 --- a/alloydb/notebooks/e2e_test.py +++ b/alloydb/notebooks/e2e_test.py @@ -153,3 +153,43 @@ async def test_embeddings_batch_processing( ) await conn.commit() await pool.dispose() + + +@pytest.mark.asyncio +async def test_alloydb_vector_search_benchmark( + project_id: str, + cluster_name: str, + instance_name: str, + region: str, + database_name: str, + password: str, +) -> None: + # Run the benchmark notebook with significantly reduced parameters + # to allow CI to complete quickly without OOMs or timeouts + conftest.run_notebook( + "alloydb_vector_search_benchmark.ipynb", + variables={ + "project_id": project_id, + "region": region, + "cluster_id": cluster_name, + "instance_id": instance_name, + "db_name": database_name, + "db_user": "postgres", + "test_queries": 10, + }, + preprocess=preprocess, + skip_shell_commands=True, + replace={ + ( + "db_pass = getpass.getpass(" + '"🔑 Enter Database Password for AlloyDB: ")' + ): f"db_pass = '{password}'", + "train_data = f['train'][:]": "train_data = f['train'][:1000]", + "test_data = f['test'][:]": "test_data = f['test'][:100]", + "neighbors_data = f['neighbors'][:]": ( + "neighbors_data = f['neighbors'][:100]" + ), + "ef_values = [40, 100, 200, 400, 800]": "ef_values = [40]", + }, + until_end=True, + )