Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
luotao1 opened this issue Sep 8, 2023 · 9 comments
Assignees

Comments

@luotao1
Copy link

luotao1 commented Sep 8, 2023

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 PaddlePaddle/Paddle#53783
@MuhammadNizamani 6/25 PR Doc PaddlePaddle/Paddle#54858
@dhanush-2501 8/6 PR Doc PaddlePaddle/Paddle#55999
@ozogxyz 8/17 PR Doc PaddlePaddle/Paddle#56379
@zeus2x7 8/26 PR Doc PaddlePaddle/Paddle#56686
@akshatvishu 9/6 PR API PaddlePaddle/Paddle#56992
@ozogxyz 8/17 issue API PaddlePaddle/Paddle#56410
@akshatvishu 9/1 issue API PaddlePaddle/Paddle#56898
@abdulasiraj 9/1 issue API PaddlePaddle/Paddle#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:

  • Paddle API Bug List (include docs) and Collaboration:
    We are interested in knowing if your community maintains a Paddle API bug list. If such a list exists, would you be open to collaborating with us? We also maintain our own bug list and are willing to jointly create and maintain this resource, fostering mutual development.

  • Joint Open-Source Initiative to Enhance Paddle API Usability:
    We have organized related open-source events and are interested in collaborating with the UnifyAI community to jointly organize an open-source initiative aimed at improving the usability of the Paddle API. If UnifyAI has similar intentions or ongoing activities in this area, we would be delighted to explore opportunities for collaboration.
    The resolution of these issues would significantly benefit the UnifyAI community's endeavors. Essentially, despite the differing paths that lead us to identify these issues, our collective efforts contribute positively to both communities' progress.

We are keen to propose the following collaboration:

  • Significance of Collaboration:
    Our collaboration has several key benefits. Firstly, it entails addressing Paddle API issues encountered by both UnifyAI and PaConvert during code conversion, facilitating smoother progress in our respective projects. Secondly, it involves expanding our collective influence, as PaddlePaddle is willing to extend invitations to UnifyAI community members for participation in relevant upcoming events. Additionally, we are open to exploring any additional collaboration opportunities that the UnifyAI community may wish to pursue.

  • Collaboration Scope:
    Our collaboration scope includes assisting in resolving Paddle API bugs identified by your esteemed community, pending confirmation by the PaddlePaddle community regarding the necessity of fixes. Additionally, it involves resolving Paddle API bugs identified by the PaddlePaddle community. We are also committed to addressing documentation concerns by directly submitting pull requests for improvements.

  • Collaboration Method:
    Regarding the format of our collaboration, we kindly inquire about the feasibility of prioritizing collaborative issues by pinning them at the top of the issue page. Additionally, we propose providing awards and certificates based on contribution value. You can find an example of this at the following link.

    • Awards for the current round will conclude on November 11th, with prizes distributed accordingly.
    • Certificates, akin to the one awarded to MahmoudAshraf97 for open-source contributions, will be sent to all contributors upon the release of PaddlePaddle v2.6. If preferred, we can also provide certificates in English.
image image

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
Copy link
Author

luotao1 commented Sep 8, 2023

@dhanush-2501
Copy link
Contributor

@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
Copy link
Contributor

djl11 commented Sep 9, 2023

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
Copy link
Contributor

djl11 commented Sep 9, 2023

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
Copy link
Author

luotao1 commented Sep 11, 2023

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
Copy link
Author

luotao1 commented Sep 15, 2023

@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
Copy link
Author

luotao1 commented Aug 19, 2024

is this initiative still active?

@ozogxyz Yes, do you have some ideas ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants
@luotao1 @djl11 @Daniel4078 @dhanush-2501 and others