Live data from Hacker News

2 times 3 can sometimes equal 7 with Android's Neural Network API

alexanderganderson.github.io

41–50 of 92 posts

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#41
post #7

Using a neural network for things that have clear cut rules is wrong. When you know the exact rules, implement them as such, instead of bruteforcing a guesstimation. This is also why I'm sceptical of the usr of GPT-3 for all sorts of purposes where accuracy is important. Think of the code generation case. Bugs may be very subtle and may go unnoticed.

For code, I could see it being super useful for a beefed up auto-complete. There are many times I find myself searching for things like "how do I do X in Y language" to copy a snippet that I'm sure has been written 10000x times before. I can review the code and verify its correctness by writing tests.

You’re (sadly) assuming everyone would verify its correctness. Proper programming would mean one would write tests, but not everyone does. I’m guilty of it too.

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#43
post #30
post #9

Earlier quoted context omitted.

Code generation only needs to generate code with n bugs where n is less than the number of bugs a human developer generates for it to have usefulness, and maybe some other factor of severity where they are generally less severe than human developers. I think it'll make neat autopilot functionality for developers but not replace the need to have someone look over and understand the code.

This is a very simplistic of what code is and the role it plays in a system. There are many implementations that can fulfill a set of requirements. Not all of them are created equal. The ways in which they behave as the system changes can be wildly different. Well-written code will be able to handle those changes gracefully. Poorly-written code may end up proving brittle and bug-prone. Generated code will be complete…

I don't know what you're arguing against but it sure isn't what I wrote.

"Code generation only needs to generate code with n bugs where n is less than the number of bugs a human developer generates for it to have usefulness, and maybe some other factor of severity where they are generally less severe than human developers."

Point to the part you're arguing against because you way extrapolated what "have usefulness" means I think.

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#45
post #32
post #9

Earlier quoted context omitted.

Code generation only needs to generate code with n bugs where n is less than the number of bugs a human developer generates for it to have usefulness, and maybe some other factor of severity where they are generally less severe than human developers. I think it'll make neat autopilot functionality for developers but not replace the need to have someone look over and understand the code.

This is naive. The point is that code is a well defined system with clear rules that can be expressed through logic and mathematics. GPT is suited to approximate systems where the rules are not well defined. Until AI can actually learn the principles of logic, it may not be useful for code generation on a meaningful scale, other than things just like simple auto-completions. Not only that, AI would also have to learn…

Good thing I didn't say it would, I'm really not sure what you think I wrote.

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#46

Earlier quoted context omitted.

For code, I could see it being super useful for a beefed up auto-complete. There are many times I find myself searching for things like "how do I do X in Y language" to copy a snippet that I'm sure has been written 10000x times before. I can review the code and verify its correctness by writing tests.

You’re (sadly) assuming everyone would verify its correctness. Proper programming would mean one would write tests, but not everyone does. I’m guilty of it too.

Just have GPT-3 produce the tests too! :D

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#47
post #36

As someone who builds neural networks routinely, this sort of non-reproducibility sounds troubling to me. We expect small differences for floating point arithmetic between platforms, but integer math is typically exact. This is all the more concerning for 8-bit quantized arithmetic, where off-by-one means a relative error of about half a percent. If a individual layers in a quantized neural net have off-by-one errors…

Thanks for your comments. Regarding determinism, potentially a fair point. Here are a few comments: (1) A driver which randomly produces different output when running the network would be valid according to these restrictions. (2) It is conceivable that a driver would produce non-deterministic input with the same hardware. One commonly known example is that tensorflow will run multiple different convolution kernels and then choose the fastest one. In that case, you can run the same network on the same hardware and get slightly different results. Its not that hard to imagine that a mobile driver could do something similar. (3) It's not true that specific hardware will produce consistent results on the same input. You can run a model today, the driver gets updated, and tomorrow you get different output. This happens frequently.

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#48

Earlier quoted context omitted.

For code, I could see it being super useful for a beefed up auto-complete. There are many times I find myself searching for things like "how do I do X in Y language" to copy a snippet that I'm sure has been written 10000x times before. I can review the code and verify its correctness by writing tests.

You’re (sadly) assuming everyone would verify its correctness. Proper programming would mean one would write tests, but not everyone does. I’m guilty of it too.

When banks got ATMs, they thought it'd drastically cut headcount - instead it went _up_: freeing up time from doing the basics meant you had more time to focus on more profitable activities

I hope to live long enough to be mostly writing tests for a gloriously hacky code generator that gets it right 80% of the time

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#49
post #43
post #30

Earlier quoted context omitted.

This is a very simplistic of what code is and the role it plays in a system. There are many implementations that can fulfill a set of requirements. Not all of them are created equal. The ways in which they behave as the system changes can be wildly different. Well-written code will be able to handle those changes gracefully. Poorly-written code may end up proving brittle and bug-prone. Generated code will be complete…

I don't know what you're arguing against but it sure isn't what I wrote. "Code generation only needs to generate code with n bugs where n is less than the number of bugs a human developer generates for it to have usefulness, and maybe some other factor of severity where they are generally less severe than human developers." Point to the part you're arguing against because you way extrapolated what "have usefulness" m…

It's of limited usefulness if it just leads to a system that will end up performing worse / less predictably.

Re: 2 times 3 can sometimes equal 7 with Android's Neural Network API

#50
post #39

Earlier quoted context omitted.

> I'd trust a machine to drive more accurately than most people I see on the highway. Humans aren't special, in fact more often than not we're sloppy, subject to fatigue, and a whole bunch of other negative things. Humans are much, much, much more capable than the absolute state-of-the-art robots when it comes to doing things in an uncontrolled environment. https://www.youtube.com/watch?v=g0TaYhjpOfo

"That considered, I had a pretty strict qualifier in my above post which means the machine must perform better than the average human in the respective task and therefore I'd be more likely to die driving my own car than a machine meeting my prerequisites." Have to read the whole comment before replying. You can't just grab individual statements out of an entire argument and choose to go after those. I mean you can,…

[deleted]
Post reply on HN