프롬프트 엔지니어링

오픈AI의 ChatGPT 코드 인터프리터 탐색: 그 기능에 대한 심층 분석

mm

오픈AI의 자연어 처리(NLP) 분야에서의 발전은 대규모 언어 모델(LLM)의 등장으로 특징지어지며, 이러한 모델은 수백만 명이 사용하는 제품을 지원합니다. 이러한 모델은 고유한 정보 기억과 통합 능력을 통해 코드 및 텍스트 생성과 같은 작업에서 이전에 없는 성과를 달성했습니다.

ChatGPT 코드 인터프리터 이해

ChatGPT 코드 인터프리터의 중요성을 이해하기 위해서는 먼저 무엇인지 그리고 어떻게 만들어졌는지 알아야 합니다.

본질적으로, ChatGPT 코드 인터프리터는 ChatGPT의 기능을 활용하지만 다양한 프로그래밍 언어에서 코드를 이해, 해석, 생성하는 능력이 향상되었습니다. 이 기능은 ChatGPT를 단순한 텍스트 생성기에서 개발자에게 코드 이해, 디버깅, 코드 생성을 도와주는 귀중한 도구로 변환합니다.

Codex 접근법을 통한 GPT 코딩 훈련

GitHub Copilot과 ChatGPT의 코드 인터프리터는 모두 OpenAI에서 개발한 Codex 모델을 사용합니다.

Codex는 Python 코드 작성 능력이 우수한 전문 GPT 언어 모델입니다. GitHub의 공개 소스 코드를 사용하여 훈련된 Codex는 GitHub Copilot의 기능을 구동하는 잠재력을展示합니다. 프로그램을 docstring에서 합성할 때의 기능적 정밀도에서 Codex는 GPT-3와 GPT-J를 능가합니다.

특히, Codex의 샘플링을 반복하면 그 능력이 향상됩니다. 문제당 최대 100개의 샘플을 사용할 때, 모델의 성공률은 70.2%까지 증가합니다. 이러한 효율성은 정확한 코드 샘플을 선택하기 위해 휴리스틱 랭킹을 사용할 가능성을 시사합니다.

그 능력을 평가하기 위해, 모델은 docstring만을 기반으로 독립적인 Python 함수를 생성하도록 지시받았습니다. 생성된 코드의 정확도는 유닛 테스트를 사용하여 측정되었습니다. 164개의 원래 프로그래밍 문제로 구성된 데이터 세트에서, Codex는 12B 파라미터로 단일 시도에서 28.8%의 문제를 해결했습니다.

Codex 모델 훈련 데이터 - ChatGPT 코드 인터프리터

Codex 모델 훈련 데이터: https://arxiv.org/abs/2107.03374

정확하게 구현된 독립 함수를 미세 조정하여 모델의 효율성을 향상시킴으로써, Codex-S는 첫 시도에서 37.7%의 문제를 해결했습니다. 그러나 실제 프로그래밍 세계에서는 시도와 오류 접근 방식이 일반적입니다. 이러한 실제 시나리오를 모방하여, Codex-S 모델은 100번의 기회에서 77.5%의 문제를 성공적으로 해결했습니다.

ChatGPT 미세 조정 아키텍처

코드를 생성하는 생성 모델은 일반적으로 참조 솔루션과 생성된 샘플을 비교하여 평가됩니다. 이 비교는 정확하거나 유사성 측정인 BLEU 점수를 사용할 수 있습니다. 그러나 이러한 매칭 기반 지표는 코딩의 세부 사항을 이해하지 못합니다. BLEU의 주요 비판은 코드의 의미적 특성을 포착하지 못한다는 것입니다.

매칭에만 의존하지 않고, 더 관련 있는 측정 지표가 제안되었습니다: 기능적 정밀도. 즉, 모델이 생성한 코드는 주어진 유닛 테스트 세트를 통과해야 합니다. 이 아이디어는 표준 코딩 관행과 일치하며, 개발자는 코드의 효능과 정확성을 평가하기 위해 유닛 테스트를 사용합니다.

이 측정 지표는 정확성뿐만 아니라 생성된 코드의 기능적 사용 가능성을 평가합니다.

pass@k 측정 지표가 기능적 정밀도의 척도로 도입되었습니다. 본质적으로, “k”개의 생성된 코드 샘플 중 하나가 유닛 테스트를 통과하면 문제가 해결된 것으로 간주됩니다. 그러나 직접적인 형태를 사용하는 대신, 높은 분산을 피하기 위해 pass@k의 무편향 추정치를 사용합니다.

