Live data from Hacker News

Show HN: Eclipse Deeplearning4j

projects.eclipse.org

11–20 of 41 posts

Re: Show HN: Eclipse Deeplearning4j

#11
For anyone that hasn't checked out Deeplearning4j yet, and think that Python is the only place where the cool AI stuff happens, you really should check this project out!

Their Gitter channel is absolutely kicking, where lots of the actual devs, including CTO and co-founder Adam Gibson, hang out and /really/ answer /any/ question - I find their responsiveness stunning! (I discussed and reported a minor improvement to the config builder, and it was implemented - literally - the very next day!)

Just recently found the library myself, and I found it very refreshing to be able to utilize my decent Java competence in ML, instead of continuously having to hammer my way through limited Python experience to get things done. (Python also have limited multi-threading capabilities which I found annoying when wanting to do some larger ETL stuff "inline". Python also gives me a strong feeling of "this is a scripting language!": It is super fast and expressive when your needs are met by the vast set of (native) libraries - but when I just want to do something myself with raw code, things gets slower. I also love a properly typed language, which python obviously isn't!)

Do notice that with dl4j, you still get full-on GPU acceleration via Nd4j, which is a "NumPy-style" multi-dim array system.

Re: Show HN: Eclipse Deeplearning4j

#12

For anyone that hasn't checked out Deeplearning4j yet, and think that Python is the only place where the cool AI stuff happens, you really should check this project out! Their Gitter channel is absolutely kicking, where lots of the actual devs, including CTO and co-founder Adam Gibson, hang out and /really/ answer /any/ question - I find their responsiveness stunning! (I discussed and reported a minor improvement to…

Thanks! Upcoming will be samediff which will allow a pytorch like api on the JVM as well as our python interface jumpy:

https://github.com/deeplearning4j/jumpy

The hope here is to be able to "meet" the python frameworks here and run side by side benchmarks that anyone who only knows TF could do.

For those that don't know: DL4j is somewhere in between keras and TF flexibility wise.

Samediff will be a bit "closer" to what people in python see/understand.

The goal there is to import models from different frameworks and run them in production.

Re: Show HN: Eclipse Deeplearning4j

#13

The amount of work we've done this year with Deeplearning4j on performance has been much higher than previous years. We brought DL4J up to par with community standards while maintaining the advantages of Java. I think what a lot of people don't realize is that a ton of effort has been made toward ETL and integration tooling. It's very difficult to train on multiple GPUs while maintaining performance of ETL. ETL is a…

As someone who is mostly working in the field of data warehousing, ETL has a very meaning to me (Extract, Transform, Load). Is this the same as you’re talking about ?

Re: Show HN: Eclipse Deeplearning4j

#14

For anyone that hasn't checked out Deeplearning4j yet, and think that Python is the only place where the cool AI stuff happens, you really should check this project out! Their Gitter channel is absolutely kicking, where lots of the actual devs, including CTO and co-founder Adam Gibson, hang out and /really/ answer /any/ question - I find their responsiveness stunning! (I discussed and reported a minor improvement to…

Their Gitter channel is absolutely kicking, where lots of the actual devs, including CTO and co-founder Adam Gibson, hang out and /really/ answer /any/ question - I find their responsiveness stunning!

Same here. @agibson and crew are amazing and they've helped me numerous times over the past year or so.

Re: Show HN: Eclipse Deeplearning4j

#15

The amount of work we've done this year with Deeplearning4j on performance has been much higher than previous years. We brought DL4J up to par with community standards while maintaining the advantages of Java. I think what a lot of people don't realize is that a ton of effort has been made toward ETL and integration tooling. It's very difficult to train on multiple GPUs while maintaining performance of ETL. ETL is a…

As someone who is mostly working in the field of data warehousing, ETL has a very meaning to me (Extract, Transform, Load). Is this the same as you’re talking about ?

Yes, so one of the core libraries within the DL4J project is datavec which is ETL-focused. One key problem that we discovered - and fixed - was that reading and transforming data for training could bottleneck a multi-GPU process. You spend a lot of $$$ on a deep learning computer, but making the library performant enough so that you could load data at the same rate the GPUs could consume it was challenging. This scales to about 4+ GPUs (depending on datatype) and we're building a datavec server so this can scale much larger. There are still good returns if you clean and transform your data and presave to disk, which helps with large machines such as a DGX. However, other bottlenecks still apply (which we are solving right now).

I hope that answers your question. I consider the process of extracting records, transforming them, and loading them for training to be "ETL". I understand ETL also applies to other data consumption.

*I should also note that if you wanted to use datavec for ETL and do not wish to train a deep learning model, it is quite useful for columnar data.

Re: Show HN: Eclipse Deeplearning4j

#16

The amount of work we've done this year with Deeplearning4j on performance has been much higher than previous years. We brought DL4J up to par with community standards while maintaining the advantages of Java. I think what a lot of people don't realize is that a ton of effort has been made toward ETL and integration tooling. It's very difficult to train on multiple GPUs while maintaining performance of ETL. ETL is a…

As someone who is mostly working in the field of data warehousing, ETL has a very meaning to me (Extract, Transform, Load). Is this the same as you’re talking about ?

Fwiw, here are the links for our ETL tool DataVec (it vectorizes data, or tensorizes it if you prefer): https://github.com/deeplearning4j/datavec

https://deeplearning4j.org/datavec

The thing to remember is that this is ETL focused on machine learning. It's not any old set of transforms. It's transforms that help us normalize, standardize and finally tensorize various data types, be they images, video, text or time series.

Re: Show HN: Eclipse Deeplearning4j

#17

Earlier quoted context omitted.

As someone who is mostly working in the field of data warehousing, ETL has a very meaning to me (Extract, Transform, Load). Is this the same as you’re talking about ?

Yes, so one of the core libraries within the DL4J project is datavec which is ETL-focused. One key problem that we discovered - and fixed - was that reading and transforming data for training could bottleneck a multi-GPU process. You spend a lot of $$$ on a deep learning computer, but making the library performant enough so that you could load data at the same rate the GPUs could consume it was challenging. This scal…

Why mix ETL and training?

I am using TF, and in my workflow I first do all ETL in some separate process, dump all training/validation data into TFRecord file, and then my training program consumes it. Clear separation of concerns without any performance penalty.

And I can iterate over training logic with various parameters as many times as I want without touching ETL.

Re: Show HN: Eclipse Deeplearning4j

#18

Earlier quoted context omitted.

Yes, so one of the core libraries within the DL4J project is datavec which is ETL-focused. One key problem that we discovered - and fixed - was that reading and transforming data for training could bottleneck a multi-GPU process. You spend a lot of $$$ on a deep learning computer, but making the library performant enough so that you could load data at the same rate the GPUs could consume it was challenging. This scal…

Why mix ETL and training? I am using TF, and in my workflow I first do all ETL in some separate process, dump all training/validation data into TFRecord file, and then my training program consumes it. Clear separation of concerns without any performance penalty. And I can iterate over training logic with various parameters as many times as I want without touching ETL.

Integrations and deployment. We are targeting data engineers with this not data scientists.

A lot of our user base are people who want to take what the python folks did for creating a feature vector from raw data -> import a model (note this is all in java) and run the training pipeline and test pipeline in the same place.

The goal is to provide an opinionated set of tools for doing this.

Upside here: It's obvious how to both pre process data and create ndarrays from them. Tighter integration also allows us to make some optimizations under the hood with how memory allocation is handled as well as allows us to target different data types like images + sound as well as databases in the same place.

What I'm guessing here is: You're a data scientist focused on building the models. Someone has to take that code and put it in production. If you work at a startup, production might be "TF serving". If you're a fortune 500,

you're likely not deploying that. People we've worked with are usually constrained in some way (especially by the JVM) .

You aren't our target audience, it's your colleagues.

We'll work backwards from that by adding our python interface and the like, but largely we want to solve a cross team concern after models are built.

Re: Show HN: Eclipse Deeplearning4j

#19

Earlier quoted context omitted.

Yes, so one of the core libraries within the DL4J project is datavec which is ETL-focused. One key problem that we discovered - and fixed - was that reading and transforming data for training could bottleneck a multi-GPU process. You spend a lot of $$$ on a deep learning computer, but making the library performant enough so that you could load data at the same rate the GPUs could consume it was challenging. This scal…

Why mix ETL and training? I am using TF, and in my workflow I first do all ETL in some separate process, dump all training/validation data into TFRecord file, and then my training program consumes it. Clear separation of concerns without any performance penalty. And I can iterate over training logic with various parameters as many times as I want without touching ETL.

Because you might want, as I definitely wanted, to also iterate over the feature engineering, not only the network and training parameters. Thus, doing ETL "inline" is really cool, and speeds up your iteration.

It is also easy once you have a proper language that supports multi-threading. Since you do it "full speed" with full utilization of the GPU, there is no disadvantage of doing the ETL while training.

Re: Show HN: Eclipse Deeplearning4j

#20
post #6

Earlier quoted context omitted.

That's nice of you. :-) It's mature now, which is why this was the moment to move it into Eclipse. It means that DL4J & suite is now vendor neutral. On the Skymind side, we will continue to develop all those open-source projects, so you can expect a lot more cool stuff to come: interpretable models, better ETL, Keras as our Python API, vertical-specific apps for EDA, Robotics...

Very cool. I'm a DL4J fan. I actually did a talk at Tri-JUG a couple of weeks ago, on real-time machine learning and BPM, which featured DL4J as part of the tech stack. I'm also working on a SaaS offering around AI/ML and plan to include support for DL4J at some point. Hopefully at some point I can get to a place where I can make some useful contributions to the project.

Thanks! Please share what you're doing and we'll promote as much as we can.
Post reply on HN