Back to Blog

The idea of owning your own AI — one that runs entirely on your hardware, knows only what you teach it, and never phones home with your data — has shifted from enthusiast fantasy to realistic weekend project. Ollama, Qdrant, LlamaIndex, and a wave of open-weight models have lowered the barrier dramatically. But the glossy tutorials leave out the honest stuff: how much storage you actually need, which GPU tier buys real capability versus frustrating limitations, and what risks come with running inference on hardware sitting in your living room. This guide covers all of it.

We will walk through the entire stack — from picking your GPU and sizing your storage, to choosing a vector database, wiring up RAG, and deciding whether to run everything on a dedicated machine or pay someone else to run the hardware for you. We will also be direct about where things go wrong, because understanding failure modes matters as much as understanding the happy path.

The Mental Model

Think of your self-hosted AI stack like a private research office. The GPU is the desk where your researcher actually thinks. The vector database is the filing cabinet full of your documents. The LLM is the researcher sitting at the desk. And RAG is the system that pulls the right folder from the cabinet before your researcher starts answering your question.

Before You Start: What Are You Actually Building?

A "personal AI" is not a single thing — it is a stack of components that work together. Most people conflate three distinct systems: a local LLM (the model that generates text), a vector database (the store that enables semantic search over your documents), and a RAG pipeline (the wiring that connects the two at query time). You can run any one of them independently, and the combination is where the real power emerges.

The local LLM handles open-ended conversations, code generation, summarization, and general reasoning — it is equivalent to ChatGPT or Claude, running on your own machine. The vector database transforms your private documents (PDFs, notes, emails, codebases) into searchable embeddings so the LLM can answer questions grounded in your data. The RAG pipeline orchestrates the handoff: when you ask a question, it retrieves the most relevant chunks from your vector store and injects them into the LLM's context window before the model generates its response.

Each component has its own hardware requirements, software options, and risk profile. Let us go through them in order of what you will need to decide first.

Storage: What You Will Actually Need

Storage is consistently underestimated by first-time builders, and running out of space mid-download is a miserable experience. There are three distinct storage needs to plan for: model files, vector database index, and your raw document corpus.

Model storage is the most immediately pressing concern. Model file sizes depend almost entirely on the number of parameters and the quantization level you use. Quantization compresses model weights to reduce VRAM usage at a modest quality cost — Q4 (4-bit) is the community standard for most use cases. Here are the real numbers you should plan around: a 7B model in Q4 occupies approximately 4–5 GB; a 13B model in Q4 takes 8–9 GB; a 34B model requires about 20–22 GB; and a 70B model in Q4 needs 40–45 GB. If you want full-precision weights (FP16) for maximum quality, multiply those figures by roughly 3.5. You will also likely want to keep several models on disk simultaneously — a coding model, a general-purpose model, and an embedding model at minimum.

VRAM is where models live while they run. Storage is where they live when they don't. Plan both, or your model won't fit in either place.

Vector database storage depends on your embedding dimensions and the number of chunks you store. At 1,536 dimensions (OpenAI-compatible size), one million vectors consume roughly 6–12 GB including index overhead — the exact figure varies by database and index type. If you use smaller 768-dimension embeddings (common in many local embedding models), you roughly halve that. A practical personal knowledge base of 10,000 document chunks sits comfortably under 1 GB. A small business's entire document archive at 500,000 chunks would need 3–6 GB of indexed vector storage.

Raw document corpus is whatever you are feeding the system — PDFs, markdown files, code repos, or scraped web content. This scales with your content library. For most individuals it is under 50 GB; for business use cases it can reach terabytes.

The practical minimum recommendation is a 2 TB NVMe SSD as your primary drive. NVMe matters for model loading speed — the difference between a slow SATA SSD and a fast NVMe drive is noticeable when loading a 40 GB model. For raw documents and backups, a secondary HDD of 4–8 TB provides affordable overflow storage without impacting inference performance.

GPU Tiers: Minimum, Sweet Spot, and Power Build

VRAM — the memory on your GPU — is the hard ceiling of your entire build. It dictates which models fit, how fast inference runs, and whether you can run embeddings in parallel. Every GPU tier recommendation below is built around VRAM first, then cost and power.

