Before you swap the model, audit your chunking. It is the most common cause of bad PDF answers.
Chunking decides what your retriever can ever return. Naive splitting cuts tables in half and separates headings from their content, so the model answers from a fragment that lost its context.
A naive splitter looks innocent and ruins retrieval:
# fragile: ignores structure, splits mid-table
chunks = [text[i:i+1000] for i in range(0, len(text), 1000)]
Better chunking respects structure: keep headings with sections, preserve tables, hold related content together so each chunk stands on its own. Real PDFs (multi-column, scanned, footnoted) make this harder, which is exactly why it matters.
CustomGPT.ai handles document chunking automatically, preserving structure so accuracy holds across long, messy PDFs.
Most "the model is wrong" bugs are actually "the chunks were wrong" bugs.
Strategies: https://customgpt.ai/chunking-strategies-for-pdf-documents-in-rag-systems/
Top comments (0)