-
-
Notifications
You must be signed in to change notification settings - Fork 41
[REVIEW]: Φ-ML: A Science-oriented Math and Neural Network Library for Jax, PyTorch, TensorFlow & NumPy #6171
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
Comments
Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks. For a list of things I can do to help you, just type:
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
|
|
Wordcount for |
|
@editorialbot add @gauravbokil8 as reviewer |
@gauravbokil8 added to the reviewers list! |
👋🏼 @holl- @wandeln @chaoming0625 @gauravbokil8, this is the review thread for the paper. All of our communications will happen here from now on. As a reviewer, the first step is to create a checklist for your review by entering
as the top of a new comment in this thread. These checklists contain the JOSS requirements. As you go over the submission, please check any items that you feel have been satisfied. The first comment in this thread also contains links to the JOSS reviewer guidelines. The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention Please feel free to ping me (@mstimberg) if you have any questions/concerns. |
Review checklist for @gauravbokil8Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
|
Review checklist for @chaoming0625Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
|
Review checklist for @wandelnConflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
|
👋 Hi everyone, and a Happy New Year ✨ ! @wandeln and @chaoming0625 I see that you checked off most/all the boxes in the checklist. Are you still planning on commenting on any specifics and/or suggest any changes to the software or paper? Or would you recommend it for acceptance in JOSS in its current state? Thanks 🙏 |
@editorialbot generate pdf |
Hi @mstimberg . I recommend the paper and code for acceptance in its current state. The code functionalities and corresponding documentation are complete and function as expected. The examples are helpful as well. |
Sorry, @mstimberg , I have been delayed by some other matters, and I will push forward with the review as soon as possible. |
Dear Philipp, This is an excellent work that introduces a systematic array/tensor operation paradigm based on explicitly named dimensions. However, I have some questions:
Minor comments:
Finally, thank you for the submission. I hope these suggestions are helpful for improving the paper. Please let me know if you would like me to clarify or expand on any point. Best, Chaoming Wang |
Hi @chaoming0625, Thanks for your great comments! I've added the proposed references (except for labeled_tensor which doesn't seem to exist anymore) and fixed the error in the documentation. Custom CUDA kernels are currently only available for TensorFlow. However, these are optional and only increase performance for certain operations which are not natively implemented in TensorFlow. We have considered adding custom PyTorch operations, but this would only lead to minor gains in performance. By science-oriented, we don't mean to say that all of science should use this library. Instead, PhiML focusses scientific applications rather than pure machine learning. For applications that focus more on network architectures and can work with supervised learning, there is little benefit to using PhiML. This library shines when it comes to differentiable simulations, optimization with analytic derivatives, and integrating machine learning tools into scientific applications. Automatic reshaping does have an impact on performance, but only when running the Python code as-is. Once JIT-compiled, these overheads are fully optimized out. As for performance benchmarks, I'm planning to write a simple simulation in PhiML and the same in PyTorch/TensorFlow/Jax natively to compare the runtime with JIT-compilation. Is this what you meant? Unlike with related libraries, our named dimension implementation is only one part of the puzzle. The arguably bigger impact is achieved by dimension types. In fact, all library functions are agnostic to the dimension names and select the dimensions to operate on based on their types. The same is recommended for all user-written library/helper functions. Dimension names should only be assigned at the highest level by the user, and should ideally be fully contained in one file. Remembering a handful of dimension names seems no more difficult than remembering the dimension order in another library, something that is not necessary in PhiML. We have applied this paradigm to many different kinds of tasks, from custom neural network libraries to PDEs to rigid body simulations to curve fitting problems. Despite there being only a handful of dimension types, the system has scaled remarkably well to all settings. Dimension names are especially useful in scientific tasks as a wider range of tensor functions is used there compared to pure machine learning applications. Best, |
@chaoming0625 I've uploaded a preliminary performance comparison notebook, comparing Φ-ML vs native performance. |
@chaoming0625 I've also uploaded a preliminary notebook showcasing the advantages of named and typed dimensions. I was again surprised by how difficult many things are in PyTorch. |
@editorialbot generate pdf |
Dear @holl- , Thank you for addressing most of my concerns. One additional thought is still on the Based on my understanding, numerical computing frameworks like NumPy, PyTorch, and JAX have demonstrated significant impact in scientific computing (Nature 585, 357–362, 2020; Nature Methods, 17, 261–272). These frameworks are specifically designed for scientific purposes and have become ubiquitous across scientific disciplines. Considering this, it's debatable to claim Best, Chaoming |
|
Element inline-formula is not declared in ext-link list of possible children |
@holl- Unfortunately there is an error in the document, not the PDF, but the JATS file that is used for archiving the paper. The reason is the link to I'll leave it up to you what alternative you prefer, it could be e.g.
rendered as PhiFlow ( or
rendered as |
@mstimberg Okay, I replaced the link by the first option and updated the branch. |
@editorialbot generate pdf |
@editorialbot recommend-accept
Thanks a lot, trying again. |
|
👋 @openjournals/dsais-eics, this paper is ready to be accepted and published. Check final proof 👉📄 Download article If the paper PDF and the deposit XML files look good in openjournals/joss-papers#5072, then you can now move forward with accepting the submission by compiling again with the command |
|
@editorialbot accept |
|
Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository. If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file. You can copy the contents for your CITATION.cff file here: CITATION.cff
If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation. |
🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘 |
🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨 Here's what you must now do:
Any issues? Notify your editorial technical team... |
@holl- the JOSS website (and citation metadata) can't handle TeX. What would a plain-text version of this be? e.g., Phi_ML or something like that: https://joss.theoj.org/papers/10.21105/joss.06171 |
Ah, that's unfortunate. If Unicode is fine, Φ_ML would be another option, I guess. |
@mstimberg @arfon |
OK, @wandeln, @chaoming0625, @gauravbokil8 – many thanks for your reviews here and to @mstimberg for editing this submission! JOSS relies upon the volunteer effort of people like you and we simply wouldn't be able to do this without you ✨ @holl- – your paper is now accepted and published in JOSS ⚡🚀💥 |
🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉 If you would like to include a link to your paper from your README use the following code snippets:
This is how it will look in your documentation: We need your help! The Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:
|
@mstimberg @arfon @wandeln @chaoming0625 @gauravbokil8 Thank you all for your support 🎉🎉🎉 |
@holl- Good luck |
Submitting author: @holl- (Philipp Holl)
Repository: https://github.com/tum-pbs/PhiML
Branch with paper.md (empty if default branch): joss-submission
Version: 1.4.0
Editor: @mstimberg
Reviewers: @wandeln, @chaoming0625, @gauravbokil8
Archive: 10.6084/m9.figshare.25282300
Status
Status badge code:
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
Reviewer instructions & questions
@wandeln & @chaoming0625, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review.
First of all you need to run this command in a separate comment to create the checklist:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @mstimberg know.
✨ Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest ✨
Checklists
📝 Checklist for @chaoming0625
📝 Checklist for @gauravbokil8
📝 Checklist for @wandeln
The text was updated successfully, but these errors were encountered: