飞桨快乐开源活动全新升级🔥
Ligoml opened this issue · comments
飞桨快乐开源活动起初只是一个「提 PR 领取新年礼物 🎁」#48019 的小型社区活动,一经推出受到了广大社区开发者的喜爱,更是发生了「除夕夜 18 PR」的经典操作。今天快乐开源活动迎来了全新升级 🚀🚀🚀,任务方向更加多元、活动玩法更加灵活、礼品清单更加丰富!快来加入快乐开源,和我们一起共建飞桨~
飞桨团队使用
HappyOpenSource
延续之前的模式,本期快乐开源活动上线「✨ 热身任务」、「🎯 命题任务」与「💡 开放任务」:
- 「✨ 热身任务」通常是一些简单易上手的小练习,如果你是第一次参与开源贡献,参与热身任务会帮你快速掌握这些基础知识;
- 「🎯 命题任务」是一些比较明确和具体的任务,这些任务已经经过飞桨社区开发者和飞桨研发的多轮讨论,是可以直接上手去做的任务,通过 tracking issue 来拆解和追踪任务完成情况;
- 「💡开放任务」包括任何你想做的与飞桨相关的开发任务,请首先通过 issue 的方式和我们沟通交流,任务明确后再启动开发~
在往期活动中,飞桨团队和社区开发者共同落地了 PyTorch 与 Paddle 2.0 API 映射表、第五期黑客松小助手 等开放任务,期望在社区看到越来越多有趣有用的开放讨论和开发任务!
btw 飞桨团队准备了一些参与开源社区的学习资料,希望对你有所帮助:
视频回放🔗:https://aistudio.baidu.com/education/group/info/29434
奖励一览
活动周期
每 3 个月统计一次贡献情况,具体来说就是标签为
HappyOpenSource
注: 5.11-8.11周期内的贡献情况已完成统计,参与活动的开发者请耐心等待快递小哥上门,如有疑问可通过邮箱 📮ext_paddle_oss@baidu.com 联系我们~
各大 Repo 传送门
- 核心框架:核心框架任务列表
- 科学计算:PaddlePaddle/PaddleScience#379
- 飞桨大模型套件(PaddleMIX、PaddleNLP):PaddlePaddle/PaddleMIX#272
- 飞桨套件(OCR、Seg、Clas、NLP、Det、3D):PaddlePaddle/PaddleOCR#10223
✨ 热身任务
这里是一些入门级的热身任务,任务一是 Git 操作练习,任务二是 Paddle 源码编译练习,任务三是跑通 Stable-Diffusion 训练推理,如果你没有相关背景知识,参与热身任务会帮你快速掌握这些基础知识。
任务一:修改飞桨文档,完成你的第一个 PR
修复飞桨文档,往往是许多飞桨社区开发者们参与飞桨开源活动的起点。通过修复飞桨文档并提交 PR,你将熟悉为 Paddle 社区贡献代码的流程规范。我们提供了「文档bug清单」,你可以选择任意数量的有问题的文档,进行认领并提交 PR 修复。
本任务十分简单,基本不需要技术背景。只要你对开源社区怀有热情,即可参与~
mentor:@sunzhongkai588
参考链接:
任务二:拉取 Paddle 代码,完成本地编译
在飞桨框架开发中,编译 Paddle 是一个重要环节,也是很多任务(如 API 开发、算子性能优化、数据类型扩展等)的前置条件。完成本次编译体验,你会对 Paddle 代码有更深入的理解,也便于你参与后续的框架开发任务。
本任务邮件通过验收后,即可收到限量版飞桨开源社区小礼品,数量有限,先到先得~
mentor:@luotao1
参考链接:
- 【热身打卡】开发框架,从编译 paddle 开始
- 常见IDE利用Docker完美查看Paddle源码跳转 @sanbuphy
- 【利用 AI Studio 完成 PaddlePaddle 编译】2024 版 @Marcusryz
任务三:在 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.export 和 paddle.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 ,这样你的贡献会被纳入礼品发放的贡献统计中。
参考链接:
已结项的任务
核心框架
任务名称 | 结项时间 | 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 |