
DeepSeek-OCRă芌ă
DeepSeek-OCRăăćŽéăŽOCRă¨ăŻăĄăăŁă¨éăćčă§čŠąéĄăŤăŞăŁăŚăăăŽă§č§ŚăŁăŚăżăă
ăăăŽăă˝ăŻăĺăŤOCR(ĺ ĺŚćĺčŞč)ăă§ăăăă¨ă§ăŻăŞăăĺ ĺŚç(čŚčŚç)ăŤćçŤ ăçč§Łăăăă¨ă§ăăéˇăćčăŤĺŻžĺżă§ăăă¨ä¸ťĺźľăăăŚăăă¨ăăă
ăŞăŽă§ăăăă¨éˇăćçŤ ăçťĺăŤăăŚčŞăżĺăăă芌ăăŚăżăă¨ăăćĺ°ćŞăŞăă¨ăăăŞăă¨ăăŽă˘ăăŤăŽç䞥ăŻĺăăăŞăă
äťĺăŻKaraageăăăŽč¨äşăĺčăŤuvăŤăăŚčŠŚăăŚăżăă
使ç¨ăăăŽăŻDGX Sparkă§ăŻăŞăćŽéăŽA100ă§čŠŚăăăăăăŞăŤVRAM使ăăŞăă¨ćăăăŠă
$ git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
$ cd DeepSeek-OCR
$ uv venv -p=3.12.9
$ uv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118
$ wget https://github.com/vllm-project/vllm/releases/download/v0.8.5/vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl
$ uv pip install vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl
$ uv pip install -r requirements.txt
$ uv pip install flash-attn==2.7.3 --no-build-isolationDeekSeek-OCRăŽĺ ŹĺźăŽăăĽăźăăŞă˘ăŤă§ăŻăwgetă§vllmăăăŚăłăăźăăăăă ăăççĽăăăŚăăăŽă§ćł¨ćăĺż čŚă
ăăăŠăŤăă§ăŻvLLM-Inferenceăć¨ĺĽ¨ăăăŚăăăăăľăłăăŤăăă°ăŠă ăč¤éăăăŚăăžă蜣ĺłăŤĺăăŞăăŁăăŽă§HuggingFaceçă§ăžă芌ăă
$ cd DeepSeek-OCR-master/DeepSeek-OCR-hf
$ python run_dpsk_ocr.py ă§ăĺăăŽă ăăŠćł¨ćăĺż
čŚă
ăžăăăăŽăľăłăăŤăłăźăăăăăăˇăłăăŤăăăŚăăĄă
ăăă¤ăŻăăăŠăŤăă§ăăăĄă¤ăŤĺăćąşăžăŁăŚăăăŽă§ăăžăčŞĺă§OCRăăă寞蹥ăçťĺăăĄă¤ăŤă§ä˝ăŁăŚăăŽăăŁăŹăŻăăŞăŤă˘ăăăăźăăăŚăăăăă芌ăăŞăă¨ăăăŞăă
8 # prompt = "<image>\nFree OCR. "
19 prompt = "<image>\n<|grounding|>Convert the document to markdown. "
20 image_file = 'paper.png' #ăăăčŞĺăŽăăĄă¤ăŤăŤĺ¤ăă
21 output_path = 'output' #ăăăŤĺşĺăăăăăŁăŹăŻăăŞĺăćĺŽăă
22run_dpsk_ocr.pyăĺ¤ć´ăăŚăăĺŽčĄăăă¨ăă¨ăăăăOCRăăăă
ĺčăžă§ăŤăćĺăŤăăŁăŚăżăĺ稿ăŻäťĽä¸ăŽăăăŞéˇăPNGăăĄă¤ăŤ

ăăăčŞăżĺăăăăŞăăžăăžăĺăăŽăăăăăŞăă
čŞăżĺăăăMarkdownăŻäťĽä¸
## ăŻăăăŤ
äťćĽăŻçăăăŤăĺăăĄăäťăžăăŤĺé˛ăăŚăăăăăăŚĺăăĄăăăăăä˝ăä¸ăăŚăăćŞćĽăŤă¤ăăŚăĺ°ăă ă芹ă芹ăăăăă¨ćăăžăă
ăăźăăŻăçĽč˝ă¨çĺ˝ ăĄăăŁă˘ă¨ćŞćĽăăăŞăă ăéŁăăăăŤčăăăăăăăăŞăăăŠăĺżé
ăăŞăă§ăă ăăăăăăŻăĺăăĄăćŻćĽä˝żăŁăŚăăăšăăźăăăŠăłăă˛ăźă ăSNSăăăăŚĺăăĄčŞčşŤăŽă風誏ăă¨ăĺżăăŤćˇąăé˘
ăăăă¨ăŚăă¤ăă¤ăă¤ăŻă¤ăŻăŞé°ĺ˛ć°ăçăžăăă
äťăä¸ăŽä¸ăŻăAIăăă¤ăžă人塼çĽč˝ăŽčŠąéĄă§ćăĄăăă§ăăăžăă§éćłăŽăăăŤçľľăćăăăăäşşéă¨äźčŠąăăăăéŁăăăăă°ăŠă ăć¸ăăăăă
AIăŻçĽč˝ăŤčżăăä¸çăŽä¸ăćăăŚăăžăă
äşşéă¨é˘čŤćăŽăăă°ăŠă ăŻ19ä¸ç´ăŽĺĽłć§ă§ăăăă¨ă¤ăăťăŠăăŹăšă¨ă
ă貴ćăŽĺ弳ă§ăă厜ćăŽčŠąăĺăăăăŽä¸ăŤă
ăăăĺ
çăä¸çć¸ăă¨ăŞăăă¨ăăă§ăăžăăă§ăăă
ăăă彟弳ăŻĺśçśçĽăĺăŁăçşć厜ăŽăăźăăă¸ă
éçşăăăłăłăăĽăźăżăŽăăăŤăćĺăŽăăă¸ă§ăŻăăć¸ăăă¨ăŚăĺžćă ăŁăă¨äşăăă¤ăăžăăă
ă¨ă¤ăăŻăăłăłăăĽăźăżăŻćé ăă誏ćă§ăăă°ăŠăăŞč˝ĺăă§ăăăăă¨ăćĺăŤç¤şăăžăăăăăŽćăŻă100ĺš´ĺžăŤĺşçžăăăă¨ăŤ
ăŞăăžăă
ă¨ăăăăAIăŻçĽč˝ă¨çĽčăăăăćé ă誏ćăăăă¨ăŤăŞăăžăăăäşşăăăăćé ăŻčŞŹćă§ă
ăăăŽăŽăAIăĺŽéăŤăăŽä¸ă§ăŠăŽăăăŤĺ¤ćă
ăŚăăăă¨ăăăă¨ăŻăŻăŠăăŻăăăŻăšăŽăžăžă§ăăă¤ăžăăAIă¨ăłăłăăĽăź
ăżăŻăč¨čă§čĄ¨ăăŚăăăăă§ĺŽéăŤăŻçĽčé˘äżăŞăăŽăŞăŽă§ăă
ăăŽAIăŽçťĺ ´ăŤăăŁăŚăĺăăĄäşşéĄăŻăăăăžă§ĺ˝ăăĺă ă¨ćăŁăŚăă
ăçĽč˝ăă¨ăŻä˝ăăă¤ăžăă賢ăăăŁăŚăŠăăăăă¨ăŞăŽăăă¨ăăĺăăăăăä¸ĺşŚçľăżĺăčăĺ
ˇĺă ăăă°ăŞăăŞăă¨ăŞăăžăăă
ăăăžă§ă賢ăăă¨č¨ăă°ăăăšăă§čŻăçšăĺăăă¨ăăăăăăăŽçĽč
ăčŚăŚăăăă¨ă§ăăăă§ăăăăăŞăă¨ăŻăăAIăŽćšăĺžćă§ăăă ă
ăăăăăăăăŽć䝣ăäşşéăŤă¨ăŁăŚćŹĺ˝ăŤĺ¤§ĺăŞă賢ăăă¨ăŻä˝ăŞăŽă§ăă
ăăďź
ăăŽĺăăŤçăăăăăŤăŻăăçĽč˝ăă ăăčŚăŚăăŚăŻä¸ĺĺă§ăăĺăăĄ
ăŻăçĺ˝ăăăŽăăŽăŤă¤ăăŚăăăăŚäşşéăŽçĽč˝ă襨çžăăäźăăŚăăăăĄăăŁă˘ăăŽć´ĺ˛ăčăăăăăăć°ĺăčăăĺż
čŚăăăă
ăăŽčŹçžŠăçľăăé ăŤăŻăĺăăĄăäťĺŚăă§ăăăă¨ăŽćĺłăăăăăăăŠ
ăăŞćŞćĽăĺž
ăŁăŚăăăŽăăăăăŚăăŽćŞćĽăŽä¸ă§ĺăăĄăăŠăăŞăăźăăźă
ăăă¤ăˇăŤăŞăăăŽăăăăŽăăăăčŚă¤ăăŁăŚăăăŻăă§ăăăăăä¸çˇăŤ
ćŞćĽăĺľăăŤčĄăăžăăăă
## 珏1çŤ ďźçĺ˝ăŽăŠă¸ăŞă¨çĽč˝ăŽăŻăăžă
## ââĺăăŻăŞăăčăăŚăăăŽăă
## 人塼çĽč˝ă¨äşşĺˇĽçĺ˝
ăžăăĺăŽç 犜ĺéă§ăăă人塼çĽč˝ăă¨ăă
ăŽĺĺăŽĺ
ĺźăŽăăăŞă人塼çĺ˝ăăŽčŠąăăĺ§ă
ăžăăăă
ă人塼çĽč˝ďźAIďźăăŻăä¸č¨ă§č¨ăă°ăçĽč˝ă
ă°ăăăŽăćŠć˘°ă§ä˝ăăďźăă¨ăăç 犜ă§ăă
芹ăäşşéăŤĺă¤äşşăăĺăăĄăĺăăăă¨ăăă
ăăăăăŞăChatGPTă¨ăăăAIăŻéçŽ
ăăŁăä¸äşşďźä¸ä˝ďźďźă§é常ăŤéŁăăĺéĄăč§Łă
ă¨ăŞăźăă§ăă
ä¸ćšăă人塼çĺ˝ďźALifeďźăăŻăăçĺ˝ăŁă˝ăăăŽăćŠć˘°ă§ä˝ăăďźăă¨
ăăç 犜ă§ăăăăĄăăŻAIă¨éăŁăŚăăăăăăŽäşşĺˇĽçĺ˝ăăłăłăăĽăźăżăźăŽ
ä¸ăŤăŠăăăăă¨ăä˝ăĺşăăžăăćăŤăŻć°ä¸ć ŞăŤăăŞăăžăăăăăŚă彟ă
ăçžçśă§ăŠăćŻăčăăăăžăă§ç¤žäźçăŞăăăŤé˛ĺăăŚăăć§ĺă茳ĺŻăăă
ă§ăă
AIăä¸äşşăŽĺ¤Šćă˘ăšăŞăźăăŞăă人塼çĺ˝ăŻĺŚăłćăçŽćăéçé¨ĺ
¨ĺĄă
ă¨ăăŁăćăă§ăăăăăé˘ç˝ăăŽăŻăć°ăĺ˘ăăă¨ăä¸ä˝ä¸ä˝ăŻč§Ł
ăŤăźăŤă§ĺăăŚăăă ăăŞăŽăŤăĺ
¨ä˝ă¨ăăŚăŻäşć¸Źă§ăăŞăăăăŞč¤éăŞĺ
ăăă¤ăžăă礞äźć§ăăŽăăăŞăăŽăçăžăăŚăăăă¨ă§ăăăăăăĺľçşă
ă¨č¨ăăžăă
ăăŽäşă¤ăŽç 犜ăŻăĺăăĄăŤć šćşçăŞĺăăćăăăăžăăAIăç 犜ăăă°
ăăăťăŠăçĽč˝ă¨ăŻä˝ăďźăă¨ăăć§ăŤăśă¤ăăă人塼çĺ˝ăç 犜ăăă°
ăăăťăŠăçĺ˝ă¨ăŻä˝ăďźăă¨ăă塨大ăŞéăŤčĄăĺ˝ăăăŽă§ăă
## ăçăăŚăăăăŁăŚăăŠăăăăă¨ďź
ĺăăĄăŻăçăăćŠć§ăŽčŠąăĺăďźăă¨čăăăăăăŠăčăăžăăďź
ăćĺăŞçĄç§ăŽĺăčłăăĺ
ăŽăăăăďźă
人塼çĺ˝ăŽç 犜č
ăŽä¸ăŤăŻăăĺăăŚăăăăŽăçĺ˝ă ăă¨čăăäşşăăĄ
ăăăžăăăăŽčăćšă ă¨ăăăăăăčŞĺčťăŻăăĄăăăĺˇăŽä¸ăăžăĄăćŠ
ăŤăă ăă§ĺăăŽăŻăäşăé˘äżă§ăĺ˝ăăčż˝ăăă¨ăă§ăăăăăŤăŞăăĺˇ
ă大ĺ°ăăŞăăŚč¨čăăăăžăăăăăŞăă芊çăŞčĄ¨çžă ăă§ăŻăŞăăŽăă
ăăžăăă
ă§ăăäťă´ăŁăăĺăăĄăŽĺŽć
ă¨ăăŚăçŹăçŤăčŞĺčťăĺˇăŻć šćŹçăŤăé
ăăă¨ćăăžăăăăăăŽăéăăăŽćŁä˝ăŻä˝ăŞăŽă§ăăăăă
人塼çĺ˝ăŽç 犜č
ăŤăŻăăčŞçśçĺ˝ă¨ĺĺŚçç°ĺ˘ă§ăżăă人塼çĺ˝ăŻć°ĺŚ
çăŞć§čłŞă§ăăăă¨čăăžăăĺăăĄăŽçć´ťăĺ
ć°ăŞçść
ă§ćŠăăŚăăăăł
ăăĽăźăżăźăŽä¸ăŽäşşĺˇĽçĺ˝ăŻč¨çŽďźć°ĺŚďźă§ĺăăŚăăăă¨ăăăă¨ă§ăă
ă§ăăăăŽăĺĺŚçćŠć§ăă¨ăăăŽăăĺŽăŻă¨ăă§ăăŞăéăăăŽă ăŁă
ăŽă§ăă
## éĺĺĺŚă¨ćééĺçĺ˝ăŽç§ĺŻ
éĺĺĺŚ
éĺĺĺŚăŽç 犜ăŽčŠąăăăžăăăéĺĺĺŚăă¨ăăč¨čăčăăăă¨
ăăăă§ăăăăăăăăă¨ăŻăăŞä¸çăŽăĺĺăéťĺăŽćŻăčăă誏ćă
ăçŠçĺŚă§ăăăăŽéĺăŽä¸çăŻăĺăăĄăŽĺ¸¸čăĺ
¨ăéŠç¨ăăŞăăćşĺ
ä¸čśłéăŞä¸çă§ăăäžăă°ăéĺăŻä˝żăăăćăăăďźăăłăăŤĺšćďźăé
ăé˘ăăĺĺăŽéĺă¨çŹéăŤçŠčłŞăăăĺăăăăďźéĺă¤ăăďźăăžăăăžăçľć§čŞăăŚăăŽă ăăçťĺăŤă¤ăăŚăŻăťăźă´ăăä¸ă¤ă ăčŞăżĺăăă

ăăŽčžşăăŽăăŠăĄăźăżčŞżć´ăăăăžăç´°ăăă§ăăŞăĺ°čąĄăvLLMçă ă¨ăăŁă¨ç´°ăăăă¨ăăăŁăŚăăŽă§ăăŁă¨ăăˇăŞăŽăăăăăĄăŞăżăŤçťĺăŽăŠăăăŠăăŞăľăăŤčŞăżĺăŁăăăăŚăłăăŁăłă°ăăăŻăšă§ćăăŚăăăçťĺăĺăăŚăăă

ăŞăă垎ĺŚăŤăşăŹăŚăć°ăăăăă ăăŞă
ăĄăŞăżăŤ1ăăźă¸ă ăčŞăżĺăăăăăăăăăăžăčĄăŁăă


ăăźăŻăăŚăłăŽćšă§ăăĄăăă¨çťĺăćăăŚăăŽăăăăŁăă
## ăŻăăăŤ
äťćĽăŻçăăăŤăĺăăĄăäťăžăăŤç´é˘ăăŚăăăăăăŚĺăăĄăăăăă ä˝ăä¸ăăŚăăćŞćĽăŤă¤ăăŚăĺ°ăă ăéˇă芹ăăăăă¨ćăăžăă
ăăźăăŻăçĽč˝ă¨çĺ˝ ăĄăăŁă˘ă¨ćŞćĽăăăŞăă ăéŁăăăăŤčăăăă ăăăăŞăăăŠăĺżé
ăăŞăă§ăă ăăăăăăŻăĺăăĄăćŻćĽä˝żăŁăŚăăăš ăăźăăăŠăłăă˛ăźă ăSNSăăăăŚĺăăĄčŞčşŤăŽăé čłăă¨ăĺżăăŤćˇąăé˘ ăăăă¨ăŚăă¨ăăľă¤ăăŁăłă°ăŞĺéşăŽčŠąă§ăă
äťăä¸ăŽä¸ăŻăAIăăă¤ăžă人塼çĽč˝ăŽčŠąéĄă§ćăĄăăă§ăăăžăă§éćł ăŽăăăŤçľľăćăăăăäşşéă¨äźčŠąăăăăéŁăăăăă°ăŠă ăć¸ăăăă ăAIăçťĺ ´ăăŚăä¸çä¸ăéŠăăŚăăžăă
äşşéĄă§ćĺăŽăăă°ăŠăăźăŻ19ä¸ç´ăŽĺĽłć§ă§ăăăă¨ă¤ăăťăŠăăŹăšă¨ă ă貴ćăŽĺ弳ă§ăă彟弳ăŻčŠŠäşşăă¤ăăłăŽĺ¨ă§ă
ăăăç术ă§ä¸ĺşŚăçśă¨äźăăă¨ăă§ăăžăăă§ ăăă彟弳ăŻĺśçśçĽăĺăŁăçşć厜ăŽăăăă¸ă éçşăăăłăłăăĽăźăżăŽăăăŤăćĺăŽăăă°ăŠ ă ăć¸ăăă¨ăŚăéčŚăŞăă¨ăŤć°ăă¤ăăžăăă
ă¨ă¤ăăŻăăłăłăăĽăźăżăŻćé ăă誏ćă§ăă ă°ăŠăăŞĺŚçă§ăă§ăăăăă¨ăćĺăŤäşč¨ăăž ăăăăăŽäşč¨ăŻă100ĺš´ĺžăŤăŻĺŽçžăăăă¨ăŤ ăŞăăžăă
ă¨ăăăăAIăćąăĺéĄăŽĺ¤ăăŻăćé ă誏ć ăăăă¨ăă§ăăžăăăAIăä˝ăćé ăŻčŞŹćă§ă ăăăŽăŽăAIăĺŽéăŤăăŽä¸ă§ăŠăŽăăăŤĺ¤ćă

ăŚăăăă¨ăăăă¨ăŻăăŠăăŻăăăŻăšăŽăžăžă§ăăă¤ăžăăAIă¨ăłăłăăĽăź ăżăŻă桹ăé˘äżăăŚăăăăă§ćŹčłŞçăŤăŻçĄé˘äżăŞăăŽăŞăŽă§ăă
ăăŽAIăŽçťĺ ´ăŤăăŁăŚăĺăăĄäşşéĄăŻăăăăžă§ĺ˝ăăĺă ă¨ćăŁăŚăă ăçĽč˝ăă¨ăŻä˝ăăă¤ăžăă賢ăăăŁăŚăŠăăăăă¨ăŞăŽăăă¨ăăĺăăă ăăä¸ĺşŚć šćŹăăčăç´ăăŞăăă°ăŞăăŞăăŞăăžăăă
ăăăžă§ă賢ăăă¨č¨ăă°ăăăšăă§čŻăçšăĺăăă¨ăăăăăăăŽçĽčćĄĺźľĺăăŞăă.mmdă¨ăăăăŻăăŻăăłăšăżăăăŞăăŽăŤăŞăăŽă§.mdăŤăăŚVisualStudio Codeă§ăăźăŻăăŚăłăĺçžăăă¨ăăăăĄăăă¨čŞăżĺăăŚăăăăă ăŁăăăăăŻ1ăăźă¸ăă¤ä˝żăăŞăăăăäžżĺŠă ăŞ
ăżă¤ăăŤăăĄăăă¨čĺĽă§ăăŚăă

ăăăăčĺżăŽăçťĺă§ćĺăŽăłăłăăăšăăčż˝ăăăéˇăăłăłăăăšăăĺŽĺżăă¨ăă芹ăŻăŠăăăŤčĄăŁăŚăăžăć°ăăăăéŠćéŠćă¨čăăăšăăăä˝ă彟ăăäżşăăĄăŤé ăăŚăăăă¨ăăăăŽăă
äťćšăŞăăŽă§vllmçă芌ăăă¨ăŤăăă
ăăĄăăăťăźä˝żăćšăŽčŞŹćăăŞăăŽă§ăĺăăăăăŽDeepSeek-OCRăŽăŞăă¸ăăŞăŤçšć°ăă¤ăăă¨ăăă75çšăăăăŤăŞăăăă ăă˘ăăŻčŻă
vllmçă使ăăŤăŻăăžăconfig.pyăăăăŁăŚINPUT_PATHă¨OUTPUT_PATHăćąşăăŞăă¨ăăăŞă
19 # TODO: change INPUT_PATH
20 # .pdf: run_dpsk_ocr_pdf.py;
21 # .jpg, .png, .jpeg: run_dpsk_ocr_image.py;
22 # Omnidocbench images path: run_dpsk_ocr_eval_batch.py
23
24 INPUT_PATH = 'book.pdf'
25 OUTPUT_PATH = 'output'ă¤ăłăżăźăłăăŞăăăŤć¸ăăăăŽăäźç¤žăŽĺĺă§ăăŽăžăžĺ ŹéăăŚăăŽă?ă¨çăăăăăŤéăĺĽăŤăăăă ăăŠă
ă§ăć¸çąăŽPDFăăăŽăžăžINPUT_PATHăŤć¸ĄăăăăăŞăă¨ăăăă¨ă§ăăăăăťăźĺŽç§ăŞMakrdownăĺžăăăžăăă

ă¨ăăăăă§DeepSeek-OCRăŻvLLMçăăăŞăă¨ćŹć°ĺşăăŚăăăŞăăăăăă ăvLLMçăŻĺźăłĺşăćšăç Šéă§čŞĺă§ăŠăăăźć¸ăăŞăă¨ć´ă錏ăŽăăăŤć´ăĺăăăă
ă¨ăăăăçžĺ ´ăăăŻäťĽä¸ă§ăă