chatGPT로 코딩하기

Feb 10 2023
OpenAI의 언어 모델을 사용하여 지리 데이터 과학을 위한 Python 코드 작성
최근 OpenAI에서 개발한 AI 챗봇인 ChatGPT에 대해 알게 되었는데, 놀라울 정도로 인간적인 방식으로 사용자에게 응답할 수 있습니다. chatGPT는 텍스트를 사용하여 응답할 수 있을 뿐만 아니라 코드 작성을 요청할 수도 있습니다.

최근 OpenAI 에서 개발한 인공지능 챗봇인 ChatGPT 에 대해 알게 되었습니다 . chatGPT는 텍스트를 사용하여 응답할 수 있을 뿐만 아니라 코드 작성을 요청할 수도 있습니다. 실제로 지인은 최근 도시 데이터 과학 석사 과정에서 에세이 작성과 코드 작성을 위해 chatGPT를 사용하여 숙제를 했다고 말했습니다.

데이터 과학에 chatGPT를 사용하는 예, Medium 기사 참조

대부분의 근무 시간을 코딩하는 데 보내는 사람으로서 채팅 봇이 나를 위해 코드를 작성하는 것은 매우 흥미롭고 (내가 절약할 수 있는 모든 시간을 생각해보세요!) 약간 무섭게 들립니다(이것은 내가 몇 년 안에 직업?) . 특히 Python을 사용한 공간 데이터 분석을 위해 채팅 GPT의 코딩 기능을 사용해 보기로 했습니다. 이 기사는 몇 가지 첫 번째 결과와 첫 번째 생각을 보여줍니다.

이 기사에서는 Chat GPT에 자주 수행해야 하는 일반적인 작업을 수행하도록 요청했습니다. 즉, 다각형(국가, 도시 또는 자치 단체의 모양일 수 있음)을 통계를 쉽게 집계할 수 있는 셀 그리드로 전환하는 것입니다.

시작하기 전에 실제로 Chat GPT란 무엇입니까? 나는 이 질문을 챗봇 자체에 물었고, 그 대답은 다음과 같다.

GPT("Generative Pre-training Transformer"의 약어)는 OpenAI에서 개발한 일종의 언어 모델입니다. 큰 데이터 세트가 주어진 시퀀스에서 다음 단어를 예측하여 인간과 유사한 텍스트를 생성하도록 훈련된 신경망입니다. 채팅 GPT는 사용자 메시지에 대한 응답을 실시간으로 생성하는 데 사용할 수 있는 채팅 애플리케이션에서 이 모델을 사용하는 것을 말합니다. 대화의 맥락을 이해하고 적절한 응답을 생성하여 대화를 이어갈 수 있도록 설계되었습니다.

시작하자!

먼저 채팅 GPT에 "폴리곤 내에 지오데이터프레임 그리드 만들기"를 요청했고 다음과 같은 답변을 받았습니다.

import geopandas as gpd

# create a polygon
polygon = gpd.GeoDataFrame({'geometry': gpd.GeoSeries([Polygon([(0,0), (0,1), (1,1), (1,0)])])})
# create a grid of geodataframe within the polygon
grid = gpd.gridify(polygon, cell_size=0.1, geometry='Polygon')
# plot the grid
grid.plot()

그러나 이라는 또 다른 파이썬 모듈이 있으므로 gridify챗봇이 혼란스러워했을 수 있습니다. 여기 링크를 참조하십시오 . shapely또한 사용하기 전에 속성을 가져오는 것을 잊어버렸지 Polygon만 이는 사소한 문제였습니다.

채팅 GPT의 흥미로운 점은 지속적인 대화를 할 수 있고 이전 대화를 기억한다는 것입니다. 그래서 작동하는 코드를 얻기 위해 후속 질문을 했습니다. 그래서 저는 “이 코드를 시도했지만 “모듈 'geopandas'에는 'gridify' 속성이 없습니다”라는 오류가 발생했습니다.”라고 물었습니다. 이 문제를 고칠 수 있습니까?”라고 물었고 응답은 다음과 같습니다.

봇이 shapely속성이 있다고 주장하는 동안 gridify코드를 실행했을 때 그것이 사실이 아님을 알게 되었습니다. shapely특성도 없습니다 gridify.

그래서 또 다른 후속 질문을 했습니다. “코드를 시도했지만 “'shapely.gridify'라는 모듈이 없습니다. 다른 옵션은 없나요?”

gridify 그런 다음 봇은 IS가 라이브러리 의 일부 shapely이지만 최신 버전에서는 제거되었다고 자신 있게 말했습니다 . 이 역시 제가 아는 한 사실이 아닙니다.

그것이 작성한 코드는 내가 찾던 것과는 거리가 먼 사각형 루프를 생성했습니다. 솔직히 저는 꽤 재미있게 봤습니다.

두 번째 시도: 성공했습니다!

채팅 GPT와의 첫 번째 대화가 잘 진행되지 않았기 때문에 다시 시작하기로 결정하고 더 명확하게 질문했습니다. 나는 "geodataframe으로 셀 그리드를 생성하기 위한 파이썬 코드"라고 물었고 다음은 응답입니다.

import geopandas as gpd
from shapely.geometry import Polygon

# Define the bounds of the grid
min_x, min_y = 0, 0
max_x, max_y = 10, 10

# Define the size of the cells in the grid
cell_width, cell_height = 1, 1

# Define the projection to use
crs = "EPSG:4326"  # WGS84

# Initialize an empty list to store the grid cells
grid_cells = []

