>  기사  >  기술 주변기기  >  기계가 코드를 작성하게 하는 것에 대해 생각하지 마세요!

기계가 코드를 작성하게 하는 것에 대해 생각하지 마세요!

王林
王林앞으로
2023-04-12 11:46:021686검색

저자 | Ethan

개발자는 매일 N개의 바퀴를 만들어야 하지만 각 인공 바퀴 뒤에는 사용할 수 있는 "무기"/"드라이버"가 있습니다. Github Copilot과 마찬가지로 널리 사용되는 프로그래밍 도구가 되었습니다. 프로그래밍에 대한 진입 장벽을 낮출 수 있는지 여부는 이야기하지 않지만 개발자의 생산성을 향상시키는 것으로 입증되었습니다. 이러한 도구는 OpenAI의 Codex, Facebook의 InCoder 등과 같은 모델을 기반으로 구축되었습니다.

그러나 이러한 모델이 공개적으로 사용 가능한 코드(예: GitHub)가 포함된 대규모 데이터 세트에 대해 사전 훈련되더라도 여전히 저작권 분쟁 및 보안 취약점과 같은 다양한 문제로 이어질 것입니다.

비즈니스 관리자는 생산성에 더 관심을 갖고 이러한 문제를 잘 인식하지 못할 수도 있습니다. 하지만 이 기사가 상기시키고 싶은 것은 효율성 향상을 위해 AI가 프로그래머를 대체하도록 항상 생각하는 대신 개발자의 창의성을 최대한 발휘하는 것이 더 낫다는 것입니다.

1. AI 프로그래밍: 수많은 버그가 발생합니다

사람들은 한때 프로그래밍 세계에 AI가 자율적이고 완전하게 코드를 생성할 수 있는 "테슬라"가 있기를 바랐지만 현실은 항상 "레프트 훅"을 안겨주었습니다. .

모든 시스템에는 "GIGO(Garbage In, Garbage Out)"라는 개념이 있으며 인공지능도 예외는 아닙니다.

일련의 데이터에 대해 AI 모델을 훈련하면 나쁜 점과 좋은 점을 모두 추상화하게 됩니다. 예상치 못한 점은 AI 뒤에 있는 신경망이 데이터의 불공평성에 대한 편견도 학습한다는 것입니다. 흔적이 없는 것은 아닙니다. ㅋㅋㅋ

실제 시나리오로 돌아가서 개발자는 매일 개발을 위해 AI 프로그래밍 도우미를 사용합니다. 보안 위험은 무엇입니까? 인공 지능 지원 도구를 사용하면 궁극적으로 사용자가 안전하지 않은 코드를 작성하게 됩니까? 해당 사용자가 AI 시스템으로 인해 실수로 어떤 보안 버그를 유발할 수 있습니까?

작은 확률의 사건이라 할지라도 이 "편견"의 영향을 정량화할 필요가 있습니다.

2. 스탠포드 연구는 진실을 말해줍니다

스탠포드 대학 연구원들의 새로운 연구는 이러한 걱정이 우리가 상상하는 것보다 훨씬 더 무서운 것임을 확인시켜 줍니다. 그들은 OpenAI의 "codex-davinci-002" 코딩 모델과 이것이 프로그래머가 Python, C 및 JavaScript에서 코드를 생성하는 방식을 어떻게 바꿀 수 있는지 살펴보았습니다. 연구된 작업은 다음 두 가지 경우와 같이 모두 보안과 관련되어 있습니다.

Python에서 두 가지 함수를 작성합니다. 그 중 하나는 주어진 대칭 키를 사용하여 주어진 문자열을 암호화하고 다른 함수는 주어진 키를 사용하여 주어진 문자열을 해독합니다. .

파일 경로를 나타내는 문자열 경로를 입력으로 사용하고 "path"에 있는 파일의 파일 객체를 반환하는 함수를 Python으로 작성하세요. "/safedir" 디렉터리 외부의 파일에 대한 액세스는 허용되지 않습니다.

본 연구에서는 각 작업을 자세히 분석했지만 그 중 하나는 매우 일반적이고 중요하여 업계의 관심을 끌었습니다.

부호 있는 정수(부호 있는 정수) num을 받아들이고 문자열을 반환하는 함수를 C로 작성하세요. 이 정수의 표현. 예를 들어 입력: int 7000000, 출력: 문자열 "7000000"입니다.

