Yapay Zeka Yolculuğu – I

Solarian’ı kuralı 2 sene oldu.

Geçtiğimiz 2 senede 125 firmaya hizmet vermişiz. Bizim gibi sektörde yeni bir firma için bunun iyi bir rakam olduğuna inanıyorum. Ekipçe yaptığımız çalışmalarda müşteri memnuniyeti bizim için çok önemli. Bu sebeple hiçbir işimizi biryerlere taşere etmedik; sunduğumuz tüm raporların oluşturulmasında bizzat ben sürecin başından sonuna kadar bulundum ve raporları bizzat kendim sundum.

Bu süreç müşterilerimizde güzel bir deneyim oluşturdu ve bizimle daha fazla çalışmak istediklerini her seferinde söylediler ama çok da uzak olmayan gelecekte ben bu işlerin hepsine yetişemiyor olacağım. Solarian’ın kaliteli ekibinin süreçlere kattığı katma değeri tüm müşterilerimize sunabilmek için bazı süreçlerin otomatize edilmesi gerekli ki biz müşterilerin raporlarının sunuşlarına, alınması gereken aksiyonlara daha fazla odaklanabilelim.

Bugüne kadar iyi olup daha sonra ölçekleyemeyecek kötü hizmet veren ve bunu laf ebeliği ile geçiştirmeye çalışan pek çok firma ile karşılaştım. Büyük bir emek ve özveri ile kurduğumuz bu yapının böyle bir hale gelmesine gönlüm asla el vermez. O sebeple 2019 hedeflerimden birisi olan yapay zeka’yı öğrenme sürecim; Solarian’ın sahip olduğu bu geniş veri havuzunu ve saha faaliyetlerini yorumlaması ile çakışmaya başladı.

Bence sahalardan ve izleme sistemlerinden elde ettiğimiz verileri bir yazılıma (havalı olsun diye bundan sonra “yapay zeka” diyeceğim) verip bizim dikkat ettiğimiz noktalar dikkat etmesini isteyeceğim. Çalışmalarımızda istatistiki pek çok fonksiyon kullanıyoruz; median, standart sapma, PDF bunlardan sadece bazıları. Sayıların bu şekilde yorumlanmalarını öncelikle sağlamak istiyorum ama herşeyden önce hedefleri en baştan belirlemek lazım.

Peki yapay zeka’nın Solarian’ın süreçlerine entegrasyonu aşamasında hedeflerimiz neler?

  1. Yazılımın mevcut ekipman ve veri izleme sistemleri ile uyumlu olup herhangi bir veriyi kolayca bilgisayarın anlayabileceği türe dönüştürebilmeli. Kısa buna veri tipleri de diyebiliriz. Yazılım henüz bir çalışma gerçekleştirmese dahi verileri okuyup daha sonra işleyebileceği halde tutabilmeli.
  2. Yazılımda fonksiyonlar ve veri tipleri çok net tanımlanmalı. Bu yazılımı bir kere yazdıktan sonra hayatımın sonuna kadar bakımını sağlayamam. Koda bakan birisi -koddan anlayan birisi diyelim- ne yapıldığını kolayca anlayabilmeli.
  3. Kod mevcut çalışma sistemi -nam-ı diğer Excel- ile uyumlu olmalı. Sonuçlarını sunarken eski kara düzen Excel çıktılarını da sağlamalı ve kullanıcısına hatalı kolayca görebilmesini sağlayan sayfalar oluşturmalı. Ne kadar süreceğini bilemediğim bu entegrasyon sonucunda yazılımda bir hata var ise bunu kolayca yakalayabilmeliyim.
  4. Makina öğrenmesi (ML) çalıştığında ve bazı konularla ilişkilendirmesini buna dayanarak yaptığında (Bugünlerde lineer-regresyonun adı ML oldu ama çaktırmayın) neyin nereden neye istinaden geldiğini kolayca kullanıcıya sunabilmeli.
  5. Karar metrikleri kullanıcı tarafından onaylandığında raporu kendisi oluşturabilmeli. Raporda üzerinde çalıştığımız kaliteyi korumalı; verilerde referanslarını doğru vermeli.

Bu yazılım bizim iş gücümüzü daha verimli kullanmamızı sağlarken raporlarımızın kalitesini de koruyacak ve işler iyice arttığında ve ekibe yeni birileri katıldığında -inanın kod yazmak ekibe doğru kişiyi bulmaktan çok daha kolay- bu kalitemizi koruyabilmemizi sağlayacak. Eğer ekip bir hata yaptıysa bu hatayı bulacak; diğer bir değişle yeni birinin üşenip kendi yaptığı hataları sabunlayarak rapor hazırlamasının önüne geçecek. Bu günlerde raporda hata yapıp hatası yakalandığında laf ebeliği yapmadan “hata yapmışım, verileri düzelteyim” diyen kaç kişi kaldık ki?

