Live data from Hacker News

Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

github.com

31–40 of 57 posts

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#31
post #6

First TensorFlow and now this. Tensor is quickly becoming a mathematical-term-that-sounds-familiar-to-developers-but-most-don't-know-what-it-is-actually. Another example is topology =)

When I entered college after high school* in India (around 1990), I was enamored by their library (my school didn't have one), and I was a math enthusiast (also ranked in a few state level math talent competitions). After being introduced to vectors (in math and physics) I chanced upon tensors - it seemed interesting. I found some good books in the catalog, and asked the librarian to issue one. He just refused to lend it to me, saying that it was a topic for "higher level/senior studies" (BSc/MSc). Unfortunately that time I did could not get any other source for it, so it remained sufficiently out of my radar that I never managed to get back to it. Surprisingly, looking back, it never got covered even in my engineering curriculum - probably because it was (is) considered a more Higher mathematics thing without much engineering application. Did come across it while scanning though relativity literature, but never attempted to understand it in depth. Now seems to be the time to do it!

* College or 11th std in India is the same as 11th grade High school in the US.

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#32
post #10
post #6

First TensorFlow and now this. Tensor is quickly becoming a mathematical-term-that-sounds-familiar-to-developers-but-most-don't-know-what-it-is-actually. Another example is topology =)

Other one is isomorphic. Anything that sounds sciency or mathy will be adopted. There is no other way ;-)

[deleted]

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#33
Lead author of DSSTNE here...

1. DSSTNE was designed two years ago specifically for product recommendations from Amazon's catalog. At that time, there was no TensorFlow, only Theano and Torch. DSSTNE differentiated from these two frameworks by optimizing for sparse data and multi-GPU spanning neural networks. What it's not currently is another framework for running AlexNet/VGG/GoogleNet etc, but about 500 lines of code plus cuDNN could change that if the demand exists. Implementing Krizhevsky's one weird trick is mostly trivial since the harder model parallel part has already been written.

2. DSSTNE does not yet explicitly support RNNs, but it does have support for shared weights and that's more than enough to build an unrolled RNN. We tried a few in fact. CuDNN 5 can be used to add LSTM support in a couple hundred lines of code. But since (I believe) the LSTM in cuDNN is a black box, it cannot be spread across multiple GPUs. Not too hard to write from the ground up though.

3. There are a huge number of collaborators and people behind the scenes that made this happen. I'd love to acknowledge them openly, but I'm not sure they want their names known.

4. Say what you want about Amazon, and they're not perfect, but they let us build this from the ground up and now they have given it away. Google hired me away from NVIDIA (another one of those offers I couldn't refuse) OTOH blind-allocated me into search in 2011 and would not let me work with GPUs despite my being one of the founding members of NVIDIA's CUDA team because they had not yet seen them as useful. I didn't stay there long. DSSTNE is 100% fresh code, warts and all, and I think Amazon both for letting me work on a project like this and for OSSing the code.

5. NetCDF is a nice efficient format for big data files. What other formats would you suggest we support here?

6. I was boarding a plane when they finally released this. I will be benchmarking it in the next few days. TLDR spoilers: near-perfect scaling for hidden layers with 1000 or so hidden units per GPU in use, and effectively free sparse input layers because both activation and weight gradient calculation have custom sparse kernels.

7. The JSON format made sense in 2014, but IMO what this engine needs now is a TensorFlow graph importer. Since the engine builds networks from a rather simple underlying C struct, this isn't particularly hard, but it does require supporting some additional functionality to be 100% compatible.

8. I left Amazon 4 months ago after getting an offer I couldn't refuse. I was the sole GPU coder on this project. I can count the number of people I'd trust with an engine like this with two hands and most of them are already building deep learning engines elsewhere. I'm happy to add whatever functionality is desired here. CNN and RNN support seem like two good first steps and the spec already accounts for this.

8. Ditto for a Python interface, easily implemented IMO through the Python C/C++ extension mechanism: https://docs.python.org/2/extending/extending.html

Anyway, it's late, and it's turned out to be a fantastic day to see the project on which I spent nearly two years go OSS.

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#34

At a glance: - Only supports fully connected layers for now. No convnets or RNNs. - Requires a GPU. No option to run on CPU, not even for development. - Setup instructions for Ubuntu only. No Mac or Windows. - Uses JSON to define the network architecture. Which limits what you can build. - Takes in data in NetCDF format only. - Very little documentation. - The name is bad. I'm not going to remember how to spell DSSTN…

Why does JSON limit what you can build? Or do you just mean it only supports certain architectures because there are no options to specify other ones in JSON?

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#35

At a glance: - Only supports fully connected layers for now. No convnets or RNNs. - Requires a GPU. No option to run on CPU, not even for development. - Setup instructions for Ubuntu only. No Mac or Windows. - Uses JSON to define the network architecture. Which limits what you can build. - Takes in data in NetCDF format only. - Very little documentation. - The name is bad. I'm not going to remember how to spell DSSTN…

It's more than that, and it's in use in production at Amazon. 8 TitanX GPUs can contain networks with up to 6 billion weights. As Geoffrey Hinton once said:

"My belief is that we’re not going to get human-level abilities until we have systems that have the same number of parameters in them as the brain."

And you're right that it's a specialized framework/engine. But IMO making it more general purpose is a matter of cutting and pasting the right cuDNN code or we can double down on emphasizing sparse data. Amazon OSSed this partially IMO to see what people would want here.

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#36

Amazon is turning a new leaf. They stopped publishing to any major conferences after their last significant paper, DynamoDB. My perception of Amazon is that they take everything from open-source but don't actively give back. Amazon and open-source never went hand-in-hand. Making their deep learning frameworks open-source is cool. Kudos to the team which managed to do this. I am sure internally, it must have been a hu…

For a second, a thought crossed my mind that Amazon is actively trying to change its external perception after the NY times article and is trying to cozy up to developers. I found this on Glassdoor. Apparently, it will take a long time for them to make their culture less toxic. ===From Glassdoor=== Cons ==== The management process is abusive, and I'm currently a manager. I've seen too much "behind the wall" and hate…

[deleted]

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#37

Earlier quoted context omitted.

I just joined AWS ProServ and I really don't see any of these things. Pretty amazing team and one of the best work life balance I've seen in a tech company so far. I have 4 other friends who work at AWS and all seem very happy so far. I found the glass door comment and it seems to be from an engineering manager. I have a friend who manages one of the AWS products and he seems to be pretty happy. I just joined so I re…

I suspect an inverse survivorship bias in the public representation of the company by ex-employees. Those of us with positive recollections tend to say very little, and (in my case at least) that's due to respect for Amazon's culture.

Concur

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#38

Earlier quoted context omitted.

amazon management is more likely to optimize for optics than actually fix the "problem". In bezos's mind the problem is the NYT article and the external reputation. The work culture isnt an accident nor is it intended to be eventually fixed. in my tenure at Amazon, I went from getting a 2 and PIP, then to a 4, then having my promotion held up because my VP didnt like me. Finally when I left to Google they offered SDE…

You know what I find unbelieveable! In spite of several people calling out that Amazon doesn't officially offer paternity leaves and that it sucks, Amazon leadership is simply doing nothing about it. Google/FB/Linkedin/Netflix/Microsoft have officially announced 3-unlimited month paternity leaves. It appears Amazon simply doesn't care about employees or the optics in this case. How do they officially justify their st…

"The company said it is now offering up to 20 paid weeks of leave, consisting of four weeks of paid pre-partum medical leave for pregnant employees, followed by 10 weeks of paid maternity leave and six weeks of paid parental leave. The latter is the new element and is also available to “all other new parents who have been at Amazon for a year or more,” the company said in a Nov. 2 e-mail to employees. "

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#39

Lead author of DSSTNE here... 1. DSSTNE was designed two years ago specifically for product recommendations from Amazon's catalog. At that time, there was no TensorFlow, only Theano and Torch. DSSTNE differentiated from these two frameworks by optimizing for sparse data and multi-GPU spanning neural networks. What it's not currently is another framework for running AlexNet/VGG/GoogleNet etc, but about 500 lines of co…

Thanks for sharing your story!

Let me comment on file formats as someone familiar with both netCDF and deep learning.

I agree that netCDF is a sane binary file format for this application. It's designed for efficient serialization of large arrays of numbers. One downside is that netCDF does not support streaming without writing the data to intermediate files on disk.

Keep in mind that netCDF v4 is itself just a thin wrapper around HDF5. Given that your input format is basically a custom file format written in netCDF, I would have just used HDF5 directly. The API is about as convenient, and this would skip one layer of indirection.

The native file format for TensorFlow is its own custom TFRecords file format, but it also supports a number of other file formats. TFRecords is much simpler technology than NetCDF/HDF5. It's basically just a bunch of serialized protocol buffers [1]. About all you can do with a TFRecords file is pull out examples -- it doesn't support the fancy multi-dimensional indexing or hierarchical structure of netCDF/HDF5. But that's also most of what you need for building machine learning models, and it's quite straightforward to read/write them in a streaming fashion, which makes it a natural fit for technologies like map-reduce.

[1] https://www.tensorflow.org/versions/r0.8/api_docs/python/pyt...

Re: Amazon DSSTNE: Deep Scalable Sparse Tensor Network Engine

#40

Earlier quoted context omitted.

I just joined AWS ProServ and I really don't see any of these things. Pretty amazing team and one of the best work life balance I've seen in a tech company so far. I have 4 other friends who work at AWS and all seem very happy so far. I found the glass door comment and it seems to be from an engineering manager. I have a friend who manages one of the AWS products and he seems to be pretty happy. I just joined so I re…

I suspect an inverse survivorship bias in the public representation of the company by ex-employees. Those of us with positive recollections tend to say very little, and (in my case at least) that's due to respect for Amazon's culture.

Eh, I had a pretty good ride there myself. I believe every incident in that NY Times article happened.

If you were at Amazon for any length of time and didn't notice the existence of toxic teams and the random chance element of being hired into one of them, you weren't paying attention.

Post reply on HN