Can AI that can program independently rob programmers of their jobs?

2022-03-10

During the Spring Festival, deepmind, an artificial intelligence company that developed alphago, released a new model that can be programmed independently - alphacode. Alphacode achieved the top 54.3% of the 10 competitions held by codeforces, a programming competition website. This means that it has defeated nearly half of the human players. More importantly, all codes in the competition are automatically generated by alphacode without manual supervision. What does alphacode's achievements mean? Will it rob programmers of their jobs? What role does AI play in the field of basic science? How to understand the relationship between human and AI? Last week, "tonight's technology talk" invited science popularization writer thin camel, Xiao Han, founder and CEO of Jina AI, and Yuan Jinhui, founder and CEO of first-class technology ONEFLOW to talk about AI related topics. How to evaluate the achievements of alphacode? Does it need manual training? Xiao Han: alphacode is not a single algorithm. It is a system built according to gpt-3 model. Therefore, we don't think alphacode is a breakthrough in AI algorithm. Its breakthrough is to produce a system capable of more complex tasks. The first step of artificial intelligence is pre training. Is to pull down the program on GitHub, so that this model has a preliminary understanding of programming. The second step is fine tuning. Because the pre training knowledge is not always useful, they give a general world view, but if you want to solve specific problems, you need directional adjustment. Another thing alphacode does is build a judgment system. Because alphacode can generate a large number of answers based on a given question, but it does not know whether these answers are correct or not. So input the answer to the question and the answer he gives into the system, and it can judge whether the answer is correct or not. The whole process is indeed like what alphacode claimed when it was released. It can be completely unsupervised. Yuan Jinhui: I think alphacode is a milestone. According to the description of natural language, it automatically generates a complete program that can solve the algorithm problem, which is great. In fact, I experienced a psychological change from underestimation to overestimation and then to underestimation for alphacode. I underestimated alphacode before I saw the details of the paper. Similar to gpt-3 training natural language, alphacode essentially captures tens of billions of lines of code on GitHub, captures the language structure and generates it again. Moreover, compared with very irregular natural language, the syntax of code is very regular. From this point of view, alphacode is similar to the previous method to solve the problem. But to my surprise, I thought the principle of alphacode was to automatically search the existing code fragments in the code base, but in fact, these codes were automatically generated by the pre training model. Traditionally, we believe that AI usually solves the problem of low accuracy. For example, the accuracy of image recognition is very high at 90%, but it is extremely difficult for AI to achieve 100%. The code requires exactly 100%, even if you write a wrong variable name or type a less ", The program will also report an error. So then I overestimated alphacode. Later, I read alphacode's paper and found that it can indeed generate a complete program by itself, but some ingenious elements are also used in the middle. For example, it will generate 1 million programs for a problem, of course, there are right and wrong. Alphacode will filter out 99% of the code and leave 1%. Among the thousands of codes in this 1%, alphacode selects 10 answers and submits them to codeforces through clustering and screening. If only one of the answers is correct. It is not a simple program that generates hundreds of thousands of samples and tests, but generates hundreds of thousands of correct answers at one time. What is the difference between alphacode and Codex, GitHub and copilot? Yuan Jinhui: I think there are two points. One is to solve different problems, and the other is to adopt different methods. The problem solved by alphacode is still difficult. Second, alphacode is not a ready-made code fragment of online search, but generated by itself. GitHub copilot, for example, is a ready-made code fragment for search. Some people have done experiments before and found that it will grab the code from stack overflow (code Q & a website), because it grabs all the comments written by the programmer in the code. Will these AI programming tools replace programmers? Xiao Han: in fact, these AI assisted programming tools are designed to help developers have a better programming experience. However, AI is very powerful today. It can write the code automatically, not just fill in the function name. But today, all AI has not reached the level of replacing developers. The developers themselves are still the final decision-makers. The code generated by AI is only a reference. Thin camel: as a writer, I still want to map this matter to the field of "natural language". First of all, it is not so difficult for AI to generate a piece of code without any syntax errors. There are a lot of things in natural language that do not conform to logic and grammar. When we speak, we do not strictly follow a certain law. But the code itself strictly follows the syntax, and it has a set of general logic. Second, I don't think code farmers need to be too nervous. For text creators, we have encountered similar challenges in previous years. At present, some fixed format texts have been generated by AI, such as game results, stock market broadcast and weather forecast. For this kind of regular text, AI writes much faster than people. However, it is still very difficult for AI to write something creative, because creativity is essentially a challenge to the existing logic and system, and even creativity includes allowing AI to make mistakes. For AI, it is difficult to maintain a certain personality. For example, in a dream of Red Mansions, Jia Baoyu's poems are obviously different from Lin Daiyu's poems. This ability, AI may still be difficult to achieve. Xiao Han: I think the difference in personality is nothing more than the difference in training materials. If I want to generate the style of a hazy poet, I will collect the corpus of all hazy poets and train them. So I think the most important thing for AI is data. If the algorithm model can better mine the data and make full use of the value of the data, the so-called character will be achieved. Yuan Jinhui: let me add the opposite direction. According to Xiao Han's logic, if there is no corpus of hazy school, the AI of hazy school cannot be generated; Without Van Gogh, you can't train Van Gogh style painting. Therefore, at the creative level, AI is essentially more like a kind of memory. The difference is whether it is a mechanical memory or a smarter memory, but in fact, it can't jump out of the original category. There are two words in technical terms, "exploration" and "exploration". Exploration refers to working conservatively within the due scope, and exploration refers to exploring outside the scope. Maybe we need to give AI some room to make mistakes. In the context of the rise of AI, how to be a valuable programmer? Yuan Jinhui: AI is good at doing mechanical work, but writing code also needs creativity. To a certain extent, we also call it art. There are also good and bad in the code. Whether the code written is concise and elegant enough and whether it has creative aesthetics may still be the advantage of mankind. Zhang Peng: but should this beauty also be reflected in efficiency higher than ugly and complex things before the business world will recognize it? Yuan Jinhui: this kind of beauty is indeed reflected in efficiency. One criterion for judging the beauty and ugliness of code is reusability. Simple code has better scalability and can be reused in more places in the future. If my code can only be used in the current task, it is not a good practice. Xiao Han: I remember that there was a very popular post on foreign forums, that is, a law firm hired a young man to do work like sorting out statements. It happened that the young man knew a little about programming and automated the work. The program could finish the original week's work in five minutes. Two weeks later, the young man felt a little guilty, so he sent it to the forum and asked everyone whether they should tell the boss about it. I think this reflects one thing - whether he tells his boss or not, mechanized work will be replaced. Even he felt that doing such work was meaningless, otherwise there would be no such entanglement. Life always needs some pursuit. Why waste time here? Secondly, I think the emergence of these codes to assist AI is not a bad thing. Today, with the development of mankind, whether it is the industrial revolution or the introduction of assembly lines, mankind will always engage in higher occupations and create higher value. Overall, I think this is a positive thing. How to understand the current hot concepts of low code and Software 2.0? Xiao Han: the reason for the emergence of low code is that we have accumulated a lot of code capital in the past few decades. Today, no software is written from scratch. They all have their own upstream dependency - software library. In fact, when we build modern software, the most important thing is often not innovation, but reusability. Reusability means that after the software is completed, it must become a component of larger software, rather than building wheels from scratch. When the concept of "reusability" became popular, the concept of low code and no code came into being. Today, the code we build is more and more advanced. It is no longer the underlying software such as operating system, but more advanced software for C-end users. In this case, the importance of low code and no code is very prominent. If we look at the whole human engineering history, in fact, reusability is a very key turning point - once something can be reused, human civilization will develop to a new height. We can imagine that a primitive man touched a spark with two stones. Is this an accident? Or has it become an experience that can be reused, so humans master the use of fire? So I want to emphasize that low code and no code are definitely the development trend. But the reason behind the trend is that we are now facing higher-level software development, which places particular emphasis on reusability. Yuan Jinhui: let me add Software 2.0. Software 1.0 says code is data. We train an AI model based on the code and data. Software 2.0 refers to models and code. Before alphacode, AI models began to write code for people. For example, the pattern recognition model, whose principle is that computer vision scientists write a pile of rules - which features are in the picture, that picture is a car. However, after decades of doing so, it is found that the recognition rate of this method is not high. So the current practice is to train one from a pile of data

Edit:Li Ling    Responsible editor:Chen Jie

Source:Geekpys

Special statement: if the pictures and texts reproduced or quoted on this site infringe your legitimate rights and interests, please contact this site, and this site will correct and delete them in time. For copyright issues and website cooperation, please contact through outlook new era email:lwxsd@liaowanghn.com

Return to list

Recommended Reading Change it

Links

Submission mailbox:lwxsd@liaowanghn.com Tel:020-817896455

粤ICP备19140089号 Copyright © 2019 by www.lwxsd.com.all rights reserved

>