ludwig-ai / ludwig

Low-code framework for building custom LLMs, neural networks, and other AI models
http://ludwig.ai
Apache License 2.0
11.08k stars 1.19k forks source link

Questions regarding Ludwig about drag-and-drop UI #612

Open DonaldTsang opened 4 years ago

DonaldTsang commented 4 years ago

People on the internet kept echoing the idea that Ludwig is "drag and drop" but I have not seen any documentation that make this claim, is it true?

For reference here are some "drag and drop" repos

msaisumanth commented 4 years ago

@DonaldTsang It's not a drag and drop tool. It should be possible to make it a Drag and drop tool but would require a lot of UI resources.

If you or anyone have experience and would like to contribute, we'd be more than happy to help.

DonaldTsang commented 4 years ago

I know, right? Here are some articles claiming that it IS drag-and-drop. https://pureai.com/articles/2019/02/11/uber-ludwig.aspx https://hackernoon.com/10-must-know-open-source-tools-for-machine-learning-rb1wc34ce https://algorithmia.com/blog/six-open-source-machine-learning-tools-you-should-know

I think I know where it began https://eng.uber.com/managing-data-workflows-at-scale/

We are also currently developing a generalized visual drag and drop tool for workflow creation on top of our system.

w4nderlust commented 4 years ago

Looked at the links, you are right there is some confusion as Ludwig has no frag-and-drop UI at the moment.

DonaldTsang commented 4 years ago

@w4nderlust maybe add a note in the ReadME regarding such non-feature.

w4nderlust commented 4 years ago

@w4nderlust maybe add a note in the ReadME regarding such non-feature.

Thanks for the suggestion, but I don't think it's necessary. I will reach out to the authors of the articles to make ask them to edit the text.

theodor38 commented 4 years ago

speaking of drag and drop, I have just ran into this hidden gem called Orange. Pretty cool stuff https://orange.biolab.si/

It is an open-source data visualization, machine learning and data mining toolkit @w4nderlust

DonaldTsang commented 4 years ago

@theodor38 unfortunately they refused to add Recurrent Neural Networks (RNN) and other more complex network structures into their repos, if you can find someone to fork it and make it happen that would be great. https://github.com/biolab/orange3/issues/3522 https://github.com/biolab/orange3/issues/3297 https://github.com/biolab/orange3/issues/2094

ifokeev commented 4 years ago

@DonaldTsang it will be too expensive to create UI for ludwig. I created for myself, but it took so much time. PIero wouldn't have any ability to finish the core, if he spends team time on the UI.

DonaldTsang commented 4 years ago

@ifokeev perhaps crowd-fund this UI building project, because there is a societal demand for ML UI out there? Also is it possible to add features to established UI-based ML toolkits like Orange3 or EasyML to simplify some of the work?

ifokeev commented 4 years ago

@DonaldTsang

perhaps crowd-fund this UI building project, because there is a societal demand for ML UI out there?

that's not easy to valuate this UI and finish the crowd-funding company. I couldn't get from the community $1M+. But idea is cool.

Also is it possible to add features to established UI-based ML toolkits to simplify some of the work?

I don't know yet any UI that could work with the neural networks and bigdata. It's kind of commodity for now. We have to wait 1-2 years to get open sourced UI for neural networks, I think.

DonaldTsang commented 4 years ago

@ifokeev

that's not easy to valuate this UI and finish the crowd-funding company. I couldn't get from the community $1M+. But idea is cool.

So it has been tried and failed? That is slightly unfortunate.

I don't know yet any UI that could work with the neural networks and bigdata. It's kind of commodity for now. We have to wait 1-2 years to get open sourced UI for neural networks, I think.

I can see some examples like https://github.com/ICT-BDA/EasyML which uses Tensorflow, and others on the main issue list that supports Neural Networks and other computations due to support of with either TF or PyTorch... and then there are brave souls like https://github.com/TommyX12/tensorbuilder and https://github.com/Cloud-CV/Fabrik who actually tried to go directly from TF to UX (and let's not forget https://github.com/lanpa/tensorboardX https://github.com/tensorflow/tensorboard and https://github.com/sharmalab/tensorflow-gui that can be modified to a proper drag-and-drop graph use case).

Here are the issues with these repos:

ifokeev commented 4 years ago

@DonaldTsang

So it has been tried and failed? That is slightly unfortunate

No. I mean, it's too difficult to start crowdfunding campaign.

I can see some examples like https://github.com/ICT-BDA/EasyML which uses Tensorflow, and others on the main issue list that supports Neural Networks and other computations due to support of with either TF or PyTorch...

Most useful here is EasyML, but yes, it's java. I use javascript as my main project language, all experiments launching in docker containers, so It's possible to add any other NN frameworks.

w4nderlust commented 4 years ago

My take on this is that it would not be that difficult to write a GUI for building Ludwig models, but it definitely requires time and knowledge of frontend development. I can definitely learn that and give it a shot, but as @ifokeev is saying, my time is probably better spent on the core.

If someone from the community has time and will to contribute such a thing, it would be lovely, I can provide guidance and ideas, I have something pretty well defined in mind, so it wouldn't be shooting in the dark.

Regarding crowdfounding it, I have no experience with that, but the main point is that even if we can get some money for it, then we would still need to find someone who actually would go and implement it. I would potentially be open to the idea in case.

DonaldTsang commented 4 years ago

but it definitely requires time and knowledge of frontend development. I can definitely learn that and give it a shot, but as @ifokeev is saying, my time is probably better spent on the core. the main point is that even if we can get some money for it, then we would still need to find someone who actually would go and implement it

Fair enough.

If someone from the community has time and will to contribute such a thing, it would be lovely, I can provide guidance and ideas, I have something pretty well defined in mind, so it wouldn't be shooting in the dark.

In that case is it possible to advertise this "community goal"?

w4nderlust commented 4 years ago

In that case is it possible to advertise this "community goal"?

Not sure exactly what it entails, but I guess yes, it could definitely be something I'd love the community to contribute.

flozi00 commented 4 years ago

My skills in GUI development are unfortunately very limited, but it would be a very good feature. You could integrate new models, like the new google reformer model, into ludwig much faster. Would it be an option to create the models with deepcognition and then somehow import the exported code into ludwig ? https://deepcognition.ai/features/deep-learning-studio/

w4nderlust commented 4 years ago

The GUI I have in mind is not a GUI for writing TF / Keras code like the part of deepcognition you are referring to. The Keras code that deepcognition outputs would is already really easy to add to Ludwig, as is any other TF model, I don't think the Ludwig GUI should do that. What I believe it should do is it should help creating Ludwig model configuration files and allow to run the CLI commands using forms.