ChatGPT의 코드 능력을 평가하기 위해, 연구에서는 HumanEval 데이터 세트를 사용했습니다. 이 데이터 세트는 각 유닛 테스트와 함께 제공되는 Python 문제로 구성되어 있습니다.

ChatGPT 오픈AI 훈련 데이터 세트 예

https://github.com/openai/code-align-evals-data/blob/main/human_eval

알 수 없는 또는 신뢰할 수 없는 코드를 실행하는 위험으로 인해, 생성된 코드를 안전하게 테스트하기 위한 샌드박스 환경이 설계되었습니다. 이 환경은 gVisor를 사용하여 리소스를 에뮬레이트하고 호스트 시스템과 실행 중인 코드 사이에 장벽을 생성했습니다. 따라서 모델이 악의적인 코드를 생성하더라도, 그것은 격리되어 호스트 또는 네트워크를 손상할 수 없습니다.

ChatGPT 코드 인터프리터 사용

OpenAI의 ChatGPT는 여러 번의 진화를 거쳤으며, 코드 인터프리터는 GPT-4 모델에서 혁신적인 기능으로 두드러집니다. 전통적인 채팅 인터페이스와는 달리, 코드 인터프리터는 사용자가 계산 작업에 깊이 참여할 수 있도록 허용하며, 인간과 AI의 대화 및 계산 프로세스 사이의 경계를 무너뜨립니다.

본질적으로, 코드 인터프리터는 채팅 봇 내에 컴퓨터를 갖는 것과 같습니다. 이 동적 기능은 사용자에게 다양한 파일 형식을 업로드할 수 있는 임시 디스크 공간을 제공합니다. 이는 문서 처리에서 이미지 조작까지 다양한 작업에 걸쳐 그 유연성을 증대시킵니다.

강력하고 보안이 된 프레임워크 내에서 작동하는 코드 인터프리터는 300개 이상의 사전 설치된 라이브러리를 갖추고 있습니다. 이 샌드박스 환경은 보안을 유지하면서도 상당한 계산 능력을 제공합니다. 사용자 요청을 처리할 때, 코드 인터프리터는 실시간으로 Python 스크립트를 생성하여 요청을 실행합니다. 예를 들어, 이미지 기반 PDF를 검색 가능한 형식으로 변환하는 OCR을 사용하는 경우, 사용자는 문서를 업로드하기만 하면 ChatGPT가 나머지 작업을 처리합니다.

파일 크기 제한은 사용자 실험을 통해 시스템이 100MB보다 훨씬 큰 파일을 처리할 수 있음을 시사합니다. 파일 크기와 상관없이, 이러한 파일은 채팅 세션이 끝나면 삭제됩니다.

코드 인터프리터의 지능은 기술적 능력뿐만 아니라 접근성에도 있습니다. OpenAI는 이 기능을 ChatGPT Plus의 구독자에게 제공하며, 이는 GPT-4 모델을 포함합니다. 따라서 이 변革적인 도구는 기술 엘리트만을 위한 것이 아니라 점차 더广泛한 대상에게 접근 가능해지고 있습니다.

표준 ChatGPT 모델과 코드 인터프리터 사이의 차이점은 상호작용 패러다임에 있습니다. 전자는 주로 텍스트 응답을 생성하는 반면, 후자는 코드를 이해하고 실행하여 직접적인 결과를 제공합니다. 이는 기술 전문가에게 귀중한 자산이 될 뿐만 아니라, 코딩 지식이 없는 사람들도 복잡한 계산 작업을 수행할 수 있도록 합니다.

ChatGPT 코드 인터프리터의 능력은 소프트웨어 개발과 데이터 과학의 여러 측면을 혁신할 수 있습니다:

  • 자동 코드 생성: 소프트웨어 응용 프로그램과 데이터 분석 스크립트 모두에서, 높은 수준의 설명이 주어지면, 시스템은 보일러플레이트 구조 또는 복잡한 코드 스니펫을 생성하여 개발과 데이터 분석 프로세스를 가속화할 수 있습니다.
  • 코드 리뷰 및 데이터 검증: AI 기반 도구는 소프트웨어 코드베이스의 품질과 보안을 향상시키는 데 도움을 줄 수 있습니다. 또한 데이터 과학 분야에서 이러한 도구는 데이터 처리와 변환 스크립트를 검토하고 검증하는 데 도움이 될 수 있습니다.
  • 데이터 분석 지원: 데이터 과학자에게, ChatGPT 코드 인터프리터는 초기 데이터 탐색, 시각화, 심지어 기본 통계 테스트를 위한 코드를 생성하는 데 도움을 줄 수 있습니다.

