Cited, not measured on the local desktop

Local RAG on Radeon

Local RAG means you chunk your files, embed the chunks, retrieve the ones that match a question, and ask a local LLM to answer from that context — no hosted API. On AMDai the first embed path is llama.cpp with a dedicated embedding GGUF and --embeddings. The chat sidecar stays the measured llama.cpp Vulkan daily driver. Speeds and retrieval quality stay not yet measured by AMDai.

How we test — Measured cells cite official amdai-bench/run@1 cards. Estimates stay labeled. Q3 is estimate-only. Q1/Q2 stay off.

What local RAG is

Chunk, embed, retrieve, answer. The embedding model is a small GGUF. Context is the retrieved window plus the question. LLM weights are the chat sidecar — that is where VRAM and system RAM move. Official nomic Q6_K is 108 MiB and F16 is 262 MiB; official UD-Q5_K_XL 35B on one R9700 is the measured daily driver. Adding those two on one card is an estimate until a first-party card lands. Empty cells stay not measured yet.

nomic-embed fit bands

Official nomic-embed-text-v1.5 GGUF sizes. House comparison is Q6_K / Q5_K_M / Q4_K_M. Q3_K_M is a labeled estimate — not a local desktop run. Runtime VRAM stays not measured yet. We do not invent a disk size.

Official nomic-embed-text-v1.5 GGUF sizes. Q3 is a labeled estimate. Speed is not measured.
Quant Kind Official size Standalone 8 GB+ Next to a 35B sidecar Speed
Q6_K cited 108 MiB Estimate: official file 108 MiB — under an 8 GB sticker as a dedicated embed server. Runtime VRAM is not measured. Next to a house 35B sidecar the LLM is the limiter, not this file. not yet measured by AMDai
Q5_K_M cited 95 MiB Estimate: official file 95 MiB — under an 8 GB sticker as a dedicated embed server. Runtime VRAM is not measured. Next to a house 35B sidecar the LLM is the limiter, not this file. not yet measured by AMDai
Q4_K_M cited 81 MiB Estimate: official file 81 MiB — under an 8 GB sticker as a dedicated embed server. Runtime VRAM is not measured. Next to a house 35B sidecar the LLM is the limiter, not this file. not yet measured by AMDai
Q3_K_M Q3 estimate 65 MiB Official listing 65 MiB. Labeled estimate — not a local desktop run. Runtime VRAM is not measured. Same sidecar rule: the LLM is the limiter. Q3 stays a labeled estimate. not yet measured by AMDai

Also cited, not in the Q6/Q5/Q4 set: Q8_0 140 MiB, F16 262 MiB, BGE small 33.4M params, BGE base 0.1B params. File listings without a published GGUF size stay not measured yet.

Cited embedding files including larger nomic listings and BGE param counts.
File Official size Note
nomic-embed-text-v1.5 Q6_K cited 108 MiB Official nomic-embed-text-v1.5 GGUF table. House Q6 step on the comparison.
nomic-embed-text-v1.5 Q5_K_M cited 95 MiB Official nomic-embed-text-v1.5 GGUF table.
nomic-embed-text-v1.5 Q4_K_M cited 81 MiB Official nomic-embed-text-v1.5 GGUF table.
nomic-embed-text-v1.5 Q3_K_M estimate 65 MiB Official listing. Labeled estimate — not a local desktop run. Q1 and Q2 stay off.
nomic-embed-text-v1.5 Q8_0 cited 140 MiB Official nomic-embed-text-v1.5 GGUF table. Larger cited file, not the Q6/Q5/Q4 comparison set.
nomic-embed-text-v1.5 F16 cited 262 MiB Official nomic-embed-text-v1.5 GGUF table. Largest listed nomic file we cite.
bge-small-en-v1.5 cited 33.4M params Official BAAI model card. GGUF disk size is not copied here — we do not invent a file listing.
bge-base-en-v1.5 cited 0.1B params Official BAAI model card. Medium-class embed. GGUF disk size is not copied here.

