PaddlePaddle/Paddle

飞桨快乐开源活动全新升级🔥

Ligoml opened this issue · 2 comments

Ligoml commented

飞桨快乐开源活动起初只是一个「提 PR 领取新年礼物 🎁」#48019 的小型社区活动,一经推出受到了广大社区开发者的喜爱,更是发生了「除夕夜 18 PR」的经典操作。今天快乐开源活动迎来了全新升级 🚀🚀🚀,任务方向更加多元、活动玩法更加灵活、礼品清单更加丰富!快来加入快乐开源,和我们一起共建飞桨~

飞桨团队使用 HappyOpenSource 快乐开源活动issue与PR HappyOpenSource Pro 进阶版快乐开源活动,更具挑战性的任务 两个标签追踪快乐开源活动相关的 issue 与 pr,如果没有被及时标记,你可以@Ligoml@luotao1 添加标签。

延续之前的模式,本期快乐开源活动上线「✨ 热身任务」、「🎯 命题任务」与「💡 开放任务」

  • 热身任务」通常是一些简单易上手的小练习,如果你是第一次参与开源贡献,参与热身任务会帮你快速掌握这些基础知识;
  • 「🎯 命题任务」是一些比较明确和具体的任务,这些任务已经经过飞桨社区开发者和飞桨研发的多轮讨论,是可以直接上手去做的任务,通过 tracking issue 来拆解和追踪任务完成情况;
  • 「💡开放任务」包括任何你想做的与飞桨相关的开发任务,请首先通过 issue 的方式和我们沟通交流,任务明确后再启动开发~

在往期活动中,飞桨团队和社区开发者共同落地了 PyTorch 与 Paddle 2.0 API 映射表第五期黑客松小助手 等开放任务,期望在社区看到越来越多有趣有用的开放讨论和开发任务!

btw 飞桨团队准备了一些参与开源社区的学习资料,希望对你有所帮助:

视频回放🔗:https://aistudio.baidu.com/education/group/info/29434

奖励一览

海报-1

活动周期

每 3 个月统计一次贡献情况,具体来说就是标签为 HappyOpenSource 快乐开源活动issue与PR 的 PR,并依据贡献情况为各位开发者邮寄礼物 🎁,本期活动从 8.11 开启,至 11.11 截止统计。

注: 5.11-8.11周期内的贡献情况已完成统计,参与活动的开发者请耐心等待快递小哥上门,如有疑问可通过邮箱 📮ext_paddle_oss@baidu.com 联系我们~

各大 Repo 传送门

热身任务

这里是一些入门级的热身任务,任务一是 Git 操作练习,任务二是 Paddle 源码编译练习,任务三是跑通 Stable-Diffusion 训练推理,如果你没有相关背景知识,参与热身任务会帮你快速掌握这些基础知识。

任务一:修改飞桨文档,完成你的第一个 PR

修复飞桨文档,往往是许多飞桨社区开发者们参与飞桨开源活动的起点。通过修复飞桨文档并提交 PR,你将熟悉为 Paddle 社区贡献代码的流程规范。我们提供了「文档bug清单」,你可以选择任意数量的有问题的文档,进行认领并提交 PR 修复。

本任务十分简单,基本不需要技术背景。只要你对开源社区怀有热情,即可参与~

mentor:@sunzhongkai588

参考链接:

任务二:拉取 Paddle 代码,完成本地编译

在飞桨框架开发中,编译 Paddle 是一个重要环节,也是很多任务(如 API 开发、算子性能优化、数据类型扩展等)的前置条件。完成本次编译体验,你会对 Paddle 代码有更深入的理解,也便于你参与后续的框架开发任务。

本任务邮件通过验收后,即可收到限量版飞桨开源社区小礼品,数量有限,先到先得~

mentor:@luotao1

参考链接:

任务三:在 PaddleMIX 中跑通 Stable-Diffusion 训练推理

