Skip to content

Ascend/MultimodalSDK

Repository files navigation

MultimodalSDK

最新消息

  • [2025.12.30]: 🚀 Multimodal SDK 开源发布

简介

多模态大模型推理流程中需要处理大量复杂的数据。Multimodal SDK通过提供一系列高性能的昇腾设备亲和性接口,加速大模型推理预处理流程。
- 包括图像视频加载和解码,resize、crop等预处理常用操作。
- 支持多种开源数据结构与加速库数据结构的相互转换,方便快速使用和移植。

更多详情请查看简介

Zread     DeepWiki

目录结构

├── build_script
│   └── build.sh
├── script
│   ├── help.info
│   ├── install.sh
│   ├── set_env.sh
│   └── uninstall.sh
├── setup.py
├── source
│   └── mm
│       ├── acc
│       │   ├── _impl
│       │   │   └── __init__.py
│       │   ├── __init__.py
│       │   └── wrapper
│       │       ├── data_type.py
│       │       ├── image_wrapper.py
│       │       ├── __init__.py
│       │       ├── tensor_wrapper.py
│       │       ├── util.py
│       │       └── video_wrapper.py
│       ├── adapter
│       │   ├── __init__.py
│       │   ├── internvl2_preprocessor.py
│       │   └── qwen2_vl_preprocessor.py
│       ├── comm
│       │   ├── __init__.py
│       │   └── log.py
│       ├── core
│       │   └── __init__.py
│       ├── __init__.py
│       └── patcher
│           ├── __init__.py
│           └── vllm
│               ├── image_patcher.py
│               ├── __init__.py
│               ├── internvl2_image_processor_patcher.py
│               ├── qwen2_vl_image_processor_patcher.py
│               └── video_patcher.py
└── test
    ├── assets
    │   ├── dog_1920_1080.jpg
    │   ├── dog_1920_1080.png
    │   └── test_aac.mp4
    ├── test_demo.py
    ├── test_image.py
    ├── test_internvl2_preprocessor.py
    ├── test_log.py
    ├── test_qwen2_vl_preprocessor.py
    ├── test_tensor.py
    └── test_video.py

版本说明

Multimodal的版本说明包含Multimodal的软件版本配套关系和软件包下载以及每个版本的特性变更说明,参考下表:

产品名称 版本
Ascend HDK 25.5.0
CANN 8.5.0

更多详情请查看版本说明

环境部署

介绍Multimodal的安装方式。更多详情请查看安装指南

编译流程

本节以CANN 8.5.0相关配套为例,介绍如何通过源码编译生成 Multimodal SDK,其中NPU驱动、固件和CANN软件包可以通过昇腾社区下载。

  1. 编译依赖下载

    注意:编译需要Python 3.11版本,请确保环境中已安装该版本。

    # 下载源码
    git clone https://gitcode.com/Ascend/MultimodalSDK.git
    # 进入项目根目录
    cd MultimodalSDK
    
    # 将makeself依赖下载在项目根目录,脚本会自动进行patch/编译,项目使用定制版的makeself进行打包,需要下载makeselfv2.5和对应的patch
    git clone -b v2.5.0.x https://gitcode.com/cann-src-third-party/makeself.git makeself_patch
    git clone -b release-2.5.0 https://gitcode.com/gh_mirrors/ma/makeself.git

    项目需要一些开源组件,需要下载以下源码:

    # AccSDK依赖
    cd MultimodalSDK/AccSDK
    wget https://mindcluster.obs.cn-north-4.myhuaweicloud.com/opensource.tar.gz
    # acc_data依赖
    cd MultimodalSDK/AccSDK/acc_data/3rdparty/pybind
    git clone -b v2.13.6 https://gitcode.com/GitHub_Trending/py/pybind11.git
    cd MultimodalSDK/AccSDK/acc_data/3rdparty/gtest
    git clone -b release-1.11.0 https://gitcode.com/GitHub_Trending/go/googletest.git
  2. 执行编译

    执行以下命令编译:

    source /path/to/Ascend/ascend-toolkit/set_env.sh
    bash MultimodalSDK/build_script/build_merge.sh
  3. 生成的 run 包在 MultimodalSDK/output 下:Ascend-mindxsdk-multimodal_${SDK_VERSION}_linux-aarch64.run

  4. 执行测试用例

    首先安装lcov2.0用于统计测试覆盖率和生成可视化报告:

    apt update
    apt install -y libcapture-tiny-perl libdatetime-perl libtimedate-perl
    wget https://github.com/linux-test-project/lcov/releases/download/v2.0/lcov-2.0.tar.gz
    tar -xzf lcov-2.0.tar.gz && cd lcov-2.0
    make install

    然后执行以下命令运行测试用例:

    bash MultimodalSDK/build_script/build_merge.sh test