ChatGPT와 프롬프트 엔지니어링의 세부 사항에 대해 더 알고 싶다면, Unite AI는 ‘ChatGPT: 고급 프롬프트 엔지니어링‘을 제공합니다.

ChatGPT 코드 인터프리터 설정

코드 인터프리터 통합을 통해 플랫폼은 사용자 쿼리를 해석하고, 이를 Python 코드로 실행하며, 결과를 대화 형식으로 표시합니다. 이 기능에 접근하려면, 사용자는 ChatGPT 설정으로 이동하여 베타 기능 섹션에서 코드 인터프리터를 활성화할 수 있습니다.

그것이 구별되는 점은 투명한 메커니즘입니다. 사용자가 작업을 요청하면, 플랫폼은 처리 과정을 공개하여, 명령어가 어떻게 해석되고 실행되는지에 대한 명확성을 제공합니다. 중요한 것은, 개인 정보 보호와 보안을 위해, 코드 인터프리터는 인터넷 연결 없이 작동합니다.

ChatGPT 코드 인터프리터의 이점 탐색

데이터 시각화 및 분석

ChatGPT는 전통적인 차트를 넘어서, 사용자에게 의미 있는 통찰력을 제공하는 다양한 그래픽 표현을 제공합니다.

그러나 이는 단순히 원시 데이터를 시각화하는 것만이 아닙니다. ChatGPT 모델은 데이터를 처리하고 정제하는 데 능숙합니다. 그러나 사용자는 주의해야 합니다.

금융 분석가는 코드 인터프리터의 주가 분석 능력이 특히 유용하다는 것을 알 수 있습니다. 사용자는 데이터 세트를 업로드하고 다양한 형식으로 시각화할 수 있습니다. 이 기능의 중요성은 복잡한 데이터 분석을 수행할 수 있을 때 나타납니다.

아래 비디오는 ChatGPT 코드 인터프리터가 어떻게 포괄적인 TSLA 주가 분석을 생성하는지 보여줍니다.

주요 사항:

  • 테슬라의 주가는 변동성을 겪었지만, 성장의 시기도 보였습니다.
  • 특정 날짜의 높은 거래량은 시장의重大한 관심이나 주요 이벤트에 대한 반응을 나타냅니다.
  • 연중 실적(YTD) 수익률의 하락은 투자자들이 미래의 투자에 대해 회사 내부 요인과 외부 시장 조건을 모두 분석해야 함을 시사합니다.

컴퓨터 비전 및 OCR 구현

顔 인식, 컴퓨터 비전의 필수 기능,은 OpenCV의 Haar Cascade 분류기와 같은 고전적인 기술로 접근되었습니다.

이미지 아래는 Haar Cascade 분류기의 사용을 보여줍니다.

이미지에서 텍스트 추출, 즉 광학 문자 인식(OCR),은 Tesseract를 사용하여 무리 없이 수행되었습니다. 추출된 텍스트는 이후 GPT-4에 의해 구조화되어 이해하기 쉽게 되었습니다.

다음 비디오에서는 Tesseract(OCR)가 인증서 이미지에서 텍스트를 추출하는 것을 보여줍니다.

코드 인터프리터는 비디오, 오디오, 이미지 조작 분야에서도 탁월합니다. 간단한 명령으로, 사용자는 자세한 편집을 수행할 수 있습니다. 예를 들어, GIF를 특정한 향상으로 MP4로 변환하는 경우, 파일을 업로드하고 원하는 수정을 입력하기만 하면 됩니다.

ChatGPT 코드 인터프리터 내의 Python 외부 라이브러리

ChatGPT 코드 인터프리터는 광범위한 Python 라이브러리를 갖춘 동적 프로그래밍 플랫폼입니다. 이러한 라이브러리는 데이터 시각화에서 Seaborn까지, Torch를 통한 고급 기계 학습까지 모든 것을 다룹니다. 그러나 이는 정적 도구킷을 넘어섭니다.

