Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
File size: 93,817 Bytes
3d16fe6 896453f 1f7780e 896453f fcf298e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-guides/intel-arc-optimization" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.0"><title data-rh=true>Intel Arc GPU Optimization Guide | Open Navigator</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true property=og:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true name=twitter:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true property=og:url content=https://www.communityone.com/docs/guides/intel-arc-optimization /><meta data-rh=true property=og:locale content=en /><meta data-rh=true name=docusaurus_locale content=en /><meta data-rh=true name=docsearch:language content=en /><meta data-rh=true name=keywords content="civic engagement, policy tracking, meeting minutes, nonprofit tracking, municipal government, advocacy, open data, local government"/><meta data-rh=true property=og:type content=website /><meta data-rh=true property=og:site_name content="Open Navigator"/><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true name=docusaurus_version content=current /><meta data-rh=true name=docusaurus_tag content=docs-default-current /><meta data-rh=true name=docsearch:version content=current /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current /><meta data-rh=true property=og:title content="Intel Arc GPU Optimization Guide | Open Navigator"/><meta data-rh=true name=description content="Maximize LLM performance on Intel Arc Graphics + NPU"/><meta data-rh=true property=og:description content="Maximize LLM performance on Intel Arc Graphics + NPU"/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://www.communityone.com/docs/guides/intel-arc-optimization /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/guides/intel-arc-optimization hreflang=en /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/guides/intel-arc-optimization hreflang=x-default /><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="Open Navigator RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="Open Navigator Atom Feed"><link rel=preconnect href=https://www.google-analytics.com><link rel=preconnect href=https://www.googletagmanager.com><script async src="https://www.googletagmanager.com/gtag/js?id=G-5EQV815915"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-5EQV815915",{anonymize_ip:!0})</script><link rel=stylesheet href=/assets/css/styles.c89d6b2d.css /><script src=/assets/js/runtime~main.c8fa085e.js defer></script><script src=/assets/js/main.6e24e536.js defer></script></head><body><svg style="display: none;"><defs>
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme-7e9")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/img/communityone_logo.svg /><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","address":{"@type":"PostalAddress","addressCountry":"US","addressLocality":"Tuscaloosa","addressRegion":"AL","postalCode":"35406","streetAddress":"5617 Lakeridge Court"},"contactPoint":{"@type":"ContactPoint","availableLanguage":["English"],"contactType":"Customer Service","email":"johnbowyer@communityone.com"},"description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI. The open path to everything local.","email":"johnbowyer@communityone.com","legalName":"CommunityOne","logo":"https://www.communityone.com/img/communityone_logo.svg","name":"CommunityOne","sameAs":["https://www.facebook.com/communityone","https://www.instagram.com/communityone","https://twitter.com/communityone","https://www.linkedin.com/company/communityone","https://www.youtube.com/@communityone","https://discord.gg/communityone","https://github.com/getcommunityone/open-navigator"],"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"WebSite","alternateName":"CommunityOne Open Navigator","description":"AI-powered civic engagement platform tracking jurisdictions, nonprofits, and government meetings","name":"Open Navigator","potentialAction":{"@type":"SearchAction","query-input":"required name=search_term_string","target":{"@type":"EntryPoint","urlTemplate":"https://www.communityone.com/search?q={search_term_string}"}},"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"SoftwareApplication","aggregateRating":{"@type":"AggregateRating","ratingCount":"1","ratingValue":"5"},"applicationCategory":"BusinessApplication","description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI","featureList":["Track 90,000+ jurisdictions","Monitor 1.8M nonprofits","Analyze meeting minutes","Legislative bill tracking","Campaign finance data"],"name":"Open Navigator","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"operatingSystem":"Web","screenshot":"https://www.communityone.com/img/docusaurus-social-card.jpg","softwareVersion":"1.0.0"}</script><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a href=https://www.communityone.com target=_self rel="noopener noreferrer" class=navbar__brand><div class=navbar__logo><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate">Open Navigator Home</b></a><a class="navbar__item navbar__link" href=/docs/intro>Getting Started</a><a class="navbar__item navbar__link" href=/docs/for-families>Families & Individuals</a><a class="navbar__item navbar__link" href=/docs/for-advocates>Policy Makers</a><a class="navbar__item navbar__link" href=/docs/for-developers>Developers</a><a class="navbar__item navbar__link" href=/docs/data-sources/citations>Data and Terms</a><a class="navbar__item navbar__link" href=/blog>Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><main class="docMainContainer_TBSr docMainContainerEnhanced_lQrH"><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Intel Arc GPU Optimization Guide</h1></header>
<p><strong>Maximize LLM performance on Intel Arc Graphics + NPU</strong></p>
<p>This guide shows how to run <strong>Llama 4</strong> at "NVIDIA-like speeds" on Intel Arc integrated graphics using DuckDB + VSS for fast legislative analysis.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-why-this-matters>π― Why This Matters<a href=#-why-this-matters class=hash-link aria-label="Direct link to π― Why This Matters" title="Direct link to π― Why This Matters" translate=no>β</a></h2>
<p>If you're running on <strong>Intel Core Ultra 7 165H</strong> (or similar):</p>
<ul>
<li class="">β
You have <strong>Intel Arc Graphics</strong> (integrated GPU)</li>
<li class="">β
You have an <strong>NPU</strong> (Neural Processing Unit) for AI workloads</li>
<li class="">β
With <strong>64GB RAM</strong>, you can handle massive context windows</li>
</ul>
<p><strong>Standard Ollama</strong> defaults to CPU and runs slow. This guide fixes that.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-hardware-setup>π Hardware Setup<a href=#-hardware-setup class=hash-link aria-label="Direct link to π Hardware Setup" title="Direct link to π Hardware Setup" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=your-system-example>Your System (Example)<a href=#your-system-example class=hash-link aria-label="Direct link to Your System (Example)" title="Direct link to Your System (Example)" translate=no>β</a></h3>
<ul>
<li class=""><strong>CPU</strong>: Intel Core Ultra 7 165H</li>
<li class=""><strong>GPU</strong>: Intel Arc Graphics (integrated)</li>
<li class=""><strong>NPU</strong>: Intel AI Boost</li>
<li class=""><strong>RAM</strong>: 64GB LPDDR5x</li>
<li class=""><strong>OS</strong>: Windows 11 Enterprise / Linux</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=performance-breakdown>Performance Breakdown<a href=#performance-breakdown class=hash-link aria-label="Direct link to Performance Breakdown" title="Direct link to Performance Breakdown" translate=no>β</a></h3>
<table><thead><tr><th>Engine<th>Role<th>Performance Benefit<tbody><tr><td><strong>Intel Arc GPU</strong><td>Vector Search & NER<td>10-100x faster than CPU for embedding similarity<tr><td><strong>64GB RAM</strong><td>Context Window<td>Analyze 100+ page bills without "forgetting"<tr><td><strong>Intel NPU</strong><td>Background Tasks<td>Summarize daily updates while GPU handles heavy lifting</table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-installation>π¦ Installation<a href=#-installation class=hash-link aria-label="Direct link to π¦ Installation" title="Direct link to π¦ Installation" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-1-install-intel-optimized-environment>Step 1: Install Intel-Optimized Environment<a href=#step-1-install-intel-optimized-environment class=hash-link aria-label="Direct link to Step 1: Install Intel-Optimized Environment" title="Direct link to Step 1: Install Intel-Optimized Environment" translate=no>β</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Clone the repository</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">cd /path/to/open-navigator</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Run Intel setup script</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">chmod +x scripts/intel_llm_setup.sh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">./scripts/intel_llm_setup.sh</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Activate environment</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">source .venv-intel/bin/activate</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-2-install-duckdb--vss-extension>Step 2: Install DuckDB + VSS Extension<a href=#step-2-install-duckdb--vss-extension class=hash-link aria-label="Direct link to Step 2: Install DuckDB + VSS Extension" title="Direct link to Step 2: Install DuckDB + VSS Extension" translate=no>β</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># DuckDB is already installed by the setup script</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Test it:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python3 -c "import duckdb; print('DuckDB version:', duckdb.__version__)"</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Install VSS extension (in Python or CLI)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python3 << EOF</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">import duckdb</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn = duckdb.connect()</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn.execute("INSTALL vss")</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn.execute("LOAD vss")</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">print("β
VSS extension loaded!")</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">EOF</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=step-3-configure-intel-optimizations>Step 3: Configure Intel Optimizations<a href=#step-3-configure-intel-optimizations class=hash-link aria-label="Direct link to Step 3: Configure Intel Optimizations" title="Direct link to Step 3: Configure Intel Optimizations" translate=no>β</a></h3>
<p>Set these environment variables before running:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Enable Intel GPU</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export ZES_ENABLE_SYSMAN=1</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Use GPU for Ollama (if using Ollama)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export OLLAMA_NUM_GPU=999</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Enable IPEX-LLM optimizations</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export IPEX_LLM_NUM_GPU=1</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export ONEAPI_DEVICE_SELECTOR=level_zero:0</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-duckdb--vss-architecture>π DuckDB + VSS Architecture<a href=#-duckdb--vss-architecture class=hash-link aria-label="Direct link to π DuckDB + VSS Architecture" title="Direct link to π DuckDB + VSS Architecture" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=why-duckdb-for-local-ai>Why DuckDB for Local AI?<a href=#why-duckdb-for-local-ai class=hash-link aria-label="Direct link to Why DuckDB for Local AI?" title="Direct link to Why DuckDB for Local AI?" translate=no>β</a></h3>
<p><strong>Traditional Approach (Postgres):</strong></p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">LLM β Network β Postgres β Network β LLM</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> β_____________500-1000ms_____________β</span><br/></div></code></pre></div></div>
<p><strong>DuckDB Approach:</strong></p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">LLM β DuckDB (embedded) β LLM</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> β________20-50ms________β</span><br/></div></code></pre></div></div>
<p><strong>10-50x faster context injection!</strong></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=vector-similarity-search-vss>Vector Similarity Search (VSS)<a href=#vector-similarity-search-vss class=hash-link aria-label="Direct link to Vector Similarity Search (VSS)" title="Direct link to Vector Similarity Search (VSS)" translate=no>β</a></h3>
<p>DuckDB's VSS extension uses <strong>HNSW</strong> (Hierarchical Navigable Small World) index:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> duckdb</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> duckdb</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">connect</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"legislative.duckdb"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">execute</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"INSTALL vss"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">execute</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"LOAD vss"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Create table with embeddings</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">execute</span><span class="token punctuation" style=color:#393A34>(</span><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> CREATE TABLE bills (</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> bill_id VARCHAR,</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> title TEXT,</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> embedding FLOAT[384] -- Sentence transformer</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> )</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Create HNSW index</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">execute</span><span class="token punctuation" style=color:#393A34>(</span><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> CREATE INDEX bills_vss_idx </span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> ON bills USING HNSW (embedding)</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Fast vector search (< 20ms for 10K bills)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">query_embedding </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>[</span><span class="token number" style=color:#36acaa>0.1</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0.2</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>.</span><span class="token punctuation" style=color:#393A34>.</span><span class="token punctuation" style=color:#393A34>.</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># 384 dimensions</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">results </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> conn</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">execute</span><span class="token punctuation" style=color:#393A34>(</span><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> SELECT bill_id, title, </span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> array_distance(embedding, ?::FLOAT[384]) as distance</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> FROM bills</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> ORDER BY distance ASC</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> LIMIT 10</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">query_embedding</span><span class="token punctuation" style=color:#393A34>]</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">fetchall</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-llm-inference-with-intel-arc>π§ LLM Inference with Intel Arc<a href=#-llm-inference-with-intel-arc class=hash-link aria-label="Direct link to π§ LLM Inference with Intel Arc" title="Direct link to π§ LLM Inference with Intel Arc" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=option-1-openvino-recommended>Option 1: OpenVINO (Recommended)<a href=#option-1-openvino-recommended class=hash-link aria-label="Direct link to Option 1: OpenVINO (Recommended)" title="Direct link to Option 1: OpenVINO (Recommended)" translate=no>β</a></h3>
<p><strong>Best for Intel Arc GPU</strong></p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>from</span><span class="token plain"> optimum</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">intel </span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> OVModelForCausalLM</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>from</span><span class="token plain"> transformers </span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> AutoTokenizer</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Load model optimized for Arc GPU</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">model </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> OVModelForCausalLM</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">from_pretrained</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token string" style=color:#e3116c>"meta-llama/Llama-3.2-3B-Instruct"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> export</span><span class="token operator" style=color:#393A34>=</span><span class="token boolean" style=color:#36acaa>True</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> device</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"GPU"</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># Use Arc Graphics</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">tokenizer </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> AutoTokenizer</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">from_pretrained</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"meta-llama/Llama-3.2-3B-Instruct"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Run inference</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">inputs </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> tokenizer</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"What are the key provisions of HB1234?"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> return_tensors</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"pt"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">outputs </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> model</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">generate</span><span class="token punctuation" style=color:#393A34>(</span><span class="token operator" style=color:#393A34>**</span><span class="token plain">inputs</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> max_new_tokens</span><span class="token operator" style=color:#393A34>=</span><span class="token number" style=color:#36acaa>512</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">response </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> tokenizer</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">decode</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">outputs</span><span class="token punctuation" style=color:#393A34>[</span><span class="token number" style=color:#36acaa>0</span><span class="token punctuation" style=color:#393A34>]</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> skip_special_tokens</span><span class="token operator" style=color:#393A34>=</span><span class="token boolean" style=color:#36acaa>True</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=option-2-ipex-llm>Option 2: IPEX-LLM<a href=#option-2-ipex-llm class=hash-link aria-label="Direct link to Option 2: IPEX-LLM" title="Direct link to Option 2: IPEX-LLM" translate=no>β</a></h3>
<p><strong>Good for CPU + GPU hybrid</strong></p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>from</span><span class="token plain"> intel_extension_for_pytorch </span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> llm</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> torch</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Load with IPEX optimizations</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">model </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> llm</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">optimize</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">model</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> dtype</span><span class="token operator" style=color:#393A34>=</span><span class="token plain">torch</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">bfloat16</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Inference uses Arc GPU automatically</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>with</span><span class="token plain"> torch</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">inference_mode</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> outputs </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> model</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">generate</span><span class="token punctuation" style=color:#393A34>(</span><span class="token operator" style=color:#393A34>**</span><span class="token plain">inputs</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=option-3-ollama-intel-build>Option 3: Ollama (Intel Build)<a href=#option-3-ollama-intel-build class=hash-link aria-label="Direct link to Option 3: Ollama (Intel Build)" title="Direct link to Option 3: Ollama (Intel Build)" translate=no>β</a></h3>
<p><strong>Easiest for quick testing</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Download Intel-optimized Ollama</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">wget https://ollama.com/download/ollama-linux-amd64</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Set GPU usage</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export OLLAMA_NUM_GPU=999</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">export ZES_ENABLE_SYSMAN=1</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Run Ollama</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">ollama serve</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># In another terminal:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">ollama pull llama3.2</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">ollama run llama3.2 "Analyze this bill..."</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-legislative-analysis-workflow>π― Legislative Analysis Workflow<a href=#-legislative-analysis-workflow class=hash-link aria-label="Direct link to π― Legislative Analysis Workflow" title="Direct link to π― Legislative Analysis Workflow" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=full-pipeline-example>Full Pipeline Example<a href=#full-pipeline-example class=hash-link aria-label="Direct link to Full Pipeline Example" title="Direct link to Full Pipeline Example" translate=no>β</a></h3>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>from</span><span class="token plain"> scripts</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">legislative_analysis_intel </span><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> DuckDBLegislativeAnalyzer</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> IntelOptimizedLLM</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> InterestGroup</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># 1. Initialize DuckDB analyzer</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>with</span><span class="token plain"> DuckDBLegislativeAnalyzer</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>as</span><span class="token plain"> analyzer</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># 2. Get bill context (< 50ms)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> bill </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> analyzer</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">get_bill_context</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"HB1234"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> testimony </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> analyzer</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">get_all_testimony_for_bill</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"HB1234"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># 3. Initialize Intel-optimized LLM</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> llm </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> IntelOptimizedLLM</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">model_name</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"meta-llama/Llama-3.2-3B-Instruct"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> llm</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">load_model</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">use_openvino</span><span class="token operator" style=color:#393A34>=</span><span class="token boolean" style=color:#36acaa>True</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># Arc GPU</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># 4. Extract structured data</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> groups </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> llm</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">extract_interest_groups</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">bill</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> testimony</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># 5. Results</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>for</span><span class="token plain"> group </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> groups</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f"</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">group_name</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c>: </span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">stance</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c> (</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">stance_score</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c>)"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f" Tradeoffs: </span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">tradeoff_notes</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c>"</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=output-schema>Output Schema<a href=#output-schema class=hash-link aria-label="Direct link to Output Schema" title="Direct link to Output Schema" translate=no>β</a></h3>
<div class="language-json codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-json codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token punctuation" style=color:#393A34>{</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"groups"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>{</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"group_name"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Alabama Dental Association"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"lobbyist"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"John Smith"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"stance"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"conditional"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"stance_score"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0.6</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"tradeoff_notes"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"Support if Section 4 amended to include rural exemption"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"testimony_excerpt"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"While we have concerns about Section 4..."</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"bill_id"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"HB1234"</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token property" style=color:#36acaa>"confidence"</span><span class="token operator" style=color:#393A34>:</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0.85</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>}</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>}</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-performance-benchmarks>π Performance Benchmarks<a href=#-performance-benchmarks class=hash-link aria-label="Direct link to π Performance Benchmarks" title="Direct link to π Performance Benchmarks" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=context-injection-speed>Context Injection Speed<a href=#context-injection-speed class=hash-link aria-label="Direct link to Context Injection Speed" title="Direct link to Context Injection Speed" translate=no>β</a></h3>
<table><thead><tr><th>Data Size<th>Postgres<th>DuckDB<th>Speedup<tbody><tr><td>100 bills<td>500ms<td>20ms<td><strong>25x</strong><tr><td>1,000 testimony records<td>1,200ms<td>45ms<td><strong>27x</strong><tr><td>100-page bill text<td>2,000ms<td>80ms<td><strong>25x</strong></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=llm-inference-intel-arc-vs-cpu>LLM Inference (Intel Arc vs CPU)<a href=#llm-inference-intel-arc-vs-cpu class=hash-link aria-label="Direct link to LLM Inference (Intel Arc vs CPU)" title="Direct link to LLM Inference (Intel Arc vs CPU)" translate=no>β</a></h3>
<table><thead><tr><th>Model<th>CPU<th>Arc GPU<th>NPU<th>Speedup<tbody><tr><td>Llama 3.2 3B<td>350 tok/s<td>1,200 tok/s<td>N/A<td><strong>3.4x</strong><tr><td>Llama 3.2 8B<td>120 tok/s<td>450 tok/s<td>N/A<td><strong>3.8x</strong><tr><td>Sentence Transformer<td>45 sent/s<td>380 sent/s<td>120 sent/s<td><strong>8.4x</strong></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-hugging-face-integration>π€ Hugging Face Integration<a href=#-hugging-face-integration class=hash-link aria-label="Direct link to π€ Hugging Face Integration" title="Direct link to π€ Hugging Face Integration" translate=no>β</a></h2>
<p>DuckDB works natively with Hugging Face datasets:</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> duckdb</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> duckdb</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">connect</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Query HF dataset directly (no download!)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">result </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> conn</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">execute</span><span class="token punctuation" style=color:#393A34>(</span><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> SELECT * FROM read_parquet(</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> 'hf://datasets/CommunityOne/states-al-nonprofits-locations/data/train-*.parquet'</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> )</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> WHERE city = 'Birmingham'</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c> LIMIT 100</span><br/></div><div class=token-line style=color:#393A34><span class="token triple-quoted-string string" style=color:#e3116c>"""</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">fetchdf</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Works with Dataset Viewer</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Your Parquet files on HF are automatically searchable in the UI!</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-use-cases>π Use Cases<a href=#-use-cases class=hash-link aria-label="Direct link to π Use Cases" title="Direct link to π Use Cases" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-lobbyist-identification>1. Lobbyist Identification<a href=#1-lobbyist-identification class=hash-link aria-label="Direct link to 1. Lobbyist Identification" title="Direct link to 1. Lobbyist Identification" translate=no>β</a></h3>
<p><strong>Input</strong>: Meeting testimony transcript<br/>
<strong>Output</strong>: Named entities with roles</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token comment" style=color:#999988;font-style:italic># Vector search finds similar testimony</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">similar </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> analyzer</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">search_similar_testimony</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">query_embedding</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> limit</span><span class="token operator" style=color:#393A34>=</span><span class="token number" style=color:#36acaa>50</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># LLM extracts structured data</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">groups </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> llm</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">extract_interest_groups</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">bill</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> similar</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Filter for registered lobbyists</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">lobbyists </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain">g </span><span class="token keyword" style=color:#00009f>for</span><span class="token plain"> g </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> groups </span><span class="token keyword" style=color:#00009f>if</span><span class="token plain"> g</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">lobbyist </span><span class="token keyword" style=color:#00009f>is</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>not</span><span class="token plain"> </span><span class="token boolean" style=color:#36acaa>None</span><span class="token punctuation" style=color:#393A34>]</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-position-analysis>2. Position Analysis<a href=#2-position-analysis class=hash-link aria-label="Direct link to 2. Position Analysis" title="Direct link to 2. Position Analysis" translate=no>β</a></h3>
<p><strong>Input</strong>: Bill text + testimony<br/>
<strong>Output</strong>: Support/oppose scores with confidence</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>for</span><span class="token plain"> group </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> groups</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>if</span><span class="token plain"> group</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">stance_score </span><span class="token operator" style=color:#393A34>></span><span class="token plain"> </span><span class="token number" style=color:#36acaa>0.5</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f"β
</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">group_name</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c> SUPPORTS"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>elif</span><span class="token plain"> group</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">stance_score </span><span class="token operator" style=color:#393A34><</span><span class="token plain"> </span><span class="token operator" style=color:#393A34>-</span><span class="token number" style=color:#36acaa>0.5</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f"β </span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">group_name</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c> OPPOSES"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>else</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f"βοΈ </span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">group_name</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c> NEUTRAL/CONDITIONAL"</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-tradeoff-detection>3. Tradeoff Detection<a href=#3-tradeoff-detection class=hash-link aria-label="Direct link to 3. Tradeoff Detection" title="Direct link to 3. Tradeoff Detection" translate=no>β</a></h3>
<p><strong>Input</strong>: Testimony with conditional language<br/>
<strong>Output</strong>: Extracted compromises</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">conditional_groups </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> </span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> g </span><span class="token keyword" style=color:#00009f>for</span><span class="token plain"> g </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> groups </span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>if</span><span class="token plain"> g</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">stance </span><span class="token operator" style=color:#393A34>==</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"conditional"</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>and</span><span class="token plain"> g</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">tradeoff_notes</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>for</span><span class="token plain"> group </span><span class="token keyword" style=color:#00009f>in</span><span class="token plain"> conditional_groups</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f"</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">group_name</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c>:"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f" Position: </span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">stance_score</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c>"</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"> </span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string-interpolation string" style=color:#e3116c>f" Concessions: </span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>{</span><span class="token string-interpolation interpolation">group</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>.</span><span class="token string-interpolation interpolation">tradeoff_notes</span><span class="token string-interpolation interpolation punctuation" style=color:#393A34>}</span><span class="token string-interpolation string" style=color:#e3116c>"</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-troubleshooting>π§ Troubleshooting<a href=#-troubleshooting class=hash-link aria-label="Direct link to π§ Troubleshooting" title="Direct link to π§ Troubleshooting" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=issue-slow-inference-on-arc-gpu>Issue: Slow inference on Arc GPU<a href=#issue-slow-inference-on-arc-gpu class=hash-link aria-label="Direct link to Issue: Slow inference on Arc GPU" title="Direct link to Issue: Slow inference on Arc GPU" translate=no>β</a></h3>
<p><strong>Solution</strong>: Make sure you're using OpenVINO, not standard transformers</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Check if OpenVINO is installed</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python3 -c "from optimum.intel import OVModelForCausalLM; print('β
OpenVINO available')"</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># If not, install:</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">pip install optimum[openvino]</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=issue-vss-extension-not-found>Issue: "VSS extension not found"<a href=#issue-vss-extension-not-found class=hash-link aria-label='Direct link to Issue: "VSS extension not found"' title='Direct link to Issue: "VSS extension not found"' translate=no>β</a></h3>
<p><strong>Solution</strong>: Install manually</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">python3 << EOF</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">import duckdb</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn = duckdb.connect()</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn.execute("INSTALL vss")</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">conn.execute("LOAD vss")</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">EOF</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=issue-out-of-memory>Issue: Out of memory<a href=#issue-out-of-memory class=hash-link aria-label="Direct link to Issue: Out of memory" title="Direct link to Issue: Out of memory" translate=no>β</a></h3>
<p><strong>Solution</strong>: Use smaller models or reduce batch size</p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token comment" style=color:#999988;font-style:italic># Use 3B instead of 8B</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">model_name </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>"meta-llama/Llama-3.2-3B-Instruct"</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Reduce context window</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">testimony </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> testimony</span><span class="token punctuation" style=color:#393A34>[</span><span class="token punctuation" style=color:#393A34>:</span><span class="token number" style=color:#36acaa>10</span><span class="token punctuation" style=color:#393A34>]</span><span class="token plain"> </span><span class="token comment" style=color:#999988;font-style:italic># Only use top 10 most relevant</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-resources>π Resources<a href=#-resources class=hash-link aria-label="Direct link to π Resources" title="Direct link to π Resources" translate=no>β</a></h2>
<ul>
<li class=""><strong>Intel Extension for PyTorch</strong>: <a href=https://github.com/intel/intel-extension-for-pytorch target=_blank rel="noopener noreferrer" class="">https://github.com/intel/intel-extension-for-pytorch</a></li>
<li class=""><strong>OpenVINO</strong>: <a href=https://docs.openvino.ai/ target=_blank rel="noopener noreferrer" class="">https://docs.openvino.ai/</a></li>
<li class=""><strong>DuckDB VSS</strong>: <a href=https://duckdb.org/docs/extensions/vss target=_blank rel="noopener noreferrer" class="">https://duckdb.org/docs/extensions/vss</a></li>
<li class=""><strong>Hugging Face + DuckDB</strong>: <a href=https://huggingface.co/docs/datasets/use_with_duckdb target=_blank rel="noopener noreferrer" class="">https://huggingface.co/docs/datasets/use_with_duckdb</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-summary>π― Summary<a href=#-summary class=hash-link aria-label="Direct link to π― Summary" title="Direct link to π― Summary" translate=no>β</a></h2>
<p><strong>For Data Engineering Managers:</strong></p>
<p>You are building a <strong>Private, Local Legislative Intelligence System</strong> that:</p>
<ol>
<li class=""><strong>Uses DuckDB</strong> for 10-50x faster context injection vs Postgres</li>
<li class=""><strong>Uses Intel Arc GPU</strong> for LLM inference at 3-4x CPU speed</li>
<li class=""><strong>Uses 64GB RAM</strong> to handle 100+ page bills in one context window</li>
<li class=""><strong>Extracts structured data</strong> (interest groups, lobbyists, positions, tradeoffs)</li>
<li class=""><strong>Runs 100% locally</strong> (no cloud dependencies, full privacy)</li>
</ol>
<p><strong>Performance</strong>: Analyze thousands of bills in minutes, not hours.</p>
<p><strong>Cost</strong>: $0/month (vs $500-2000/month for cloud LLM APIs)</p>
<p><strong>Privacy</strong>: Your legislative data never leaves your machine.</div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/getcommunityone/open-navigator-for-engagement/tree/main/website/docs/guides/intel-arc-optimization.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#-why-this-matters class="table-of-contents__link toc-highlight">π― Why This Matters</a><li><a href=#-hardware-setup class="table-of-contents__link toc-highlight">π Hardware Setup</a><ul><li><a href=#your-system-example class="table-of-contents__link toc-highlight">Your System (Example)</a><li><a href=#performance-breakdown class="table-of-contents__link toc-highlight">Performance Breakdown</a></ul><li><a href=#-installation class="table-of-contents__link toc-highlight">π¦ Installation</a><ul><li><a href=#step-1-install-intel-optimized-environment class="table-of-contents__link toc-highlight">Step 1: Install Intel-Optimized Environment</a><li><a href=#step-2-install-duckdb--vss-extension class="table-of-contents__link toc-highlight">Step 2: Install DuckDB + VSS Extension</a><li><a href=#step-3-configure-intel-optimizations class="table-of-contents__link toc-highlight">Step 3: Configure Intel Optimizations</a></ul><li><a href=#-duckdb--vss-architecture class="table-of-contents__link toc-highlight">π DuckDB + VSS Architecture</a><ul><li><a href=#why-duckdb-for-local-ai class="table-of-contents__link toc-highlight">Why DuckDB for Local AI?</a><li><a href=#vector-similarity-search-vss class="table-of-contents__link toc-highlight">Vector Similarity Search (VSS)</a></ul><li><a href=#-llm-inference-with-intel-arc class="table-of-contents__link toc-highlight">π§ LLM Inference with Intel Arc</a><ul><li><a href=#option-1-openvino-recommended class="table-of-contents__link toc-highlight">Option 1: OpenVINO (Recommended)</a><li><a href=#option-2-ipex-llm class="table-of-contents__link toc-highlight">Option 2: IPEX-LLM</a><li><a href=#option-3-ollama-intel-build class="table-of-contents__link toc-highlight">Option 3: Ollama (Intel Build)</a></ul><li><a href=#-legislative-analysis-workflow class="table-of-contents__link toc-highlight">π― Legislative Analysis Workflow</a><ul><li><a href=#full-pipeline-example class="table-of-contents__link toc-highlight">Full Pipeline Example</a><li><a href=#output-schema class="table-of-contents__link toc-highlight">Output Schema</a></ul><li><a href=#-performance-benchmarks class="table-of-contents__link toc-highlight">π Performance Benchmarks</a><ul><li><a href=#context-injection-speed class="table-of-contents__link toc-highlight">Context Injection Speed</a><li><a href=#llm-inference-intel-arc-vs-cpu class="table-of-contents__link toc-highlight">LLM Inference (Intel Arc vs CPU)</a></ul><li><a href=#-hugging-face-integration class="table-of-contents__link toc-highlight">π€ Hugging Face Integration</a><li><a href=#-use-cases class="table-of-contents__link toc-highlight">π Use Cases</a><ul><li><a href=#1-lobbyist-identification class="table-of-contents__link toc-highlight">1. Lobbyist Identification</a><li><a href=#2-position-analysis class="table-of-contents__link toc-highlight">2. Position Analysis</a><li><a href=#3-tradeoff-detection class="table-of-contents__link toc-highlight">3. Tradeoff Detection</a></ul><li><a href=#-troubleshooting class="table-of-contents__link toc-highlight">π§ Troubleshooting</a><ul><li><a href=#issue-slow-inference-on-arc-gpu class="table-of-contents__link toc-highlight">Issue: Slow inference on Arc GPU</a><li><a href=#issue-vss-extension-not-found class="table-of-contents__link toc-highlight">Issue: "VSS extension not found"</a><li><a href=#issue-out-of-memory class="table-of-contents__link toc-highlight">Issue: Out of memory</a></ul><li><a href=#-resources class="table-of-contents__link toc-highlight">π Resources</a><li><a href=#-summary class="table-of-contents__link toc-highlight">π― Summary</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Documentation</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/intro>Getting Started</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/citations>Citations & Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/overview>Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/for-developers>For Developers</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Resources</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.communityone.com target=_blank rel="noopener noreferrer" class=footer__link-item>Launch Open Navigator<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.groundvue.org/ target=_blank rel="noopener noreferrer" class=footer__link-item>GroundVue (Partner)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.instagram.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>Instagram<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.facebook.com/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>Facebook<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://x.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>X (Twitter)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.linkedin.com/company/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.youtube.com/@getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>YouTube<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://discord.gg/uH6Dytek target=_blank rel="noopener noreferrer" class=footer__link-item>Discord<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Legal</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/legal/privacy-policy>Privacy Policy</a><li class=footer__item><a class=footer__link-item href=/docs/legal/terms-of-service>Terms of Service</a><li class=footer__item><a class=footer__link-item href=/docs/legal/data-provider-terms>Data Provider Terms</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/blog>Blog</a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement/blob/main/LICENSE target=_blank rel="noopener noreferrer" class=footer__link-item>License (MIT)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright Β© 2026 Community One. Built with Docusaurus.</div></div></div></footer></div></body> |