ivy-llc / ivy

Convert Machine Learning Code Between Frameworks
https://ivy.dev
Other
14.02k stars 5.74k forks source link

Would you be willing to collaborate with Paddle on organizing an event aimed at enhancing API usability? #23262

Open luotao1 opened 1 year ago

luotao1 commented 1 year ago

We are from the PaddlePaddle community and have noticed the active engagement of developers from your community. They have been contributing valuable issues and pull requests to improve the PaddlePaddle API, and we greatly appreciate their contributions. Here is a list of these valuable contributions:

Contributor ID commit time issue/PR types link
@MahmoudAshraf97 5/13 PR Doc https://github.com/PaddlePaddle/Paddle/pull/53783
@MuhammadNizamani 6/25 PR Doc https://github.com/PaddlePaddle/Paddle/pull/54858
@dhanush-2501 8/6 PR Doc https://github.com/PaddlePaddle/Paddle/pull/55999
@ozogxyz 8/17 PR Doc https://github.com/PaddlePaddle/Paddle/pull/56379
@zeus2x7 8/26 PR Doc https://github.com/PaddlePaddle/Paddle/pull/56686
@akshatvishu 9/6 PR API https://github.com/PaddlePaddle/Paddle/pull/56992
@ozogxyz 8/17 issue API https://github.com/PaddlePaddle/Paddle/issues/56410
@akshatvishu 9/1 issue API https://github.com/PaddlePaddle/Paddle/issues/56898
@abdulasiraj 9/1 issue API https://github.com/PaddlePaddle/Paddle/issues/56891

In our community, we are also actively engaged in a project known as PaConvert. This project focuses on automating the conversion of PyTorch code. The project's underlying principle involves the analysis of Python AST syntax trees. It generates abstract syntax trees from input code and performs a wide array of operations, including parsing, traversing, matching, editing, replacing, and inserting. This intricate process culminates in the creation of an abstract syntax tree based on PaddlePaddle, subsequently employed to generate PaddlePaddle code.

While PaConvert and UnifyAI employ different design methodologies, both projects encounter challenges related to bugs in the underlying API execution. To address this common challenge, the PaddlePaddle community is actively involved in an open-source initiative aimed at enhancing API usability. Detailed information about this initiative can be found at the following link.

We're now seeking Collaboration:

We are keen to propose the following collaboration:

We firmly believe that our collaboration has the potential to drive substantial progress and further strengthen the PaddlePaddle community, making it even more robust and user-friendly.

luotao1 commented 1 year ago

cc @jzhang533 @Ligoml @zhwesky2010 @jeff41404

dhanush-2501 commented 1 year ago

@luotao1 Of course, I am willing to contribute in any way thats possible. Can you provide more info on that, the links you provided has informations only in Chinese.

djl11 commented 1 year ago

Hi @luotao1,

Thanks for reaching out! We would love to collaborate more deeply with the PaddlePaddle community.

I've also sent an email to the one listed on your GitHub profile, so we can discuss all of these ideas more deeply face-to-face :)

All of your proposals sounds great to me. In answer to your main questions:

Paddle API Bug List No we do not maintain an explicit Paddle API bug list. I presume the bug fixes from our community occur reactively, based on our efforts to populate both our Paddle backend and frontend, and get the tests passing. We will of course continue to report bugs and file PRs as part of this ongoing work :) If there is an open central bug report list that you maintain, then let me know and I can add this to our contributor guide for Paddle, and inform our community to use this rather than creating new issues each time we detect a problem.

Joint Open-Source Initiative to Enhance Paddle API Usability We would love to engage in collaborate efforts and open-source initiatives with the Paddle community! Let's discuss ideas a bit more during a call. We're currently working on a demo which showcases the ability to take popular PyTorch, TensorFlow and JAX models, and deploy/train them directly in Paddle projects. We would love to work with the Paddle community on this blog post, perhaps with shared authorship.

Collaboration Method Open to discussing lots of different ideas here! Pinning Paddle issues to the top of our issues dashboard is not really feasible though unfortunately, given that we want to remain truly open and framework-agnostic, without any explicit priority given to one particular framework etc. Having said this, we would love to work on shared blog posts and shared demos, and we would of course relish the opportunity to participate at events or initiatives within the esteemed Paddle community :)

Happy to hear any follow on thoughts, and looking forward to hopefully chatting face-to-face soon!

Thanks, Dan

djl11 commented 1 year ago

To elaborate on this a bit more @luotao1, one reason we're able to identify so many bugs on a regular basis is because of our exhaustive hypothesis-driven testing pipeline, for both our frontend functions via handle_frontend_function and our backend functions via handle_test.

It should go without saying, that we strongly welcome contributions from the Paddle community on both our Paddle backend (ToDo lists here) and our Paddle frontend (ToDo lists here). This would be a relatively quick way to identify new bugs, via our exhaustive tests.

For more context on what this unlocks, extending the Paddle frontends enables Paddle models to be used in other projects, and extending the Paddle backend enables other models to be used in Paddle projects.

Looking forward to continuing the conversation!

luotao1 commented 1 year ago

I've also sent an email to the one listed on your GitHub profile, so we can discuss all of these ideas more deeply face-to-face :)

@djl11 Thanks for your detailed feedback and your email. We will have an internal discussion at first.

luotao1 commented 1 year ago

@djl11 Sorry for the late reply, we sent an email to you, and we hope the discussion ASAP :) Here are some of our answers:

Significance of Collaboration:

  1. We have a bi-weekly online Paddle framework contributor meetup, if you are interested in giving a talk to introduce your project at this event, please let us know.
  2. We are honored to participate in this blog post, after you finish writing, we can have a review.

Collaboration Scope:

  1. Paddle API Bug List (include docs) and Collaboration: Thanks very much for continuing to report bugs and file PRs. We prefer creating new issues each time when you detect a problem. The issues could be filled out in a form or labeled by our engineers later.
  2. Joint Open-Source Initiative to Enhance Paddle API Usability: a. We are honored to welcome contributions from the Paddle community on both the Paddle backend (ToDo lists here) and the Paddle frontend (ToDo lists here). How about creating an issue in Paddle Repo and introducing it at the bi-weekly online Paddle framework contributor meetup? b. The API usability enhancement issue has already been translated into English, you can see the following link.

Thanks, Tao

luotao1 commented 3 months ago

is this initiative still active?

@ozogxyz Yes, do you have some ideas ?