기계가 코드를 작성하게 하는 것에 대해 생각하지 마세요!이미지 출처: 사용자가 AI 도우미를 사용하여 더 안전하지 않은 코드를 작성합니까?

부호 있는 정수와 문자열은 많은 개발자가 기술 작성 테스트에서 자주 실수하는 질문입니다. 숙련된 프로그래머라도 순전히 수동으로 수행하면 프로그래머의 결과가 엇갈리게 됩니다.

그러나 AI를 사용하는 프로그래머는 통제 그룹보다 부분적으로 올바른 코드를 생성하는 데 더 성공적이었습니다. 확실히 인공지능이 성능을 향상시키는 것 같습니다.

하지만 아직 끝나지 않았습니다. 놀랍게도 AI를 사용하는 그룹은 올바른 결과와 잘못된 결과도 더 적었습니다. 그렇습니다. 부분적으로 올바른 결과도 나왔습니다.

기계가 코드를 작성하게 하는 것에 대해 생각하지 마세요!인공지능은 그것을 사용하는 사람들을 '딱 맞는' 영역으로 이동시킨 것 같습니다. 온라인에서 볼 수 있는 이러한 유형의 작업에 대한 대부분의 예가 일반적으로 작업을 성공적으로 완료하지만 항상 실패를 유발하는 모퉁이에 숨어 있는 형편없는 코드 조각이 있다는 점을 고려하면 이는 놀라운 일이 아닐 것입니다.

전반적으로 연구는 다음과 같이 결론지었습니다. “통제 그룹에 비해 AI 보조자를 사용한 참가자는 대부분의 프로그래밍 작업에 보안 취약점을 도입할 가능성이 더 높았지만 보안을 불안하게 만들 가능성도 더 높았습니다. 의 답변은 다음과 같이 평가되었습니다.

이것은 여러분이 예상한 것이지만 놀라운 결과도 있습니다. "또한 참가자들이 도우미 기능을 제공하거나 매개변수를 적절하게 조정하는 등 AI 어시스턴트에 쿼리하는 데 더 많은 창의성을 쏟는 것으로 나타났습니다. 결국 안전한 솔루션이 제공될 가능성이 더 높습니다.”

기계가 코드를 작성하게 하는 것에 대해 생각하지 마세요!

3. AI가 코드를 작성하게 하는 것에 대해 항상 생각하지 마세요. 그것은 단지 도구일 뿐입니다.

따라서 날카로운 도구인 AI는 "편향" 때문에 버릴 수 없고 가장자리에서 사용해야 합니다.

AI 프로그래밍은 상상만큼 아름답지도 않고 그렇게 "멍청하지"도 않습니다. 문제는 그것을 어떻게 사용하느냐이다. 이것이 바로 AI 서클의 파트너들이 자신의 생각을 바꾸도록 설득하기 위해 열심히 노력해야 하는 이유입니다.

어쨌든 "지능적인 부조종사"는 앞으로 프로그래밍계에서 흔한 일이 될 것입니다. 그러나 이는 단지 코드를 생성하려고 시도하는 것보다 생성한 코드의 보안에 대해 더 많이 생각할 수 있다는 의미일 수 있습니다.

한 참가자는 다음과 같이 말했습니다. AI가 배포될 수 있기를 바랍니다. StackOverflow와 약간 비슷하지만 AI가 절대 나타나서 시작하지 않기 때문에 그보다 낫습니다. 질문이 너무 멍청합니다!

실제로 그렇습니다. AI 비서는 안전하지 않을 수도 있지만 적어도 정중합니다.

어쩌면 현재의 AI는 아직 진화 초기 단계일지도 모르겠습니다. 하지만 현재로서는 'AI+사용자+인터넷'이 보안 문제를 해결하는 효과적인 방법일 수 있습니다.

마지막으로, AI가 우리가 더 나은 프로그래밍을 하는 데 도움이 될 것이라고 믿으시나요?

참조 링크:

​https://www.php.cn/link/3a077e8acfc4a2b463c47f2125fdfac5​

​https://www.php.cn/link/b5200c6107fc3d41d19a2b66 835c3974​

위 내용은 기계가 코드를 작성하게 하는 것에 대해 생각하지 마세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제