[HN Gopher] The age of machine learning as code has arrived ___________________________________________________________________ The age of machine learning as code has arrived Author : gk1 Score : 54 points Date : 2021-10-22 18:43 UTC (4 hours ago) (HTM) web link (huggingface.co) (TXT) w3m dump (huggingface.co) | ragnot wrote: | I've heard that software engineers are the automobile workers of | the 50s-70s: Extremely well-compensated professionals who were | ultimately thrown to the wayside when technology came. I wonder | if data scientists and AI will do a similar thing to software | engineers. | jokoon wrote: | It depends, because you still need people even in car | factories. | | Also, automation really changes the nature of a product, and | the quality is often poor. | snek_case wrote: | In my opinion, unless we develop AGI, not at all... And if we | did develop AGI, then data scientists would find themselves out | of a job too. | | I think you'd be very hard pressed to automate systems | programming, and most forms of programming for that matter. So, | as long as we develop new hardware, new products, new | platforms, new programming languages, then there will be lots | of programming work to be done. | | The jobs that machine learning is replacing right now (if any?) | are fairly repetitive jobs that don't really require any | reasoning. Maybe machine learning is also helping automate | phishing schemes, but, is there any programming job out there | that's really repetitive and thoughtless, where the work is | predictable and akin to factory work? Do you think a | transformer model is going to be able to handle debugging? | ragnot wrote: | You obviously have more knowledge than me on this subject, so | take what I say with that in mind. But I look at the march of | progress and can't help but draw parallels. | | Websites used to be made by hand. Then came frameworks and | then came code-free e-commerce sites like Shopify. Github is | testing the Copilot AI. How much longer before some architect | tells an AI to stitch together code that fits some sort of | functional spec. REST API's are already defined by their | model and have code generated to match it. Is it that much a | stretch to say that in the near future (15-25 years), AI | might take over a significant part of software engineering? | webmaven wrote: | _> Is it that much a stretch to say that in the near future | (15-25 years), AI might take over a significant part of | software engineering?_ | | Not much of a stretch at all. But we've seen this sort of | transition before: lower-level languages (microcode, | assembly) are now largely generated by other software yet | the amount of software development work needing to be done | by humans has only expanded, and I don't expect there to be | much more than a bump in the road in terms of demand for | software developers this time around either. | | Though I will say that the bump will be larger than the | non-event that 4GLs turned out to be: | https://en.wikipedia.org/wiki/Fourth- | generation_programming_... | | The most disruptive scenario I can imagine will result in a | slew of businesses hit with absolutely massive cloud | computing bills (due to naive generated code that works, | but very inefficiently, or perhaps just code running for | naively specified tasks that HAVE no efficient solution as | stated), leading to a standard requirement of having an | expensive human software developer sign off on it before | deployment like architects signing off on blueprints (which | might be the thin edge of the wedge for professional | licensing, but that's a different conversation). | | As a secondary effect, there might also be a proliferation | of new (or newly popular) languages (for which insufficient | public code exists for ML systems to learn from), as | developers focus on domain+skill+technology combinations | that haven't been automated YET. | pasquinelli wrote: | i think you're focusing too much on how many programmers | will be needed in the future without considering what | kind of pay they'll be able to get. | thrower123 wrote: | These are the same arguments that people have made about | outsourcing for thirty years, and we've only got more | programmers who are paid vastly more money because of it. | pasquinelli wrote: | _because_ of it? | thrower123 wrote: | To some extent, yes. There's an awful lot of work that | comes back to be done correctly. | | It's how I got my job originally. | snek_case wrote: | However, despite the existence of products like Shopify and | Wordpress, web developers have no trouble finding jobs, as | far as I know. | | > How much longer before some architect tells an AI to | stitch together code that fits some sort of functional | spec. | | Would that person not be, essentially, a programmer? And | what would they do if they needed to interface with | external hardware that's not yet supported, or some network | protocol or piece of software that's not built into AI- | code-generator-3000? | | > Is it that much a stretch to say that in the near future | (15-25 years), AI might take over a significant part of | software engineering? | | In my opinion, people who probably think little of software | developers, keep imagining that software engineering is | this primitive, simple, reducible thing, and they are | simply wrong. | | Can there be a use for AI-generated code, and can that take | over things like generating user-facing forms and website? | Sure. However, what I think is likely to happen is that in | 15-25 years, the world will be changing just as fast as it | is now, and the software engineering discipline will just | expand. Companies that hire "architects" who only know how | to use AI-code-generator-3000 will be at a disadvantage | compared to companies that hire more fully fledged software | engineers. | | Imagine you run a business and you only have architects who | know how to use some code generator code that runs on the | Google cloud. You pay some monthly bill to Google and hefty | fees to use that tool. You're locked-in to that ecosystem. | If you need a new feature or access to a new API, you may | need to wait for Google to add support. In contrast, your | competitors who hired pesky software engineers are paying | higher salaries but save on Google cloud fees, and they | don't have to wait for Google to fix problems to implement | new features. | SrslyJosh wrote: | > Can there be a use for AI-generated code, and can that | take over things like generating user-facing forms and | website? | | Sure, but...I'm not convinced there's any advantage over | writing deterministic generators for things like that. | | On one hand, you have something that produces a | predictable output for a given input (modulo bugs in the | generator, which can be corrected over time). | | On the other hand, you have a black box that could | misinterpret some non-obvious aspect of its input and | produce completely unexpected output. Its training data | will need to be carefully curated and maintained over | time, similar to how a deterministic generator would need | to be maintained, but, again, without the same degree of | certainty as to what it's going to produce. | | Honestly, the black box approach just seems like a | nightmare to me. | yuy910616 wrote: | Progress != destruction of jobs. | | Farming, auto, journalism, and marketing fits your model. | But medicine, finance, and tech would suggest otherwise. | I've been getting advice about how there is no money in | software and I should study hardware since 90s. | | Yes, maybe this is a freefall and we haven't made impact | yet. But drawing parallel without further evidence seems to | be too simple of a analysis. | | What cause the jobs in Detroit to be outsourced? What | skills was replaced? How easy was it to train those skills? | What was the potential pool of workers? What was the demand | of workers? | | All I'm saying is that this question is a lot more nuanced. | I'm a software engineer, so I'm biased. But I'm guessing | that you might be biased in some ways too. The real answer, | perhaps boring, is that we really don't know. Even if | you're right - you could easily be off by 200 years. | pasquinelli wrote: | yeah, a lot of people are grasping at patterns they see | in their understanding of the past and treating them like | rules that will determine the future. | wongarsu wrote: | We have spent the last 50 years trying to automate our job | away. Many projects that 20 years ago took an entire team a | year or more are now weekend projects for a single person, | because of how much better our programming languages, | libraries, APIs, IDEs, linters, etc have become. But demand | turns out to be incredibly elastic. A 50% increase in | productivity just means that there's 400% more work, because so | many new things have now become cost effective to try. | | Of course there is bound to be an end to this, a peak-software | if you so will, where productivity increases will stop being | offset by demand increases. I might live to see that day, but | this AI wave is unlikely to be it. Yes, it brings some new | tools that make programming easier, but it stimulates more than | enough demand to offset that. | didibus wrote: | ML and data-science relies on software to work. Nobody is going | to do data-science and ML by hand, so already you have a demand | for software engineers and computer scientists to build tools | and implement algorithms and information pipelines for the | data-scientists and businesses who want to leverage ML. | | I think there might be a bit of a misconception of what | existing software engineers did. Very rarely were they focused | on designing inference models or performing data analysis. Most | of the time the business side of things, like a business | analysts, or people working on the business problem would | perform analysis manually, and come up with business rules and | logic. Software engineers could help them leverage more | powerful techniques by building them tools that help for data | analysis, like BI platforms, or data stores that can do bigger | and more complex queries faster. Or they could help them with | letting them know of techniques, generally known as old-school | AI, such as edit distance algorithms, graph algorithms, logic | rule engines, expert systems, etc. | | So nothing has really changed, except that there is even more | demand from businesses who want software engineers to help them | setup tools and pipelines for them to experiment with ML and | have data scientists analyze their data. | | What it would take to get rid of the demand for software | engineers is to be able to automate their work, and ML is far | from able to do that. It could one day, but we are talking | about a computer that can reprogram itself successfully, and | that can also understand the requests of the user in how it | should reprogram itself. And we're talking not just | reprogramming, but it should also be able to replicate itself | to other machines and all that, since most use case today | involve distributed system, as no one computer has the compute | needed for the scale we operate at. Things like GPT-3 show some | promise, but as it stands today, you'd need a software engineer | to inspect and review everything it generates, which would take | almost as much time if not more. | | I think what is far more likely is that the offer increases, | that is, that there eventually is just a lot more people with | the ability to perform the work of software engineers. This | will probably happen as a combination of more people joining | the field, and the barrier to entry becoming smaller. The | latter could be helped a little bit by ML, if it can deliver | better auto-complete for example, but I think it largely is | just driven by frameworks, PAAS, SAAS and IAAS, library, and | all other type of code reuse we've been building for years now. | Aerroon wrote: | > _I wonder if data scientists and AI will do a similar thing | to software engineers._ | | I don't really see how. Software development is about | translating arbitrary requirements into a rigorous form without | ambiguity (ie the developer has to fill in the blanks). Unless | we invent AGI we would need the 'clients' of software | development to be able to unambiguously list their requirements | (without there being any blanks that need to be filled in). | Effectively, they'd have to become devs themselves. It might | not look like the software development of today of writing | text, but they'd still be doing a similar type of job. | didibus wrote: | > A few years ago, Forbes wrote that "Software ate the world, now | AI is eating Software" | | As far as I know, AI is Software, so this type of reasoning | really confuses me. | | I think it is possible that "developers" might have some of their | work find automation using AI and ML, but Computer Science will | obviously stick around as long as computers are around. | | For example, someone has to code the algorithms which are used to | teach the computer how to learn. Someone has to code the | pipelines for capturing data from the physical world into the | digital world. Someone has to code the storage and exchange of | that data to the ML models, and someone has to plug the inference | into the production processes and systems. Someone has to put | alarms and monitors around all these things to assert their | operation. Someone has to code the UIs and interfaces that users | will use to interact with all those systems. Finally, someone | needs to code compatibility and optimizations of all these models | and their implementation to continue to work and leverage new | hardware capabilities. | | If people think that developers were spending 90% of their time | hand tuning business rules and coming up with manually | implemented inference and decision models they are highly | mistaken. That could have been 5% of the job in some circles, but | 95% of the job has always been all these peripheral tasks. | | If anything, there will be even more work now, since ML models | require a lot more periphery to develop, train and ship. | munk-a wrote: | Once upon a time you could make a good living building business | websites (i.e. the local florist) but even without AI and ML | frameworks have already killed that dead - your florist now | probably uses instagram as their website, they might use | Squarespace - and if they're hardcore they use Joomla, | Wordpress or Drupal. I think a lot of the media thinks that | developer hours are spent proportional to the stuff they see | and this is the crux of the matter. Ford isn't retaining a team | of two hundred devs to maintain their sales pages - it might be | like ten or so? While an insurer managing a claims system is | probably retaining a boatload of FT devs and also shipping out | a bunch of hours to consulting firms. Software programming | labour is very much an iceberg problem - the things that look | expensive and difficult are trivial and those things are easy | to automate away - but we're all working on the hard shit. | indrax wrote: | Software is also part of the world, just a very different part. | didibus wrote: | True, though I'm assuming by "the world", they mean that | traditional processes which would have involved pen and paper | and other non computer based tools and systems are all being | redesigned to make use of computers, thus Software is eating | them. | | But AI is not replacing processes that rely on software with | something that no longer relies on software. What AI is doing | is it lets you replace even more processes that were not yet | able to be handled by a computer with one that a computer can | do, and thus it just helps Software eat even more of the | world. Decision making and judgement tasks were not able to | be successfully moved to computers prior to the recent | advancements in AI, now some of those can be. | snek_case wrote: | My experience working in a deep learning outfit for a few years | has been that the software stack is incredibly immature and | fragile. | | You're generally tied to proprietary nvidia drivers that are a | pain to install, and when they change version, it breaks software | such as PyTorch, you're forced to update. PyTorch itself often | has breaking changes. Then, most of the code is written in | Python, often by academics who know and care very little about | good software engineering practices. That also leads to fragile | and breakable code. You'll often find yourself trying to install | code that's just DOA because of multiple broken dependencies. | | The quality of the code can be terrible, because academics are in | a constant rush to publish the next thing, and tend to view code | as throwaway. Worse yet, it's often written by students, and | these students are taught by professors who view software | engineering as an inferior, unscientific discipline. I've seen | many github repos with no open source license, and no README, | just a random code dump with no comments. | | I'm personally not super enthusiastic by the idea of replacing a | lot of code by machine learning just yet, because not only is the | software ecosystem fragile, but the models can be as well. You're | likely to introduce weird, unpredictable modes of failure. I can | see that there's clearly a lot of people who dream of being able | to basically create software without coding, and not have to deal | with pesky software developers, but IMO, we're not there yet. | | This guy talks about cloud-based machine learning solutions. You | won't have to deal with drivers and general "IT" concerns there. | The problem is that, besides being very expensive, these cloud- | based solution will introduce extra layers of vendor lock-in. If | you're training on the google cloud and using TPUs that you can't | even physically buy/own, you might have a hard time porting your | code to run without a TPU. If Google revokes your access for some | reason, because they claim you've violated their TOS, you are | fucked. | cjv wrote: | Can you name some breaking changes PyTorch made? | snek_case wrote: | Not off-hand because it's been a while, but IIRC the names of | some methods were changed, arguments were added/removed. I | will say that was before version 1.0, so it may be more | stable now. | | Last I saw the nvidia driver situation did not improve | though. I wanted to come back to some old code, installed a | new version of PyTorch. It complained that my GPU drivers | were not recent enough, had to do this long tedious process | that took over an hour to get newer drivers working. ___________________________________________________________________ (page generated 2021-10-22 23:00 UTC)