Coder avec chatGPT
Récemment, j'ai découvert ChatGPT , un bot de chat ai développé par OpenAI qui est capable de répondre aux utilisateurs d'une manière remarquablement humaine. Non seulement chatGPT peut donner des réponses en utilisant du texte, mais vous pouvez également lui demander d'écrire du code. En fait, une connaissance m'a récemment dit qu'elle utilisait chatGPT pour faire certains de ses devoirs pour son Master en science des données urbaines, à la fois pour la rédaction d'essais et l'écriture de code.
En tant que personne qui passe la plupart de ses heures de travail à coder, le fait qu'un chatbot écrive du code pour moi semble à la fois incroyablement excitant (pensez à toutes les heures que je pourrais gagner !) Et un peu effrayant (est-ce que cela signifie que je serai hors d'un travail dans quelques années ?) . J'ai décidé d'essayer les capacités de codage du chat GPT, en particulier pour l'analyse de données spatiales avec Python. Cet article montre quelques premiers résultats, et mes premières réflexions.
Pour cet article, j'ai demandé à Chat GPT d'effectuer une tâche typique que je dois souvent effectuer : transformer un polygone (qui peut avoir la forme d'un pays, d'une ville ou d'une municipalité) en une grille de cellules où les statistiques pourraient être facilement agrégées.
Avant de commencer, qu'est-ce que Chat GPT, en fait ? J'ai posé cette question au chatbot lui-même, et voici sa réponse :
GPT (abréviation de "Generative Pre-training Transformer") est un type de modèle de langage développé par OpenAI. Il s'agit d'un réseau neuronal formé pour générer un texte de type humain en prédisant le mot suivant dans une séquence à partir d'un grand ensemble de données d'exemples. Chat GPT fait référence à l'utilisation de ce modèle dans les applications de chat, où il peut être utilisé pour générer des réponses aux messages des utilisateurs en temps réel. Il est conçu pour pouvoir mener une conversation en comprenant le contexte de la conversation et en générant des réponses appropriées.
Commençons!
Tout d'abord, j'ai demandé à Chat GPT, "créer une grille geodataframe dans un polygone", et voici sa réponse :
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()
Il existe cependant un autre module python appelé gridify, donc peut-être que le chatbot a été confus, voir le lien ici . Il a également oublié d'importer l' shapelyattribut Polygonavant de l'utiliser, mais ce n'était qu'un problème mineur.
La chose intéressante à propos du chat GPT est que vous pouvez avoir une conversation continue avec lui, et il se souviendra de vos interactions précédentes. J'ai donc posé une question de suivi pour essayer d'obtenir un morceau de code fonctionnel. J'ai donc demandé: "J'ai essayé ce code mais j'ai eu l'erreur" le module 'geopandas' n'a pas d'attribut 'gridify'". pouvez-vous résoudre ce problème pour moi ?", et voici sa réponse :
Alors que le bot prétendait shapelyavoir l'attribut gridify, j'ai découvert que ce n'était pas vrai lorsque j'ai exécuté le code. shapelyn'a pas gridifynon plus l'attribut.
J'ai donc posé une autre question de suivi, "J'ai essayé le code mais j'ai reçu le message d'erreur" Aucun module nommé 'shapely.gridify'". D'autres options ? »
Le bot a ensuite continué à me dire en toute confiance que gridify IS faisait partie de la shapelybibliothèque, mais qu'il avait été supprimé dans les versions plus récentes - ce n'est pas non plus vrai pour autant que je sache.
Le code qu'il a écrit a produit… une boucle carrée, ce qui est loin de ce que je cherchais. Franchement j'ai trouvé ça assez hilarant.
Deuxième tentative : ça a marché !
Ma première conversation avec le chat GPT ne se passait clairement pas très bien, alors j'ai décidé de recommencer et de poser ma question plus clairement. Je lui ai demandé "code python pour générer une grille de cellules en tant que géodonnées", et voici sa réponse :
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()
Ainsi, le chat GPT est en effet capable d'écrire du code simple en Python pour la science des données spatiales, tant qu'il reçoit une question bien écrite et claire.
Dernières pensées
Cette brève expérience avec chatGPT met en évidence deux choses intéressantes sur le chatbot, et peut-être sur l'IA en général.
Premièrement, nous pouvons voir que l'IA peut générer des artefacts qui peuvent sembler légitimes à première vue, mais qui s'avèrent erronés après une enquête plus approfondie. Un exemple courant est celui des images de visages générées par l'IA , où les visages peuvent sembler réalistes à première vue, mais se révèlent présenter d'étranges anomalies lorsqu'on les regarde de plus près.
Lors de l'écriture de notre code, le chat GPT a fait quelque chose de similaire en créant un geopandasmodule appelé gpd.gridify()- un module qui semble logique, mais qui n'existe pas réellement.
Deuxièmement, le but de chatGPT (et peut-être d'autres robots IA) n'est pas de présenter des informations exactes, mais plutôt ce qui ressemble à des informations exactes. Selon la page FAQ de chatGPT , le modèle est formé pour imiter autant que possible le discours humain, et non pour nous fournir la vérité.
C'est pourquoi il prétend avec tant de confiance que cela gridifyfait partie de la geopandasbibliothèque, et lorsqu'il s'avère faux, prétend que cela gridifyfait partie de shapelyla bibliothèque à la place. Aucune de ces affirmations n'est vraie, mais ce n'est peut-être pas le but de chatGPT.
Et après?
Je suis définitivement très enthousiasmé par les capacités de chatGPT et je l'utiliserai pour travailler sur d'autres tâches de codage plus difficiles à l'avenir.
J'ai également trouvé que c'était assez pratique pour générer des idées - j'ai demandé des idées pour des projets de science des données pour la durabilité + la science des données spatiales, et même si cela n'a pas produit d'idées nouvelles pour moi, cela a fourni un assez bon aperçu de la durabilité / monde de la science des données spatiales, ce qui, j'imagine, pourrait être très pratique pour quelqu'un de nouveau dans le domaine.
Voici la réponse de chatGPT lorsque j'ai demandé des idées de projets :
- Planification du transport durable : Développer un outil qui aide les planificateurs à optimiser les réseaux de transport en commun afin de réduire les émissions de gaz à effet de serre et d'améliorer l'accessibilité. Cela pourrait impliquer l'analyse des modèles de demande de déplacement, l'intégration avec les sources de données des transports publics et la mise en œuvre d'algorithmes pour la conception et l'itinéraire du réseau.
- Planification durable de l'utilisation des terres : développer un outil qui aide les planificateurs à optimiser les modèles d'utilisation des terres afin de minimiser les impacts environnementaux et d'améliorer la durabilité. Cela pourrait impliquer l'analyse des modèles d'utilisation des terres et de la couverture terrestre, l'intégration avec les sources de données sur l'utilisation des terres et la mise en œuvre d'algorithmes pour l'affectation et l'optimisation de l'utilisation des terres.
- Évaluation de l'impact environnemental : Développer un outil qui aide les organisations à évaluer les impacts environnementaux de leurs opérations ou projets. Cela pourrait impliquer l'intégration avec des sources de données sur les indicateurs environnementaux, tels que la qualité de l'air et de l'eau, et la mise en œuvre d'algorithmes pour l'évaluation et la prévision des impacts.
- Sélection de sites d'énergie renouvelable : développer un outil qui aide les organisations à identifier des sites appropriés pour la production d'énergie renouvelable, tels que des parcs solaires ou éoliens. Cela pourrait impliquer l'analyse des modèles d'insolation solaire, de la vitesse du vent et d'autres facteurs pertinents, et l'intégration avec des sources de données sur l'utilisation des terres et la topographie.
- Optimisation de la chaîne d'approvisionnement durable : développer un outil qui aide les organisations à optimiser leurs chaînes d'approvisionnement afin de minimiser les impacts environnementaux et d'améliorer la durabilité. Cela pourrait impliquer l'analyse des modèles de flux de matières et d'énergie, l'intégration avec les sources de données de la chaîne d'approvisionnement et la mise en œuvre d'algorithmes d'optimisation et d'évaluation des risques.
Remerciements
J'aimerais remercier mes amis Alexey Ilyshkin et Alexis Oh d'avoir partagé avec moi leurs réflexions sur chatGPT et l'IA. Nos couvertures ont été intégrées dans la section "réflexions finales" de cet article.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































