#1674·xberg

bug: candle-deepseek-ocr returns a quarter of the page text, invents a table on a signature block, and has no default model id

Author: tobocop2Created Sep 18, 2026Updated Sep 19, 2026
LabelsbugP1

Description

candle-deepseek-ocr returns 15 to 25 percent of the text on a page and invents a table on a signature block. On three 150 dpi page images, it returned 378, 656 and 650 characters where tesseract returned 2,140, 2,441 and 2,746 on the same images, and on a page with signatures it emitted an HTML table of repeated digits that is not on the page. GPU utilization stayed at 22 to 30 percent, so the model was not compute-bound.

The backend also has no default model id: the weights had to be staged by hand and passed through backend_options.model_path. The Hugging Face repository ships model-00001-of-000001.safetensors plus an index file, not model.safetensors.

Expected: output on a par with the other candle backends, and either a default model id or a documented staging step.

Steps to reproduce

  1. Stage the DeepSeek-OCR weights and run candle-deepseek-ocr on a 150 dpi PNG of a text page with backend_options.model_path set.
  2. Compare the character count and content with tesseract on the same image.

Relevant files and configuration

xberg v1.2.4, release build with candle-cuda, NVIDIA L4, 2026-09-18. 16.5 GB of GPU memory in use during the run.