PaddlePaddle / PaddleMIX

Paddle Multimodal Integration and eXploration, supporting mainstream multi-modal tasks, including end-to-end large-scale multi-modal pretrain models and diffusion model toolbox. Equipped with high performance and flexibility.
Apache License 2.0
359 stars 143 forks source link
aigc clip controlnet dit eva-clip image-to-text internvl2 llava minicpm-v minigpt4 multimodal ppdiffusers qwen2-vl sd-xl sora stable-diffusion stablevideodiffusion text-to-image text-to-video unidiffuser

简体中文 | English

💌目录

📰新闻

🔥2024.10.31日 PaddleMIX 2.1版本发新直播

📣最新进展

🎉 2024.11.8 支持MiniCPM-V-2_6推理

🎉 2024.11.8 支持DenseConnectorAquila-VL-2B-llava-qwen推理

🎉 2024.11.1 支持LLaVA-OneVisionLLaVA-Critic推理

🎉 2024.10.31 喜迎外部开发者的创作教程页面更新

🔥2024.10.11 发布PaddleMIX v2.1

2024.07.25 发布PaddleMIX v2.0

2023.10.7 发布 PaddleMIX v1.0


🌈简介

PaddleMIX是基于飞桨的多模态大模型开发套件,聚合图像、文本、视频等多种模态,覆盖视觉语言预训练,微调,文生图,文生视频,多模态理解等丰富的多模态任务。它提供开箱即用的开发体验,同时支持灵活定制,满足不同需求,助力探索通用人工智能。

PaddleMIX工具链包括数据处理、模型开发、预训练、精调和推理部署,支持主流多模态模型如 EVA-CLIP、BLIP-2、Stable Diffusion 等。通过跨模态任务流水线 AppFlow 和文生图应用 pipeline,开发者可以快速构建多模态应用。

多模态理解效果示例如下:

多模态理解🤝融合了视觉👀和语言💬处理能力。包含基础感知、细粒度图像理解和复杂视觉推理🧠等功能。我们的模型库调用提供了单图、多图和视频推理的功能实际应用,功能包括自然图像摘要📝、问答🤔、OCR🔍、情感识别❤️😢、专业图像分析🔬和代码解析💻。这些技术可应用于教育📚、医疗🏥、工业🏭等多个领域,实现从静态图像🖼️到动态视频🎥的全面智能分析。欢迎您的体验和探索~

多模态生成效果示例如下:

多模态生成✍️融合了文本💬与视觉👀的创造能力。涵盖了从文字生成图像🖼️到文字生成视频🎥的各类技术,包括 Stable Diffusion 3、Open-Sora等先进模型。我们在ppdiffusers提供了单图生成、多图合成和视频生成的实际应用,功能涉及艺术创作🎨、动画制作📽️、内容生成📝等。通过这些技术,可以在教育📚、娱乐🎮、广告📺等领域实现从静态图像到动态视频的创意生成。欢迎您的体验和探索~

特色应用效果示例如下(点击标题可快速跳转在线体验):

ComfyUI创作工作流 艺术风格二维码模型 Mix叠图
二次元文生图 AI绘画|50+Lora风格叠加 ControlNet|图片局部重绘

✨主要特性

📱丰富的多模态功能

PaddleMIX支持大量最新主流的算法基准以及预训练模型,覆盖图文预训练,文生图,跨模态视觉任务,实现图像编辑、图像描述、数据标注等多样功能。传送门📱模型库

🧩简洁的开发体验

PaddleMIX 提供统一的模型开发接口,支持开发者快速集成和定制模型。借助 Auto 模块,用户可以高效加载预训练模型、实现 Tokenization,并通过简化的 API 轻松完成模型的训练、微调(SFT)、推理与部署。此外,Auto 模块支持开发者自定义模型的自动化集成,确保灵活性与可扩展性,同时提升开发效率。

💡高性能分布式训推能力

PaddleMIX提供高性能分布式训练与推理能力,融合✨Fused Linear✨、✨Flash Attention✨等加速算子,支持🌀BF16混合精度训练和4D混合并行策略,并通过优化推理性能,包括卷积布局、GroupNorm融合及旋转位置编码优化,显著提升大规模预训练和高效推理性能。

🔧特色功能与工具

多模态数据处理工具箱DataCopilot,加速模型迭代升级。让开发者根据特定任务以低代码量实现数据的基本操作。传送门🏆特色模型|工具

🔍安装

1. 克隆PaddleMIX仓库

git clone https://github.com/PaddlePaddle/PaddleMIX
cd PaddleMIX

2. 创建虚拟环境

conda create -n paddlemix python=3.10 -y
conda activate paddlemix

3. 安装PaddlePaddle

