[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2330":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},2330,"DeepSeek-OCR","deepseek-ai\u002FDeepSeek-OCR","deepseek-ai","Contexts Optical Compression",null,"Python",23273,2153,107,248,0,3,36,175,22,104,"MIT License",false,"main",[],"2026-06-12 04:00:14","\u003C!-- markdownlint-disable first-line-h1 -->\n\u003C!-- markdownlint-disable html -->\n\u003C!-- markdownlint-disable no-duplicate-header -->\n\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Flogo.svg\" width=\"60%\" alt=\"DeepSeek AI\" \u002F>\n\u003C\u002Fdiv>\n\n\n\u003Chr>\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.deepseek.com\u002F\" target=\"_blank\">\n    \u003Cimg alt=\"Homepage\" src=\"assets\u002Fbadge.svg\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdeepseek-ai\u002FDeepSeek-OCR\" target=\"_blank\">\n    \u003Cimg alt=\"Hugging Face\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A4%97%20Hugging%20Face-DeepSeek%20AI-ffc107?color=ffc107&logoColor=white\" \u002F>\n  \u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FTc7c45Zzu5\" target=\"_blank\">\n    \u003Cimg alt=\"Discord\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-DeepSeek%20AI-7289da?logo=discord&logoColor=white&color=7289da\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fdeepseek_ai\" target=\"_blank\">\n    \u003Cimg alt=\"Twitter Follow\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTwitter-deepseek_ai-white?logo=x&logoColor=white\" \u002F>\n  \u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdeepseek-ai\u002FDeepSeek-OCR\">\u003Cb>📥 Model Download\u003C\u002Fb>\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-OCR\u002Fblob\u002Fmain\u002FDeepSeek_OCR_paper.pdf\">\u003Cb>📄 Paper Link\u003C\u002Fb>\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2510.18234\">\u003Cb>📄 Arxiv Paper Link\u003C\u002Fb>\u003C\u002Fa> |\n\u003C\u002Fp>\n\n\u003Ch2>\n\u003Cp align=\"center\">\n  \u003Ca href=\"\">DeepSeek-OCR: Contexts Optical Compression\u003C\u002Fa>\n\u003C\u002Fp>\n\u003C\u002Fh2>\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"assets\u002Ffig1.png\" style=\"width: 1000px\" align=center>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n\u003Ca href=\"\">Explore the boundaries of visual-text compression.\u003C\u002Fa>       \n\u003C\u002Fp>\n\n## Release\n- [2026\u002F01\u002F27]🚀🚀🚀🚀🚀🚀 We present [DeepSeek-OCR2](https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-OCR-2)\n- [2025\u002F10\u002F23]🚀🚀🚀 DeepSeek-OCR is now officially supported in upstream [vLLM](https:\u002F\u002Fdocs.vllm.ai\u002Fprojects\u002Frecipes\u002Fen\u002Flatest\u002FDeepSeek\u002FDeepSeek-OCR.html#installing-vllm). Thanks to the [vLLM](https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm) team for their help.\n- [2025\u002F10\u002F20]🚀🚀🚀 We release DeepSeek-OCR, a model to investigate the role of vision encoders from an LLM-centric viewpoint.\n\n## Contents\n- [Install](#install)\n- [vLLM Inference](#vllm-inference)\n- [Transformers Inference](#transformers-inference)\n  \n\n\n\n\n## Install\n>Our environment is cuda11.8+torch2.6.0.\n1. Clone this repository and navigate to the DeepSeek-OCR folder\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdeepseek-ai\u002FDeepSeek-OCR.git\n```\n2. Conda\n```Shell\nconda create -n deepseek-ocr python=3.12.9 -y\nconda activate deepseek-ocr\n```\n3. Packages\n\n- download the vllm-0.8.5 [whl](https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm\u002Freleases\u002Ftag\u002Fv0.8.5) \n```Shell\npip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\npip install vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl\npip install -r requirements.txt\npip install flash-attn==2.7.3 --no-build-isolation\n```\n**Note:** if you want vLLM and transformers codes to run in the same environment, you don't need to worry about this installation error like: vllm 0.8.5+cu118 requires transformers>=4.51.1\n\n## vLLM-Inference\n- VLLM:\n>**Note:** change the INPUT_PATH\u002FOUTPUT_PATH and other settings in the DeepSeek-OCR-master\u002FDeepSeek-OCR-vllm\u002Fconfig.py\n```Shell\ncd DeepSeek-OCR-master\u002FDeepSeek-OCR-vllm\n```\n1. image: streaming output\n```Shell\npython run_dpsk_ocr_image.py\n```\n2. pdf: concurrency ~2500tokens\u002Fs(an A100-40G)\n```Shell\npython run_dpsk_ocr_pdf.py\n```\n3. batch eval for benchmarks\n```Shell\npython run_dpsk_ocr_eval_batch.py\n```\n\n**[2025\u002F10\u002F23] The version of upstream [vLLM](https:\u002F\u002Fdocs.vllm.ai\u002Fprojects\u002Frecipes\u002Fen\u002Flatest\u002FDeepSeek\u002FDeepSeek-OCR.html#installing-vllm):**\n\n```shell\nuv venv\nsource .venv\u002Fbin\u002Factivate\n# Until v0.11.1 release, you need to install vLLM from nightly build\nuv pip install -U vllm --pre --extra-index-url https:\u002F\u002Fwheels.vllm.ai\u002Fnightly\n```\n\n```python\nfrom vllm import LLM, SamplingParams\nfrom vllm.model_executor.models.deepseek_ocr import NGramPerReqLogitsProcessor\nfrom PIL import Image\n\n# Create model instance\nllm = LLM(\n    model=\"deepseek-ai\u002FDeepSeek-OCR\",\n    enable_prefix_caching=False,\n    mm_processor_cache_gb=0,\n    logits_processors=[NGramPerReqLogitsProcessor]\n)\n\n# Prepare batched input with your image file\nimage_1 = Image.open(\"path\u002Fto\u002Fyour\u002Fimage_1.png\").convert(\"RGB\")\nimage_2 = Image.open(\"path\u002Fto\u002Fyour\u002Fimage_2.png\").convert(\"RGB\")\nprompt = \"\u003Cimage>\\nFree OCR.\"\n\nmodel_input = [\n    {\n        \"prompt\": prompt,\n        \"multi_modal_data\": {\"image\": image_1}\n    },\n    {\n        \"prompt\": prompt,\n        \"multi_modal_data\": {\"image\": image_2}\n    }\n]\n\nsampling_param = SamplingParams(\n            temperature=0.0,\n            max_tokens=8192,\n            # ngram logit processor args\n            extra_args=dict(\n                ngram_size=30,\n                window_size=90,\n                whitelist_token_ids={128821, 128822},  # whitelist: \u003Ctd>, \u003C\u002Ftd>\n            ),\n            skip_special_tokens=False,\n        )\n# Generate output\nmodel_outputs = llm.generate(model_input, sampling_param)\n\n# Print output\nfor output in model_outputs:\n    print(output.outputs[0].text)\n```\n## Transformers-Inference\n- Transformers\n```python\nfrom transformers import AutoModel, AutoTokenizer\nimport torch\nimport os\nos.environ[\"CUDA_VISIBLE_DEVICES\"] = '0'\nmodel_name = 'deepseek-ai\u002FDeepSeek-OCR'\n\ntokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)\nmodel = AutoModel.from_pretrained(model_name, _attn_implementation='flash_attention_2', trust_remote_code=True, use_safetensors=True)\nmodel = model.eval().cuda().to(torch.bfloat16)\n\n# prompt = \"\u003Cimage>\\nFree OCR. \"\nprompt = \"\u003Cimage>\\n\u003C|grounding|>Convert the document to markdown. \"\nimage_file = 'your_image.jpg'\noutput_path = 'your\u002Foutput\u002Fdir'\n\nres = model.infer(tokenizer, prompt=prompt, image_file=image_file, output_path = output_path, base_size = 1024, image_size = 640, crop_mode=True, save_results = True, test_compress = True)\n```\nor you can\n```Shell\ncd DeepSeek-OCR-master\u002FDeepSeek-OCR-hf\npython run_dpsk_ocr.py\n```\n## Support-Modes\nThe current open-source model supports the following modes:\n- Native resolution:\n  - Tiny: 512×512 （64 vision tokens）✅\n  - Small: 640×640 （100 vision tokens）✅\n  - Base: 1024×1024 （256 vision tokens）✅\n  - Large: 1280×1280 （400 vision tokens）✅\n- Dynamic resolution\n  - Gundam: n×640×640 + 1×1024×1024 ✅\n\n## Prompts examples\n```python\n# document: \u003Cimage>\\n\u003C|grounding|>Convert the document to markdown.\n# other image: \u003Cimage>\\n\u003C|grounding|>OCR this image.\n# without layouts: \u003Cimage>\\nFree OCR.\n# figures in document: \u003Cimage>\\nParse the figure.\n# general: \u003Cimage>\\nDescribe this image in detail.\n# rec: \u003Cimage>\\nLocate \u003C|ref|>xxxx\u003C|\u002Fref|> in the image.\n# '先天下之忧而忧'\n```\n\n\n## Visualizations\n\u003Ctable>\n\u003Ctr>\n\u003Ctd>\u003Cimg src=\"assets\u002Fshow1.jpg\" style=\"width: 500px\">\u003C\u002Ftd>\n\u003Ctd>\u003Cimg src=\"assets\u002Fshow2.jpg\" style=\"width: 500px\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cimg src=\"assets\u002Fshow3.jpg\" style=\"width: 500px\">\u003C\u002Ftd>\n\u003Ctd>\u003Cimg src=\"assets\u002Fshow4.jpg\" style=\"width: 500px\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n## Acknowledgement\n\nWe would like to thank [Vary](https:\u002F\u002Fgithub.com\u002FUcas-HaoranWei\u002FVary\u002F), [GOT-OCR2.0](https:\u002F\u002Fgithub.com\u002FUcas-HaoranWei\u002FGOT-OCR2.0\u002F), [MinerU](https:\u002F\u002Fgithub.com\u002Fopendatalab\u002FMinerU), [PaddleOCR](https:\u002F\u002Fgithub.com\u002FPaddlePaddle\u002FPaddleOCR), [OneChart](https:\u002F\u002Fgithub.com\u002FLingyvKong\u002FOneChart), [Slow Perception](https:\u002F\u002Fgithub.com\u002FUcas-HaoranWei\u002FSlow-Perception) for their valuable models and ideas.\n\nWe also appreciate the benchmarks: [Fox](https:\u002F\u002Fgithub.com\u002Fucaslcl\u002FFox), [OminiDocBench](https:\u002F\u002Fgithub.com\u002Fopendatalab\u002FOmniDocBench).\n\n## Citation\n\n```bibtex\n@article{wei2025deepseek,\n  title={DeepSeek-OCR: Contexts Optical Compression},\n  author={Wei, Haoran and Sun, Yaofeng and Li, Yukun},\n  journal={arXiv preprint arXiv:2510.18234},\n  year={2025}\n}\n","DeepSeek-OCR 是一个用于上下文光学压缩的项目。它通过先进的视觉编码器从大型语言模型的角度探索图像与文本之间的关系，支持高效地将图像信息转换为紧凑的文本表示。该项目使用 Python 编写，并基于 Hugging Face 平台发布其模型，采用 MIT 许可证开源。适用于需要对图像中的文字进行识别并压缩存储或传输的场景，如文档数字化、自动表单处理等。",2,"2026-06-11 02:49:32","top_language"]