Back to "DataSummarizer: Nopeiden paikallisten tietojen profilointi"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

C# Data Analysis DuckDB LLM

DataSummarizer: Nopeiden paikallisten tietojen profilointi

Monday, 22 December 2025

Useimmat “chat-järjestelmät tekevät samaa virhettä tietojen kanssa ”järjestelmät kohtelevat LLM:tä kuin se olisi tietokanta

Ne siirtävät rivit kontekstiin, sijoittaa osia, tai valitsee M SK2 esikuvaesimerkkejä ” ja toivoo, että malli voi päätellä rakenteestaMSC4 laatuaMST5 ja totuutta naamioiden perusteellaMSV6 Se toimii riittävän hyvin demonstrointiin SSK7 ja sitten romahtaa mittakaavan alapuolellaMSP8 yksityisyyden suojaan kohdistuvat rajoituksetMSR9 tai peruskysymykset, kuten “ on tämä pilari jäteMSL11

DataSummarizer käyttää päinvastaista lähestymistapaa.

Se laskee deterministinen tilastollinen profiili DuckDB, käyttämästänne tietokokonaisesta säilyy se profiili, valinnaisesti vaiheet a paikallinen LLM ensiksi tulkita näitä tosiasioita, ehdottaa turvallista lukemista-onnistaan SQLM SK2 ja opastaa seurantaanMSC3 analysoida uudelleenMST4 raskaan nostamisen on oltava numeroista MST5 tilintarkastettavaaMTS6 ja nopeaa MTS7 LLM on tarkoituksellisesti rajoitettu perusteluihin ja esittelyyn

Tulos on:

  • Fast, yksityiset profiilit
  • luotettava automaatti (tool JSON)
  • rakennettu-in ajotunnistus
  • ja se, mitä suurin osa järjestelmistä ei voi tehdä PII-vapaat synteettiset dataset, jotka säilyttävät tilastollisen muodon

Kaikki ilman raaka-arvojen lähettämistä malliin.

Tämä perustuu suoraan Miten analysoida suuria CSV-ファイルjä paikallisten LLM:ien avulla C#,, jossa otettiin esille keskeinen ajatus

LLM:iden pitäisi tuottaa kysymyksiä, ei kuluttaa tietoja.

Tämä artikkeli vie tätä ajatusta eteenpäin:

  • don’ ei syö LLM-reikiä
  • Älkää syökö sitä edes “esimerkitM SK2 ellei teidän tarvitse
  • ruokkimaan tilastollinen muoto
  • antakaa DuckDB:n arvioida tosiasioita
  • antakaa LLM:n perustella näitä tosiseikkoja - ja pyytää lisää

GitHubin julkilausuma

Täsmällinen asiakirja on DataSummarizerin README Työkalu näyttää yksinkertaiselta. Se ei ole’tM SK2 Suurin osa työstä on on’t lähetetään mallille.

Huomautus: Tämä ei ole’t M SK1 vielä . Se’ on tarkoituksenmukainenMSC4 Interfejs on vakaaMST5 reunaa on edelleen syvennettyMSV6


Ongelma “Chatin kanssa tietojenne kanssa”

