[Programer 코딩]ChatGPT를 사용하여 코드를 디버그

[Programer 코딩]ChatGPT를 사용하여 코드를 디버그

cloudhwang 0 802

사람들이 이메일, 시, 노래 가사 및 대학 에세이를 작성하는 데 사용하는 자연어 챗봇 인 ChatGPT의 최근 릴리스 덕분에 AI가 다시 활기를 띠고 있습니다. 얼리어답터들은 그것을 파이썬 코드 를 작성하고 쉘코드를 리버스 엔지니어링하고 C로 다시 작성하는 데 사용하기도 했습니다 . ChatGPT는 AI의 실용적인 응용 프로그램이 도래하기를 열망하는 사람들 사이에서 희망을 불러일으켰지만 로봇과 컴퓨터가 일부 계산원, 조립 라인 작업자, 그리고 아마도 미래, 택시 기사들. 


기술이 점점 더 많은 온라인 작문의 예를 수집함에 따라 AI 텍스트 작성 기능이 미래에 얼마나 정교해질지 말하기는 어렵습니다. 그러나 나는 프로그래밍 능력이 매우 제한적이라고 생각합니다. 어쨌든 소프트웨어 엔지니어가 제공하는 비판적 사고 기술이 필요하지 않은 작업을 처리하기 위한 개발자 키트의 또 다른 도구에 불과할 수 있습니다.


후원 가능ChatGPT는 인간의 대화를 시뮬레이션하고 박식하게 들리기 때문에 많은 사람들에게 깊은 인상을 남겼습니다. 인기 있는 텍스트-이미지 AI 엔진 DALL-E의 제작자인 OpenAI 에서 개발한 이 제품은 코드 저장소를 포함하여 인터넷에서 스크랩한 방대한 양의 텍스트에 대해 훈련된 대규모 언어 모델로 구동됩니다. 그것은 알고리즘을 사용하여 텍스트를 분석하고 인간은 마치 인간이 쓴 것처럼 들리는 완전한 문장으로 사용자 질문에 응답하도록 시스템 훈련을 미세 조정합니다.


그러나 ChatGPT에는 결함이 있습니다. 콘텐츠를 작성하는 데 방해가 되는 것과 동일한 제한으로 인해 코드를 생성하는 데에도 신뢰할 수 없습니다. 인간 지능이 아닌 데이터를 기반으로 하기 때문에 문장이 일관되게 들릴 수 있지만 비판적으로 정보에 입각한 응답을 제공하지 못합니다. 또한 증오심 표현 과 같은 불쾌감을 주는 콘텐츠의 용도를 변경 합니다. 답변이 합리적으로 들릴 수 있지만 매우 부정확할 수 있습니다. 예를 들어, 1,000과 1,062, 두 숫자 중 어느 것이 더 큰지 물으면 ChatGPT는 1,000이 더 크다고 합리적으로 대답합니다 .


OpenAI의 웹사이트 는 ChatGPT를 사용하여 코드를 디버그하는 데 도움이 되는 예를 제공합니다. 응답은 이전 코드에서 생성되며 인간 기반 QA를 복제하는 기능이 부족합니다. 즉, 오류 및 버그가 있는 코드를 생성할 수 있습니다. OpenAI는 ChatGPT가 때때로 그럴듯하게 들리지만 부정확하거나 무의미한 답변을 작성한다는 점을 인정했습니다. ” 어떤 프로그램 제작에 직접적으로 사용해서는 안 되는 이유다.

신뢰성 부족은 이미 개발자 커뮤니티에 문제를 일으키고 있습니다. 코더가 코드를 작성하고 문제를 해결하는 데 사용하는 질문 및 답변 웹 사이트인 Stack Overflow 는 ChatGPT에서 생성된 엄청난 양의 응답이 있어 품질 관리를 따라갈 수 없다고 말하면서 일시적으로 사용을 금지했습니다. 인간. “ 전반적으로 ChatGPT에서 정답 을 얻는 평균 비율 이 너무 낮기 때문에 ChatGPT에서 만든 답변을 게시하는 것은 사이트와 정답 을 묻 거나 찾는 사용자에게 상당히 해롭습니다 .”

코딩 오류는 차치하고 ChatGPT는 모든 기계 학습 도구와 마찬가지로 결과에 적합한 데이터(이 경우 텍스트 특성)에 대해 훈련되기 때문에 프로그래밍을 잘 수행하기 위한 컴퓨팅의 인간 컨텍스트를 이해하는 능력이 부족합니다. 소프트웨어 엔지니어는 자신이 만들고 있는 소프트웨어의 의도된 목적과 그것을 사용할 사람들을 이해해야 합니다. 역류된 코드로 프로그램을 짜맞추는 방식으로는 좋은 소프트웨어를 만들 수 없습니다.