T1
Starter Build
Minimum Viable GPU — $200 to $400
Best picksRTX 3060 12 GB (~$250 used), RTX 4060 Ti 16 GB (~$380 new), used RTX 3080 10 GB (~$250 used)
VRAM10–16 GB
RunsLlama 3.1 8B (Q4/Q5), Mistral 7B, Phi-3 Mini, Gemma 2 9B — all in 4-bit quantization
Best forPersonal knowledge assistant, private document Q&A, learning the stack, single-user chatbot
Power draw120–200 W TDP (~$10–17/month at $0.12/kWh idle/mixed)
Hard limitCannot comfortably run 13B+ models; 10 GB VRAM cards (RTX 3080) feel cramped with context

The RTX 3060 12 GB is the community-recommended entry point for good reason — it has more VRAM than the RTX 3080 10 GB despite being two generations older, and it can run Q4 7B models without splitting layers to system RAM. The RTX 4060 Ti 16 GB is the better modern choice if you can stretch the budget: those extra 4–6 GB of VRAM let you work with longer context windows and run embedding generation in parallel with inference.

Apple Silicon is worth mentioning here as an alternative path. A MacBook Pro with an M3 or M4 chip and 16–24 GB unified memory can run 7B models at impressive speeds because the GPU and CPU share the same memory pool — there is no VRAM vs. system RAM boundary. If you already own one, Ollama on Apple Silicon is a legitimate starter setup requiring zero additional hardware investment.

T2
Sweet Spot Build
Best value for real workloads — $500 to $900
Best picksRTX 4070 Super 12 GB (~$600 new), RTX 3090 24 GB (~$700–800 used), RTX 4070 Ti 16 GB (~$750)
VRAM12–24 GB
RunsLlama 3.1 13B (Q4/Q5), Mixtral 8x7B (Q4), CodeLlama 34B (Q4 on 24 GB), all 7B models at full Q8
Best forDeveloper workstation, small team knowledge base, code assistant, content generation pipeline
Power draw200–350 W TDP (~$17–30/month at mixed use)
Community pickRTX 3090 24 GB is the runaway favorite for VRAM-per-dollar — 24 GB opens 34B model territory

The RTX 3090 24 GB is the most popular choice in self-hosted AI communities for a reason that comes down to one number: 24 gigabytes. At that VRAM ceiling, you can run a 34B model in Q4 quantization entirely on-GPU with no CPU offloading — that means fast, responsive inference rather than the crawl that happens when layers spill into system RAM. It is a last-generation card with a used-market price that has dropped considerably, making it one of the best value propositions in the space.

Apple Silicon also becomes compelling at this tier: an M3 Max or M4 Max with 48–64 GB unified memory can run 34B models at usable speeds, making it viable for serious development work without a separate PC or dedicated GPU. The catch is cost — a maxed MacBook Pro reaches $3,000–4,000, which exceeds a purpose-built PC with the same effective model capacity.

T3
Power Build
Full capability — $1,400 and up
Best picksRTX 4090 24 GB (~$1,800 new), 2× RTX 3090 (~$1,400 used pair), AMD RX 7900 XTX 24 GB (~$950)
VRAM24–48 GB (single or dual GPU)
RunsLlama 3.1 70B (Q4), Mixtral 8x22B (Q4 across dual GPUs), CodeLlama 70B, full 34B at Q8
Best forBusiness intelligence, multi-user inference server, high-throughput RAG, unrestricted model access
Power draw300–500 W TDP single, 500–800 W dual GPU (~$43–69/month, dual 24/7)
Dual-GPU noteRequires llama.cpp tensor split or Ollama's multi-GPU support — not all models distribute cleanly

The RTX 4090 is the best single-GPU option for consumer self-hosting. At 24 GB VRAM and with NVIDIA's fastest consumer-grade tensor cores, it runs 70B models in Q4 at two to three tokens per second — slow by cloud standards but entirely usable for interactive conversation. The dual RTX 3090 setup doubles your VRAM to 48 GB for roughly the same price, enabling 70B at Q5 or even Q8, though you will need a high-wattage power supply (1000W+) and a case with the airflow to match.

The AMD RX 7900 XTX deserves a mention: at 24 GB VRAM and around $950, it is significantly cheaper than the RTX 4090. ROCm (AMD's GPU compute platform) has improved substantially, and Ollama supports it natively. Performance trails NVIDIA on most workloads, but if the price delta matters more than the last 20% of speed, it is a legitimate option.

For Apple Silicon at this tier, the M3 Ultra or M4 Max with 96–192 GB unified memory can run 70B models comfortably and approaches 10 tokens per second — competitive with an RTX 4090 on many benchmarks. The cost is $4,000–8,000+, which places it firmly in professional workstation territory.

Choosing Your Self-Hosted Vector Database

A vector database stores your document chunks as high-dimensional numerical representations (embeddings) and retrieves the most semantically similar chunks when you run a query. Choosing the right one depends on whether you are building a quick local prototype or a production-grade system, and whether you want a managed server or an embedded library. For a deeper explanation of how vector databases work, see our Vector Database deep-dive.

Best for: Starting out
Chroma

Python-native, zero configuration, runs embedded in your app or as a server. The easiest entry point — import it, add documents, query. No Docker required. Performance limits kick in above ~100K chunks.

Best for: Production self-hosting
Qdrant

Rust-based for raw performance, excellent Docker support, built-in filtering, and a clean REST/gRPC API. Handles millions of vectors without breaking a sweat. The community's go-to recommendation for serious self-hosted deployments.

Best for: Hybrid search
Weaviate

Combines semantic vector search with BM25 keyword search in a single query. GraphQL interface. Best when your use case benefits from both exact keyword matching and fuzzy semantic similarity — legal documents, code search, support tickets.

Best for: Embedded / no-server
FAISS

Meta's in-process similarity search library. No server to run — it lives inside your Python process. Maximum control, no overhead. The right choice when you are building a custom pipeline and do not need persistence or a query API.

For most personal and small-team use cases, the recommended path is: start with Chroma while learning, migrate to Qdrant once you need persistent storage, filtering, or more than a few tens of thousands of documents. Milvus (not listed above) is worth knowing about for enterprise-scale deployments requiring Kubernetes orchestration, but it is significantly more complex to operate.

Running a Local LLM with Ollama

Ollama has become the de facto standard for local LLM serving — and for good reason. It wraps llama.cpp's inference engine in a clean CLI and server, handles model downloads from a curated library, exposes an OpenAI-compatible REST API, and manages GPU acceleration automatically. Getting from zero to a running 8B model is genuinely under fifteen minutes on a supported system.

The local LLM ecosystem has converged around a few good tools, each with a different strength:

Ollama — Install with one command, pull models with ollama run llama3.1, and get an OpenAI-compatible API on localhost:11434. Supports NVIDIA, AMD, and Apple Silicon automatically. Best overall choice for 90% of users.
Open WebUI — A full ChatGPT-style browser interface that sits on top of Ollama. Model switching, chat history, document upload for basic RAG, multi-user support. Runs in Docker and connects to your existing Ollama installation in minutes. The fastest path to a usable chat interface.
LM Studio — Desktop GUI application with a built-in model browser (downloads directly from Hugging Face). Best experience for non-technical users who want point-and-click model management. Windows and Mac; limited Linux support.
llama.cpp — The underlying inference engine behind Ollama. Direct CLI access, maximum configuration control, compile-time optimizations for your hardware. Best for advanced users who want to tune every parameter or build custom integrations without the Ollama abstraction layer.
AnythingLLM — An all-in-one desktop app that bundles LLM chat, RAG, vector storage (using built-in Chroma or external databases), document management, and workspace organization. The best "everything in one window" option for non-developers who want a complete local AI without writing any code.

Wiring It All Together: Self-Hosted RAG

RAG (Retrieval-Augmented Generation) is the pipeline that transforms your local LLM from a general-knowledge chatbot into a system that can answer questions grounded in your private documents. The flow has four stages: ingest your documents by splitting them into chunks; convert each chunk into an embedding (a numerical vector) using an embedding model; store those vectors in your vector database; and at query time, embed the user's question, retrieve the top-K most similar chunks from the database, and inject those chunks into the LLM prompt before it generates a response. For a detailed explanation of why chunking matters at each stage, see our article on AI chunks.

The fastest paths to a working RAG setup are Open WebUI (which has native document upload and retrieval built in, backed by Ollama and a local Chroma store) and AnythingLLM (which handles the entire pipeline through a desktop GUI). For developers who want more control, LangChain or LlamaIndex paired with Qdrant and a local embedding model (such as nomic-embed-text or mxbai-embed-large, both available via Ollama) is the standard production-oriented approach. The key choices are your embedding model, your chunk size (512–1024 tokens is the typical starting range), and your retrieval strategy (naive top-K similarity, hybrid BM25+semantic, or reranking).

RAG in Plain Language

Without RAG, asking your local LLM about your company's internal docs is like asking a smart stranger about files they've never seen. With RAG, you hand them the most relevant pages first — then ask the question. The quality of your answer depends on whether you handed them the right pages.

Should You Use a Dedicated PC?

Running your AI stack on your main computer works fine while you are learning, but it creates real friction in daily use. Every inference job competes with your browser, editor, and other applications for GPU memory. If your stack is always-on (a RAG server your team can query, for example), that means your primary workstation needs to stay on and undisturbed. Many people hit this friction wall within a few weeks and start thinking about a dedicated machine.

Running on Your Main PC

No extra upfront cost. If you already have a capable GPU, you can start immediately. Good for experimentation and learning the stack.

Shared resources. Gaming or video work while a 70B model is loaded will cause VRAM conflicts. You will be force-quitting one or the other constantly.

No always-on availability. If your machine sleeps, your AI goes offline. Fine for personal use; a problem for team setups.

Dedicated AI Server / Second PC

Always-on access. A dedicated machine can run your Ollama server, Qdrant, and Open WebUI as background services without competing with your workflow.

Additional upfront cost. A used workstation with an RTX 3090 and 32 GB RAM will run $1,000–1,800 all-in. Factor in a UPS, case, and additional storage.

Ongoing power cost. A dedicated AI server draws 200–500 W under load. Running 24/7 adds $15–45/month to your electricity bill depending on usage patterns.

A practical middle path is a used workstation-class machine — a Dell Precision, HP Z-series, or similar — with a transplanted RTX 3090. These chassis are designed to run 24/7, have better airflow than consumer towers, and often come with server-grade components for under $400 before the GPU. Add a $700 used RTX 3090, 32 GB of ECC RAM, and a 2 TB NVMe, and you have a capable, always-on AI server for around $1,200–1,400 total.

Hosted Ollama: Let Someone Else Run the Hardware

Not everyone wants to manage physical hardware — the noise, the power draw, the maintenance, the upfront cost. Several cloud providers let you run Ollama (or an equivalent inference stack) on rented GPUs, paying only for what you use. This is often the smarter choice for workloads that are bursty rather than constant, for teams evaluating before committing to hardware, or for anyone who wants 70B-class inference without buying two RTX 3090s.

Provider
GPU Options & Notes
Pricing
Free Tier
RunPod
RTX 3080 to A100 80 GB. Community and Secure cloud tiers. Ollama templates available — deploy in one click.
$0.12–$2.39/hr
No
Vast.ai
Marketplace of community-listed GPUs. Widest range of hardware including consumer RTX cards. Prices fluctuate with supply.
$0.05–$2.50+/hr
No
Lightning.ai
Cloud IDE with GPU. Jupyter + terminal environment. T4, A10G, A100 options. Good developer ergonomics with built-in Ollama support.
$0.59–$2.50/hr
Yes (limited)
Modal
Serverless GPU compute. Pay per second, no idle costs. T4, A10G, A100. Best for bursty workloads — you only pay when inference is running.
~$0.036–$3.00/hr*
Yes ($30 credit)
Beam.cloud
Similar to Modal — Python-native serverless GPU. T4, A10G. Developer-friendly API for wrapping Ollama in a callable endpoint.
~$0.036–$1.20/hr*
Yes (credits)
Google Colab
T4 GPU (free tier, throttled and session-limited). Pro plan prioritizes access. Can run Ollama via tunnel. Best for experimentation, not production.
$10–$50/mo
Yes (slow)
Railway
CPU/RAM-based container hosting. Can run smaller quantized models or serve as an API gateway in front of a local Ollama instance. Resource-limited but easy to deploy.
From $5/mo
Yes (limited)

* Serverless pricing quoted as equivalent hourly rate; actual billing is per-second.

For most people getting started, RunPod is the recommended hosted path. The Ollama community templates reduce setup to selecting a GPU, clicking deploy, and SSHing into a running server. The community cloud tier (shared hardware) starts at $0.12/hr for an RTX 3080 — that is under $1.00 to run a full experiment. Vast.ai is worth checking when RunPod is out of stock on a particular GPU tier, as its marketplace pricing can be notably lower during off-peak periods.

The Risks Nobody Talks About

The tutorials make this look easy. Here is what they skip.

Power costs are real and recurring. An RTX 4090 under sustained inference load draws roughly 380–420 W. Running 24/7 at the US average electricity rate of $0.12/kWh means approximately $33–37 per month — just for the GPU, before the rest of the system. A dual-GPU setup doubles that. Run the math against what you would pay for API access before committing to always-on hardware.
Used GPUs can and do fail. The community gravitates toward used RTX 3090s for their VRAM-to-dollar ratio, but these are pre-owned mining or gaming cards with unknown usage histories. No warranty, no recourse. Buy from reputable sellers, test immediately, and consider whether you want a backup plan before building a production workflow on top of one card.
Exposing Ollama to the internet is a security risk. By default, Ollama binds to localhost:11434 with no authentication. If you forward that port externally — to access your model from another device, or to serve a team — anyone who discovers it can use your inference compute freely. Put Nginx or Caddy in front with authentication, or use a VPN. Never expose the raw Ollama port to the public internet.
You are responsible for your own updates. Cloud AI providers handle model updates, security patches, and infrastructure maintenance automatically. Self-hosting transfers that responsibility entirely to you. The model you set up today will not automatically improve; newer, safer, more capable versions require manual updates. If a model has a known vulnerability, you will not be notified unless you are actively following the community.
The break-even calculation is not always favorable. An RTX 3090 at $750 for a dedicated self-hosted setup means you need to generate significant inference volume to beat API pricing. At Anthropic's Claude Haiku pricing of roughly $0.00025 per 1,000 tokens, you would need to generate over three billion tokens just to break even on the GPU — before power, hardware, and time costs. Self-hosting wins on privacy, customization, and unlimited inference for heavy use cases. It rarely wins purely on economics for low-volume personal use.
Heat, noise, and physical security matter. Gaming GPUs under sustained load generate substantial heat and noise. An RTX 4090 in a poorly ventilated space is a thermal problem that will eventually become a hardware problem. And all your private model weights, vector embeddings, and document data live on physical hardware — physical access to your machine is access to your data. If you are building a personal AI for sensitive information, treat hardware physical security the same way you would treat a filing cabinet of private documents.
Linux proficiency is often required for serious builds. Ollama works on Windows and Mac, and basic setups run fine. But multi-GPU tensor splitting, CUDA driver management, Docker networking for Qdrant and Open WebUI, and production service management (systemd, reverse proxies, log rotation) all assume Linux comfort. Windows works for getting started; Linux is where production self-hosting lives.
Conclusion
Start Small, Build to What You Actually Need

Self-hosted AI is not for everyone — but for the right use case, it is transformative. If you need absolute data privacy, want unlimited inference without per-token costs, or are building workflows that depend on custom knowledge bases, owning your stack gives you capabilities and control that no SaaS product can match.

The recommended starting point for most people is: Ollama on your existing hardware, nomic-embed-text as your embedding model, Chroma as your initial vector store, and Open WebUI as your chat interface. Get that running with one or two of your own documents first. Understand what chunking strategy works for your content. Feel the latency of your current GPU. Then decide whether to invest in dedicated hardware, upgrade VRAM, or move part of the stack to a hosted provider.

The worst approach is to spend $1,500 on an RTX 3090 build before you have run your first query. Start cheap, start now, and let your actual use case tell you where the bottlenecks are.

S
Sheldon Valentine
Founder · Dear Tech

Sheldon writes about AI infrastructure, developer tools, and the practical reality of building with AI systems. Dear Tech covers the technology powering modern AI — without the hype.

Back to Blog