Skip to content

Commit

Permalink
7th hackathon task list (#957)
Browse files Browse the repository at this point in the history
* 7th hackathon

* add png
  • Loading branch information
sunzhongkai588 authored Sep 14, 2024
1 parent eba2110 commit 8061fbd
Show file tree
Hide file tree
Showing 6 changed files with 1,016 additions and 1 deletion.
Binary file added hackathon/hackathon_7th/img/image-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added hackathon/hackathon_7th/img/image-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
此文档展示 **PaddlePaddle Hackathon 第六期活动——Fundable Projects** 任务详细介绍。Fundable Projects 赛道定位硬核任务,要求高水平的开发者独立进行任务拆解和完成。

## 产出要求

- 任务拆解 tracking issue
- 答辩 PPT
- 书面的技术报告
- 代码运行无误,通过社区 maintainers 的评审并合入代码仓库。

## 任务详情

### 一、Paddle Operator 算子库非通信算子退场/迁移

**任务背景:**

飞桨 Paddle 自 2.0 版本以来,进行了多个重大机制改造。包括:高可复用算子库 PHI、全新的动态图体系。随着新机制的发布使用,旧机制和功能代码需要进行退场和移除,保持架构清晰和代码库的条理性,为内外部开发者提供更好的二次开发环境。这就包括了 Operators 算子库的清理。

**详细描述:**

- 梳理 105 个 Operators 算子库算子,明确迁移/删除
- 105 个算子清单如下:soft_relu,class_center_sample,feed_sparse_coo_tensor,feed_dense_tensor,feed_strings,fetch_v2,crop,crop_grad,data_norm,data_norm_grad,data_norm,data_norm_grad,anchor_generator,anchor_generator,collect_fpn_proposals,collect_fpn_proposals,generate_proposals,generate_proposals,moving_average_abs_max_scale,straight_through_estimator_grad,moving_average_abs_max_scale,straight_through_estimator_grad,resnet_basic_block,resnet_basic_block_grad,resnet_unit,resnet_unit_grad,resnet_unit,resnet_unit_grad,get_tensor_from_selected_rows,bilinear_interp,bilinear_interp_grad,nearest_interp,nearest_interp_grad,trilinear_interp,trilinear_interp_grad,linear_interp,linear_interp_grad,bicubic_interp,bicubic_interp_grad,bilinear_interp,bilinear_interp_grad,nearest_interp,nearest_interp_grad,trilinear_interp,trilinear_interp_grad,linear_interp,linear_interp_grad,bicubic_interp,bicubic_interp_grad,load_combine,load_combine,load_combine,load,load_sr,lod_reset,lod_reset_grad,lod_reset,lod_reset_grad,lookup_table,lookup_table_grad,lookup_table,lookup_table_grad,margin_cross_entropy,margin_cross_entropy_grad,matmul,matmul_grad,matmul_grad_grad,matmul,matmul_grad,memcpy_d2h,memcpy_h2d,nce,nce_grad,nearest_interp,bilinear_interp,matmul,matmul_grad,pull_box_sparse,push_box_sparse,pull_gpups_sparse,push_gpups_sparse,pull_gpups_sparse,push_gpups_sparse,push_dense,reshape,reshape_grad,row_conv,row_conv_grad,row_conv,row_conv_grad,save_combine_tensor,save_combine_vocab,save_combine_tensor,save_combine_vocab,save,save_sr,seed,seed,soft_relu,soft_relu_grad,faster_tokenizer,sync_batch_norm,sync_batch_norm_grad,sync_batch_norm_coo,sync_batch_norm_coo_grad
- 根据梳理结论,迁移/删除算子

**验收说明:**

- 完成 105 个算子的迁移/删除

**技术要求:**

- 熟练掌握 Python 语言
- PIH 算子库的基本原理
- 了解 Operator 算子库的基本原理

**参考资料:**

- [飞桨 PHI 算子库介绍](https://www.paddlepaddle.org.cn/support/news?action=detail&id=2994)
- [PHI 算子库 kernel 注册全流程](https://github.com/PaddlePaddle/community/blob/master/pfcc/paddle-code-reading/PHI_kernel_registration/PHI_kernel_registration.md)
- [Kernel 选择分发体系梳理与优化](https://github.com/PaddlePaddle/community/blob/master/pfcc/paddle-code-reading/kernel_selection/20221130_kernel_selection.md)

### 二、Paddle Operator 算子库通信算子退场/迁移

**任务背景:**

飞桨 Paddle 自 2.0 版本以来,进行了多个重大机制改造。包括:高可复用算子库 PHI、全新的动态图体系。随着新机制的发布使用,旧机制和功能代码需要进行退场和移除,保持架构清晰和代码库的条理性,为内外部开发者提供更好的二次开发环境。这就包括了 Operators 算子库的清理。

**详细描述:**

- 梳理 115 个 Operators 算子库算子,明确迁移/删除
- 115 个算子清单如下:alltoall,alltoall,barrier,barrier,c_allgather,c_allgather,c_allgather,c_allreduce_avg,c_allreduce_max,c_allreduce_max,c_allreduce_max,c_allreduce_min,c_allreduce_min,c_allreduce_min,c_allreduce_prod,c_allreduce_prod,c_allreduce_prod,c_allreduce_sum,c_allreduce_sum,c_allreduce_sum,c_broadcast,c_broadcast,c_broadcast,c_comm_init_all,c_comm_init_all,c_concat,c_concat,c_concat,c_reduce_avg,c_reduce_max,c_reduce_max,c_reduce_max,c_reduce_min,c_reduce_min,c_reduce_min,c_reduce_prod,c_reduce_prod,c_reduce_prod,c_reduce_sum,c_reduce_sum,c_reduce_sum,c_reducescatter,c_reducescatter,c_scatter,c_scatter,c_softmax_with_cross_entropy,c_softmax_with_cross_entropy,c_softmax_with_cross_entropy_grad,c_softmax_with_cross_entropy,c_softmax_with_cross_entropy_grad,c_sync_calc_stream,c_sync_calc_stream,c_sync_comm_stream,c_sync_comm_stream,global_gather,global_gather,global_scatter,global_scatter,mp_allreduce_sum,mp_allreduce_sum,mp_allreduce_sum,partial_allgather,partial_allgather,partial_recv,partial_recv,partial_send,partial_send,recv_v2,recv_v2,send_v2,send_v2,save_combine,load_combine,c_concat,c_split,c_embedding,c_embedding_grad,c_softmax_with_cross_entropy,c_softmax_with_cross_entropy_grad,c_identity,c_sync_calc_stream,c_allreduce_sum,mp_allreduce_sum,c_allreduce_min,c_allreduce_max,c_allreduce_prod,c_broadcast,barrier,number_count,limit_by_capacity,prune_gate_by_capacity,random_routing,assign_pos,global_scatter,global_gather,fused_attention,fused_attention_grad,fused_feedforward,fused_feedforward_grad,fused_multi_transformer_int8,fused_multi_transformer,ncclAllReduce,ncclBcast,ncclReduce,distributed_fused_lamb,distributed_fused_lamb,distributed_lookup_table,distributed_lookup_table,distributed_push_sparse,distributed_push_sparse,send_and_recv,pull_sparse,push_sparse,pull_sparse_v2,push_sparse_v2
- 根据梳理结论,迁移/删除算子

**验收说明:**

- 完成 115 个算子的迁移/删除

**技术要求:**

- 熟练掌握 Python 语言
- PIH 算子库的基本原理
- 了解 Operator 算子库的基本原理
- 了解通信算子的基本原理

**参考资料:**

- [飞桨 PHI 算子库介绍](https://www.paddlepaddle.org.cn/support/news?action=detail&id=2994)
- [PHI 算子库 kernel 注册全流程](https://github.com/PaddlePaddle/community/blob/master/pfcc/paddle-code-reading/PHI_kernel_registration/PHI_kernel_registration.md)
- [Kernel 选择分发体系梳理与优化](https://github.com/PaddlePaddle/community/blob/master/pfcc/paddle-code-reading/kernel_selection/20221130_kernel_selection.md)

### 三、x2paddle 套件能力建设

**任务背景**

X2Paddle 是飞桨生态下的模型转换工具,致力于帮助其它深度学习框架(Caffe/TensorFlow/ONNX/PyTorch)用户快速迁移至飞桨框架。由于近期 Paddle 新版本的升级存在不兼容部分(如 `paddle.fluid` API 全面退场,0-d tensor,view 行为修改等),需要重新对 X2Paddle 进行适配开发与回归测试,保证模型转换工具的正常运转,转换后模型的功能与精度不受损失。同时,近期大模型领域有新的热门模型发布,需要添加此类模型的转换策略,保证模型转换工具的丰富度和领先性。

**详细描述:**

1. 基于 Paddle 3.0.0-beta 版本对 X2Paddle 进行适配升级,梳理已有堵点并解决。保证 [test_benchmark](https://github.com/PaddlePaddle/X2Paddle/tree/develop/test_benchmark) 目录下已适配的 100+ 模型在 新 Paddle 版本 & 新其他深度学习框架版本下的正常运转。(当时适配版本见[这里](https://github.com/PaddlePaddle/X2Paddle?tab=readme-ov-file#环境依赖)
2. 基于 Paddle 3.0.0-beta 版本,新增 1-2 个大语言模型的转换策略。

**验收说明:**

1. X2Paddle 基于 Paddle 3.0.0-beta 版本,完成 100+ 原有模型的适配。
2. X2Paddle 基于 Paddle 3.0.0-beta 版本,新增 1-2 个大语言模型的转换策略。

**技术要求:**

- 熟悉 Python,工程能力强
- 对深度学习有一定了解,有深度学习框架应用和研发经验(加分项)
- 有大模型相关经验(加分项)

**参考资料:** https://github.com/PaddlePaddle/X2Paddle

### 四、前沿扩散模型飞桨复现

**任务背景:**

FLUX.1 是由 Black Forest Labs 推出的 AI 图像生成模型,拥有 12B 参数,是迄今为止最大的开源文生图模型,目前该团队推出了三款模型变体,分别是快速版-FLUX.1[schnell]、开发版-FLUX.1[dev]和专业版 FLUX.1[pro]。PPDiffusers 是 PaddleMIX 下一款支持多种模态(如文本图像跨模态、图像、语音)扩散模型(Diffusion Model)训练和推理的国产化工具箱,依托于 PaddlePaddle 框架和 PaddleNLP 自然语言处理开发库,目前我们已经完成了套件的训练、推理、应用等基础能力建设,但跨模态文图领域发展迅速,需要从模型、训练、推理等方面不断地跟进与丰富。

**详细描述:**

参考 Diffusers 及 flux 原库完成模型复现、推理 pipeline 复现、模型转换等、lora 训练等,具体包括

- flux.1 基础模型复现,包含其依赖的相关基础组件
- fulx.1 推理 pipeline 构建,包含 FluxPipeline 及 FluxControlNetPipeline
- 提供相关的 paddle 模型权重
- 支持并对齐 flux 的 dreambooth lora 训练

**验收说明:**

- 相关 PR 合入 PaddleMIX/PPDiffusers
- 产出精度对齐数据
- 提供单侧代码,在本地及 CI 测试通过

**技术要求:**

- 熟练掌握 Python 语言
- 熟练使用 PyTorch/Paddle 框架 API
- 熟悉扩散模型原理

**参考资料:**

- https://github.com/black-forest-labs/flux

- https://github.com/huggingface/diffusers/tree/main/src/diffusers/pipelines/flux
Loading

0 comments on commit 8061fbd

Please sign in to comment.