예를 들어 ChatGPT는 단순한 요구 사항의 모호성을 이해할 수 없습니다. 하나의 공이 튀었다가 다시 돌아오고 다른 공이 튀었다가 다시 튀는 것이 분명하지만 두 번째 공은 더 멀리 이동한 것입니다. 이러한 시스템이 개발자로부터 인계받으려면 그 뉘앙스가 필요할 것입니다.


또한 어느 것이 더 큰지 결정하라는 요청을 받고 음수와 양수 중에서 선택을 제공하는 것과 같은 기본적인 수학에 문제가 있습니다. ChatGPT는 자신 있게 공간의 정확한 합계를 알려 주지만 -5가 4보다 작다는 것을 이해할 수 없습니다. 난방이 섭씨 -5도가 아닌 섭씨 40도에서 시작되기 때문에 온도 조절기가 고장 난다고 상상해 보세요. 방법! 


사전 훈련된 AI 코드 생성은 또한 지적 재산권과 관련하여 몇 가지 법적 문제를 제기합니다. 현재는 제한적 또는 공개 방식으로 라이선스가 부여된 코드를 구분할 수 없습니다. 이로 인해 AI가 저작권이 있는 저장소에서 미리 작성된 코드 라인을 차용하는 경우 사람들이 라이선스 준수 위험에 노출될 수 있습니다. 이 문제는 이미 GitHub Copilot 이라는 다른 OpenAI 기반 제품에 대한 집단 소송 을 촉발했습니다 .

사람들이 의존하는 소프트웨어를 만들려면 사람이 필요하지만 소프트웨어 개발에 AI가 들어갈 자리가 없다는 말은 아닙니다. 스캐닝, 모니터링 및 기본 사고 대응을 위해 보안 운영 센터에서 자동화를 사용하는 것처럼 AI는 하위 수준 작업을 처리하기 위한 프로그래밍 도구 역할을 할 수 있습니다. 

이것은 이미 어느 정도 일어나고 있습니다. GitHub Copilot을 통해 개발자는 ChatGPT를 사용하여 코드를 개선하고 테스트를 추가하고 버그를 찾을 수 있습니다. Amazon은 통합 환경에서 자연어 주석 및 코드로 생성된 코드 권장 사항을 사용하여 개발자 생산성을 높이도록 설계된 기계 언어 기반 도구인 CodeWhisperer 를 제공합니다. 그리고 누군가 ChatGPT와 함께 작동 하는 Visual Studio 코드 확장 을 만들었습니다. 

그리고 한 회사는 개발자를 위해 AI를 테스트하고 있습니다. Google과 모회사를 공유하는 DeepMind는 올해 초 AlphaCode 라는 자체 코드 생성 도구를 출시했습니다. DeepMind는 Machine Learning systems can too program 이라는 제목으로 이달 초 Science 잡지의 Codeforces 플랫폼 대회에서 시뮬레이션 평가 결과를 발표했습니다 . 헤드라인 문법은 제쳐두고AlphaCode는 "비판적 사고, 논리, 알고리즘, 코딩 및 자연어 이해의 조합이 필요한" 문제를 해결하여 참가자의 상위 54% 내에서 예상 순위를 달성했습니다. 논문의 초록은 이렇게 말합니다. “이러한 코딩 플랫폼의 개발은 프로그래머의 생산성에 막대한 영향을 미칠 수 있습니다. 기계 학습이 코드 생성 및 실행을 담당하면서 인간 작업을 문제 공식화로 전환함으로써 프로그래밍 문화를 바꿀 수도 있습니다.” 

기계 학습 시스템은 매일 점점 더 발전하고 있습니다. 그러나 그들은 인간의 두뇌처럼 생각할 수 없습니다. 이것은 지난 40년 이상 인공 지능에 대한 연구의 경우였습니다. 이러한 시스템은 패턴을 인식하고 간단한 작업의 생산성을 높일 수 있지만 항상 인간만큼 코드를 생성하지는 않을 수 있습니다. 컴퓨터가 대량으로 코드를 생성하도록 허용하기 전에 AlphaCode와 같은 시스템이 Codeforces와 같은 플랫폼에서 참가자의 상위 75%에 속하는 것을 볼 수 있을 것입니다. 그 동안 기계 학습은 미래의 간단한 프로그래밍 문제를 해결하는 데 도움이 될 수 있으므로 미래의 개발자는 더 복잡한 문제를 생각할 수 있습니다.

이 시점에서 ChatGPT는 기술 분야, 특히 소프트웨어 엔지니어링 분야를 방해하지 않을 것입니다. 프로그래머를 대체하는 로봇에 대한 우려는 지나치게 과장된 것입니다. 기계가 결코 할 수 없는 일을 인간의 인지 능력을 가진 개발자가 할 수 있는 일이 항상 있을 것입니다. 

0 Comments
제목