RFC: archive the current ONNX.jl implementation and replace with BaseONNX.jl's #24
Replies: 5 comments 14 replies
-
Sounds great! One idea I have had in my head is the one ought to be careful with 'namespacing' so that e.g. someone tabbing ONNX in the pkg REPL does not get multiple options, most of which don't seem to do anything. Perhaps this is a pointless (who installs a package without looking at the docs first?) and futile (as we can't control who registers packages) endeavour anyways and we should perhaps instead take the opportunity to make ONNX.jl useable and not locked in on one framework. |
Beta Was this translation helpful? Give feedback.
-
I think that is the proposal. I can do this whenever I have the time and energy. If someone else wants to do it then I'd be happy to get off the hook, no need to bother about preserving authorship or anything. I guess that things like writing the readme would be easier for me though as I have written the non-autogenerated parts and I'm probably the only person who has used it. I would also like to add documentation to all functions which is not much work for me once I get around to it. |
Beta Was this translation helpful? Give feedback.
-
Now when FluxML/ONNX.jl#46 is merged I believe we can move forward and talk about more high-level machinery. I have a couple of ideas, but given all the prior effort (e.g. this thread) I guess quite a thought out plan already exists (even if it's not agreed on yet). If so, I'm ready to jump in and provide the workforce. |
Beta Was this translation helpful? Give feedback.
-
How is this going? |
Beta Was this translation helpful? Give feedback.
-
I just came back to ONNX.jl and plan to spend the next month on it. At the moment I'm working on importing HuggingFace's BERT, which included around 10-15 operators we don't yet support. Most operators are quite simple and only need proper testing, but there's a couple of tricky ones (Gather is bending my mind right now!). |
Beta Was this translation helpful? Give feedback.
-
Relevant Zulip discussion: https://julialang.zulipchat.com/#narrow/stream/237432-ml-ecosystem-coordination/topic/ML.20and.20AD.20dev.20call
Looking at https://github.com/FluxML/ONNX.jl/issues, I think it's fair to say that ONNX.jl is unmaintained and does not function on remotely recent versions of Julia. As such, I propose revamping the implementation and creating a v0.2 with something that is maintained and actively used by members of the community. Currently, the best candidate is BaseONNX.jl, or more specifically @DrChainsaw's fork at https://github.com/DrChainsaw/ONNXmutable.jl/tree/master/src/baseonnx. This package only exports the protobuf definitions and model reading/writing, but at least it works!
I would add that this is also an opportunity to create a proper ONNX package instead of an "ONNX for Flux" implementation like ONNX.jl is now. @dfdx, @GunnarFarneback and @egeersu can probably provide some non-Flux use-cases.
Beta Was this translation helpful? Give feedback.
All reactions