PaddleMIX 是基于飞桨的跨模态大模型开发套件,提供开箱即用的开发体验,同时满足开发者灵活定制需求,探索通用人工智能。通过 跑通 Stable-Diffusion 的训练推理流程,你会快速掌握飞桨开发套件的使用,便于你参与后续的套件开发任务。

本任务邮件通过验收后,即可收到限量版飞桨开源社区小礼品,数量有限,先到先得~

mentor:@LokeZhou

参考链接:

此类任务对所有第一次给社区做贡献的开发者都是友好的,任务较为简单,让各位新手小白快速熟悉飞桨社区。

🎯 命题任务

这里是一些比较明确和具体的任务,这些任务已经经过飞桨社区开发者和飞桨研发的多轮讨论,是可以直接上手去做的任务,任务细节可以在具体 tracking issue 中与 mentor 沟通(你也可以联系邮箱 📮 ext_paddle_oss@baidu.com 加微信群沟通)。任务进展见:https://github.com/orgs/PaddlePaddle/projects/7 ,结项任务见 #56689 (comment)

核心框架任务列表

任务名称 任务描述 tracking issue mentor
框架老旧 API 清理计划(一期) 为了使得框架架构更加清晰,我们希望对框架内部的老旧 API 进行清理,以使得框架架构更加清晰,更易于维护。 #61385 @gouzil @SigureMo
paddle_test 推全 paddle仓库中有43个使用cc_test的CMakeLists.txt文件,其对paddle的单测编译造成一定压力,现打算将其全部替换为paddle_test. #60793 @Galaxy1458 @risemeup1
PIR算子推全和单测修复 PIR采用了一套新的算子注册体系,这导致一些旧算子因为种种原因,目前还没有PIR下的定义,希望大家一起将这些算子注册到PIR中,并通过相关单测进行验证,确保PIR算子体系的完备。本任务简单易上手,欢迎参与! #59382 @kangguangli @xingmingyyj
PIR下的分布式算子注册 一些分布式算子目前还缺乏PIR下的定义,本任务是PIR算子推全的一个延续,比之前的任务更简单,欢迎大家参与。 #60436 @kangguangli @xingmingyyj
PyTorch 和 Paddle 仓库模型导出成功率对比任务 🔥 PyTorch 最近在 2.1.0 版本发布了 torch.export 功能,提供了以 PyTorch 2.x 的 dynamo 为核心的模型导出方法。其功能上与我们 Paddle 动转静模型导出 paddle.jit.save 相类似,因此我们想要建设一个 repo 能够自动对比 torch.exportpaddle.jit.save 的导出成功与否,PaddleJitLab/jit-exportable-models 就诞生了~ #58985 @2742195759 @SigureMo
Paddle Docathon 🔥 不仅仅是代码,文档也是开源项目的灵魂🌟 你的一行文字,可能就是别人理解Paddle的关键📝。不要低估文档的力量,来参加我们的 Docathon 文档优化系列活动吧!(新手向) PaddlePaddle/docs#6165 @sunzhongkai588
框架API易用性提升 为了提升模型迁移的效率,我们建设了 代码自动转换工具: PaddlePaddle Code Convert Toolkits,为了降低 代码自动转换工具 中转换策略Matcher的开发难度,我们需要对部分框架API的功能和易用性进行增强。 #55883 @zhwesky2010
引入 clang-tidy 飞桨在追求高性能的同时,也非常关注框架自身的安全隐患以及健壮性,例如:我们严格且严谨地将一切 warning 视为 error,引入 clang-tidy 有助于增加飞桨的健壮性。 #54073 @zhangbo9674
复数数据类型扩展任务 为算子支持complex64/complex128 2种复数类型 #56145 @GGBond8488

科学计算项目任务列表

可前往对应 repo 了解具体任务细节:PaddlePaddle/PaddleScience#379

