chatGPT ile kodlama

Feb 10 2023
Coğrafi veri bilimi için Python kodu yazmak üzere OpenAI'nin dil modelini kullanma
Son zamanlarda, OpenAI tarafından geliştirilen ve kullanıcılara son derece insani bir şekilde yanıt verebilen bir yapay zeka sohbet botu olan ChatGPT'yi öğrendim. chatGPT yalnızca metin kullanarak yanıt vermekle kalmaz, ondan kod yazmasını da isteyebilirsiniz.

Son zamanlarda, OpenAI tarafından geliştirilen ve kullanıcılara son derece insani bir şekilde yanıt verebilen bir yapay zeka sohbet botu olan ChatGPT'yi öğrendim . chatGPT yalnızca metin kullanarak yanıt vermekle kalmaz, ondan kod yazmasını da isteyebilirsiniz. Aslında, yakın zamanda bir tanıdığım bana kentsel veri bilimindeki Master'ları için hem makale yazmak hem de kod yazmak için yaptığı ödevlerin bir kısmını yapmak için chatGPT'yi kullandığını söyledi.

Veri bilimi için chatGPT kullanma örneği, bkz. Medium makalesi

Çalışma saatlerinin çoğunu kodlama yaparak geçiren biri olarak, bir sohbet botunun benim için kod yazması hem inanılmaz derecede heyecan verici (kazanabileceğim tüm saatleri düşünün!) hem de biraz korkutucu (bu, benim için biteceği anlamına mı geliyor? birkaç yıl içinde iş?) . Özellikle Python ile mekansal veri analizi için sohbet GPT'nin kodlama yeteneklerini denemeye karar verdim. Bu makale bazı ilk sonuçları ve ilk düşüncelerimi gösteriyor.

Bu makale için, Chat GPT'den sık sık yapmak zorunda olduğum tipik bir görevi yapmasını istedim: bir çokgeni (bir ülke, şehir veya belediyenin şekli olabilir), istatistiklerin kolayca toplanabileceği bir hücre ızgarasına dönüştürmek.

Başlamadan önce, aslında Chat GPT nedir? Bu soruyu chatbot'un kendisine sordum ve yanıtı şöyle:

GPT ("Generative Pre-training Transformer"ın kısaltması), OpenAI tarafından geliştirilen bir tür dil modelidir. Geniş bir örnek veri seti verilen bir dizideki bir sonraki kelimeyi tahmin ederek insan benzeri metin oluşturmak için eğitilmiş bir sinir ağıdır. Chat GPT, bu modelin, kullanıcı mesajlarına gerçek zamanlı olarak yanıtlar oluşturmak için kullanılabileceği sohbet uygulamalarında kullanımına atıfta bulunur. Konuşmanın içeriğini anlayarak ve uygun yanıtlar üreterek bir sohbeti sürdürebilmek için tasarlanmıştır.

Hadi başlayalım!

İlk olarak, Chat GPT'ye "çokgen içinde bir coğrafi veri çerçevesi ızgarası oluştur" diye sordum ve yanıtı şu oldu:

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()

Bununla birlikte, adlı başka bir python modülü vardır gridify, bu yüzden belki de chatbot bununla karıştırılmıştır, buradaki bağlantıya bakın . shapelyAyrıca, özelliği kullanmadan önce içe aktarmayı da unuttu Polygon, ancak bu sadece küçük bir sorundu.

Sohbet GPT ile ilgili ilginç olan şey, onunla sürekli sohbet edebilmeniz ve önceki etkileşimlerinizi hatırlayacak olmasıdır. Bu yüzden çalışan bir kod parçası elde etmeye çalışmak için bir takip sorusu sordum. Ben de sordum, "Bu kodu denedim ama" 'geopandas' modülü 'gridify' özniteliğine sahip değil" hatası aldım. Bunu benim için düzeltebilir misin?” sorusuna verdiği yanıt şuydu:

Bot, shapelyözniteliğe sahip olduğunu iddia ederken gridify, kodu çalıştırdığımda bunun doğru olmadığını öğrendim. shapelyözelliğine gridifyde sahip değildir.

Bu yüzden başka bir takip sorusu sordum, "Kodu denedim ama "'shapely.gridify' adlı modül yok" hata mesajını aldım. Başka seçenekler var mı?"

Bot daha sonra güvenle bana bunun kitaplığın bir parçası olduğunu, ancak daha yeni sürümlerde kaldırıldığını söyledi gridify - bu shapelyda bildiğim kadarıyla doğru değil.

Yazdığı kod ... aradığımdan çok uzak bir kare döngü üretti. Açıkçası ben oldukça komik buldum.

İkinci girişim: işe yaradı!

Chat GPT ile ilk görüşmem açıkça pek iyi gitmiyordu, bu yüzden yeniden başlamaya ve sorumu daha net sormaya karar verdim. Ona "bir coğrafi veri çerçevesi olarak bir hücre ızgarası oluşturmak için python kodu" diye sordum ve işte yanıtı:

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()

Bir hücre ızgarası oluşturmak için chatGPT tarafından oluşturulan Python kodunun sonucu

Dolayısıyla sohbet GPT, iyi yazılmış ve net bir soru verildiği sürece gerçekten de Python'da uzamsal veri bilimi için basit kod yazabilir.