Pick by VRAM — embed plus the chat sidecar

Every row is a labeled estimate. Pick the nomic file from official sizes. The embed GGUF is small; the chat sidecar is the VRAM question. Speed stays not yet measured by AMDai.

Pick a cited nomic-embed file by discrete VRAM class. Speed is not measured.
VRAM Pick Fit Speed
32 GB discrete Q6_K (108 MiB official). Q8_0 (140 MiB) and F16 (262 MiB) stay cited larger files. Estimate for the pair. The measured house 35B daily driver already sits on one R9700. Official nomic Q6_K is 108 MiB — the embed file is not the limiter. We have not measured embed-plus-LLM VRAM on the local desktop. Size the chat sidecar on the calculator. not yet measured by AMDai
16 GB discrete Q6_K or Q5_K_M (108 / 95 MiB official). Estimate. Official nomic Q6_K is 108 MiB. A house 35B Q4–Q6 file does not sit in 16 GB on the calculator at long context — the LLM sidecar is the fit question, not the embed GGUF. Q3 chat sidecar is a labeled estimate. When that sidecar offloads, read Minimum system RAM needed and RAM needed at full context on the calculator. not yet measured by AMDai
12 GB discrete Q5_K_M or Q4_K_M (95 / 81 MiB official). Estimate. Official nomic Q5_K_M is 95 MiB. Do not stack a house 35B Q4–Q6 file on the same 12 GB sticker without the calculator. Keep the LLM on DDR5 offload if needed, and read Minimum system RAM needed and RAM needed at full context. Q3 chat sidecar is a labeled estimate. not yet measured by AMDai
8 GB discrete Q4_K_M (81 MiB official). Q3_K_M (65 MiB) is a labeled estimate. Estimate. Official nomic Q4_K_M is 81 MiB — under 8 GB on paper. The chat sidecar will not be a house 35B Q4–Q6 in VRAM. Size a smaller listed LLM, or offload and read Minimum system RAM needed and RAM needed at full context. This is not the 16 GB RX 7600 XT. not yet measured by AMDai

When the chat sidecar offloads, shopper RAM lines stay the same two labels — labeled estimate until a first-party RAG card exists. Size the LLM on the calculator.

Minimum system RAM needed

Estimate

Chat sidecar · size on the calculator

RAM needed at full context

Estimate

Chat sidecar · size on the calculator

Linux path — index a folder, ask a question

  • Ubuntu 24.04+ first

    Bare-metal Ubuntu 24.04+ is the AMDai measured path for the daily-driver LLM. RAG follows that OS even though we have no first-party retrieval card. See the GPU in rocminfo before you pick a HIP gfx pin. Windows is a cited second path, not the first try.

  • Serve a dedicated embedding GGUF with llama.cpp

    The llama.cpp server README documents --embeddings (also --embedding): restrict the process to embedding use, and use it only with a dedicated embedding model. The OpenAI-shaped route is POST /v1/embeddings. That is a second llama-server, not the chat /v1 on :8080. Vulkan is the consumer default, same as the daily driver. House comparison is nomic-embed-text-v1.5 Q6_K (108 MiB official), Q5_K_M (95 MiB), and Q4_K_M (81 MiB). Q3_K_M (65 MiB) is a labeled estimate. Q8_0 (140 MiB) and F16 (262 MiB) stay cited larger files. The nomic card requires a task prefix such as search_query: on questions.

  • Index a folder of docs

    Chunk the files, POST each chunk to /v1/embeddings, store the vectors next to the text. That loop is the index. We do not rank a vector store or a Python library — pick one you already run, or use a harness that already does docs-plus-chat. Keep the index on fast local disk. A huge corpus on a slow USB stick will stall before VRAM does. Retrieval quality stays not yet measured by AMDai.

  • Ask a question against the daily-driver LLM

    Embed the question the same way you embedded the chunks. Retrieve the nearest chunks. Send those chunks plus the question to the measured llama.cpp Vulkan chat server — house daily driver is Qwen3.6-35B-A3B, -c 262144, f16 KV. Size -c for the retrieved window; a stuffed prompt can OOM the same way a long chat does. Long RAG prompts are prefill-bound — see /prefill for cited -b / -ub. Do not invent a recall score. The long-context gate means the stated window ran, not that the model found a fact in the middle.

  • HIP only when rocminfo lists the gfx

    ROCm/HIP is the second llama.cpp compile when you need it. Pin -DAMDGPU_TARGETS to the string rocminfo prints. Do not mix a gfx110x pin onto a gfx1201 card. Vulkan stays the consumer default for both the embed server and the chat sidecar.