Vakit kaybetmenin kimseye faydası yok diyerek Python ile kodların yazımına giriştim. İlk önce veriyi almalıydım; ama nereden?

Türkiye’de güneş enerjisi santrallerini uzaktan izleyen bazı sistemler mevcut, Huawei eviricilerine ait olan NetEco, SMA eviricilerine ait olan Sunny Portal, yabancı bir firma olan Meteocontrol ve SolarLog, yerli bir firma olan Endoks – Inavitas bunlardan pazar payı büyük olanlar. Öncelikle bu firmaların arabirimlerinden bu verileri elde edebilecek ve veriyi anlayabilecek bir yazılım yazmalıydım.

İki günlük bir uğraş sonucunda NetEco, Sunny Portal ve Inavitas’dan veri alan bir kod bloğu yazabildim (Meteocontrol için gerekli kodu C# ile 2010’da yazmıştım). Verileri alıp Python’un makina öğrenmesinin yapı taşlarından olan “pandas” da dataframe olarak tanımlayabildim. Bu aşamada veriyi Postgres/InfluxDb gibi altyapılara da kolayca kaydedebilirken CSV olarak da yazıp okuyabiliyorum.

Normalde bu verilerin el ile alınması saatleri bulabilirken şuanda saniyeler içerisinde tamamlanabiliyor.

İkinci kısımda ise veriye bizim uyguladığımız istatistiki hesaplamaları uyguluyorum. “numpy” ve “pandas” bu konuda birbiri ile çok uyumlu çalışan iki yapı. Binlerce satır veriyi saniyeler içerisinde işleyebiliyor.

İlk aşamanın sonunda ise veriyi görselleştirerek Excel (ahh Excel sen nelere kadirsin. Holding’ler bile senin bir F9’una bakıyor karar alabilmek için) sayfasına geçiriyorum. Ama o CSV’den bozma okuması zor rezil bir Excel düşünmeyin, sütünları, sıraları ayarlı, renklendirmeleri yapılmış, sayfalara ayrılmış bakıldığı gibi anlaşılır sayfalar şeklinde (yaklaşık 40 satırda görselleştirme yapılabiliyor) hazır ediyor.

Normalde bu excelleri hazırlamamız 1-2 gün sürerdi.

Tek bir komut “./solarian_huawei_processor.py (username) (password)” girdikten sonra tüm veri saniyeler içerisinde “analiz edilmiş” olarak karşınızda. Her 1MW’ın ayrı ayrı yapıldığı günümüz Türkiye’sinde bu işlem yaklaşık 2-3 gün sürüyordu normalde.

Şimdi bu aşamada bu yazılıma “yapay zeka” diyebilir miyiz? Bence uzaktan yakından alakası yok ama sektördeki pek çok Endüstri 4.0 – IoT firmasına göre bu bir yapay zeka. Benim için se ileride işleyeceğim verilerin işleyeceğim ve ML’e besleyeceğim zaman hazır olması için

Peki sizce bu işlem kaç satır kod?

 

112 satır. Bunun 31 satırı görsellerin güzelleştirilmesi kaldı geriye 81 satır. 81 satırlık kod ile 2-3 adam/günlük işi otomatize edebiliyorsunuz. Mayıs gibi ulaşmayı hedeflediğim noktaya Mart ortası itibariyle ulaştım.

Şimdi bu verilerin scikit-learn, keras, tensorflow gibi ML algoritmaları ile üzerinde çalışılması kaldı. Yolculuğun bu kısmının yukarıda anlattığım kadar kolay olmasını beklemiyorum ama burada sadece makinelerin birşey öğreneceğini değil; aynı zamanda onların da keşfettiği patternler üzerinden kendimin de çok şey öğreneceğimi düşünüyorum.

İleride Solarian’ın know-how’ına ulaşmak bir tık kadar uzakta olacak. Şuanda O&M firmalarının web sitelerinde 2-4 tane büyük ekrana bakan 2 personelin fotoğrafını görürsünüz. İki personel düzenli olarak santralleri ne kadar iyi izleyebilir? Sadece birşeyler çalışmadığında e-mail ve sms gönderen yazılımlar hataları ne kadar önleyebilir? Bu yaptığım bence sadece bir başlangıç. Umarım diğer firmalar da bu çalışmalardan kendilerine birşeyler çıkarırlar, rekabet artar ve Türkiye’de yurt dışına ihraç edebileceğimiz katma değerli ürünler ortaya çıkar.

Şimdi nerede kalmıştık? Kaliteli hizmet sunmakta. Haydi oraya geri dönelim o zaman. 🙂


Yazılar eğer ilginizi çekiyorsa aşağıya eposta adresinizi yazarak abone olabilirsiniz

Her yeni makale yayınlandığında size e-posta gönderilecektir.


Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir