Public Docs
【模型量化】深度学习模型量化 & 量化理论 & 各平台的量化过程 & 硬件加速
【TVM】TI关于TVM的使用测试与分析
【LLM&LVM】大模型开源工程思维导图
SmartSip
【北航卓越工程师】《汽车前沿技术导论:智能驾驶》讲义
【工具链】Yocto使用介绍——使用Yocto创建一个树莓派的系统镜像
【工具链】使用ssh+dialog指令设定服务器指定用户仅容器访问
【推理引擎】一篇关于模型推理的详细对比与学习
【推理引擎】关于TVM中的Schedule优化详解(On going)
【LLM微调】使用litgpt进行私有数据集模型微调的测试总结
【TVM】在TVM Relay中创建一个自定义操作符
【STT+LLM+TTS】如何使用语音转文字模型+大预言模型+语音生成模型完成一个类人的语音交互机器人
【RAG】 通过RAG构建垂直领域的LLM Agent的方法探索
【RAG】GraphRAG精读与测试(On going)
【AI Agent】MetaGPT精读与学习
【AI Base】Ilya Sutskever 27篇必读论文分享清单
【Nvidia】Jetson AGX Orin/ Jetson Orin nano 硬件测试调试内容(On going)
【BI/DI】LLM Using in BI Testing Scenario (On going)
【Nvidia】How to Activate a Camera on Nvidia Platform in Details
【RAS-PI】树莓派驱动开发
【行业咨询阅读】关注实时咨询和分析
【mobileye】2024 Driving AI
【mobileye】SDS_Safety_Architecture
【yolo】yolov8测试
【nvidia】Triton server实践
【alibaba】MNN(on updating)
【OpenAI】Triton(on updating)
【CAIS】关于Compound AI Systems的思考
【Nvidia】关于Cuda+Cudnn+TensorRT推理环境
【BEV】BEVDet在各个平台上的执行效率及优化(On Updating)
【Chip】AI在芯片设计和电路设计中的应用
【Chip】ChiPFormer
【Chip】关于布线的学习
【Chip】MaskPlace论文精读与工程复现优化
【gynasium】强化学习初体验
【Cadence】X AI
【transformer】MinGPT开源工程学习
【中间件】针对apollo 10.0中关于cyberRT性能优化的深度解读和思考
【Robotics】调研了解当前机器人开发者套件(on updating)
【Robotics】ROS CON China 2024 文档技术整理与感想总结(上2024.12.7,中2024.12.8,下场外产品)
【algorithm】关于模型、数据与标注规范的平衡问题
【nvidia】DLA的学习了解与使用
【nvidia】构建nvidia嵌入式平台的交叉编译环境(其他环境平台可借鉴)
【2025AI生成式大会】2025大会个人总结
【Robotics】 Create Quadruped Robot RL FootStep Training Environment In IsaacLab
【Robotics】如何一个人较为完整的完成一个机器人系统软件算法层面的设计与开发
【VLM】读懂多模态大模型评价指标
【VLM】大模型部署的端侧部署性能与精度评估方法与分析
【Nvidia】Jetson Orin 平台VLM部署方法与指标评测
【Database】向量数据库
【SoC】性能与功耗评估
【MCP】MCP探索
【InnoFrance】一个“关于声音”的有趣项目
【Robotics】写给那些想要快速了解机器人或者具身智能的工程师们
【Robotics】open X Embodiment RT-X 数据集下载与使用和分析
【SKILLS】股票分析skill
【Robotics】当 AI + 强化学习重来时,那些"老机械结构"值得再做一遍
【LLM&VLM】国产CPU+国产NPU+国产操作系统搭建一个持续不断给AI喂资料的系统
文档发布于【Feng's Docs】
-
+
首页
【LLM&VLM】国产CPU+国产NPU+国产操作系统搭建一个持续不断给AI喂资料的系统
# 0 导读 本文档重点介绍一下笔者是如何构建一个纯国产化支撑的文档解析工具。本来相关内容并没有打算写成一篇文章,因为整个方案并没有任何个人的贡献,方案的搭建都只是得益于近几年国产化大潮的蓬勃发展。我基于已经打磨的非常好用的各个子模块,构建了满足自己需要的一个子系统。 另一方面,也是因为不自信让我在本就追求性价比的方案中,又额外多花了3000块,想想气不过,一定要把内容共享出来,让有需要的人都能够看到AI基建国产化的进步。 故事的完整版是,我为了验证方案,¥1700买了一块飞腾D3000的信创开发板,我为了追求自主可控,没有选择银河麒麟,统信这样的付费桌面,而选择使用OpenEuler系统(有工信部牵头成立的开放原子基金会支持的操作系统基础设施,后续也会更多应用于具身和人形机器人社区)。想买一块华为的推理卡(Atlas 300i DUO 96GB,两个310P核心)测试,咸鱼价格¥5000-¥6500,官方价格¥8000-¥9000。结果咸鱼卖家一听我要用国产CPU和国产操作系统,直接不卖给我,给出的理由竟然是:“别人试了不行,你别试了,省的卖给你你用不了再寄回来。” 没招啊,网上也查不到啥资料,操作系统和CPU总有一个对不上,都对上的型号又不对,也查不到更多资料了。最可气的是拿着一堆资料问Claude、Deepseek,也是莫能两可,可行可不行。好嘛,我这后来买回来跑起来了又都告诉我可以了。带着各种不自信,花¥8000高价买了个全新的推理卡。不过结果还是不错的,想跑的功能后来都跑起来了,挺稳定。 方案最终价格: | 项目 | 价格¥ | 采购连接 | | ----- | ----| --- | | 带飞腾 D3000 CPU开发板 | 1700 | https://e.tb.cn/h.REtthKE35CsOk7S?tk=bSL6gOvA0ZY 或 https://e.tb.cn/h.RImGilvJ6p0J67k?tk=HzTMgisSorx | | 256GB 长城 CH40 最大读写3500MB/s SSD | 315| https://e.tb.cn/h.RHDa98dVs3Axvbk?tk=mQfRgiHmJ4o | | 金士顿 DDR5 16GB 4800MT/s 内存 * 2| 2000|https://e.tb.cn/h.8ZkWJSG2VtkYmUm?tk=SCGJgJrAld5 | | 长城ATX电源 500W | 200| https://item.jd.com/876229.html?pcdk=UHXNO9o0afbDQvNy87DjNXCC5u8kOedsongQXIFCYfi60P_Jk95HMwr1m31WoQ0t.3z6a.aI3x&spmTag=YTAyMTkuYjAwMjM1Ni5jMDAwMDcyMTAua2V5d29yZF9lbnRlciU0MDE3ODQ2Mjk3MDU4MjIlMjMxNzQwNTQxOTk0MDA0NDc4ODQwNTMzJTIzNDg3OTE0NTA4JTJDYTAyNDAuYjAwMjQ5My5jMDAwMDQwMjcuMSUyM3NrdV9jYXJkJTQwMTc4NDYyOTcwOTMwNiUyMzE3NDA1NDE5OTQwMDQ0Nzg4NDA1MzMlMjMyMTE3NjA5Njg1 | | 景嘉伟JM9100 显卡| 210| https://e.tb.cn/h.RrsaGNZasaVFSTR?tk=acplgisIcwT | | 华为atlas 300i DUO 96GB推理卡| 8000|https://e.tb.cn/h.RINrwXwlG8vqkGZ?tk=FoWegiH5HCT| | 3D 打印 ATX 机架 + 螺丝螺母若干| 忽略 | 然后说说干了啥,怎么干的。 # 1 开发板配置及安装 依次将内存,SSD硬盘,显卡安装到对应位置,连接电源的24PIN和8PIN(注意:两个都需要接)上。网线连接路由器端口可以以DHCP分配IP地址。  - 一切连接安装后打开电源(以长城6000DS,500W电源为例),将电源开关拨到“—”为开。  - 如图1所示,短接手册中4号标记,拿杜邦线或者金属物如钥匙、螺丝刀,红色的短路一下就是开机(6,8),蓝色的短路一下就是重启(7,8)  # 2 操作系统安装 - 下载ISO镜像: ``` wget https://dl-cdn.openeuler.openatom.cn/openEuler-24.03-LTS-SP3/ISO/aarch64/openEuler-24.03-LTS-SP3-aarch64-dvd.iso # 下载SHA wget https://dl-cdn.openeuler.openatom.cn/openEuler-24.03-LTS-SP3/ISO/aarch64/openEuler-24.03-LTS-SP3-aarch64-dvd.iso.sha256sum # 校验一下看看ISO是否完整 cat openEuler-24.03-LTS-SP3-aarch64-dvd.iso.sha256sum sha256sum openEuler-24.03-LTS-SP3-aarch64-dvd.iso ``` * 如果是使用Ubuntu系统或者是苹果系统,可以直接使用Disks工具,制作启动盘。选择要刷写的U盘,点击右上角三个点,选择Restore Image,选择上一步下载好的iso,点击Start Restoring,之后等待制作完成。  * 让后通过U盘启动安装操作系统即可 # 3 驱动安装 ## 3.1 华为推理卡 跟着官方连接走,非常清楚 https://www.hiascend.com/cann/download # 4 MinerU方案部署 ## 4.1 mineru介绍 MinerU 是一款文档解析工具,可将 PDF、图片以及 DOCX、PPTX、XLSX 转化为机器可读格式(如 Markdown、JSON),便于后续检索、抽取与二次处理。更详细的内容跟可以看看官方文档https://opendatalab.github.io/MinerU/zh/ 。 之所以为了部署这个工具,主要是因为大量私有知识需要喂给AI Agent进行更深度的需求理解和开发工作,一个能够被AI精确理解的数据就变得非常重要。文档解析后的结构化和信息关联就尤为重要。文档中的图片内容也需要充分理解。于是mineru的部署和使用就非常的重要。  ## 4.2 部署 官方针对 Ascend 昇腾平台的部署给了说明材料:https://opendatalab.github.io/MinerU/zh/usage/acceleration_cards/Ascend/ 。 并且也实验性的支持Atlas 300i DUO这种推理卡使用vllm,并且给出了执行指令。 不过指令仅支持debian 平台,并没有关于openeuler的说明。 https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/npu.Dockerfile ``` # 基础镜像配置 vLLM 或 LMDeploy ,请根据实际需要选择其中一个,要求 ARM(AArch64) CPU + Ascend NPU。 # Base image containing the vLLM inference environment, requiring ARM(AArch64) CPU + Ascend NPU. FROM quay.m.daocloud.io/ascend/vllm-ascend:v0.11.0 # Base image containing the LMDeploy inference environment, requiring ARM(AArch64) CPU + Ascend NPU. # FROM crpi-4crprmm5baj1v8iv.cn-hangzhou.personal.cr.aliyuncs.com/lmdeploy_dlinfer/ascend:mineru-a2 # ARG BACKEND=lmdeploy # Install libgl for opencv support & Noto fonts for Chinese characters RUN apt-get update && \ apt-get install -y \ fonts-noto-core \ fonts-noto-cjk \ fontconfig \ libgl1 \ libglib2.0-0 && \ fc-cache -fv && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install mineru latest RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ python3 -m pip install 'mineru[core]>=3.4.0' \ numpy==1.26.4 \ opencv-python==4.11.0.86 \ -i https://mirrors.aliyun.com/pypi/simple && \ if [ "$BACKEND" = "lmdeploy" ]; then \ python3 -m pip install 'qwen-vl-utils>=0.0.14,<1' -i https://mirrors.aliyun.com/pypi/simple; \ fi && \ python3 -m pip cache purge # Download models and update the configuration file RUN TORCH_DEVICE_BACKEND_AUTOLOAD=0 /bin/bash -c "mineru-models-download -s modelscope -m all" # Set the entry point to activate the virtual environment and run the command line tool ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] ``` 所以,这里面就要稍微魔改一些内容。首先是,docker镜像,要用openeuler,310p版本的容器,其次从debian的apt安装指令改为 dnf 或者 yum的安装指令,Dockerfile如下。 ``` # 基础镜像配置 vLLM 或 LMDeploy ,请根据实际需要选择其中一个,要求 ARM(AArch64) CPU + Ascend NPU。 # Base image containing the vLLM inference environment, requiring ARM(AArch64) CPU + Ascend NPU. FROM quay.io/ascend/vllm-ascend:v0.21.0rc1-310p-openeuler # Base image containing the LMDeploy inference environment, requiring ARM(AArch64) CPU + Ascend NPU. # FROM crpi-4crprmm5baj1v8iv.cn-hangzhou.personal.cr.aliyuncs.com/lmdeploy_dlinfer/ascend:mineru-a2 # ARG BACKEND=lmdeploy # Install libgl for opencv support & Noto fonts for Chinese characters RUN dnf clean all && \ dnf update -y && \ dnf install -y \ google-noto-sans-fonts \ wqy-zenhei-fonts \ wqy-microhei-fonts \ fontconfig \ mesa-libGL \ glib2 && \ fc-cache -fv && \ dnf clean all && \ rm -rf /var/cache/dnf # Install mineru latest RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ pip config set global.retries 10 && \ pip config set global.timeout 120 && \ (python3 -m pip install 'mineru[core]>=3.4.0' \ numpy==1.26.4 \ opencv-python==4.11.0.86 \ -i https://mirrors.aliyun.com/pypi/simple \ || (python3 -m pip cache purge && \ python3 -m pip install 'mineru[core]>=3.4.0' \ numpy==1.26.4 \ opencv-python==4.11.0.86 \ -i https://pypi.tuna.tsinghua.edu.cn/simple)) && \ if [ "$BACKEND" = "lmdeploy" ]; then \ python3 -m pip install 'qwen-vl-utils>=0.0.14,<1' -i https://mirrors.aliyun.com/pypi/simple; \ fi && \ python3 -m pip cache purge # Download models and update the configuration file RUN TORCH_DEVICE_BACKEND_AUTOLOAD=0 /bin/bash -c "mineru-models-download -s modelscope -m all" # Set the entry point to activate the virtual environment and run the command line tool ``` ## 4.3 部署资源占用情况 注意从mineru 3.0.0 release 版本开始,就统一使用一个LLM架构的模型.从0.9B - 1.2B用来做文档分析,在omnidocbench的数据集上也是一度到达了sota的结果。 文档还支持使用一个LLM的instruct模型对文档标题分级的准确性进行检查,这对于DUO卡来说简直是绝配,所以另一个DIE刚好还可以用VLLM再部署一个3B或者8B的模型。 ``` +--------------------------------------------------------------------------------------------------------+ | npu-smi 26.0.rc1 Version: 26.0.rc1 | +-------------------------------+-----------------+------------------------------------------------------+ | NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page) | | Chip Device | Bus-Id | AICore(%) Memory-Usage(MB) | +===============================+=================+======================================================+ | 0 310P3 | OK | NA 58 6264 / 6264 | | 0 0 | 0000:07:00.0 | 0 14311/ 44278 | +-------------------------------+-----------------+------------------------------------------------------+ | 0 310P3 | OK | NA 56 14066 / 14066 | | 1 1 | 0000:07:00.0 | 0 29415/ 43693 | +===============================+=================+======================================================+ +-------------------------------+-----------------+------------------------------------------------------+ | NPU Chip | Process id | Process name | Process memory(MB) | +===============================+=================+======================================================+ | 0 0 | 15247 | mineru-openai-s | 101 | | 0 0 | 16031 | VLLMEngineCor | 12599 | | 0 1 | 13068 | vllm | 101 | | 0 1 | 13554 | VLLMEngineCor | 28193 | +===============================+=================+======================================================+ ```
dingfeng
2026年7月21日 18:43
17
0 条评论
转发文档
收藏文档
上一篇
下一篇
评论
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码