bug: candle-deepseek-ocr returns a quarter of the page text, invents a table on a signature block, and has no default model id
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
- Stage the DeepSeek-OCR weights and run
candle-deepseek-ocron a 150 dpi PNG of a text page withbackend_options.model_pathset. - 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.
Source: xberg-io/xberg