All case studies
Defence & AI2023

Project MINERVA

AI Document Intelligence Platform

Sovereign LLM-powered document processing platform for classified government corpora. Delivered in 75 days.

Headline outcome

75-day delivery · 3 days → 8 minutes document processing · 94% extraction accuracy

Library stacks rising through several storeys of open shelving
Illustrative photography. No imagery on this site is from a client environment.
Llama 3 70BGGUFRAGpgvectorOCRWhisper ASRAir-gapped

Overview

A government agency managing thousands of classified documents needed an AI system to search, summarise, cross-reference, and extract insights — without any document ever leaving their secure network.

Challenge

Commercial LLM APIs (OpenAI, Anthropic) were off-limits due to data residency requirements. All processing had to occur on-premise using open-weight models. The system also needed to handle multi-format documents: PDFs, scanned images, handwritten forms.

Solution

We deployed Llama 3 70B quantised to GGUF on an air-gapped GPU cluster. A custom RAG pipeline with hybrid search (BM25 + vector) was built over the document corpus using pgvector. OCR preprocessing via Tesseract and Whisper ASR for audio transcriptions. Built in 75 days from brief to production.

Outcome

Processing time for cross-referencing a 500-page classified report: reduced from 3 days to 8 minutes. 94% accuracy on information extraction benchmarks. Zero document egress since deployment. Handling 200+ queries per day.

Measured

75 days
brief to production
3 days → 8 min
document processing time
94%
extraction accuracy
Zero
document egress since deployment

The constraint that shaped it

The corpus cannot transit a third-party API. Not the documents, and not a prompt containing them — which rules out every hosted model, every managed vector service and every evaluation tool that phones home. So the model comes to the data: open weights quantised to the node on site, retrieval over a local index, evaluation inside the perimeter, updates carried in on signed media. The 75 days were spent building that, not integrating it.

How it was built

Sizing proved before procurement

A sovereign deployment fails at the purchase order more often than at the model. The node was specified against sustained inference — the query load the estate would actually put through it hour after hour — rather than a benchmark burst, and throughput was demonstrated before the hardware order was signed. Quantisation to GGUF followed from that: the model was fitted to the hardware the customer could put in the room, not the other way round. Serving, retrieval and evaluation were sized against the same envelope.

Answers an officer can check

The model does not become the record. Every generated answer carries provenance back to a named source document, so the reader can open the file and confirm the claim without extending trust to a language model. Retrieval is hybrid, lexical and vector together, because a reference number or a file designation has to match exactly and embeddings alone will cheerfully return something adjacent. Scanned pages and dictated audio enter the same index through OCR and speech recognition, so a document is searchable in whatever form it arrived.

Seventy-five days, and why that was possible

Brief to production in 75 days was not a sprint. It was the absence of joins. Quantisation, serving, retrieval, evaluation and the offline update procedure were one scope held by one team, so no interface had to be negotiated between vendors mid-programme. Evaluation was in scope from the start and ran inside the estate, which is why 94% extraction accuracy is a measured figure and not a vendor claim. Cross-referencing that took three days now takes eight minutes.

Updating a model with no inbound path

Model and index updates arrive on controlled media, signed, and are verified inside the perimeter. No inbound network path is opened for convenience — not for a package repository, not for a licence check, not for telemetry. Egress was tested with the network interface physically down rather than merely firewalled, because a rule somebody can edit is not an assurance. The procedure for replacing weights, rebuilding the index and rolling back is documented, and the staff who hold the estate are the ones who perform it.

Stack, by concern

Model & serving

Llama 3 70BGGUF quantisationLocal inference server

Retrieval

RAG pipelinepgvectorHybrid lexical + vector search

Ingest

OCR preprocessingWhisper ASR

Deployment

Air-gappedSigned offline updatesZero egress