Barnes Dubai LLM: how it came together.
How it came together.
- 01
A QLoRA pass on real jurisdictional data
QLoRA over a base instruct model was the right tier: full fine-tune was overkill, prompt engineering under-trained. Instruction pairs were sourced from Dubai Land Department, UK Land Registry, France DVF, Singapore URA, and the World Bank; each pair was reviewed by an analyst so the model learned the team's judgment, not just the registries' wording.
AI & Machine Learning Local serving changes the economics. The corpus is public record; the model runs on one workstation, so asking it a hundred questions costs the same as asking it one. - 02
Local deployment via Ollama
Per-query cost on a hosted frontier API would have killed the on-demand workflow before it shipped. Local Ollama deployment on a single workstation cuts the cost to electricity, runs at conversational latency, and keeps transactional data inside the org's network, non-negotiable for a brokerage handling proprietary listings.
Backend Engineering - 03
A guarded agent loop, reason then act
The agent loop treats each research run as a guarded step: reason over the request, propose an action, then commit it above a confidence threshold or escalate to a human below one. Every accepted and escalated action is logged, feeding the next training pass.
AI & Machine Learning - 04
FastAPI in front so other tools can call the agents
Wrapped Barnes Dubai LLM behind a FastAPI service so Data Centre, the Dev Portal, and ad-hoc Python scripts all call the same agents through one API, rather than each building its own chat surface.
Backend Engineering
Decisions on the record.
The few calls worth defending. Each one is a fork; the other branch would have been a different project.
QLoRA fine-tune for a terminology-heavy vertical
Dubai luxury real-estate is terminology-heavy, mixed-language, and full of low-frequency entities (off-plan towers, niche communities, broker shorthand) where base + RAG tends to hallucinate. The QLoRA pass lifted named-entity recall and got the model speaking the vertical's actual dialect.
Splitting one chat box into three modes
The first version was one conversational surface conflating three jobs: market analysis (Barnes Dubai LLM), tool-orchestrated workflows (Victor), and marketing-asset generation (Design). Splitting them into a mode picker made the right model + prompt + tool-bundle visible up front instead of relying on the LLM to guess intent. Users now pick the task; the model does it.
Routing vision to Cloudflare Workers AI
A broker shoots a listing on a mid-range laptop with no GPU behind it. What dominates the prompt-eval pass is vision-token tokenisation, not the text the model writes back, so handing the image to a server GPU beats grinding it through the client CPU. Cloudflare Workers AI runs llava on GPU with a 10-15s warm round-trip, and the free tier's 10k requests a day sits well past what a broker desk generates. Only the photo bytes leave the broker's device.