快速入门

Multimodal SDK提供了一系列CPU高性能和易用性的接口,更多详情请查看快速入门样例与指导

功能介绍&特性介绍

多模态大模型推理流程中需要处理大量复杂的数据。Multimodal SDK通过提供一系列高性能的昇腾设备亲和性接口,加速大模型推理预处理流程。 包括图像视频加载和解码,resize、crop等预处理常用操作。 支持多种开源数据结构与加速库数据结构的相互转换,方便快速使用和移植。

API参考

API参考详见:

Python接口说明

Adapter

Patcher

功能函数

FAQ

问题现象

即使已安装lzma模块,调用torchvision时,依然提示缺少lzma模块

解决方案

安装lzma模块

pip install backports.lzma

进入python的库目录,以使用的python3.11.4为例

cd /xx/xx/python-3.11.4/lib/python3.11

修改lzma.py,将下面的内容

from _lzma import *
from _lzma import _encode_filter_properties, _decode_filter_properties

修改为

from backports.lzma import *
from backports.lzma import _encode_filter_properties, _decode_filter_properties

安全声明

  • 使用API读取文件时,用户需要保证该文件的owner必须为自己,且权限不高于640,避免发生提权等安全问题。外部下载的软件代码或程序可能存在风险,功能的安全性需由用户保证。
  • 通信矩阵:目前Multimodal SDK开发套件包不会主动打开或者依赖任意端口,因此不涉及通信矩阵。
  • 公网地址:Multimodal SDK的安装包中的网址安装结束后会被清除,并不会访问,不会造成风险.

更多详情请查看安全声明附录

免责声明

  • 本仓库代码中包含多个开发分支,这些分支可能包含未完成、实验性或未测试的功能。在正式发布前,这些分支不应被应用于任何生产环境或者依赖关键业务的项目中。请务必使用我们的正式发行版本,以确保代码的稳定性和安全性。 使用开发分支所导致的任何问题、损失或数据损坏,本项目及其贡献者概不负责。
  • 正式版本请参考release版本 https://gitcode.com/ascend/MultimodalSDK/releases

License

MultimodalSDK以Apache 2.0许可证许可,对应许可证文本可查阅LICENSE

MultimodalSDK docs目录下的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件。

贡献声明

  1. 提交错误报告:如果您在MultimodalSDK中发现了一个不存在安全问题的漏洞,请在MultimodalSDK仓库中的Issues中搜索,以防该漏洞被重复提交,如果找不到漏洞可以创建一个新的Issues。如果发现了一个安全问题请不要将其公开,请参阅安全问题处理方式。提交错误报告时应该包含完整信息。
  2. 安全问题处理:本项目中对安全问题处理的形式,请通过邮箱通知项目核心人员确认编辑。
  3. 解决现有问题:通过查看仓库的Issues列表可以发现需要处理的问题信息, 可以尝试解决其中的某个问题。
  4. 如何提出新功能:请使用Issues的Feature标签进行标记,我们会定期处理和确认开发。
  5. 开始贡献:
    • Fork本项目的仓库。
    • Clone到本地。
    • 创建开发分支。
    • 本地自测,提交前请通过所有的单元测试,包括为您要解决的问题新增的单元测试。
    • 提交代码。
    • 新建Pull Request。
    • 代码检视,您需要根据评审意见修改代码,并重新提交更新。此流程可能涉及多轮迭代。
    • 当您的PR获得足够数量的检视者批准后,Committer会进行最终审核。
    • 审核和测试通过后,CI会将您的PR合并入到项目的主干分支。

建议与交流

欢迎大家为社区做贡献。如果有任何疑问或建议,请提交issue,我们会尽快回复。感谢您的支持。

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors