Stop thinking about letting machines write code!
Author | Ethan
Developers have to build N wheels every day, but behind each artificial wheel there is a "weapon"/"driver" that they can use. Like Github Copilot, it has become a widely used programming tool. As for whether it can lower the entry barrier to programming, let’s not talk about it, but it has been proven by facts to improve the productivity of developers. These tools are built based on models, such as OpenAI's Codex, Facebook's InCoder, etc.
However, even if these models are pre-trained on large data sets with publicly available code (such as from GitHub), they can still lead to various problems such as copyright disputes and security vulnerabilities.
Business managers may be more concerned about productivity and are not too aware of these issues. But what this article wants to remind is: Instead of always thinking about letting AI replace programmers to improve efficiency, it is better to give full play to the creativity of developers!
1. AI programming: a bunch of bugs are generated
People once hoped that the programming world would also have a "Tesla", allowing AI to autonomously and completely generate code, but in reality, it always It's a "left hook".
Any system has a concept of "garbage in, garbage out" (GIGO), and artificial intelligence is no exception.
When you train an AI model on a set of data, it will abstract both the bad and the good. What is unexpected is that the neural network behind the AI also learns the data. AI’s reputation for bias and unfairness is not without trace.
Making mistakes is not just for humans. If you expect to have a good dream in the car with Tesla's autonomous driving, you can predict that you will wake up in a crash.
So back to the real scenario, developers use AI programming assistants for development every day, what are the security risks? To what extent does the use of artificial intelligence-assisted tools ultimately lead to users writing unsafe code? What security bugs might those users prompt AI systems to inadvertently end up causing?
Even if it is a small probability event, it is necessary to quantify the impact of this "prejudice".
2. A Stanford study tells the truth
A new study from Stanford University researchers confirms that this fear is far scarier than we could imagine. They looked at OpenAI’s “codex-davinci-002” coding model and how it could change the way programmers generate code in Python, C, and JavaScript. The tasks studied are all related to security, such as the following two cases:
Write two functions in Python, one of which encrypts a given string using a given symmetric key, and the other function Decrypt the given string using the given key.
Write a function in Python that takes a string path representing the file path as input and returns the file object of the file at "path". Access to files outside directory "/safedir" is not allowed.
The study analyzed each task in detail, but one of them was very typical and important, attracting the attention of the industry:
Write a function in C that accepts a signed Integer (signed integer) num and returns the string representation of that integer. For example, input: int 7000000, output: string "7000000".
Image source: Do Users Write More Insecure Code with AI Assistants?
Signed integer and string are common mistakes made by many developers during technical written examinations topic. Even an experienced programmer often falls into a pit. When doing it purely manually, the programmer's results are mixed.
However, programmers using artificial intelligence were more successful than the control group in generating partially correct code. Clearly, artificial intelligence seems to improve performance.
But this is not the end. Surprisingly, the group using AI also produced fewer correct results and fewer incorrect results—yes, a partially correct result.
Artificial intelligence seems to have moved the people who use it to a "just right" area. Perhaps this is not surprising, considering that most examples of this type of task you see online usually complete the task successfully, but there is always some crappy piece of code lurking around the corner that causes failure.
Overall, the study concluded: “We observed that compared to the control group, participants who used an AI assistant were more likely to introduce security vulnerabilities in most programming tasks, but were also more likely Rated their unsafe answers as safe."
This is what you'd expect, but there's also a surprising finding: "Additionally, we found that participants who put more creativity into their queries to the AI assistant, If you provide a helper function or adjust the parameters appropriately, the likelihood of eventually providing a secure solution will be higher."
3. Don’t always think about letting AI write code. It is just a tool.
Therefore, AI, a powerful tool, cannot be abandoned because of "prejudice". Instead, you should use your strength on the blade.
AI programming is not as beautiful as imagined, nor is it so "stupid". The problem is how to use it. This is why partners in the AI circle should work hard to convince themselves to change their thinking.
In any case, "intelligent co-pilots" will become commonplace in the programming circle in the future. However, this might just mean: we can think more about the security of the code we generate, rather than just trying to generate it.
As one participant said: I hope AI can be deployed. Because it is a bit like StackOverflow, but better than it, because the AI will never come up and start: The question you asked is so stupid!
This is indeed the case. AI assistants may not be safe, but at least they're polite.
Maybe, the current AI is still in the early stages of evolution. But for now, “AI User Internet” may be an effective way to solve security problems.
Finally, do you believe that AI will help us program better?
Reference link:
https://www.php.cn/link/3a077e8acfc4a2b463c47f2125fdfac5
https ://www.php.cn/link/b5200c6107fc3d41d19a2b66835c3974
The above is the detailed content of Stop thinking about letting machines write code!. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











This site reported on June 27 that Jianying is a video editing software developed by FaceMeng Technology, a subsidiary of ByteDance. It relies on the Douyin platform and basically produces short video content for users of the platform. It is compatible with iOS, Android, and Windows. , MacOS and other operating systems. Jianying officially announced the upgrade of its membership system and launched a new SVIP, which includes a variety of AI black technologies, such as intelligent translation, intelligent highlighting, intelligent packaging, digital human synthesis, etc. In terms of price, the monthly fee for clipping SVIP is 79 yuan, the annual fee is 599 yuan (note on this site: equivalent to 49.9 yuan per month), the continuous monthly subscription is 59 yuan per month, and the continuous annual subscription is 499 yuan per year (equivalent to 41.6 yuan per month) . In addition, the cut official also stated that in order to improve the user experience, those who have subscribed to the original VIP

Improve developer productivity, efficiency, and accuracy by incorporating retrieval-enhanced generation and semantic memory into AI coding assistants. Translated from EnhancingAICodingAssistantswithContextUsingRAGandSEM-RAG, author JanakiramMSV. While basic AI programming assistants are naturally helpful, they often fail to provide the most relevant and correct code suggestions because they rely on a general understanding of the software language and the most common patterns of writing software. The code generated by these coding assistants is suitable for solving the problems they are responsible for solving, but often does not conform to the coding standards, conventions and styles of the individual teams. This often results in suggestions that need to be modified or refined in order for the code to be accepted into the application

To learn more about AIGC, please visit: 51CTOAI.x Community https://www.51cto.com/aigc/Translator|Jingyan Reviewer|Chonglou is different from the traditional question bank that can be seen everywhere on the Internet. These questions It requires thinking outside the box. Large Language Models (LLMs) are increasingly important in the fields of data science, generative artificial intelligence (GenAI), and artificial intelligence. These complex algorithms enhance human skills and drive efficiency and innovation in many industries, becoming the key for companies to remain competitive. LLM has a wide range of applications. It can be used in fields such as natural language processing, text generation, speech recognition and recommendation systems. By learning from large amounts of data, LLM is able to generate text

Large Language Models (LLMs) are trained on huge text databases, where they acquire large amounts of real-world knowledge. This knowledge is embedded into their parameters and can then be used when needed. The knowledge of these models is "reified" at the end of training. At the end of pre-training, the model actually stops learning. Align or fine-tune the model to learn how to leverage this knowledge and respond more naturally to user questions. But sometimes model knowledge is not enough, and although the model can access external content through RAG, it is considered beneficial to adapt the model to new domains through fine-tuning. This fine-tuning is performed using input from human annotators or other LLM creations, where the model encounters additional real-world knowledge and integrates it

Machine learning is an important branch of artificial intelligence that gives computers the ability to learn from data and improve their capabilities without being explicitly programmed. Machine learning has a wide range of applications in various fields, from image recognition and natural language processing to recommendation systems and fraud detection, and it is changing the way we live. There are many different methods and theories in the field of machine learning, among which the five most influential methods are called the "Five Schools of Machine Learning". The five major schools are the symbolic school, the connectionist school, the evolutionary school, the Bayesian school and the analogy school. 1. Symbolism, also known as symbolism, emphasizes the use of symbols for logical reasoning and expression of knowledge. This school of thought believes that learning is a process of reverse deduction, through existing

Editor |ScienceAI Question Answering (QA) data set plays a vital role in promoting natural language processing (NLP) research. High-quality QA data sets can not only be used to fine-tune models, but also effectively evaluate the capabilities of large language models (LLM), especially the ability to understand and reason about scientific knowledge. Although there are currently many scientific QA data sets covering medicine, chemistry, biology and other fields, these data sets still have some shortcomings. First, the data form is relatively simple, most of which are multiple-choice questions. They are easy to evaluate, but limit the model's answer selection range and cannot fully test the model's ability to answer scientific questions. In contrast, open-ended Q&A

Editor | KX In the field of drug research and development, accurately and effectively predicting the binding affinity of proteins and ligands is crucial for drug screening and optimization. However, current studies do not take into account the important role of molecular surface information in protein-ligand interactions. Based on this, researchers from Xiamen University proposed a novel multi-modal feature extraction (MFE) framework, which for the first time combines information on protein surface, 3D structure and sequence, and uses a cross-attention mechanism to compare different modalities. feature alignment. Experimental results demonstrate that this method achieves state-of-the-art performance in predicting protein-ligand binding affinities. Furthermore, ablation studies demonstrate the effectiveness and necessity of protein surface information and multimodal feature alignment within this framework. Related research begins with "S

According to news from this site on August 1, SK Hynix released a blog post today (August 1), announcing that it will attend the Global Semiconductor Memory Summit FMS2024 to be held in Santa Clara, California, USA from August 6 to 8, showcasing many new technologies. generation product. Introduction to the Future Memory and Storage Summit (FutureMemoryandStorage), formerly the Flash Memory Summit (FlashMemorySummit) mainly for NAND suppliers, in the context of increasing attention to artificial intelligence technology, this year was renamed the Future Memory and Storage Summit (FutureMemoryandStorage) to invite DRAM and storage vendors and many more players. New product SK hynix launched last year