任务名称 tracking issue mentor
API 文档补全 PaddleScience#686 @HydrogenSulfate
补充汽车CFD数据集(Ahmed)至 PaddleScience PaddleScience#668 @wangguan1995
补充汽车CFD数据集(Shape-Net Car)至 PaddleScience PaddleScience#666 @wangguan1995
迁移 RegAE 案例至 PaddleScience PaddleScience#440 @HydrogenSulfate

飞桨大模型套件任务列表

可前往对应 repo 了解具体任务细节:PaddlePaddle/PaddleMIX#272

任务名称 难度 任务描述 tracking issue mentor
cogVLM模型复现向前推理 🌟 CogVLM 是一个强大的开源视觉语言模型,利用视觉专家模块深度整合语言编码和视觉编码,在10项权威跨模态基准上取得了SOTA性能 PaddleMIX#249 @LokeZhou
新增模型vits-svc模型 🌟🌟 vits-svc支持是歌声转换和歌声克隆 PaddleMIX#251 @LokeZhou
新增grounding_dion微调能力 🌟🌟 Grounding_dino是开放集合的目标检测模型,paddlemix已实现前向推理 PaddleMIX#254 @LokeZhou
新增人像美肤模型 🌟 人像美肤模型可用于对图像中的人体皮肤进行处理,实现匀肤(处理痘印、肤色不均等)、去瑕疵(脂肪粒、斑点、痣等)以及美白等功能。模型仅对裸露的皮肤进行修饰美化,不影响其他区域。当前Paddle仓库中缺少关于人脸美肤的能力,因此需要开发者进行添加 PaddleMIX#255 @LokeZhou
新增音乐生成(Music Generation)gradio应用(@LokeZhou 🌟🌟 为音乐生成应用新增gradio demo,参考Gradio应用介绍image-to-music_AI应用 PaddleMIX#257 @LokeZhou
Custom Diffusion 训练支持 🌟🌟 PaddleMIX ppdiffusers新增custom_diffusion训练流程 PaddleMIX#267 @LokeZhou
wuerstchen 训练支持 🌟🌟 PaddleMIX ppdiffusers新增wuerstchen训练流程 PaddleMIX#269 @LokeZhou
instruct_pix2pix 训练支持 🌟🌟 PaddleMIX ppdiffusers新增instruct_pix2pix训练流程 PaddleMIX#270 @LokeZhou
Checkpoint Merger 🌟 PaddleMIX ppdiffusers新增 checkpoint merger pipeline PaddleMIX#271 @LokeZhou

飞桨开发套件任务列表

可前往对应 repo 了解具体任务细节:PaddlePaddle/PaddleOCR#10223

任务名称 任务描述 tracking issue mentor
MedicalSeg增加滑窗推理功能 3D医疗图像中缺少滑窗推理推理功能,滑窗推理可以进一步增强任意模型的精度 PaddleSeg#3536 @shiyutang
增加类激活图 激活图可视化能够可以帮助理解深度学习模型任务中的决策过程。通过观察模型关注的区域,可以了解模型是如何根据不同区域的特征来进行分类决策的,是一项十分有意义且重要的功能 PaddleSeg#3538 @shiyutang
增加训练图像、推理图像、标签图像可视化 飞桨支持强大的训练可视化工具VisualDL,用于记录和监控训练过程,可以在每次模型保存过程中,增加训练图像、推理图像、标签图像可视化,更直观地感受训练效果 PaddleSeg#3545 @shiyutang
CAT-Seg (CVPR'2023)模型复现 CAT-Seg是open-vocabulary semantic segmentation的前沿模型,其提出了一种cost aggregation方法将CLIP表征应用于像素级分割任务,在多个数据集上达到了开放集分割的SOTA PaddleSeg#3535 @shiyutang
VPD模型+下游任务(视觉感知、图像分割、深度估计) VPD是结合Diffusion Models的图文预训练模型,可以广泛的应用于下游任务,如视觉感知、图像分割、深度估计等等,且均取得了不错的效果。可以将VPD接入PaddleSeg中,并应用于下游任务中 PaddleSeg#3540 @shiyutang
新增图文对话模型X-GPT X-Decoder 集成了图像理解的多类任务,结合GPT和SD相关生成模型就可以实现All-in-One的图文对话式agnet PaddleSeg#3541 @shiyutang
验证并提升SAM+Clip在语义分割场景下的zero-shot分割精度 以语义分割为代表的视觉任务存在泛化性差的问题,即每次在新数据上都需要重新训练。大模型的发展利用图文链接的形式大大提升了模型的泛化性,但是前沿论文对于zero-shot的研究表明,完全的zero-shot的分割精度依旧较低。因此我们借用clip中对zero-shot的定义,即在未见过的图片而非是未见过的类别上,查看CLIP+SAM模型的分割效果(这一定义也十分有实用意义),并借用前沿论文的**对baseline进一步优化。这一举动将验证并优化语义分割模型在未见过的数据上的泛化性 PaddleSeg#3542 @shiyutang
【Bug Fix】humanseg显存泄漏 使用PaddleSeg进行人像分割时,对大批量数据进行人像分割推理时,内存释放不充分,出现内存堆积问题,触发Linux OOM机制导致程序被kill。 PaddleSeg#3543 @shiyutang
【Bug Fix】modnet推理问题(@munibkhanali 使用modnet进行image matting,在将其转换为 paddlelite 兼容模型时,出现报错,具体参考(#3477 PaddleSeg#3544 @shiyutang
补充Satrn识别模型TIPC(@tangshiyu 新增的Satrn模型缺少TIPC,完成tipc有利于上手训推全流程自动化脚本验证过程 PaddleOCR#11133 @shiyutang
增加多卡评估(@flytocc 目前PaddleDetection仅支持单卡评估,希望支持多卡评估 PaddleDet#8682 @shiyutang
为PaddleOCR增加训练时周期性验证的开关(@tangshiyu 为PaddleOCR增加训练时周期性验证的开关;为PaddleOCR增加eval_epoch_step参数。与PaddleCV的其它基础套件PaddleSeg、PaddleDetection、PaddleClas、Paddle3D等不同,PaddleOCR不支持上述功能,这导致包括但不限于如下问题:用户有时只想要将模型训练一定的迭代轮数,并不希望在训练时进行精度评估(这可能带来额外的时间开销),而目前PaddleOCR无法优雅地满足这个需求,只能通过设定一个较大的eval_batch_step数值来实现。更换数据集后,由于数据集大小发生改变,用户往往也需要修改eval_batch_step配置,以使得eval频率合适。PaddleOCR中实现的是epoch-based trainer,在配置文件中设置的也是epoch_num而不是num_iters,但eval_batch_step却是iters粒度的控制,存在风格不契合的问题。 PaddleOCR#11132 @shiyutang

💡 开放任务

任何在使用和开发过程中遇到的 New Feature 或 Bug,你都可以通过提 Issue 的方式与整个开源社区开发者沟通交流,明确的 Feature & Bug 可以通过向对应的代码仓库提交 PR 来补充和完善。你既可以解决自己提出的 Issue,同时非常欢迎你解决其他人提出的 Issue,在开放任务中,你会拥有更高的自由度来定义和拆解任务,也可以选择独立或组队的方式完成这些挑战。

  • good first issue 通常是一些小功能的开发、bug 的修复或之前开发者未完成的功能,适合新手入门。
  • 请务必在 PR 中 @luotao1@Ligoml 确保打上了活动标签 HappyOpenSource 快乐开源活动issue与PR ,这样你的贡献会被纳入礼品发放的贡献统计中。

参考链接:

Ligoml commented

已结项的任务

核心框架

任务名称 结项时间 tracking issue mentor
🎉 Paddle 之艾尔登(IR Dialect)快乐勇士挑战赛 ⚔ 2024/1/16 #55205 @zhangbo9674 @kangguangli @Aurelius84
✅新IR Python API适配升级 2024/1/16 #58067 @MarioLulab @YuanRisheng @0x45f
✅cmake单测依赖治理 2024/1/3 #60013 @Galaxy1458 @risemeup1
✅ 分批次修改已有代码的示例 2023/11/3 #55629 @SigureMo @sunzhongkai588 @megemini
✅Ruff 代码风格升级 2023/11/3 #57367 @gouzil @SigureMo
✅新 IR API 推全升级 2023/9/27 #57097 @YuanRisheng @0x45f
✅Fluid通信算子兼容升级 2023/9/27 #57102 @GhostScreaming
✅数据类型扩展任务 2023/9/27 #54871 @zhangting2020
✅Pytorch-Paddle代码转换工具开源任务 2023/9/27 PaConvert#112 @zhwesky2010

科学计算

任务名称 结项时间 tracking issue mentor
✅迁移 CFDGCN 案例至 PaddleScience 2023/12/26 PaddlePaddle/PaddleScience#441 @HydrogenSulfate
✅基于hydra的案例改造计划 2023/11/15 PaddlePaddle/PaddleScience#571 @HydrogenSulfate
✅复现 Phy-LSTM 论文 2023/9/26 PaddlePaddle/PaddleScience#449 @HydrogenSulfate
✅迁移 DeepCFD 案例至 PaddleScience 2023/9/25 PaddlePaddle/PaddleScience#439 @HydrogenSulfate
✅为PaddleScience添加 HamiltonianMonteCarlo API 2023/9/5 PaddlePaddle/PaddleScience#450 @HydrogenSulfate
✅完善PaddleScience对符号计算(symbolic computation)功能的支持 2023/8/27 PaddlePaddle/PaddleScience#437 @HydrogenSulfate

大模型套件

任务名称 tracking issue mentor
✅AudioLDM2模型复现前向推理 PaddleMIX#250 @LokeZhou
✅新增 StableDiffusionXL Reference Control支持 PaddleMIX#252 @LokeZhou
✅新增Mixture Canvas pipeline PaddleMIX#253 @LokeZhou
✅StableDiffusion Pipeline 升级 PaddleMIX#377 @JunnYu

开发套件

任务名称 tracking issue mentor
✅文字识别返回单字识别坐标 PaddleOCR#10377 @shiyutang
✅套件一致性计划 任务有更新为两个子任务 PaddleOCR#10380 @shiyutang @Bobholamovic
✅【论文复现】Segment Anything 加速版 MobileSAM PaddleOCR#10451 @shiyutang
✅【论文复现】OCR识别模型 Parseq PaddleOCR#10452 @shiyutang
✅【论文复现】检测模型策略--基于PPDET Deformable DETR复现SQR增强策略 PaddleDetection#8498 @shiyutang @juncaipeng
✅【论文复现】分类模型--多标签分类任务ML-Decoder PaddleClas#2896 @cuicheng01 @shiyutang
✅为PaddleSeg添加多标签语义分割的功能 PaddleSeg#3456 @shiyutang
✅【模型压缩推全计划】为六大套件新增模型压缩功能 PaddleOCR#10657 @shiyutang

社区孵化项目

https://github.com/PaddlePaddle/PaddleSOT 孵化成功, Repo 状态后续为 archive ,不接受新代码合入,所有SOT的代码开发转到Paddle Repo。

任务名称 tracking issue mentor
✅⚡️ 性能优化项 1 —— Builtin 函数调用支持 PaddleSOT#305 @SigureMo
✅⚙️ 性能优化项 2 —— 字节码支持 PaddleSOT#305 @SigureMo
✅✨ 性能优化项 3 —— 其他 PaddleSOT#305 @SigureMo
✅🔥 Python 3.11 支持 PaddleSOT#360 @SigureMo

感谢参与的小伙伴们,2023年11月-2024年1月的快乐开源礼品,会年后再发(2.29之前)。
2024年请移步至: