Andrej Karpathy, a machine learning researcher, writes essays on neural networks, deep learning trends, and the idea of Software 2.0.
HN links it for the Software 2.0 essay, which commenters discuss as a way of seeing neural networks as programming, along with data needs in ML.
I'm suggesting that you take an existing system and build up a corpus of request/response pairs. Then you use the LSTM to build a prediction model so that given a request it will tell you that the current production system will produce the following sql statement and this http response. Once the LSTM's output is indistinguishable from your current production system , for all use cases, then you replace the production system with the LSTM and a thin layer that can listen on the port, encode/decode the data, and issue sql queries.
Why would I want to do this? I'm not 100% sure ... I think it would be super fast once you got it working. I think it would avoid many security bugs. You wouldn't have to read that "oh drupal 3.x has 20 new security bugs" better go patch our code. I think when I had this idea I was thinking about it terms of a parallel system that could catch hacking by noting when actual http responses diverged too much from the predicted response. The main idea being that for a given input the output really is 100% predictable, assuming your app doesn't use random numbers like in a game or something.
To link this idea to the article, I think things like XML parsers could be written this way .... I can't prove it but I suspect that they would be very fast and not come with all the baggage that the article complains about.
I started thinking along these lines after reading stuff like this https://medium.com/@karpathy/software-2-0-a64152b37c35
There are so many frameworks, tools and layers of abstraction out there that I find it helps to dip down a layer and taste what life is like without framework or tool X. Ideally, it's quite painful and you immediately appreciate what the tool is getting for you. You also might learn that the tool would be very helpful for circumstances you do not currently face (e.g large scale software engineering when you are exploring via a side project), and hang out in the lower layer until further motivated to climb back up.
Some concrete examples:
- you are using THREE.js. Try out raw webgl to draw a square. Run frighted back to THREE.js' arms and have some appreciation for what it is doing for you
- you are new to web development. Try working with the DOM directly. Then try something like knockout or angular that helps track dependencies between your view model and the dom. Then try out React. React has achieved wide-spread acceptance for a reason, I think it's the best pattern. But it's also the most abstract from the reality of what's happening underneath the hood, so taking steps up to the top can really help
- you are playing with scikit-learn and throwing various models at a classification problem. try implementing basic logistic regression using only numpy arrays. Try to understand how you could adapt your implementation `fit`, `transform` and `predict` interface used by sklearn.
A couple of recent articles that show this habit in…
(The comment below incorporates an edited version of my comment from last week's thread.)
With human involvement only at the meta level, deep understanding of the generated implementations becomes more challenging and, in highly complex domains, perhaps impossible. See AutoML's generated architecture and compare that with a human-designed one. [1] [2]
A future advance could allow the machines to automatically pick and learn to do new tasks that are helpful to accomplish a given high-level mission. Therefore, chances of unintended consequences become much greater.
The major issue is, without a moral core that closely aligns with humanity's evolved morality, there will be moves that advanced AIs come up with that we deem abhorrent, and sometimes unforeseeable, yet they perform them innocently and we only find out the consequences once it is too late.
Microsoft's Tay tweet debacle was fairly inconsequential [3]. But AI is becoming more powerful and granted more and more authority over the real world we live in, can we afford the technology without humanity?
Developing a moral core should be prioritized.
[1] Google Blog on AutoML https://research.googleblog.com/2017/05/using-machine-learning-to-explore.html
[2] Many tasks in the real world are more complex than Go and even expert humans are not capable of understanding all possible complex interactions on the Go board.
See: AlphaGo, in context by Andrej Karpathy…
A couple quick things I can think of:
- Voice transcription
- Tesla Autopilot
- Facial recognition (photo sorting on iphones, better photos)
- Better graphical performance on Nvidia cards (https://developer.nvidia.com/dlss), also better compression for streaming.
- Much better translation
- Colorizing and repairing old photos
- Visual recognition allowing better search of images
I’m sure there are some I left out. I think we’ll see a lot more interesting applications (particularly around tooling) in the next few years.
https://medium.com/@karpathy/software-2-0-a64152b37c35
Outside of the consumer space, there are also things that hint at more generalizable intelligence.
Check out GPT-3’s performance on arithmetic tasks in the original paper (https://arxiv.org/abs/2005.14165)
Pages: 21-23, 63
Which shows some generality, the best way to accurately predict an arithmetic answer is to deduce how the mathematical rules work. That paper shows some evidence of that and that’s just from a relatively dumb predict what comes next model.
It’s hard to predict timelines for this kind of thing, and people are notoriously bad at it. Nobody would have predicted the results we’re seeing today in 2010. What would you expect to see in the years leading up to AGI? Does what we’re seeing look like failure?
https://deepmind.com/blog/article/muzero-mastering-go-chess-shogi-and-atari-without-rules
This trend is also evident in conferences like ICML, CVPR and EMNLP.[1] I have a semi-popular open source ML project [2] and the repo gets more Chinese visitors/users (from posts on Weibo/WeChat etc.) than all other countries including USA.
I think Chinese researchers & government have a key advantage in collecting enormous datasets, e.g. I wouldn't be amazed if they end up with state of the art models for problems such as object-detection/segmentation for videos taken from Vehicles, Medicine/Radiology and face recognition [3]. Several US strategic funding agencies seem to be pursuing projects with this implicit assumption.
While american government agencies do collect data at a similar scale (Body Cams, Police dashcams), inefficiency in data sharing significantly complicate their use.
[1] https://medium.com/@karpathy/icml-accepted-papers-institution-stats-bad8d2943f5d
[2] http://www.deepvideoanalytics.com/
[3] https://github.com/seetaface/SeetaFaceEngine
On an unrelated note: If you have a popular Github repo, you can view the Google Analytics style stats under graphs/traffic for referring urls/unique-visitor counts etc.
"PyTorch is better for research" is a weird, unsubstantiated statement. The fact is that few serious researchers use PyTorch (and even those complain about it). It's mostly grad students in a handful of labs. The only researchers I know who use PyTorch have been from FaceBook, and that's because they were implicitly forced to use it (PyTorch is developed by FaceBook).
According to https://medium.com/@karpathy/icml-accepted-papers-institution-stats-bad8d2943f5d , 3 of the top research labs in the world are DeepMind, Google Brain (and the rest of Google), and Microsoft Research. Let's see:
* DeepMind: TensorFlow
* Google Brain: TensorFlow
* Microsoft Research: CNTK
Ok, so what about academia? The top deep learning groups in academia are:
* Montreal: Theano
* Toronto: TensorFlow
* IDSIA: TensorFlow
So, what about the greater academic research community? Maybe we could get some data about who uses what by looking at the frameworks cited by researchers in their papers. Andrej did that: it's mainly TensorFlow and Caffe. https://medium.com/@karpathy/a-peek-at-trends-in-machine-learning-ab8a1085a106