Windows — cited pointer

  • Windows follows /setup/windows

    llama.cpp Vulkan is the honest Windows path AMDai already documents for tokens. The same Vulkan build can serve --embeddings. HIP/ROCm userspace stays a Linux product. Cited, not measured on the local desktop. Ubuntu 24.04+ on bare metal remains the measured default. We do not invent a Windows retrieval score.

Next to the daily driver

RAG sits beside the measured llama.cpp Vulkan daily driver, not instead of it. The embed server is a second process (--embeddings). Speech and image gen are different jobs: whisper.cpp / Piper, and ComfyUI HIP/ROCm PyTorch. Harnesses that already say docs-plus-chat on this site are AnythingLLM and Open WebUI — that is a catalog note, not a ranking. There is no house Stack Lab recipe for RAG. Minimum system RAM needed and RAM needed at full context stay the shopper RAM lines when the chat sidecar offloads. A 64 GB kit estimate is the consumer shopper default — labeled estimate, not a measured RAG peak. We have not measured embed-plus-LLM on the local desktop.

Harnesses Stack Lab

When it breaks

  • OOM while embedding or next to the chat sidecar

    Official nomic Q6_K is 108 MiB and F16 is 262 MiB. That can still starve a card that already holds a 35B GGUF if you load both into the same VRAM pool. Size the LLM on the calculator first. Run the embed server as its own process. When the sidecar offloads, shopper lines stay Minimum system RAM needed and RAM needed at full context. A second card is a /multi-gpu question — we have not measured RAG-plus-LLM on the local desktop.

  • Huge corpus on a slow disk

    The index is files plus vectors. A large folder on a spinning drive or a USB stick stalls before the GPU does. Keep the corpus and the vector store on fast local NVMe. We do not invent an embeddings-per-second number for a slow disk.

  • Wrong context window on the chat sidecar

    Retrieved chunks plus the question consume the same -c budget as a long chat. If you stuff more tokens than the server window, you OOM or the model drops the start. Size -c on the calculator. House daily driver is 262144. Read Long context before you paste a whole book into one prompt.

FAQ

  • What is local RAG on a Radeon?

    Chunk your files, embed the chunks with a dedicated llama.cpp embedding GGUF, retrieve the nearest ones, and ask the local LLM to answer from that context. The embed server uses --embeddings and /v1/embeddings. The chat sidecar stays llama.cpp Vulkan. Speeds and retrieval quality are not yet measured by AMDai.

  • Which embedding file should I start with?

    Cite the nomic-embed-text-v1.5 GGUF table: Q6_K is 108 MiB, Q5_K_M is 95 MiB, Q4_K_M is 81 MiB. Q3_K_M (65 MiB) is a labeled estimate — not a local desktop run. Q8_0 (140 MiB) and F16 (262 MiB) stay cited larger files. BGE small is 33.4M params and BGE base is 0.1B params on the official cards — we do not invent those GGUF disk sizes. Q1 and Q2 stay off.

  • Is there an Open in Stack Lab recipe for RAG?

    No. There is no house Stack Lab recipe id for local RAG. Do not invent one. The gap is listed on /wanted. Use /stack-lab for the measured daily-driver and Flash recipes only.

Sources

Next steps

Real pages on this site. We do not invent a next click.

Last updated

esc

Type to filter. Enter opens the first match. Full-text search lives on /search.