Kun ryhmät panevat LLM:n tietoanalyysiin, ne tekevät yleensä yhden kolmesta asiasta.

  1. liittää rivit kontekstiin ( putoaa nopeammin , vuotaa tietojaM SK2
  2. sijoittaa osia ja saada ne takaisin (käynnissä oleva rivi-tasoM SK2 vielä puutteellinen
  3. edellytetään “representatiiviset näytteet” ( usein epärepresentatiivisiaM SK3 edelleen riskialttiita

Jopa 200k token konteksti-ohjelmien kanssa, tämä on väärä abstraktioM SK2

LLM:iden tarkoituksena ei ole laskea agregaatioita, havaita epäjohdonmukaisuutta , tai perustella luotettavasti jakeluominaisuuksia lukemalla ryhmiäM SK2 He hallucinaoivat, koska heitä pyydetään tekemään tietokannan työtä.

Oikea jakautuminen on edelleen:

LLM-syyt. Tietokantakomputit.*

Voimme kuitenkin mennä vielä pidemmälle muuttamalla mitä LLM:n syyt yli .


Keskeinen parannus: Tilastot liitteenä

Sen sijaan, että annetaan mallia koskevat tiedot, antakaan sille profiili.

Profili on compact, tietokokonaisuuden deterministisen yhteenvedon tiivistelmä

  • schema + johdetut tyypit
  • null-aste, ainutlaatuisuusM SK1 cardinality
  • min / max / määrät
  • turvallisten kategorioiden enimmäisarvot
  • PII-riskisignaalit (regex
  • aika-sarjarakenne (laajuusM SK2 aukot, granulaarisuusMSC4
  • valinnaiset drift deltas ja pohjalinja

Tästä profiilista tulee yhteys johdonmukaisuuden ja laskennan välille.

Malli voi nyt:

  • päättää, mikä on kiinnostava
  • ehdottaa järkeviä seurantapyyntöjä
  • tulosten tulkinta
  • havaita virta

…ilman, että olisi koskaan nähty raaka-aita

Rakennus

flowchart LR
    A[Data file] --> B[DuckDB profiles]
    B --> C[Statistical Profile JSON]
    C --> D[LLM reasoning step]
    D --> E[SQL/tool calls]
    E --> F[DuckDB executes locally]
    F --> G[Aggregate results]
    G --> H[LLM synthesis]

    style B stroke:#333,stroke-width:4px
    style D stroke:#333,stroke-width:4px
    style F stroke:#333,stroke-width:4px

Tämä säilyttää tuttun LLM → SQL → DuckDB loop, mutta ankkuroi sen tosiasioihin

  • profilointi on deterministista
  • LLM:n toiminta perustuu todisteisiin, ei anekdootteihin.

Miksi profiili on hyödyllinen? (Even ilman LLM:tä

Profili vastaa viivytteleviin kysymyksiin.

  • Mitkä pilarit ovat tuhlattuja? (kaikkiM SK1null , pysyvät,läheiset
  • Mitkä pilarit ovat vuodatusriskejä (lähempänäM SK1yksiklliset tunnistajat)?
  • Mitkä pilarit ovat korkeita-null tai ulkopuolisia -heavyM SK2
  • Mitkä ovat hallitsevat ryhmät?
  • Onko tämä aikasarja samansuuntainen vai täynnä puutteita?
  • Onko jakautuminen epäsuhtaista tai nollaa-flatedM SK1

Nämä ovat kysymykset, joita tavallisesti löydetään.

profiili antaa ne teille sekunnissa.


Miksi profiili tekee LLM:stä todella hyödyllisen

Jos te lopettaa salli LLM, profiili on se, mikä estää sen toimivuuden

--profiilien ja ainoastaan kontekstin avulla malli voi

  • keskittyminen korkean-entropian tai korkean–-skew-pilaisiin
  • ehdottaa järkevää ryhmää-kysymysten mukaan M SK1vähien, -kardiaalisuusluokitusten mukaan
  • välttää jätteitä SQL (ei ryhmittymiä 95%-yksiklliset pilarit)
  • huomautus jakeluvirrat
  • kysyä kohdennettu follow--tilastot lisätietojen pyytämisen sijasta

Ette tarvitse suurempia malleja

Tarvitaan parempia todisteita.


DataSummarizer -väline

Muutin tämän CLIksi, jotta voisin käyttää sitä mielivaltaisissa asiakirjoissa - mukaan lukien cron- ja CI-ohjelmien yhteydessä.

GitHubin julkilausuma

Nopea alku

Windows-järjestelmä liittää asiakirjan datasummarizer.exe

:

datasummarizer mydata.csv

Ohjelmien käyttö (JSON-tulos

datasummarizer tool -f mydata.csv > profile.json

Se profile.json on sopimus

  • toimeksiantajien kuluttamat
  • varastoidaan ajotarkastukseen
  • käytetään synteettisten tietojen tuottamiseen

Operaatiota koskevat perusedellytykset (ExplicitM SK1

  • Ollaman loppupiste: http://localhost:11434 (configurable)

  • Standardimalli: qwen2.5-coder:7b (override with --model)

  • Tavallinen rekisteri DB: .datasummarizer.vss.duckdb

  • SQL:n turvallisuusrajoitukset:

    • max 20 rivit palautetaan LLM:lle
    • kielletty: COPY, ATTACH, INSTALL, CREATE, DROP, INSERT, UPDATE, DELETE, turvaton PRAGMA

Standardit ovat tarkoituksellisesti konservatiivisia.


Deterministinen profilointi (esimerkkiM SK1

datasummarizer -f patients.csv --no-llm --fast

Tulos (974 PII-potilaiden rekisterit

── Summary ────────────────────────────────────────────────
974 rows, 20 columns. 4 columns have >10% nulls. 8 warnings.

Alarmit lippulaivavuodatusriskejä, korkeatM SK1null-säiliöt, pysyvät kentät , ja epäilyttävät tunnistajat MSC4 kaikki lasketut DuckDB:n tietojen perusteella

Ei arvausta. Ei hallucinaatiotaM SK1


Ohjelmointiväline JSON

datasummarizer tool -f patients.csv --store > profile.json

Lyhyempi output:

{
  "Profile": {
    "RowCount": 974,
    "ColumnCount": 20,
    "ExecutiveSummary": "974 rows, 20 columns. 18 alerts."
  },
  "Metadata": {
    "ProfileId": "0ae8dcc4d79b",
    "SchemaHash": "44d9ad8af68c1c62"
  }
}

Tämä on suunniteltu diffeerimaksi, talletettavaksiM SK1 ja tarkastettavaksi .


automaattinen Drift Detection (Cron-FriendlyM SK2

Kun profiilit ovat olemassa, driftistä tulee halpa

datasummarizer tool -f daily_export.csv --auto-drift --store
  • KS:n etäisyydellä lukucolumneille
  • Jensen–Shannonin ero kategorioiden osalta
  • schema-silmäjäljitetyt perustalinjat

Se”’” on tuskallinen infrastruktuuri, ”-”, mikä on juuri se, mitä haluatte“.”


The Killer Feature: Synteettiset kloonaukset muodosta

Kun teillä on tilastollinen muoto, voitte tehdä jotain todella hyödyllistä.

Synteettiset dataset, jotka:

  • sisällyttää ei alkuperäisiä arvoja
  • sisällyttää ei PII
  • säilyttää jakelu, cardinality , ja epämääräiset vaikutukset

Tämä on ihanteellinen malli demoille, CIM SK1 tukevien reprojen, ja yhteisiä näytteitä varten

Todenmukaisuuden raportissa mitataan, kuinka lähellä synteettiset tiedot ovat - sen sijaan, että ne olisivat käsillisiäM SK1valokas “realistinen”.


Luottamusmalli

  • Deterministinen: kaikki tilastot, quantiles , drift scoresM SK2 ja hälytystuloksia laskee DuckDB
  • Vaihtoehtoinen LLM: selvitys, johdonmukaisuusM SK1 ja ainoastaan SQL-ehdotukset.
  • Hermetinen järjestelmä: --no-llm tuottaa täysin tilintarkastuskelpoisia tuloksia, jotka soveltuvat CI- tai säänneltyihin ympäristöihin.

LLM ei koskaan keksi tosiasioita, vaan reagoi niihin.


Ottakaa se

Repo: https://github.comM SK2scottgal/mostlylucidwebMST4treeMSSK5mainMSC6Mostly LucidMSS7~DataSummarizer

Vaatimukset:

  • .NET 10
  • DuckDB (embeddedM SK1
  • valinnainen: Ollama

Related:

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.