Codifica con chatGPT
Di recente ho scoperto ChatGPT , un bot di chat ai sviluppato da OpenAI in grado di rispondere agli utenti in modo straordinariamente umano. Non solo chatGPT può dare risposte usando il testo, ma puoi anche chiedergli di scrivere codice. In effetti, una conoscente mi ha recentemente detto che ha usato chatGPT per fare alcuni dei suoi compiti per il suo Master in scienze dei dati urbani, sia per scrivere saggi che per scrivere codice.
Essendo una persona che passa la maggior parte delle sue ore lavorative a programmare, avere un chat bot che scrive codice per me suona sia incredibilmente eccitante (pensa a tutte le ore che potrei risparmiare!) che un po' spaventoso (significa che sarò fuori da un lavoro tra qualche anno?) . Ho deciso di provare le funzionalità di codifica della chat GPT, in particolare per l'analisi dei dati spaziali con Python. Questo articolo mostra alcuni primi risultati e i miei primi pensieri.
Per questo articolo, ho chiesto a Chat GPT di svolgere un compito tipico che devo svolgere spesso: trasformare un poligono (potrebbe essere la forma di un paese, una città o un comune) in una griglia di celle in cui le statistiche potrebbero essere facilmente aggregate.
Prima di iniziare, cos'è Chat GPT, in realtà? Ho posto questa domanda al chatbot stesso, e questa è la sua risposta:
GPT (abbreviazione di "Generative Pre-training Transformer") è un tipo di modello di linguaggio sviluppato da OpenAI. È una rete neurale addestrata a generare testo simile a quello umano prevedendo la parola successiva in una sequenza, dato un ampio set di dati di esempi. Chat GPT si riferisce all'uso di questo modello nelle applicazioni di chat, dove può essere utilizzato per generare risposte ai messaggi degli utenti in tempo reale. È progettato per essere in grado di portare avanti una conversazione comprendendo il contesto della conversazione e generando risposte appropriate.
Iniziamo!
Per prima cosa, ho chiesto a Chat GPT, "crea una griglia geodataframe all'interno di un poligono", e questa è stata la sua risposta:
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()
C'è, tuttavia, un altro modulo python chiamato gridify, quindi forse il chatbot è stato confuso da quello, vedi link qui . Ha anche dimenticato di importare l' shapelyattributo Polygonprima di usarlo, ma quello era solo un problema minore.
La cosa interessante della chat GPT è che puoi avere una conversazione continua con essa e ricorderà le tue interazioni precedenti. Quindi ho posto una domanda di follow-up per cercare di ottenere un pezzo di codice funzionante. Quindi ho chiesto: "Ho provato questo codice ma ho ricevuto l'errore" il modulo "geopandas" non ha l'attributo "gridify"". puoi sistemare questo per me?", e questa è stata la sua risposta:
Mentre il bot affermava di shapelyavere l'attributo gridify, ho scoperto che non era vero quando ho eseguito il codice. shapelynon ha gridifyneanche l'attributo.
Quindi ho posto un'altra domanda di follow-up, "Ho provato il codice ma ho ricevuto il messaggio di errore "Nessun modulo chiamato 'shapely.gridify'”. Altre opzioni?"
Il bot ha quindi proceduto a dirmi con sicurezza che gridify fa parte della shapelylibreria, ma è stato rimosso nelle versioni più recenti - anche questo non è vero per quanto ne so.
Il codice che ha scritto ha prodotto... un loop quadrato, che è lontano da quello che stavo cercando. Sinceramente l'ho trovato piuttosto divertente.
Secondo tentativo: ha funzionato!
La mia prima conversazione con la chat GPT chiaramente non stava andando molto bene, quindi ho deciso di ricominciare e porre la mia domanda in modo più chiaro. Gli ho chiesto "codice python per generare una griglia di celle come geodataframe", ed ecco la sua risposta:
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()
Quindi chat GPT è davvero in grado di scrivere codice semplice in Python per la scienza dei dati spaziali, purché venga data una domanda ben scritta e chiara.
Pensieri finali
Questo breve esperimento con chatGPT evidenzia due aspetti interessanti del chatbot e forse dell'intelligenza artificiale in generale.
In primo luogo, possiamo vedere che l'intelligenza artificiale può generare artefatti che possono sembrare legittimi a prima vista, ma che si rivelano errati in seguito a ulteriori indagini. Un esempio comune sono le immagini di volti generati dall'intelligenza artificiale , in cui i volti possono sembrare realistici a prima vista, ma rivelarsi con strane anomalie se osservati più da vicino.
Durante la scrittura del nostro codice, chat GPT ha fatto qualcosa di simile creando un geopandasmodulo chiamato gpd.gridify()— un modulo che sembra avere senso, ma in realtà non esiste.
In secondo luogo, lo scopo di chatGPT (e forse di altri robot AI) non è quello di presentare informazioni accurate, ma piuttosto quelle che sembrano informazioni accurate. Secondo la pagina delle FAQ di chatGPT , il modello è addestrato a imitare il più possibile il linguaggio umano e non a fornirci la verità.
Questo è il motivo per cui afferma con tanta sicurezza che gridifyfa parte della geopandasbiblioteca e, se smentito, afferma invece che gridifyfa parte della biblioteca. shapelyNessuna di queste affermazioni è vera, ma forse non è questo il punto di chatGPT.
Qual è il prossimo?
Sono decisamente molto entusiasta delle capacità di chatGPT e lo userò per lavorare su altre attività di codifica più difficili in futuro.
Ho anche scoperto che è abbastanza utile per generare idee: ho chiesto idee per progetti di scienza dei dati per la sostenibilità + scienza dei dati spaziali e, sebbene non abbia prodotto idee nuove per me, ha fornito una panoramica abbastanza buona della sostenibilità / mondo della scienza dei dati spaziali, che posso immaginare potrebbe essere molto utile per qualcuno che è nuovo nel campo.
Ecco la risposta di chatGPT quando ho chiesto idee per progetti:
- Pianificazione dei trasporti sostenibili: sviluppare uno strumento che aiuti i pianificatori a ottimizzare le reti di trasporto pubblico per ridurre le emissioni di gas serra e migliorare l'accessibilità. Ciò potrebbe comportare l'analisi dei modelli della domanda di viaggio, l'integrazione con le fonti di dati del trasporto pubblico e l'implementazione di algoritmi per la progettazione e l'instradamento della rete.
- Pianificazione sostenibile dell'uso del suolo: sviluppare uno strumento che aiuti i pianificatori a ottimizzare i modelli di utilizzo del suolo per ridurre al minimo gli impatti ambientali e migliorare la sostenibilità. Ciò potrebbe comportare l'analisi dei modelli di uso del suolo e della copertura del suolo, l'integrazione con le fonti di dati sull'uso del suolo e l'implementazione di algoritmi per l'allocazione e l'ottimizzazione dell'uso del suolo.
- Valutazione dell'impatto ambientale: sviluppare uno strumento che aiuti le organizzazioni a valutare gli impatti ambientali delle loro operazioni o progetti. Ciò potrebbe comportare l'integrazione con le fonti di dati sugli indicatori ambientali, come la qualità dell'aria e dell'acqua, e l'implementazione di algoritmi per la valutazione e la previsione dell'impatto.
- Selezione del sito di energia rinnovabile: sviluppare uno strumento che aiuti le organizzazioni a identificare i siti adatti per la generazione di energia rinnovabile, come i parchi solari o eolici. Ciò potrebbe comportare l'analisi dei modelli di insolazione solare, velocità del vento e altri fattori rilevanti e l'integrazione con le fonti di dati sull'uso del suolo e sulla topografia.
- Ottimizzazione della supply chain sostenibile: sviluppare uno strumento che aiuti le organizzazioni a ottimizzare le proprie supply chain per ridurre al minimo l'impatto ambientale e migliorare la sostenibilità. Ciò potrebbe comportare l'analisi dei modelli di flussi di materiale ed energia, l'integrazione con le fonti di dati della catena di approvvigionamento e l'implementazione di algoritmi per l'ottimizzazione e la valutazione del rischio.
Ringraziamenti
Vorrei ringraziare i miei amici Alexey Ilyshkin e Alexis Oh per aver condiviso con me i loro pensieri su chatGPT e AI. Le nostre copertine sono state integrate nella sezione "pensieri finali" di questo articolo.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