# Iterate over the bounds of the grid and create a Polygon object for each cell
for x in range(min_x, max_x, cell_width):
    for y in range(min_y, max_y, cell_height):
        # Define the coordinates of the cell
        cell_coords = [(x, y), (x+cell_width, y), (x+cell_width, y+cell_height), (x, y+cell_height)]
        
        # Create the Polygon object
        cell = Polygon(cell_coords)
        
        # Add the Polygon to the list
        grid_cells.append(cell)

# Create the GeoDataFrame
gdf = gpd.GeoDataFrame(geometry=grid_cells, crs=crs)

# Visualize the grid
gdf.plot()

셀 그리드를 생성하기 위한 chatGPT 생성 Python 코드의 결과

따라서 chat GPT는 잘 작성되고 명확한 질문이 주어지는 한 실제로 공간 데이터 과학을 위해 Python으로 간단한 코드를 작성할 수 있습니다.

마지막 생각들

chatGPT를 사용한 이 간단한 실험은 챗봇과 일반적으로 AI에 대한 두 가지 흥미로운 점을 강조합니다.

첫째, 우리는 AI가 처음에는 합법적으로 보일 수 있는 아티팩트를 생성할 수 있지만 추가 조사에서 잘못된 것으로 판명될 수 있음을 알 수 있습니다. 일반적인 예는 AI가 생성한 얼굴 이미지로 , 얼굴이 언뜻 보기에는 사실적으로 보일 수 있지만 자세히 보면 이상하게 보일 수 있습니다.

AI 생성 얼굴의 이상 사례, 중간 기사 참조

코드를 작성할 때 채팅 GPT 는 의미가 있는 것처럼 보이지만 실제로는 존재하지 않는 모듈이라는 모듈을 geopandas구성 하여 유사한 작업을 수행했습니다 .gpd.gridify()

둘째, chatGPT(및 다른 AI 봇)의 목적은 정확한 정보를 제공하는 것이 아니라 정확한 정보 처럼 보이는 것을 제공하는 것입니다 . chatGPT의 FAQ 페이지 에 따르면 모델은 가능한 한 인간의 말을 모방하도록 훈련되었으며 진실을 제공하지 않습니다.

chatGPT FAQ 페이지

이것이 gridify라이브러리의 일부라고 자신 있게 주장 geopandas하고, 잘못된 것으로 판명되면 대신 라이브러리 gridify의 일부라고 주장하는 이유입니다. shapely이 진술 중 어느 것도 사실이 아니지만 그것이 chatGPT의 요점이 아닐 수도 있습니다.

무엇 향후 계획?

나는 확실히 chatGPT의 기능에 대해 매우 흥분하고 있으며 앞으로 이것을 사용하여 다른 더 어려운 코딩 작업을 할 것입니다.

또한 아이디어를 생성하는 데 매우 편리하다는 것을 알았습니다. 지속 가능성 + 공간 데이터 과학을 위한 데이터 과학 프로젝트에 대한 아이디어를 요청했고, 저에게 참신한 아이디어를 생성하지는 않았지만 지속 가능성에 대한 꽤 좋은 개요를 제공했습니다. / 내가 상상할 수 있는 공간 데이터 과학 세계는 현장을 처음 접하는 사람에게 매우 편리할 수 있습니다.

프로젝트 아이디어를 요청했을 때 chatGPT의 답변은 다음과 같습니다.

  • 지속 가능한 교통 계획: 계획자가 대중 교통 네트워크를 최적화하여 온실 가스 배출량을 줄이고 접근성을 개선하는 데 도움이 되는 도구를 개발합니다. 여기에는 여행 수요 패턴 분석, 대중 교통 데이터 소스 통합, 네트워크 설계 및 경로 지정을 위한 알고리즘 구현이 포함될 수 있습니다.
  • 지속 가능한 토지 사용 계획: 계획자가 토지 사용 패턴을 최적화하여 환경 영향을 최소화하고 지속 가능성을 향상시키는 데 도움이 되는 도구를 개발합니다. 여기에는 토지 사용 및 토지 피복 패턴 분석, 토지 사용 데이터 소스 통합, 토지 사용 할당 및 최적화를 위한 알고리즘 구현이 포함될 수 있습니다.
  • 환경 영향 평가: 조직이 운영 또는 프로젝트의 환경 영향을 평가하는 데 도움이 되는 도구를 개발합니다. 여기에는 대기 및 수질과 같은 환경 지표에 대한 데이터 소스와 통합하고 영향 평가 및 예측을 위한 알고리즘을 구현하는 것이 포함될 수 있습니다.
  • 재생 에너지 사이트 선택: 조직이 태양열 또는 풍력 발전소와 같은 재생 에너지 생성에 적합한 사이트를 식별하는 데 도움이 되는 도구를 개발합니다. 여기에는 태양 일사량, 풍속 및 기타 관련 요인의 패턴을 분석하고 토지 이용 및 지형에 대한 데이터 소스와 통합하는 것이 포함될 수 있습니다.
  • 지속 가능한 공급망 최적화: 조직이 환경 영향을 최소화하고 지속 가능성을 향상시키기 위해 공급망을 최적화하는 데 도움이 되는 도구를 개발합니다. 여기에는 재료 및 에너지 흐름의 패턴 분석, 공급망 데이터 소스와의 통합, 최적화 및 위험 평가를 위한 알고리즘 구현이 포함될 수 있습니다.

감사의 말

제 친구 Alexey Ilyshkin과 Alexis Oh에게 chatGPT와 AI에 대한 생각을 공유해 주셔서 감사합니다. 우리가 다룬 내용은 이 기사의 '최종 생각' 섹션에 통합되었습니다.