이것은 Korakot Chaovavanich의 ChatGPT 페이지에서 영감을 받았습니다.

최신 nltk 릴리즈에서 시작하여, 우리는 .whl 파일을 인터프리터에 업로드했습니다. 그런 다음 우리는 ChatGPT에게 기존 패키지의 위치를 분석하여 적합한 site-packages 디렉토리를 찾도록 지시했습니다. 다음 단계는 임시 위치에 휠 파일을 언팩하고 파일을 식별된 site-packages 디렉토리로 이동하는 것이었습니다. 그러나 이것은 문제를 만났습니다.

대안을 찾기 위해, 우리는 “NLTK를 Python 환경에 설치하고 설치 후에 접근할 수 있도록 해주세요”라고 요청했습니다.

ChatGPT는 해결책을 제공했습니다. 임시 디렉토리를 sys.path에 추가하여, Python이 언팩된 nltk 패키지에서 모듈을 식별하고 가져올 수 있도록 제안했습니다. 이 전략은 잘 작동했습니다. 결과적으로, NLTK의 설치가 성공적으로 완료되었습니다.

.whl 파일을 사용하여 설치를 표시하는 것은 지능과 적응성의 혼합을 보여줍니다. 초기에 어려움이 있었음에도 불구하고, ChatGPT 코드 인터프리터는 그 유연성과 코더의需求에 대한 적응을 보여주었습니다.

ChatGPT 코드 인터프리터에서 사용자 정의 라이브러리 설치

인터프리터의 능력은 최근 Dominik Peters의 트윗에서 독특한 시연을 보여주었습니다. Peters는 GPT-4에게 파리 아롱디스망에 대한 퀴즈를 생성하도록 요청했고, 모델은 잘 작동하는 웹사이트를 제공했습니다. 작동하는 퀴즈는 dominik-peters.de/gpt-arrondissement-quiz/에서 직접 경험할 수 있습니다.

https://twitter.com/DominikPeters/status/1652630445639467008?s=20

결론

OpenAI의 ChatGPT 코드 인터프리터는 코더와 비코더 모두에게 변혁을 가져오는 것입니다. 다양한 작업, 즉 개발자에게 디버깅을 지원하는 것부터 파리 퀴즈를 생성하는 것까지의 유연성은 AI가 디지털 경험을 향상시키는 데에 무한한 잠재력을 보여줍니다. 여기에서는 우리의 심층 분석의 요약입니다.

도구를 이해하십시오: 코드 인터프리터는 Codex 위에 구축되었으며, 여러 프로그래밍 언어에서 코드를 이해, 해석, 생성할 수 있습니다. 이는 모든 코딩 모험에 이상적인 동료입니다.

AI 혁명을 받아들이십시오: 전통적인 코딩 관행은 AI 기반 도구로 인해 큰 변화를 겪을 것입니다. 버그 식별, 코드 생성, 코드 리뷰와 같은 작업을 가속화하는 도구가 있습니다.

코드를 넘어: 인터프리터의 범위는 텍스트나 코드에만 국한되지 않습니다. 다양한 파일 형식을 처리하는 능력은 여러 분야에서 그 유용성을 강조합니다.

계속 실험하십시오: NLTK 라이브러리 설치와의 우리의 실험은 지속성과 적응성의 중요성을 보여줍니다. 만약에 문제가 있다면, 일반적으로 해결책이 있습니다.

AI 대화에 참여하십시오: 실제 적용, 예를 들어 파리 아롱디스망 퀴즈,은 도구의 실제 유용성을 강조합니다. 이를 받아들이고, 탐색하고, 프로젝트를 강화시키십시오.

위 비디오는 Gen-2와 Midjourney를 사용하여 제작되었습니다.

ChatGPT 코드 인터프리터는 단순한 도구가 아니라, 기술과 연결되는 방식을 바꾸는 것입니다. 혁신가와 열광자 모두에게, 코드의 가능성이 가득 찬 세계를 약속합니다.

지난 5년 동안私は Machine Learning과 Deep Learning의 매혹적인 세계에 몰두해 왔습니다.私の熱情と専門知識は私を50以上의多様한 소프트웨어 엔지니어링 프로젝트에 기여하게 했으며, 특히 AI/ML에 중점을 두었습니다.私の継続的な 호기심은 또한私를自然어 처리로 끌어들였습니다.私は이 분야를さらに 탐구하기를熱望합니다.