Son düşünceler

ChatGPT ile yapılan bu kısa deney, sohbet robotu ve belki de genel olarak yapay zeka hakkında iki ilginç şeyi vurgulamaktadır.

İlk olarak, AI'nın ilk bakışta meşru görünebilecek, ancak daha fazla araştırma yapıldığında yanlış olduğu ortaya çıkan eserler üretebildiğini görebiliriz. Yaygın bir örnek , yapay zeka tarafından oluşturulan yüzlerin ilk bakışta gerçekçi görünebildiği, ancak daha yakından bakıldığında garip anormalliklere sahip olduğu görüntülerdir .

AI tarafından oluşturulan yüzlerdeki anormalliklere örnek, orta makaleye bakın

Kodumuzu yazarken, chat GPT benzer bir şey yaparak , mantıklı görünen ama gerçekte var olmayan bir modül geopandasadlı bir modül oluşturdu .gpd.gridify()

İkincisi, chatGPT'nin (ve belki de diğer AI botlarının) amacı doğru bilgileri sunmak değil, doğru gibi görünen bilgileri sunmaktır. chatGPT'nin SSS sayfasına göre model, bize gerçeği sağlamak için değil, mümkün olduğunca insan konuşmasını taklit edecek şekilde eğitildi.

chatGPT'nin SSS sayfası

Bu nedenle, kendinden emin bir şekilde gridifykitaplığın bir parçası olduğunu iddia ediyor geopandasve yanlış olduğu kanıtlandığında bunun yerine kitaplığın gridifybir parçası olduğunu iddia ediyor. shapelyBu ifadelerin hiçbiri doğru değil, ama belki de chatGPT'nin amacı bu değil.

Sıradaki ne?

ChatGPT'nin yetenekleri konusunda kesinlikle çok heyecanlıyım ve onu gelecekte diğer daha zor kodlama görevleri üzerinde çalışmak için kullanacağım.

Fikir üretme konusunda da oldukça kullanışlı olduğunu gördüm - sürdürülebilirlik + mekansal veri bilimi için veri bilimi projeleri için fikirler sordum ve benim için yeni olan fikirler üretmese de sürdürülebilirliğe oldukça iyi bir genel bakış sağladı. / mekansal veri bilimi dünyası, bu alanda yeni olan biri için oldukça kullanışlı olabileceğini hayal edebiliyorum.

Proje fikirleri sorduğumda chatGPT'nin yanıtı şöyle:

  • Sürdürülebilir ulaşım planlaması: Planlamacıların sera gazı emisyonlarını azaltmak ve erişilebilirliği iyileştirmek için toplu taşıma ağlarını optimize etmesine yardımcı olan bir araç geliştirin. Bu, seyahat talebi kalıplarının analiz edilmesini, toplu taşıma veri kaynaklarıyla entegrasyonun sağlanmasını ve ağ tasarımı ve yönlendirme için algoritmaların uygulanmasını içerebilir.
  • Sürdürülebilir arazi kullanım planlaması: Planlamacıların çevresel etkileri en aza indirmek ve sürdürülebilirliği artırmak için arazi kullanım modellerini optimize etmelerine yardımcı olan bir araç geliştirin. Bu, arazi kullanımı ve arazi örtüsü kalıplarının analiz edilmesini, arazi kullanımı veri kaynaklarıyla bütünleştirilmesini ve arazi kullanımı tahsisi ve optimizasyonu için algoritmaların uygulanmasını içerebilir.
  • Çevresel etki değerlendirmesi: Kuruluşların operasyonlarının veya projelerinin çevresel etkilerini değerlendirmesine yardımcı olan bir araç geliştirin. Bu, hava ve su kalitesi gibi çevresel göstergelerle ilgili veri kaynaklarıyla entegrasyonu ve etki değerlendirmesi ve tahmini için algoritmaların uygulanmasını içerebilir.
  • Yenilenebilir enerji yeri seçimi: Kuruluşların güneş veya rüzgar çiftlikleri gibi yenilenebilir enerji üretimi için uygun yerleri belirlemesine yardımcı olan bir araç geliştirin. Bu, güneş ışığı alma modellerinin, rüzgar hızının ve diğer ilgili faktörlerin analizini ve arazi kullanımı ve topografyaya ilişkin veri kaynaklarıyla entegrasyonu içerebilir.
  • Sürdürülebilir tedarik zinciri optimizasyonu: Kuruluşların çevresel etkileri en aza indirmek ve sürdürülebilirliği artırmak için tedarik zincirlerini optimize etmelerine yardımcı olan bir araç geliştirin. Bu, malzeme ve enerji akış modellerinin analiz edilmesini, tedarik zinciri veri kaynaklarıyla entegrasyonun sağlanmasını ve optimizasyon ve risk değerlendirmesi için algoritmaların uygulanmasını içerebilir.

teşekkürler

ChatGPT ve AI hakkındaki düşüncelerini benimle paylaşan arkadaşlarım Alexey Ilyshkin ve Alexis Oh'a teşekkür etmek istiyorum. Kapsamlarımız bu makalenin 'son düşünceler' bölümüne entegre edildi.