方法 1: 一键安装(GPU/CPU推荐)

方法 2: 手动安装

关于PaddlePaddle安装的详细教程请查看Installation

4. 昇腾环境安装(可选)

当前 PaddleMIX 支持昇腾 910B 芯片(更多型号还在支持中,如果您有其他型号的相关需求,请提交issue告知我们),昇腾驱动版本为 23.0.3。考虑到环境差异性,我们推荐使用飞桨官方提供的标准镜像完成环境准备。

docker run -it --name paddle-npu-dev -v $(pwd):/work \
    --privileged --network=host --shm-size=128G -w=/work \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" \
    registry.baidubce.com/device/paddle-npu:cann80T13-ubuntu20-$(uname -m)-gcc84-py39 /bin/bash
# 注意需要先安装飞桨 cpu 版本,目前仅支持python3.9版本
python -m pip install --pre paddlepaddle -i https://www.paddlepaddle.org.cn/packages/nightly/cpu/
python -m pip install --pre paddle-custom-npu -i https://www.paddlepaddle.org.cn/packages/nightly/npu/

5. 安装依赖

方法 1: 一键安装(推荐)

运行以下命令来自动安装所有必要的依赖:

sh build_env.sh

方法 2: 手动安装(请参考 build_env.sh)

🔥教程

快速开始

实操演练&范例

多硬件使用

数据准备&训练微调

推理部署

📱模型库

多模态理解 多模态生成
  • 图文预训练
  • 开放世界视觉模型
  • 更多模态预训练模型
  • 数据分析
  • 文生图
  • 文生视频
  • 音频生成
  • 更多模型能力,可参考模型能力矩阵

    🏆特色模型|工具

    💎跨模态任务流水线AppFlow

    简介(点击展开) AppFlow作为PaddleMIX的跨模态应用任务流水线,具备强大的功能与易用性。通过接入LLaVA、Stable Diffusion等前沿算法,AppFlow已全面覆盖图像、文本、音频、视频等多种模态,并通过流水线式的灵活组合,构建了10余种多模态应用,涵盖图文生成、文本视频生成、文本音频生成、图像理解等多个方面,为用户提供丰富的demo示例。AppFlow的特色在于其一键预测功能,用户无需繁琐训练与大量编码,仅需简单命令即可完成模型推理,极大地降低了使用门槛。同时,AppFlow充分利用飞桨框架动静统一优势,用户只需设置简单参数,即可自动完成模型的动转静导出及高性能推理,提高工作效率并优化模型性能,实现一站式应用部署。 `传送门`:[应用文档示例](applications/README.md/#快速开始)。

    💎多模态数据处理工具箱DataCopilot

    简介(点击展开) 在真实的应用场景有大量使用专有数据微调多模态大模型来提升模型效果的需求,此过程中数据要素成为核心。基于此PaddleMIX提供了数据处理和分析的工具DataCopilot,使开发者可在PaddleMIX套件完成端到端的开发体验。 PP-InsCapTagger(Instance Capability Tagger) 是 DataCopilot 基于 PaddleMIX 实现的数据集能力标签模型,用于为多模态数据实例能力打标,通过实例能力分布对数据集进行优化,可以提高模型训练效率,为数据集分析和评价提供了一种高效的方案。 结合模型推理打标结果对LLaVA SFT数据集进行优化,可以**提高LLaVA模型SFT阶段50%的训练效率。** `传送门`:[应用文档示例](paddlemix/datacopilot/readme.md)。
    PP-InsCapTagger(点击展开) | Model | ScienceQA | TextVQA | VQAv2 | GQA | MMMU | MME | |----------------------------------|-----------------------------------------|----------------------------------------|----------------------------------------|----------------------------------------|----------------------------------------|-----------------------------------------| | llava-1.5-7b (origin) | 66.8 | 58.2 | 78.5 | 62 | - | - | | llava-1.5-7b (rerun) | 69.01 | 57.6 | 79 | 62.95 | 36.89 | 1521
    323 | | llava-1.5-7b (random 50%) | 67.31 | 55.6 | 76.89 | 61.01 | 34.67 | 1421
    286 | | **llava-1.5-7b (our 50%)** | **70.24** *(+2.93)* | **57.12** *(+1.52)* | **78.32** *(+1.43)* | **62.14** *(+1.13)* | **37.11** *(+2.44)* | **1476** *(+55)*
    **338** *(+52)* | `传送门`:[应用文档示例](paddlemix/datacopilot/example/pp_inscaptagger/readme.md)。

    🤔FAQ

    关于我们项目的一些常见问题解答,请参考FAQ。如果您的问题没有得到解答,请随时在Issues中提出

    📝许可证书

    本项目的发布受Apache 2.0 license许可认证。

    📌社区交流