Skip to content

[feat]【开源实习】基于MindSpore NLP实现DeepSeek-OCR文本识别与结构化解析可交互DEMO开发 #2064#49

Open
lyyyym wants to merge 2 commits intomindspore-lab:devfrom
lyyyym:feature/deepseek-ocr
Open

[feat]【开源实习】基于MindSpore NLP实现DeepSeek-OCR文本识别与结构化解析可交互DEMO开发 #2064#49
lyyyym wants to merge 2 commits intomindspore-lab:devfrom
lyyyym:feature/deepseek-ocr

Conversation

@lyyyym
Copy link
Copy Markdown

@lyyyym lyyyym commented Mar 20, 2026

任务描述:DeepSeek-OCR 文本识别与结构化解析可交互 DEMO

一、任务概述

基于 MindSpore 2.7.0 + MindNLP 0.5.1,参考 https://huggingface.co/spaces/khang119966/DeepSeek-OCR-DEMO,在华为 Ascend NPU 910B 上实现 DeepSeek-OCR 多场景文本识别与结构化解析的可交互 DEMO,支持流式生成与性能优化。
二、实现内容

  1. 多场景 OCR 可交互 DEMO(app.py)

基于 Gradio 构建 Web 交互界面,支持以下功能:

  • 多任务类型:Free OCR(自由识别)、Markdown 转换(文档结构化)、图表解析、文本定位(Grounding)
  • 多分辨率模式:Tiny(512)、Small(640)、Base(1024)、Large(1280)、Gundam(1024+640 crop,推荐)
  • 图片上传与实时识别:用户上传图片后一键识别,结果区展示识别文本、标注图像和性能指标
  • NPU 适配:针对 Ascend NPU 不支持 scatter_add 算子的问题,使用 F.one_hot + 矩阵乘法替代方案
  1. 流式生成与 Token 时间统计

将模型输出改为流式生成模式,核心实现:

  • 从 model.infer() 方法中抽取图像预处理逻辑为独立的 prepare_inputs() 函数
  • 使用 TextIteratorStreamer 替代原生非流式输出
  • 在后台线程中运行 model.generate(),主线程通过 streamer 迭代获取 token
  • 实时统计性能指标:首 Token 延迟(TTFT)、已生成 Token 数、总耗时、生成速度(tokens/s)、解码速度(不含首 token)
  1. 模型推理性能优化
    实施优化方案,并提供优化前后实测数据对比。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant